{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./src/@core/comp-functions/ui/app.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/list-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./src/@core/comp-functions/forms/form-validation.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?b4cc","webpack:///./src/views/apps/todo/Todo.vue?090d","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?ba07","webpack:///./node_modules/vee-validate/dist/rules.js","webpack:///./src/@core/utils/validations/validators.js","webpack:///./src/@core/utils/validations/validations.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/vue-perfect-scrollbar/dist/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./src/views/apps/todo/Todo.vue?5ff3","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue?9574","webpack:///src/views/apps/todo/TodoLeftSidebar.vue","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue?7524","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue","webpack:///./src/views/apps/todo/todoStoreModule.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?cb5e","webpack:///./src/views/apps/todo/useTaskHandler.js","webpack:///src/views/apps/todo/TodoTaskHandlerSidebar.vue","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?f26f","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue","webpack:///src/views/apps/todo/Todo.vue","webpack:///./src/views/apps/todo/Todo.vue?669d","webpack:///./src/views/apps/todo/Todo.vue","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/list-group-item.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./src/views/apps/todo/Todo.vue?038f"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","extend","name","functional","render","h","_ref","data","parent","replace","concat","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","toInteger","requireObjectCoercible","module","exports","repeat","count","String","this","result","n","Infinity","RangeError","id","inline","novalidate","validated","BForm","children","class","attrs","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","arrayPush","min","Math","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","undefined","call","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","index","test","O","splitter","regexp","res","done","rx","S","C","unicodeMatching","p","q","A","e","z","useResponsiveAppLeftSidebarVisibility","mqShallShowLeftSidebar","ref","currentBreakPoint","computed","store","getters","watch","val","oldVal","flush","horizontal","tag","BListGroup","componentData","staticClass","BInputGroupPrepend","append","classof","TypeError","isText","BInputGroupAddon","formValidation","resetFormData","clearFormData","refFormObserver","resetObserver","reset","getValidationState","dirty","fieldRequired","required","changed","valid","resetForm","nextTick","clearForm","toObject","regExpExec","max","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","indexOf","functionalReplace","global","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","m","ch","capture","f","appendHtml","prepend","prependHtml","size","BInputGroup","slots","scopedSlots","$scopedSlots","$slots","slotScope","$prepend","hasPrependSlot","domProps","$append","hasAppendSlot","role","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","bool","debounce","fn","wait","t","_this","args","clearTimeout","setTimeout","arrayify","Array","toggleClass","elem","className","classList","add","remove","createElement","content","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","type","pattern","setAttribute","appendChild","getEventTarget","event","composedPath","path","error","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","getHours","parseFloat","H","J","K","M","shortMonth","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","setFullYear","Z","ISODate","d","minutes","setMinutes","l","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","_a","_b","config","_c","l10n","_d","isMobile","frmt","overrideLocale","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","trim","parseDate","ops","matchIndex","regexStr","token","isBackSlash","escaped","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","assign","prototype","hasOwnProperty","__spreadArrays","il","r","k","a","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","flatpickr","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","bind","requestAnimationFrame","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","onYearInput","eventTarget","delta","changeYear","handler","ev","el","addEventListener","_handlers","removeEventListener","triggerChange","evt","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","ontouchstart","documentClick","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","select","timeIncrement","onBlur","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","body","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","offset","dayFocused","isInView","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","get","__hidePrevMonthArrow","set","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","from","to","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","preventDefault","focusAndClose","delta_1","ctrlKey","stopPropagation","elems","pluginElements","x","shiftKey","toLowerCase","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","default","customPositionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","sort","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","updatePositionElement","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","placeholder","inputType","mobileFormatStr","defaultValue","step","hooks","initEvent","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","_i","_loop_1","args_1","alpha","cs","da","de","es","fa","fr","lt","nl","hu","pl","pt","ro","ru","sk","sr","sv","tr","uk","ar","az","alphanumeric","alphaDash","validate","isArray","every","loc","params","alpha$1","validate$1","params$1","alpha_dash","validate$2","params$2","alpha_num","validate$4","Number","params$4","between","validate$5","params$5","isTarget","confirmed","validate$6","strVal","params$6","cast","digits","validate$8","multiple","re","emailStr","params$8","email","isNullOrUndefined","isEmptyArray","isCallable","toArray","arrayLike","_copyArray","validate$d","integer","validate$g","params$b","validate$k","params$e","validate$n","regex","params$g","validate$o","allowFalse","computesRequired","params$h","validatorPositive","validatorPassword","password","regExp","validPassword","validatorCreditCard","creditnum","cRegExp","validCreditCard","validatorUrlValidator","rule_required","rule_email","rule_min","rule_confirmed","rule_regex","rule_between","rule_alpha","rule_integer","rule_digits","rule_alpha_dash","alphaNum","rule_alpha_num","rule_length","url","messages","names","fields","root","factory","modules","installedModules","__webpack_require__","moduleId","getter","o","__esModule","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","find","query","register","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","__","constructor","ParchmentError","_super","attributes","classes","tags","types","BlotClass","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","tagName","TYPE","Definitions","Definition","blotName","attrName","keyName","tagNames","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","insert","text","newOp","retain","lastOp","unshift","chop","pop","predicate","partition","passed","failed","initial","changeLength","delete","start","end","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","prep","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","src","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","Function","desc","getPrototypeOf","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","values","attribute","BLOCK_ATTRIBUTE","def","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","shift","tail","context","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_e","_s","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","html","__quill","addContainer","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","on","events","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","lastRange","modify","update","contents","convert","setContents","readOnly","level","imports","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","deleteText","enabled","scrollTop","scrollIntoView","_this4","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","height","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","_this11","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","toolbar","modifier","strict","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","_map4","version","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","log","_len2","_key2","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","method","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","attributeBit","ATTRIBUTE","item","canAdd","Code","_block","_block2","_Inline","CodeBlock","_Block","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","prev","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","image","list","bullet","_toConsumableArray","arr2","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","positions","indexes","_position","startContainer","endContainer","childNodes","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","resolve","reject","then","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","metaKey","altKey","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","binding","normalize","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","charCodeAt","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","label","togglePicker","escape","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","trigger","Event","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","camelize","parts","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","delay","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","cur","curNode","callback","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","len","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","code","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","install","quillEditor","globalOptions","boundary","script","color","background","font","_options","_content","defaultOptions","Boolean","mounted","initialize","beforeDestroy","methods","$el","$refs","pasteHTML","$emit","setText","staticRenderFns","_compiled","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","$createElement","_self","_t","_v","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","els","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","mixins","provide","bvDropdown","inject","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","directionClass","boundaryClass","bvEvent","cancelable","vueTarget","menu","componentId","safeId","emitEvent","$off","focusToggler","showMenu","hideMenu","created","$_popper","$_hideTimeout","deactivated","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","createPopper","$nextTick","focusMenu","getPopperConfig","updatePopper","scheduleUpdate","_unused","placement","popperConfig","modifiers","flip","boundariesElement","preventOverflow","$root","rootCloseListener","vm","refocus","$once","_event","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","up","items","getItems","focusItem","settings","tagname","ps","__init","__uninit","$route","$isServer","updated","activated","state","scrolling","isAlive","scrollingThreshold","CustomEvent","initCustomEvent","reach","v","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","g","minScrollbarLength","maxScrollbarLength","railXWidth","isRtl","negativeScrollAdjustment","scrollLeft","containerWidth","contentWidth","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","scrollbarXRail","railYHeight","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarYRail","scrollbarX","scrollbarXLeft","scrollbarXWidth","railBorderXWidth","scrollbarY","scrollbarYTop","scrollbarYHeight","railBorderYWidth","T","clicking","unbind","ownerDocument","Element","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","main","thumb","rail","consuming","active","X","isEmpty","unbindAll","eventElements","eventElement","L","R","isWebKit","documentElement","supportsTouch","DocumentTouch","supportsIePointer","isChrome","clientWidth","containerHeight","clientHeight","scrollWidth","contentHeight","scrollHeight","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXMarginWidth","railXRatio","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYMarginHeight","railYRatio","pageY","pageX","E","wheelPropagation","isDefaultPrevented","contentDocument","shadowRoot","deltaX","deltaY","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","overflow","overflowX","overflowY","useBothWheelAxes","wheelSpeed","onwheel","onmousewheel","scrollY","targetTouches","pointerType","MSPOINTER_TYPE_MOUSE","clearInterval","swipeEasing","setInterval","isInitialized","PointerEvent","MSPointerEvent","P","wheel","touch","isNegativeScroll","marginRight","borderTopWidth","borderBottomWidth","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","$props","_g","$listeners","refs","css","media","sourceMap","singleton","styleSheet","cssText","btoa","unescape","encodeURIComponent","DEBUG","locals","linkClass","variant","BDropdownItem","inheritAttrs","computedAttrs","bvAttrs","closeDropdown","onClick","normalizeSlot","$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","forced","plain","formCustomMixin","custom","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","getParentOrHost","host","closest","includeCTX","_throttleTimeout","R_SPACE","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastElementChild","previousElementSibling","getRelativeScrollOffset","offsetLeft","winScroller","indexOfObject","includeSelf","gotSelf","elemCSS","dst","isRectEqual","rect1","rect2","throttle","ms","cancelThrottle","scrollBy","Polymer","Zepto","dom","setRect","unsetRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","repaint","easing","animated","sqrt","pow","initializeByDefault","PluginManager","mount","plugin","pluginEvent","sortable","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","bubbles","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","sum","_saveInputCheckedState","inputs","idx","checked","_nextTick","_cancelNextTick","_getDirection","originalTarget","isContentEditable","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","handleEvent","is","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","AutoScrollPlugin","AutoScroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","swapNodes","swapItem","n1","n2","i1","i2","p1","p2","isEqualNode","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","deselect","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","_vm","_h","staticStyle","$event","searchQuery","updateRouteQuery","_u","proxy","resetSortAndNavigate","perfectScrollbarSettings","model","$$v","tasks","expression","_l","task","isCompleted","handleTaskClick","updateTaskIsCompleted","nativeOn","resolveTagVariant","dueDate","assignee","avatar","resolveAvatarVariant","fullName","clearTaskData","removeTask","addTask","updateTask","isTaskHandlerSidebarActive","taskTags","directives","rawName","route","isDynamicRouteActive","Ripple","BButton","BListGroupItem","VuePerfectScrollbar","setup","taskFilters","namespaced","actions","fetchTasks","payload","axios","response","catch","taskData","post","taskLocal","isImportant","handleSubmit","onSubmit","validationContext","$set","errors","$store","appConfig","isRTL","assigneeOptions","tagOptions","editorOption","useTaskHandler","resetTaskLocal","require","includes","BSidebar","BFormGroup","BFormInput","BAvatar","BFormInvalidFeedback","vSelect","flatPickr","ValidationProvider","ValidationObserver","BDropdown","BFormCheckbox","BBadge","TodoLeftSidebar","TodoTaskHandlerSidebar","onUnmounted","router","description","isDeleted","sortBy","thisNumberValue","nativeToFixed","FORCED","fractionDigits","fractDigits","sign","multiply","c2","divide","dataToString","__WEBPACK_EXTERNAL_MODULE_a352__","toStringTag","LIBRARY","$export","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","defined","TO_STRING","that","at","$keys","enumBugKeys","dP","getKeys","Properties","wks","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","strfn","rxfn","arg","isObject","cof","ARG","tryGet","B","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","gt","contentWindow","write","uid","USE_SYMBOL","$exports","INCLUDES","createDesc","ObjectProto","bitmap","MATCH","regexpFlags","nativeExec","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","aLen","getSymbols","isEnum","__g","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","$replace","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","__webpack_exports__","insertNodeAt","removeNode","getConsole","cached","hit","parentElement","fatherNode","px","random","addToUnscopables","iterated","_k","Arguments","arrayIndexOf","STARTS_WITH","$startsWith","search","currentScript","scripts","readyState","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_nonIterableRest","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","elt","elm","_computeIndexes","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","componentOptions","getSlot","slot","scopedSlot","computeChildrenAndOffsets","headerOffset","footer","getComponentAttributes","$attrs","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","draggableComponent","transitionMode","noneFunctionalComponentMode","_computeChildrenAndOf","getTag","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","__vue__","_componentTag","emitChanges","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedInList","draggedContext","futureIndex","sendEvt","onDragEnd","Vue","vuedraggable","_watch","CLASS_NAME","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ariaLabel","ariaLabelledby","backdrop","backdropVariant","bgVariant","bodyClass","closeLabel","footerClass","headerClass","lazy","noCloseOnBackdrop","noCloseOnEsc","noCloseOnRouteChange","noEnforceFocus","noHeader","noHeaderClose","noSlide","shadow","sidebarClass","textVariant","zIndex","renderHeaderTitle","renderHeaderClose","renderHeader","$content","$title","$close","renderBody","renderFooter","$footer","renderContent","$header","renderBackdrop","localShow","onBackdropClick","transitionProps","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","hasTitle","hasNormalizedSlot","titleId","emitState","fullPath","$_returnFocusEl","listenOnRoot","handleToggle","handleSync","emitSync","onTopTrapFocus","tabables","enforceFocus","onBottomTrapFocus","onBeforeEnter","onAfterEnter","onAfterLeave","$sidebar","beforeEnter","afterEnter","afterLeave","$backdrop","noFade","$tabTrapTop","$tabTrapBottom","keydown","onInput","validator","fp","getElem","fpInput","$on","$watch","watchDisabled","immediate","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","bvGroup","isChecked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","today","resolvedRoute","currentRoute","useRouter","getCurrentInstance","reactive","toRefs","$router","BInputGroupAppend","BInputGroupText","actionTags","linkProps","action","_class","itemProps","_methods","buttonVariant","formRadioCheckMixin","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","stateClass","handleFocus","$button","$label","for","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","$split","btnProps","$toggle","mousedown","$menu","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","rounded","square","bvAvatarGroup","localSrc","computedVariant","computedRounded","fontSize","marginStyle","overlapScale","badgeStyle","onImgError","_class2","$badge","hasBadgeSlot","badgeText","pill"],"mappings":"sLAAA,uKAASA,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAY3M,IAAII,EAAoB,SAASA,EAAkBC,EAAKC,GACtD,IAAKD,EACH,OAAO,KAGT,IAAIE,GAAcF,EAAIG,UAAY,IAAID,WAClCE,EAAgBF,EAAWD,GAC/B,OAAOG,GAAiBL,EAAkBC,EAAIK,QAASJ,IAI9CK,EAAQ,eAAsB,eAASvB,EAAcA,EAAc,GAAI,eAAK,OAAiB,CAAC,UAAW,aAAc,GAAI,CACpIwB,KAAM,eAAS,QACfC,QAAS,eAAS,QAAmB,MAClC,SAKMC,EAAqB,aAAIC,OAAO,CACzCC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIC,EAAOD,EAAKC,KACZV,EAAQS,EAAKT,MACbW,EAASF,EAAKE,OACdV,EAAO,eAAW,eAAKD,EAAMC,MAAQ,KAAKW,QAAQ,OAAgB,IAItE,OAAOJ,EAAEP,GAAOR,EAAkBkB,EAAQ,QAAQE,OAAOZ,KAAuB,OAAY,eAAUS,EAAM,CAC1GV,MAAOvB,EAAcA,EAAc,GAAIuB,GAAQ,GAAI,CACjDC,KAAM,c,qWC/CDa,EAAa,SAAAC,GAAG,OAAKA,EAAM,IAAM,GAAH,QAAOA,EAAM,KAAMC,QAAQ,GAAE,KAAMD,GAEjEE,EAAQ,SAAC3B,GAA0B,IAAnB4B,EAAW,UAAH,6CAAG,IACtC,IAAK5B,EAAO,MAAO,GACnB,IAAM6B,EAAM7B,EAAM8B,WAEZC,EAAMF,EAAIG,MAAMJ,GAChBK,EAAmB,GAKzB,OAJAF,EAAItC,SAAQ,SAAAyC,GACV,IAAMC,EAAcD,EAAKE,OAAO,GAAGC,cAAgBH,EAAKI,MAAM,GAC9DL,EAAiBhD,KAAKkD,MAEjBF,EAAiBM,KAAK,MAGlBC,EAAa,SAAAxC,GACxB,IAAKA,EAAO,MAAO,GACnB,IAAMyC,EAAYzC,EAAMgC,MAAM,KAC9B,OAAOS,EAAUC,KAAI,SAAAR,GAAI,OAAIA,EAAKE,OAAO,GAAGC,iBAAeE,KAAK,KAUrDI,EAAa,SAAC3C,GAA4E,IAArE4C,EAAa,UAAH,6CAAG,CAAEC,MAAO,QAASC,IAAK,UAAWC,KAAM,WACrF,OAAK/C,EACE,IAAIgD,KAAKC,eAAe,QAASL,GAAYM,OAAO,IAAIC,KAAKnD,IADjDA,GAURoD,EAAyB,SAACpD,GAAsC,IAA/BqD,IAAsB,UAAH,+CACzDC,EAAO,IAAIH,KAAKnD,GAClB4C,EAAa,CAAEC,MAAO,QAASC,IAAK,WAMxC,OAJIO,GAAuBE,eAAQD,KACjCV,EAAa,CAAEY,KAAM,UAAWC,OAAQ,YAGnC,IAAIT,KAAKC,eAAe,QAASL,GAAYM,OAAO,IAAIC,KAAKnD,KAIzD0D,EAAa,SAAA1D,GAAK,OAAIA,EAAMsB,QAAQ,kBAAmB,M,kCCpDpE,IAAIqC,EAAY,EAAQ,QACpBC,EAAyB,EAAQ,QAIrCC,EAAOC,QAAU,GAAGC,QAAU,SAAgBC,GAC5C,IAAInC,EAAMoC,OAAOL,EAAuBM,OACpCC,EAAS,GACTC,EAAIT,EAAUK,GAClB,GAAII,EAAI,GAAKA,GAAKC,IAAU,MAAMC,WAAW,+BAC7C,KAAMF,EAAI,GAAIA,KAAO,KAAOvC,GAAOA,GAAc,EAAJuC,IAAOD,GAAUtC,GAC9D,OAAOsC,I,oCCZT,oIAKWzD,EAAQ,eAAsB,CACvC6D,GAAI,eAAS,QACbC,OAAQ,eAAS,QAAmB,GACpCC,WAAY,eAAS,QAAmB,GACxCC,UAAW,eAAS,QAAmB,IACtC,QAGQC,EAAqB,aAAI7D,OAAO,CACzCC,KAAM,OACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SACpB,OAAO1D,EAAE,OAAQ,eAAUE,EAAM,CAC/ByD,MAAO,CACL,cAAenE,EAAM8D,OACrB,gBAAiB9D,EAAMgE,WAEzBI,MAAO,CACLP,GAAI7D,EAAM6D,GACVE,WAAY/D,EAAM+D,cAElBG,O,kCC7BR,IAAIG,EAAgC,EAAQ,QACxCC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBrB,EAAyB,EAAQ,QACjCsB,EAAqB,EAAQ,QAC7BC,EAAqB,EAAQ,QAC7BC,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBC,EAAQ,EAAQ,QAEhBC,EAAY,GAAGvG,KACfwG,EAAMC,KAAKD,IACXE,EAAa,WAGbC,GAAcL,GAAM,WAAc,OAAQM,OAAOF,EAAY,QAGjEZ,EAA8B,QAAS,GAAG,SAAUe,EAAOC,EAAaC,GACtE,IAAIC,EAmDJ,OAzCEA,EAR2B,KAA3B,OAAOjE,MAAM,QAAQ,IACc,GAAnC,OAAOA,MAAM,QAAS,GAAGzC,QACO,GAAhC,KAAKyC,MAAM,WAAWzC,QACU,GAAhC,IAAIyC,MAAM,YAAYzC,QACtB,IAAIyC,MAAM,QAAQzC,OAAS,GAC3B,GAAGyC,MAAM,MAAMzC,OAGC,SAAU2G,EAAWC,GACnC,IAAIC,EAASnC,OAAOL,EAAuBM,OACvCmC,OAAgBC,IAAVH,EAAsBR,EAAaQ,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,QAAkBC,IAAdJ,EAAyB,MAAO,CAACE,GAErC,IAAKpB,EAASkB,GACZ,OAAOH,EAAYQ,KAAKH,EAAQF,EAAWG,GAE7C,IAQIG,EAAOC,EAAWC,EARlBC,EAAS,GACTC,GAASV,EAAUW,WAAa,IAAM,KAC7BX,EAAUY,UAAY,IAAM,KAC5BZ,EAAUa,QAAU,IAAM,KAC1Bb,EAAUc,OAAS,IAAM,IAClCC,EAAgB,EAEhBC,EAAgB,IAAIrB,OAAOK,EAAU1G,OAAQoH,EAAQ,KAEzD,MAAOJ,EAAQlB,EAAWiB,KAAKW,EAAed,GAAS,CAErD,GADAK,EAAYS,EAAcT,UACtBA,EAAYQ,IACdN,EAAO1H,KAAKmH,EAAO9D,MAAM2E,EAAeT,EAAMW,QAC1CX,EAAMjH,OAAS,GAAKiH,EAAMW,MAAQf,EAAO7G,QAAQiG,EAAUtG,MAAMyH,EAAQH,EAAMlE,MAAM,IACzFoE,EAAaF,EAAM,GAAGjH,OACtB0H,EAAgBR,EACZE,EAAOpH,QAAU8G,GAAK,MAExBa,EAAcT,YAAcD,EAAMW,OAAOD,EAAcT,YAK7D,OAHIQ,IAAkBb,EAAO7G,QACvBmH,GAAeQ,EAAcE,KAAK,KAAKT,EAAO1H,KAAK,IAClD0H,EAAO1H,KAAKmH,EAAO9D,MAAM2E,IACzBN,EAAOpH,OAAS8G,EAAMM,EAAOrE,MAAM,EAAG+D,GAAOM,GAG7C,IAAI3E,WAAMsE,EAAW,GAAG/G,OACjB,SAAU2G,EAAWC,GACnC,YAAqBG,IAAdJ,GAAqC,IAAVC,EAAc,GAAKJ,EAAYQ,KAAKrC,KAAMgC,EAAWC,IAEpEJ,EAEhB,CAGL,SAAeG,EAAWC,GACxB,IAAIkB,EAAIzD,EAAuBM,MAC3BoD,OAAwBhB,GAAbJ,OAAyBI,EAAYJ,EAAUJ,GAC9D,YAAoBQ,IAAbgB,EACHA,EAASf,KAAKL,EAAWmB,EAAGlB,GAC5BF,EAAcM,KAAKtC,OAAOoD,GAAInB,EAAWC,IAO/C,SAAUoB,EAAQpB,GAChB,IAAIqB,EAAMxB,EAAgBC,EAAesB,EAAQrD,KAAMiC,EAAOF,IAAkBF,GAChF,GAAIyB,EAAIC,KAAM,OAAOD,EAAIxH,MAEzB,IAAI0H,EAAKzC,EAASsC,GACdI,EAAI1D,OAAOC,MACX0D,EAAI1C,EAAmBwC,EAAI7B,QAE3BgC,EAAkBH,EAAGX,QACrBH,GAASc,EAAGb,WAAa,IAAM,KACtBa,EAAGZ,UAAY,IAAM,KACrBY,EAAGX,QAAU,IAAM,KACnBnB,EAAa,IAAM,KAI5B0B,EAAW,IAAIM,EAAEhC,EAAa8B,EAAK,OAASA,EAAGlI,OAAS,IAAKoH,GAC7DP,OAAgBC,IAAVH,EAAsBR,EAAaQ,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,GAAiB,IAAbsB,EAAEpI,OAAc,OAAuC,OAAhC8F,EAAeiC,EAAUK,GAAc,CAACA,GAAK,GACxE,IAAIG,EAAI,EACJC,EAAI,EACJC,EAAI,GACR,MAAOD,EAAIJ,EAAEpI,OAAQ,CACnB+H,EAASb,UAAYb,EAAamC,EAAI,EACtC,IACIE,EADAC,EAAI7C,EAAeiC,EAAU1B,EAAa+B,EAAIA,EAAErF,MAAMyF,IAE1D,GACQ,OAANG,IACCD,EAAIxC,EAAIL,EAASkC,EAASb,WAAab,EAAa,EAAImC,IAAKJ,EAAEpI,WAAauI,EAE7EC,EAAI5C,EAAmBwC,EAAGI,EAAGF,OACxB,CAEL,GADAG,EAAE/I,KAAK0I,EAAErF,MAAMwF,EAAGC,IACdC,EAAEzI,SAAW8G,EAAK,OAAO2B,EAC7B,IAAK,IAAI3I,EAAI,EAAGA,GAAK6I,EAAE3I,OAAS,EAAGF,IAEjC,GADA2I,EAAE/I,KAAKiJ,EAAE7I,IACL2I,EAAEzI,SAAW8G,EAAK,OAAO2B,EAE/BD,EAAID,EAAIG,GAIZ,OADAD,EAAE/I,KAAK0I,EAAErF,MAAMwF,IACRE,OAGTpC,I,6DCrIJ,8DAGauC,EAAwC,WACnD,IAAMC,EAAyBC,kBAAI,GAE7BC,EAAoBC,uBAAS,kBAAMC,OAAMC,QAAQ,4BAMvD,OALAC,mBAAMJ,GAAmB,SAACK,EAAKC,GAEd,OAAXA,GAA2B,OAARD,IAAcP,EAAuBpI,OAAQ,MAG/D,CACLoI,4B,mtDCbJ,uHAASzI,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAQpM,IAAIW,EAAQ,eAAsB,CACvCmI,MAAO,eAAS,QAAmB,GACnCC,WAAY,eAAS,QAA0B,GAC/CC,IAAK,eAAS,OAAkB,QAC/B,SAGQC,EAA0B,aAAIlI,OAAO,CAC9CC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SAChBkE,EAAkC,KAArBpI,EAAMoI,YAA2BpI,EAAMoI,WACxDA,GAAapI,EAAMmI,OAAgBC,EACnC,IAAIG,EAAgB,CAClBC,YAAa,aACbrE,MAAOlF,EAAgB,CACrB,mBAAoBe,EAAMmI,MAC1B,yBAAwC,IAAfC,GACxB,yBAAyBvH,OAAOuH,GAAa,eAASA,KAE3D,OAAO5H,EAAER,EAAMqI,IAAK,eAAU3H,EAAM6H,GAAgBrE,O,kCChCxD,uHAAStG,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAQpM,IAAIW,EAAQ,eAAsB,eAAK,OAAuB,CAAC,WAAY,SAGvEyI,EAAkC,aAAIrI,OAAO,CACtDC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SAEpB,OAAO1D,EAAE,OAAkB,eAAUE,EAAM,CACzCV,MAAOvB,EAAcA,EAAc,GAAIuB,GAAQ,GAAI,CACjD0I,QAAQ,MAERxE,O,uBC5BR,IAAIyE,EAAU,EAAQ,QAItBxF,EAAOC,QAAU,SAAU9D,GACzB,GAAoB,iBAATA,GAAuC,UAAlBqJ,EAAQrJ,GACtC,MAAMsJ,UAAU,wBAElB,OAAQtJ,I,oCCRV,gJAMWU,EAAQ,eAAsB,CACvC0I,OAAQ,eAAS,QAAmB,GACpC7E,GAAI,eAAS,QACbgF,OAAQ,eAAS,QAAmB,GACpCR,IAAK,eAAS,OAAkB,QAC/B,SAGQS,EAAgC,aAAI1I,OAAO,CACpDC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SAChBwE,EAAS1I,EAAM0I,OACnB,OAAOlI,EAAER,EAAMqI,IAAK,eAAU3H,EAAM,CAClCyD,MAAO,CACL,qBAAsBuE,EACtB,uBAAwBA,GAE1BtE,MAAO,CACLP,GAAI7D,EAAM6D,MAEV7D,EAAM6I,OAAS,CAACrI,EAAE,OAAiB0D,IAAaA,O,oCC/BxD,kDAMe,SAAS6E,EAAeC,GAAyC,IAA1BC,EAAgB,UAAH,6CAAG,aAM9DC,EAAkBvB,iBAAI,MAOtBwB,EAAgB,WACpBD,EAAgB5J,MAAM8J,SASlBC,EAAqB,SAAH,GAA6E,IAAvEC,EAAK,EAALA,MAAOtF,EAAS,EAATA,UAAqBuF,EAAa,EAAvBC,SAAyBC,EAAO,EAAPA,QAAO,IAAEC,aAAK,IAAG,OAAI,EACtFjG,EAAS6F,GAAStF,EAAY0F,EAAQ,KAC5C,OAAQH,GAAkBE,EAAiBhG,EAAP,MAQhCkG,EAAY,WAChBX,IACAY,uBAAS,WACPT,QASEU,EAAY,WAChBZ,IACAW,uBAAS,WACPT,QAIJ,MAAO,CACLD,kBACAC,gBACAE,qBACAM,YACAE,e,kCC9DJ,IAAIxF,EAAgC,EAAQ,QACxCE,EAAW,EAAQ,QACnBuF,EAAW,EAAQ,QACnBpF,EAAW,EAAQ,QACnBzB,EAAY,EAAQ,QACpBC,EAAyB,EAAQ,QACjCuB,EAAqB,EAAQ,QAC7BsF,EAAa,EAAQ,QAErBC,EAAMhF,KAAKgF,IACXjF,EAAMC,KAAKD,IACXkF,EAAQjF,KAAKiF,MACbC,EAAuB,4BACvBC,EAAgC,oBAEhCC,EAAgB,SAAUC,GAC5B,YAAczE,IAAPyE,EAAmBA,EAAK9G,OAAO8G,IAIxChG,EAA8B,UAAW,GAAG,SAAUiG,EAASC,EAAejF,EAAiBkF,GAC7F,IAAIC,EAA+CD,EAAOC,6CACtDC,EAAmBF,EAAOE,iBAC1BC,EAAoBF,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiBG,EAAaC,GAC5B,IAAIlE,EAAIzD,EAAuBM,MAC3BtC,OAA0B0E,GAAfgF,OAA2BhF,EAAYgF,EAAYN,GAClE,YAAoB1E,IAAb1E,EACHA,EAAS2E,KAAK+E,EAAajE,EAAGkE,GAC9BN,EAAc1E,KAAKtC,OAAOoD,GAAIiE,EAAaC,IAIjD,SAAUhE,EAAQgE,GAChB,IACIJ,GAAgDC,GACzB,kBAAjBG,IAA0E,IAA7CA,EAAaC,QAAQH,GAC1D,CACA,IAAI7D,EAAMxB,EAAgBiF,EAAe1D,EAAQrD,KAAMqH,GACvD,GAAI/D,EAAIC,KAAM,OAAOD,EAAIxH,MAG3B,IAAI0H,EAAKzC,EAASsC,GACdI,EAAI1D,OAAOC,MAEXuH,EAA4C,oBAAjBF,EAC1BE,IAAmBF,EAAetH,OAAOsH,IAE9C,IAAIG,EAAShE,EAAGgE,OAChB,GAAIA,EAAQ,CACV,IAAIC,EAAcjE,EAAGX,QACrBW,EAAGjB,UAAY,EAEjB,IAAImF,EAAU,GACd,MAAO,EAAM,CACX,IAAIzH,EAASsG,EAAW/C,EAAIC,GAC5B,GAAe,OAAXxD,EAAiB,MAGrB,GADAyH,EAAQ3M,KAAKkF,IACRuH,EAAQ,MAEb,IAAIG,EAAW5H,OAAOE,EAAO,IACZ,KAAb0H,IAAiBnE,EAAGjB,UAAYtB,EAAmBwC,EAAGvC,EAASsC,EAAGjB,WAAYkF,IAKpF,IAFA,IAAIG,EAAoB,GACpBC,EAAqB,EAChB1M,EAAI,EAAGA,EAAIuM,EAAQrM,OAAQF,IAAK,CACvC8E,EAASyH,EAAQvM,GAUjB,IARA,IAAI2M,EAAU/H,OAAOE,EAAO,IACxB8H,EAAWvB,EAAIjF,EAAI9B,EAAUQ,EAAOgD,OAAQQ,EAAEpI,QAAS,GACvD2M,EAAW,GAMNC,EAAI,EAAGA,EAAIhI,EAAO5E,OAAQ4M,IAAKD,EAASjN,KAAK6L,EAAc3G,EAAOgI,KAC3E,IAAIC,EAAgBjI,EAAOkI,OAC3B,GAAIZ,EAAmB,CACrB,IAAIa,EAAe,CAACN,GAASzK,OAAO2K,EAAUD,EAAUtE,QAClCrB,IAAlB8F,GAA6BE,EAAarN,KAAKmN,GACnD,IAAIG,EAActI,OAAOsH,EAAarM,WAAMoH,EAAWgG,SAEvDC,EAAcC,EAAgBR,EAASrE,EAAGsE,EAAUC,EAAUE,EAAeb,GAE3EU,GAAYF,IACdD,GAAqBnE,EAAErF,MAAMyJ,EAAoBE,GAAYM,EAC7DR,EAAqBE,EAAWD,EAAQzM,QAG5C,OAAOuM,EAAoBnE,EAAErF,MAAMyJ,KAKvC,SAASS,EAAgBR,EAASnK,EAAKoK,EAAUC,EAAUE,EAAeG,GACxE,IAAIE,EAAUR,EAAWD,EAAQzM,OAC7BmN,EAAIR,EAAS3M,OACbX,EAAUiM,EAKd,YAJsBvE,IAAlB8F,IACFA,EAAgB5B,EAAS4B,GACzBxN,EAAUgM,GAELK,EAAc1E,KAAKgG,EAAa3N,GAAS,SAAU4H,EAAOmG,GAC/D,IAAIC,EACJ,OAAQD,EAAGvK,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO4J,EACjB,IAAK,IAAK,OAAOnK,EAAIS,MAAM,EAAG2J,GAC9B,IAAK,IAAK,OAAOpK,EAAIS,MAAMmK,GAC3B,IAAK,IACHG,EAAUR,EAAcO,EAAGrK,MAAM,GAAI,IACrC,MACF,QACE,IAAI8B,GAAKuI,EACT,GAAU,IAANvI,EAAS,OAAOoC,EACpB,GAAIpC,EAAIsI,EAAG,CACT,IAAIG,EAAIlC,EAAMvG,EAAI,IAClB,OAAU,IAANyI,EAAgBrG,EAChBqG,GAAKH,OAA8BpG,IAApB4F,EAASW,EAAI,GAAmBF,EAAGvK,OAAO,GAAK8J,EAASW,EAAI,GAAKF,EAAGvK,OAAO,GACvFoE,EAEToG,EAAUV,EAAS9H,EAAI,GAE3B,YAAmBkC,IAAZsG,EAAwB,GAAKA,U,oCCnI1C,mLAASjN,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAapM,IAAIW,EAAQ,eAAsB,CACvC0I,OAAQ,eAAS,QACjB0D,WAAY,eAAS,QACrBvI,GAAI,eAAS,QACbwI,QAAS,eAAS,QAClBC,YAAa,eAAS,QACtBC,KAAM,eAAS,QACflE,IAAK,eAAS,OAAkB,QAC/B,SAGQmE,EAA2B,aAAIpM,OAAO,CAC/CC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZ+L,EAAQhM,EAAKgM,MACbC,EAAcjM,EAAKiM,YACnBL,EAAUrM,EAAMqM,QAChBC,EAActM,EAAMsM,YACpB5D,EAAS1I,EAAM0I,OACf0D,EAAapM,EAAMoM,WACnBG,EAAOvM,EAAMuM,KACbI,EAAeD,GAAe,GAC9BE,EAASH,IACTI,EAAY,GACZC,EAAWtM,IACXuM,EAAiB,eAAkB,OAAmBJ,EAAcC,IAEpEG,GAAkBV,GAAWC,KAC/BQ,EAAWtM,EAAE,OAAoB,CAACuM,EAAiB,eAAc,OAAmBF,EAAWF,EAAcC,GAAUpM,EAAE,OAAiB,CACxIwM,SAAU,eAAWV,EAAaD,QAItC,IAAIY,EAAUzM,IACV0M,EAAgB,eAAkB,OAAkBP,EAAcC,GAQtE,OANIM,GAAiBxE,GAAU0D,KAC7Ba,EAAUzM,EAAE,OAAmB,CAAC0M,EAAgB,eAAc,OAAkBL,EAAWF,EAAcC,GAAUpM,EAAE,OAAiB,CACpIwM,SAAU,eAAWZ,EAAY1D,QAI9BlI,EAAER,EAAMqI,IAAK,eAAU3H,EAAM,CAClC8H,YAAa,cACbrE,MAAOlF,EAAgB,GAAI,eAAe4B,OAAO0L,GAAOA,GACxDnI,MAAO,CACLP,GAAI7D,EAAM6D,IAAM,KAChBsJ,KAAM,WAEN,CAACL,EAAU,eAAc,OAAmBD,EAAWF,EAAcC,GAASK,Q,2CClE/E,IAAIG,EAAQ,CACf,WACA,UACA,cACA,YACA,YACA,gBACA,SACA,gBACA,UACA,gBACA,eACA,yBAEO,EAAW,CAClBC,SAAU,GACVC,YAAY,EACZC,qBAAqB,EACrBC,UAAW,SACXC,UAAU,EACVC,cAAe,qBACfC,QAA2B,kBAAXC,SACoC,IAAhDA,OAAOC,UAAUC,UAAUhD,QAAQ,QACvCiD,eAAgB,SAChBC,qBAAqB,EACrBC,YAAY,EACZC,eAAe,EACfC,YAAa,KACbC,WAAY,QACZC,YAAa,GACbC,cAAe,EACfC,eAAgB,EAChBC,QAAS,GACTC,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,aAAc,SAAUC,GACpB,MAA0B,qBAAZC,SAA2BA,QAAQC,KAAKF,IAE1DG,QAAS,SAAUC,GACf,IAAIrM,EAAO,IAAIH,KAAKwM,EAAUC,WAC9BtM,EAAKuM,SAAS,EAAG,EAAG,EAAG,GACvBvM,EAAKwM,QAAQxM,EAAKyM,UAAY,GAAMzM,EAAK0M,SAAW,GAAK,GACzD,IAAIC,EAAQ,IAAI9M,KAAKG,EAAK4M,cAAe,EAAG,GAC5C,OAAQ,EACJxK,KAAKyK,QAAQ7M,EAAKsM,UAAYK,EAAML,WAAa,MAC7C,GACEK,EAAMD,SAAW,GAAK,GACxB,IAEZI,cAAe,EACfC,qBAAsB,GACtB7L,QAAQ,EACR8L,OAAQ,UACRC,gBAAiB,EACjBC,KAAM,SACNC,kBAAmB,WACnBC,UAAW,yOACXC,YAAY,EACZC,IAAK,IAAIzN,KACT0N,SAAU,GACVC,QAAS,GACTC,YAAa,GACbC,UAAW,GACXC,UAAW,GACXC,cAAe,GACfC,OAAQ,GACRC,cAAe,GACfC,QAAS,GACTC,cAAe,GACfC,aAAc,GACdC,sBAAuB,GACvBC,QAAS,GACTxF,SAAU,OACVyF,qBAAiBpL,EACjBqL,UAAW,uOACXC,uBAAuB,EACvBC,WAAY,EACZC,QAAQ,EACRC,WAAW,EACXC,aAAa,EACbC,MAAM,GCjFCC,EAAU,CACjBC,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGRE,YAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC1DC,eAAgB,EAChBC,QAAS,SAAUC,GACf,IAAIC,EAAID,EAAM,IACd,GAAIC,EAAI,GAAKA,EAAI,GACb,MAAO,KACX,OAAQA,EAAI,IACR,KAAK,EACD,MAAO,KACX,KAAK,EACD,MAAO,KACX,KAAK,EACD,MAAO,KACX,QACI,MAAO,OAGnBC,eAAgB,OAChBC,iBAAkB,KAClBC,YAAa,sBACbC,YAAa,kBACbC,KAAM,CAAC,KAAM,MACbC,cAAe,OACfC,eAAgB,QAChBC,cAAe,OACfC,gBAAiB,SACjBrB,WAAW,GAEA,ICvEJsB,EAAM,SAAUC,EAAQ/T,GAE/B,YADe,IAAXA,IAAqBA,EAAS,IAC1B,MAAQ+T,GAAQhR,OAAgB,EAAV/C,IAEvB,EAAM,SAAUgU,GAAQ,OAAiB,IAATA,EAAgB,EAAI,GACxD,SAASC,EAASC,EAAIC,GACzB,IAAIC,EACJ,OAAO,WACH,IAAIC,EAAQ1P,KACR2P,EAAOvU,UACXwU,aAAaH,GACbA,EAAII,YAAW,WAAc,OAAON,EAAGvU,MAAM0U,EAAOC,KAAUH,IAG/D,IAAIM,EAAW,SAAUjU,GAC5B,OAAOA,aAAekU,MAAQlU,EAAM,CAACA,ICflC,SAASmU,EAAYC,EAAMC,EAAWb,GACzC,IAAa,IAATA,EACA,OAAOY,EAAKE,UAAUC,IAAIF,GAC9BD,EAAKE,UAAUE,OAAOH,GAEnB,SAASI,EAAczL,EAAKqL,EAAWK,GAC1C,IAAIxM,EAAIqG,OAAOoG,SAASF,cAAczL,GAMtC,OALAqL,EAAYA,GAAa,GACzBK,EAAUA,GAAW,GACrBxM,EAAEmM,UAAYA,OACE9N,IAAZmO,IACAxM,EAAE0M,YAAcF,GACbxM,EAEJ,SAAS2M,EAAUC,GACtB,MAAOA,EAAKC,WACRD,EAAKE,YAAYF,EAAKC,YAEvB,SAASE,EAAWH,EAAMI,GAC7B,OAAIA,EAAUJ,GACHA,EACFA,EAAKK,WACHF,EAAWH,EAAKK,WAAYD,QADlC,EAIF,SAASE,EAAkBC,EAAgBC,GAC9C,IAAIC,EAAUd,EAAc,MAAO,mBAAoBe,EAAWf,EAAc,QAAS,YAAcY,GAAiBI,EAAUhB,EAAc,OAAQ,WAAYiB,EAAYjB,EAAc,OAAQ,aAQtM,IAPiD,IAA7CjG,UAAUC,UAAUhD,QAAQ,YAC5B+J,EAASG,KAAO,UAGhBH,EAASG,KAAO,OAChBH,EAASI,QAAU,aAEVrP,IAAT+O,EACA,IAAK,IAAI3V,KAAO2V,EACZE,EAASK,aAAalW,EAAK2V,EAAK3V,IAIxC,OAHA4V,EAAQO,YAAYN,GACpBD,EAAQO,YAAYL,GACpBF,EAAQO,YAAYJ,GACbH,EAEJ,SAASQ,EAAeC,GAC3B,IACI,GAAkC,oBAAvBA,EAAMC,aAA6B,CAC1C,IAAIC,EAAOF,EAAMC,eACjB,OAAOC,EAAK,GAEhB,OAAOF,EAAM3W,OAEjB,MAAO8W,GACH,OAAOH,EAAM3W,QClDrB,IAAI+W,EAAY,aACLC,EAAa,SAAUC,EAAajE,EAAW9B,GAAU,OAAOA,EAAOgC,OAAOF,EAAY,YAAc,YAAYiE,IACpHC,EAAY,CACnBC,EAAGJ,EACHK,EAAG,SAAUC,EAASC,EAAWpG,GAC7BmG,EAAQE,SAASrG,EAAOgC,OAAOD,SAAS7G,QAAQkL,KAEpDE,EAAG,SAAUH,EAASjT,GAClBiT,EAAQ5G,UAAU4G,EAAQI,YAAc,GAAK,GAAK,GAAKC,WAAWtT,KAEtEuT,EAAG,SAAUN,EAASjT,GAClBiT,EAAQ5G,SAASiH,WAAWtT,KAEhCwT,EAAG,SAAUP,EAAS3T,GAClB2T,EAAQ3G,QAAQgH,WAAWhU,KAE/BmU,EAAG,SAAUR,EAASzD,EAAM1C,GACxBmG,EAAQ5G,SAAU4G,EAAQI,WAAa,GACnC,GAAK,EAAI,IAAIhR,OAAOyK,EAAO0C,KAAK,GAAI,KAAK5L,KAAK4L,MAEtDkE,EAAG,SAAUT,EAASU,EAAY7G,GAC9BmG,EAAQE,SAASrG,EAAOgC,OAAOF,UAAU5G,QAAQ2L,KAErDxP,EAAG,SAAU8O,EAASW,GAClBX,EAAQY,WAAWP,WAAWM,KAElCE,EAAG,SAAUC,EAAGC,GAAe,OAAO,IAAIrU,KAA+B,IAA1B2T,WAAWU,KAC1DC,EAAG,SAAUhB,EAASiB,EAASpH,GAC3B,IAAIqH,EAAaC,SAASF,GACtBpU,EAAO,IAAIH,KAAKsT,EAAQvG,cAAe,EAAG,EAAuB,GAAlByH,EAAa,GAAQ,EAAG,EAAG,EAAG,GAEjF,OADArU,EAAKwM,QAAQxM,EAAKyM,UAAYzM,EAAK0M,SAAWM,EAAOkC,gBAC9ClP,GAEXuU,EAAG,SAAUpB,EAAS1T,GAClB0T,EAAQqB,YAAYhB,WAAW/T,KAEnCgV,EAAG,SAAUR,EAAGS,GAAW,OAAO,IAAI7U,KAAK6U,IAC3CC,EAAG,SAAUxB,EAAS3T,GAClB2T,EAAQ3G,QAAQgH,WAAWhU,KAE/B5B,EAAG,SAAUuV,EAASjT,GAClBiT,EAAQ5G,UAAU4G,EAAQI,YAAc,GAAK,GAAK,GAAKC,WAAWtT,KAEtEnE,EAAG,SAAUoX,EAASyB,GAClBzB,EAAQ0B,WAAWrB,WAAWoB,KAElC/L,EAAG,SAAUsK,EAAS3T,GAClB2T,EAAQ3G,QAAQgH,WAAWhU,KAE/BsV,EAAGjC,EACHzJ,EAAG,SAAU+J,EAAS5T,GAClB4T,EAAQE,SAASG,WAAWjU,GAAS,IAEzCuB,EAAG,SAAUqS,EAAS5T,GAClB4T,EAAQE,SAASG,WAAWjU,GAAS,IAEzC8P,EAAG,SAAU8D,EAASW,GAClBX,EAAQY,WAAWP,WAAWM,KAElCiB,EAAG,SAAUd,EAAGe,GACZ,OAAO,IAAInV,KAAK2T,WAAWwB,KAE/BC,EAAGpC,EACHqC,EAAG,SAAU/B,EAAS1T,GAClB0T,EAAQqB,YAAY,IAAOhB,WAAW/T,MAGnC0V,EAAa,CACpBlC,EAAG,GACHC,EAAG,GACHI,EAAG,eACHG,EAAG,eACHC,EAAG,mBACHC,EAAG,GACHC,EAAG,GACHvP,EAAG,eACH2P,EAAG,OACHG,EAAG,eACHI,EAAG,WACHE,EAAG,OACHE,EAAG,eACH/W,EAAG,eACH7B,EAAG,eACH8M,EAAG,eACHiM,EAAG,GACH1L,EAAG,eACHtI,EAAG,eACHuO,EAAG,eACH0F,EAAG,OACHE,EAAG,eACHC,EAAG,YAEI,EAAU,CACjBT,EAAG,SAAUzU,GAAQ,OAAOA,EAAKoV,eACjCnC,EAAG,SAAUjT,EAAMgN,EAAQqI,GACvB,OAAOrI,EAAO6B,SAASC,UAAU,EAAQmG,EAAEjV,EAAMgN,EAAQqI,KAE7DnC,EAAG,SAAUlT,EAAMgN,EAAQqI,GACvB,OAAOvC,EAAW,EAAQhS,EAAEd,EAAMgN,EAAQqI,GAAW,GAAG,EAAOrI,IAEnEsG,EAAG,SAAUtT,EAAMgN,EAAQqI,GACvB,OAAOtF,EAAI,EAAQnS,EAAEoC,EAAMgN,EAAQqI,KAEvC5B,EAAG,SAAUzT,GAAQ,OAAO+P,EAAI/P,EAAKuT,aACrCG,EAAG,SAAU1T,EAAMgN,GACf,YAA0BhK,IAAnBgK,EAAOmC,QACRnP,EAAKyM,UAAYO,EAAOmC,QAAQnP,EAAKyM,WACrCzM,EAAKyM,WAEfkH,EAAG,SAAU3T,EAAMgN,GAAU,OAAOA,EAAO0C,KAAK,EAAI1P,EAAKuT,WAAa,MACtEK,EAAG,SAAU5T,EAAMgN,GACf,OAAO8F,EAAW9S,EAAKsV,YAAY,EAAMtI,IAE7C3I,EAAG,SAAUrE,GAAQ,OAAO+P,EAAI/P,EAAKuV,eACrCvB,EAAG,SAAUhU,GAAQ,OAAOA,EAAKsM,UAAY,KAC7C6H,EAAG,SAAUnU,EAAMiU,EAAGoB,GAClB,OAAOA,EAAQjJ,QAAQpM,IAE3BuU,EAAG,SAAUvU,GAAQ,OAAO+P,EAAI/P,EAAK4M,cAAe,IACpD+H,EAAG,SAAU3U,GAAQ,OAAO+P,EAAI/P,EAAKyM,YACrC7O,EAAG,SAAUoC,GAAQ,OAAQA,EAAKuT,WAAa,GAAKvT,EAAKuT,WAAa,GAAK,IAC3ExX,EAAG,SAAUiE,GAAQ,OAAO+P,EAAI/P,EAAKwV,eACrC3M,EAAG,SAAU7I,GAAQ,OAAOA,EAAKyM,WACjCqI,EAAG,SAAU9U,EAAMgN,GACf,OAAOA,EAAO6B,SAASE,SAAS/O,EAAK0M,WAEzCtD,EAAG,SAAUpJ,GAAQ,OAAO+P,EAAI/P,EAAKsV,WAAa,IAClDxU,EAAG,SAAUd,GAAQ,OAAOA,EAAKsV,WAAa,GAC9CjG,EAAG,SAAUrP,GAAQ,OAAOA,EAAKuV,cACjCR,EAAG,SAAU/U,GAAQ,OAAOA,EAAKsM,WACjC2I,EAAG,SAAUjV,GAAQ,OAAOA,EAAK0M,UACjCwI,EAAG,SAAUlV,GAAQ,OAAOW,OAAOX,EAAK4M,eAAe6I,UAAU,KCjI1DC,EAAsB,SAAUC,GACvC,IAAIC,EAAKD,EAAGE,OAAQA,OAAgB,IAAPD,EAAgB,EAAWA,EAAIE,EAAKH,EAAGI,KAAMA,OAAc,IAAPD,EAAgBlH,EAAUkH,EAAIE,EAAKL,EAAGM,SAAUA,OAAkB,IAAPD,GAAwBA,EACpK,OAAO,SAAU7C,EAAS+C,EAAMC,GAC5B,IAAInJ,EAASmJ,GAAkBJ,EAC/B,YAA0B/S,IAAtB6S,EAAOxW,YAA6B4W,EAGjCC,EACFxX,MAAM,IACNU,KAAI,SAAUgX,EAAGra,EAAG0C,GACrB,OAAO,EAAQ2X,IAAqB,OAAf3X,EAAI1C,EAAI,GACvB,EAAQqa,GAAGjD,EAASnG,EAAQ6I,GACtB,OAANO,EACIA,EACA,MAETnX,KAAK,IAXC4W,EAAOxW,WAAW8T,EAAS+C,EAAMlJ,KAczCqJ,EAAmB,SAAUV,GACpC,IAAIC,EAAKD,EAAGE,OAAQA,OAAgB,IAAPD,EAAgB,EAAWA,EAAIE,EAAKH,EAAGI,KAAMA,OAAc,IAAPD,EAAgBlH,EAAUkH,EAC3G,OAAO,SAAU9V,EAAMsW,EAAaC,EAAUC,GAC1C,GAAa,IAATxW,GAAeA,EAAnB,CAEA,IACIyW,EADAzJ,EAASwJ,GAAgBT,EAEzBW,EAAW1W,EACf,GAAIA,aAAgBH,KAChB4W,EAAa,IAAI5W,KAAKG,EAAKsM,gBAC1B,GAAoB,kBAATtM,QACKgD,IAAjBhD,EAAK5B,QACLqY,EAAa,IAAI5W,KAAKG,QACrB,GAAoB,kBAATA,EAAmB,CAC/B,IAAIJ,EAAS0W,IAAgBT,GAAU,GAAUrK,WAC7CmL,EAAUhW,OAAOX,GAAM4W,OAC3B,GAAgB,UAAZD,EACAF,EAAa,IAAI5W,KACjB0W,GAAW,OAEV,GAAIV,GAAUA,EAAOgB,UACtBJ,EAAaZ,EAAOgB,UAAU7W,EAAMJ,QAEnC,GAAI,KAAKkE,KAAK6S,IACf,OAAO7S,KAAK6S,GACZF,EAAa,IAAI5W,KAAKG,OAErB,CAED,IADA,IAAI0I,OAAU,EAAQoO,EAAM,GACnB/a,EAAI,EAAGgb,EAAa,EAAGC,EAAW,GAAIjb,EAAI6D,EAAO3D,OAAQF,IAAK,CACnE,IAAIkb,EAAQrX,EAAO7D,GACfmb,EAAwB,OAAVD,EACdE,EAA4B,OAAlBvX,EAAO7D,EAAI,IAAemb,EACxC,GAAI/B,EAAW8B,KAAWE,EAAS,CAC/BH,GAAY7B,EAAW8B,GACvB,IAAI/T,EAAQ,IAAIX,OAAOyU,GAAUI,KAAKpX,GAClCkD,IAAUwF,GAAU,IACpBoO,EAAc,MAAVG,EAAgB,OAAS,WAAW,CACpC9G,GAAI6C,EAAUiE,GACd5R,IAAKnC,IAAQ6T,UAIfG,IACNF,GAAY,KAEpBP,EACKZ,GAAWA,EAAOxI,WAEb,IAAIxN,MAAK,IAAIA,MAAO0M,SAAS,EAAG,EAAG,EAAG,IADtC,IAAI1M,MAAK,IAAIA,MAAO+M,cAAe,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5DkK,EAAI3a,SAAQ,SAAUwZ,GAClB,IAAIxF,EAAKwF,EAAGxF,GAAI9K,EAAMsQ,EAAGtQ,IACzB,OAAQoR,EAAatG,EAAGsG,EAAYpR,EAAK2H,IAAWyJ,KAExDA,EAAa/N,EAAU+N,OAAazT,GAG5C,GAAMyT,aAAsB5W,OAASwX,MAAMZ,EAAWnK,WAMtD,OAFiB,IAAbiK,GACAE,EAAWlK,SAAS,EAAG,EAAG,EAAG,GAC1BkK,EALHZ,EAAO7J,aAAa,IAAIsL,MAAM,0BAA4BZ,OAQ/D,SAASa,EAAaC,EAAOC,EAAOlB,GAEvC,YADiB,IAAbA,IAAuBA,GAAW,IACrB,IAAbA,EACQ,IAAI1W,KAAK2X,EAAMlL,WAAWC,SAAS,EAAG,EAAG,EAAG,GAChD,IAAI1M,KAAK4X,EAAMnL,WAAWC,SAAS,EAAG,EAAG,EAAG,GAE7CiL,EAAMlL,UAAYmL,EAAMnL,UAQ5B,IAAIoL,EAAY,SAAUC,EAAIC,EAAKC,GACtC,OAAOF,EAAKvV,KAAKD,IAAIyV,EAAKC,IAAQF,EAAKvV,KAAKgF,IAAIwQ,EAAKC,IAE9CC,EAAgC,SAAUC,EAAOnD,EAASd,GACjE,OAAe,KAARiE,EAAyB,GAAVnD,EAAed,GAE9BkE,EAAe,SAAUC,GAChC,IAAIF,EAAQ3V,KAAKiF,MAAM4Q,EAAuB,MAAOrD,GAAWqD,EAA+B,KAARF,GAAgB,GACvG,MAAO,CAACA,EAAOnD,EAASqD,EAA+B,KAARF,EAAyB,GAAVnD,IAEvDsD,EAAW,CAClBC,IAAK,OAEF,SAASC,EAAgBvC,GAC5B,IAAIkC,EAAQlC,EAAOpK,YACfmJ,EAAUiB,EAAOnK,cACjBoI,EAAU+B,EAAOlK,eACrB,QAAuB3I,IAAnB6S,EAAOwC,QAAuB,CAC9B,IAAIC,EAAUzC,EAAOwC,QAAQ9E,WACzBgF,EAAa1C,EAAOwC,QAAQ7C,aAC5BgD,EAAa3C,EAAOwC,QAAQ9C,aAC5BwC,EAAQO,IACRP,EAAQO,GAERP,IAAUO,GAAW1D,EAAU2D,IAC/B3D,EAAU2D,GAEVR,IAAUO,GAAW1D,IAAY2D,GAAczE,EAAU0E,IACzD1E,EAAU+B,EAAOwC,QAAQ9C,cAEjC,QAAuBvS,IAAnB6S,EAAO4C,QAAuB,CAC9B,IAAIC,EAAQ7C,EAAO4C,QAAQlF,WACvBoF,EAAa9C,EAAO4C,QAAQjD,aAChCuC,EAAQ3V,KAAKD,IAAI4V,EAAOW,GACpBX,IAAUW,IACV9D,EAAUxS,KAAKD,IAAIwW,EAAY/D,IAC/BmD,IAAUW,GAAS9D,IAAY+D,IAC/B7E,EAAU+B,EAAO4C,QAAQlD,cAEjC,MAAO,CAAEwC,MAAOA,EAAOnD,QAASA,EAASd,QAASA,G,cC7IlD8E,EAAsC,WAStC,OARAA,EAAWxd,OAAOyd,QAAU,SAASxI,GACjC,IAAK,IAAIhB,EAAGtT,EAAI,EAAG+E,EAAI9E,UAAUC,OAAQF,EAAI+E,EAAG/E,IAE5C,IAAK,IAAIyI,KADT6K,EAAIrT,UAAUD,GACAsT,EAAOjU,OAAO0d,UAAUC,eAAe9V,KAAKoM,EAAG7K,KACzD6L,EAAE7L,GAAK6K,EAAE7K,IAEjB,OAAO6L,GAEJuI,EAAShd,MAAMgF,KAAM5E,YAE5Bgd,EAAkD,WAClD,IAAK,IAAI3J,EAAI,EAAGtT,EAAI,EAAGkd,EAAKjd,UAAUC,OAAQF,EAAIkd,EAAIld,IAAKsT,GAAKrT,UAAUD,GAAGE,OACxE,IAAIid,EAAIvI,MAAMtB,GAAI8J,EAAI,EAA3B,IAA8Bpd,EAAI,EAAGA,EAAIkd,EAAIld,IACzC,IAAK,IAAIqd,EAAIpd,UAAUD,GAAI8M,EAAI,EAAGwQ,EAAKD,EAAEnd,OAAQ4M,EAAIwQ,EAAIxQ,IAAKsQ,IAC1DD,EAAEC,GAAKC,EAAEvQ,GACjB,OAAOqQ,GASPI,EAAsB,IAC1B,SAASC,EAAkBC,EAASC,GAChC,IAAIC,EAAO,CACP7D,OAAQ+C,EAASA,EAAS,GAAI,GAAiBe,EAAUC,eACzD7D,KAAM,GAyBV,SAAS8D,IACLH,EAAKI,MAAQ,CACTC,eAAgB,SAAUxa,EAAOya,GAG7B,YAFc,IAAVza,IAAoBA,EAAQma,EAAKO,mBAC1B,IAAPD,IAAiBA,EAAKN,EAAKQ,aACjB,IAAV3a,IAAiBya,EAAK,IAAM,GAAKA,EAAK,MAAQ,GAAMA,EAAK,MAAQ,GAC1D,GACJN,EAAK3D,KAAK9G,YAAY1P,KAIzC,SAAS4a,IACLT,EAAKF,QAAUE,EAAKU,MAAQZ,EAC5BE,EAAKW,QAAS,EACdC,KACAC,KACAC,KACAC,KACAZ,IACKH,EAAKzD,UACNyE,IACJC,KACIjB,EAAKkB,cAAc3e,QAAUyd,EAAK7D,OAAOxI,cACrCqM,EAAK7D,OAAO9J,YACZ8O,EAAiBnB,EAAK7D,OAAOxI,WAAaqM,EAAKoB,2BAAwB9X,GAE3E+X,IAAY,IAEhBC,IACA,IAAIC,EAAW,iCAAiCnX,KAAKmH,UAAUC,YAC1DwO,EAAKzD,UAAYgF,GAClBC,KAEJC,GAAa,WAEjB,SAASC,IACL,IAAIzF,EACJ,OAA2C,QAAjCA,EAAK+D,EAAK2B,yBAAsC,IAAP1F,OAAgB,EAASA,EAAG2F,eAC1EC,eAAiBnK,SAASmK,cAEnC,SAASC,EAAerL,GACpB,OAAOA,EAAGsL,KAAK/B,GAEnB,SAASsB,IACL,IAAInF,EAAS6D,EAAK7D,QACS,IAAvBA,EAAOnH,aAA+C,IAAtBmH,EAAOtH,aAGZ,IAAtBsH,EAAOxI,YACZrC,OAAO0Q,uBAAsB,WAKzB,QAJ+B1Y,IAA3B0W,EAAK2B,oBACL3B,EAAK2B,kBAAkBM,MAAMC,WAAa,SAC1ClC,EAAK2B,kBAAkBM,MAAME,QAAU,cAEhB7Y,IAAvB0W,EAAKoC,cAA6B,CAClC,IAAIC,GAAarC,EAAKsC,KAAKC,YAAc,GAAKpG,EAAOtH,WACrDmL,EAAKoC,cAAcH,MAAMO,MAAQH,EAAY,KAC7CrC,EAAK2B,kBAAkBM,MAAMO,MACzBH,QAC0B/Y,IAArB0W,EAAKyC,YACAzC,EAAKyC,YAAYF,YACjB,GACN,KACRvC,EAAK2B,kBAAkBM,MAAMS,eAAe,cAC5C1C,EAAK2B,kBAAkBM,MAAMS,eAAe,eAK5D,SAASC,EAAW1X,GAChB,GAAkC,IAA9B+U,EAAKkB,cAAc3e,OAAc,CACjC,IAAIqgB,OAAsCtZ,IAAxB0W,EAAK7D,OAAOwC,SAC1Bd,EAAa,IAAI1X,KAAQ6Z,EAAK7D,OAAOwC,UAAY,EAC/C,IAAIxY,KACJ,IAAIA,KAAK6Z,EAAK7D,OAAOwC,QAAQ/L,WAC/BiQ,EAAWnE,EAAgBsB,EAAK7D,QACpCyG,EAAY/P,SAASgQ,EAASxE,MAAOwE,EAAS3H,QAAS2H,EAASzI,QAASwI,EAAYE,mBACrF9C,EAAKkB,cAAgB,CAAC0B,GACtB5C,EAAKoB,sBAAwBwB,OAEvBtZ,IAAN2B,GAA8B,SAAXA,EAAEyN,MACrBqK,GAAY9X,GAEhB,IAAI+X,EAAYhD,EAAKiD,OAAOjgB,MAC5BkgB,IACA7B,KACIrB,EAAKiD,OAAOjgB,QAAUggB,GACtBhD,EAAKmD,mBAGb,SAASC,EAAc5c,EAAMwP,GACzB,OAAQxP,EAAO,GAAM,GAAK,EAAIwP,IAASgK,EAAK3D,KAAKrG,KAAK,IAE1D,SAASqN,EAAc7c,GACnB,OAAQA,EAAO,IACX,KAAK,EACL,KAAK,GACD,OAAO,GACX,QACI,OAAOA,EAAO,IAG1B,SAAS0c,IACL,QAAyB5Z,IAArB0W,EAAKsD,kBAAoDha,IAAvB0W,EAAKuD,cAA3C,CAEA,IAAIlF,GAASzD,SAASoF,EAAKsD,YAAYtgB,MAAMsC,OAAO,GAAI,KAAO,GAAK,GAAI4V,GAAWN,SAASoF,EAAKuD,cAAcvgB,MAAO,KAAO,GAAK,GAAIoX,OAAiC9Q,IAAvB0W,EAAKwD,eAC9I5I,SAASoF,EAAKwD,cAAcxgB,MAAO,KAAO,GAAK,GAChD,OACYsG,IAAd0W,EAAKhK,OACLqI,EAAQ+E,EAAc/E,EAAO2B,EAAKhK,KAAK2B,cAE3C,IAAI8L,OAAwCna,IAAxB0W,EAAK7D,OAAOuH,SAC3B1D,EAAK7D,OAAOwC,SACTqB,EAAK2D,gBACL3D,EAAKoB,uBAED,IADJvD,EAAamC,EAAKoB,sBAAuBpB,EAAK7D,OAAOwC,SAAS,GAElEiF,OAAwCta,IAAxB0W,EAAK7D,OAAO0H,SAC3B7D,EAAK7D,OAAO4C,SACTiB,EAAK8D,gBACL9D,EAAKoB,uBAED,IADJvD,EAAamC,EAAKoB,sBAAuBpB,EAAK7D,OAAO4C,SAAS,GAEtE,QAA4BzV,IAAxB0W,EAAK7D,OAAO0H,cACYva,IAAxB0W,EAAK7D,OAAOuH,SACZ1D,EAAK7D,OAAOuH,QAAU1D,EAAK7D,OAAO0H,QAAS,CAC3C,IAAIE,EAAW3F,EAA8B4B,EAAK7D,OAAOuH,QAAQ7J,WAAYmG,EAAK7D,OAAOuH,QAAQ5H,aAAckE,EAAK7D,OAAOuH,QAAQ7H,cAC/HmI,EAAW5F,EAA8B4B,EAAK7D,OAAO0H,QAAQhK,WAAYmG,EAAK7D,OAAO0H,QAAQ/H,aAAckE,EAAK7D,OAAO0H,QAAQhI,cAC/HoI,EAAc7F,EAA8BC,EAAOnD,EAASd,GAChE,GAAI6J,EAAcD,GAAYC,EAAcF,EAAU,CAClD,IAAI5c,EAASmX,EAAayF,GAC1B1F,EAAQlX,EAAO,GACf+T,EAAU/T,EAAO,GACjBiT,EAAUjT,EAAO,QAGpB,CACD,GAAIyc,EAAe,CACf,IAAIC,OAAkCva,IAAxB0W,EAAK7D,OAAO0H,QACpB7D,EAAK7D,OAAO0H,QACZ7D,EAAK7D,OAAO4C,QAClBV,EAAQ3V,KAAKD,IAAI4V,EAAOwF,EAAQhK,YAC5BwE,IAAUwF,EAAQhK,aAClBqB,EAAUxS,KAAKD,IAAIyS,EAAS2I,EAAQ/H,eACpCZ,IAAY2I,EAAQ/H,eACpB1B,EAAU1R,KAAKD,IAAI2R,EAASyJ,EAAQhI,eAE5C,GAAI4H,EAAe,CACf,IAAIC,OAAkCpa,IAAxB0W,EAAK7D,OAAOuH,QACpB1D,EAAK7D,OAAOuH,QACZ1D,EAAK7D,OAAOwC,QAClBN,EAAQ3V,KAAKgF,IAAI2Q,EAAOqF,EAAQ7J,YAC5BwE,IAAUqF,EAAQ7J,YAAcqB,EAAUwI,EAAQ5H,eAClDZ,EAAUwI,EAAQ5H,cAClBZ,IAAYwI,EAAQ5H,eACpB1B,EAAU1R,KAAKgF,IAAI0M,EAASsJ,EAAQ7H,gBAGhDhJ,EAASwL,EAAOnD,EAASd,IAE7B,SAAS+G,EAAiB1H,GACtB,IAAInT,EAAOmT,GAAWuG,EAAKoB,sBACvB9a,GAAQA,aAAgBH,MACxB0M,EAASvM,EAAKuT,WAAYvT,EAAKwV,aAAcxV,EAAKuV,cAG1D,SAAShJ,EAASwL,EAAOnD,EAASd,QACK9Q,IAA/B0W,EAAKoB,uBACLpB,EAAKoB,sBAAsBvO,SAASwL,EAAQ,GAAInD,EAASd,GAAW,EAAG,GAEtE4F,EAAKsD,aAAgBtD,EAAKuD,gBAAiBvD,EAAKzD,WAErDyD,EAAKsD,YAAYtgB,MAAQqT,EAAK2J,EAAK7D,OAAOpH,UAEpCsJ,GADE,GAAKA,GAAS,GAAM,GAAK,EAAIA,EAAQ,KAAO,IAEpD2B,EAAKuD,cAAcvgB,MAAQqT,EAAI6E,QACb5R,IAAd0W,EAAKhK,OACLgK,EAAKhK,KAAK2B,YAAcqI,EAAK3D,KAAKrG,KAAK,EAAIqI,GAAS,WAC7B/U,IAAvB0W,EAAKwD,gBACLxD,EAAKwD,cAAcxgB,MAAQqT,EAAI+D,KAEvC,SAAS8J,EAAYnL,GACjB,IAAIoL,EAAcrL,EAAeC,GAC7BhT,EAAO6U,SAASuJ,EAAYnhB,QAAU+V,EAAMqL,OAAS,IACrDre,EAAO,IAAO,GACC,UAAdgT,EAAMrW,MAAoB,QAAQ0H,KAAKrE,EAAKjB,cAC7Cuf,GAAWte,GAGnB,SAASgc,EAAKjC,EAAS/G,EAAOuL,EAAS3I,GACnC,OAAI5C,aAAiB9B,MACV8B,EAAMtW,SAAQ,SAAU8hB,GAAM,OAAOxC,EAAKjC,EAASyE,EAAID,EAAS3I,MACvEmE,aAAmB7I,MACZ6I,EAAQrd,SAAQ,SAAU+hB,GAAM,OAAOzC,EAAKyC,EAAIzL,EAAOuL,EAAS3I,OAC3EmE,EAAQ2E,iBAAiB1L,EAAOuL,EAAS3I,QACzCqE,EAAK0E,UAAUziB,KAAK,CAChBsV,OAAQ,WAAc,OAAOuI,EAAQ6E,oBAAoB5L,EAAOuL,EAAS3I,OAGjF,SAASiJ,IACLnD,GAAa,YAEjB,SAASR,IAQL,GAPIjB,EAAK7D,OAAOlH,MACZ,CAAC,OAAQ,QAAS,SAAU,SAASxS,SAAQ,SAAUoiB,GACnD5N,MAAMmI,UAAU3c,QAAQ8G,KAAKyW,EAAKF,QAAQgF,iBAAiB,SAAWD,EAAM,MAAM,SAAUL,GACxF,OAAOzC,EAAKyC,EAAI,QAASxE,EAAK6E,UAItC7E,EAAKzD,SACLwI,SADJ,CAIA,IAAIC,EAAkBxO,EAASyO,GAAU,IA2BzC,GA1BAjF,EAAKmD,iBAAmB3M,EAASoO,EAAehF,GAC5CI,EAAKoC,gBAAkB,oBAAoBhY,KAAKmH,UAAUC,YAC1DuQ,EAAK/B,EAAKoC,cAAe,aAAa,SAAUnX,GACnB,UAArB+U,EAAK7D,OAAO3I,MACZ0R,GAAYpM,EAAe7N,OAEvC8W,EAAK/B,EAAKiD,OAAQ,UAAWhP,SACE3K,IAA3B0W,EAAK2B,mBACLI,EAAK/B,EAAK2B,kBAAmB,UAAW1N,IAEvC+L,EAAK7D,OAAO3U,QAAWwY,EAAK7D,OAAOrH,QACpCiN,EAAKzQ,OAAQ,SAAU0T,QACC1b,IAAxBgI,OAAO6T,aACPpD,EAAKzQ,OAAOoG,SAAU,aAAc0N,IAEpCrD,EAAKzQ,OAAOoG,SAAU,YAAa0N,IACvCrD,EAAKzQ,OAAOoG,SAAU,QAAS0N,GAAe,CAAExV,SAAS,KAC1B,IAA3BoQ,EAAK7D,OAAOxK,aACZoQ,EAAK/B,EAAKiD,OAAQ,QAASjD,EAAKqF,MAChCtD,EAAK/B,EAAKiD,OAAQ,QAASjD,EAAKqF,YAET/b,IAAvB0W,EAAKoC,gBACLL,EAAK/B,EAAKsF,SAAU,QAASC,IAC7BxD,EAAK/B,EAAKsF,SAAU,CAAC,QAAS,aAAcpB,GAC5CnC,EAAK/B,EAAKoC,cAAe,QAASoD,UAEXlc,IAAvB0W,EAAKyF,oBACkBnc,IAAvB0W,EAAKuD,oBACgBja,IAArB0W,EAAKsD,YAA2B,CAChC,IAAIoC,EAAU,SAAUza,GACpB,OAAO6N,EAAe7N,GAAG0a,UAE7B5D,EAAK/B,EAAKyF,cAAe,CAAC,aAAc9C,GACxCZ,EAAK/B,EAAKyF,cAAe,OAAQ9C,EAAY,CAAE/S,SAAS,IACxDmS,EAAK/B,EAAKyF,cAAe,QAASG,GAClC7D,EAAK,CAAC/B,EAAKsD,YAAatD,EAAKuD,eAAgB,CAAC,QAAS,SAAUmC,QACtCpc,IAAvB0W,EAAKwD,eACLzB,EAAK/B,EAAKwD,cAAe,SAAS,WAAc,OAAOxD,EAAKwD,eAAiBxD,EAAKwD,cAAcmC,iBAClFrc,IAAd0W,EAAKhK,MACL+L,EAAK/B,EAAKhK,KAAM,SAAS,SAAU/K,GAC/B0X,EAAW1X,MAInB+U,EAAK7D,OAAOnL,YACZ+Q,EAAK/B,EAAKiD,OAAQ,OAAQ4C,KAGlC,SAASC,EAAWC,EAAUnB,GAC1B,IAAIoB,OAAsB1c,IAAbyc,EACP/F,EAAK7C,UAAU4I,GACf/F,EAAKoB,wBACFpB,EAAK7D,OAAOwC,SAAWqB,EAAK7D,OAAOwC,QAAUqB,EAAKpM,IAC7CoM,EAAK7D,OAAOwC,QACZqB,EAAK7D,OAAO4C,SAAWiB,EAAK7D,OAAO4C,QAAUiB,EAAKpM,IAC9CoM,EAAK7D,OAAO4C,QACZiB,EAAKpM,KACnBqS,EAAUjG,EAAKQ,YACf0F,EAAWlG,EAAKO,aACpB,SACmBjX,IAAX0c,IACAhG,EAAKQ,YAAcwF,EAAO9S,cAC1B8M,EAAKO,aAAeyF,EAAOpK,YAGnC,MAAO3Q,GACHA,EAAEkb,QAAU,0BAA4BH,EACxChG,EAAK7D,OAAO7J,aAAarH,GAEzB2Z,GAAiB5E,EAAKQ,cAAgByF,IACtCxE,GAAa,gBACb2E,OAEAxB,GACC5E,EAAKQ,cAAgByF,GAAWjG,EAAKO,eAAiB2F,GACvDzE,GAAa,iBAEjBzB,EAAKqG,SAET,SAAST,EAAc3a,GACnB,IAAIkZ,EAAcrL,EAAe7N,IAC5BkZ,EAAY/M,UAAU5I,QAAQ,UAC/B8X,EAAkBrb,EAAGkZ,EAAY9M,UAAUkP,SAAS,WAAa,GAAK,GAE9E,SAASD,EAAkBrb,EAAGmZ,EAAOoC,GACjC,IAAIpkB,EAAS6I,GAAK6N,EAAe7N,GAC7ByV,EAAQ8F,GACPpkB,GAAUA,EAAO8V,YAAc9V,EAAO8V,WAAWJ,WAClDiB,EAAQ0N,GAAY,aACxB1N,EAAMqL,MAAQA,EACd1D,GAASA,EAAMgG,cAAc3N,GAEjC,SAASiI,IACL,IAAI2F,EAAWrV,OAAOoG,SAASkP,yBAG/B,GAFA5G,EAAK2B,kBAAoBnK,EAAc,MAAO,sBAC9CwI,EAAK2B,kBAAkBkF,UAAY,GAC9B7G,EAAK7D,OAAOxI,WAAY,CAGzB,GAFAgT,EAAS9N,YAAYiO,MACrB9G,EAAK+G,eAAiBvP,EAAc,MAAO,4BACvCwI,EAAK7D,OAAOnH,YAAa,CACzB,IAAIiH,EAAK+K,KAAcvE,EAAcxG,EAAGwG,YAAazN,EAAciH,EAAGjH,YACtEgL,EAAK+G,eAAelO,YAAY4J,GAChCzC,EAAKhL,YAAcA,EACnBgL,EAAKyC,YAAcA,EAEvBzC,EAAKiH,WAAazP,EAAc,MAAO,wBACvCwI,EAAKiH,WAAWpO,YAAYqO,MACvBlH,EAAKoC,gBACNpC,EAAKoC,cAAgB5K,EAAc,MAAO,kBAC1CwI,EAAKoC,cAAcyE,UAAY,GAEnCM,KACAnH,EAAKiH,WAAWpO,YAAYmH,EAAKoC,eACjCpC,EAAK+G,eAAelO,YAAYmH,EAAKiH,YACrCN,EAAS9N,YAAYmH,EAAK+G,gBAE1B/G,EAAK7D,OAAO9J,YACZsU,EAAS9N,YAAYuO,MAEzBlQ,EAAY8I,EAAK2B,kBAAmB,YAAkC,UAArB3B,EAAK7D,OAAO3I,MAC7D0D,EAAY8I,EAAK2B,kBAAmB,WAAmC,IAAxB3B,EAAK7D,OAAO9K,SAC3D6F,EAAY8I,EAAK2B,kBAAmB,aAAc3B,EAAK7D,OAAOtH,WAAa,GAC3EmL,EAAK2B,kBAAkB9I,YAAY8N,GACnC,IAAIU,OAAwC/d,IAAzB0W,EAAK7D,OAAOmL,eACOhe,IAAlC0W,EAAK7D,OAAOmL,SAASC,SACzB,IAAIvH,EAAK7D,OAAO3U,QAAUwY,EAAK7D,OAAOrH,UAClCkL,EAAK2B,kBAAkBtK,UAAUC,IAAI0I,EAAK7D,OAAO3U,OAAS,SAAW,UACjEwY,EAAK7D,OAAO3U,UACP6f,GAAgBrH,EAAKF,QAAQ5H,WAC9B8H,EAAKF,QAAQ5H,WAAWsP,aAAaxH,EAAK2B,kBAAmB3B,EAAKiD,OAAOwE,kBAC3Cne,IAAzB0W,EAAK7D,OAAOmL,UACjBtH,EAAK7D,OAAOmL,SAASzO,YAAYmH,EAAK2B,oBAE1C3B,EAAK7D,OAAOrH,QAAQ,CACpB,IAAIwD,EAAUd,EAAc,MAAO,qBAC/BwI,EAAKF,QAAQ5H,YACb8H,EAAKF,QAAQ5H,WAAWsP,aAAalP,EAAS0H,EAAKF,SACvDxH,EAAQO,YAAYmH,EAAKF,SACrBE,EAAK7O,UACLmH,EAAQO,YAAYmH,EAAK7O,UAC7BmH,EAAQO,YAAYmH,EAAK2B,mBAG5B3B,EAAK7D,OAAOrH,QAAWkL,EAAK7D,OAAO3U,cACV8B,IAAzB0W,EAAK7D,OAAOmL,SACPtH,EAAK7D,OAAOmL,SACZhW,OAAOoG,SAASgQ,MAAM7O,YAAYmH,EAAK2B,mBAErD,SAASgG,EAAUvQ,EAAW9Q,EAAMshB,EAAYvlB,GAC5C,IAAIwlB,EAAgBC,GAAUxhB,GAAM,GAAOyhB,EAAavQ,EAAc,OAAQJ,EAAW9Q,EAAKyM,UAAUjO,YAuCxG,OAtCAijB,EAAWtO,QAAUnT,EACrByhB,EAAWC,GAAK3lB,EAChB0lB,EAAWnP,aAAa,aAAcoH,EAAKra,WAAWW,EAAM0Z,EAAK7D,OAAO1K,kBACnC,IAAjC2F,EAAU5I,QAAQ,WACe,IAAjCqP,EAAavX,EAAM0Z,EAAKpM,OACxBoM,EAAKiI,cAAgBF,EACrBA,EAAW1Q,UAAUC,IAAI,SACzByQ,EAAWnP,aAAa,eAAgB,SAExCiP,GACAE,EAAWlB,UAAY,EACnBqB,GAAe5hB,KACfyhB,EAAW1Q,UAAUC,IAAI,YACzB0I,EAAKmI,iBAAmBJ,EACC,UAArB/H,EAAK7D,OAAO3I,OACZ0D,EAAY6Q,EAAY,aAAc/H,EAAKkB,cAAc,IACD,IAApDrD,EAAavX,EAAM0Z,EAAKkB,cAAc,IAAI,IAC9ChK,EAAY6Q,EAAY,WAAY/H,EAAKkB,cAAc,IACC,IAApDrD,EAAavX,EAAM0Z,EAAKkB,cAAc,IAAI,IAC5B,iBAAd9J,GACA2Q,EAAW1Q,UAAUC,IAAI,cAKrCyQ,EAAW1Q,UAAUC,IAAI,sBAEJ,UAArB0I,EAAK7D,OAAO3I,MACR4U,GAAc9hB,KAAU4hB,GAAe5hB,IACvCyhB,EAAW1Q,UAAUC,IAAI,WAE7B0I,EAAKhL,aACsB,IAA3BgL,EAAK7D,OAAOtH,YACE,iBAAduC,GACA/U,EAAI,IAAM,GACV2d,EAAKhL,YAAYqT,mBAAmB,YAAa,+BAAiCrI,EAAK7D,OAAOzJ,QAAQpM,GAAQ,WAElHmb,GAAa,cAAesG,GACrBA,EAEX,SAASO,EAAeC,GACpBA,EAAWC,QACc,UAArBxI,EAAK7D,OAAO3I,MACZ0R,GAAYqD,GAEpB,SAASE,EAAqBrE,GAG1B,IAFA,IAAIsE,EAAatE,EAAQ,EAAI,EAAIpE,EAAK7D,OAAOtH,WAAa,EACtD8T,EAAWvE,EAAQ,EAAIpE,EAAK7D,OAAOtH,YAAc,EAC5CnF,EAAIgZ,EAAYhZ,GAAKiZ,EAAUjZ,GAAK0U,EAIzC,IAHA,IAAIve,EAAQma,EAAKoC,cAAcxa,SAAS8H,GACpCkZ,EAAaxE,EAAQ,EAAI,EAAIve,EAAM+B,SAASrF,OAAS,EACrDsmB,EAAWzE,EAAQ,EAAIve,EAAM+B,SAASrF,QAAU,EAC3CF,EAAIumB,EAAYvmB,GAAKwmB,EAAUxmB,GAAK+hB,EAAO,CAChD,IAAI1H,EAAI7W,EAAM+B,SAASvF,GACvB,IAAuC,IAAnCqa,EAAEtF,UAAU5I,QAAQ,WAAoBsZ,GAAUpL,EAAEjD,SACpD,OAAOiD,GAKvB,SAASoM,EAAoBC,EAAS3E,GAMlC,IALA,IAAI4E,GAAqD,IAAxCD,EAAQ3R,UAAU5I,QAAQ,SACrCua,EAAQtP,QAAQmC,WAChBoE,EAAKO,aACPoI,EAAWvE,EAAQ,EAAIpE,EAAK7D,OAAOtH,YAAc,EACjDoU,EAAY7E,EAAQ,EAAI,GAAK,EACxB1U,EAAIsZ,EAAahJ,EAAKO,aAAc7Q,GAAKiZ,EAAUjZ,GAAKuZ,EAQ7D,IAPA,IAAIpjB,EAAQma,EAAKoC,cAAcxa,SAAS8H,GACpCkZ,EAAaI,EAAahJ,EAAKO,eAAiB7Q,EAC9CqZ,EAAQf,GAAK5D,EACbA,EAAQ,EACJve,EAAM+B,SAASrF,OAAS,EACxB,EACN2mB,EAAerjB,EAAM+B,SAASrF,OACzBF,EAAIumB,EAAYvmB,GAAK,GAAKA,EAAI6mB,GAAgB7mB,IAAM+hB,EAAQ,EAAI8E,GAAgB,GAAI7mB,GAAK4mB,EAAW,CACzG,IAAIvM,EAAI7W,EAAM+B,SAASvF,GACvB,IAAuC,IAAnCqa,EAAEtF,UAAU5I,QAAQ,WACpBsZ,GAAUpL,EAAEjD,UACZ/Q,KAAKygB,IAAIJ,EAAQf,GAAK3lB,IAAMqG,KAAKygB,IAAI/E,GACrC,OAAOkE,EAAe5L,GAGlCsD,EAAKoJ,YAAYH,GACjBI,EAAWZ,EAAqBQ,GAAY,GAGhD,SAASI,EAAWN,EAASO,GACzB,IAAIzH,EAAgBH,IAChB6H,EAAaC,GAAS3H,GAAiBnK,SAASgQ,MAChD+B,OAAwBngB,IAAZyf,EACVA,EACAQ,EACI1H,OAC0BvY,IAA1B0W,EAAKmI,kBAAkCqB,GAASxJ,EAAKmI,kBACjDnI,EAAKmI,sBACkB7e,IAAvB0W,EAAKiI,eAA+BuB,GAASxJ,EAAKiI,eAC9CjI,EAAKiI,cACLQ,EAAqBa,EAAS,EAAI,GAAK,QACvChgB,IAAdmgB,EACAzJ,EAAKiD,OAAOuF,QAENe,EAINT,EAAoBW,EAAWH,GAH/BhB,EAAemB,GAMvB,SAASC,GAAe3jB,EAAMF,GAK1B,IAJA,IAAI8jB,GAAgB,IAAIxjB,KAAKJ,EAAMF,EAAO,GAAGmN,SAAWgN,EAAK3D,KAAK7G,eAAiB,GAAK,EACpFoU,EAAgB5J,EAAKI,MAAMC,gBAAgBxa,EAAQ,EAAI,IAAM,GAAIE,GACjEwP,EAAcyK,EAAKI,MAAMC,eAAexa,EAAOE,GAAOuc,EAAOhR,OAAOoG,SAASkP,yBAA0BiD,EAAe7J,EAAK7D,OAAOtH,WAAa,EAAGiV,EAAoBD,EAAe,sBAAwB,eAAgBE,EAAoBF,EAAe,sBAAwB,eACxRG,EAAYJ,EAAgB,EAAID,EAAcM,EAAW,EACtDD,GAAaJ,EAAeI,IAAaC,IAC5C3H,EAAKzJ,YAAY8O,EAAU,iBAAmBmC,EAAmB,IAAI3jB,KAAKJ,EAAMF,EAAQ,EAAGmkB,GAAYA,EAAWC,IAEtH,IAAKD,EAAY,EAAGA,GAAazU,EAAayU,IAAaC,IACvD3H,EAAKzJ,YAAY8O,EAAU,gBAAiB,IAAIxhB,KAAKJ,EAAMF,EAAOmkB,GAAYA,EAAWC,IAE7F,IAAK,IAAIC,EAAS3U,EAAc,EAAG2U,GAAU,GAAKP,IAClB,IAA3B3J,EAAK7D,OAAOtH,YAAoBoV,EAAW,IAAM,GAAIC,IAAUD,IAChE3H,EAAKzJ,YAAY8O,EAAU,iBAAmBoC,EAAmB,IAAI5jB,KAAKJ,EAAMF,EAAQ,EAAGqkB,EAAS3U,GAAc2U,EAAQD,IAE9H,IAAIE,EAAe3S,EAAc,MAAO,gBAExC,OADA2S,EAAatR,YAAYyJ,GAClB6H,EAEX,SAAShD,KACL,QAA2B7d,IAAvB0W,EAAKoC,cAAT,CAGAxK,EAAUoI,EAAKoC,eACXpC,EAAKhL,aACL4C,EAAUoI,EAAKhL,aAEnB,IADA,IAAIoV,EAAO1S,SAASkP,yBACXvkB,EAAI,EAAGA,EAAI2d,EAAK7D,OAAOtH,WAAYxS,IAAK,CAC7C,IAAI4Y,EAAI,IAAI9U,KAAK6Z,EAAKQ,YAAaR,EAAKO,aAAc,GACtDtF,EAAEtB,SAASqG,EAAKO,aAAele,GAC/B+nB,EAAKvR,YAAY6Q,GAAezO,EAAE/H,cAAe+H,EAAEW,aAEvDoE,EAAKoC,cAAcvJ,YAAYuR,GAC/BpK,EAAKsC,KAAOtC,EAAKoC,cAActK,WACN,UAArBkI,EAAK7D,OAAO3I,MAAkD,IAA9BwM,EAAKkB,cAAc3e,QACnD2iB,MAGR,SAASkB,KACL,KAAIpG,EAAK7D,OAAOtH,WAAa,GACS,aAAlCmL,EAAK7D,OAAO1I,mBADhB,CAGA,IAAI4W,EAAmB,SAAUxkB,GAC7B,aAA4ByD,IAAxB0W,EAAK7D,OAAOwC,SACZqB,EAAKQ,cAAgBR,EAAK7D,OAAOwC,QAAQzL,eACzCrN,EAAQma,EAAK7D,OAAOwC,QAAQ/C,oBAGCtS,IAAxB0W,EAAK7D,OAAO4C,SACjBiB,EAAKQ,cAAgBR,EAAK7D,OAAO4C,QAAQ7L,eACzCrN,EAAQma,EAAK7D,OAAO4C,QAAQnD,aAEpCoE,EAAKsK,wBAAwBzD,UAAY,EACzC7G,EAAKsK,wBAAwBC,UAAY,GACzC,IAAK,IAAIloB,EAAI,EAAGA,EAAI,GAAIA,IACpB,GAAKgoB,EAAiBhoB,GAAtB,CAEA,IAAIwD,EAAQ2R,EAAc,SAAU,iCACpC3R,EAAM7C,MAAQ,IAAImD,KAAK6Z,EAAKQ,YAAane,GAAGuZ,WAAW9W,WACvDe,EAAM8R,YAAcyB,EAAW/W,EAAG2d,EAAK7D,OAAOvH,sBAAuBoL,EAAK3D,MAC1ExW,EAAMghB,UAAY,EACd7G,EAAKO,eAAiBle,IACtBwD,EAAM2kB,UAAW,GAErBxK,EAAKsK,wBAAwBzR,YAAYhT,KAGjD,SAAS4kB,KACL,IAEIC,EAFAC,EAAYnT,EAAc,MAAO,mBACjCoT,EAAmBtZ,OAAOoG,SAASkP,yBAEnC5G,EAAK7D,OAAOtH,WAAa,GACS,WAAlCmL,EAAK7D,OAAO1I,kBACZiX,EAAelT,EAAc,OAAQ,cAGrCwI,EAAKsK,wBAA0B9S,EAAc,SAAU,kCACvDwI,EAAKsK,wBAAwB1R,aAAa,aAAcoH,EAAK3D,KAAKnG,gBAClE6L,EAAK/B,EAAKsK,wBAAyB,UAAU,SAAUrf,GACnD,IAAI7I,EAAS0W,EAAe7N,GACxB4f,EAAgBjQ,SAASxY,EAAOY,MAAO,IAC3Cgd,EAAKoJ,YAAYyB,EAAgB7K,EAAKO,cACtCkB,GAAa,oBAEjB2E,KACAsE,EAAe1K,EAAKsK,yBAExB,IAAIQ,EAAY3S,EAAkB,WAAY,CAAE4S,SAAU,OACtDC,EAAcF,EAAUG,qBAAqB,SAAS,GAC1DD,EAAYpS,aAAa,aAAcoH,EAAK3D,KAAKpG,eAC7C+J,EAAK7D,OAAOwC,SACZqM,EAAYpS,aAAa,MAAOoH,EAAK7D,OAAOwC,QAAQzL,cAAcpO,YAElEkb,EAAK7D,OAAO4C,UACZiM,EAAYpS,aAAa,MAAOoH,EAAK7D,OAAO4C,QAAQ7L,cAAcpO,YAClEkmB,EAAYE,WACNlL,EAAK7D,OAAOwC,SACVqB,EAAK7D,OAAOwC,QAAQzL,gBAAkB8M,EAAK7D,OAAO4C,QAAQ7L,eAEtE,IAAIqN,EAAe/I,EAAc,MAAO,2BAKxC,OAJA+I,EAAa1H,YAAY6R,GACzBnK,EAAa1H,YAAYiS,GACzBF,EAAiB/R,YAAY0H,GAC7BoK,EAAU9R,YAAY+R,GACf,CACHD,UAAWA,EACXK,YAAaA,EACbN,aAAcA,GAGtB,SAASS,KACLvT,EAAUoI,EAAKsF,UACftF,EAAKsF,SAASzM,YAAYmH,EAAKoL,cAC3BpL,EAAK7D,OAAOtH,aACZmL,EAAKqL,aAAe,GACpBrL,EAAKsL,cAAgB,IAEzB,IAAK,IAAI5b,EAAIsQ,EAAK7D,OAAOtH,WAAYnF,KAAM,CACvC,IAAI7J,EAAQ4kB,KACZzK,EAAKqL,aAAappB,KAAK4D,EAAMmlB,aAC7BhL,EAAKsL,cAAcrpB,KAAK4D,EAAM6kB,cAC9B1K,EAAKsF,SAASzM,YAAYhT,EAAM8kB,WAEpC3K,EAAKsF,SAASzM,YAAYmH,EAAKuL,cAEnC,SAASzE,KA6BL,OA5BA9G,EAAKsF,SAAW9N,EAAc,MAAO,oBACrCwI,EAAKqL,aAAe,GACpBrL,EAAKsL,cAAgB,GACrBtL,EAAKoL,aAAe5T,EAAc,OAAQ,wBAC1CwI,EAAKoL,aAAab,UAAYvK,EAAK7D,OAAOxH,UAC1CqL,EAAKuL,aAAe/T,EAAc,OAAQ,wBAC1CwI,EAAKuL,aAAahB,UAAYvK,EAAK7D,OAAOzI,UAC1CyX,KACAzpB,OAAOoB,eAAekd,EAAM,sBAAuB,CAC/CwL,IAAK,WAAc,OAAOxL,EAAKyL,sBAC/BC,IAAK,SAAUnV,GACPyJ,EAAKyL,uBAAyBlV,IAC9BW,EAAY8I,EAAKoL,aAAc,qBAAsB7U,GACrDyJ,EAAKyL,qBAAuBlV,MAIxC7U,OAAOoB,eAAekd,EAAM,sBAAuB,CAC/CwL,IAAK,WAAc,OAAOxL,EAAK2L,sBAC/BD,IAAK,SAAUnV,GACPyJ,EAAK2L,uBAAyBpV,IAC9BW,EAAY8I,EAAKuL,aAAc,qBAAsBhV,GACrDyJ,EAAK2L,qBAAuBpV,MAIxCyJ,EAAK4L,mBAAqB5L,EAAKqL,aAAa,GAC5CQ,KACO7L,EAAKsF,SAEhB,SAAS8B,KACLpH,EAAK2B,kBAAkBtK,UAAUC,IAAI,WACjC0I,EAAK7D,OAAOxI,YACZqM,EAAK2B,kBAAkBtK,UAAUC,IAAI,cACzC,IAAIuL,EAAWnE,EAAgBsB,EAAK7D,QACpC6D,EAAKyF,cAAgBjO,EAAc,MAAO,kBAC1CwI,EAAKyF,cAAcoB,UAAY,EAC/B,IAAI3d,EAAYsO,EAAc,OAAQ,2BAA4B,KAC9DsU,EAAY3T,EAAkB,iBAAkB,CAChD,aAAc6H,EAAK3D,KAAKlG,gBAE5B6J,EAAKsD,YAAcwI,EAAUb,qBAAqB,SAAS,GAC3D,IAAIc,EAAc5T,EAAkB,mBAAoB,CACpD,aAAc6H,EAAK3D,KAAKjG,kBAyB5B,GAvBA4J,EAAKuD,cAAgBwI,EAAYd,qBAAqB,SAAS,GAC/DjL,EAAKsD,YAAYuD,SAAW7G,EAAKuD,cAAcsD,UAAY,EAC3D7G,EAAKsD,YAAYtgB,MAAQqT,EAAI2J,EAAKoB,sBAC5BpB,EAAKoB,sBAAsBvH,WAC3BmG,EAAK7D,OAAOpH,UACR8N,EAASxE,MACTgF,EAAcR,EAASxE,QACjC2B,EAAKuD,cAAcvgB,MAAQqT,EAAI2J,EAAKoB,sBAC9BpB,EAAKoB,sBAAsBtF,aAC3B+G,EAAS3H,SACf8E,EAAKsD,YAAY1K,aAAa,OAAQoH,EAAK7D,OAAO/I,cAActO,YAChEkb,EAAKuD,cAAc3K,aAAa,OAAQoH,EAAK7D,OAAO5I,gBAAgBzO,YACpEkb,EAAKsD,YAAY1K,aAAa,MAAOoH,EAAK7D,OAAOpH,UAAY,IAAM,KACnEiL,EAAKsD,YAAY1K,aAAa,MAAOoH,EAAK7D,OAAOpH,UAAY,KAAO,MACpEiL,EAAKsD,YAAY1K,aAAa,YAAa,KAC3CoH,EAAKuD,cAAc3K,aAAa,MAAO,KACvCoH,EAAKuD,cAAc3K,aAAa,MAAO,MACvCoH,EAAKuD,cAAc3K,aAAa,YAAa,KAC7CoH,EAAKyF,cAAc5M,YAAYiT,GAC/B9L,EAAKyF,cAAc5M,YAAY3P,GAC/B8W,EAAKyF,cAAc5M,YAAYkT,GAC3B/L,EAAK7D,OAAOpH,WACZiL,EAAKyF,cAAcpO,UAAUC,IAAI,YACjC0I,EAAK7D,OAAO/J,cAAe,CAC3B4N,EAAKyF,cAAcpO,UAAUC,IAAI,cACjC,IAAI0U,EAAc7T,EAAkB,oBACpC6H,EAAKwD,cAAgBwI,EAAYf,qBAAqB,SAAS,GAC/DjL,EAAKwD,cAAcxgB,MAAQqT,EAAI2J,EAAKoB,sBAC9BpB,EAAKoB,sBAAsBvF,aAC3BgH,EAASzI,SACf4F,EAAKwD,cAAc5K,aAAa,OAAQoH,EAAKuD,cAAc0I,aAAa,SACxEjM,EAAKwD,cAAc5K,aAAa,MAAO,KACvCoH,EAAKwD,cAAc5K,aAAa,MAAO,MACvCoH,EAAKwD,cAAc5K,aAAa,YAAa,KAC7CoH,EAAKyF,cAAc5M,YAAYrB,EAAc,OAAQ,2BAA4B,MACjFwI,EAAKyF,cAAc5M,YAAYmT,GAUnC,OARKhM,EAAK7D,OAAOpH,YACbiL,EAAKhK,KAAOwB,EAAc,OAAQ,kBAAmBwI,EAAK3D,KAAKrG,KAAK,GAAKgK,EAAKoB,sBACxEpB,EAAKsD,YAAYtgB,MACjBgd,EAAK7D,OAAOpK,aAAe,MACjCiO,EAAKhK,KAAKrR,MAAQqb,EAAK3D,KAAKtG,YAC5BiK,EAAKhK,KAAK6Q,UAAY,EACtB7G,EAAKyF,cAAc5M,YAAYmH,EAAKhK,OAEjCgK,EAAKyF,cAEhB,SAASyB,KACAlH,EAAKkM,iBAGNtU,EAAUoI,EAAKkM,kBAFflM,EAAKkM,iBAAmB1U,EAAc,MAAO,sBAGjD,IAAK,IAAInV,EAAI2d,EAAK7D,OAAOtH,WAAYxS,KAAM,CACvC,IAAIsoB,EAAYnT,EAAc,MAAO,8BACrCwI,EAAKkM,iBAAiBrT,YAAY8R,GAGtC,OADAwB,KACOnM,EAAKkM,iBAEhB,SAASC,KACL,GAAKnM,EAAKkM,iBAAV,CAGA,IAAI1W,EAAiBwK,EAAK3D,KAAK7G,eAC3BL,EAAWmK,EAAeU,EAAK3D,KAAKlH,SAASC,WAC7CI,EAAiB,GAAKA,EAAiBL,EAAS5S,SAChD4S,EAAWmK,EAAenK,EAASiX,OAAO5W,EAAgBL,EAAS5S,QAAS4S,EAASiX,OAAO,EAAG5W,KAEnG,IAAK,IAAInT,EAAI2d,EAAK7D,OAAOtH,WAAYxS,KACjC2d,EAAKkM,iBAAiBtkB,SAASvF,GAAGkoB,UAAY,qDAAuDpV,EAAS5P,KAAK,2CAA6C,2BAGxK,SAASyhB,KACLhH,EAAK2B,kBAAkBtK,UAAUC,IAAI,YACrC,IAAImL,EAAcjL,EAAc,MAAO,yBACvCiL,EAAY5J,YAAYrB,EAAc,OAAQ,oBAAqBwI,EAAK3D,KAAKxG,mBAC7E,IAAIb,EAAcwC,EAAc,MAAO,mBAEvC,OADAiL,EAAY5J,YAAY7D,GACjB,CACHyN,YAAaA,EACbzN,YAAaA,GAGrB,SAASoU,GAAYpmB,EAAOqpB,QACP,IAAbA,IAAuBA,GAAW,GACtC,IAAIjI,EAAQiI,EAAWrpB,EAAQA,EAAQgd,EAAKO,aACvC6D,EAAQ,IAAkC,IAA7BpE,EAAKsM,qBAClBlI,EAAQ,IAAkC,IAA7BpE,EAAKuM,sBAEvBvM,EAAKO,cAAgB6D,GACjBpE,EAAKO,aAAe,GAAKP,EAAKO,aAAe,MAC7CP,EAAKQ,aAAeR,EAAKO,aAAe,GAAK,GAAK,EAClDP,EAAKO,cAAgBP,EAAKO,aAAe,IAAM,GAC/CkB,GAAa,gBACb2E,MAEJe,KACA1F,GAAa,iBACboK,MAEJ,SAASW,GAAMC,EAAoBC,GAc/B,QAb2B,IAAvBD,IAAiCA,GAAqB,QACxC,IAAdC,IAAwBA,GAAY,GACxC1M,EAAKU,MAAM1d,MAAQ,QACGsG,IAAlB0W,EAAK7O,WACL6O,EAAK7O,SAASnO,MAAQ,SACDsG,IAArB0W,EAAK2M,cACL3M,EAAK2M,YAAY3pB,MAAQ,IAC7Bgd,EAAKkB,cAAgB,GACrBlB,EAAKoB,2BAAwB9X,GACX,IAAdojB,IACA1M,EAAKQ,YAAcR,EAAK4M,aAAa1Z,cACrC8M,EAAKO,aAAeP,EAAK4M,aAAahR,aAEX,IAA3BoE,EAAK7D,OAAO9J,WAAqB,CACjC,IAAI4J,EAAKyC,EAAgBsB,EAAK7D,QAASkC,EAAQpC,EAAGoC,MAAOnD,EAAUe,EAAGf,QAASd,EAAU6B,EAAG7B,QAC5FvH,EAASwL,EAAOnD,EAASd,GAE7B4F,EAAKqG,SACDoG,GACAhL,GAAa,YAErB,SAASoL,KACL7M,EAAKW,QAAS,EACTX,EAAKzD,gBACyBjT,IAA3B0W,EAAK2B,mBACL3B,EAAK2B,kBAAkBtK,UAAUE,OAAO,aAExBjO,IAAhB0W,EAAKiD,QACLjD,EAAKiD,OAAO5L,UAAUE,OAAO,WAGrCkK,GAAa,WAEjB,SAASqL,UACexjB,IAAhB0W,EAAK7D,QACLsF,GAAa,aACjB,IAAK,IAAIpf,EAAI2d,EAAK0E,UAAUniB,OAAQF,KAChC2d,EAAK0E,UAAUriB,GAAGkV,SAGtB,GADAyI,EAAK0E,UAAY,GACb1E,EAAK2M,YACD3M,EAAK2M,YAAYzU,YACjB8H,EAAK2M,YAAYzU,WAAWH,YAAYiI,EAAK2M,aACjD3M,EAAK2M,iBAAcrjB,OAElB,GAAI0W,EAAK2B,mBAAqB3B,EAAK2B,kBAAkBzJ,WACtD,GAAI8H,EAAK7D,OAAOrH,QAAUkL,EAAK2B,kBAAkBzJ,WAAY,CACzD,IAAII,EAAU0H,EAAK2B,kBAAkBzJ,WAErC,GADAI,EAAQyU,WAAazU,EAAQP,YAAYO,EAAQyU,WAC7CzU,EAAQJ,WAAY,CACpB,MAAOI,EAAQR,WACXQ,EAAQJ,WAAWsP,aAAalP,EAAQR,WAAYQ,GACxDA,EAAQJ,WAAWH,YAAYO,SAInC0H,EAAK2B,kBAAkBzJ,WAAWH,YAAYiI,EAAK2B,mBAEvD3B,EAAK7O,WACL6O,EAAKU,MAAMhI,KAAO,OACdsH,EAAK7O,SAAS+G,YACd8H,EAAK7O,SAAS+G,WAAWH,YAAYiI,EAAK7O,iBACvC6O,EAAK7O,UAEZ6O,EAAKU,QACLV,EAAKU,MAAMhI,KAAOsH,EAAKU,MAAMsM,MAC7BhN,EAAKU,MAAMrJ,UAAUE,OAAO,mBAC5ByI,EAAKU,MAAMuM,gBAAgB,aAE/B,CACI,iBACA,wBACA,sBACA,sBACA,uBACA,uBACA,WACA,SACA,mBACA,iBACA,iBACA,OACA,gBACA,SACA,mBACA,iBACA,aACA,WACA,gBACA,oBACA,mBACA,eACA,eACA,0BACA,sBACA,qBACA,yBACA,mBACA,UACFxqB,SAAQ,SAAUgd,GAChB,WACWO,EAAKP,GAEhB,MAAOlF,QAGf,SAAS2S,GAAe/V,GACpB,OAAO6I,EAAK2B,kBAAkB4E,SAASpP,GAE3C,SAASiO,GAAcna,GACnB,GAAI+U,EAAKW,SAAWX,EAAK7D,OAAO3U,OAAQ,CACpC,IAAI2lB,EAAgBrU,EAAe7N,GAC/BmiB,EAAoBF,GAAeC,GACnCE,EAAUF,IAAkBnN,EAAKU,OACjCyM,IAAkBnN,EAAK7O,UACvB6O,EAAKF,QAAQyG,SAAS4G,IACrBliB,EAAEgO,MACChO,EAAEgO,KAAKzK,WACLvD,EAAEgO,KAAKzK,QAAQwR,EAAKU,SACjBzV,EAAEgO,KAAKzK,QAAQwR,EAAK7O,WAC7Bmc,GAAaD,IACZD,IACAF,GAAejiB,EAAEsiB,eAClBC,GAAaxN,EAAK7D,OAAO9I,qBAAqBoa,MAAK,SAAUtW,GAC7D,OAAOA,EAAKoP,SAAS4G,MAErBG,GAAaE,IACTxN,EAAK7D,OAAOnL,YACZgP,EAAKlN,QAAQkN,EAAKiD,OAAOjgB,OAAO,EAAOgd,EAAK7D,OAAOhL,SAC7C6O,EAAK7D,OAAOjL,UACZ8O,EAAK7D,OAAOrK,iBAEKxI,IAAvB0W,EAAKyF,oBACkBnc,IAAvB0W,EAAKuD,oBACgBja,IAArB0W,EAAKsD,aACgB,KAArBtD,EAAKU,MAAM1d,YACUsG,IAArB0W,EAAKU,MAAM1d,OACX2f,IAEJ3C,EAAK6M,QACD7M,EAAK7D,QACgB,UAArB6D,EAAK7D,OAAO3I,MACkB,IAA9BwM,EAAKkB,cAAc3e,QACnByd,EAAKwM,OAAM,KAI3B,SAASnI,GAAWqJ,GAChB,MAAKA,GACA1N,EAAK7D,OAAOwC,SAAW+O,EAAU1N,EAAK7D,OAAOwC,QAAQzL,eACrD8M,EAAK7D,OAAO4C,SAAW2O,EAAU1N,EAAK7D,OAAO4C,QAAQ7L,eAF1D,CAIA,IAAIya,EAAaD,EAASE,EAAY5N,EAAKQ,cAAgBmN,EAC3D3N,EAAKQ,YAAcmN,GAAc3N,EAAKQ,YAClCR,EAAK7D,OAAO4C,SACZiB,EAAKQ,cAAgBR,EAAK7D,OAAO4C,QAAQ7L,cACzC8M,EAAKO,aAAe7X,KAAKD,IAAIuX,EAAK7D,OAAO4C,QAAQnD,WAAYoE,EAAKO,cAE7DP,EAAK7D,OAAOwC,SACjBqB,EAAKQ,cAAgBR,EAAK7D,OAAOwC,QAAQzL,gBACzC8M,EAAKO,aAAe7X,KAAKgF,IAAIsS,EAAK7D,OAAOwC,QAAQ/C,WAAYoE,EAAKO,eAElEqN,IACA5N,EAAKqG,SACL5E,GAAa,gBACb2E,OAGR,SAAS0B,GAAUxhB,EAAMuW,GACrB,IAAIZ,OACa,IAAbY,IAAuBA,GAAW,GACtC,IAAIgR,EAAc7N,EAAK7C,UAAU7W,OAAMgD,EAAWuT,GAClD,GAAKmD,EAAK7D,OAAOwC,SACbkP,GACAhQ,EAAagQ,EAAa7N,EAAK7D,OAAOwC,aAAsBrV,IAAbuT,EAAyBA,GAAYmD,EAAK2D,gBAAkB,GAC1G3D,EAAK7D,OAAO4C,SACT8O,GACAhQ,EAAagQ,EAAa7N,EAAK7D,OAAO4C,aAAsBzV,IAAbuT,EAAyBA,GAAYmD,EAAK8D,gBAAkB,EAC/G,OAAO,EACX,IAAK9D,EAAK7D,OAAO2R,QAAyC,IAA/B9N,EAAK7D,OAAOjK,QAAQ3P,OAC3C,OAAO,EACX,QAAoB+G,IAAhBukB,EACA,OAAO,EAEX,IADA,IAAItX,IAASyJ,EAAK7D,OAAO2R,OAAQC,EAAsC,QAA7B9R,EAAK+D,EAAK7D,OAAO2R,cAA2B,IAAP7R,EAAgBA,EAAK+D,EAAK7D,OAAOjK,QACvG7P,EAAI,EAAG4Y,OAAI,EAAQ5Y,EAAI0rB,EAAMxrB,OAAQF,IAAK,CAE/C,GADA4Y,EAAI8S,EAAM1rB,GACO,oBAAN4Y,GACPA,EAAE4S,GACF,OAAOtX,EACN,GAAI0E,aAAa9U,WACFmD,IAAhBukB,GACA5S,EAAErI,YAAcib,EAAYjb,UAC5B,OAAO2D,EACN,GAAiB,kBAAN0E,EAAgB,CAC5B,IAAI+S,EAAShO,EAAK7C,UAAUlC,OAAG3R,GAAW,GAC1C,OAAO0kB,GAAUA,EAAOpb,YAAcib,EAAYjb,UAC5C2D,GACCA,EAEN,GAAiB,kBAAN0E,QACI3R,IAAhBukB,GACA5S,EAAEgT,MACFhT,EAAEiT,IACFL,EAAYjb,WAAaqI,EAAEgT,KAAKrb,WAChCib,EAAYjb,WAAaqI,EAAEiT,GAAGtb,UAC9B,OAAO2D,EAEf,OAAQA,EAEZ,SAASiT,GAASrS,GACd,YAA2B7N,IAAvB0W,EAAKoC,iBACyC,IAAtCjL,EAAKC,UAAU5I,QAAQ,YACuB,IAAlD2I,EAAKC,UAAU5I,QAAQ,uBACvBwR,EAAKoC,cAAcmE,SAASpP,IAGxC,SAAS0O,GAAO5a,GACZ,IAAIoiB,EAAUpiB,EAAE7I,SAAW4d,EAAKiD,OAC5BkL,EAAenO,EAAKiD,OAAOjgB,MAAMorB,YAAcC,MAC/ChB,IACAc,GACEljB,EAAEsiB,eAAiBL,GAAejiB,EAAEsiB,gBACtCvN,EAAKlN,QAAQkN,EAAKiD,OAAOjgB,OAAO,EAAMiI,EAAE7I,SAAW4d,EAAK7O,SAClD6O,EAAK7D,OAAOjL,UACZ8O,EAAK7D,OAAOrK,YAG1B,SAASmC,GAAUhJ,GACf,IAAIkZ,EAAcrL,EAAe7N,GAC7BoiB,EAAUrN,EAAK7D,OAAOlH,KACpB6K,EAAQyG,SAASpC,GACjBA,IAAgBnE,EAAKiD,OACvBjS,EAAagP,EAAK7D,OAAOnL,WACzBsd,EAAetO,EAAKW,UAAY3P,IAAeqc,GAC/CkB,EAAqBvO,EAAK7D,OAAO3U,QAAU6lB,IAAYrc,EAC3D,GAAkB,KAAd/F,EAAEujB,SAAkBnB,EAAS,CAC7B,GAAIrc,EAKA,OAJAgP,EAAKlN,QAAQkN,EAAKiD,OAAOjgB,OAAO,EAAMmhB,IAAgBnE,EAAK7O,SACrD6O,EAAK7D,OAAOjL,UACZ8O,EAAK7D,OAAOrK,YAClBkO,EAAK6M,QACE1I,EAAYsK,OAGnBzO,EAAKqF,YAGR,GAAI6H,GAAe/I,IACpBmK,GACAC,EAAoB,CACpB,IAAIG,IAAc1O,EAAKyF,eACnBzF,EAAKyF,cAAcc,SAASpC,GAChC,OAAQlZ,EAAEujB,SACN,KAAK,GACGE,GACAzjB,EAAE0jB,iBACFhM,IACAiM,MAGApJ,GAAWva,GACf,MACJ,KAAK,GACDA,EAAE0jB,iBACFC,KACA,MACJ,KAAK,EACL,KAAK,GACGvB,IAAYrN,EAAK7D,OAAOnL,aACxB/F,EAAE0jB,iBACF3O,EAAKwM,SAET,MACJ,KAAK,GACL,KAAK,GACD,GAAKkC,GAAcrB,EAgBVrN,EAAKsD,aACVtD,EAAKsD,YAAYkF,YAjBO,CACxBvd,EAAE0jB,iBACF,IAAI9M,EAAgBH,IACpB,QAA2BpY,IAAvB0W,EAAKoC,iBACW,IAAfpR,GACI6Q,GAAiB2H,GAAS3H,IAAkB,CACjD,IAAIgN,EAAwB,KAAd5jB,EAAEujB,QAAiB,GAAK,EACjCvjB,EAAE6jB,SAGH7jB,EAAE8jB,kBACF3F,GAAYyF,GACZxF,EAAWZ,EAAqB,GAAI,IAJpCY,OAAW/f,EAAWulB,IAUlC,MACJ,KAAK,GACL,KAAK,GACD5jB,EAAE0jB,iBACF,IAAIvK,EAAsB,KAAdnZ,EAAEujB,QAAiB,GAAK,EAC/BxO,EAAKoC,oBACa9Y,IAAnB6a,EAAY6D,IACZ7D,IAAgBnE,EAAKU,OACrByD,IAAgBnE,EAAK7O,SACjBlG,EAAE6jB,SACF7jB,EAAE8jB,kBACF1K,GAAWrE,EAAKQ,YAAc4D,GAC9BiF,EAAWZ,EAAqB,GAAI,IAE9BiG,GACNrF,OAAW/f,EAAmB,EAAR8a,GAErBD,IAAgBnE,EAAK4L,mBAC1BvH,GAAWrE,EAAKQ,YAAc4D,GAEzBpE,EAAK7D,OAAO9J,cACZqc,GAAa1O,EAAKsD,aACnBtD,EAAKsD,YAAYkF,QACrB7F,EAAW1X,GACX+U,EAAKmD,oBAET,MACJ,KAAK,EACD,GAAIuL,EAAW,CACX,IAAIM,EAAQ,CACRhP,EAAKsD,YACLtD,EAAKuD,cACLvD,EAAKwD,cACLxD,EAAKhK,MAEJzR,OAAOyb,EAAKiP,gBACZptB,QAAO,SAAUqtB,GAAK,OAAOA,KAC9B7sB,EAAI2sB,EAAMxgB,QAAQ2V,GACtB,IAAW,IAAP9hB,EAAU,CACV,IAAID,EAAS4sB,EAAM3sB,GAAK4I,EAAEkkB,UAAY,EAAI,IAC1ClkB,EAAE0jB,kBACDvsB,GAAU4d,EAAKiD,QAAQuF,cAGtBxI,EAAK7D,OAAOxI,YAClBqM,EAAKoC,eACLpC,EAAKoC,cAAcmE,SAASpC,IAC5BlZ,EAAEkkB,WACFlkB,EAAE0jB,iBACF3O,EAAKiD,OAAOuF,SAEhB,MACJ,QACI,OAGZ,QAAkBlf,IAAd0W,EAAKhK,MAAsBmO,IAAgBnE,EAAKhK,KAChD,OAAQ/K,EAAEvI,KACN,KAAKsd,EAAK3D,KAAKrG,KAAK,GAAG5Q,OAAO,GAC9B,KAAK4a,EAAK3D,KAAKrG,KAAK,GAAG5Q,OAAO,GAAGgqB,cAC7BpP,EAAKhK,KAAK2B,YAAcqI,EAAK3D,KAAKrG,KAAK,GACvCkN,IACA7B,KACA,MACJ,KAAKrB,EAAK3D,KAAKrG,KAAK,GAAG5Q,OAAO,GAC9B,KAAK4a,EAAK3D,KAAKrG,KAAK,GAAG5Q,OAAO,GAAGgqB,cAC7BpP,EAAKhK,KAAK2B,YAAcqI,EAAK3D,KAAKrG,KAAK,GACvCkN,IACA7B,KACA,OAGRgM,GAAWH,GAAe/I,KAC1B1C,GAAa,YAAaxW,GAGlC,SAASia,GAAY/N,EAAMkY,GAEvB,QADkB,IAAdA,IAAwBA,EAAY,iBACN,IAA9BrP,EAAKkB,cAAc3e,UAClB4U,GACKA,EAAKE,UAAUkP,SAAS8I,KACtBlY,EAAKE,UAAUkP,SAAS,uBAHpC,CAUA,IALA,IAAI+I,EAAYnY,EACVA,EAAKsC,QAAQ7G,UACboN,EAAKsC,KAAKiN,kBAAkB9V,QAAQ7G,UAAW4c,EAAcxP,EAAK7C,UAAU6C,EAAKkB,cAAc,QAAI5X,GAAW,GAAMsJ,UAAW6c,EAAiB/mB,KAAKD,IAAI6mB,EAAWtP,EAAKkB,cAAc,GAAGtO,WAAY8c,EAAehnB,KAAKgF,IAAI4hB,EAAWtP,EAAKkB,cAAc,GAAGtO,WACjQ+c,GAAmB,EACnBC,EAAW,EAAGC,EAAW,EACpBlZ,EAAI8Y,EAAgB9Y,EAAI+Y,EAAc/Y,GAAK6H,EAASC,IACpDqJ,GAAU,IAAI3hB,KAAKwQ,IAAI,KACxBgZ,EACIA,GAAqBhZ,EAAI8Y,GAAkB9Y,EAAI+Y,EAC/C/Y,EAAI6Y,KAAiBI,GAAYjZ,EAAIiZ,GACrCA,EAAWjZ,EACNA,EAAI6Y,KAAiBK,GAAYlZ,EAAIkZ,KAC1CA,EAAWlZ,IAGvB,IAAImZ,EAAiB7Y,MAAMgX,KAAKjO,EAAKiH,WAAWnC,iBAAiB,kBAAoB9E,EAAK7D,OAAOtH,WAAa,QAAUwa,IACxHS,EAAertB,SAAQ,SAAUstB,GAC7B,IAAIzpB,EAAOypB,EAAQtW,QACfuW,EAAY1pB,EAAKsM,UACjBqd,EAAcL,EAAW,GAAKI,EAAYJ,GACzCC,EAAW,GAAKG,EAAYH,EACjC,GAAII,EAKA,OAJAF,EAAQ1Y,UAAUC,IAAI,kBACtB,CAAC,UAAW,aAAc,YAAY7U,SAAQ,SAAUia,GACpDqT,EAAQ1Y,UAAUE,OAAOmF,MAIxBiT,IAAqBM,IAE9B,CAAC,aAAc,UAAW,WAAY,cAAcxtB,SAAQ,SAAUia,GAClEqT,EAAQ1Y,UAAUE,OAAOmF,WAEhBpT,IAAT6N,IACAA,EAAKE,UAAUC,IAAIgY,GAAatP,EAAKkB,cAAc,GAAGtO,UAChD,aACA,YACF4c,EAAcF,GAAaU,IAAcR,EACzCO,EAAQ1Y,UAAUC,IAAI,cACjBkY,EAAcF,GAAaU,IAAcR,GAC9CO,EAAQ1Y,UAAUC,IAAI,YACtB0Y,GAAaJ,IACC,IAAbC,GAAkBG,GAAaH,IAChC7R,EAAUgS,EAAWR,EAAaF,IAClCS,EAAQ1Y,UAAUC,IAAI,iBAItC,SAAS2N,MACDjF,EAAKW,QAAWX,EAAK7D,OAAOrH,QAAWkL,EAAK7D,OAAO3U,QACnDga,KAER,SAAS6D,GAAKpa,EAAGyJ,GAEb,QADwB,IAApBA,IAA8BA,EAAkBsL,EAAKkQ,mBACnC,IAAlBlQ,EAAKzD,SAAmB,CACxB,GAAItR,EAAG,CACHA,EAAE0jB,iBACF,IAAIxK,EAAcrL,EAAe7N,GAC7BkZ,GACAA,EAAYsK,OAQpB,YALyBnlB,IAArB0W,EAAK2M,cACL3M,EAAK2M,YAAYnE,QACjBxI,EAAK2M,YAAYwD,cAErB1O,GAAa,UAGZ,IAAIzB,EAAKiD,OAAOiI,WAAYlL,EAAK7D,OAAO3U,OAAxC,CAGL,IAAI4oB,EAAUpQ,EAAKW,OACnBX,EAAKW,QAAS,EACTyP,IACDpQ,EAAK2B,kBAAkBtK,UAAUC,IAAI,QACrC0I,EAAKiD,OAAO5L,UAAUC,IAAI,UAC1BmK,GAAa,UACbD,GAAiB9M,KAEU,IAA3BsL,EAAK7D,OAAO9J,aAAkD,IAA3B2N,EAAK7D,OAAOxI,cAChB,IAA3BqM,EAAK7D,OAAOnL,iBACL1H,IAAN2B,GACI+U,EAAKyF,cAAcc,SAAStb,EAAEsiB,gBACnCxW,YAAW,WAAc,OAAOiJ,EAAKsD,YAAYqC,WAAa,MAI1E,SAAS0K,GAAiB3X,GACtB,OAAO,SAAUpS,GACb,IAAImT,EAAWuG,EAAK7D,OAAO,IAAMzD,EAAO,QAAUsH,EAAK7C,UAAU7W,EAAM0Z,EAAK7D,OAAOrK,YAC/Ewe,EAAiBtQ,EAAK7D,OAAO,KAAgB,QAATzD,EAAiB,MAAQ,OAAS,aAC1DpP,IAAZmQ,IACAuG,EAAc,QAATtH,EAAiB,iBAAmB,kBACrCe,EAAQI,WAAa,GACjBJ,EAAQqC,aAAe,GACvBrC,EAAQoC,aAAe,GAE/BmE,EAAKkB,gBACLlB,EAAKkB,cAAgBlB,EAAKkB,cAAcrf,QAAO,SAAUoZ,GAAK,OAAO6M,GAAU7M,MAC1E+E,EAAKkB,cAAc3e,QAAmB,QAATmW,GAC9ByI,EAAiB1H,GACrB4H,MAEArB,EAAKoC,gBACLiE,UACgB/c,IAAZmQ,EACAuG,EAAK4L,mBAAmBlT,GAAQe,EAAQvG,cAAcpO,WAEtDkb,EAAK4L,mBAAmBqB,gBAAgBvU,GAC5CsH,EAAK4L,mBAAmBV,WAClBoF,QACchnB,IAAZmQ,GACA6W,EAAepd,gBAAkBuG,EAAQvG,gBAI7D,SAAS0N,KACL,IAAI2P,EAAW,CACX,OACA,cACA,aACA,sBACA,aACA,YACA,aACA,aACA,WACA,wBACA,SACA,SACA,gBACA,iBAEAC,EAAatR,EAASA,EAAS,GAAIuR,KAAKC,MAAMD,KAAKE,UAAU7Q,EAAQ8Q,SAAW,MAAO7Q,GACvF8Q,EAAU,GACd7Q,EAAK7D,OAAOgB,UAAYqT,EAAWrT,UACnC6C,EAAK7D,OAAOxW,WAAa6qB,EAAW7qB,WACpCjE,OAAOoB,eAAekd,EAAK7D,OAAQ,SAAU,CACzCqP,IAAK,WAAc,OAAOxL,EAAK7D,OAAO2U,SACtCpF,IAAK,SAAUqF,GACX/Q,EAAK7D,OAAO2U,QAAUE,GAAeD,MAG7CrvB,OAAOoB,eAAekd,EAAK7D,OAAQ,UAAW,CAC1CqP,IAAK,WAAc,OAAOxL,EAAK7D,OAAOpL,UACtC2a,IAAK,SAAUqF,GACX/Q,EAAK7D,OAAOpL,SAAWigB,GAAeD,MAG9C,IAAIE,EAA+B,SAApBT,EAAWhd,KAC1B,IAAKgd,EAAW1e,aAAe0e,EAAWne,YAAc4e,GAAW,CAC/D,IAAIC,EAAoBjR,EAAUC,cAAcpO,YAAc,EAAeA,WAC7E+e,EAAQ/e,WACJ0e,EAAW7c,YAAcsd,EACnB,OAAST,EAAWpe,cAAgB,KAAO,IAC3C8e,EAAoB,QAAUV,EAAWpe,cAAgB,KAAO,IAE9E,GAAIoe,EAAWrf,WACVqf,EAAWne,YAAc4e,KACzBT,EAAWtf,UAAW,CACvB,IAAIigB,EAAmBlR,EAAUC,cAAchP,WAAa,EAAeA,UAC3E2f,EAAQ3f,UACJsf,EAAW7c,YAAcsd,EACnB,OAAST,EAAWpe,cAAgB,OAAS,MAC7C+e,EAAoB,QAAUX,EAAWpe,cAAgB,KAAO,IAAM,KAEpF1Q,OAAOoB,eAAekd,EAAK7D,OAAQ,UAAW,CAC1CqP,IAAK,WAAc,OAAOxL,EAAK7D,OAAOiV,UACtC1F,IAAK2E,GAAiB,SAE1B3uB,OAAOoB,eAAekd,EAAK7D,OAAQ,UAAW,CAC1CqP,IAAK,WAAc,OAAOxL,EAAK7D,OAAOkV,UACtC3F,IAAK2E,GAAiB,SAE1B,IAAIiB,EAAmB,SAAU5Y,GAAQ,OAAO,SAAU/M,GACtDqU,EAAK7D,OAAgB,QAATzD,EAAiB,WAAa,YAAcsH,EAAK7C,UAAUxR,EAAK,WAEhFjK,OAAOoB,eAAekd,EAAK7D,OAAQ,UAAW,CAC1CqP,IAAK,WAAc,OAAOxL,EAAK7D,OAAOoV,UACtC7F,IAAK4F,EAAiB,SAE1B5vB,OAAOoB,eAAekd,EAAK7D,OAAQ,UAAW,CAC1CqP,IAAK,WAAc,OAAOxL,EAAK7D,OAAOqV,UACtC9F,IAAK4F,EAAiB,SAEF,SAApBd,EAAWhd,OACXwM,EAAK7D,OAAOxI,YAAa,EACzBqM,EAAK7D,OAAO9J,YAAa,GAE7B3Q,OAAOyd,OAAOa,EAAK7D,OAAQ0U,EAASL,GACpC,IAAK,IAAInuB,EAAI,EAAGA,EAAIkuB,EAAShuB,OAAQF,IACjC2d,EAAK7D,OAAOoU,EAASluB,KACY,IAA7B2d,EAAK7D,OAAOoU,EAASluB,KACY,SAA7B2d,EAAK7D,OAAOoU,EAASluB,IACjCyO,EAAMjP,QAAO,SAAU4vB,GAAQ,YAA6BnoB,IAAtB0W,EAAK7D,OAAOsV,MAAwBhvB,SAAQ,SAAUgvB,GACxFzR,EAAK7D,OAAOsV,GAAQza,EAASgJ,EAAK7D,OAAOsV,IAAS,IAAI/rB,IAAIoc,MAE9D9B,EAAKzD,UACAyD,EAAK7D,OAAOhK,gBACR6N,EAAK7D,OAAO3U,QACQ,WAArBwY,EAAK7D,OAAO3I,OACXwM,EAAK7D,OAAOjK,QAAQ3P,SACpByd,EAAK7D,OAAO2R,SACZ9N,EAAK7D,OAAOnH,aACb,iEAAiE5K,KAAKmH,UAAUC,WACxF,IAASnP,EAAI,EAAGA,EAAI2d,EAAK7D,OAAO1H,QAAQlS,OAAQF,IAAK,CACjD,IAAIqvB,EAAa1R,EAAK7D,OAAO1H,QAAQpS,GAAG2d,IAAS,GACjD,IAAK,IAAItd,KAAOgvB,EACR5gB,EAAMtC,QAAQ9L,IAAQ,EACtBsd,EAAK7D,OAAOzZ,GAAOsU,EAAS0a,EAAWhvB,IAClCgD,IAAIoc,GACJvd,OAAOyb,EAAK7D,OAAOzZ,IAEQ,qBAApB8tB,EAAW9tB,KACvBsd,EAAK7D,OAAOzZ,GAAOgvB,EAAWhvB,IAGrC8tB,EAAWpf,gBACZ4O,EAAK7D,OAAO/K,cACRugB,KAAeva,UAAY,IAAM4I,EAAK7D,OAAO/K,eAErDqQ,GAAa,iBAEjB,SAASkQ,KACL,OAAO3R,EAAK7D,OAAOlH,KACb6K,EAAQ8R,cAAc,gBACtB9R,EAEV,SAASe,KAC6B,kBAAvBb,EAAK7D,OAAO7I,QAC4B,qBAAxC2M,EAAU4R,MAAM7R,EAAK7D,OAAO7I,SACnC0M,EAAK7D,OAAO7J,aAAa,IAAIsL,MAAM,6BAA+BoC,EAAK7D,OAAO7I,SAClF0M,EAAK3D,KAAO6C,EAASA,EAAS,GAAIe,EAAU4R,MAAMC,SAAyC,kBAAvB9R,EAAK7D,OAAO7I,OAC1E0M,EAAK7D,OAAO7I,OACW,YAAvB0M,EAAK7D,OAAO7I,OACR2M,EAAU4R,MAAM7R,EAAK7D,OAAO7I,aAC5BhK,GACVmS,EAAWlC,EAAI,IAAMyG,EAAK3D,KAAKlH,SAASC,UAAU7P,KAAK,KAAO,IAC9DkW,EAAWL,EAAI,IAAM4E,EAAK3D,KAAKlH,SAASE,SAAS9P,KAAK,KAAO,IAC7DkW,EAAWvB,EAAI,IAAM8F,EAAK3D,KAAK/G,OAAOF,UAAU7P,KAAK,KAAO,IAC5DkW,EAAWjC,EAAI,IAAMwG,EAAK3D,KAAK/G,OAAOD,SAAS9P,KAAK,KAAO,IAC3DkW,EAAWxB,EAAI,IAAM+F,EAAK3D,KAAKrG,KAAK,GAAK,IAAMgK,EAAK3D,KAAKrG,KAAK,GAAK,IAAMgK,EAAK3D,KAAKrG,KAAK,GAAGoZ,cAAgB,IAAMpP,EAAK3D,KAAKrG,KAAK,GAAGoZ,cAAgB,IACnJ,IAAIoB,EAAatR,EAASA,EAAS,GAAIa,GAAiB0Q,KAAKC,MAAMD,KAAKE,UAAU7Q,EAAQ8Q,SAAW,WACxEtnB,IAAzBknB,EAAWzb,gBAC2BzL,IAAtC2W,EAAUC,cAAcnL,YACxBiL,EAAK7D,OAAOpH,UAAYiL,EAAK3D,KAAKtH,WAEtCiL,EAAKra,WAAaqW,EAAoBgE,GACtCA,EAAK7C,UAAYR,EAAiB,CAAER,OAAQ6D,EAAK7D,OAAQE,KAAM2D,EAAK3D,OAExE,SAASmF,GAAiBuQ,GACtB,GAAoC,oBAAzB/R,EAAK7D,OAAOlN,UAGvB,QAA+B3F,IAA3B0W,EAAK2B,kBAAT,CAEAF,GAAa,yBACb,IAAI/M,EAAkBqd,GAAyB/R,EAAKkQ,iBAChD8B,EAAiB/a,MAAMmI,UAAU6S,OAAO1oB,KAAKyW,EAAK2B,kBAAkB/Z,UAAU,SAAWsqB,EAAKC,GAAS,OAAOD,EAAMC,EAAMC,eAAkB,GAAIC,EAAgBrS,EAAK2B,kBAAkBY,YAAa+P,EAAYtS,EAAK7D,OAAOlN,SAASjK,MAAM,KAAMutB,EAAoBD,EAAU,GAAIE,EAAsBF,EAAU/vB,OAAS,EAAI+vB,EAAU,GAAK,KAAMG,EAAc/d,EAAgBge,wBAAyBC,EAAqBrhB,OAAOshB,YAAcH,EAAYI,OAAQC,EAAkC,UAAtBP,GAC/b,UAAtBA,GACGI,EAAqBX,GACrBS,EAAYM,IAAMf,EACtBe,EAAMzhB,OAAO0hB,YACbP,EAAYM,KACVD,GAAgDd,EAAiB,EAArDtd,EAAgB0d,aAAe,GAGjD,GAFAlb,EAAY8I,EAAK2B,kBAAmB,YAAamR,GACjD5b,EAAY8I,EAAK2B,kBAAmB,cAAemR,IAC/C9S,EAAK7D,OAAO3U,OAAhB,CAEA,IAAIyrB,EAAO3hB,OAAO4hB,YAAcT,EAAYQ,KACxCE,GAAW,EACXC,GAAU,EACc,WAAxBZ,GACAS,IAASZ,EAAgBI,EAAYjQ,OAAS,EAC9C2Q,GAAW,GAEkB,UAAxBX,IACLS,GAAQZ,EAAgBI,EAAYjQ,MACpC4Q,GAAU,GAEdlc,EAAY8I,EAAK2B,kBAAmB,aAAcwR,IAAaC,GAC/Dlc,EAAY8I,EAAK2B,kBAAmB,cAAewR,GACnDjc,EAAY8I,EAAK2B,kBAAmB,aAAcyR,GAClD,IAAIC,EAAQ/hB,OAAOoG,SAASgQ,KAAKnF,aAC5BjR,OAAO4hB,YAAcT,EAAYY,OAClCC,EAAYL,EAAOZ,EAAgB/gB,OAAOoG,SAASgQ,KAAKnF,YACxDgR,EAAaF,EAAQhB,EAAgB/gB,OAAOoG,SAASgQ,KAAKnF,YAE9D,GADArL,EAAY8I,EAAK2B,kBAAmB,YAAa2R,IAC7CtT,EAAK7D,OAAOrH,OAGhB,GADAkL,EAAK2B,kBAAkBM,MAAM8Q,IAAMA,EAAM,KACpCO,EAIA,GAAKC,EAIL,CACD,IAAIC,EAAMC,KACV,QAAYnqB,IAARkqB,EACA,OACJ,IAAIE,EAAYpiB,OAAOoG,SAASgQ,KAAKnF,YACjCoR,EAAajrB,KAAKgF,IAAI,EAAGgmB,EAAY,EAAIrB,EAAgB,GACzDuB,EAAe,wCACfC,EAAc,uCACdC,EAAcN,EAAIO,SAASxxB,OAC3ByxB,EAAc,SAAWvB,EAAYQ,KAAO,kBAChD/b,EAAY8I,EAAK2B,kBAAmB,aAAa,GACjDzK,EAAY8I,EAAK2B,kBAAmB,cAAc,GAClD6R,EAAIS,WAAWL,EAAe,IAAMC,EAAcG,EAAaF,GAC/D9T,EAAK2B,kBAAkBM,MAAMgR,KAAOU,EAAa,KACjD3T,EAAK2B,kBAAkBM,MAAMoR,MAAQ,YAjBrCrT,EAAK2B,kBAAkBM,MAAMgR,KAAO,OACpCjT,EAAK2B,kBAAkBM,MAAMoR,MAAQA,EAAQ,UAL7CrT,EAAK2B,kBAAkBM,MAAMgR,KAAOA,EAAO,KAC3CjT,EAAK2B,kBAAkBM,MAAMoR,MAAQ,cAzCzBrT,EAAK7D,OAAOlN,SAAS+Q,EAAM+R,GAgE/C,SAAS0B,KAEL,IADA,IAAIS,EAAgB,KACX7xB,EAAI,EAAGA,EAAIqV,SAASyc,YAAY5xB,OAAQF,IAAK,CAClD,IAAI+xB,EAAQ1c,SAASyc,YAAY9xB,GACjC,GAAK+xB,EAAML,SAAX,CAEA,IACIK,EAAML,SAEV,MAAOxhB,GACH,SAEJ2hB,EAAgBE,EAChB,OAEJ,OAAwB,MAAjBF,EAAwBA,EAAgBG,KAEnD,SAASA,KACL,IAAIpS,EAAQvK,SAASF,cAAc,SAEnC,OADAE,SAAS4c,KAAKzb,YAAYoJ,GACnBA,EAAMmS,MAEjB,SAAS/N,KACDrG,EAAK7D,OAAOxI,YAAcqM,EAAKzD,WAEnC6J,KACAyF,KACA1E,MAEJ,SAASyH,KACL5O,EAAKiD,OAAOuF,SACwC,IAAhDlX,OAAOC,UAAUC,UAAUhD,QAAQ,cACJlF,IAA/BiI,UAAUgjB,iBACVxd,WAAWiJ,EAAK6M,MAAO,GAGvB7M,EAAK6M,QAGb,SAASrH,GAAWva,GAChBA,EAAE0jB,iBACF1jB,EAAE8jB,kBACF,IAAIyF,EAAe,SAAU1uB,GACzB,OAAOA,EAAIuR,WACPvR,EAAIuR,UAAUkP,SAAS,mBACtBzgB,EAAIuR,UAAUkP,SAAS,wBACvBzgB,EAAIuR,UAAUkP,SAAS,eAE5B5P,EAAIqB,EAAWc,EAAe7N,GAAIupB,GACtC,QAAUlrB,IAANqN,EAAJ,CAEA,IAAIvU,EAASuU,EACT8d,EAAgBzU,EAAKoB,sBAAwB,IAAIjb,KAAK/D,EAAOqX,QAAQ7G,WACrE8hB,GAAqBD,EAAa7Y,WAAaoE,EAAKO,cACpDkU,EAAa7Y,WACToE,EAAKO,aAAeP,EAAK7D,OAAOtH,WAAa,IAC5B,UAArBmL,EAAK7D,OAAO3I,KAEhB,GADAwM,EAAKmI,iBAAmB/lB,EACC,WAArB4d,EAAK7D,OAAO3I,KACZwM,EAAKkB,cAAgB,CAACuT,QACrB,GAAyB,aAArBzU,EAAK7D,OAAO3I,KAAqB,CACtC,IAAImhB,EAAgBzM,GAAeuM,GAC/BE,EACA3U,EAAKkB,cAAckL,OAAOxR,SAAS+Z,GAAgB,GAEnD3U,EAAKkB,cAAcjf,KAAKwyB,OAEF,UAArBzU,EAAK7D,OAAO3I,OACiB,IAA9BwM,EAAKkB,cAAc3e,QACnByd,EAAKwM,OAAM,GAAO,GAEtBxM,EAAKoB,sBAAwBqT,EAC7BzU,EAAKkB,cAAcjf,KAAKwyB,GACwC,IAA5D5W,EAAa4W,EAAczU,EAAKkB,cAAc,IAAI,IAClDlB,EAAKkB,cAAc0T,MAAK,SAAUlV,EAAGmV,GAAK,OAAOnV,EAAE9M,UAAYiiB,EAAEjiB,cAGzE,GADAsQ,IACIwR,EAAmB,CACnB,IAAI9G,EAAY5N,EAAKQ,cAAgBiU,EAAavhB,cAClD8M,EAAKQ,YAAciU,EAAavhB,cAChC8M,EAAKO,aAAekU,EAAa7Y,WAC7BgS,IACAnM,GAAa,gBACb2E,MAEJ3E,GAAa,iBAejB,GAbAoK,KACA1E,KACA9F,KACKqT,GACoB,UAArB1U,EAAK7D,OAAO3I,MACe,IAA3BwM,EAAK7D,OAAOtH,gBAEmBvL,IAA1B0W,EAAKmI,uBACW7e,IAArB0W,EAAKsD,aACLtD,EAAKmI,kBAAoBnI,EAAKmI,iBAAiBK,QAH/CF,EAAelmB,QAKMkH,IAArB0W,EAAKsD,kBACgBha,IAArB0W,EAAKsD,aAA6BtD,EAAKsD,YAAYkF,QACnDxI,EAAK7D,OAAOvK,cAAe,CAC3B,IAAIkjB,EAA8B,WAArB9U,EAAK7D,OAAO3I,OAAsBwM,EAAK7D,OAAO9J,WACvD0iB,EAA6B,UAArB/U,EAAK7D,OAAO3I,MACU,IAA9BwM,EAAKkB,cAAc3e,SAClByd,EAAK7D,OAAO9J,YACbyiB,GAAUC,IACVnG,KAGRhK,KAliDJ5E,EAAK7C,UAAYR,EAAiB,CAAER,OAAQ6D,EAAK7D,OAAQE,KAAM2D,EAAK3D,OACpE2D,EAAK0E,UAAY,GACjB1E,EAAKiP,eAAiB,GACtBjP,EAAKgV,cAAgB,GACrBhV,EAAKiV,MAAQlT,EACb/B,EAAKkV,kBAAoB/T,EACzBnB,EAAKmV,kBAAoB3T,GACzBxB,EAAKoJ,YAAcA,GACnBpJ,EAAKqE,WAAaA,GAClBrE,EAAKwM,MAAQA,GACbxM,EAAK6M,MAAQA,GACb7M,EAAKkF,YAAcA,GACnBlF,EAAKoV,eAAiB5d,EACtBwI,EAAK2H,UAAYA,EACjB3H,EAAK8M,QAAUA,GACf9M,EAAK8H,UAAYA,GACjB9H,EAAK8F,WAAaA,EAClB9F,EAAKqB,YAAcA,GACnBrB,EAAKqF,KAAOA,GACZrF,EAAKqG,OAASA,GACdrG,EAAK0L,IAAMA,GACX1L,EAAKlN,QAAUA,GACfkN,EAAKqV,OAASA,GA8gDd,IAAIC,GAAY,CACZhiB,OAAQ,CAACuN,GAAasL,IACtBtX,WAAY,CAACsW,GAAa7J,EAAkB4F,IAC5CvI,QAAS,CAACmH,GACV/G,QAAS,CAAC+G,GACVpR,gBAAiB,CAAC6gB,IAClB5jB,WAAY,CACR,YACmC,IAA3BqO,EAAK7D,OAAOxK,YACZoQ,EAAK/B,EAAKiD,OAAQ,QAASjD,EAAKqF,MAChCtD,EAAK/B,EAAKiD,OAAQ,QAASjD,EAAKqF,QAGhCrF,EAAKiD,OAAO0B,oBAAoB,QAAS3E,EAAKqF,MAC9CrF,EAAKiD,OAAO0B,oBAAoB,QAAS3E,EAAKqF,UAK9D,SAASqG,GAAI8J,EAAQxyB,GACjB,GAAe,OAAXwyB,GAAqC,kBAAXA,EAE1B,IAAK,IAAI9yB,KADThB,OAAOyd,OAAOa,EAAK7D,OAAQqZ,GACXA,OACWlsB,IAAnBgsB,GAAU5yB,IACV4yB,GAAU5yB,GAAKD,SAAQ,SAAUysB,GAAK,OAAOA,YAIrDlP,EAAK7D,OAAOqZ,GAAUxyB,OACIsG,IAAtBgsB,GAAUE,GACVF,GAAUE,GAAQ/yB,SAAQ,SAAUysB,GAAK,OAAOA,OAC3Cpe,EAAMtC,QAAQgnB,IAAW,IAC9BxV,EAAK7D,OAAOqZ,GAAUxe,EAAShU,IAEvCgd,EAAKqG,SACLhF,IAAY,GAEhB,SAASoU,GAAgBC,EAAWxvB,GAChC,IAAI6qB,EAAQ,GACZ,GAAI2E,aAAqBze,MACrB8Z,EAAQ2E,EAAUhwB,KAAI,SAAUuV,GAAK,OAAO+E,EAAK7C,UAAUlC,EAAG/U,WAC7D,GAAIwvB,aAAqBvvB,MAA6B,kBAAduvB,EACzC3E,EAAQ,CAAC/Q,EAAK7C,UAAUuY,EAAWxvB,SAClC,GAAyB,kBAAdwvB,EACZ,OAAQ1V,EAAK7D,OAAO3I,MAChB,IAAK,SACL,IAAK,OACDud,EAAQ,CAAC/Q,EAAK7C,UAAUuY,EAAWxvB,IACnC,MACJ,IAAK,WACD6qB,EAAQ2E,EACH1wB,MAAMgb,EAAK7D,OAAOtK,aAClBnM,KAAI,SAAUY,GAAQ,OAAO0Z,EAAK7C,UAAU7W,EAAMJ,MACvD,MACJ,IAAK,QACD6qB,EAAQ2E,EACH1wB,MAAMgb,EAAK3D,KAAKzG,gBAChBlQ,KAAI,SAAUY,GAAQ,OAAO0Z,EAAK7C,UAAU7W,EAAMJ,MACvD,MACJ,QACI,WAIR8Z,EAAK7D,OAAO7J,aAAa,IAAIsL,MAAM,0BAA4B6S,KAAKE,UAAU+E,KAClF1V,EAAKkB,cAAiBlB,EAAK7D,OAAOlL,oBAC5B8f,EACAA,EAAMlvB,QAAO,SAAUoZ,GAAK,OAAOA,aAAa9U,MAAQ2hB,GAAU7M,GAAG,MAClD,UAArB+E,EAAK7D,OAAO3I,MACZwM,EAAKkB,cAAc0T,MAAK,SAAUlV,EAAGmV,GAAK,OAAOnV,EAAE9M,UAAYiiB,EAAEjiB,aAEzE,SAASE,GAAQxM,EAAMse,EAAe1e,GAGlC,QAFsB,IAAlB0e,IAA4BA,GAAgB,QACjC,IAAX1e,IAAqBA,EAAS8Z,EAAK7D,OAAOrK,YAChC,IAATxL,IAAeA,GAAUA,aAAgB2Q,OAAyB,IAAhB3Q,EAAK/D,OACxD,OAAOyd,EAAKwM,MAAM5H,GACtB6Q,GAAgBnvB,EAAMJ,GACtB8Z,EAAKoB,sBACDpB,EAAKkB,cAAclB,EAAKkB,cAAc3e,OAAS,GACnDyd,EAAKqG,SACLP,OAAWxc,EAAWsb,GACtBzD,IACkC,IAA9BnB,EAAKkB,cAAc3e,QACnByd,EAAKwM,OAAM,GAEfnL,GAAYuD,GACRA,GACAnD,GAAa,YAErB,SAASuP,GAAejsB,GACpB,OAAOA,EACFO,QACAI,KAAI,SAAUiwB,GACf,MAAoB,kBAATA,GACS,kBAATA,GACPA,aAAgBxvB,KACT6Z,EAAK7C,UAAUwY,OAAMrsB,GAAW,GAElCqsB,GACW,kBAATA,GACPA,EAAK1H,MACL0H,EAAKzH,GACE,CACHD,KAAMjO,EAAK7C,UAAUwY,EAAK1H,UAAM3kB,GAChC4kB,GAAIlO,EAAK7C,UAAUwY,EAAKzH,QAAI5kB,IAE7BqsB,KAEN9zB,QAAO,SAAUqtB,GAAK,OAAOA,KAEtC,SAASnO,KACLf,EAAKkB,cAAgB,GACrBlB,EAAKpM,IAAMoM,EAAK7C,UAAU6C,EAAK7D,OAAOvI,MAAQ,IAAIzN,KAClD,IAAIyvB,EAAgB5V,EAAK7D,OAAOyG,cACF,UAAxB5C,EAAKU,MAAMmV,UACe,aAAxB7V,EAAKU,MAAMmV,WACX7V,EAAKU,MAAMoV,aACX9V,EAAKU,MAAM1d,QAAUgd,EAAKU,MAAMoV,YAE9B9V,EAAKU,MAAM1d,MADX,MAEN4yB,GACAH,GAAgBG,EAAe5V,EAAK7D,OAAOrK,YAC/CkO,EAAK4M,aACD5M,EAAKkB,cAAc3e,OAAS,EACtByd,EAAKkB,cAAc,GACnBlB,EAAK7D,OAAOwC,SACVqB,EAAK7D,OAAOwC,QAAQ/L,UAAYoN,EAAKpM,IAAIhB,UACvCoN,EAAK7D,OAAOwC,QACZqB,EAAK7D,OAAO4C,SACViB,EAAK7D,OAAO4C,QAAQnM,UAAYoN,EAAKpM,IAAIhB,UACvCoN,EAAK7D,OAAO4C,QACZiB,EAAKpM,IACvBoM,EAAKQ,YAAcR,EAAK4M,aAAa1Z,cACrC8M,EAAKO,aAAeP,EAAK4M,aAAahR,WAClCoE,EAAKkB,cAAc3e,OAAS,IAC5Byd,EAAKoB,sBAAwBpB,EAAKkB,cAAc,SACxB5X,IAAxB0W,EAAK7D,OAAOuH,UACZ1D,EAAK7D,OAAOuH,QAAU1D,EAAK7C,UAAU6C,EAAK7D,OAAOuH,QAAS,aAClCpa,IAAxB0W,EAAK7D,OAAO0H,UACZ7D,EAAK7D,OAAO0H,QAAU7D,EAAK7C,UAAU6C,EAAK7D,OAAO0H,QAAS,QAC9D7D,EAAK2D,iBACC3D,EAAK7D,OAAOwC,UACTqB,EAAK7D,OAAOwC,QAAQ9E,WAAa,GAC9BmG,EAAK7D,OAAOwC,QAAQ7C,aAAe,GACnCkE,EAAK7D,OAAOwC,QAAQ9C,aAAe,GAC/CmE,EAAK8D,iBACC9D,EAAK7D,OAAO4C,UACTiB,EAAK7D,OAAO4C,QAAQlF,WAAa,GAC9BmG,EAAK7D,OAAO4C,QAAQjD,aAAe,GACnCkE,EAAK7D,OAAO4C,QAAQlD,aAAe,GAEnD,SAASiF,KACLd,EAAKU,MAAQiR,KACR3R,EAAKU,OAIVV,EAAKU,MAAMsM,MAAQhN,EAAKU,MAAMhI,KAC9BsH,EAAKU,MAAMhI,KAAO,OAClBsH,EAAKU,MAAMrJ,UAAUC,IAAI,mBACzB0I,EAAKiD,OAASjD,EAAKU,MACfV,EAAK7D,OAAOhL,WACZ6O,EAAK7O,SAAWqG,EAAcwI,EAAKU,MAAMmV,SAAU7V,EAAK7D,OAAO/K,eAC/D4O,EAAKiD,OAASjD,EAAK7O,SACnB6O,EAAK7O,SAAS2kB,YAAc9V,EAAKU,MAAMoV,YACvC9V,EAAK7O,SAAS+Z,SAAWlL,EAAKU,MAAMwK,SACpClL,EAAK7O,SAASjE,SAAW8S,EAAKU,MAAMxT,SACpC8S,EAAK7O,SAAS0V,SAAW7G,EAAKU,MAAMmG,SACpC7G,EAAK7O,SAASuH,KAAO,OACrBsH,EAAKU,MAAM9H,aAAa,OAAQ,WAC3BoH,EAAK7D,OAAOrH,QAAUkL,EAAKU,MAAMxI,YAClC8H,EAAKU,MAAMxI,WAAWsP,aAAaxH,EAAK7O,SAAU6O,EAAKU,MAAM+G,cAEhEzH,EAAK7D,OAAOnL,YACbgP,EAAKiD,OAAOrK,aAAa,WAAY,YACzC2c,MArBIvV,EAAK7D,OAAO7J,aAAa,IAAIsL,MAAM,oCAuB3C,SAAS2X,KACLvV,EAAKkQ,iBAAmBlQ,EAAK7D,OAAOzH,iBAAmBsL,EAAKiD,OAEhE,SAAS8B,KACL,IAAIgR,EAAY/V,EAAK7D,OAAO9J,WACtB2N,EAAK7D,OAAOxI,WACR,OACA,iBACJ,OACNqM,EAAK2M,YAAcnV,EAAc,QAASwI,EAAKU,MAAMtJ,UAAY,qBACjE4I,EAAK2M,YAAY9F,SAAW,EAC5B7G,EAAK2M,YAAYjU,KAAOqd,EACxB/V,EAAK2M,YAAYzB,SAAWlL,EAAKU,MAAMwK,SACvClL,EAAK2M,YAAYzf,SAAW8S,EAAKU,MAAMxT,SACvC8S,EAAK2M,YAAYmJ,YAAc9V,EAAKU,MAAMoV,YAC1C9V,EAAKgW,gBACa,mBAAdD,EACM,gBACc,SAAdA,EACI,QACA,QACV/V,EAAKkB,cAAc3e,OAAS,IAC5Byd,EAAK2M,YAAYsJ,aAAejW,EAAK2M,YAAY3pB,MAAQgd,EAAKra,WAAWqa,EAAKkB,cAAc,GAAIlB,EAAKgW,kBAErGhW,EAAK7D,OAAOwC,UACZqB,EAAK2M,YAAYlkB,IAAMuX,EAAKra,WAAWqa,EAAK7D,OAAOwC,QAAS,UAC5DqB,EAAK7D,OAAO4C,UACZiB,EAAK2M,YAAYjf,IAAMsS,EAAKra,WAAWqa,EAAK7D,OAAO4C,QAAS,UAC5DiB,EAAKU,MAAMuL,aAAa,UACxBjM,EAAK2M,YAAYuJ,KAAOjvB,OAAO+Y,EAAKU,MAAMuL,aAAa,UAC3DjM,EAAKU,MAAMhI,KAAO,cACIpP,IAAlB0W,EAAK7O,WACL6O,EAAK7O,SAASuH,KAAO,UACzB,IACQsH,EAAKU,MAAMxI,YACX8H,EAAKU,MAAMxI,WAAWsP,aAAaxH,EAAK2M,YAAa3M,EAAKU,MAAM+G,aAExE,MAAOxL,IACP8F,EAAK/B,EAAK2M,YAAa,UAAU,SAAU1hB,GACvC+U,EAAKlN,QAAQgG,EAAe7N,GAAGjI,OAAO,EAAOgd,EAAKgW,iBAClDvU,GAAa,YACbA,GAAa,cAGrB,SAAS4T,GAAOpqB,GACZ,IAAoB,IAAhB+U,EAAKW,OACL,OAAOX,EAAK6M,QAChB7M,EAAKqF,KAAKpa,GAEd,SAASwW,GAAa1I,EAAO3U,GACzB,QAAoBkF,IAAhB0W,EAAK7D,OAAT,CAEA,IAAIga,EAAQnW,EAAK7D,OAAOpD,GACxB,QAAczP,IAAV6sB,GAAuBA,EAAM5zB,OAAS,EACtC,IAAK,IAAIF,EAAI,EAAG8zB,EAAM9zB,IAAMA,EAAI8zB,EAAM5zB,OAAQF,IAC1C8zB,EAAM9zB,GAAG2d,EAAKkB,cAAelB,EAAKU,MAAM1d,MAAOgd,EAAM5b,GAE/C,aAAV2U,IACAiH,EAAKU,MAAMgG,cAAcD,GAAY,WACrCzG,EAAKU,MAAMgG,cAAcD,GAAY,YAG7C,SAASA,GAAY1iB,GACjB,IAAIkH,EAAIyM,SAAS+O,YAAY,SAE7B,OADAxb,EAAEmrB,UAAUryB,GAAM,GAAM,GACjBkH,EAEX,SAASid,GAAe5hB,GACpB,IAAK,IAAIjE,EAAI,EAAGA,EAAI2d,EAAKkB,cAAc3e,OAAQF,IAAK,CAChD,IAAIoyB,EAAezU,EAAKkB,cAAc7e,GACtC,GAAIoyB,aAAwBtuB,MACa,IAArC0X,EAAa4W,EAAcnuB,GAC3B,MAAO,GAAKjE,EAEpB,OAAO,EAEX,SAAS+lB,GAAc9hB,GACnB,QAAyB,UAArB0Z,EAAK7D,OAAO3I,MAAoBwM,EAAKkB,cAAc3e,OAAS,KAExDsb,EAAavX,EAAM0Z,EAAKkB,cAAc,KAAO,GACjDrD,EAAavX,EAAM0Z,EAAKkB,cAAc,KAAO,GAErD,SAAS2K,KACD7L,EAAK7D,OAAOxI,YAAcqM,EAAKzD,WAAayD,EAAKsF,WAErDtF,EAAKqL,aAAa5oB,SAAQ,SAAUuoB,EAAa3oB,GAC7C,IAAI4Y,EAAI,IAAI9U,KAAK6Z,EAAKQ,YAAaR,EAAKO,aAAc,GACtDtF,EAAEtB,SAASqG,EAAKO,aAAele,GAC3B2d,EAAK7D,OAAOtH,WAAa,GACS,WAAlCmL,EAAK7D,OAAO1I,kBACZuM,EAAKsL,cAAcjpB,GAAGsV,YAClByB,EAAW6B,EAAEW,WAAYoE,EAAK7D,OAAOvH,sBAAuBoL,EAAK3D,MAAQ,IAG7E2D,EAAKsK,wBAAwBtnB,MAAQiY,EAAEW,WAAW9W,WAEtDkmB,EAAYhoB,MAAQiY,EAAE/H,cAAcpO,cAExCkb,EAAKsM,yBACuBhjB,IAAxB0W,EAAK7D,OAAOwC,UACPqB,EAAKQ,cAAgBR,EAAK7D,OAAOwC,QAAQzL,cACpC8M,EAAKO,cAAgBP,EAAK7D,OAAOwC,QAAQ/C,WACzCoE,EAAKQ,YAAcR,EAAK7D,OAAOwC,QAAQzL,eACrD8M,EAAKuM,yBACuBjjB,IAAxB0W,EAAK7D,OAAO4C,UACPiB,EAAKQ,cAAgBR,EAAK7D,OAAO4C,QAAQ7L,cACpC8M,EAAKO,aAAe,EAAIP,EAAK7D,OAAO4C,QAAQnD,WAC5CoE,EAAKQ,YAAcR,EAAK7D,OAAO4C,QAAQ7L,gBAEzD,SAASmb,GAAWgI,GAChB,IAAInwB,EAASmwB,IACRrW,EAAK7D,OAAOhL,SAAW6O,EAAK7D,OAAOjL,UAAY8O,EAAK7D,OAAOrK,YAChE,OAAOkO,EAAKkB,cACPxb,KAAI,SAAU4wB,GAAQ,OAAOtW,EAAKra,WAAW2wB,EAAMpwB,MACnDrE,QAAO,SAAUoZ,EAAG5Y,EAAG0C,GACxB,MAA4B,UAArBib,EAAK7D,OAAO3I,MACfwM,EAAK7D,OAAO9J,YACZtN,EAAIyJ,QAAQyM,KAAO5Y,KAEtBkD,KAA0B,UAArBya,EAAK7D,OAAO3I,KAChBwM,EAAK7D,OAAOtK,YACZmO,EAAK3D,KAAKzG,gBAEpB,SAASyL,GAAYuD,QACK,IAAlBA,IAA4BA,GAAgB,QACvBtb,IAArB0W,EAAK2M,aAA6B3M,EAAKgW,kBACvChW,EAAK2M,YAAY3pB,WACkBsG,IAA/B0W,EAAKoB,sBACCpB,EAAKra,WAAWqa,EAAKoB,sBAAuBpB,EAAKgW,iBACjD,IAEdhW,EAAKU,MAAM1d,MAAQqrB,GAAWrO,EAAK7D,OAAOrK,iBACpBxI,IAAlB0W,EAAK7O,WACL6O,EAAK7O,SAASnO,MAAQqrB,GAAWrO,EAAK7D,OAAOjL,aAE3B,IAAlB0T,GACAnD,GAAa,iBAErB,SAAS8D,GAAgBta,GACrB,IAAIkZ,EAAcrL,EAAe7N,GAC7BsrB,EAAcvW,EAAKoL,aAAa7E,SAASpC,GACzCqS,EAAcxW,EAAKuL,aAAahF,SAASpC,GACzCoS,GAAeC,EACfpN,GAAYmN,GAAe,EAAI,GAE1BvW,EAAKqL,aAAa7c,QAAQ2V,IAAgB,EAC/CA,EAAYwB,SAEPxB,EAAY9M,UAAUkP,SAAS,WACpCvG,EAAKqE,WAAWrE,EAAKQ,YAAc,GAE9B2D,EAAY9M,UAAUkP,SAAS,cACpCvG,EAAKqE,WAAWrE,EAAKQ,YAAc,GAG3C,SAASuC,GAAY9X,GACjBA,EAAE0jB,iBACF,IAAI8H,EAAuB,YAAXxrB,EAAEyN,KAAoByL,EAAcrL,EAAe7N,GAAIyV,EAAQyD,OAC7D7a,IAAd0W,EAAKhK,MAAsBmO,IAAgBnE,EAAKhK,OAChDgK,EAAKhK,KAAK2B,YACNqI,EAAK3D,KAAKrG,KAAK,EAAIgK,EAAKhK,KAAK2B,cAAgBqI,EAAK3D,KAAKrG,KAAK,MAEpE,IAAIvN,EAAMqR,WAAW4G,EAAMuL,aAAa,QAASve,EAAMoM,WAAW4G,EAAMuL,aAAa,QAASiK,EAAOpc,WAAW4G,EAAMuL,aAAa,SAAUyK,EAAW9b,SAAS8F,EAAM1d,MAAO,IAAKohB,EAAQnZ,EAAEmZ,QACxLqS,EAAyB,KAAZxrB,EAAE0rB,MAAe,GAAK,EAAK,GACzCC,EAAWF,EAAWR,EAAO9R,EACjC,GAA2B,qBAAhB1D,EAAM1d,OAAgD,IAAvB0d,EAAM1d,MAAMT,OAAc,CAChE,IAAIs0B,EAAanW,IAAUV,EAAKsD,YAAawT,EAAepW,IAAUV,EAAKuD,cACvEqT,EAAWnuB,GACXmuB,EACIlpB,EACIkpB,EACA,GAAKC,IACJ,EAAIA,IAAe,GAAK7W,EAAKhK,OAClC8gB,GACAxQ,OAAkBhd,GAAY,EAAG0W,EAAKsD,cAErCsT,EAAWlpB,IAChBkpB,EACIlW,IAAUV,EAAKsD,YAAcsT,EAAWlpB,EAAM,GAAKsS,EAAKhK,MAAQvN,EAChEquB,GACAxQ,OAAkBhd,EAAW,EAAG0W,EAAKsD,cAEzCtD,EAAKhK,MACL6gB,IACU,IAATX,EACKU,EAAWF,IAAa,GACxBhuB,KAAKygB,IAAIyN,EAAWF,GAAYR,KACtClW,EAAKhK,KAAK2B,YACNqI,EAAK3D,KAAKrG,KAAK,EAAIgK,EAAKhK,KAAK2B,cAAgBqI,EAAK3D,KAAKrG,KAAK,MAEpE0K,EAAM1d,MAAQqT,EAAIugB,IAI1B,OADAnW,IACOT,EAEX,SAAS+W,EAAWC,EAAU7a,GAK1B,IAJA,IAAI8a,EAAQhgB,MAAMmI,UAAU9Z,MACvBiE,KAAKytB,GACLn1B,QAAO,SAAUqtB,GAAK,OAAOA,aAAagI,eAC3CC,EAAY,GACP90B,EAAI,EAAGA,EAAI40B,EAAM10B,OAAQF,IAAK,CACnC,IAAIwV,EAAOof,EAAM50B,GACjB,IACI,GAA0C,OAAtCwV,EAAKoU,aAAa,gBAClB,cACoB3iB,IAApBuO,EAAKkf,aACLlf,EAAKkf,WAAWjK,UAChBjV,EAAKkf,gBAAaztB,GAEtBuO,EAAKkf,WAAalX,EAAkBhI,EAAMsE,GAAU,IACpDgb,EAAUl1B,KAAK4V,EAAKkf,YAExB,MAAO9rB,GACHuH,QAAQ0G,MAAMjO,IAGtB,OAA4B,IAArBksB,EAAU50B,OAAe40B,EAAU,GAAKA,EAExB,qBAAhBD,aACmB,qBAAnBE,gBACa,qBAAbC,WACPD,eAAehY,UAAUa,UAAYoX,SAASjY,UAAUa,UAAY,SAAU9D,GAC1E,OAAO4a,EAAW7vB,KAAMiV,IAE5B+a,YAAY9X,UAAUa,UAAY,SAAU9D,GACxC,OAAO4a,EAAW,CAAC7vB,MAAOiV,KAGlC,IAAI8D,EAAY,SAAUqX,EAAUnb,GAChC,MAAwB,kBAAbmb,EACAP,EAAWzlB,OAAOoG,SAASoN,iBAAiBwS,GAAWnb,GAEzDmb,aAAoBC,KAClBR,EAAW,CAACO,GAAWnb,GAGvB4a,EAAWO,EAAUnb,IAGpC8D,EAAUC,cAAgB,GAC1BD,EAAU4R,MAAQ,CACd2F,GAAItY,EAAS,GAAI,GACjB4S,QAAS5S,EAAS,GAAI,IAE1Be,EAAUwX,SAAW,SAAUpb,GAC3B4D,EAAU4R,MAAMC,QAAU5S,EAASA,EAAS,GAAIe,EAAU4R,MAAMC,SAAUzV,IAE9E4D,EAAUyX,YAAc,SAAUvb,GAC9B8D,EAAUC,cAAgBhB,EAASA,EAAS,GAAIe,EAAUC,eAAgB/D,IAE9E8D,EAAU9C,UAAYR,EAAiB,IACvCsD,EAAUta,WAAaqW,EAAoB,IAC3CiE,EAAUpC,aAAeA,EACH,qBAAX8Z,QAA+C,qBAAdA,OAAOlhB,KAC/CkhB,OAAOlhB,GAAGwJ,UAAY,SAAU9D,GAC5B,OAAO4a,EAAW7vB,KAAMiV,KAGhChW,KAAKiZ,UAAUwY,QAAU,SAAUtV,GAC/B,OAAO,IAAInc,KAAKe,KAAKgM,cAAehM,KAAK0U,WAAY1U,KAAK6L,WAA6B,kBAATuP,EAAoB1H,SAAS0H,EAAM,IAAMA,KAErG,qBAAXhR,SACPA,OAAO2O,UAAYA,GAER,gB,2DC5/Dc,oBAAlBve,OAAOyd,SACdzd,OAAOyd,OAAS,SAAU/c,GAEtB,IADA,IAAIyU,EAAO,GACFghB,EAAK,EAAGA,EAAKv1B,UAAUC,OAAQs1B,IACpChhB,EAAKghB,EAAK,GAAKv1B,UAAUu1B,GAE7B,IAAKz1B,EACD,MAAMkK,UAAU,8CAOpB,IALA,IAAIwrB,EAAU,SAAUt1B,GAChBA,GACAd,OAAOD,KAAKe,GAAQC,SAAQ,SAAUC,GAAO,OAAQN,EAAOM,GAAOF,EAAOE,OAGzEuZ,EAAK,EAAG8b,EAASlhB,EAAMoF,EAAK8b,EAAOx1B,OAAQ0Z,IAAM,CACtD,IAAIzZ,EAASu1B,EAAO9b,GACpB6b,EAAQt1B,GAEZ,OAAOJ,K,kCCnBf,W,oCCAA,W,oCCAA,W,2fCUI41B,EAAQ,CACRR,GAAI,YACJS,GAAI,2BACJC,GAAI,eACJC,GAAI,gBACJC,GAAI,mBACJC,GAAI,2DACJC,GAAI,4BACJvqB,GAAI,qBACJwqB,GAAI,qBACJC,GAAI,kBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,yBACJC,GAAI,iBACJC,GAAI,aACJC,GAAI,4BACJC,GAAI,iBACJC,GAAI,eACJC,GAAI,mBACJC,GAAI,mBACJC,GAAI,qDACJC,GAAI,oBACJ5U,GAAI,aA2BJ6U,EAAe,CACf7B,GAAI,eACJS,GAAI,8BACJC,GAAI,iBACJC,GAAI,mBACJC,GAAI,sBACJC,GAAI,2DACJC,GAAI,+BACJvqB,GAAI,wBACJwqB,GAAI,wBACJE,GAAI,wBACJD,GAAI,qBACJE,GAAI,wBACJC,GAAI,4BACJC,GAAI,oBACJC,GAAI,gBACJC,GAAI,+BACJC,GAAI,oBACJC,GAAI,kBACJC,GAAI,sBACJC,GAAI,sBACJC,GAAI,kEACJC,GAAI,uBACJ5U,GAAI,gBAEJ8U,EAAY,CACZ9B,GAAI,iBACJS,GAAI,gCACJC,GAAI,oBACJC,GAAI,qBACJC,GAAI,wBACJC,GAAI,2DACJC,GAAI,iCACJvqB,GAAI,0BACJwqB,GAAI,0BACJC,GAAI,uBACJC,GAAI,0BACJC,GAAI,0BACJC,GAAI,8BACJC,GAAI,sBACJC,GAAI,kBACJC,GAAI,iCACJC,GAAI,sBACJC,GAAI,oBACJC,GAAI,wBACJC,GAAI,wBACJC,GAAI,oEACJC,GAAI,yBACJ5U,GAAI,kBAGJ+U,EAAW,SAAUv2B,EAAOiZ,GAC5B,IAAIC,QAAa,IAAPD,EAAgB,GAAKA,GAAI3I,OAAQA,OAAgB,IAAP4I,EAAgB,GAAKA,EACzE,OAAIjF,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAO4tB,EAAS5tB,EAAK,CAAE2H,OAAQA,OAGlEA,GAGG0kB,EAAM1kB,IAAW0kB,EAAMR,IAAIptB,KAAKpH,GAF7BtB,OAAOD,KAAKu2B,GAAOvK,MAAK,SAAUiM,GAAO,OAAO1B,EAAM0B,GAAKtvB,KAAKpH,OAI3E22B,EAAS,CACT,CACI51B,KAAM,WAGV61B,EAAU,CACVL,SAAUA,EACVI,OAAQA,GAGRE,EAAa,SAAU72B,EAAOiZ,GAC9B,IAAIC,QAAa,IAAPD,EAAgB,GAAKA,GAAI3I,OAAQA,OAAgB,IAAP4I,EAAgB,GAAKA,EACzE,OAAIjF,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAOkuB,EAAWluB,EAAK,CAAE2H,OAAQA,OAGpEA,GAGGgmB,EAAUhmB,IAAWgmB,EAAU9B,IAAIptB,KAAKpH,GAFrCtB,OAAOD,KAAK63B,GAAW7L,MAAK,SAAUiM,GAAO,OAAOJ,EAAUI,GAAKtvB,KAAKpH,OAInF82B,EAAW,CACX,CACI/1B,KAAM,WAGVg2B,EAAa,CACbR,SAAUM,EACVF,OAAQG,GAGRE,EAAa,SAAUh3B,EAAOiZ,GAC9B,IAAIC,QAAa,IAAPD,EAAgB,GAAKA,GAAI3I,OAAQA,OAAgB,IAAP4I,EAAgB,GAAKA,EACzE,OAAIjF,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAOquB,EAAWruB,EAAK,CAAE2H,OAAQA,OAGpEA,GAGG+lB,EAAa/lB,IAAW+lB,EAAa7B,IAAIptB,KAAKpH,GAF3CtB,OAAOD,KAAK43B,GAAc5L,MAAK,SAAUiM,GAAO,OAAOL,EAAaK,GAAKtvB,KAAKpH,OAIzFi3B,EAAW,CACX,CACIl2B,KAAM,WAGVm2B,EAAY,CACZX,SAAUS,EACVL,OAAQM,GAwBRE,EAAa,SAAUn3B,EAAOiZ,GAC9B,IAAIC,OAAY,IAAPD,EAAgB,GAAKA,EAAIxT,EAAMyT,EAAGzT,IAAKiF,EAAMwO,EAAGxO,IACzD,OAAIuJ,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,QAASwuB,EAAWxuB,EAAK,CAAElD,IAAKA,EAAKiF,IAAKA,OAE3E0sB,OAAO3xB,IAAQzF,GAASo3B,OAAO1sB,IAAQ1K,GAE9Cq3B,EAAW,CACX,CACIt2B,KAAM,OAEV,CACIA,KAAM,QAGVu2B,EAAU,CACVf,SAAUY,EACVR,OAAQU,GAGRE,EAAa,SAAUv3B,EAAOiZ,GAC9B,IAAI7Z,EAAS6Z,EAAG7Z,OAChB,OAAO6E,OAAOjE,KAAWiE,OAAO7E,IAEhCo4B,EAAW,CACX,CACIz2B,KAAM,SACN02B,UAAU,IAGdC,EAAY,CACZnB,SAAUgB,EACVZ,OAAQa,GAGRG,EAAa,SAAU33B,EAAOiZ,GAC9B,IAAI1Z,EAAS0Z,EAAG1Z,OAChB,GAAI0U,MAAMuiB,QAAQx2B,GACd,OAAOA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAOgvB,EAAWhvB,EAAK,CAAEpJ,OAAQA,OAEzE,IAAIq4B,EAAS3zB,OAAOjE,GACpB,MAAO,WAAWoH,KAAKwwB,IAAWA,EAAOr4B,SAAWA,GAEpDs4B,EAAW,CACX,CACI92B,KAAM,SACN+2B,KAAM,SAAU93B,GACZ,OAAOo3B,OAAOp3B,MAItB+3B,EAAS,CACTxB,SAAUoB,EACVhB,OAAQkB,GA8CRG,EAAa,SAAUh4B,EAAOiZ,GAC9B,IAAIgf,QAAmB,IAAPhf,EAAgB,GAAKA,GAAIgf,SAErCC,EAAK,0JAMT,OALID,IAAahkB,MAAMuiB,QAAQx2B,KAC3BA,EAAQiE,OAAOjE,GACVgC,MAAM,KACNU,KAAI,SAAUy1B,GAAY,OAAOA,EAASje,WAE/CjG,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAOuvB,EAAG9wB,KAAKnD,OAAO0E,OAEvDuvB,EAAG9wB,KAAKnD,OAAOjE,KAEtBo4B,EAAW,CACX,CACIr3B,KAAM,WACN+tB,SAAS,IAGbuJ,EAAQ,CACR9B,SAAUyB,EACVrB,OAAQyB;;;;;IAGZ,SAASE,EAAkBt4B,GACvB,OAAiB,OAAVA,QAA4BsG,IAAVtG,EAE7B,SAASu4B,EAAax2B,GAClB,OAAOkS,MAAMuiB,QAAQz0B,IAAuB,IAAfA,EAAIxC,OAErC,SAASi5B,EAAW/kB,GAChB,MAAqB,oBAAPA,EASlB,SAASglB,EAAQC,GACb,OAAIF,EAAWvkB,MAAMgX,MACVhX,MAAMgX,KAAKyN,GAGfC,EAAWD,GAGtB,SAASC,EAAWD,GAGhB,IAFA,IAAI3N,EAAQ,GACRxrB,EAASm5B,EAAUn5B,OACdF,EAAI,EAAGA,EAAIE,EAAQF,IACxB0rB,EAAM9rB,KAAKy5B,EAAUr5B,IAEzB,OAAO0rB,EAGX,IA0CI6N,EAAa,SAAU54B,GACvB,OAAIiU,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,MAAO,aAAavB,KAAKnD,OAAO0E,OAEjE,aAAavB,KAAKnD,OAAOjE,KAEhC64B,EAAU,CACVtC,SAAUqC,GA+BVE,EAAa,SAAU94B,EAAOiZ,GAC9B,IAAI1Z,EAAS0Z,EAAG1Z,OAChB,OAAI+4B,EAAkBt4B,KAGD,kBAAVA,IACPA,EAAQy4B,EAAQz4B,IAEC,kBAAVA,IACPA,EAAQiE,OAAOjE,IAEdA,EAAMT,SACPS,EAAQy4B,EAAQz4B,IAEbA,EAAMT,SAAWA,IAExBw5B,EAAW,CACX,CACIh4B,KAAM,SACN+2B,KAAM,SAAU93B,GAAS,OAAOo3B,OAAOp3B,MAG3C,EAAS,CACTu2B,SAAUuC,EACVnC,OAAQoC,GA4DRC,EAAa,SAAUh5B,EAAOiZ,GAC9B,IAAI1Z,EAAS0Z,EAAG1Z,OAChB,OAAI+4B,EAAkBt4B,KAGlBiU,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAOqwB,EAAWrwB,EAAK,CAAEpJ,OAAQA,OAElE0E,OAAOjE,GAAOT,QAAUA,IAE/B05B,EAAW,CACX,CACIl4B,KAAM,SACN+2B,KAAM,SAAU93B,GACZ,OAAOo3B,OAAOp3B,MAItByF,EAAM,CACN8wB,SAAUyC,EACVrC,OAAQsC,GA0CRC,EAAa,SAAUl5B,EAAOiZ,GAC9B,IAAIkgB,EAAQlgB,EAAGkgB,MACf,OAAIllB,MAAMuiB,QAAQx2B,GACPA,EAAMy2B,OAAM,SAAU9tB,GAAO,OAAOuwB,EAAWvwB,EAAK,CAAEwwB,MAAOA,OAEjEA,EAAM/xB,KAAKnD,OAAOjE,KAEzBo5B,EAAW,CACX,CACIr4B,KAAM,QACN+2B,KAAM,SAAU93B,GACZ,MAAqB,kBAAVA,EACA,IAAI6F,OAAO7F,GAEfA,KAIfm5B,EAAQ,CACR5C,SAAU2C,EACVvC,OAAQyC,GAGRC,EAAa,SAAUr5B,EAAOiZ,GAC9B,IAAIqgB,QAAqB,IAAPrgB,EAAgB,CAAEqgB,YAAY,GAASrgB,GAAIqgB,WACzDn1B,EAAS,CACTiG,OAAO,EACPF,UAAU,GAEd,OAAIouB,EAAkBt4B,IAAUu4B,EAAav4B,GAClCmE,GAGG,IAAVnE,GAAoBs5B,GAGxBn1B,EAAOiG,QAAUnG,OAAOjE,GAAOka,OAAO3a,OAC/B4E,GAHIA,GAKXo1B,GAAmB,EACnBC,EAAW,CACX,CACIz4B,KAAM,aACN+tB,SAAS,IAGb5kB,EAAW,CACXqsB,SAAU8C,EACV1C,OAAQ6C,EACRD,iBAAkBA,G,wBCnnBTE,G,oBAAoB,SAAAz5B,GAC/B,OAAIA,GAAS,IAMF05B,EAAoB,SAAAC,GAE/B,IAAMC,EAAS,uDAETC,EAAgBD,EAAOxyB,KAAKuyB,GAClC,OAAOE,GAGIC,EAAsB,SAAAC,GAEjC,IAAMC,EAAU,uBAEVC,EAAkBD,EAAQ5yB,KAAK2yB,GACrC,OAAOE,GAGIC,EAAwB,SAAAvxB,GACnC,QAAYrC,IAARqC,GAA6B,OAARA,GAA+B,IAAfA,EAAIpJ,OAC3C,OAAO,EAGT,IAAM24B,EAAK,4EAEX,OAAOA,EAAG9wB,KAAKuB,ICLJuB,GAAWpJ,eAAO,WAAYq5B,GAE9B9B,GAAQv3B,eAAO,QAASs5B,GAExB30B,GAAM3E,eAAO,MAAOu5B,GAEpB3C,GAAY52B,eAAO,YAAaw5B,GAIhChD,IAFQx2B,eAAO,QAASy5B,GAEdz5B,eAAO,UAAW05B,IAE5BxF,GAAQl0B,eAAO,QAAS25B,GAExB5B,GAAU/3B,eAAO,UAAW45B,GAE5B3C,GAASj3B,eAAO,SAAU65B,GAE1BrE,GAAYx1B,eAAO,aAAc85B,GAEjCC,GAAW/5B,eAAO,YAAag6B,GAE/Bv7B,GAASuB,eAAO,SAAUi6B,GAY1BpB,IAVW74B,eAAO,WAAY,CACzCy1B,SAAUkD,EACVtW,QAAS,kCAGWriB,eAAO,cAAe,CAC1Cy1B,SAAUuD,EACV3W,QAAS,iCAGariB,eAAO,WAAY,CACzCy1B,SAAUmD,EACVvW,QAAS,4GAGE6X,GAAMl6B,eAAO,MAAO,CAC/By1B,SAAU2D,EACV/W,QAAS,mBAIXsR,eAAS,CACPD,GAAI,CACFyG,SAAUzG,EAAGyG,SACbC,MAAO,CACL7C,MAAO,QACPsB,SAAU,YAEZwB,OAAQ,CACNxB,SAAU,CACRl0B,IAAK,qDAIX0wB,GAAI,CACF8E,SAAU9E,EAAG8E,SACbC,MAAO,CACL7C,MAAO,oBACPsB,SAAU,aAEZwB,OAAQ,CACNxB,SAAU,CACRl0B,IAAK,0C,sBC3Fb;;;;;;;CAMA,SAA2C21B,EAAMC,GAE/Cx3B,EAAOC,QAAUu3B,KAFnB,CASmB,qBAATre,MAAuBA,MAAa,WAC9C,OAAgB,SAAUse,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAU33B,QAGnC,IAAID,EAAS03B,EAAiBE,GAAY,CACzCp8B,EAAGo8B,EACHrjB,GAAG,EACHtU,QAAS,IAUV,OANAw3B,EAAQG,GAAUl1B,KAAK1C,EAAOC,QAASD,EAAQA,EAAOC,QAAS03B,GAG/D33B,EAAOuU,GAAI,EAGJvU,EAAOC,QAqCf,OAhCA03B,EAAoB9uB,EAAI4uB,EAGxBE,EAAoB9hB,EAAI6hB,EAGxBC,EAAoBvjB,EAAI,SAASnU,EAAS/C,EAAM26B,GAC3CF,EAAoBG,EAAE73B,EAAS/C,IAClCrC,OAAOoB,eAAegE,EAAS/C,EAAM,CACpCd,cAAc,EACdjB,YAAY,EACZwpB,IAAKkT,KAMRF,EAAoBp3B,EAAI,SAASP,GAChC,IAAI63B,EAAS73B,GAAUA,EAAO+3B,WAC7B,WAAwB,OAAO/3B,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADA23B,EAAoBvjB,EAAEyjB,EAAQ,IAAKA,GAC5BA,GAIRF,EAAoBG,EAAI,SAASp9B,EAAQs9B,GAAY,OAAOn9B,OAAO0d,UAAUC,eAAe9V,KAAKhI,EAAQs9B,IAGzGL,EAAoB1zB,EAAI,GAGjB0zB,EAAoBA,EAAoB7oB,EAAI,KA9D7C,CAiEN,CAEJ,SAAU9O,EAAQC,EAAS03B,GAEjC,aAEA98B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI87B,EAAcN,EAAoB,IAClCO,EAAWP,EAAoB,IAC/BQ,EAASR,EAAoB,IAC7BS,EAAWT,EAAoB,IAC/BU,EAAWV,EAAoB,IAC/BW,EAAUX,EAAoB,IAC9BY,EAAUZ,EAAoB,IAC9Ba,EAASb,EAAoB,IAC7Bc,EAAed,EAAoB,IACnCe,EAAUf,EAAoB,IAC9BgB,EAAUhB,EAAoB,IAC9BiB,EAAUjB,EAAoB,IAC9BkB,EAAWlB,EAAoB,GAC/BmB,EAAY,CACZC,MAAOF,EAASE,MAChBC,OAAQH,EAASG,OACjBC,KAAMJ,EAASI,KACfC,MAAOL,EAASK,MAChBC,SAAUN,EAASM,SACnBC,UAAWnB,EAAYhN,QACvBoO,OAAQnB,EAASjN,QACjBqO,KAAMnB,EAAOlN,QACbsO,MAAOhB,EAAQtN,QACfuO,OAAQpB,EAASnN,QACjBwO,MAAOnB,EAAQrN,QACfyO,OAAQrB,EAASpN,QACjB0O,KAAMnB,EAAOvN,QACb2O,WAAY,CACRC,UAAWpB,EAAaxN,QACxB6O,MAAOpB,EAAQzN,QACf8O,MAAOpB,EAAQ1N,QACf+O,MAAOpB,EAAQ3N,UAGvBhrB,EAAQgrB,QAAU6N,GAKZ,SAAU94B,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIo+B,EAAgC,SAAUC,GAE1C,SAASD,EAAejb,GACpB,IAAIvP,EAAQ1P,KAKZ,OAJAif,EAAU,eAAiBA,EAC3BvP,EAAQyqB,EAAO93B,KAAKrC,KAAMif,IAAYjf,KACtC0P,EAAMuP,QAAUA,EAChBvP,EAAM7S,KAAO6S,EAAMuqB,YAAYp9B,KACxB6S,EAEX,OATAkqB,EAAUM,EAAgBC,GASnBD,EAVwB,CAWjCxjB,OACF9W,EAAQs6B,eAAiBA,EACzB,IAKIxB,EALA0B,EAAa,GACbC,EAAU,GACVC,EAAO,GACPC,EAAQ,GAgBZ,SAAS5B,EAAOnf,EAAO1d,GACnB,IAAIwG,EAAQu2B,EAAMrf,GAClB,GAAa,MAATlX,EACA,MAAM,IAAI43B,EAAe,oBAAsB1gB,EAAQ,SAE3D,IAAIghB,EAAYl4B,EACZqO,EAEJ6I,aAAiB6W,MAAQ7W,EAAM,cAAgB6W,KAAKoK,UAAYjhB,EAAQghB,EAAU7B,OAAO78B,GACzF,OAAO,IAAI0+B,EAAU7pB,EAAM7U,GAG/B,SAAS88B,EAAKjoB,EAAM+pB,GAEhB,YADe,IAAXA,IAAqBA,GAAS,GACtB,MAAR/pB,EACO,KAEmB,MAA1BA,EAAK/Q,EAAQ+6B,UACNhqB,EAAK/Q,EAAQ+6B,UAAUC,KAC9BF,EACO9B,EAAKjoB,EAAKK,WAAY0pB,GAC1B,KAGX,SAAS7B,EAAMA,EAAOgC,GAElB,IAAIv4B,EACJ,QAFc,IAAVu4B,IAAoBA,EAAQnC,EAAMoC,KAEjB,kBAAVjC,EACPv2B,EAAQi4B,EAAM1B,IAAUuB,EAAWvB,QAGlC,GAAIA,aAAiBS,MAAQT,EAAM,cAAgBxI,KAAKoK,UACzDn4B,EAAQi4B,EAAM,aAEb,GAAqB,kBAAV1B,EACRA,EAAQH,EAAMqC,MAAQrC,EAAMsC,MAC5B14B,EAAQi4B,EAAM,SAET1B,EAAQH,EAAMqC,MAAQrC,EAAMuC,SACjC34B,EAAQi4B,EAAM,gBAGjB,GAAI1B,aAAiB7I,YAAa,CACnC,IAAIgH,GAAS6B,EAAM9T,aAAa,UAAY,IAAIjnB,MAAM,OACtD,IAAK,IAAI3C,KAAK67B,EAEV,GADA10B,EAAQ+3B,EAAQrD,EAAM77B,IAClBmH,EACA,MAERA,EAAQA,GAASg4B,EAAKzB,EAAMqC,SAEhC,OAAa,MAAT54B,EACO,KAEPu4B,EAAQnC,EAAMqC,MAAQz4B,EAAMu4B,OAASA,EAAQnC,EAAMyC,KAAO74B,EAAMu4B,MACzDv4B,EACJ,KAGX,SAASw2B,IAEL,IADA,IAAIsC,EAAc,GACTzK,EAAK,EAAGA,EAAKv1B,UAAUC,OAAQs1B,IACpCyK,EAAYzK,GAAMv1B,UAAUu1B,GAEhC,GAAIyK,EAAY//B,OAAS,EACrB,OAAO+/B,EAAY58B,KAAI,SAAUuV,GAC7B,OAAO+kB,EAAS/kB,MAGxB,IAAIsnB,EAAaD,EAAY,GAC7B,GAAmC,kBAAxBC,EAAWC,UAAwD,kBAAxBD,EAAWE,SAC7D,MAAM,IAAIrB,EAAe,sBAExB,GAA4B,aAAxBmB,EAAWC,SAChB,MAAM,IAAIpB,EAAe,kCAG7B,GADAK,EAAMc,EAAWC,UAAYD,EAAWE,UAAYF,EAClB,kBAAvBA,EAAWG,QAClBpB,EAAWiB,EAAWG,SAAWH,OAMjC,GAH4B,MAAxBA,EAAWnrB,YACXmqB,EAAQgB,EAAWnrB,WAAamrB,GAEV,MAAtBA,EAAWH,QAAiB,CACxBnrB,MAAMuiB,QAAQ+I,EAAWH,SACzBG,EAAWH,QAAUG,EAAWH,QAAQ18B,KAAI,SAAU08B,GAClD,OAAOA,EAAQ/8B,iBAInBk9B,EAAWH,QAAUG,EAAWH,QAAQ/8B,cAE5C,IAAIs9B,EAAW1rB,MAAMuiB,QAAQ+I,EAAWH,SAAWG,EAAWH,QAAU,CAACG,EAAWH,SACpFO,EAASlgC,SAAQ,SAAUsJ,GACN,MAAby1B,EAAKz1B,IAAwC,MAAxBw2B,EAAWnrB,YAChCoqB,EAAKz1B,GAAOw2B,MAK5B,OAAOA,EApHXz7B,EAAQ+6B,SAAW,SAEnB,SAAWjC,GACPA,EAAMA,EAAM,QAAU,GAAK,OAC3BA,EAAMA,EAAM,SAAW,IAAM,QAC7BA,EAAMA,EAAM,aAAe,IAAM,YACjCA,EAAMA,EAAM,QAAU,IAAM,OAC5BA,EAAMA,EAAM,UAAY,GAAK,SAC7BA,EAAMA,EAAM,SAAW,IAAM,QAC7BA,EAAMA,EAAM,cAAgB,IAAM,aAClCA,EAAMA,EAAM,eAAiB,GAAK,cAClCA,EAAMA,EAAM,mBAAqB,GAAK,kBACtCA,EAAMA,EAAM,oBAAsB,GAAK,mBACvCA,EAAMA,EAAM,OAAS,IAAM,MAX/B,CAYGA,EAAQ94B,EAAQ84B,QAAU94B,EAAQ84B,MAAQ,KAY7C94B,EAAQ+4B,OAASA,EAYjB/4B,EAAQg5B,KAAOA,EAmCfh5B,EAAQi5B,MAAQA,EA6ChBj5B,EAAQk5B,SAAWA,GAKb,SAAUn5B,EAAQC,EAAS03B,GAEjC,IAAIoE,EAAOpE,EAAoB,IAC3BqE,EAAQrE,EAAoB,IAC5B16B,EAAS06B,EAAoB,GAC7BsE,EAAKtE,EAAoB,IAGzBuE,EAAiB97B,OAAO+7B,aAAa,GAGrCC,EAAQ,SAAU7lB,GAEhBnG,MAAMuiB,QAAQpc,GAChBlW,KAAKkW,IAAMA,EACK,MAAPA,GAAenG,MAAMuiB,QAAQpc,EAAIA,KAC1ClW,KAAKkW,IAAMA,EAAIA,IAEflW,KAAKkW,IAAM,IAKf6lB,EAAM7jB,UAAU8jB,OAAS,SAAUC,EAAM7B,GACvC,IAAI8B,EAAQ,GACZ,OAAoB,IAAhBD,EAAK5gC,OAAqB2E,MAC9Bk8B,EAAMF,OAASC,EACG,MAAd7B,GAA4C,kBAAfA,GAA2B5/B,OAAOD,KAAK6/B,GAAY/+B,OAAS,IAC3F6gC,EAAM9B,WAAaA,GAEdp6B,KAAKjF,KAAKmhC,KAGnBH,EAAM7jB,UAAU,UAAY,SAAU7c,GACpC,OAAIA,GAAU,EAAU2E,KACjBA,KAAKjF,KAAK,CAAE,OAAUM,KAG/B0gC,EAAM7jB,UAAUikB,OAAS,SAAU9gC,EAAQ++B,GACzC,GAAI/+B,GAAU,EAAG,OAAO2E,KACxB,IAAIk8B,EAAQ,CAAEC,OAAQ9gC,GAItB,OAHkB,MAAd++B,GAA4C,kBAAfA,GAA2B5/B,OAAOD,KAAK6/B,GAAY/+B,OAAS,IAC3F6gC,EAAM9B,WAAaA,GAEdp6B,KAAKjF,KAAKmhC,IAGnBH,EAAM7jB,UAAUnd,KAAO,SAAUmhC,GAC/B,IAAIj5B,EAAQjD,KAAKkW,IAAI7a,OACjB+gC,EAASp8B,KAAKkW,IAAIjT,EAAQ,GAE9B,GADAi5B,EAAQt/B,GAAO,EAAM,GAAIs/B,GACH,kBAAXE,EAAqB,CAC9B,GAA+B,kBAApBF,EAAM,WAAsD,kBAArBE,EAAO,UAEvD,OADAp8B,KAAKkW,IAAIjT,EAAQ,GAAK,CAAE,OAAUm5B,EAAO,UAAYF,EAAM,WACpDl8B,KAIT,GAAgC,kBAArBo8B,EAAO,WAA0C,MAAhBF,EAAMF,SAChD/4B,GAAS,EACTm5B,EAASp8B,KAAKkW,IAAIjT,EAAQ,GACJ,kBAAXm5B,GAET,OADAp8B,KAAKkW,IAAImmB,QAAQH,GACVl8B,KAGX,GAAI27B,EAAMO,EAAM9B,WAAYgC,EAAOhC,YAAa,CAC9C,GAA4B,kBAAjB8B,EAAMF,QAAgD,kBAAlBI,EAAOJ,OAGpD,OAFAh8B,KAAKkW,IAAIjT,EAAQ,GAAK,CAAE+4B,OAAQI,EAAOJ,OAASE,EAAMF,QACtB,kBAArBE,EAAM9B,aAAyBp6B,KAAKkW,IAAIjT,EAAQ,GAAGm3B,WAAa8B,EAAM9B,YAC1Ep6B,KACF,GAA4B,kBAAjBk8B,EAAMC,QAAgD,kBAAlBC,EAAOD,OAG3D,OAFAn8B,KAAKkW,IAAIjT,EAAQ,GAAK,CAAEk5B,OAAQC,EAAOD,OAASD,EAAMC,QACtB,kBAArBD,EAAM9B,aAAyBp6B,KAAKkW,IAAIjT,EAAQ,GAAGm3B,WAAa8B,EAAM9B,YAC1Ep6B,MASb,OALIiD,IAAUjD,KAAKkW,IAAI7a,OACrB2E,KAAKkW,IAAInb,KAAKmhC,GAEdl8B,KAAKkW,IAAIgP,OAAOjiB,EAAO,EAAGi5B,GAErBl8B,MAGT+7B,EAAM7jB,UAAUokB,KAAO,WACrB,IAAIF,EAASp8B,KAAKkW,IAAIlW,KAAKkW,IAAI7a,OAAS,GAIxC,OAHI+gC,GAAUA,EAAOD,SAAWC,EAAOhC,YACrCp6B,KAAKkW,IAAIqmB,MAEJv8B,MAGT+7B,EAAM7jB,UAAUvd,OAAS,SAAU6hC,GACjC,OAAOx8B,KAAKkW,IAAIvb,OAAO6hC,IAGzBT,EAAM7jB,UAAU3c,QAAU,SAAUihC,GAClCx8B,KAAKkW,IAAI3a,QAAQihC,IAGnBT,EAAM7jB,UAAU1Z,IAAM,SAAUg+B,GAC9B,OAAOx8B,KAAKkW,IAAI1X,IAAIg+B,IAGtBT,EAAM7jB,UAAUukB,UAAY,SAAUD,GACpC,IAAIE,EAAS,GAAIC,EAAS,GAK1B,OAJA38B,KAAKzE,SAAQ,SAASqgC,GACpB,IAAI1gC,EAASshC,EAAUZ,GAAMc,EAASC,EACtCzhC,EAAOH,KAAK6gC,MAEP,CAACc,EAAQC,IAGlBZ,EAAM7jB,UAAU6S,OAAS,SAAUyR,EAAWI,GAC5C,OAAO58B,KAAKkW,IAAI6U,OAAOyR,EAAWI,IAGpCb,EAAM7jB,UAAU2kB,aAAe,WAC7B,OAAO78B,KAAK+qB,QAAO,SAAU1vB,EAAQ4U,GACnC,OAAIA,EAAK+rB,OACA3gC,EAASugC,EAAGvgC,OAAO4U,GACjBA,EAAK6sB,OACPzhC,EAAS4U,EAAK6sB,OAEhBzhC,IACN,IAGL0gC,EAAM7jB,UAAU7c,OAAS,WACvB,OAAO2E,KAAK+qB,QAAO,SAAU1vB,EAAQ4U,GACnC,OAAO5U,EAASugC,EAAGvgC,OAAO4U,KACzB,IAGL8rB,EAAM7jB,UAAU9Z,MAAQ,SAAU2+B,EAAOC,GACvCD,EAAQA,GAAS,EACE,kBAARC,IAAkBA,EAAM78B,KACnC,IAAI+V,EAAM,GACN+mB,EAAOrB,EAAGsB,SAASl9B,KAAKkW,KACxBjT,EAAQ,EACZ,MAAOA,EAAQ+5B,GAAOC,EAAKE,UAAW,CACpC,IAAIC,EACAn6B,EAAQ85B,EACVK,EAASH,EAAKI,KAAKN,EAAQ95B,IAE3Bm6B,EAASH,EAAKI,KAAKL,EAAM/5B,GACzBiT,EAAInb,KAAKqiC,IAEXn6B,GAAS24B,EAAGvgC,OAAO+hC,GAErB,OAAO,IAAIrB,EAAM7lB,IAInB6lB,EAAM7jB,UAAUolB,QAAU,SAAUC,GAClC,IAAIC,EAAW5B,EAAGsB,SAASl9B,KAAKkW,KAC5BunB,EAAY7B,EAAGsB,SAASK,EAAMrnB,KAC9BA,EAAM,GACNwnB,EAAaD,EAAUE,OAC3B,GAAkB,MAAdD,GAAmD,kBAAtBA,EAAWvB,QAAgD,MAAzBuB,EAAWtD,WAAoB,CAChG,IAAIwD,EAAYF,EAAWvB,OAC3B,MAA+B,WAAxBqB,EAASK,YAA2BL,EAASM,cAAgBF,EAClEA,GAAaJ,EAASM,aACtB5nB,EAAInb,KAAKyiC,EAASH,QAEhBK,EAAWvB,OAASyB,EAAY,GAClCH,EAAUJ,KAAKK,EAAWvB,OAASyB,GAGvC,IAAI1gB,EAAQ,IAAI6e,EAAM7lB,GACtB,MAAOsnB,EAASL,WAAaM,EAAUN,UACrC,GAA6B,WAAzBM,EAAUI,WACZ3gB,EAAMniB,KAAK0iC,EAAUJ,aAChB,GAA4B,WAAxBG,EAASK,WAClB3gB,EAAMniB,KAAKyiC,EAASH,YACf,CACL,IAAIhiC,EAASmG,KAAKD,IAAIi8B,EAASM,aAAcL,EAAUK,cACnDC,EAASP,EAASH,KAAKhiC,GACvB2iC,EAAUP,EAAUJ,KAAKhiC,GAC7B,GAA8B,kBAAnB2iC,EAAQ7B,OAAqB,CACtC,IAAID,EAAQ,GACiB,kBAAlB6B,EAAO5B,OAChBD,EAAMC,OAAS9gC,EAEf6gC,EAAMF,OAAS+B,EAAO/B,OAGxB,IAAI5B,EAAawB,EAAGxB,WAAWkD,QAAQS,EAAO3D,WAAY4D,EAAQ5D,WAAqC,kBAAlB2D,EAAO5B,QAK5F,GAJI/B,IAAY8B,EAAM9B,WAAaA,GACnCld,EAAMniB,KAAKmhC,IAGNuB,EAAUN,WAAaxB,EAAMze,EAAMhH,IAAIgH,EAAMhH,IAAI7a,OAAS,GAAI6gC,GAAQ,CACzE,IAAI+B,EAAO,IAAIlC,EAAMyB,EAASS,QAC9B,OAAO/gB,EAAM7f,OAAO4gC,GAAM3B,YAKU,kBAAtB0B,EAAQ,WAAmD,kBAAlBD,EAAO5B,QAChEjf,EAAMniB,KAAKijC,GAIjB,OAAO9gB,EAAMof,QAGfP,EAAM7jB,UAAU7a,OAAS,SAAUkgC,GACjC,IAAIrgB,EAAQ,IAAI6e,EAAM/7B,KAAKkW,IAAI9X,SAK/B,OAJIm/B,EAAMrnB,IAAI7a,OAAS,IACrB6hB,EAAMniB,KAAKwiC,EAAMrnB,IAAI,IACrBgH,EAAMhH,IAAMgH,EAAMhH,IAAI7Y,OAAOkgC,EAAMrnB,IAAI9X,MAAM,KAExC8e,GAGT6e,EAAM7jB,UAAUwjB,KAAO,SAAU6B,EAAOt6B,GACtC,GAAIjD,KAAKkW,MAAQqnB,EAAMrnB,IACrB,OAAO,IAAI6lB,EAEb,IAAImC,EAAU,CAACl+B,KAAMu9B,GAAO/+B,KAAI,SAAU0e,GACxC,OAAOA,EAAM1e,KAAI,SAAUo9B,GACzB,GAAiB,MAAbA,EAAGI,OACL,MAA4B,kBAAdJ,EAAGI,OAAsBJ,EAAGI,OAASH,EAErD,IAAIsC,EAAQjhB,IAAUqgB,EAAS,KAAO,OACtC,MAAM,IAAI7mB,MAAM,iBAAmBynB,EAAO,oBACzC9/B,KAAK,OAEN6e,EAAQ,IAAI6e,EACZqC,EAAa1C,EAAKwC,EAAQ,GAAIA,EAAQ,GAAIj7B,GAC1Cu6B,EAAW5B,EAAGsB,SAASl9B,KAAKkW,KAC5BunB,EAAY7B,EAAGsB,SAASK,EAAMrnB,KA6BlC,OA5BAkoB,EAAW7iC,SAAQ,SAAU8iC,GAC3B,IAAIhjC,EAASgjC,EAAU,GAAGhjC,OAC1B,MAAOA,EAAS,EAAG,CACjB,IAAIijC,EAAW,EACf,OAAQD,EAAU,IAChB,KAAK3C,EAAK6C,OACRD,EAAW98B,KAAKD,IAAIk8B,EAAUK,aAAcziC,GAC5C6hB,EAAMniB,KAAK0iC,EAAUJ,KAAKiB,IAC1B,MACF,KAAK5C,EAAK8C,OACRF,EAAW98B,KAAKD,IAAIlG,EAAQmiC,EAASM,cACrCN,EAASH,KAAKiB,GACdphB,EAAM,UAAUohB,GAChB,MACF,KAAK5C,EAAK+C,MACRH,EAAW98B,KAAKD,IAAIi8B,EAASM,aAAcL,EAAUK,aAAcziC,GACnE,IAAI0iC,EAASP,EAASH,KAAKiB,GACvBN,EAAUP,EAAUJ,KAAKiB,GACzB3C,EAAMoC,EAAO/B,OAAQgC,EAAQhC,QAC/B9e,EAAMif,OAAOmC,EAAU1C,EAAGxB,WAAWsB,KAAKqC,EAAO3D,WAAY4D,EAAQ5D,aAErEld,EAAMniB,KAAKijC,GAAS,UAAUM,GAEhC,MAEJjjC,GAAUijC,MAGPphB,EAAMof,QAGfP,EAAM7jB,UAAUwmB,SAAW,SAAUlC,EAAWmC,GAC9CA,EAAUA,GAAW,KACrB,IAAI1B,EAAOrB,EAAGsB,SAASl9B,KAAKkW,KACxB0oB,EAAO,IAAI7C,EACX5gC,EAAI,EACR,MAAO8hC,EAAKE,UAAW,CACrB,GAAwB,WAApBF,EAAKY,WAAyB,OAClC,IAAIE,EAASd,EAAKU,OACdZ,EAAQnB,EAAGvgC,OAAO0iC,GAAUd,EAAKa,aACjC76B,EAAiC,kBAAlB86B,EAAO/B,OACxB+B,EAAO/B,OAAO10B,QAAQq3B,EAAS5B,GAASA,GAAS,EACnD,GAAI95B,EAAQ,EACV27B,EAAK7jC,KAAKkiC,EAAKI,aACV,GAAIp6B,EAAQ,EACjB27B,EAAK7jC,KAAKkiC,EAAKI,KAAKp6B,QACf,CACL,IAA0D,IAAtDu5B,EAAUoC,EAAM3B,EAAKI,KAAK,GAAGjD,YAAc,GAAIj/B,GACjD,OAEFA,GAAK,EACLyjC,EAAO,IAAI7C,GAGX6C,EAAKvjC,SAAW,GAClBmhC,EAAUoC,EAAM,GAAIzjC,IAIxB4gC,EAAM7jB,UAAU2mB,UAAY,SAAUtB,EAAOuB,GAE3C,GADAA,IAAaA,EACQ,kBAAVvB,EACT,OAAOv9B,KAAK++B,kBAAkBxB,EAAOuB,GAEvC,IAAItB,EAAW5B,EAAGsB,SAASl9B,KAAKkW,KAC5BunB,EAAY7B,EAAGsB,SAASK,EAAMrnB,KAC9BgH,EAAQ,IAAI6e,EAChB,MAAOyB,EAASL,WAAaM,EAAUN,UACrC,GAA4B,WAAxBK,EAASK,aAA4BiB,GAAqC,WAAzBrB,EAAUI,WAExD,GAA6B,WAAzBJ,EAAUI,WACnB3gB,EAAMniB,KAAK0iC,EAAUJ,YAChB,CACL,IAAIhiC,EAASmG,KAAKD,IAAIi8B,EAASM,aAAcL,EAAUK,cACnDC,EAASP,EAASH,KAAKhiC,GACvB2iC,EAAUP,EAAUJ,KAAKhiC,GAC7B,GAAI0iC,EAAO,UAET,SACSC,EAAQ,UACjB9gB,EAAMniB,KAAKijC,GAGX9gB,EAAMif,OAAO9gC,EAAQugC,EAAGxB,WAAWyE,UAAUd,EAAO3D,WAAY4D,EAAQ5D,WAAY0E,SAdtF5hB,EAAMif,OAAOP,EAAGvgC,OAAOmiC,EAASH,SAkBpC,OAAOngB,EAAMof,QAGfP,EAAM7jB,UAAU6mB,kBAAoB,SAAU97B,EAAO67B,GACnDA,IAAaA,EACb,IAAItB,EAAW5B,EAAGsB,SAASl9B,KAAKkW,KAC5BkM,EAAS,EACb,MAAOob,EAASL,WAAa/a,GAAUnf,EAAO,CAC5C,IAAI5H,EAASmiC,EAASM,aAClBkB,EAAWxB,EAASK,WACxBL,EAASH,OACQ,WAAb2B,GAGoB,WAAbA,IAA0B5c,EAASnf,IAAU67B,KACtD77B,GAAS5H,GAEX+mB,GAAU/mB,GALR4H,GAASzB,KAAKD,IAAIlG,EAAQ4H,EAAQmf,GAOtC,OAAOnf,GAITtD,EAAOC,QAAUm8B,GAKX,SAAUp8B,EAAQC,GAExB,aAEA,IAAIq/B,EAASzkC,OAAO0d,UAAUC,eAC1B+mB,EAAQ1kC,OAAO0d,UAAUta,SACzBhC,EAAiBpB,OAAOoB,eACxBujC,EAAO3kC,OAAOK,yBAEdy3B,EAAU,SAAiBz0B,GAC9B,MAA6B,oBAAlBkS,MAAMuiB,QACTviB,MAAMuiB,QAAQz0B,GAGK,mBAApBqhC,EAAM78B,KAAKxE,IAGfuhC,EAAgB,SAAuBvjC,GAC1C,IAAKA,GAA2B,oBAApBqjC,EAAM78B,KAAKxG,GACtB,OAAO,EAGR,IASIL,EATA6jC,EAAoBJ,EAAO58B,KAAKxG,EAAK,eACrCyjC,EAAmBzjC,EAAIo+B,aAAep+B,EAAIo+B,YAAY/hB,WAAa+mB,EAAO58B,KAAKxG,EAAIo+B,YAAY/hB,UAAW,iBAE9G,GAAIrc,EAAIo+B,cAAgBoF,IAAsBC,EAC7C,OAAO,EAMR,IAAK9jC,KAAOK,GAEZ,MAAsB,qBAARL,GAAuByjC,EAAO58B,KAAKxG,EAAKL,IAInD+jC,EAAc,SAAqBrkC,EAAQuZ,GAC1C7Y,GAAmC,cAAjB6Y,EAAQ5X,KAC7BjB,EAAeV,EAAQuZ,EAAQ5X,KAAM,CACpC/B,YAAY,EACZiB,cAAc,EACdD,MAAO2Y,EAAQib,SACf1zB,UAAU,IAGXd,EAAOuZ,EAAQ5X,MAAQ4X,EAAQib,UAK7B8P,EAAc,SAAqB3jC,EAAKgB,GAC3C,GAAa,cAATA,EAAsB,CACzB,IAAKoiC,EAAO58B,KAAKxG,EAAKgB,GACrB,OACM,GAAIsiC,EAGV,OAAOA,EAAKtjC,EAAKgB,GAAMf,MAIzB,OAAOD,EAAIgB,IAGZ8C,EAAOC,QAAU,SAAShD,IACzB,IAAI6X,EAAS5X,EAAM4iC,EAAKC,EAAMC,EAAaC,EACvC1kC,EAASE,UAAU,GACnBD,EAAI,EACJE,EAASD,UAAUC,OACnBwkC,GAAO,EAaX,IAVsB,mBAAX3kC,IACV2kC,EAAO3kC,EACPA,EAASE,UAAU,IAAM,GAEzBD,EAAI,IAES,MAAVD,GAAqC,kBAAXA,GAAyC,oBAAXA,KAC3DA,EAAS,IAGHC,EAAIE,IAAUF,EAGpB,GAFAsZ,EAAUrZ,UAAUD,GAEL,MAAXsZ,EAEH,IAAK5X,KAAQ4X,EACZgrB,EAAMD,EAAYtkC,EAAQ2B,GAC1B6iC,EAAOF,EAAY/qB,EAAS5X,GAGxB3B,IAAWwkC,IAEVG,GAAQH,IAASN,EAAcM,KAAUC,EAAcrN,EAAQoN,MAC9DC,GACHA,GAAc,EACdC,EAAQH,GAAOnN,EAAQmN,GAAOA,EAAM,IAEpCG,EAAQH,GAAOL,EAAcK,GAAOA,EAAM,GAI3CF,EAAYrkC,EAAQ,CAAE2B,KAAMA,EAAM6yB,SAAU9yB,EAAOijC,EAAMD,EAAOF,MAGtC,qBAATA,GACjBH,EAAYrkC,EAAQ,CAAE2B,KAAMA,EAAM6yB,SAAUgQ,KAQjD,OAAOxkC,IAMF,SAAUyE,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQkgC,WAAalgC,EAAQmgC,mBAAgB39B,EAE/D,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZI,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAElCG,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtCE,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCE,EAAS3J,EAAoB,IAE7B4J,EAAUN,EAAuBK,GAEjCE,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAElCE,EAAQ/J,EAAoB,GAE5BgK,EAASV,EAAuBS,GAEpC,SAAST,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIC,EAAiB,EAEjBhC,EAAa,SAAUiC,GAGzB,SAASjC,IAGP,OAFAyB,EAAgBvhC,KAAM8/B,GAEf2B,EAA2BzhC,MAAO8/B,EAAW/F,WAAav/B,OAAOimC,eAAeX,IAAa9kC,MAAMgF,KAAM5E,YAwClH,OA7CAumC,EAAU7B,EAAYiC,GAQtB/B,EAAaF,EAAY,CAAC,CACxBtkC,IAAK,SACLM,MAAO,WACLukC,EAAKP,EAAW5nB,UAAU6hB,WAAav/B,OAAOimC,eAAeX,EAAW5nB,WAAY,SAAUlY,MAAMqC,KAAKrC,MACzGA,KAAKo6B,WAAa,IAAI4G,EAAYpW,QAAQ2O,WAAWI,MAAM35B,KAAKgiC,WAEjE,CACDxmC,IAAK,QACLM,MAAO,WACL,OAAO,IAAIglC,EAAalW,SAAUoR,OAAOh8B,KAAKlE,SAAS,EAAI6kC,EAAS/V,SAAS5qB,KAAK2pB,UAAW3pB,KAAKo6B,WAAW6H,aAE9G,CACDzmC,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GAC3B,IAAIomC,EAAYlB,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMyJ,iBACzD,MAAbD,GACFliC,KAAKo6B,WAAW8H,UAAUA,EAAWpmC,KAGxC,CACDN,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,EAAQwB,EAAMf,GAC5CkE,KAAKhB,OAAOnC,EAAMf,KAEnB,CACDN,IAAK,WACLM,MAAO,SAAkBmH,EAAOnH,EAAOsmC,GACrC,GAAqB,kBAAVtmC,GAAsBA,EAAMumC,SAAS,MAAO,CACrD,IAAIC,EAAQtB,EAAYpW,QAAQ+N,OAAOS,EAAMkC,UAC7Ct7B,KAAK7C,OAAOmjB,aAAagiB,EAAiB,IAAVr/B,EAAcjD,KAAOA,KAAKq9B,MAC1DiF,EAAMC,SAAS,EAAGzmC,EAAMsC,MAAM,GAAI,SAElCiiC,EAAKP,EAAW5nB,UAAU6hB,WAAav/B,OAAOimC,eAAeX,EAAW5nB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAOnH,EAAOsmC,OAK9HtC,EA9CQ,CA+CfkB,EAAYpW,QAAQsO,OAEtB4G,EAAWjF,MAAQmG,EAAYpW,QAAQ8N,MAAM8J,WAI7C,IAAIpJ,EAAQ,SAAUqJ,GAGpB,SAASrJ,EAAM4I,GACbT,EAAgBvhC,KAAMo5B,GAEtB,IAAIsJ,EAASjB,EAA2BzhC,MAAOo5B,EAAMW,WAAav/B,OAAOimC,eAAerH,IAAQ/2B,KAAKrC,KAAMgiC,IAG3G,OADAU,EAAOC,MAAQ,GACRD,EAyHT,OAjIAf,EAAUvI,EAAOqJ,GAWjBzC,EAAa5G,EAAO,CAAC,CACnB59B,IAAK,QACLM,MAAO,WAUL,OATwB,MAApBkE,KAAK2iC,MAAMzlB,QACbld,KAAK2iC,MAAMzlB,MAAQld,KAAK4iC,YAAY5B,EAAYpW,QAAQqO,MAAMlO,QAAO,SAAU7N,EAAO2lB,GACpF,OAAsB,IAAlBA,EAAKxnC,SACA6hB,EAEAA,EAAM8e,OAAO6G,EAAK/mC,QAASikC,EAAc8C,MAEjD,IAAI/B,EAAalW,SAAWoR,OAAO,KAAM+D,EAAc//B,QAErDA,KAAK2iC,MAAMzlB,QAEnB,CACD1hB,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,GAC9BglC,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAO5H,GAC9G2E,KAAK2iC,MAAQ,KAEd,CACDnnC,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,EAAQwB,EAAMf,GACxCT,GAAU,IACV2lC,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMsC,OACxD/3B,EAAQ5H,IAAW2E,KAAK3E,UAC1B2E,KAAKhB,OAAOnC,EAAMf,GAGpBukC,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAOzB,KAAKD,IAAIlG,EAAQ2E,KAAK3E,SAAW4H,EAAQ,GAAIpG,EAAMf,GAEnKkE,KAAK2iC,MAAQ,MAEd,CACDnnC,IAAK,WACLM,MAAO,SAAkBmH,EAAOnH,EAAOsmC,GACrC,GAAW,MAAPA,EAAa,OAAO/B,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAOnH,EAAOsmC,GAC7I,GAAqB,IAAjBtmC,EAAMT,OAAV,CACA,IAAIynC,EAAQhnC,EAAMgC,MAAM,MACpBm+B,EAAO6G,EAAMC,QACb9G,EAAK5gC,OAAS,IACZ4H,EAAQjD,KAAK3E,SAAW,GAA2B,MAAtB2E,KAAKU,SAASsiC,KAC7C3C,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMwB,KAAKD,IAAI0B,EAAOjD,KAAK3E,SAAW,GAAI4gC,GAE3Ij8B,KAAKU,SAASsiC,KAAKT,SAASviC,KAAKU,SAASsiC,KAAK3nC,SAAU4gC,GAE3Dj8B,KAAK2iC,MAAQ,IAEf,IAAIL,EAAQtiC,KACZ8iC,EAAM/X,QAAO,SAAU9nB,EAAO27B,GAG5B,OAFA0D,EAAQA,EAAMxkC,MAAMmF,GAAO,GAC3Bq/B,EAAMC,SAAS,EAAG3D,GACXA,EAAKvjC,SACX4H,EAAQg5B,EAAK5gC,WAEjB,CACDG,IAAK,eACLM,MAAO,SAAsB8+B,EAAMz2B,GACjC,IAAIipB,EAAOptB,KAAKU,SAAS0sB,KACzBiT,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,eAAgBlY,MAAMqC,KAAKrC,KAAM46B,EAAMz2B,GAC7GipB,aAAgB8T,EAAQtW,SAC1BwC,EAAK/c,SAEPrQ,KAAK2iC,MAAQ,KAEd,CACDnnC,IAAK,SACLM,MAAO,WAIL,OAHyB,MAArBkE,KAAK2iC,MAAMtnC,SACb2E,KAAK2iC,MAAMtnC,OAASglC,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,SAAUlY,MAAMqC,KAAKrC,MAAQ8hC,GAEtH9hC,KAAK2iC,MAAMtnC,SAEnB,CACDG,IAAK,eACLM,MAAO,SAAsBZ,EAAQiJ,GACnCk8B,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,eAAgBlY,MAAMqC,KAAKrC,KAAM9E,EAAQiJ,GACnHnE,KAAK2iC,MAAQ,KAEd,CACDnnC,IAAK,WACLM,MAAO,SAAkBmnC,GACvB5C,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMijC,GACvGjjC,KAAK2iC,MAAQ,KAEd,CACDnnC,IAAK,OACLM,MAAO,SAAcmH,GACnB,OAAOo9B,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,OAAQlY,MAAMqC,KAAKrC,KAAMiD,GAAO,KAElH,CACDzH,IAAK,cACLM,MAAO,SAAqBmvB,GAC1BoV,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,cAAelY,MAAMqC,KAAKrC,KAAMirB,GAC1GjrB,KAAK2iC,MAAQ,KAEd,CACDnnC,IAAK,QACLM,MAAO,SAAemH,GACpB,IAAIigC,EAAQ9nC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAE3E,GAAI8nC,IAAoB,IAAVjgC,GAAeA,GAASjD,KAAK3E,SAAWymC,GAAiB,CACrE,IAAIlC,EAAQ5/B,KAAK4/B,QACjB,OAAc,IAAV38B,GACFjD,KAAK7C,OAAOmjB,aAAasf,EAAO5/B,MACzBA,OAEPA,KAAK7C,OAAOmjB,aAAasf,EAAO5/B,KAAKq9B,MAC9BuC,GAGT,IAAIvC,EAAOgD,EAAKjH,EAAMlhB,UAAU6hB,WAAav/B,OAAOimC,eAAerH,EAAMlhB,WAAY,QAASlY,MAAMqC,KAAKrC,KAAMiD,EAAOigC,GAEtH,OADAljC,KAAK2iC,MAAQ,GACNtF,MAKNjE,EAlIG,CAmIV4H,EAAYpW,QAAQwO,OAOtB,SAAS2G,EAAcnF,GACrB,IAAIjR,EAAUvuB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAElF,OAAY,MAARw/B,EAAqBjR,GACG,oBAAjBiR,EAAKjR,UACdA,GAAU,EAAIgX,EAAS/V,SAASjB,EAASiR,EAAKjR,YAE7B,MAAfiR,EAAKz9B,QAA0C,UAAxBy9B,EAAKz9B,OAAOm+B,UAAwBV,EAAKz9B,OAAOgmC,QAAQtI,QAAUD,EAAKuI,QAAQtI,MACjGlR,EAEFoW,EAAcnF,EAAKz9B,OAAQwsB,IAfpCyP,EAAMkC,SAAW,QACjBlC,EAAM8B,QAAU,IAChB9B,EAAMgK,aAAe,QACrBhK,EAAMiK,gBAAkB,CAACjC,EAASxW,QAASoW,EAAYpW,QAAQsO,MAAOoI,EAAO1W,SAe7EhrB,EAAQmgC,cAAgBA,EACxBngC,EAAQkgC,WAAaA,EACrBlgC,EAAQgrB,QAAUwO,GAIZ,SAAUz5B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQ0jC,SAAW1jC,EAAQ2jC,kBAAenhC,EAE5D,IAAIohC,EAA4B,oBAAXC,QAAoD,kBAApBA,OAAOvG,SAAwB,SAAUrhC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAX4nC,QAAyB5nC,EAAIo+B,cAAgBwJ,QAAU5nC,IAAQ4nC,OAAOvrB,UAAY,gBAAkBrc,GAElQ6nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEnB5I,EAAoB,IAEpB,IAAIuJ,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtCmD,EAAU1M,EAAoB,IAE9B2M,EAAWrD,EAAuBoD,GAElCE,EAAY5M,EAAoB,GAEhC6M,EAAYvD,EAAuBsD,GAEnCE,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAElCrD,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCuD,EAAahN,EAAoB,IAEjCiN,EAAc3D,EAAuB0D,GAErC5D,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAElC8D,EAAUlN,EAAoB,IAE9BmN,EAAW7D,EAAuB4D,GAElCE,EAASpN,EAAoB,IAE7BqN,EAAU/D,EAAuB8D,GAErC,SAAS9D,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAASJ,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAE3M,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,IAAIw/B,GAAQ,EAAIH,EAAS7Z,SAAS,SAE9Bia,EAAQ,WAqDV,SAASA,EAAMphB,GACb,IAAIif,EAAS1iC,KAETyU,EAAUrZ,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAMlF,GAJAmmC,EAAgBvhC,KAAM6kC,GAEtB7kC,KAAKyU,QAAU8uB,EAAa9f,EAAWhP,GACvCzU,KAAKyjB,UAAYzjB,KAAKyU,QAAQgP,UACR,MAAlBzjB,KAAKyjB,UACP,OAAOmhB,EAAM5yB,MAAM,0BAA2ByR,GAE5CzjB,KAAKyU,QAAQmwB,OACfC,EAAMD,MAAM5kC,KAAKyU,QAAQmwB,OAE3B,IAAIE,EAAO9kC,KAAKyjB,UAAUJ,UAAUrN,OACpChW,KAAKyjB,UAAUtT,UAAUC,IAAI,gBAC7BpQ,KAAKyjB,UAAUJ,UAAY,GAC3BrjB,KAAKyjB,UAAUshB,QAAU/kC,KACzBA,KAAKk3B,KAAOl3B,KAAKglC,aAAa,aAC9BhlC,KAAKk3B,KAAK/mB,UAAUC,IAAI,YACxBpQ,KAAKk3B,KAAKxlB,aAAa,cAAc,GACrC1R,KAAKilC,mBAAqBjlC,KAAKyU,QAAQwwB,oBAAsBjlC,KAAKk3B,KAClEl3B,KAAKklC,QAAU,IAAIf,EAAUvZ,QAC7B5qB,KAAKmlC,OAASnE,EAAYpW,QAAQ+N,OAAO34B,KAAKk3B,KAAM,CAClDgO,QAASllC,KAAKklC,QACdE,UAAWplC,KAAKyU,QAAQkV,UAE1B3pB,KAAKqlC,OAAS,IAAIpB,EAASrZ,QAAQ5qB,KAAKmlC,QACxCnlC,KAAKslC,UAAY,IAAIf,EAAY3Z,QAAQ5qB,KAAKmlC,OAAQnlC,KAAKklC,SAC3DllC,KAAKulC,MAAQ,IAAIvlC,KAAKyU,QAAQ8wB,MAAMvlC,KAAMA,KAAKyU,SAC/CzU,KAAKwlC,SAAWxlC,KAAKulC,MAAME,UAAU,YACrCzlC,KAAK0lC,UAAY1lC,KAAKulC,MAAME,UAAU,aACtCzlC,KAAK2lC,QAAU3lC,KAAKulC,MAAME,UAAU,WACpCzlC,KAAKulC,MAAMhsB,OACXvZ,KAAKklC,QAAQU,GAAGzB,EAAUvZ,QAAQib,OAAOC,eAAe,SAAUt0B,GAC5DA,IAAS2yB,EAAUvZ,QAAQib,OAAOE,aACpCrD,EAAOxL,KAAK/mB,UAAUge,OAAO,WAAYuU,EAAO2C,OAAOW,cAG3DhmC,KAAKklC,QAAQU,GAAGzB,EAAUvZ,QAAQib,OAAOI,eAAe,SAAU3qC,EAAQ4qC,GACxE,IAAIrY,EAAQ6U,EAAO4C,UAAUa,UACzBljC,EAAQ4qB,GAA0B,IAAjBA,EAAMxyB,OAAewyB,EAAM5qB,WAAQb,EACxDgkC,EAAO/jC,KAAKqgC,GAAQ,WAClB,OAAOA,EAAO2C,OAAOgB,OAAO,KAAMH,EAAWjjC,KAC5C3H,MAEL,IAAIgrC,EAAWtmC,KAAK0lC,UAAUa,QAAQ,yDAA2DzB,EAAO,qBACxG9kC,KAAKwmC,YAAYF,GACjBtmC,KAAK2lC,QAAQrgB,QACTtlB,KAAKyU,QAAQma,aACf5uB,KAAKk3B,KAAKxlB,aAAa,mBAAoB1R,KAAKyU,QAAQma,aAEtD5uB,KAAKyU,QAAQgyB,UACfzmC,KAAKgL,UAmYT,OA7eAg1B,EAAa6E,EAAO,KAAM,CAAC,CACzBrpC,IAAK,QACLM,MAAO,SAAemG,IACN,IAAVA,IACFA,EAAQ,OAEVwiC,EAAS7Z,QAAQ8b,MAAMzkC,KAExB,CACDzG,IAAK,OACLM,MAAO,SAAc6U,GACnB,OAAOA,EAAKo0B,SAAW/D,EAAYpW,QAAQgO,KAAKjoB,KAEjD,CACDnV,IAAK,SACLM,MAAO,SAAiBe,GAItB,OAH0B,MAAtBmD,KAAK2mC,QAAQ9pC,IACf+nC,EAAM5yB,MAAM,iBAAmBnV,EAAO,qCAEjCmD,KAAK2mC,QAAQ9pC,KAErB,CACDrB,IAAK,WACLM,MAAO,SAAkBiW,EAAM7W,GAC7B,IAAIwU,EAAQ1P,KAER4mC,EAAYxrC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAE/E,GAAoB,kBAAT2W,EAAmB,CAC5B,IAAIlV,EAAOkV,EAAKwpB,UAAYxpB,EAAKupB,SACb,kBAATz+B,EAETmD,KAAK84B,SAAS,WAAaj8B,EAAMkV,EAAM7W,GAEvCV,OAAOD,KAAKwX,GAAMxW,SAAQ,SAAUC,GAClCkU,EAAMopB,SAASt9B,EAAKuW,EAAKvW,GAAMN,WAIT,MAAtB8E,KAAK2mC,QAAQ50B,IAAkB60B,GACjChC,EAAMr5B,KAAK,eAAiBwG,EAAO,QAAS7W,GAE9C8E,KAAK2mC,QAAQ50B,GAAQ7W,GAChB6W,EAAK80B,WAAW,WAAa90B,EAAK80B,WAAW,cAAoC,aAApB3rC,EAAOogC,SACvE0F,EAAYpW,QAAQkO,SAAS59B,GACpB6W,EAAK80B,WAAW,YAAyC,oBAApB3rC,EAAO49B,UACrD59B,EAAO49B,eAgEfkH,EAAa6E,EAAO,CAAC,CACnBrpC,IAAK,eACLM,MAAO,SAAsB2nB,GAC3B,IAAIqjB,EAAU1rC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,KAElF,GAAyB,kBAAdqoB,EAAwB,CACjC,IAAIvT,EAAYuT,EAChBA,EAAYjT,SAASF,cAAc,OACnCmT,EAAUtT,UAAUC,IAAIF,GAG1B,OADAlQ,KAAKyjB,UAAUnD,aAAamD,EAAWqjB,GAChCrjB,IAER,CACDjoB,IAAK,OACLM,MAAO,WACLkE,KAAKslC,UAAUyB,SAAS,QAEzB,CACDvrC,IAAK,aACLM,MAAO,SAAoBmH,EAAO5H,EAAQC,GACxC,IAAI0rC,EAAShnC,KAETinC,EAAY3D,EAASrgC,EAAO5H,EAAQC,GAEpC4rC,EAAaxD,EAAeuD,EAAW,GAM3C,OAJAhkC,EAAQikC,EAAW,GACnB7rC,EAAS6rC,EAAW,GACpB5rC,EAAS4rC,EAAW,GAEbd,EAAO/jC,KAAKrC,MAAM,WACvB,OAAOgnC,EAAO3B,OAAO8B,WAAWlkC,EAAO5H,KACtCC,EAAQ2H,GAAQ,EAAI5H,KAExB,CACDG,IAAK,UACLM,MAAO,WACLkE,KAAK4mB,QAAO,KAEb,CACDprB,IAAK,SACLM,MAAO,WACL,IAAIsrC,IAAUhsC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,KAAmBA,UAAU,GAE7E4E,KAAKmlC,OAAOve,OAAOwgB,GACnBpnC,KAAKyjB,UAAUtT,UAAUge,OAAO,eAAgBiZ,KAEjD,CACD5rC,IAAK,QACLM,MAAO,WACL,IAAIurC,EAAYrnC,KAAKilC,mBAAmBoC,UACxCrnC,KAAKslC,UAAUhkB,QACfthB,KAAKilC,mBAAmBoC,UAAYA,EACpCrnC,KAAKsnC,mBAEN,CACD9rC,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GAC3B,IAAIyrC,EAASvnC,KAET1E,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQC,IAE3G,OAAOrB,EAAO/jC,KAAKrC,MAAM,WACvB,IAAI6tB,EAAQ0Z,EAAOG,cAAa,GAC5BC,EAAS,IAAI7G,EAAalW,QAC9B,GAAa,MAATiD,EACF,OAAO8Z,EACF,GAAI3G,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMsC,OACnE2M,EAASJ,EAAOlC,OAAOuC,WAAW/Z,EAAM5qB,MAAO4qB,EAAMxyB,OAAQI,EAAgB,GAAIoB,EAAMf,QAClF,IAAqB,IAAjB+xB,EAAMxyB,OAEf,OADAksC,EAAOjC,UAAUtmC,OAAOnC,EAAMf,GACvB6rC,EAEPA,EAASJ,EAAOlC,OAAOwC,WAAWha,EAAM5qB,MAAO4qB,EAAMxyB,OAAQI,EAAgB,GAAIoB,EAAMf,IAGzF,OADAyrC,EAAOO,aAAaja,EAAOsW,EAAUvZ,QAAQ4c,QAAQO,QAC9CJ,IACNrsC,KAEJ,CACDE,IAAK,aACLM,MAAO,SAAoBmH,EAAO5H,EAAQwB,EAAMf,EAAOR,GACrD,IAAI0sC,EAAShoC,KAET2pB,OAAU,EAEVse,EAAa3E,EAASrgC,EAAO5H,EAAQwB,EAAMf,EAAOR,GAElD4sC,EAAaxE,EAAeuE,EAAY,GAO5C,OALAhlC,EAAQilC,EAAW,GACnB7sC,EAAS6sC,EAAW,GACpBve,EAAUue,EAAW,GACrB5sC,EAAS4sC,EAAW,GAEb9B,EAAO/jC,KAAKrC,MAAM,WACvB,OAAOgoC,EAAO3C,OAAOuC,WAAW3kC,EAAO5H,EAAQsuB,KAC9CruB,EAAQ2H,EAAO,KAEnB,CACDzH,IAAK,aACLM,MAAO,SAAoBmH,EAAO5H,EAAQwB,EAAMf,EAAOR,GACrD,IAAI6sC,EAASnoC,KAET2pB,OAAU,EAEVye,EAAa9E,EAASrgC,EAAO5H,EAAQwB,EAAMf,EAAOR,GAElD+sC,EAAa3E,EAAe0E,EAAY,GAO5C,OALAnlC,EAAQolC,EAAW,GACnBhtC,EAASgtC,EAAW,GACpB1e,EAAU0e,EAAW,GACrB/sC,EAAS+sC,EAAW,GAEbjC,EAAO/jC,KAAKrC,MAAM,WACvB,OAAOmoC,EAAO9C,OAAOwC,WAAW5kC,EAAO5H,EAAQsuB,KAC9CruB,EAAQ2H,EAAO,KAEnB,CACDzH,IAAK,YACLM,MAAO,SAAmBmH,GACxB,IAAI5H,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAE7EktC,OAAS,EAEXA,EADmB,kBAAVrlC,EACAjD,KAAKslC,UAAUiD,UAAUtlC,EAAO5H,GAEhC2E,KAAKslC,UAAUiD,UAAUtlC,EAAMA,MAAOA,EAAM5H,QAEvD,IAAImtC,EAAkBxoC,KAAKyjB,UAAU+H,wBACrC,MAAO,CACLG,OAAQ2c,EAAO3c,OAAS6c,EAAgB3c,IACxC4c,OAAQH,EAAOG,OACf1c,KAAMuc,EAAOvc,KAAOyc,EAAgBzc,KACpCI,MAAOmc,EAAOnc,MAAQqc,EAAgBzc,KACtCF,IAAKyc,EAAOzc,IAAM2c,EAAgB3c,IAClCvQ,MAAOgtB,EAAOhtB,SAGjB,CACD9f,IAAK,cACLM,MAAO,WACL,IAAImH,EAAQ7H,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK4E,KAAK0oC,YAAczlC,EAEhG0lC,EAAarF,EAASrgC,EAAO5H,GAE7ButC,EAAalF,EAAeiF,EAAY,GAK5C,OAHA1lC,EAAQ2lC,EAAW,GACnBvtC,EAASutC,EAAW,GAEb5oC,KAAKqlC,OAAOwD,YAAY5lC,EAAO5H,KAEvC,CACDG,IAAK,YACLM,MAAO,WACL,IAAImH,EAAQ7H,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK4E,KAAK0nC,cAAa,GAC9FrsC,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAEjF,MAAqB,kBAAV6H,EACFjD,KAAKqlC,OAAOyD,UAAU7lC,EAAO5H,GAE7B2E,KAAKqlC,OAAOyD,UAAU7lC,EAAMA,MAAOA,EAAM5H,UAGnD,CACDG,IAAK,WACLM,MAAO,SAAkB8+B,GACvB,OAAOA,EAAKxY,OAAOpiB,KAAKmlC,UAEzB,CACD3pC,IAAK,YACLM,MAAO,WACL,OAAOkE,KAAKmlC,OAAO9pC,WAEpB,CACDG,IAAK,UACLM,MAAO,SAAiBmH,GACtB,OAAOjD,KAAKmlC,OAAOtC,KAAK5/B,KAEzB,CACDzH,IAAK,UACLM,MAAO,SAAiBmH,GACtB,OAAOjD,KAAKmlC,OAAOvG,KAAK37B,KAEzB,CACDzH,IAAK,WACLM,MAAO,WACL,IAAImH,EAAQ7H,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK83B,OAAO6V,UAExF,MAAqB,kBAAV9lC,EACFjD,KAAKmlC,OAAOrC,MAAM7/B,EAAMA,MAAOA,EAAM5H,QAErC2E,KAAKmlC,OAAOrC,MAAM7/B,EAAO5H,KAGnC,CACDG,IAAK,YACLM,MAAO,SAAmBe,GACxB,OAAOmD,KAAKulC,MAAMnO,QAAQv6B,KAE3B,CACDrB,IAAK,eACLM,MAAO,WACL,IAAIwlB,EAAQlmB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAI3E,OAFIkmB,GAAOthB,KAAKshB,QAChBthB,KAAKqmC,SACErmC,KAAKslC,UAAU0D,WAAW,KAElC,CACDxtC,IAAK,UACLM,MAAO,WACL,IAAImH,EAAQ7H,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK4E,KAAK0oC,YAAczlC,EAEhGgmC,EAAa3F,EAASrgC,EAAO5H,GAE7B6tC,EAAcxF,EAAeuF,EAAY,GAK7C,OAHAhmC,EAAQimC,EAAY,GACpB7tC,EAAS6tC,EAAY,GAEdlpC,KAAKqlC,OAAO8D,QAAQlmC,EAAO5H,KAEnC,CACDG,IAAK,WACLM,MAAO,WACL,OAAOkE,KAAKslC,UAAU8D,aAEvB,CACD5tC,IAAK,cACLM,MAAO,SAAqBmH,EAAOomC,EAAOvtC,GACxC,IAAIwtC,EAAStpC,KAET1E,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAKypC,EAAM2C,QAAQC,IAE/F,OAAOrB,EAAO/jC,KAAKrC,MAAM,WACvB,OAAOspC,EAAOjE,OAAOkE,YAAYtmC,EAAOomC,EAAOvtC,KAC9CR,EAAQ2H,KAEZ,CACDzH,IAAK,aACLM,MAAO,SAAoBmH,EAAOg5B,EAAMp/B,EAAMf,EAAOR,GACnD,IAAIkuC,EAASxpC,KAET2pB,OAAU,EAEV8f,EAAcnG,EAASrgC,EAAO,EAAGpG,EAAMf,EAAOR,GAE9CouC,EAAchG,EAAe+F,EAAa,GAM9C,OAJAxmC,EAAQymC,EAAY,GACpB/f,EAAU+f,EAAY,GACtBpuC,EAASouC,EAAY,GAEdtD,EAAO/jC,KAAKrC,MAAM,WACvB,OAAOwpC,EAAOnE,OAAOsE,WAAW1mC,EAAOg5B,EAAMtS,KAC5CruB,EAAQ2H,EAAOg5B,EAAK5gC,UAExB,CACDG,IAAK,YACLM,MAAO,WACL,OAAQkE,KAAKyjB,UAAUtT,UAAUkP,SAAS,iBAE3C,CACD7jB,IAAK,MACLM,MAAO,WACL,OAAOkE,KAAKklC,QAAQ0E,IAAI5uC,MAAMgF,KAAKklC,QAAS9pC,aAE7C,CACDI,IAAK,KACLM,MAAO,WACL,OAAOkE,KAAKklC,QAAQU,GAAG5qC,MAAMgF,KAAKklC,QAAS9pC,aAE5C,CACDI,IAAK,OACLM,MAAO,WACL,OAAOkE,KAAKklC,QAAQ2E,KAAK7uC,MAAMgF,KAAKklC,QAAS9pC,aAE9C,CACDI,IAAK,YACLM,MAAO,SAAmBmH,EAAO6hC,EAAMxpC,GACrC0E,KAAK0lC,UAAUoE,qBAAqB7mC,EAAO6hC,EAAMxpC,KAElD,CACDE,IAAK,eACLM,MAAO,SAAsBmH,EAAO5H,EAAQC,GAC1C,IAAIyuC,EAAS/pC,KAETgqC,EAAc1G,EAASrgC,EAAO5H,EAAQC,GAEtC2uC,EAAcvG,EAAesG,EAAa,GAM9C,OAJA/mC,EAAQgnC,EAAY,GACpB5uC,EAAS4uC,EAAY,GACrB3uC,EAAS2uC,EAAY,GAEd7D,EAAO/jC,KAAKrC,MAAM,WACvB,OAAO+pC,EAAO1E,OAAO6E,aAAajnC,EAAO5H,KACxCC,EAAQ2H,KAEZ,CACDzH,IAAK,iBACLM,MAAO,WACLkE,KAAKslC,UAAUgC,eAAetnC,KAAKilC,sBAEpC,CACDzpC,IAAK,cACLM,MAAO,SAAqBohB,GAC1B,IAAIitB,EAAUnqC,KAEV1E,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQC,IAE3G,OAAOrB,EAAO/jC,KAAKrC,MAAM,WACvBkd,EAAQ,IAAI4jB,EAAalW,QAAQ1N,GACjC,IAAI7hB,EAAS8uC,EAAQzB,YACjB0B,EAAUD,EAAQ9E,OAAO8B,WAAW,EAAG9rC,GACvCgvC,EAAUF,EAAQ9E,OAAOiF,WAAWptB,GACpCkf,EAASiO,EAAQn0B,IAAIm0B,EAAQn0B,IAAI7a,OAAS,GAChC,MAAV+gC,GAA2C,kBAAlBA,EAAOJ,QAAmE,OAA5CI,EAAOJ,OAAOI,EAAOJ,OAAO3gC,OAAS,KAC9F8uC,EAAQ9E,OAAO8B,WAAWgD,EAAQzB,YAAc,EAAG,GACnD2B,EAAQvN,OAAO,IAEjB,IAAIyN,EAAMH,EAAQ9M,QAAQ+M,GAC1B,OAAOE,IACNjvC,KAEJ,CACDE,IAAK,eACLM,MAAO,SAAsBmH,EAAO5H,EAAQC,GAC1C,GAAa,MAAT2H,EACFjD,KAAKslC,UAAUyB,SAAS,KAAM1rC,GAAUwpC,EAAM2C,QAAQC,SACjD,CACL,IAAI+C,EAAclH,EAASrgC,EAAO5H,EAAQC,GAEtCmvC,EAAc/G,EAAe8G,EAAa,GAE9CvnC,EAAQwnC,EAAY,GACpBpvC,EAASovC,EAAY,GACrBnvC,EAASmvC,EAAY,GAErBzqC,KAAKslC,UAAUyB,SAAS,IAAIzC,EAAWoG,MAAMznC,EAAO5H,GAASC,GACzDA,IAAW6oC,EAAUvZ,QAAQ4c,QAAQO,QACvC/nC,KAAKslC,UAAUgC,eAAetnC,KAAKilC,uBAIxC,CACDzpC,IAAK,UACLM,MAAO,SAAiBmgC,GACtB,IAAI3gC,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQC,IAEvGvqB,GAAQ,IAAI4jB,EAAalW,SAAUoR,OAAOC,GAC9C,OAAOj8B,KAAKwmC,YAAYtpB,EAAO5hB,KAEhC,CACDE,IAAK,SACLM,MAAO,WACL,IAAIR,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQmD,KAEvGhD,EAAS3nC,KAAKmlC,OAAOkB,OAAO/qC,GAEhC,OADA0E,KAAKslC,UAAUe,OAAO/qC,GACfqsC,IAER,CACDnsC,IAAK,iBACLM,MAAO,SAAwBohB,GAC7B,IAAI0tB,EAAU5qC,KAEV1E,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQC,IAE3G,OAAOrB,EAAO/jC,KAAKrC,MAAM,WAEvB,OADAkd,EAAQ,IAAI4jB,EAAalW,QAAQ1N,GAC1B0tB,EAAQvF,OAAOiF,WAAWptB,EAAO5hB,KACvCA,GAAQ,OAIRupC,EA9eG,GAugBZ,SAAStB,EAAa9f,EAAW6F,GAS/B,GARAA,GAAa,EAAIqX,EAAS/V,UAAS,EAAM,CACvCnH,UAAWA,EACX2T,QAAS,CACPsO,WAAW,EACXF,UAAU,EACVG,SAAS,IAEVrc,GACEA,EAAWic,OAASjc,EAAWic,QAAUV,EAAMgG,SAAStF,OAI3D,GADAjc,EAAWic,MAAQV,EAAMiG,OAAO,UAAYxhB,EAAWic,OAC/B,MAApBjc,EAAWic,MACb,MAAM,IAAI7uB,MAAM,iBAAmB4S,EAAWic,MAAQ,+BAJxDjc,EAAWic,MAAQZ,EAAQ/Z,QAO7B,IAAImgB,GAAc,EAAIpK,EAAS/V,UAAS,EAAM,GAAItB,EAAWic,MAAMsF,UACnE,CAACE,EAAazhB,GAAY/tB,SAAQ,SAAU0Z,GAC1CA,EAAOmiB,QAAUniB,EAAOmiB,SAAW,GACnC58B,OAAOD,KAAK0a,EAAOmiB,SAAS77B,SAAQ,SAAUoE,IACb,IAA3BsV,EAAOmiB,QAAQz3B,KACjBsV,EAAOmiB,QAAQz3B,GAAU,UAI/B,IAAIqrC,EAAcxwC,OAAOD,KAAKwwC,EAAY3T,SAAS/5B,OAAO7C,OAAOD,KAAK+uB,EAAW8N,UAC7E6T,EAAeD,EAAYjgB,QAAO,SAAU9V,EAAQpY,GACtD,IAAIquC,EAAcrG,EAAMiG,OAAO,WAAajuC,GAM5C,OALmB,MAAfquC,EACFtG,EAAM5yB,MAAM,eAAiBnV,EAAO,4CAEpCoY,EAAOpY,GAAQquC,EAAYL,UAAY,GAElC51B,IACN,IAmBH,OAjB0B,MAAtBqU,EAAW8N,SAAmB9N,EAAW8N,QAAQ+T,SAAW7hB,EAAW8N,QAAQ+T,QAAQlR,cAAgBz/B,SACzG8uB,EAAW8N,QAAQ+T,QAAU,CAC3B1nB,UAAW6F,EAAW8N,QAAQ+T,UAGlC7hB,GAAa,EAAIqX,EAAS/V,UAAS,EAAM,GAAIia,EAAMgG,SAAU,CAAEzT,QAAS6T,GAAgBF,EAAazhB,GACrG,CAAC,SAAU,YAAa,sBAAsB/tB,SAAQ,SAAUC,GAC/B,kBAApB8tB,EAAW9tB,KACpB8tB,EAAW9tB,GAAOgV,SAASka,cAAcpB,EAAW9tB,QAGxD8tB,EAAW8N,QAAU58B,OAAOD,KAAK+uB,EAAW8N,SAASrM,QAAO,SAAU9V,EAAQpY,GAI5E,OAHIysB,EAAW8N,QAAQv6B,KACrBoY,EAAOpY,GAAQysB,EAAW8N,QAAQv6B,IAE7BoY,IACN,IACIqU,EAKT,SAAS8c,EAAOgF,EAAU9vC,EAAQ2H,EAAO8/B,GACvC,GAAI/iC,KAAKyU,QAAQ42B,SAAWrrC,KAAK4gB,aAAetlB,IAAW6oC,EAAUvZ,QAAQ4c,QAAQmD,KACnF,OAAO,IAAI7J,EAAalW,QAE1B,IAAIiD,EAAiB,MAAT5qB,EAAgB,KAAOjD,KAAK0nC,eACpC4D,EAAWtrC,KAAKqlC,OAAOnoB,MACvByqB,EAASyD,IAUb,GATa,MAATvd,KACY,IAAV5qB,IAAgBA,EAAQ4qB,EAAM5qB,OACrB,MAAT8/B,EACFlV,EAAQ0d,EAAW1d,EAAO8Z,EAAQrsC,GACf,IAAVynC,IACTlV,EAAQ0d,EAAW1d,EAAO5qB,EAAO8/B,EAAOznC,IAE1C0E,KAAK8nC,aAAaja,EAAOsW,EAAUvZ,QAAQ4c,QAAQO,SAEjDJ,EAAOtsC,SAAW,EAAG,CACvB,IAAImwC,EAKEC,EAHF97B,EAAO,CAACw0B,EAAUvZ,QAAQib,OAAOE,YAAa4B,EAAQ2D,EAAUhwC,GAEpE,IADCkwC,EAAWxrC,KAAKklC,SAASwG,KAAK1wC,MAAMwwC,EAAU,CAACrH,EAAUvZ,QAAQib,OAAOC,eAAezoC,OAAOsS,IAC3FrU,IAAW6oC,EAAUvZ,QAAQ4c,QAAQO,QAGtC0D,EAAYzrC,KAAKklC,SAASwG,KAAK1wC,MAAMywC,EAAW97B,GAGrD,OAAOg4B,EAGT,SAASrE,EAASrgC,EAAO5H,EAAQwB,EAAMf,EAAOR,GAC5C,IAAIquB,EAAU,GAwBd,MAvB2B,kBAAhB1mB,EAAMA,OAA8C,kBAAjBA,EAAM5H,OAE5B,kBAAXA,GACTC,EAASQ,EAAOA,EAAQe,EAAMA,EAAOxB,EAAQA,EAAS4H,EAAM5H,OAAQ4H,EAAQA,EAAMA,QAElF5H,EAAS4H,EAAM5H,OAAQ4H,EAAQA,EAAMA,OAEZ,kBAAX5H,IAChBC,EAASQ,EAAOA,EAAQe,EAAMA,EAAOxB,EAAQA,EAAS,GAGY,YAA/C,qBAATwB,EAAuB,YAAc2mC,EAAQ3mC,KACvD8sB,EAAU9sB,EACVvB,EAASQ,GACgB,kBAATe,IACH,MAATf,EACF6tB,EAAQ9sB,GAAQf,EAEhBR,EAASuB,GAIbvB,EAASA,GAAU6oC,EAAUvZ,QAAQ4c,QAAQC,IACtC,CAACxkC,EAAO5H,EAAQsuB,EAASruB,GAGlC,SAASiwC,EAAW1d,EAAO5qB,EAAO5H,EAAQC,GACxC,GAAa,MAATuyB,EAAe,OAAO,KAC1B,IAAIkP,OAAQ,EACRC,OAAM,EACV,GAAI/5B,aAAiB69B,EAAalW,QAAS,CACzC,IAAI+gB,EAAO,CAAC9d,EAAM5qB,MAAO4qB,EAAM5qB,MAAQ4qB,EAAMxyB,QAAQmD,KAAI,SAAUotC,GACjE,OAAO3oC,EAAM87B,kBAAkB6M,EAAKtwC,IAAW6oC,EAAUvZ,QAAQ4c,QAAQmD,SAGvEkB,EAAQnI,EAAeiI,EAAM,GAEjC5O,EAAQ8O,EAAM,GACd7O,EAAM6O,EAAM,OACP,CACL,IAAIC,EAAQ,CAACje,EAAM5qB,MAAO4qB,EAAM5qB,MAAQ4qB,EAAMxyB,QAAQmD,KAAI,SAAUotC,GAClE,OAAIA,EAAM3oC,GAAS2oC,IAAQ3oC,GAAS3H,IAAW6oC,EAAUvZ,QAAQ4c,QAAQmD,KAAaiB,EAClFvwC,GAAU,EACLuwC,EAAMvwC,EAENmG,KAAKgF,IAAIvD,EAAO2oC,EAAMvwC,MAI7B0wC,EAAQrI,EAAeoI,EAAO,GAElC/O,EAAQgP,EAAM,GACd/O,EAAM+O,EAAM,GAEd,OAAO,IAAIzH,EAAWoG,MAAM3N,EAAOC,EAAMD,GAvK3C8H,EAAMgG,SAAW,CACfvC,OAAQ,KACR3e,QAAS,KACTyN,QAAS,GACTxI,YAAa,GACb6X,UAAU,EACVxB,mBAAoB,KACpBoG,QAAQ,EACR9F,MAAO,WAETV,EAAMgB,OAAS1B,EAAUvZ,QAAQib,OACjChB,EAAM2C,QAAUrD,EAAUvZ,QAAQ4c,QAElC3C,EAAMmH,QAA2B,QAEjCnH,EAAM8B,QAAU,CACd,MAAS7F,EAAalW,QACtB,UAAaoW,EAAYpW,QACzB,cAAeyZ,EAASzZ,QACxB,aAAc+Z,EAAQ/Z,SAuJxBhrB,EAAQ2jC,aAAeA,EACvB3jC,EAAQ0jC,SAAWA,EACnB1jC,EAAQgrB,QAAUia,GAIZ,SAAUllC,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZe,EAAQ/J,EAAoB,GAE5BgK,EAASV,EAAuBS,GAEhCN,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIxI,EAAS,SAAU4S,GAGrB,SAAS5S,IAGP,OAFAkI,EAAgBvhC,KAAMq5B,GAEfoI,EAA2BzhC,MAAOq5B,EAAOU,WAAav/B,OAAOimC,eAAepH,IAASr+B,MAAMgF,KAAM5E,YA0C1G,OA/CAumC,EAAUtI,EAAQ4S,GAQlBjM,EAAa3G,EAAQ,CAAC,CACpB79B,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,EAAQwB,EAAMf,GAC5C,GAAIu9B,EAAO6S,QAAQlsC,KAAKmjC,QAAQ7H,SAAUz+B,GAAQ,GAAKmkC,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMyT,MAAO,CACtH,IAAIvR,EAAO56B,KAAKosC,QAAQnpC,EAAO5H,GAC3BS,GACF8+B,EAAK7sB,KAAKlR,EAAMf,QAGlBukC,EAAKhH,EAAOnhB,UAAU6hB,WAAav/B,OAAOimC,eAAepH,EAAOnhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAO5H,EAAQwB,EAAMf,KAGjI,CACDN,IAAK,WACLM,MAAO,SAAkBmnC,GAEvB,GADA5C,EAAKhH,EAAOnhB,UAAU6hB,WAAav/B,OAAOimC,eAAepH,EAAOnhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMijC,GACrGjjC,KAAK7C,kBAAkBk8B,GAAUA,EAAO6S,QAAQlsC,KAAKmjC,QAAQ7H,SAAUt7B,KAAK7C,OAAOgmC,QAAQ7H,UAAY,EAAG,CAC5G,IAAIn+B,EAAS6C,KAAK7C,OAAOivC,QAAQpsC,KAAKoiB,SAAUpiB,KAAK3E,UACrD2E,KAAKqsC,aAAalvC,GAClBA,EAAO4Q,KAAK/N,UAGd,CAAC,CACHxE,IAAK,UACLM,MAAO,SAAiBgd,EAAMykB,GAC5B,IAAI+O,EAAYjT,EAAOkT,MAAMjlC,QAAQwR,GACjC0zB,EAAanT,EAAOkT,MAAMjlC,QAAQi2B,GACtC,OAAI+O,GAAa,GAAKE,GAAc,EAC3BF,EAAYE,EACV1zB,IAASykB,EACX,EACEzkB,EAAOykB,GACR,EAED,MAKNlE,EAhDI,CAiDX2H,EAAYpW,QAAQyO,QAEtBA,EAAOgK,gBAAkB,CAAChK,EAAQ2H,EAAYpW,QAAQsO,MAAOoI,EAAO1W,SAEpEyO,EAAOkT,MAAQ,CAAC,SAAU,SAC1B,YAAa,SAAU,SAAU,OAAQ,SAAU,OAAQ,QAG3D3sC,EAAQgrB,QAAUyO,GAIZ,SAAU15B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIilC,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI4K,EAAW,SAAUC,GAGvB,SAASD,IAGP,OAFAlL,EAAgBvhC,KAAMysC,GAEfhL,EAA2BzhC,MAAOysC,EAAS1S,WAAav/B,OAAOimC,eAAegM,IAAWzxC,MAAMgF,KAAM5E,YAG9G,OARAumC,EAAU8K,EAAUC,GAQbD,EATM,CAUbzL,EAAYpW,QAAQ0O,MAEtB15B,EAAQgrB,QAAU6hB,GAIZ,SAAU9sC,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZqM,EAAgBrV,EAAoB,IAEpCsV,EAAiBhM,EAAuB+L,GAExCnI,EAAUlN,EAAoB,IAE9BmN,EAAW7D,EAAuB4D,GAEtC,SAAS5D,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI+C,GAAQ,EAAIH,EAAS7Z,SAAS,gBAE9BiiB,EAAS,CAAC,kBAAmB,YAAa,UAAW,SAEzDA,EAAOtxC,SAAQ,SAAUuxC,GACvBt8B,SAAS+M,iBAAiBuvB,GAAW,WACnC,IAAK,IAAIC,EAAO3xC,UAAUC,OAAQsU,EAAOI,MAAMg9B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3Er9B,EAAKq9B,GAAQ5xC,UAAU4xC,GAGzB,GAAG5uC,MAAMiE,KAAKmO,SAASoN,iBAAiB,kBAAkBriB,SAAQ,SAAUoV,GAGxE,IAAIs8B,EADFt8B,EAAKo0B,SAAWp0B,EAAKo0B,QAAQG,UAG9B+H,EAAwBt8B,EAAKo0B,QAAQG,SAASgI,UAAUlyC,MAAMiyC,EAAuBt9B,YAM9F,IAAIw9B,EAAU,SAAUC,GAGtB,SAASD,IACP5L,EAAgBvhC,KAAMmtC,GAEtB,IAAIz9B,EAAQ+xB,EAA2BzhC,MAAOmtC,EAAQpT,WAAav/B,OAAOimC,eAAe0M,IAAU9qC,KAAKrC,OAIxG,OAFA0P,EAAM29B,UAAY,GAClB39B,EAAMk2B,GAAG,QAAShB,EAAM5yB,OACjBtC,EAmCT,OA5CAiyB,EAAUwL,EAASC,GAYnBpN,EAAamN,EAAS,CAAC,CACrB3xC,IAAK,OACLM,MAAO,WACL8oC,EAAM0I,IAAItyC,MAAM4pC,EAAOxpC,WACvBilC,EAAK8M,EAAQj1B,UAAU6hB,WAAav/B,OAAOimC,eAAe0M,EAAQj1B,WAAY,OAAQlY,MAAMhF,MAAMgF,KAAM5E,aAEzG,CACDI,IAAK,YACLM,MAAO,SAAmB+V,GACxB,IAAK,IAAI07B,EAAQnyC,UAAUC,OAAQsU,EAAOI,MAAMw9B,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACpG79B,EAAK69B,EAAQ,GAAKpyC,UAAUoyC,IAG7BxtC,KAAKqtC,UAAUx7B,EAAML,OAAS,IAAIjW,SAAQ,SAAU0B,GACnD,IAAI0T,EAAO1T,EAAK0T,KACZyM,EAAUngB,EAAKmgB,SAEfvL,EAAM3W,SAAWyV,GAAQA,EAAK0O,SAASxN,EAAM3W,UAC/CkiB,EAAQpiB,WAAMoH,EAAW,CAACyP,GAAOxU,OAAOsS,SAI7C,CACDnU,IAAK,YACLM,MAAO,SAAmBgxC,EAAWn8B,EAAMyM,GACpCpd,KAAKqtC,UAAUP,KAClB9sC,KAAKqtC,UAAUP,GAAa,IAE9B9sC,KAAKqtC,UAAUP,GAAW/xC,KAAK,CAAE4V,KAAMA,EAAMyM,QAASA,QAInD+vB,EA7CK,CA8CZP,EAAehiB,SAEjBuiB,EAAQtH,OAAS,CACfC,cAAe,gBACf2H,qBAAsB,uBACtBC,gBAAiB,kBACjBzH,cAAe,gBACf0H,iBAAkB,mBAClB5H,YAAa,eAEfoH,EAAQ3F,QAAU,CAChBC,IAAK,MACLM,OAAQ,SACR4C,KAAM,QAGR/qC,EAAQgrB,QAAUuiB,GAIZ,SAAUxtC,EAAQC,EAAS03B,GAEjC,aAOA,SAASiK,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAJhH5K,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAKT,IAAI8xC,EAAS,SAASA,EAAOC,GAC3B,IAAIp5B,EAAUrZ,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAElFmmC,EAAgBvhC,KAAM4tC,GAEtB5tC,KAAK6tC,MAAQA,EACb7tC,KAAKyU,QAAUA,GAGjBm5B,EAAO/C,SAAW,GAElBjrC,EAAQgrB,QAAUgjB,GAIZ,SAAUjuC,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET,IAAIgyC,EAAS,CAAC,QAAS,OAAQ,MAAO,QAClCpH,EAAQ,OAEZ,SAAS9B,EAAMmJ,GACb,GAAID,EAAOxmC,QAAQymC,IAAWD,EAAOxmC,QAAQo/B,GAAQ,CAGnD,IAFA,IAAIsH,EAEKjB,EAAO3xC,UAAUC,OAAQsU,EAAOI,MAAMg9B,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAC9Fr9B,EAAKq9B,EAAO,GAAK5xC,UAAU4xC,IAG5BgB,EAAW1iC,SAASyiC,GAAQ/yC,MAAMgzC,EAAUr+B,IAIjD,SAASs+B,EAAUC,GACjB,OAAOJ,EAAO/iB,QAAO,SAAUojB,EAAQJ,GAErC,OADAI,EAAOJ,GAAUnJ,EAAM/pB,KAAKvP,QAASyiC,EAAQG,GACtCC,IACN,IAGLvJ,EAAM8B,MAAQuH,EAAUvH,MAAQ,SAAU0H,GACxC1H,EAAQ0H,GAGVxuC,EAAQgrB,QAAUqjB,GAIZ,SAAUtuC,EAAQC,EAAS03B,GAEjC,IAAI+W,EAASt+B,MAAMmI,UAAU9Z,MACzBkwC,EAAahX,EAAoB,IACjCiX,EAAcjX,EAAoB,IAElCkX,EAAY7uC,EAAOC,QAAU,SAAU6uC,EAAQC,EAAUv9B,GAG3D,OAFKA,IAAMA,EAAO,IAEds9B,IAAWC,IAGJD,aAAkBxvC,MAAQyvC,aAAoBzvC,KAChDwvC,EAAO/iC,YAAcgjC,EAAShjC,WAI3B+iC,IAAWC,GAA6B,iBAAVD,GAAyC,iBAAZC,EAC9Dv9B,EAAKk6B,OAASoD,IAAWC,EAAWD,GAAUC,EAS9CC,EAASF,EAAQC,EAAUv9B,KAItC,SAASy9B,EAAkB9yC,GACzB,OAAiB,OAAVA,QAA4BsG,IAAVtG,EAG3B,SAAS+yC,EAAU7mB,GACjB,SAAKA,GAAkB,kBAANA,GAAsC,kBAAbA,EAAE3sB,UACtB,oBAAX2sB,EAAE0X,MAA0C,oBAAZ1X,EAAE5pB,SAGzC4pB,EAAE3sB,OAAS,GAAqB,kBAAT2sB,EAAE,KAI/B,SAAS2mB,EAASn2B,EAAGmV,EAAGxc,GACtB,IAAIhW,EAAGK,EACP,GAAIozC,EAAkBp2B,IAAMo2B,EAAkBjhB,GAC5C,OAAO,EAET,GAAInV,EAAEN,YAAcyV,EAAEzV,UAAW,OAAO,EAGxC,GAAIq2B,EAAY/1B,GACd,QAAK+1B,EAAY5gB,KAGjBnV,EAAI61B,EAAOhsC,KAAKmW,GAChBmV,EAAI0gB,EAAOhsC,KAAKsrB,GACT6gB,EAAUh2B,EAAGmV,EAAGxc,IAEzB,GAAI09B,EAASr2B,GAAI,CACf,IAAKq2B,EAASlhB,GACZ,OAAO,EAET,GAAInV,EAAEnd,SAAWsyB,EAAEtyB,OAAQ,OAAO,EAClC,IAAKF,EAAI,EAAGA,EAAIqd,EAAEnd,OAAQF,IACxB,GAAIqd,EAAErd,KAAOwyB,EAAExyB,GAAI,OAAO,EAE5B,OAAO,EAET,IACE,IAAI2zC,EAAKR,EAAW91B,GAChBu2B,EAAKT,EAAW3gB,GACpB,MAAO5pB,GACP,OAAO,EAIT,GAAI+qC,EAAGzzC,QAAU0zC,EAAG1zC,OAClB,OAAO,EAKT,IAHAyzC,EAAGphB,OACHqhB,EAAGrhB,OAEEvyB,EAAI2zC,EAAGzzC,OAAS,EAAGF,GAAK,EAAGA,IAC9B,GAAI2zC,EAAG3zC,IAAM4zC,EAAG5zC,GACd,OAAO,EAIX,IAAKA,EAAI2zC,EAAGzzC,OAAS,EAAGF,GAAK,EAAGA,IAE9B,GADAK,EAAMszC,EAAG3zC,IACJqzC,EAAUh2B,EAAEhd,GAAMmyB,EAAEnyB,GAAM2V,GAAO,OAAO,EAE/C,cAAcqH,WAAamV,IAMvB,SAAUhuB,EAAQC,EAAS03B,GAEjC,aAEA98B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI08B,EAAWlB,EAAoB,GAC/BiC,EAA4B,WAC5B,SAASA,EAAWgC,EAAUC,EAAS/mB,QACnB,IAAZA,IAAsBA,EAAU,IACpCzU,KAAKu7B,SAAWA,EAChBv7B,KAAKw7B,QAAUA,EACf,IAAIwT,EAAexW,EAASE,MAAMyC,KAAO3C,EAASE,MAAMuW,UACnC,MAAjBx6B,EAAQomB,MAER76B,KAAK66B,MAASpmB,EAAQomB,MAAQrC,EAASE,MAAMqC,MAASiU,EAGtDhvC,KAAK66B,MAAQrC,EAASE,MAAMuW,UAEP,MAArBx6B,EAAQ2wB,YACRplC,KAAKolC,UAAY3wB,EAAQ2wB,WAoCjC,OAlCA7L,EAAWh/B,KAAO,SAAUoW,GACxB,MAAO,GAAGnS,IAAI6D,KAAKsO,EAAKypB,YAAY,SAAU8U,GAC1C,OAAOA,EAAKryC,SAGpB08B,EAAWrhB,UAAU9H,IAAM,SAAUO,EAAM7U,GACvC,QAAKkE,KAAKmvC,OAAOx+B,EAAM7U,KAEvB6U,EAAKe,aAAa1R,KAAKw7B,QAAS1/B,IACzB,IAEXy9B,EAAWrhB,UAAUi3B,OAAS,SAAUx+B,EAAM7U,GAC1C,IAAIwG,EAAQk2B,EAASK,MAAMloB,EAAM6nB,EAASE,MAAMyT,MAAQnsC,KAAK66B,MAAQrC,EAASE,MAAMyC,OACpF,OAAa,MAAT74B,IAEkB,MAAlBtC,KAAKolC,YAEY,kBAAVtpC,EACAkE,KAAKolC,UAAU99B,QAAQxL,EAAMsB,QAAQ,QAAS,MAAQ,EAGtD4C,KAAKolC,UAAU99B,QAAQxL,IAAU,KAGhDy9B,EAAWrhB,UAAU7H,OAAS,SAAUM,GACpCA,EAAKoV,gBAAgB/lB,KAAKw7B,UAE9BjC,EAAWrhB,UAAUpc,MAAQ,SAAU6U,GACnC,IAAI7U,EAAQ6U,EAAKoU,aAAa/kB,KAAKw7B,SACnC,OAAIx7B,KAAKmvC,OAAOx+B,EAAM7U,IAAUA,EACrBA,EAEJ,IAEJy9B,EAlDoB,GAoD/B35B,EAAQgrB,QAAU2O,GAKZ,SAAU55B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQwvC,UAAOhtC,EAEjC,IAAIshC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZO,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtCE,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCsO,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAEjClO,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAElCE,EAAQ/J,EAAoB,GAE5BgK,EAASV,EAAuBS,GAEpC,SAAST,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIuN,EAAO,SAAUG,GAGnB,SAASH,IAGP,OAFA7N,EAAgBvhC,KAAMovC,GAEf3N,EAA2BzhC,MAAOovC,EAAKrV,WAAav/B,OAAOimC,eAAe2O,IAAOp0C,MAAMgF,KAAM5E,YAGtG,OARAumC,EAAUyN,EAAMG,GAQTH,EATE,CAUThO,EAASxW,SAEXwkB,EAAK9T,SAAW,OAChB8T,EAAKlU,QAAU,OAEf,IAAIsU,EAAY,SAAUC,GAGxB,SAASD,IAGP,OAFAjO,EAAgBvhC,KAAMwvC,GAEf/N,EAA2BzhC,MAAOwvC,EAAUzV,WAAav/B,OAAOimC,eAAe+O,IAAYx0C,MAAMgF,KAAM5E,YA6HhH,OAlIAumC,EAAU6N,EAAWC,GAQrBzP,EAAawP,EAAW,CAAC,CACvBh0C,IAAK,QACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAETi8B,EAAOj8B,KAAKgiC,QAAQvxB,YAKxB,OAJIwrB,EAAKoG,SAAS,QAEhBpG,EAAOA,EAAK79B,MAAM,GAAI,IAEjB69B,EAAKn+B,MAAM,MAAMitB,QAAO,SAAU7N,EAAOgG,GAC9C,OAAOhG,EAAM8e,OAAO9Y,GAAM8Y,OAAO,KAAMgL,EAAOrd,aAC7C,IAAImX,EAAalW,WAErB,CACDpvB,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GAC3B,GAAIe,IAASmD,KAAKmjC,QAAQ7H,WAAYx/B,EAAtC,CAEA,IAAI4zC,EAAc1vC,KAAK2vC,WAAWrO,EAAO1W,QAAS5qB,KAAK3E,SAAW,GAC9Du0C,EAAelM,EAAegM,EAAa,GAC3CzT,EAAO2T,EAAa,GAEZ,MAAR3T,GACFA,EAAK4T,SAAS5T,EAAK5gC,SAAW,EAAG,GAEnCglC,EAAKmP,EAAUt3B,UAAU6hB,WAAav/B,OAAOimC,eAAe+O,EAAUt3B,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMnD,EAAMf,MAEpH,CACDN,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,EAAQwB,EAAMf,GAC5C,GAAe,IAAXT,GACoE,MAApE2lC,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMsC,SAAkBn+B,IAASmD,KAAKmjC,QAAQ7H,UAAYx/B,IAAUkE,KAAKmjC,QAAQxZ,QAAQ3pB,KAAKgiC,UAAtJ,CAGA,IAAI8N,EAAc9vC,KAAK+vC,aAAa9sC,GACpC,KAAI6sC,EAAc,GAAKA,GAAe7sC,EAAQ5H,GAA9C,CACA,IAAI20C,EAAchwC,KAAK+vC,aAAa9sC,GAAO,GAAQ,EAC/CgtC,EAAgBH,EAAcE,EAAc,EAC5CpV,EAAO56B,KAAKosC,QAAQ4D,EAAaC,GACjC5S,EAAOzC,EAAKyC,KAChBzC,EAAK57B,OAAOnC,EAAMf,GACduhC,aAAgBmS,GAClBnS,EAAK6S,SAAS,EAAGjtC,EAAQ+sC,EAAc30C,EAAS40C,EAAepzC,EAAMf,OAGxE,CACDN,IAAK,WACLM,MAAO,SAAkBmH,EAAOnH,EAAOsmC,GACrC,GAAW,MAAPA,EAAJ,CAEA,IAAI+N,EAAenwC,KAAK2vC,WAAWrO,EAAO1W,QAAS3nB,GAC/CmtC,EAAe1M,EAAeyM,EAAc,GAC5ClU,EAAOmU,EAAa,GACpBhuB,EAASguB,EAAa,GAE1BnU,EAAKsG,SAASngB,EAAQtmB,MAEvB,CACDN,IAAK,SACLM,MAAO,WACL,IAAIT,EAAS2E,KAAKgiC,QAAQvxB,YAAYpV,OACtC,OAAK2E,KAAKgiC,QAAQvxB,YAAY4xB,SAAS,MAGhChnC,EAFEA,EAAS,IAInB,CACDG,IAAK,eACLM,MAAO,SAAsBu0C,GAC3B,IAAIC,EAAUl1C,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAE7E,GAAKk1C,EAIH,OAAOtwC,KAAKgiC,QAAQvxB,YAAYrS,MAAM,EAAGiyC,GAAaE,YAAY,MAHlE,IAAInuB,EAASpiB,KAAKgiC,QAAQvxB,YAAYrS,MAAMiyC,GAAa/oC,QAAQ,MACjE,OAAO8a,GAAU,EAAIiuB,EAAcjuB,GAAU,IAKhD,CACD5mB,IAAK,WACLM,MAAO,SAAkBmnC,GAClBjjC,KAAKgiC,QAAQvxB,YAAY4xB,SAAS,OACrCriC,KAAK2R,YAAYqvB,EAAYpW,QAAQ+N,OAAO,OAAQ,OAEtD0H,EAAKmP,EAAUt3B,UAAU6hB,WAAav/B,OAAOimC,eAAe+O,EAAUt3B,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMijC,GAC/G,IAAI5F,EAAOr9B,KAAKq9B,KACJ,MAARA,GAAgBA,EAAKmT,OAASxwC,MAAQq9B,EAAK8F,QAAQ7H,WAAat7B,KAAKmjC,QAAQ7H,UAAYt7B,KAAKmjC,QAAQxZ,QAAQ3pB,KAAKgiC,WAAa3E,EAAK8F,QAAQxZ,QAAQ0T,EAAK2E,WAC5J3E,EAAKoT,SAASxN,GACd5F,EAAKgP,aAAarsC,MAClBq9B,EAAKhtB,YAGR,CACD7U,IAAK,UACLM,MAAO,SAAiBZ,GACtBmlC,EAAKmP,EAAUt3B,UAAU6hB,WAAav/B,OAAOimC,eAAe+O,EAAUt3B,WAAY,UAAWlY,MAAMqC,KAAKrC,KAAM9E,GAC9G,GAAGkD,MAAMiE,KAAKrC,KAAKgiC,QAAQpkB,iBAAiB,MAAMriB,SAAQ,SAAUoV,GAClE,IAAIiqB,EAAOoG,EAAYpW,QAAQgO,KAAKjoB,GACxB,MAARiqB,EACFjqB,EAAKK,WAAWH,YAAYF,GACnBiqB,aAAgBoG,EAAYpW,QAAQsO,MAC7C0B,EAAKvqB,SAELuqB,EAAK8V,eAIT,CAAC,CACHl1C,IAAK,SACLM,MAAO,SAAgBA,GACrB,IAAIkmC,EAAU3B,EAAKmP,EAAUzV,WAAav/B,OAAOimC,eAAe+O,GAAY,SAAUxvC,MAAMqC,KAAKrC,KAAMlE,GAEvG,OADAkmC,EAAQtwB,aAAa,cAAc,GAC5BswB,IAER,CACDxmC,IAAK,UACLM,MAAO,WACL,OAAO,MAIJ0zC,EAnIO,CAoIdF,EAAQ1kB,SAEV4kB,EAAUlU,SAAW,aACrBkU,EAAUtU,QAAU,MACpBsU,EAAUmB,IAAM,KAEhB/wC,EAAQwvC,KAAOA,EACfxvC,EAAQgrB,QAAU4kB,GAIZ,SAAU7vC,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAI0nC,EAA4B,oBAAXC,QAAoD,kBAApBA,OAAOvG,SAAwB,SAAUrhC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAX4nC,QAAyB5nC,EAAIo+B,cAAgBwJ,QAAU5nC,IAAQ4nC,OAAOvrB,UAAY,gBAAkBrc,GAElQ6nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfW,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtC+P,EAAMtZ,EAAoB,IAE1BuZ,EAAOjQ,EAAuBgQ,GAE9B7P,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC+P,EAAQxZ,EAAoB,IAE5ByZ,EAASnQ,EAAuBkQ,GAEhCE,EAAU1Z,EAAoB,IAE9B2Z,EAAWrQ,EAAuBoQ,GAElC3B,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAEjCpO,EAAS3J,EAAoB,IAE7B4J,EAAUN,EAAuBK,GAEjCiQ,EAAS5Z,EAAoB,IAE7B6Z,EAAUvQ,EAAuBsQ,GAEjCE,EAAa9Z,EAAoB,IAEjC+Z,EAAczQ,EAAuBwQ,GAErC1Q,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAEtC,SAASE,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAASJ,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAE3M,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,IAAIksC,EAAQ,WAERC,EAAS,WACX,SAASA,EAAOpM,GACd5D,EAAgBvhC,KAAMuxC,GAEtBvxC,KAAKmlC,OAASA,EACdnlC,KAAKkd,MAAQld,KAAKwxC,WA6PpB,OA1PAxR,EAAauR,EAAQ,CAAC,CACpB/1C,IAAK,aACLM,MAAO,SAAoBohB,GACzB,IAAIxN,EAAQ1P,KAERyxC,GAAqB,EACzBzxC,KAAKmlC,OAAOkB,SACZ,IAAIqL,EAAe1xC,KAAKmlC,OAAO9pC,SAoD/B,OAnDA2E,KAAKmlC,OAAOwM,aACZz0B,EAAQ00B,EAAe10B,GACvBA,EAAM6N,QAAO,SAAU9nB,EAAO24B,GAC5B,IAAIvgC,EAASugC,EAAGO,QAAUP,EAAGkB,QAAUlB,EAAGI,OAAO3gC,QAAU,EACvD++B,EAAawB,EAAGxB,YAAc,GAClC,GAAiB,MAAbwB,EAAGI,OAAgB,CACrB,GAAyB,kBAAdJ,EAAGI,OAAqB,CACjC,IAAIC,EAAOL,EAAGI,OACVC,EAAKoG,SAAS,OAASoP,IACzBA,GAAqB,EACrBxV,EAAOA,EAAK79B,MAAM,GAAI,IAEpB6E,GAASyuC,IAAiBzV,EAAKoG,SAAS,QAC1CoP,GAAqB,GAEvB/hC,EAAMy1B,OAAO5C,SAASt/B,EAAOg5B,GAE7B,IAAI4V,EAAeniC,EAAMy1B,OAAOvG,KAAK37B,GACjC6uC,EAAgBpO,EAAemO,EAAc,GAC7CjT,EAAOkT,EAAc,GACrB1vB,EAAS0vB,EAAc,GAEvBnoB,GAAU,EAAIgX,EAAS/V,SAAS,IAAI,EAAIykB,EAAOtP,eAAenB,IAClE,GAAIA,aAAgB0Q,EAAQ1kB,QAAS,CACnC,IAAImnB,EAAmBnT,EAAK+Q,WAAW3O,EAAYpW,QAAQqO,KAAM7W,GAC7D4vB,EAAoBtO,EAAeqO,EAAkB,GACrDlP,EAAOmP,EAAkB,GAE7BroB,GAAU,EAAIgX,EAAS/V,SAASjB,GAAS,EAAI0lB,EAAOtP,eAAe8C,IAErEzI,EAAayW,EAAKjmB,QAAQwP,WAAWsB,KAAK/R,EAASyQ,IAAe,QAC7D,GAA2B,WAAvBoJ,EAAQ5H,EAAGI,QAAsB,CAC1C,IAAIxgC,EAAMhB,OAAOD,KAAKqhC,EAAGI,QAAQ,GACjC,GAAW,MAAPxgC,EAAa,OAAOyH,EACxByM,EAAMy1B,OAAO5C,SAASt/B,EAAOzH,EAAKogC,EAAGI,OAAOxgC,IAE9Ck2C,GAAgBr2C,EAKlB,OAHAb,OAAOD,KAAK6/B,GAAY7+B,SAAQ,SAAUsB,GACxC6S,EAAMy1B,OAAO+K,SAASjtC,EAAO5H,EAAQwB,EAAMu9B,EAAWv9B,OAEjDoG,EAAQ5H,IACd,GACH6hB,EAAM6N,QAAO,SAAU9nB,EAAO24B,GAC5B,MAAyB,kBAAdA,EAAGkB,QACZptB,EAAMy1B,OAAO0K,SAAS5sC,EAAO24B,EAAGkB,QACzB75B,GAEFA,GAAS24B,EAAGO,QAAUP,EAAGI,OAAO3gC,QAAU,KAChD,GACH2E,KAAKmlC,OAAO8M,WACLjyC,KAAKqmC,OAAOnpB,KAEpB,CACD1hB,IAAK,aACLM,MAAO,SAAoBmH,EAAO5H,GAEhC,OADA2E,KAAKmlC,OAAO0K,SAAS5sC,EAAO5H,GACrB2E,KAAKqmC,QAAO,IAAIvF,EAAalW,SAAUuR,OAAOl5B,GAAO65B,OAAOzhC,MAEpE,CACDG,IAAK,aACLM,MAAO,SAAoBmH,EAAO5H,GAChC,IAAIqnC,EAAS1iC,KAET2pB,EAAUvuB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAoBlF,OAlBA4E,KAAKmlC,OAAOkB,SACZ7rC,OAAOD,KAAKovB,GAASpuB,SAAQ,SAAUyD,GACrC,GAA+B,MAA3B0jC,EAAOyC,OAAOC,WAAsB1C,EAAOyC,OAAOC,UAAUpmC,GAAhE,CACA,IAAI8jC,EAAQJ,EAAOyC,OAAOrC,MAAM7/B,EAAOzB,KAAKgF,IAAInL,EAAQ,IACpD62C,EAAkB72C,EACtBynC,EAAMvnC,SAAQ,SAAUqjC,GACtB,IAAIuT,EAAavT,EAAKvjC,SACtB,GAAMujC,aAAgBmS,EAAOnmB,QAEtB,CACL,IAAIwnB,EAAYnvC,EAAQ27B,EAAKxc,OAAOsgB,EAAOyC,QACvCkN,EAAazT,EAAKmR,aAAaqC,EAAYF,GAAmBE,EAAY,EAC9ExT,EAAKsR,SAASkC,EAAWC,EAAYrzC,EAAQ2qB,EAAQ3qB,SAJrD4/B,EAAK5/B,OAAOA,EAAQ2qB,EAAQ3qB,IAM9BkzC,GAAmBC,SAGvBnyC,KAAKmlC,OAAOsL,WACLzwC,KAAKqmC,QAAO,IAAIvF,EAAalW,SAAUuR,OAAOl5B,GAAOk5B,OAAO9gC,GAAQ,EAAI81C,EAAQvmB,SAASjB,OAEjG,CACDnuB,IAAK,aACLM,MAAO,SAAoBmH,EAAO5H,GAChC,IAAI2rC,EAAShnC,KAET2pB,EAAUvuB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAKlF,OAHAZ,OAAOD,KAAKovB,GAASpuB,SAAQ,SAAUyD,GACrCgoC,EAAO7B,OAAO+K,SAASjtC,EAAO5H,EAAQ2D,EAAQ2qB,EAAQ3qB,OAEjDgB,KAAKqmC,QAAO,IAAIvF,EAAalW,SAAUuR,OAAOl5B,GAAOk5B,OAAO9gC,GAAQ,EAAI81C,EAAQvmB,SAASjB,OAEjG,CACDnuB,IAAK,cACLM,MAAO,SAAqBmH,EAAO5H,GACjC,OAAO2E,KAAKkd,MAAM9e,MAAM6E,EAAOA,EAAQ5H,KAExC,CACDG,IAAK,WACLM,MAAO,WACL,OAAOkE,KAAKmlC,OAAOrC,QAAQ/X,QAAO,SAAU7N,EAAO0hB,GACjD,OAAO1hB,EAAM7f,OAAOuhC,EAAK1hB,WACxB,IAAI4jB,EAAalW,WAErB,CACDpvB,IAAK,YACLM,MAAO,SAAmBmH,GACxB,IAAI5H,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAE7E0nC,EAAQ,GACRwP,EAAS,GACE,IAAXj3C,EACF2E,KAAKmlC,OAAOpzB,KAAK9O,GAAO1H,SAAQ,SAAUwW,GACxC,IAAIwgC,EAAQ7O,EAAe3xB,EAAM,GAC7B6oB,EAAO2X,EAAM,GAEb3X,aAAgB0U,EAAQ1kB,QAC1BkY,EAAM/nC,KAAK6/B,GACFA,aAAgBoG,EAAYpW,QAAQqO,MAC7CqZ,EAAOv3C,KAAK6/B,OAIhBkI,EAAQ9iC,KAAKmlC,OAAOrC,MAAM7/B,EAAO5H,GACjCi3C,EAAStyC,KAAKmlC,OAAOvC,YAAY5B,EAAYpW,QAAQqO,KAAMh2B,EAAO5H,IAEpE,IAAIm3C,EAAa,CAAC1P,EAAOwP,GAAQ9zC,KAAI,SAAUi0C,GAC7C,GAAqB,IAAjBA,EAAMp3C,OAAc,MAAO,GAC/B,IAAIsuB,GAAU,EAAI0lB,EAAOtP,eAAe0S,EAAM1P,SAC9C,MAAOvoC,OAAOD,KAAKovB,GAAStuB,OAAS,EAAG,CACtC,IAAIu/B,EAAO6X,EAAM1P,QACjB,GAAY,MAARnI,EAAc,OAAOjR,EACzBA,EAAU+oB,GAAe,EAAIrD,EAAOtP,eAAenF,GAAOjR,GAE5D,OAAOA,KAET,OAAOgX,EAAS/V,QAAQ5vB,MAAM2lC,EAAS/V,QAAS4nB,KAEjD,CACDh3C,IAAK,UACLM,MAAO,SAAiBmH,EAAO5H,GAC7B,OAAO2E,KAAK6oC,YAAY5lC,EAAO5H,GAAQV,QAAO,SAAUihC,GACtD,MAA4B,kBAAdA,EAAGI,UAChBx9B,KAAI,SAAUo9B,GACf,OAAOA,EAAGI,UACT39B,KAAK,MAET,CACD7C,IAAK,cACLM,MAAO,SAAqBmH,EAAOomC,EAAOvtC,GAExC,OADAkE,KAAKmlC,OAAO5C,SAASt/B,EAAOomC,EAAOvtC,GAC5BkE,KAAKqmC,QAAO,IAAIvF,EAAalW,SAAUuR,OAAOl5B,GAAO+4B,OAAOvgC,EAAgB,GAAI4tC,EAAOvtC,OAE/F,CACDN,IAAK,aACLM,MAAO,SAAoBmH,EAAOg5B,GAChC,IAAIsL,EAASvnC,KAET2pB,EAAUvuB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAOlF,OALA6gC,EAAOA,EAAK7+B,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAClD4C,KAAKmlC,OAAO5C,SAASt/B,EAAOg5B,GAC5BzhC,OAAOD,KAAKovB,GAASpuB,SAAQ,SAAUyD,GACrCuoC,EAAOpC,OAAO+K,SAASjtC,EAAOg5B,EAAK5gC,OAAQ2D,EAAQ2qB,EAAQ3qB,OAEtDgB,KAAKqmC,QAAO,IAAIvF,EAAalW,SAAUuR,OAAOl5B,GAAO+4B,OAAOC,GAAM,EAAIkV,EAAQvmB,SAASjB,OAE/F,CACDnuB,IAAK,UACLM,MAAO,WACL,GAAmC,GAA/BkE,KAAKmlC,OAAOzkC,SAASrF,OAAa,OAAO,EAC7C,GAAI2E,KAAKmlC,OAAOzkC,SAASrF,OAAS,EAAG,OAAO,EAC5C,IAAIinC,EAAQtiC,KAAKmlC,OAAOzkC,SAAS0sB,KACjC,OAAIkV,EAAMa,QAAQ7H,WAAagU,EAAQ1kB,QAAQ0Q,aAC3CgH,EAAM5hC,SAASrF,OAAS,IACrBinC,EAAM5hC,SAAS0sB,gBAAgB8T,EAAQtW,WAE/C,CACDpvB,IAAK,eACLM,MAAO,SAAsBmH,EAAO5H,GAClC,IAAI4gC,EAAOj8B,KAAKmpC,QAAQlmC,EAAO5H,GAE3Bs3C,EAAgB3yC,KAAKmlC,OAAOvG,KAAK37B,EAAQ5H,GACzCu3C,EAAgBlP,EAAeiP,EAAe,GAC9C/T,EAAOgU,EAAc,GACrBxwB,EAASwwB,EAAc,GAEvBC,EAAe,EACfC,EAAS,IAAIhS,EAAalW,QAClB,MAARgU,IAIAiU,EAHIjU,aAAgBmS,EAAOnmB,QAGZgU,EAAKmR,aAAa3tB,GAAUA,EAAS,EAFrCwc,EAAKvjC,SAAW+mB,EAIjC0wB,EAASlU,EAAK1hB,QAAQ9e,MAAMgkB,EAAQA,EAASywB,EAAe,GAAG7W,OAAO,OAExE,IAAIsK,EAAWtmC,KAAK6oC,YAAY5lC,EAAO5H,EAASw3C,GAC5CnX,EAAO4K,EAAS5K,MAAK,IAAIoF,EAAalW,SAAUoR,OAAOC,GAAM5+B,OAAOy1C,IACpE51B,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOl5B,GAAO5F,OAAOq+B,GAC5D,OAAO17B,KAAKsqC,WAAWptB,KAExB,CACD1hB,IAAK,SACLM,MAAO,SAAgB6rC,GACrB,IAAIzB,EAAY9qC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAChF23C,EAAc33C,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,QAAKgH,EAElFkpC,EAAWtrC,KAAKkd,MACpB,GAAyB,IAArBgpB,EAAU7qC,QAAsC,kBAAtB6qC,EAAU,GAAG10B,MAA4B00B,EAAU,GAAGhrC,OAAOgC,KAAKoF,MAAMgvC,IAAUtQ,EAAYpW,QAAQgO,KAAKsN,EAAU,GAAGhrC,QAAS,CAE7J,IAAI83C,EAAWhS,EAAYpW,QAAQgO,KAAKsN,EAAU,GAAGhrC,QACjDyuB,GAAU,EAAI0lB,EAAOtP,eAAeiT,GACpC/vC,EAAQ+vC,EAAS5wB,OAAOpiB,KAAKmlC,QAC7B8N,EAAW/M,EAAU,GAAG+M,SAAS71C,QAAQ6zC,EAASrmB,QAAQsoB,SAAU,IACpEC,GAAU,IAAIrS,EAAalW,SAAUoR,OAAOiX,GAC5CG,GAAU,IAAItS,EAAalW,SAAUoR,OAAOgX,EAASl3C,SACrDu3C,GAAY,IAAIvS,EAAalW,SAAUuR,OAAOl5B,GAAO5F,OAAO81C,EAAQzX,KAAK0X,EAASL,IACtFpL,EAAS0L,EAAUtoB,QAAO,SAAU7N,EAAO0e,GACzC,OAAIA,EAAGI,OACE9e,EAAM8e,OAAOJ,EAAGI,OAAQrS,GAExBzM,EAAMniB,KAAK6gC,KAEnB,IAAIkF,EAAalW,SACpB5qB,KAAKkd,MAAQouB,EAAShO,QAAQqK,QAE9B3nC,KAAKkd,MAAQld,KAAKwxC,WACb7J,IAAW,EAAI0J,EAAYzmB,SAAS0gB,EAAShO,QAAQqK,GAAS3nC,KAAKkd,SACtEyqB,EAAS2D,EAAS5P,KAAK17B,KAAKkd,MAAO61B,IAGvC,OAAOpL,MAIJ4J,EAlQI,GAqQb,SAASmB,EAAe/oB,EAAS2pB,GAC/B,OAAO94C,OAAOD,KAAK+4C,GAAUvoB,QAAO,SAAUwoB,EAAQ12C,GACpD,OAAqB,MAAjB8sB,EAAQ9sB,KACRy2C,EAASz2C,KAAU8sB,EAAQ9sB,GAC7B02C,EAAO12C,GAAQy2C,EAASz2C,GACfkT,MAAMuiB,QAAQghB,EAASz2C,IAC5By2C,EAASz2C,GAAMyK,QAAQqiB,EAAQ9sB,IAAS,IAC1C02C,EAAO12C,GAAQy2C,EAASz2C,GAAMQ,OAAO,CAACssB,EAAQ9sB,MAGhD02C,EAAO12C,GAAQ,CAACy2C,EAASz2C,GAAO8sB,EAAQ9sB,KARR02C,IAWjC,IAGL,SAAS3B,EAAe10B,GACtB,OAAOA,EAAM6N,QAAO,SAAU7N,EAAO0e,GACnC,GAAkB,IAAdA,EAAGI,OAAc,CACnB,IAAI5B,GAAa,EAAI+W,EAAQvmB,SAASgR,EAAGxB,YAEzC,cADOA,EAAW,SACXld,EAAM8e,OAAO,CAAEwX,MAAO5X,EAAGxB,WAAWoZ,OAASpZ,GAWtD,GATqB,MAAjBwB,EAAGxB,aAA8C,IAAvBwB,EAAGxB,WAAWqZ,OAA0C,IAAzB7X,EAAGxB,WAAWsZ,SACzE9X,GAAK,EAAIuV,EAAQvmB,SAASgR,GACtBA,EAAGxB,WAAWqZ,KAChB7X,EAAGxB,WAAWqZ,KAAO,WAErB7X,EAAGxB,WAAWqZ,KAAO,gBACd7X,EAAGxB,WAAWsZ,SAGA,kBAAd9X,EAAGI,OAAqB,CACjC,IAAIC,EAAOL,EAAGI,OAAO5+B,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAC3D,OAAO8f,EAAM8e,OAAOC,EAAML,EAAGxB,YAE/B,OAAOld,EAAMniB,KAAK6gC,KACjB,IAAIkF,EAAalW,SAGtBhrB,EAAQgrB,QAAU2mB,GAIZ,SAAU5xC,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQ8qC,WAAQtoC,EAElC,IAAIshC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfa,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCmQ,EAAS5Z,EAAoB,IAE7B6Z,EAAUvQ,EAAuBsQ,GAEjCE,EAAa9Z,EAAoB,IAEjC+Z,EAAczQ,EAAuBwQ,GAErClN,EAAY5M,EAAoB,GAEhC6M,EAAYvD,EAAuBsD,GAEnCM,EAAUlN,EAAoB,IAE9BmN,EAAW7D,EAAuB4D,GAEtC,SAAS5D,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS83C,EAAmB91C,GAAO,GAAIkS,MAAMuiB,QAAQz0B,GAAM,CAAE,IAAK,IAAI1C,EAAI,EAAGy4C,EAAO7jC,MAAMlS,EAAIxC,QAASF,EAAI0C,EAAIxC,OAAQF,IAAOy4C,EAAKz4C,GAAK0C,EAAI1C,GAAM,OAAOy4C,EAAe,OAAO7jC,MAAMgX,KAAKlpB,GAE1L,SAAS0jC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,IAAIw/B,GAAQ,EAAIH,EAAS7Z,SAAS,mBAE9B8f,EAAQ,SAASA,EAAMznC,GACzB,IAAI5H,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAEjFmmC,EAAgBvhC,KAAM0qC,GAEtB1qC,KAAKiD,MAAQA,EACbjD,KAAK3E,OAASA,GAGZw4C,EAAY,WACd,SAASA,EAAU1O,EAAQD,GACzB,IAAIx1B,EAAQ1P,KAEZuhC,EAAgBvhC,KAAM6zC,GAEtB7zC,KAAKklC,QAAUA,EACfllC,KAAKmlC,OAASA,EACdnlC,KAAK8zC,WAAY,EACjB9zC,KAAK+zC,WAAY,EACjB/zC,KAAKk3B,KAAOl3B,KAAKmlC,OAAOnD,QACxBhiC,KAAKg0C,OAAShT,EAAYpW,QAAQ+N,OAAO,SAAU34B,MAEnDA,KAAKmmC,UAAYnmC,KAAKi0C,WAAa,IAAIvJ,EAAM,EAAG,GAChD1qC,KAAKk0C,oBACLl0C,KAAKm0C,iBACLn0C,KAAKklC,QAAQkP,UAAU,kBAAmB5jC,UAAU,WAC7Cd,EAAMqkC,WACTlkC,WAAWH,EAAM22B,OAAOxrB,KAAKnL,EAAOy0B,EAAUvZ,QAAQ4c,QAAQmD,MAAO,MAGzE3qC,KAAKklC,QAAQU,GAAGzB,EAAUvZ,QAAQib,OAAOC,eAAe,SAAUt0B,EAAM0L,GAClE1L,IAAS2yB,EAAUvZ,QAAQib,OAAOE,aAAe7oB,EAAM7hB,SAAW,GACpEqU,EAAM22B,OAAOlC,EAAUvZ,QAAQ4c,QAAQO,WAG3C/nC,KAAKklC,QAAQU,GAAGzB,EAAUvZ,QAAQib,OAAO4H,sBAAsB,WAC7D,GAAK/9B,EAAM05B,WAAX,CACA,IAAIiL,EAAS3kC,EAAM4kC,iBACL,MAAVD,GACAA,EAAOtX,MAAMpsB,OAASjB,EAAMskC,OAAOO,UAEvC7kC,EAAMw1B,QAAQ2E,KAAK1F,EAAUvZ,QAAQib,OAAOI,eAAe,WACzD,IACEv2B,EAAM8kC,eAAeH,EAAOtX,MAAMpsB,KAAM0jC,EAAOtX,MAAM3a,OAAQiyB,EAAOrX,IAAIrsB,KAAM0jC,EAAOrX,IAAI5a,QACzF,MAAOqyB,YAGbz0C,KAAKklC,QAAQU,GAAGzB,EAAUvZ,QAAQib,OAAO6H,iBAAiB,SAAUxH,EAAWjD,GAC7E,GAAIA,EAAQpV,MAAO,CACjB,IAAI6mB,EAAiBzR,EAAQpV,MACzB8mB,EAAYD,EAAeC,UAC3BC,EAAcF,EAAeE,YAC7BC,EAAUH,EAAeG,QACzBC,EAAYJ,EAAeI,UAE/BplC,EAAM8kC,eAAeG,EAAWC,EAAaC,EAASC,OAG1D90C,KAAKqmC,OAAOlC,EAAUvZ,QAAQ4c,QAAQO,QA8WxC,OA3WA/H,EAAa6T,EAAW,CAAC,CACvBr4C,IAAK,oBACLM,MAAO,WACL,IAAI4mC,EAAS1iC,KAEbA,KAAKk3B,KAAK3Z,iBAAiB,oBAAoB,WAC7CmlB,EAAOoR,WAAY,KAErB9zC,KAAKk3B,KAAK3Z,iBAAiB,kBAAkB,WAE3C,GADAmlB,EAAOoR,WAAY,EACfpR,EAAOsR,OAAO72C,OAAQ,CACxB,IAAI0wB,EAAQ6U,EAAOsR,OAAOe,UAC1B,IAAKlnB,EAAO,OACZhe,YAAW,WACT6yB,EAAO8R,eAAe3mB,EAAM8mB,UAAW9mB,EAAM+mB,YAAa/mB,EAAMgnB,QAAShnB,EAAMinB,aAC9E,SAIR,CACDt5C,IAAK,iBACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAEbA,KAAKklC,QAAQkP,UAAU,YAAa5jC,SAASgQ,MAAM,WACjDwmB,EAAO+M,WAAY,KAErB/zC,KAAKklC,QAAQkP,UAAU,UAAW5jC,SAASgQ,MAAM,WAC/CwmB,EAAO+M,WAAY,EACnB/M,EAAOX,OAAOlC,EAAUvZ,QAAQ4c,QAAQmD,WAG3C,CACDnvC,IAAK,QACLM,MAAO,WACDkE,KAAKopC,aACTppC,KAAKk3B,KAAK5V,QACVthB,KAAK+mC,SAAS/mC,KAAKi0C,eAEpB,CACDz4C,IAAK,SACLM,MAAO,SAAgBk5C,EAASl5C,GAC9B,GAA6B,MAAzBkE,KAAKmlC,OAAOC,WAAsBplC,KAAKmlC,OAAOC,UAAU4P,GAA5D,CACAh1C,KAAKmlC,OAAOkB,SACZ,IAAI4O,EAAcj1C,KAAKs0C,iBACvB,GAAmB,MAAfW,GAAwBA,EAAYZ,OAAOa,YAAalU,EAAYpW,QAAQiO,MAAMmc,EAAShU,EAAYpW,QAAQ8N,MAAMsC,OAAzH,CACA,GAAIia,EAAYlY,MAAMpsB,OAAS3Q,KAAKg0C,OAAOO,SAAU,CACnD,IAAI3Z,EAAOoG,EAAYpW,QAAQgO,KAAKqc,EAAYlY,MAAMpsB,MAAM,GAC5D,GAAY,MAARiqB,EAAc,OAElB,GAAIA,aAAgBoG,EAAYpW,QAAQqO,KAAM,CAC5C,IAAIkc,EAAQva,EAAK98B,MAAMm3C,EAAYlY,MAAM3a,QACzCwY,EAAKz9B,OAAOmjB,aAAatgB,KAAKg0C,OAAQmB,QAEtCva,EAAKta,aAAatgB,KAAKg0C,OAAQiB,EAAYlY,MAAMpsB,MAEnD3Q,KAAKg0C,OAAOoB,SAEdp1C,KAAKg0C,OAAOh1C,OAAOg2C,EAASl5C,GAC5BkE,KAAKmlC,OAAOsL,WACZzwC,KAAKw0C,eAAex0C,KAAKg0C,OAAOO,SAAUv0C,KAAKg0C,OAAOO,SAASr3C,KAAK7B,QACpE2E,KAAKqmC,aAEN,CACD7qC,IAAK,YACLM,MAAO,SAAmBmH,GACxB,IAAI5H,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAE7Es2C,EAAe1xC,KAAKmlC,OAAO9pC,SAC/B4H,EAAQzB,KAAKD,IAAI0B,EAAOyuC,EAAe,GACvCr2C,EAASmG,KAAKD,IAAI0B,EAAQ5H,EAAQq2C,EAAe,GAAKzuC,EACtD,IAAI0N,OAAO,EACP0kC,EAAer1C,KAAKmlC,OAAOtC,KAAK5/B,GAChCqyC,EAAgB5R,EAAe2R,EAAc,GAC7CxS,EAAOyS,EAAc,GACrBlzB,EAASkzB,EAAc,GAC3B,GAAY,MAARzS,EAAc,OAAO,KAEzB,IAAI0S,EAAiB1S,EAAK96B,SAASqa,GAAQ,GAEvCozB,EAAkB9R,EAAe6R,EAAgB,GAErD5kC,EAAO6kC,EAAgB,GACvBpzB,EAASozB,EAAgB,GAEzB,IAAI3nB,EAAQrd,SAASilC,cACrB,GAAIp6C,EAAS,EAAG,CACdwyB,EAAM6nB,SAAS/kC,EAAMyR,GAErB,IAAIuzB,EAAgB31C,KAAKmlC,OAAOtC,KAAK5/B,EAAQ5H,GAEzCu6C,EAAgBlS,EAAeiS,EAAe,GAKlD,GAHA9S,EAAO+S,EAAc,GACrBxzB,EAASwzB,EAAc,GAEX,MAAR/S,EAAc,OAAO,KAEzB,IAAIgT,EAAkBhT,EAAK96B,SAASqa,GAAQ,GAExC0zB,EAAkBpS,EAAemS,EAAiB,GAMtD,OAJAllC,EAAOmlC,EAAgB,GACvB1zB,EAAS0zB,EAAgB,GAEzBjoB,EAAMkoB,OAAOplC,EAAMyR,GACZyL,EAAMrC,wBAEb,IAAIwqB,EAAO,OACPC,OAAO,EAeX,OAdItlC,aAAgB2oB,MACdlX,EAASzR,EAAKzT,KAAK7B,QACrBwyB,EAAM6nB,SAAS/kC,EAAMyR,GACrByL,EAAMkoB,OAAOplC,EAAMyR,EAAS,KAE5ByL,EAAM6nB,SAAS/kC,EAAMyR,EAAS,GAC9ByL,EAAMkoB,OAAOplC,EAAMyR,GACnB4zB,EAAO,SAETC,EAAOpoB,EAAMrC,0BAEbyqB,EAAOpT,EAAKb,QAAQxW,wBAChBpJ,EAAS,IAAG4zB,EAAO,UAElB,CACLrqB,OAAQsqB,EAAKpqB,IAAMoqB,EAAKxN,OACxBA,OAAQwN,EAAKxN,OACb1c,KAAMkqB,EAAKD,GACX7pB,MAAO8pB,EAAKD,GACZnqB,IAAKoqB,EAAKpqB,IACVvQ,MAAO,KAIZ,CACD9f,IAAK,iBACLM,MAAO,WACL,IAAIwpC,EAAY90B,SAASk3B,eACzB,GAAiB,MAAbpC,GAAqBA,EAAU4Q,YAAc,EAAG,OAAO,KAC3D,IAAIjB,EAAc3P,EAAU6Q,WAAW,GACvC,GAAmB,MAAflB,EAAqB,OAAO,KAChC,IAAIpnB,EAAQ7tB,KAAKo2C,gBAAgBnB,GAEjC,OADArQ,EAAMyR,KAAK,iBAAkBxoB,GACtBA,IAER,CACDryB,IAAK,WACLM,MAAO,WACL,IAAIw6C,EAAat2C,KAAKs0C,iBACtB,GAAkB,MAAdgC,EAAoB,MAAO,CAAC,KAAM,MACtC,IAAIzoB,EAAQ7tB,KAAKu2C,kBAAkBD,GACnC,MAAO,CAACzoB,EAAOyoB,KAEhB,CACD96C,IAAK,WACLM,MAAO,WACL,OAAO0U,SAASmK,gBAAkB3a,KAAKk3B,OAExC,CACD17B,IAAK,oBACLM,MAAO,SAA2B+xB,GAChC,IAAI0Z,EAASvnC,KAETw2C,EAAY,CAAC,CAAC3oB,EAAMkP,MAAMpsB,KAAMkd,EAAMkP,MAAM3a,SAC3CyL,EAAMwmB,OAAOa,WAChBsB,EAAUz7C,KAAK,CAAC8yB,EAAMmP,IAAIrsB,KAAMkd,EAAMmP,IAAI5a,SAE5C,IAAIq0B,EAAUD,EAAUh4C,KAAI,SAAUuJ,GACpC,IAAI2uC,EAAYhT,EAAe37B,EAAU,GACrC4I,EAAO+lC,EAAU,GACjBt0B,EAASs0B,EAAU,GAEnB9b,EAAOoG,EAAYpW,QAAQgO,KAAKjoB,GAAM,GACtC1N,EAAQ23B,EAAKxY,OAAOmlB,EAAOpC,QAC/B,OAAe,IAAX/iB,EACKnf,EACE23B,aAAgBoG,EAAYpW,QAAQmO,UACtC91B,EAAQ23B,EAAKv/B,SAEb4H,EAAQ23B,EAAK33B,MAAM0N,EAAMyR,MAGhC4a,EAAMx7B,KAAKD,IAAIC,KAAKgF,IAAIxL,MAAMwG,KAAMmyC,EAAmB8C,IAAWz2C,KAAKmlC,OAAO9pC,SAAW,GACzF0hC,EAAQv7B,KAAKD,IAAIvG,MAAMwG,KAAM,CAACw7B,GAAK3/B,OAAOs2C,EAAmB8C,KACjE,OAAO,IAAI/L,EAAM3N,EAAOC,EAAMD,KAE/B,CACDvhC,IAAK,kBACLM,MAAO,SAAyBm5C,GAC9B,IAAK51B,EAASrf,KAAKk3B,KAAM+d,EAAY0B,kBAAoB1B,EAAYC,YAAc71B,EAASrf,KAAKk3B,KAAM+d,EAAY2B,cACjH,OAAO,KAET,IAAI/oB,EAAQ,CACVkP,MAAO,CAAEpsB,KAAMskC,EAAY0B,eAAgBv0B,OAAQ6yB,EAAYL,aAC/D5X,IAAK,CAAErsB,KAAMskC,EAAY2B,aAAcx0B,OAAQ6yB,EAAYH,WAC3DT,OAAQY,GAkBV,MAhBA,CAACpnB,EAAMkP,MAAOlP,EAAMmP,KAAKzhC,SAAQ,SAAUwM,GACzC,IAAI4I,EAAO5I,EAAS4I,KAChByR,EAASra,EAASqa,OACtB,QAASzR,aAAgB2oB,OAAS3oB,EAAKkmC,WAAWx7C,OAAS,EACzD,GAAIsV,EAAKkmC,WAAWx7C,OAAS+mB,EAC3BzR,EAAOA,EAAKkmC,WAAWz0B,GACvBA,EAAS,MACJ,IAAIzR,EAAKkmC,WAAWx7C,SAAW+mB,EAIpC,MAHAzR,EAAOA,EAAKkV,UACZzD,EAASzR,aAAgB2oB,KAAO3oB,EAAKzT,KAAK7B,OAASsV,EAAKkmC,WAAWx7C,OAAS,EAKhF0M,EAAS4I,KAAOA,EAAM5I,EAASqa,OAASA,KAEnCyL,IAER,CACDryB,IAAK,gBACLM,MAAO,SAAuB+xB,GAC5B,IAAIma,EAAShoC,KAETy2C,EAAU5oB,EAAMqnB,UAAY,CAACrnB,EAAM5qB,OAAS,CAAC4qB,EAAM5qB,MAAO4qB,EAAM5qB,MAAQ4qB,EAAMxyB,QAC9EsU,EAAO,GACP+hC,EAAe1xC,KAAKmlC,OAAO9pC,SAoB/B,OAnBAo7C,EAAQl7C,SAAQ,SAAU0H,EAAO9H,GAC/B8H,EAAQzB,KAAKD,IAAImwC,EAAe,EAAGzuC,GACnC,IAAI0N,OAAO,EACPmmC,EAAgB9O,EAAO7C,OAAOtC,KAAK5/B,GACnC8zC,EAAgBrT,EAAeoT,EAAe,GAC9CjU,EAAOkU,EAAc,GACrB30B,EAAS20B,EAAc,GACvBC,EAAkBnU,EAAK96B,SAASqa,EAAc,IAANjnB,GAExC87C,EAAkBvT,EAAesT,EAAiB,GAEtDrmC,EAAOsmC,EAAgB,GACvB70B,EAAS60B,EAAgB,GAEzBtnC,EAAK5U,KAAK4V,EAAMyR,MAEdzS,EAAKtU,OAAS,IAChBsU,EAAOA,EAAKtS,OAAOsS,IAEdA,IAER,CACDnU,IAAK,iBACLM,MAAO,SAAwBmpC,GAC7B,IAAIpX,EAAQ7tB,KAAKmmC,UACjB,GAAa,MAATtY,EAAJ,CACA,IAAIya,EAAStoC,KAAKuoC,UAAU1a,EAAM5qB,MAAO4qB,EAAMxyB,QAC/C,GAAc,MAAVitC,EAAJ,CACA,IAAIrmC,EAAQjC,KAAKmlC,OAAO9pC,SAAW,EAE/Bw2C,EAAe7xC,KAAKmlC,OAAOvG,KAAKp9B,KAAKD,IAAIssB,EAAM5qB,MAAOhB,IACtD6vC,EAAgBpO,EAAemO,EAAc,GAC7CqF,EAAQpF,EAAc,GAEtBqF,EAAOD,EACX,GAAIrpB,EAAMxyB,OAAS,EAAG,CACpB,IAAIs3C,EAAgB3yC,KAAKmlC,OAAOvG,KAAKp9B,KAAKD,IAAIssB,EAAM5qB,MAAQ4qB,EAAMxyB,OAAQ4G,IAEtE2wC,EAAgBlP,EAAeiP,EAAe,GAElDwE,EAAOvE,EAAc,GAEvB,GAAa,MAATsE,GAAyB,MAARC,EAArB,CACA,IAAIC,EAAenS,EAAmBzZ,wBAClC8c,EAAOzc,IAAMurB,EAAavrB,IAC5BoZ,EAAmBoC,WAAa+P,EAAavrB,IAAMyc,EAAOzc,IACjDyc,EAAO3c,OAASyrB,EAAazrB,SACtCsZ,EAAmBoC,WAAaiB,EAAO3c,OAASyrB,EAAazrB,aAGhE,CACDnwB,IAAK,iBACLM,MAAO,SAAwB64C,EAAWC,GACxC,IAAIC,EAAUz5C,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAKu5C,EAC9EG,EAAY15C,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAKw5C,EAChF1R,EAAQ9nC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAG3E,GADAwpC,EAAMyR,KAAK,iBAAkB1B,EAAWC,EAAaC,EAASC,GAC7C,MAAbH,GAA8C,MAAxB30C,KAAKk3B,KAAKlmB,YAA8C,MAAxB2jC,EAAU3jC,YAA4C,MAAtB6jC,EAAQ7jC,WAAlG,CAGA,IAAIs0B,EAAY90B,SAASk3B,eACzB,GAAiB,MAAbpC,EACJ,GAAiB,MAAbqP,EAAmB,CAChB30C,KAAKopC,YAAYppC,KAAKk3B,KAAK5V,QAChC,IAAI+yB,GAAUr0C,KAAKs0C,kBAAoB,IAAID,OAC3C,GAAc,MAAVA,GAAkBnR,GAASyR,IAAcN,EAAOsC,gBAAkB/B,IAAgBP,EAAOO,aAAeC,IAAYR,EAAOuC,cAAgB9B,IAAcT,EAAOS,UAAW,CAEpJ,MAArBH,EAAUzZ,UACZ0Z,EAAc,GAAGttC,QAAQjF,KAAKsyC,EAAU3jC,WAAW6lC,WAAYlC,GAC/DA,EAAYA,EAAU3jC,YAED,MAAnB6jC,EAAQ3Z,UACV4Z,EAAY,GAAGxtC,QAAQjF,KAAKwyC,EAAQ7jC,WAAW6lC,WAAYhC,GAC3DA,EAAUA,EAAQ7jC,YAEpB,IAAI6c,EAAQrd,SAASilC,cACrB5nB,EAAM6nB,SAASf,EAAWC,GAC1B/mB,EAAMkoB,OAAOlB,EAASC,GACtBxP,EAAU+R,kBACV/R,EAAUgS,SAASzpB,SAGrByX,EAAU+R,kBACVr3C,KAAKk3B,KAAK3P,OACV/W,SAASgQ,KAAKc,WAGjB,CACD9lB,IAAK,WACLM,MAAO,SAAkB+xB,GACvB,IAAIqV,EAAQ9nC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GACvEE,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQC,IAO3G,GALqB,kBAAVvE,IACT5nC,EAAS4nC,EACTA,GAAQ,GAEV0B,EAAMyR,KAAK,WAAYxoB,GACV,MAATA,EAAe,CACjB,IAAIle,EAAO3P,KAAKu3C,cAAc1pB,GAC9B7tB,KAAKw0C,eAAex5C,MAAMgF,KAAM2zC,EAAmBhkC,GAAMtS,OAAO,CAAC6lC,UAEjEljC,KAAKw0C,eAAe,MAEtBx0C,KAAKqmC,OAAO/qC,KAEb,CACDE,IAAK,SACLM,MAAO,WACL,IAAIR,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK+oC,EAAUvZ,QAAQ4c,QAAQmD,KAEvG6M,EAAWx3C,KAAKmmC,UAEhBsR,EAAYz3C,KAAKgpC,WACjB0O,EAAahU,EAAe+T,EAAW,GACvCtR,EAAYuR,EAAW,GACvBzC,EAAcyC,EAAW,GAM7B,GAJA13C,KAAKmmC,UAAYA,EACK,MAAlBnmC,KAAKmmC,YACPnmC,KAAKi0C,WAAaj0C,KAAKmmC,aAEpB,EAAIkL,EAAYzmB,SAAS4sB,EAAUx3C,KAAKmmC,WAAY,CACvD,IAAIqF,GAECxrC,KAAK8zC,WAA4B,MAAfmB,GAAuBA,EAAYZ,OAAOa,WAAaD,EAAYlY,MAAMpsB,OAAS3Q,KAAKg0C,OAAOO,UACnHv0C,KAAKg0C,OAAOe,UAEd,IAGMtJ,EAHF97B,EAAO,CAACw0B,EAAUvZ,QAAQib,OAAO8H,kBAAkB,EAAIwD,EAAQvmB,SAAS5qB,KAAKmmC,YAAY,EAAIgL,EAAQvmB,SAAS4sB,GAAWl8C,GAE7H,IADCkwC,EAAWxrC,KAAKklC,SAASwG,KAAK1wC,MAAMwwC,EAAU,CAACrH,EAAUvZ,QAAQib,OAAOC,eAAezoC,OAAOsS,IAC3FrU,IAAW6oC,EAAUvZ,QAAQ4c,QAAQO,QAGtC0D,EAAYzrC,KAAKklC,SAASwG,KAAK1wC,MAAMywC,EAAW97B,QAMlDkkC,EA/ZO,GAkahB,SAASx0B,EAASliB,EAAQwyC,GACxB,IAEEA,EAAW3+B,WACX,MAAOjN,GACP,OAAO,EAOT,OAHI4rC,aAAsBrW,OACxBqW,EAAaA,EAAW3+B,YAEnB7T,EAAOkiB,SAASswB,GAGzB/vC,EAAQ8qC,MAAQA,EAChB9qC,EAAQgrB,QAAUipB,GAIZ,SAAUl0C,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI8V,EAAQ,SAAU5V,GAGpB,SAAS4V,IAGP,OAFApW,EAAgBvhC,KAAM23C,GAEflW,EAA2BzhC,MAAO23C,EAAM5d,WAAav/B,OAAOimC,eAAekX,IAAQ38C,MAAMgF,KAAM5E,YA6BxG,OAlCAumC,EAAUgW,EAAO5V,GAQjB/B,EAAa2X,EAAO,CAAC,CACnBn8C,IAAK,aACLM,MAAO,SAAoBqB,EAAQgH,GACF,IAA3BhH,EAAOuD,SAASrF,OAClBglC,EAAKsX,EAAMz/B,UAAU6hB,WAAav/B,OAAOimC,eAAekX,EAAMz/B,WAAY,aAAclY,MAAMqC,KAAKrC,KAAM7C,EAAQgH,GAEjHnE,KAAKqQ,WAGR,CACD7U,IAAK,SACLM,MAAO,WACL,OAAO,IAER,CACDN,IAAK,QACLM,MAAO,WACL,MAAO,MAEP,CAAC,CACHN,IAAK,QACLM,MAAO,gBAKF67C,EAnCG,CAoCV3W,EAAYpW,QAAQsO,OAEtBye,EAAMrc,SAAW,QACjBqc,EAAMzc,QAAU,KAEhBt7B,EAAQgrB,QAAU+sB,GAIZ,SAAUh4C,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI87C,EAAgBtgB,EAAoB,IACpCugB,EAAWvgB,EAAoB,IAC/BkB,EAAWlB,EAAoB,GAC/BwgB,EAA+B,SAAU3d,GAEzC,SAAS2d,EAAc9V,GACnB,IAAItyB,EAAQyqB,EAAO93B,KAAKrC,KAAMgiC,IAAYhiC,KAE1C,OADA0P,EAAMoK,QACCpK,EAwNX,OA5NAkqB,EAAUke,EAAe3d,GAMzB2d,EAAc5/B,UAAUvG,YAAc,SAAU4rB,GAC5Cv9B,KAAKsgB,aAAaid,IAEtBua,EAAc5/B,UAAUk9B,OAAS,WAC7Bjb,EAAOjiB,UAAUk9B,OAAO/yC,KAAKrC,MAC7BA,KAAKU,SAASnF,SAAQ,SAAU0vB,GAC5BA,EAAMmqB,aAGd0C,EAAc5/B,UAAU4B,MAAQ,WAC5B,IAAIpK,EAAQ1P,KACZA,KAAKU,SAAW,IAAIk3C,EAAchtB,QAElC,GAAGxsB,MACEiE,KAAKrC,KAAKgiC,QAAQ6U,YAClBvG,UACA/0C,SAAQ,SAAUoV,GACnB,IACI,IAAIsa,EAAQ8sB,EAASpnC,GACrBjB,EAAM4Q,aAAa2K,EAAOvb,EAAMhP,SAAS0sB,WAAQhrB,GAErD,MAAOiJ,GACH,GAAIA,aAAemtB,EAAS0B,eACxB,OAEA,MAAM7uB,OAItBysC,EAAc5/B,UAAU23B,SAAW,SAAU5sC,EAAO5H,GAChD,GAAc,IAAV4H,GAAe5H,IAAW2E,KAAK3E,SAC/B,OAAO2E,KAAKqQ,SAEhBrQ,KAAKU,SAASs3C,UAAU/0C,EAAO5H,GAAQ,SAAU4vB,EAAO7I,EAAQ/mB,GAC5D4vB,EAAM4kB,SAASztB,EAAQ/mB,OAG/By8C,EAAc5/B,UAAUy3B,WAAa,SAAUsI,EAAUh1C,GACrD,IAAI8R,EAAK/U,KAAKU,SAASk4B,KAAK31B,GAAQgoB,EAAQlW,EAAG,GAAIqN,EAASrN,EAAG,GAC/D,OAA0B,MAArBkjC,EAAS3c,UAAoB2c,EAAShtB,IACjB,MAArBgtB,EAAS3c,UAAoBrQ,aAAiBgtB,EACxC,CAAChtB,EAAO7I,GAEV6I,aAAiB6sB,EACf7sB,EAAM0kB,WAAWsI,EAAU71B,GAG3B,CAAC,MAAO,IAGvB01B,EAAc5/B,UAAU0qB,YAAc,SAAUqV,EAAUh1C,EAAO5H,QAC/C,IAAV4H,IAAoBA,EAAQ,QACjB,IAAX5H,IAAqBA,EAAS63B,OAAO6V,WACzC,IAAInG,EAAc,GACdsV,EAAa78C,EAWjB,OAVA2E,KAAKU,SAASs3C,UAAU/0C,EAAO5H,GAAQ,SAAU4vB,EAAOhoB,EAAO5H,IACjC,MAArB48C,EAAS3c,UAAoB2c,EAAShtB,IACjB,MAArBgtB,EAAS3c,UAAoBrQ,aAAiBgtB,IAC/CrV,EAAY7nC,KAAKkwB,GAEjBA,aAAiB6sB,IACjBlV,EAAcA,EAAYvlC,OAAO4tB,EAAM2X,YAAYqV,EAAUh1C,EAAOi1C,KAExEA,GAAc78C,KAEXunC,GAEXkV,EAAc5/B,UAAUigC,OAAS,WAC7Bn4C,KAAKU,SAASnF,SAAQ,SAAU0vB,GAC5BA,EAAMktB,YAEVhe,EAAOjiB,UAAUigC,OAAO91C,KAAKrC,OAEjC83C,EAAc5/B,UAAUg4B,SAAW,SAAUjtC,EAAO5H,EAAQwB,EAAMf,GAC9DkE,KAAKU,SAASs3C,UAAU/0C,EAAO5H,GAAQ,SAAU4vB,EAAO7I,EAAQ/mB,GAC5D4vB,EAAMilB,SAAS9tB,EAAQ/mB,EAAQwB,EAAMf,OAG7Cg8C,EAAc5/B,UAAUqqB,SAAW,SAAUt/B,EAAOnH,EAAOsmC,GACvD,IAAIrtB,EAAK/U,KAAKU,SAASk4B,KAAK31B,GAAQgoB,EAAQlW,EAAG,GAAIqN,EAASrN,EAAG,GAC/D,GAAIkW,EACAA,EAAMsX,SAASngB,EAAQtmB,EAAOsmC,OAE7B,CACD,IAAIxH,EAAc,MAAPwH,EAAc5J,EAASG,OAAO,OAAQ78B,GAAS08B,EAASG,OAAO78B,EAAOsmC,GACjFpiC,KAAK2R,YAAYipB,KAGzBkd,EAAc5/B,UAAUoI,aAAe,SAAU83B,EAAWC,GACxD,GAAoC,MAAhCr4C,KAAKmjC,QAAQE,kBACZrjC,KAAKmjC,QAAQE,gBAAgB9c,MAAK,SAAU0E,GACzC,OAAOmtB,aAAqBntB,KAEhC,MAAM,IAAIuN,EAAS0B,eAAe,iBAAmBke,EAAUjV,QAAQ7H,SAAW,SAAWt7B,KAAKmjC,QAAQ7H,UAE9G8c,EAAUE,WAAWt4C,KAAMq4C,IAE/BP,EAAc5/B,UAAU7c,OAAS,WAC7B,OAAO2E,KAAKU,SAASqqB,QAAO,SAAUwtB,EAAMttB,GACxC,OAAOstB,EAAOttB,EAAM5vB,WACrB,IAEPy8C,EAAc5/B,UAAUm0B,aAAe,SAAUmM,EAAc1R,GAC3D9mC,KAAKU,SAASnF,SAAQ,SAAU0vB,GAC5ButB,EAAal4B,aAAa2K,EAAO6b,OAGzCgR,EAAc5/B,UAAUu4B,SAAW,SAAUxN,GAEzC,GADA9I,EAAOjiB,UAAUu4B,SAASpuC,KAAKrC,KAAMijC,GACR,IAAzBjjC,KAAKU,SAASrF,OACd,GAAiC,MAA7B2E,KAAKmjC,QAAQC,aAAsB,CACnC,IAAInY,EAAQuN,EAASG,OAAO34B,KAAKmjC,QAAQC,cACzCpjC,KAAK2R,YAAYsZ,GACjBA,EAAMwlB,SAASxN,QAGfjjC,KAAKqQ,UAIjBynC,EAAc5/B,UAAUnG,KAAO,SAAU9O,EAAOw1C,QAC1B,IAAdA,IAAwBA,GAAY,GACxC,IAAI1jC,EAAK/U,KAAKU,SAASk4B,KAAK31B,EAAOw1C,GAAYxtB,EAAQlW,EAAG,GAAIqN,EAASrN,EAAG,GACtEhN,EAAW,CAAC,CAAC/H,KAAMiD,IACvB,OAAIgoB,aAAiB6sB,EACV/vC,EAAS1K,OAAO4tB,EAAMlZ,KAAKqQ,EAAQq2B,KAE5B,MAATxtB,GACLljB,EAAShN,KAAK,CAACkwB,EAAO7I,IAEnBra,IAEX+vC,EAAc5/B,UAAUrH,YAAc,SAAUoa,GAC5CjrB,KAAKU,SAAS2P,OAAO4a,IAEzB6sB,EAAc5/B,UAAU9a,QAAU,SAAUlC,GACpCA,aAAkB48C,GAClB58C,EAAOmxC,aAAarsC,MAExBm6B,EAAOjiB,UAAU9a,QAAQiF,KAAKrC,KAAM9E,IAExC48C,EAAc5/B,UAAUpa,MAAQ,SAAUmF,EAAOigC,GAE7C,QADc,IAAVA,IAAoBA,GAAQ,IAC3BA,EAAO,CACR,GAAc,IAAVjgC,EACA,OAAOjD,KACX,GAAIiD,IAAUjD,KAAK3E,SACf,OAAO2E,KAAKq9B,KAEpB,IAAI8X,EAAQn1C,KAAK4/B,QAMjB,OALA5/B,KAAK7C,OAAOmjB,aAAa60B,EAAOn1C,KAAKq9B,MACrCr9B,KAAKU,SAASs3C,UAAU/0C,EAAOjD,KAAK3E,UAAU,SAAU4vB,EAAO7I,EAAQ/mB,GACnE4vB,EAAQA,EAAMntB,MAAMskB,EAAQ8gB,GAC5BiS,EAAMxjC,YAAYsZ,MAEfkqB,GAEX2C,EAAc5/B,UAAUw4B,OAAS,WAC7B1wC,KAAKqsC,aAAarsC,KAAK7C,OAAQ6C,KAAKq9B,MACpCr9B,KAAKqQ,UAETynC,EAAc5/B,UAAUmuB,OAAS,SAAUH,EAAWjD,GAClD,IAAIvzB,EAAQ1P,KACR04C,EAAa,GACbC,EAAe,GACnBzS,EAAU3qC,SAAQ,SAAUq9C,GACpBA,EAAS19C,SAAWwU,EAAMsyB,SAA6B,cAAlB4W,EAASpnC,OAC9CknC,EAAW39C,KAAKC,MAAM09C,EAAYE,EAASF,YAC3CC,EAAa59C,KAAKC,MAAM29C,EAAcC,EAASD,kBAGvDA,EAAap9C,SAAQ,SAAUoV,GAI3B,KAAuB,MAAnBA,EAAKK,YAEY,WAAjBL,EAAKuqB,SACL1qB,SAASgQ,KAAKq4B,wBAAwBloC,GAAQ0f,KAAKyoB,gCAHvD,CAMA,IAAIle,EAAOpC,EAASI,KAAKjoB,GACb,MAARiqB,IAE2B,MAA3BA,EAAKoH,QAAQhxB,YAAsB4pB,EAAKoH,QAAQhxB,aAAetB,EAAMsyB,SACrEpH,EAAKud,cAGbO,EACK/9C,QAAO,SAAUgW,GAClB,OAAOA,EAAKK,YAActB,EAAMsyB,WAE/BtU,MAAK,SAAUlV,EAAGmV,GACnB,OAAInV,IAAMmV,EACC,EACPnV,EAAEqgC,wBAAwBlrB,GAAK0C,KAAK0oB,4BAC7B,GAEH,KAEPx9C,SAAQ,SAAUoV,GACnB,IAAI0nC,EAAU,KACU,MAApB1nC,EAAK4P,cACL83B,EAAU7f,EAASI,KAAKjoB,EAAK4P,cAEjC,IAAIqa,EAAOmd,EAASpnC,GAChBiqB,EAAKyC,MAAQgb,GAAwB,MAAbzd,EAAKyC,OACV,MAAfzC,EAAKz9B,QACLy9B,EAAKz9B,OAAO0T,YAAYnB,GAE5BA,EAAM4Q,aAAasa,EAAMyd,QAAWj2C,QAIzC01C,EA7NuB,CA8NhCD,EAASjtB,SACX,SAASmtB,EAASpnC,GACd,IAAIiqB,EAAOpC,EAASI,KAAKjoB,GACzB,GAAY,MAARiqB,EACA,IACIA,EAAOpC,EAASG,OAAOhoB,GAE3B,MAAO5M,GACH62B,EAAOpC,EAASG,OAAOH,EAASE,MAAMuC,QACtC,GAAG78B,MAAMiE,KAAKsO,EAAKkmC,YAAYt7C,SAAQ,SAAU0vB,GAE7C2P,EAAKoH,QAAQrwB,YAAYsZ,MAEzBta,EAAKK,YACLL,EAAKK,WAAWgoC,aAAape,EAAKoH,QAASrxB,GAE/CiqB,EAAKwa,SAGb,OAAOxa,EAEXh7B,EAAQgrB,QAAUktB,GAKZ,SAAUn4C,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIs8B,EAAed,EAAoB,IACnCiB,EAAUjB,EAAoB,IAC9BM,EAAcN,EAAoB,IAClCkB,EAAWlB,EAAoB,GAC/B2hB,EAA4B,SAAU9e,GAEtC,SAAS8e,EAAWjX,GAChB,IAAItyB,EAAQyqB,EAAO93B,KAAKrC,KAAMgiC,IAAYhiC,KAE1C,OADA0P,EAAM0qB,WAAa,IAAI7B,EAAQ3N,QAAQlb,EAAMsyB,SACtCtyB,EAmDX,OAvDAkqB,EAAUqf,EAAY9e,GAMtB8e,EAAWtvB,QAAU,SAAUqY,GAC3B,MAA4B,kBAAjBhiC,KAAKk7B,UAGPnrB,MAAMuiB,QAAQtyB,KAAKk7B,SACjB8G,EAAQ9G,QAAQhT,mBADtB,IAKT+wB,EAAW/gC,UAAUlZ,OAAS,SAAUnC,EAAMf,GAC1C,IAAIkD,EAASw5B,EAASK,MAAMh8B,GACxBmC,aAAkBo5B,EAAaxN,QAC/B5qB,KAAKo6B,WAAW8H,UAAUljC,EAAQlD,GAE7BA,IACS,MAAVkD,GAAmBnC,IAASmD,KAAKmjC,QAAQ7H,UAAYt7B,KAAK2pB,UAAU9sB,KAAUf,GAC9EkE,KAAKk5C,YAAYr8C,EAAMf,KAInCm9C,EAAW/gC,UAAUyR,QAAU,WAC3B,IAAIA,EAAU3pB,KAAKo6B,WAAW6H,SAC1BjjC,EAASgB,KAAKmjC,QAAQxZ,QAAQ3pB,KAAKgiC,SAIvC,OAHc,MAAVhjC,IACA2qB,EAAQ3pB,KAAKmjC,QAAQ7H,UAAYt8B,GAE9B2qB,GAEXsvB,EAAW/gC,UAAUghC,YAAc,SAAUr8C,EAAMf,GAC/C,IAAIuM,EAAc8xB,EAAOjiB,UAAUghC,YAAY72C,KAAKrC,KAAMnD,EAAMf,GAEhE,OADAkE,KAAKo6B,WAAWsF,KAAKr3B,GACdA,GAEX4wC,EAAW/gC,UAAUmuB,OAAS,SAAUH,EAAWjD,GAC/C,IAAIvzB,EAAQ1P,KACZm6B,EAAOjiB,UAAUmuB,OAAOhkC,KAAKrC,KAAMkmC,EAAWjD,GAC1CiD,EAAU3f,MAAK,SAAUqyB,GACzB,OAAOA,EAAS19C,SAAWwU,EAAMsyB,SAA6B,eAAlB4W,EAASpnC,SAErDxR,KAAKo6B,WAAWtgB,SAGxBm/B,EAAW/gC,UAAUnK,KAAO,SAAUlR,EAAMf,GACxC,IAAIsV,EAAU+oB,EAAOjiB,UAAUnK,KAAK1L,KAAKrC,KAAMnD,EAAMf,GAIrD,OAHIsV,aAAmB6nC,GAAc7nC,EAAQ+xB,QAAQtI,QAAU76B,KAAKmjC,QAAQtI,OACxE76B,KAAKo6B,WAAW+e,KAAK/nC,GAElBA,GAEJ6nC,EAxDoB,CAyD7BrhB,EAAYhN,SACdhrB,EAAQgrB,QAAUquB,GAKZ,SAAUt5C,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI+7C,EAAWvgB,EAAoB,IAC/BkB,EAAWlB,EAAoB,GAC/B8hB,EAA0B,SAAUjf,GAEpC,SAASif,IACL,OAAkB,OAAXjf,GAAmBA,EAAOn/B,MAAMgF,KAAM5E,YAAc4E,KAuB/D,OAzBA45B,EAAUwf,EAAUjf,GAIpBif,EAASt9C,MAAQ,SAAUkmC,GACvB,OAAO,GAEXoX,EAASlhC,UAAUjV,MAAQ,SAAU0N,EAAMyR,GACvC,OAAIpiB,KAAKgiC,UAAYrxB,GACjB3Q,KAAKgiC,QAAQ6W,wBAAwBloC,GAAQ0f,KAAKyoB,+BAC3Ct3C,KAAKD,IAAI6gB,EAAQ,IAEpB,GAEZg3B,EAASlhC,UAAUnQ,SAAW,SAAU9E,EAAOw1C,GAC3C,IAAIr2B,EAAS,GAAG9a,QAAQjF,KAAKrC,KAAK7C,OAAO6kC,QAAQ6U,WAAY72C,KAAKgiC,SAGlE,OAFI/+B,EAAQ,IACRmf,GAAU,GACP,CAACpiB,KAAK7C,OAAO6kC,QAAS5f,IAEjCg3B,EAASlhC,UAAUpc,MAAQ,WACvB,IAAIiZ,EACJ,OAAOA,EAAK,GAAIA,EAAG/U,KAAKmjC,QAAQ7H,UAAYt7B,KAAKmjC,QAAQrnC,MAAMkE,KAAKgiC,WAAY,EAAMjtB,GAE1FqkC,EAASve,MAAQrC,EAASE,MAAM2gB,YACzBD,EA1BkB,CA2B3BvB,EAASjtB,SACXhrB,EAAQgrB,QAAUwuB,GAKZ,SAAUz5C,EAAQC,EAAS03B,GAEjC,IAAIqE,EAAQrE,EAAoB,IAC5B16B,EAAS06B,EAAoB,GAG7BgiB,EAAM,CACRlf,WAAY,CACVkD,QAAS,SAAU9kB,EAAGmV,EAAG4rB,GACN,kBAAN/gC,IAAgBA,EAAI,IACd,kBAANmV,IAAgBA,EAAI,IAC/B,IAAIyM,EAAax9B,GAAO,EAAM,GAAI+wB,GASlC,IAAK,IAAInyB,KARJ+9C,IACHnf,EAAa5/B,OAAOD,KAAK6/B,GAAYrP,QAAO,SAAU2U,EAAMlkC,GAI1D,OAHuB,MAAnB4+B,EAAW5+B,KACbkkC,EAAKlkC,GAAO4+B,EAAW5+B,IAElBkkC,IACN,KAEWlnB,OACCpW,IAAXoW,EAAEhd,SAAiC4G,IAAXurB,EAAEnyB,KAC5B4+B,EAAW5+B,GAAOgd,EAAEhd,IAGxB,OAAOhB,OAAOD,KAAK6/B,GAAY/+B,OAAS,EAAI++B,OAAah4B,GAG3Ds5B,KAAM,SAASljB,EAAGmV,GACC,kBAANnV,IAAgBA,EAAI,IACd,kBAANmV,IAAgBA,EAAI,IAC/B,IAAIyM,EAAa5/B,OAAOD,KAAKie,GAAGnb,OAAO7C,OAAOD,KAAKozB,IAAI5C,QAAO,SAAUqP,EAAY5+B,GAIlF,OAHKmgC,EAAMnjB,EAAEhd,GAAMmyB,EAAEnyB,MACnB4+B,EAAW5+B,QAAkB4G,IAAXurB,EAAEnyB,GAAqB,KAAOmyB,EAAEnyB,IAE7C4+B,IACN,IACH,OAAO5/B,OAAOD,KAAK6/B,GAAY/+B,OAAS,EAAI++B,OAAah4B,GAG3Dy8B,UAAW,SAAUrmB,EAAGmV,EAAGmR,GACzB,GAAiB,kBAANtmB,EAAgB,OAAOmV,EAClC,GAAiB,kBAANA,EAAX,CACA,IAAKmR,EAAU,OAAOnR,EACtB,IAAIyM,EAAa5/B,OAAOD,KAAKozB,GAAG5C,QAAO,SAAUqP,EAAY5+B,GAE3D,YADe4G,IAAXoW,EAAEhd,KAAoB4+B,EAAW5+B,GAAOmyB,EAAEnyB,IACvC4+B,IACN,IACH,OAAO5/B,OAAOD,KAAK6/B,GAAY/+B,OAAS,EAAI++B,OAAah4B,KAI7D86B,SAAU,SAAUhnB,GAClB,OAAO,IAAIsjC,EAAStjC,IAGtB7a,OAAQ,SAAUugC,GAChB,MAA4B,kBAAjBA,EAAG,UACLA,EAAG,UACoB,kBAAdA,EAAGO,OACZP,EAAGO,OAEkB,kBAAdP,EAAGI,OAAsBJ,EAAGI,OAAO3gC,OAAS,IAMhE,SAASm+C,EAAStjC,GAChBlW,KAAKkW,IAAMA,EACXlW,KAAKiD,MAAQ,EACbjD,KAAKoiB,OAAS,EAGhBo3B,EAASthC,UAAUilB,QAAU,WAC3B,OAAOn9B,KAAK89B,aAAe39B,KAG7Bq5C,EAASthC,UAAUmlB,KAAO,SAAUhiC,GAC7BA,IAAQA,EAAS8E,KACtB,IAAIi9B,EAASp9B,KAAKkW,IAAIlW,KAAKiD,OAC3B,GAAIm6B,EAAQ,CACV,IAAIhb,EAASpiB,KAAKoiB,OACdkc,EAAWgb,EAAIj+C,OAAO+hC,GAQ1B,GAPI/hC,GAAUijC,EAAWlc,GACvB/mB,EAASijC,EAAWlc,EACpBpiB,KAAKiD,OAAS,EACdjD,KAAKoiB,OAAS,GAEdpiB,KAAKoiB,QAAU/mB,EAEe,kBAArB+hC,EAAO,UAChB,MAAO,CAAE,OAAU/hC,GAEnB,IAAIo+C,EAAQ,GAYZ,OAXIrc,EAAOhD,aACTqf,EAAMrf,WAAagD,EAAOhD,YAEC,kBAAlBgD,EAAOjB,OAChBsd,EAAMtd,OAAS9gC,EACmB,kBAAlB+hC,EAAOpB,OACvByd,EAAMzd,OAASoB,EAAOpB,OAAO0d,OAAOt3B,EAAQ/mB,GAG5Co+C,EAAMzd,OAASoB,EAAOpB,OAEjByd,EAGT,MAAO,CAAEtd,OAAQh8B,MAIrBq5C,EAASthC,UAAUylB,KAAO,WACxB,OAAO39B,KAAKkW,IAAIlW,KAAKiD,QAGvBu2C,EAASthC,UAAU4lB,WAAa,WAC9B,OAAI99B,KAAKkW,IAAIlW,KAAKiD,OAETq2C,EAAIj+C,OAAO2E,KAAKkW,IAAIlW,KAAKiD,QAAUjD,KAAKoiB,OAExCjiB,KAIXq5C,EAASthC,UAAU2lB,SAAW,WAC5B,OAAI79B,KAAKkW,IAAIlW,KAAKiD,OAC8B,kBAAnCjD,KAAKkW,IAAIlW,KAAKiD,OAAO,UACvB,SACyC,kBAAhCjD,KAAKkW,IAAIlW,KAAKiD,OAAOk5B,OAC9B,SAEA,SAGJ,UAGTqd,EAASthC,UAAU+lB,KAAO,WACxB,GAAKj+B,KAAKm9B,UAEH,IAAoB,IAAhBn9B,KAAKoiB,OACd,OAAOpiB,KAAKkW,IAAI9X,MAAM4B,KAAKiD,OAE3B,IAAImf,EAASpiB,KAAKoiB,OACdnf,EAAQjD,KAAKiD,MACbo6B,EAAOr9B,KAAKq9B,OACZY,EAAOj+B,KAAKkW,IAAI9X,MAAM4B,KAAKiD,OAG/B,OAFAjD,KAAKoiB,OAASA,EACdpiB,KAAKiD,MAAQA,EACN,CAACo6B,GAAMhgC,OAAO4gC,GAVrB,MAAO,IAeXt+B,EAAOC,QAAU05C,GAKX,SAAU35C,EAAQC,GAExB,IAAIggC,EAAQ,WACZ,aAEA,SAAS+Z,EAAY99C,EAAK2V,GACxB,OAAe,MAARA,GAAgB3V,aAAe2V,EAGxC,IAAIooC,EASAC,EAOAC,EAfJ,IACEF,EAAYG,IACZ,MAAM1mC,GAGNumC,EAAY,aAId,IACEC,EAAYG,IACZ,MAAM3mC,GACNwmC,EAAY,aAId,IACEC,EAAgBG,QAChB,MAAM5mC,GACNymC,EAAgB,aAwBlB,SAASla,EAAMziC,EAAQ+8C,EAAUC,EAAOjiC,EAAWkiC,GACzB,kBAAbF,IACTC,EAAQD,EAASC,MACjBjiC,EAAYgiC,EAAShiC,UACrBkiC,EAAuBF,EAASE,qBAChCF,EAAWA,EAASA,UAItB,IAAIG,EAAa,GACbC,EAAc,GAEdC,EAA6B,oBAAVC,EASvB,SAAStJ,EAAO/zC,EAAQg9C,GAEtB,GAAe,OAAXh9C,EACF,OAAO,KAET,GAAc,IAAVg9C,EACF,OAAOh9C,EAET,IAAI8tB,EACAwvB,EACJ,GAAqB,iBAAVt9C,EACT,OAAOA,EAGT,GAAIw8C,EAAYx8C,EAAQy8C,GACtB3uB,EAAQ,IAAI2uB,OACP,GAAID,EAAYx8C,EAAQ08C,GAC7B5uB,EAAQ,IAAI4uB,OACP,GAAIF,EAAYx8C,EAAQ28C,GAC7B7uB,EAAQ,IAAI6uB,GAAc,SAAUY,EAASC,GAC3Cx9C,EAAOy9C,MAAK,SAAS9+C,GACnB4+C,EAAQxJ,EAAOp1C,EAAOq+C,EAAQ,OAC7B,SAAS9uC,GACVsvC,EAAOzJ,EAAO7lC,EAAK8uC,EAAQ,eAG1B,GAAIva,EAAMib,UAAU19C,GACzB8tB,EAAQ,QACH,GAAI2U,EAAMkb,WAAW39C,GAC1B8tB,EAAQ,IAAItpB,OAAOxE,EAAO7B,OAAQy/C,EAAiB59C,IAC/CA,EAAOoF,YAAW0oB,EAAM1oB,UAAYpF,EAAOoF,gBAC1C,GAAIq9B,EAAMob,SAAS79C,GACxB8tB,EAAQ,IAAIhsB,KAAK9B,EAAOuO,eACnB,IAAI6uC,GAAaC,EAAO3L,SAAS1xC,GAStC,OANE8tB,EAFEuvB,EAAOS,YAEDT,EAAOS,YAAY99C,EAAO9B,QAG1B,IAAIm/C,EAAOr9C,EAAO9B,QAE5B8B,EAAOuiC,KAAKzU,GACLA,EACE0uB,EAAYx8C,EAAQuZ,OAC7BuU,EAAQzwB,OAAOm+B,OAAOx7B,GAEE,oBAAb+a,GACTuiC,EAAQjgD,OAAOimC,eAAetjC,GAC9B8tB,EAAQzwB,OAAOm+B,OAAO8hB,KAGtBxvB,EAAQzwB,OAAOm+B,OAAOzgB,GACtBuiC,EAAQviC,GAIZ,GAAIgiC,EAAU,CACZ,IAAIj3C,EAAQo3C,EAAW/yC,QAAQnK,GAE/B,IAAc,GAAV8F,EACF,OAAOq3C,EAAYr3C,GAErBo3C,EAAWt/C,KAAKoC,GAChBm9C,EAAYv/C,KAAKkwB,GAiBnB,IAAK,IAAI9vB,KAdLw+C,EAAYx8C,EAAQy8C,IACtBz8C,EAAO5B,SAAQ,SAASO,EAAON,GAC7B,IAAI0/C,EAAWhK,EAAO11C,EAAK2+C,EAAQ,GAC/BgB,EAAajK,EAAOp1C,EAAOq+C,EAAQ,GACvClvB,EAAMzG,IAAI02B,EAAUC,MAGpBxB,EAAYx8C,EAAQ08C,IACtB18C,EAAO5B,SAAQ,SAASO,GACtB,IAAIs/C,EAAalK,EAAOp1C,EAAOq+C,EAAQ,GACvClvB,EAAM7a,IAAIgrC,MAIAj+C,EAAQ,CACpB,IAAIyD,EACA65C,IACF75C,EAAQpG,OAAOK,yBAAyB4/C,EAAOt/C,IAG7CyF,GAAsB,MAAbA,EAAM4jB,MAGnByG,EAAM9vB,GAAK+1C,EAAO/zC,EAAOhC,GAAIg/C,EAAQ,IAGvC,GAAI3/C,OAAOC,sBACT,KAAIC,EAAUF,OAAOC,sBAAsB0C,GAC3C,IAAShC,EAAI,EAAGA,EAAIT,EAAQW,OAAQF,IAAK,CAGvC,IAAIkgD,EAAS3gD,EAAQS,GACjB8kC,EAAazlC,OAAOK,yBAAyBsC,EAAQk+C,KACrDpb,GAAeA,EAAWnlC,YAAes/C,KAG7CnvB,EAAMowB,GAAUnK,EAAO/zC,EAAOk+C,GAASlB,EAAQ,GAC1Cla,EAAWnlC,YACdN,OAAOoB,eAAeqvB,EAAOowB,EAAQ,CACnCvgD,YAAY,MAMpB,GAAIs/C,EACF,KAAIkB,EAAmB9gD,OAAO+gD,oBAAoBp+C,GAClD,IAAShC,EAAI,EAAGA,EAAImgD,EAAiBjgD,OAAQF,IAAK,CAChD,IAAIqgD,EAAeF,EAAiBngD,GAChC8kC,EAAazlC,OAAOK,yBAAyBsC,EAAQq+C,GACrDvb,GAAcA,EAAWnlC,aAG7BmwB,EAAMuwB,GAAgBtK,EAAO/zC,EAAOq+C,GAAerB,EAAQ,GAC3D3/C,OAAOoB,eAAeqvB,EAAOuwB,EAAc,CACzC1gD,YAAY,MAKlB,OAAOmwB,EAGT,MAxIuB,oBAAZivB,IACTA,GAAW,GAEO,oBAATC,IACTA,EAAQh6C,KAoIH+wC,EAAO/zC,EAAQg9C,GAqBxB,SAASsB,EAAWhkB,GAClB,OAAOj9B,OAAO0d,UAAUta,SAASyE,KAAKo1B,GAIxC,SAASujB,EAASvjB,GAChB,MAAoB,kBAANA,GAAoC,kBAAlBgkB,EAAWhkB,GAI7C,SAASojB,EAAUpjB,GACjB,MAAoB,kBAANA,GAAoC,mBAAlBgkB,EAAWhkB,GAI7C,SAASqjB,EAAWrjB,GAClB,MAAoB,kBAANA,GAAoC,oBAAlBgkB,EAAWhkB,GAI7C,SAASsjB,EAAiB/mB,GACxB,IAAItxB,EAAQ,GAIZ,OAHIsxB,EAAGxsB,SAAQ9E,GAAS,KACpBsxB,EAAGrxB,aAAYD,GAAS,KACxBsxB,EAAGpxB,YAAWF,GAAS,KACpBA,EAIT,OAxCAk9B,EAAM8b,eAAiB,SAAwBv+C,GAC7C,GAAe,OAAXA,EACF,OAAO,KAET,IAAIqY,EAAI,aAER,OADAA,EAAE0C,UAAY/a,EACP,IAAIqY,GAQboqB,EAAM6b,WAAaA,EAKnB7b,EAAMob,SAAWA,EAKjBpb,EAAMib,UAAYA,EAKlBjb,EAAMkb,WAAaA,EASnBlb,EAAMmb,iBAAmBA,EAElBnb,EA3PK,GA8PU,kBAAXjgC,GAAuBA,EAAOC,UACvCD,EAAOC,QAAUggC,IAMb,SAAUjgC,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAI4nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCyK,EAAWlU,EAAoB,GAE/BmU,EAAY7K,EAAuB4K,GAEnC6D,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAEjCpO,EAAS3J,EAAoB,IAE7B4J,EAAUN,EAAuBK,GAEjC6P,EAAQxZ,EAAoB,IAE5ByZ,EAASnQ,EAAuBkQ,GAEhC6K,EAAarkB,EAAoB,IAEjCskB,EAAchb,EAAuB+a,GAEzC,SAAS/a,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,SAASga,EAAOjhB,GACd,OAAOA,aAAgB0U,EAAQ1kB,SAAWgQ,aAAgByU,EAAOvP,WAGnE,IAAI3G,EAAS,SAAU2iB,GAGrB,SAAS3iB,EAAO6I,EAAS/sB,GACvBssB,EAAgBvhC,KAAMm5B,GAEtB,IAAIzpB,EAAQ+xB,EAA2BzhC,MAAOm5B,EAAOY,WAAav/B,OAAOimC,eAAetH,IAAS92B,KAAKrC,KAAMgiC,IAa5G,OAXAtyB,EAAMw1B,QAAUjwB,EAAOiwB,QACnBn1B,MAAMuiB,QAAQrd,EAAOmwB,aACvB11B,EAAM01B,UAAYnwB,EAAOmwB,UAAUra,QAAO,SAAUqa,EAAWpmC,GAE7D,OADAomC,EAAUpmC,IAAU,EACbomC,IACN,KAGL11B,EAAMsyB,QAAQzkB,iBAAiB,mBAAmB,eAClD7N,EAAM+gC,WACN/gC,EAAMkX,SACClX,EA0KT,OA5LAiyB,EAAUxI,EAAQ2iB,GAqBlB9b,EAAa7G,EAAQ,CAAC,CACpB39B,IAAK,aACLM,MAAO,WACLkE,KAAK+7C,OAAQ,IAEd,CACDvgD,IAAK,WACLM,MAAO,WACLkE,KAAK+7C,OAAQ,EACb/7C,KAAKywC,aAEN,CACDj1C,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,GAC9B,IAAI2gD,EAAQh8C,KAAK4+B,KAAK37B,GAClBg5C,EAASvY,EAAesY,EAAO,GAC/B9E,EAAQ+E,EAAO,GACf75B,EAAS65B,EAAO,GAEhBC,EAASl8C,KAAK4+B,KAAK37B,EAAQ5H,GAC3B8gD,EAASzY,EAAewY,EAAQ,GAChC/E,EAAOgF,EAAO,GAGlB,GADA9b,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAO5H,GACpG,MAAR87C,GAAgBD,IAAUC,GAAQ/0B,EAAS,EAAG,CAChD,GAAI80B,aAAiB7H,EAAOvP,YAAcqX,aAAgB9H,EAAOvP,WAE/D,YADA9/B,KAAKywC,WAGP,GAAIyG,aAAiBnG,EAAOnmB,QAAS,CACnC,IAAImlB,EAAemH,EAAMnH,aAAamH,EAAM77C,UAAU,GACtD,GAAI00C,GAAgB,IAClBmH,EAAQA,EAAMp5C,MAAMiyC,EAAe,GAC/BmH,IAAUC,GAEZ,YADAn3C,KAAKywC,gBAIJ,GAAI0G,aAAgBpG,EAAOnmB,QAAS,CACzC,IAAIwxB,EAAgBjF,EAAKpH,aAAa,GAClCqM,GAAiB,GACnBjF,EAAKr5C,MAAMs+C,EAAgB,GAG/B,IAAIj4C,EAAMgzC,EAAKz2C,SAAS0sB,gBAAgB8T,EAAQtW,QAAU,KAAOusB,EAAKz2C,SAAS0sB,KAC/E8pB,EAAM7K,aAAa8K,EAAMhzC,GACzB+yC,EAAM7mC,SAERrQ,KAAKywC,aAEN,CACDj1C,IAAK,SACLM,MAAO,WACL,IAAIsrC,IAAUhsC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,KAAmBA,UAAU,GAE7E4E,KAAKgiC,QAAQtwB,aAAa,kBAAmB01B,KAE9C,CACD5rC,IAAK,WACLM,MAAO,SAAkBmH,EAAO5H,EAAQ2D,EAAQlD,IACxB,MAAlBkE,KAAKolC,WAAsBplC,KAAKolC,UAAUpmC,MAC9CqhC,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAO5H,EAAQ2D,EAAQlD,GAChIkE,KAAKywC,cAEN,CACDj1C,IAAK,WACLM,MAAO,SAAkBmH,EAAOnH,EAAOsmC,GACrC,GAAW,MAAPA,GAAiC,MAAlBpiC,KAAKolC,WAAsBplC,KAAKolC,UAAUtpC,GAA7D,CACA,GAAImH,GAASjD,KAAK3E,SAChB,GAAW,MAAP+mC,GAAoF,MAArEpB,EAAYpW,QAAQiO,MAAM/8B,EAAOklC,EAAYpW,QAAQ8N,MAAMsC,OAAgB,CAC5F,IAAIJ,EAAOoG,EAAYpW,QAAQ+N,OAAO34B,KAAKmjC,QAAQC,cACnDpjC,KAAK2R,YAAYipB,GACN,MAAPwH,GAAetmC,EAAMumC,SAAS,QAChCvmC,EAAQA,EAAMsC,MAAM,GAAI,IAE1Bw8B,EAAK2H,SAAS,EAAGzmC,EAAOsmC,OACnB,CACL,IAAIiH,EAAQrI,EAAYpW,QAAQ+N,OAAO78B,EAAOsmC,GAC9CpiC,KAAK2R,YAAY03B,QAGnBhJ,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMiD,EAAOnH,EAAOsmC,GAEzHpiC,KAAKywC,cAEN,CACDj1C,IAAK,eACLM,MAAO,SAAsB8+B,EAAMz2B,GACjC,GAAIy2B,EAAKuI,QAAQtI,QAAUmG,EAAYpW,QAAQ8N,MAAM2gB,YAAa,CAChE,IAAIjoC,EAAU4vB,EAAYpW,QAAQ+N,OAAO34B,KAAKmjC,QAAQC,cACtDhyB,EAAQO,YAAYipB,GACpBA,EAAOxpB,EAETivB,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,eAAgBlY,MAAMqC,KAAKrC,KAAM46B,EAAMz2B,KAEpH,CACD3I,IAAK,OACLM,MAAO,SAAcmH,GACnB,OAAOjD,KAAK+R,KAAK9O,GAAOs5B,OAAS,CAAC,MAAO,KAE1C,CACD/gC,IAAK,OACLM,MAAO,SAAcmH,GACnB,OAAIA,IAAUjD,KAAK3E,SACV2E,KAAK4+B,KAAK37B,EAAQ,GAEpBjD,KAAK2vC,WAAWkM,EAAQ54C,KAEhC,CACDzH,IAAK,QACLM,MAAO,WACL,IAAImH,EAAQ7H,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK83B,OAAO6V,UAEpFsT,EAAW,SAASA,EAASzhB,EAAM33B,EAAO5H,GAC5C,IAAIynC,EAAQ,GACRoV,EAAa78C,EASjB,OARAu/B,EAAKl6B,SAASs3C,UAAU/0C,EAAO5H,GAAQ,SAAU4vB,EAAOhoB,EAAO5H,GACzDwgD,EAAO5wB,GACT6X,EAAM/nC,KAAKkwB,GACFA,aAAiB+V,EAAYpW,QAAQmO,YAC9C+J,EAAQA,EAAMzlC,OAAOg/C,EAASpxB,EAAOhoB,EAAOi1C,KAE9CA,GAAc78C,KAETynC,GAET,OAAOuZ,EAASr8C,KAAMiD,EAAO5H,KAE9B,CACDG,IAAK,WACLM,MAAO,WACL,IAAIoqC,EAAY9qC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAChF6nC,EAAU7nC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,IAE/D,IAAf4E,KAAK+7C,QACT1b,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMkmC,EAAWjD,GAChHiD,EAAU7qC,OAAS,GACrB2E,KAAKklC,QAAQwG,KAAKD,EAAU7gB,QAAQib,OAAO6H,gBAAiBxH,EAAWjD,MAG1E,CACDznC,IAAK,OACLM,MAAO,SAAcmH,GACnB,OAAOo9B,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,OAAQlY,MAAMqC,KAAKrC,KAAMiD,GAAO7E,MAAM,KAE1H,CACD5C,IAAK,SACLM,MAAO,SAAgBoqC,GACrB,IAAmB,IAAflmC,KAAK+7C,MAAT,CACA,IAAIzgD,EAASmwC,EAAU7gB,QAAQ4c,QAAQmD,KACd,kBAAdzE,IACT5qC,EAAS4qC,GAENn2B,MAAMuiB,QAAQ4T,KACjBA,EAAYlmC,KAAKs8C,SAASC,eAExBrW,EAAU7qC,OAAS,GACrB2E,KAAKklC,QAAQwG,KAAKD,EAAU7gB,QAAQib,OAAO4H,qBAAsBnyC,EAAQ4qC,GAE3E7F,EAAKlH,EAAOjhB,UAAU6hB,WAAav/B,OAAOimC,eAAetH,EAAOjhB,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMkmC,EAAU7oC,OAAO,KACpH6oC,EAAU7qC,OAAS,GACrB2E,KAAKklC,QAAQwG,KAAKD,EAAU7gB,QAAQib,OAAOI,cAAe3qC,EAAQ4qC,QAKjE/M,EA7LI,CA8LX6H,EAAYpW,QAAQuO,QAEtBA,EAAOmC,SAAW,SAClBnC,EAAOjpB,UAAY,YACnBipB,EAAO+B,QAAU,MACjB/B,EAAOiK,aAAe,QACtBjK,EAAOkK,gBAAkB,CAACiM,EAAQ1kB,QAASykB,EAAOvP,WAAY8b,EAAYhxB,SAE1EhrB,EAAQgrB,QAAUuO,GAIZ,SAAUx5B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQ48C,SAAW58C,EAAQgrB,aAAUxoB,EAErC,IAAIohC,EAA4B,oBAAXC,QAAoD,kBAApBA,OAAOvG,SAAwB,SAAUrhC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAX4nC,QAAyB5nC,EAAIo+B,cAAgBwJ,QAAU5nC,IAAQ4nC,OAAOvrB,UAAY,gBAAkBrc,GAElQ6nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfgR,EAAS5Z,EAAoB,IAE7B6Z,EAAUvQ,EAAuBsQ,GAEjCE,EAAa9Z,EAAoB,IAEjC+Z,EAAczQ,EAAuBwQ,GAErC1Q,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAElCG,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtC+P,EAAMtZ,EAAoB,IAE1BuZ,EAAOjQ,EAAuBgQ,GAE9B7P,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC0b,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCjY,EAAUlN,EAAoB,IAE9BmN,EAAW7D,EAAuB4D,GAElCJ,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAEtC,SAASxD,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAASJ,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAE3M,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI+C,GAAQ,EAAIH,EAAS7Z,SAAS,kBAE9B4xB,EAAW,OAAOt5C,KAAKmH,UAAUsyC,UAAY,UAAY,UAEzDC,EAAW,SAAUC,GAgBvB,SAASD,EAAS/O,EAAOp5B,GACvB8sB,EAAgBvhC,KAAM48C,GAEtB,IAAIltC,EAAQ+xB,EAA2BzhC,MAAO48C,EAAS7iB,WAAav/B,OAAOimC,eAAemc,IAAWv6C,KAAKrC,KAAM6tC,EAAOp5B,IAyBvH,OAvBA/E,EAAMotC,SAAW,GACjBtiD,OAAOD,KAAKmV,EAAM+E,QAAQqoC,UAAUvhD,SAAQ,SAAUsB,IACvC,kBAATA,GAAsD,MAA1BgxC,EAAM1I,OAAOC,WAAsByI,EAAM1I,OAAOC,UAAU,UAGtF11B,EAAM+E,QAAQqoC,SAASjgD,IACzB6S,EAAMqtC,WAAWrtC,EAAM+E,QAAQqoC,SAASjgD,OAG5C6S,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAKyiD,MAAO/0B,SAAU,MAAQg1B,GAC/DvtC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAKyiD,MAAOE,QAAS,KAAMt1B,QAAS,KAAMu1B,OAAQ,OAAQ,eACvF,WAAWj6C,KAAKmH,UAAUC,YAE5BoF,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAK6iD,WAAa,CAAElI,WAAW,GAAQmI,GACxE3tC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAKikC,QAAU,CAAE0W,WAAW,GAAQoI,KAErE5tC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAK6iD,WAAa,CAAElI,WAAW,EAAMqI,OAAQ,QAAUF,GACxF3tC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAKikC,QAAU,CAAE0W,WAAW,EAAMpC,OAAQ,QAAUwK,IAEvF5tC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAK6iD,WAAa,CAAElI,WAAW,GAASsI,GACzE9tC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAKikC,QAAU,CAAE0W,WAAW,GAASsI,GACtE9tC,EAAMqtC,WAAW,CAAEvhD,IAAKohD,EAASriD,KAAK6iD,UAAWD,OAAQ,KAAMv1B,QAAS,KAAMs1B,QAAS,KAAMj1B,SAAU,MAAQ,CAAEitB,WAAW,EAAM9yB,OAAQ,GAAKi7B,GAC/I3tC,EAAM+tC,SACC/tC,EA+FT,OA1IAiyB,EAAUib,EAAUC,GAEpB7c,EAAa4c,EAAU,KAAM,CAAC,CAC5BphD,IAAK,QACLM,MAAO,SAAe6hB,EAAK+/B,GAEzB,OADAA,EAAUC,EAAUD,IAChB,CAAC,SAAU,UAAW,UAAW,YAAYn3B,MAAK,SAAU/qB,GAC9D,QAASkiD,EAAQliD,KAASmiB,EAAIniB,IAAyB,OAAjBkiD,EAAQliD,OAIzCkiD,EAAQliD,OAASmiB,EAAI8R,OAAS9R,EAAI2J,aAmC7C0Y,EAAa4c,EAAU,CAAC,CACtBphD,IAAK,aACLM,MAAO,SAAoBN,GACzB,IAAIynC,EAAU7nC,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAC9EgiB,EAAUhiB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAE9EsiD,EAAUC,EAAUniD,GACxB,GAAe,MAAXkiD,GAAkC,MAAfA,EAAQliD,IAC7B,OAAOopC,EAAMr5B,KAAK,4CAA6CmyC,GAE1C,oBAAZza,IACTA,EAAU,CAAE7lB,QAAS6lB,IAEA,oBAAZ7lB,IACTA,EAAU,CAAEA,QAASA,IAEvBsgC,GAAU,EAAI/c,EAAS/V,SAAS8yB,EAASza,EAAS7lB,GAClDpd,KAAK88C,SAASY,EAAQliD,KAAOwE,KAAK88C,SAASY,EAAQliD,MAAQ,GAC3DwE,KAAK88C,SAASY,EAAQliD,KAAKT,KAAK2iD,KAEjC,CACDliD,IAAK,SACLM,MAAO,WACL,IAAI4mC,EAAS1iC,KAEbA,KAAK6tC,MAAM3W,KAAK3Z,iBAAiB,WAAW,SAAUI,GACpD,IAAIA,EAAIigC,iBAAR,CACA,IAAInuB,EAAQ9R,EAAI8R,OAAS9R,EAAI2J,QACzBw1B,GAAYpa,EAAOoa,SAASrtB,IAAU,IAAI90B,QAAO,SAAU+iD,GAC7D,OAAOd,EAASt6C,MAAMqb,EAAK+/B,MAE7B,GAAwB,IAApBZ,EAASzhD,OAAb,CACA,IAAIwyB,EAAQ6U,EAAOmL,MAAMnG,eACzB,GAAa,MAAT7Z,GAAkB6U,EAAOmL,MAAMzE,WAAnC,CAEA,IAAIyU,EAAiBnb,EAAOmL,MAAMiQ,QAAQjwB,EAAM5qB,OAC5C86C,EAAkBra,EAAema,EAAgB,GACjDjf,EAAOmf,EAAgB,GACvB37B,EAAS27B,EAAgB,GAEzBC,EAAiBtb,EAAOmL,MAAMoQ,QAAQpwB,EAAM5qB,OAC5Ci7C,EAAkBxa,EAAesa,EAAgB,GACjDG,EAAYD,EAAgB,GAC5BE,EAAcF,EAAgB,GAE9BjhD,EAAwB,IAAjB4wB,EAAMxyB,OAAe,CAAC8iD,EAAWC,GAAe1b,EAAOmL,MAAMoQ,QAAQpwB,EAAM5qB,MAAQ4qB,EAAMxyB,QAChGgjD,EAAQ3a,EAAezmC,EAAM,GAC7BqhD,EAAUD,EAAM,GAChBE,EAAYF,EAAM,GAElBG,EAAaL,aAAqBnd,EAAYpW,QAAQ0O,KAAO6kB,EAAUriD,QAAQsC,MAAM,EAAGggD,GAAe,GACvGK,EAAaH,aAAmBtd,EAAYpW,QAAQ0O,KAAOglB,EAAQxiD,QAAQsC,MAAMmgD,GAAa,GAC9FG,EAAa,CACfxJ,UAA4B,IAAjBrnB,EAAMxyB,OACjBsjD,MAAwB,IAAjB9wB,EAAMxyB,QAAgBujC,EAAKvjC,UAAY,EAC9C2D,OAAQ0jC,EAAOmL,MAAM/E,UAAUjb,GAC/BzL,OAAQA,EACRm7B,OAAQiB,EACR1L,OAAQ2L,GAENG,EAAY9B,EAASv2B,MAAK,SAAUm3B,GACtC,GAAyB,MAArBA,EAAQxI,WAAqBwI,EAAQxI,YAAcwJ,EAAWxJ,UAAW,OAAO,EACpF,GAAqB,MAAjBwI,EAAQiB,OAAiBjB,EAAQiB,QAAUD,EAAWC,MAAO,OAAO,EACxE,GAAsB,MAAlBjB,EAAQt7B,QAAkBs7B,EAAQt7B,SAAWs8B,EAAWt8B,OAAQ,OAAO,EAC3E,GAAIrS,MAAMuiB,QAAQorB,EAAQ1+C,SAExB,GAAI0+C,EAAQ1+C,OAAOuzB,OAAM,SAAU11B,GACjC,OAAkC,MAA3B6hD,EAAW1/C,OAAOnC,MAEzB,OAAO,OAEJ,GAAgC,WAA5B2mC,EAAQka,EAAQ1+C,UAEpBxE,OAAOD,KAAKmjD,EAAQ1+C,QAAQuzB,OAAM,SAAU11B,GAC/C,OAA6B,IAAzB6gD,EAAQ1+C,OAAOnC,GAAkD,MAA3B6hD,EAAW1/C,OAAOnC,IAC/B,IAAzB6gD,EAAQ1+C,OAAOnC,GAAmD,MAA3B6hD,EAAW1/C,OAAOnC,IACtD,EAAIw0C,EAAYzmB,SAAS8yB,EAAQ1+C,OAAOnC,GAAO6hD,EAAW1/C,OAAOnC,OAExE,OAAO,EAGX,QAAsB,MAAlB6gD,EAAQH,SAAmBG,EAAQH,OAAOr6C,KAAKw7C,EAAWnB,aACxC,MAAlBG,EAAQ5K,SAAmB4K,EAAQ5K,OAAO5vC,KAAKw7C,EAAW5L,WACH,IAApD4K,EAAQtgC,QAAQ/a,KAAKqgC,EAAQ7U,EAAO6wB,OAEzCE,GACFjhC,EAAI8J,2BAMLm1B,EA3IM,CA4IbvY,EAASzZ,SAqLX,SAASi0B,EAAsBrjD,EAAKysB,GAClC,IAAI62B,EAEAC,EAAQvjD,IAAQohD,EAASriD,KAAKykD,KAAO,SAAW,SACpD,OAAOF,EAAQ,CACbtjD,IAAKA,EACLysB,SAAUA,EACVk1B,OAAQ,MACP1hD,EAAgBqjD,EAAOC,EAAO,MAAOtjD,EAAgBqjD,EAAO,WAAW,SAAiBjxB,GACzF,IAAI5qB,EAAQ4qB,EAAM5qB,MACdzH,IAAQohD,EAASriD,KAAK0kD,QACxBh8C,GAAS4qB,EAAMxyB,OAAS,GAG1B,IAAI6jD,EAAkBl/C,KAAK6tC,MAAMoQ,QAAQh7C,GACrCk8C,EAAkBzb,EAAewb,EAAiB,GAClDrc,EAAOsc,EAAgB,GAE3B,QAAMtc,aAAgB7B,EAAYpW,QAAQsO,SACtC19B,IAAQohD,EAASriD,KAAKykD,KACpB/2B,EACFjoB,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAG4qB,EAAMxyB,OAAS,EAAGqhD,EAAQ9xB,QAAQ4c,QAAQmD,MAEnF3qC,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAGy5C,EAAQ9xB,QAAQ4c,QAAQmD,MAG/D1iB,EACFjoB,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAO4qB,EAAMxyB,OAAS,EAAGqhD,EAAQ9xB,QAAQ4c,QAAQmD,MAE/E3qC,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ4qB,EAAMxyB,OAAS,EAAGqhD,EAAQ9xB,QAAQ4c,QAAQmD,OAG7E,MACLmU,EAGN,SAASzB,EAAgBxvB,EAAOoV,GAC9B,KAAoB,IAAhBpV,EAAM5qB,OAAejD,KAAK6tC,MAAMnF,aAAe,GAAnD,CAEA,IAAI0W,EAAmBp/C,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,OAC5Co8C,EAAmB3b,EAAe0b,EAAkB,GACpDxgB,EAAOygB,EAAiB,GAExB11B,EAAU,GACd,GAAuB,IAAnBsZ,EAAQ7gB,OAAc,CACxB,IAAIk9B,EAAmBt/C,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,MAAQ,GACpDs8C,EAAmB7b,EAAe4b,EAAkB,GACpD9O,EAAO+O,EAAiB,GAE5B,GAAY,MAAR/O,GAAgBA,EAAKn1C,SAAW,EAAG,CACrC,IAAImkD,EAAa5gB,EAAKjV,UAClB81B,EAAcz/C,KAAK6tC,MAAM/E,UAAUjb,EAAM5qB,MAAQ,EAAG,GACxD0mB,EAAUknB,EAAKjmB,QAAQwP,WAAWsB,KAAK8jB,EAAYC,IAAgB,IAIvE,IAAIpkD,EAAS,kCAAkC6H,KAAK+/B,EAAQsa,QAAU,EAAI,EAC1Ev9C,KAAK6tC,MAAM1G,WAAWtZ,EAAM5qB,MAAQ5H,EAAQA,EAAQqhD,EAAQ9xB,QAAQ4c,QAAQmD,MACxEnwC,OAAOD,KAAKovB,GAAStuB,OAAS,GAChC2E,KAAK6tC,MAAMjG,WAAW/Z,EAAM5qB,MAAQ5H,EAAQA,EAAQsuB,EAAS+yB,EAAQ9xB,QAAQ4c,QAAQmD,MAEvF3qC,KAAK6tC,MAAMvsB,SAGb,SAASg8B,EAAazvB,EAAOoV,GAE3B,IAAI5nC,EAAS,kCAAkC6H,KAAK+/B,EAAQ6P,QAAU,EAAI,EAC1E,KAAIjlB,EAAM5qB,OAASjD,KAAK6tC,MAAMnF,YAAcrtC,GAA5C,CACA,IAAIsuB,EAAU,GACV+1B,EAAa,EAEbC,EAAmB3/C,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,OAC5C28C,EAAmBlc,EAAeic,EAAkB,GACpD/gB,EAAOghB,EAAiB,GAE5B,GAAI3c,EAAQ7gB,QAAUwc,EAAKvjC,SAAW,EAAG,CACvC,IAAIwkD,EAAmB7/C,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,MAAQ,GACpD68C,EAAmBpc,EAAemc,EAAkB,GACpDxiB,EAAOyiB,EAAiB,GAE5B,GAAIziB,EAAM,CACR,IAAImiB,EAAa5gB,EAAKjV,UAClBo2B,EAAc//C,KAAK6tC,MAAM/E,UAAUjb,EAAM5qB,MAAO,GACpD0mB,EAAUknB,EAAKjmB,QAAQwP,WAAWsB,KAAK8jB,EAAYO,IAAgB,GACnEL,EAAariB,EAAKhiC,UAGtB2E,KAAK6tC,MAAM1G,WAAWtZ,EAAM5qB,MAAO5H,EAAQqhD,EAAQ9xB,QAAQ4c,QAAQmD,MAC/DnwC,OAAOD,KAAKovB,GAAStuB,OAAS,GAChC2E,KAAK6tC,MAAMjG,WAAW/Z,EAAM5qB,MAAQy8C,EAAa,EAAGrkD,EAAQsuB,EAAS+yB,EAAQ9xB,QAAQ4c,QAAQmD,OAIjG,SAAS6S,EAAkB3vB,GACzB,IAAIiV,EAAQ9iC,KAAK6tC,MAAMwO,SAASxuB,GAC5BlE,EAAU,GACd,GAAImZ,EAAMznC,OAAS,EAAG,CACpB,IAAI2kD,EAAeld,EAAM,GAAGnZ,UACxBs2B,EAAcnd,EAAMA,EAAMznC,OAAS,GAAGsuB,UAC1CA,EAAUknB,EAAKjmB,QAAQwP,WAAWsB,KAAKukB,EAAaD,IAAiB,GAEvEhgD,KAAK6tC,MAAM1G,WAAWtZ,EAAO6uB,EAAQ9xB,QAAQ4c,QAAQmD,MACjDnwC,OAAOD,KAAKovB,GAAStuB,OAAS,GAChC2E,KAAK6tC,MAAMjG,WAAW/Z,EAAM5qB,MAAO,EAAG0mB,EAAS+yB,EAAQ9xB,QAAQ4c,QAAQmD,MAEzE3qC,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAOy5C,EAAQ9xB,QAAQ4c,QAAQO,QAC7D/nC,KAAK6tC,MAAMvsB,QAGb,SAAS27B,EAAYpvB,EAAOoV,GAC1B,IAAI+D,EAAShnC,KAET6tB,EAAMxyB,OAAS,GACjB2E,KAAK6tC,MAAM1I,OAAO0K,SAAShiB,EAAM5qB,MAAO4qB,EAAMxyB,QAEhD,IAAI6kD,EAAc1lD,OAAOD,KAAK0oC,EAAQjkC,QAAQ+rB,QAAO,SAAUm1B,EAAalhD,GAI1E,OAHIgiC,EAAYpW,QAAQiO,MAAM75B,EAAQgiC,EAAYpW,QAAQ8N,MAAMsC,SAAWjrB,MAAMuiB,QAAQ2Q,EAAQjkC,OAAOA,MACtGkhD,EAAYlhD,GAAUikC,EAAQjkC,OAAOA,IAEhCkhD,IACN,IACHlgD,KAAK6tC,MAAMlE,WAAW9b,EAAM5qB,MAAO,KAAMi9C,EAAaxD,EAAQ9xB,QAAQ4c,QAAQmD,MAG9E3qC,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAGy5C,EAAQ9xB,QAAQ4c,QAAQO,QACjE/nC,KAAK6tC,MAAMvsB,QACX9mB,OAAOD,KAAK0oC,EAAQjkC,QAAQzD,SAAQ,SAAUsB,GACnB,MAArBqjD,EAAYrjD,KACZkT,MAAMuiB,QAAQ2Q,EAAQjkC,OAAOnC,KACpB,SAATA,GACJmqC,EAAO6G,MAAM7uC,OAAOnC,EAAMomC,EAAQjkC,OAAOnC,GAAO6/C,EAAQ9xB,QAAQ4c,QAAQmD,UAI5E,SAASwV,EAAqBC,GAC5B,MAAO,CACL5kD,IAAKohD,EAASriD,KAAKo2C,IACnB1oB,UAAWm4B,EACXphD,OAAQ,CAAE,cAAc,GACxBoe,QAAS,SAAiByQ,GACxB,IAAI2hB,EAAYxO,EAAYpW,QAAQiO,MAAM,cACtC51B,EAAQ4qB,EAAM5qB,MACd5H,EAASwyB,EAAMxyB,OAEfglD,EAAwBrgD,KAAK6tC,MAAM1I,OAAOwK,WAAWH,EAAWvsC,GAChEq9C,EAAyB5c,EAAe2c,EAAuB,GAC/D/d,EAAQge,EAAuB,GAC/Bl+B,EAASk+B,EAAuB,GAEpC,GAAa,MAAThe,EAAJ,CACA,IAAIie,EAAcvgD,KAAK6tC,MAAM2S,SAASle,GAClCvF,EAAQuF,EAAMyN,aAAa3tB,GAAQ,GAAQ,EAC3C4a,EAAMsF,EAAMyN,aAAawQ,EAAcn+B,EAAS/mB,GAChDynC,EAAQR,EAAMN,QAAQvxB,YAAYrS,MAAM2+B,EAAOC,GAAKl/B,MAAM,MAC9DskB,EAAS,EACT0gB,EAAMvnC,SAAQ,SAAUqjC,EAAMzjC,GACxBilD,GACF9d,EAAMC,SAASxF,EAAQ3a,EAAQotB,EAAUmB,KACzCvuB,GAAUotB,EAAUmB,IAAIt1C,OACd,IAANF,EACF8H,GAASusC,EAAUmB,IAAIt1C,OAEvBA,GAAUm0C,EAAUmB,IAAIt1C,QAEjBujC,EAAKiI,WAAW2I,EAAUmB,OACnCrO,EAAMuN,SAAS9S,EAAQ3a,EAAQotB,EAAUmB,IAAIt1C,QAC7C+mB,GAAUotB,EAAUmB,IAAIt1C,OACd,IAANF,EACF8H,GAASusC,EAAUmB,IAAIt1C,OAEvBA,GAAUm0C,EAAUmB,IAAIt1C,QAG5B+mB,GAAUwc,EAAKvjC,OAAS,KAE1B2E,KAAK6tC,MAAMxH,OAAOqW,EAAQ9xB,QAAQ4c,QAAQmD,MAC1C3qC,KAAK6tC,MAAM/F,aAAa7kC,EAAO5H,EAAQqhD,EAAQ9xB,QAAQ4c,QAAQO,WAKrE,SAAS0Y,EAAkBzhD,GACzB,MAAO,CACLxD,IAAKwD,EAAO,GAAGb,cACfuiD,UAAU,EACVtjC,QAAS,SAAiByQ,EAAOoV,GAC/BjjC,KAAK6tC,MAAM7uC,OAAOA,GAASikC,EAAQjkC,OAAOA,GAAS09C,EAAQ9xB,QAAQ4c,QAAQmD,QAKjF,SAASgT,EAAUD,GACjB,GAAuB,kBAAZA,GAA2C,kBAAZA,EACxC,OAAOC,EAAU,CAAEniD,IAAKkiD,IAK1B,GAH0E,YAAlD,qBAAZA,EAA0B,YAAcla,EAAQka,MAC1DA,GAAU,EAAIvM,EAAQvmB,SAAS8yB,GAAS,IAEf,kBAAhBA,EAAQliD,IACjB,GAAgD,MAA5CohD,EAASriD,KAAKmjD,EAAQliD,IAAI2C,eAC5Bu/C,EAAQliD,IAAMohD,EAASriD,KAAKmjD,EAAQliD,IAAI2C,mBACnC,IAA2B,IAAvBu/C,EAAQliD,IAAIH,OAGrB,OAAO,KAFPqiD,EAAQliD,IAAMkiD,EAAQliD,IAAI2C,cAAcwiD,WAAW,GASvD,OAJIjD,EAAQgD,WACVhD,EAAQlB,GAAYkB,EAAQgD,gBACrBhD,EAAQgD,UAEVhD,EAtYTd,EAASriD,KAAO,CACd6iD,UAAW,EACXzM,IAAK,EACLqM,MAAO,GACP4D,OAAQ,GACR5B,KAAM,GACN6B,GAAI,GACJ5B,MAAO,GACP6B,KAAM,GACNtiB,OAAQ,IAGVoe,EAAS/R,SAAW,CAClBiS,SAAU,CACR,KAAQ2D,EAAkB,QAC1B,OAAUA,EAAkB,UAC5B,UAAaA,EAAkB,aAC/B,OAAU,CAERjlD,IAAKohD,EAASriD,KAAKo2C,IACnB3xC,OAAQ,CAAC,aAAc,SAAU,QACjCoe,QAAS,SAAiByQ,EAAOoV,GAC/B,GAAIA,EAAQiS,WAAgC,IAAnBjS,EAAQ7gB,OAAc,OAAO,EACtDpiB,KAAK6tC,MAAM7uC,OAAO,SAAU,KAAM09C,EAAQ9xB,QAAQ4c,QAAQmD,QAG9D,QAAW,CACTnvC,IAAKohD,EAASriD,KAAKo2C,IACnB1oB,UAAU,EACVjpB,OAAQ,CAAC,aAAc,SAAU,QAEjCoe,QAAS,SAAiByQ,EAAOoV,GAC/B,GAAIA,EAAQiS,WAAgC,IAAnBjS,EAAQ7gB,OAAc,OAAO,EACtDpiB,KAAK6tC,MAAM7uC,OAAO,SAAU,KAAM09C,EAAQ9xB,QAAQ4c,QAAQmD,QAG9D,oBAAqB,CACnBnvC,IAAKohD,EAASriD,KAAK6iD,UACnBlI,WAAW,EACXjtB,SAAU,KACVi1B,QAAS,KACTt1B,QAAS,KACTu1B,OAAQ,KACRn+C,OAAQ,CAAC,SAAU,QACnBojB,OAAQ,EACRhF,QAAS,SAAiByQ,EAAOoV,GACF,MAAzBA,EAAQjkC,OAAOohD,OACjBpgD,KAAK6tC,MAAM7uC,OAAO,SAAU,KAAM09C,EAAQ9xB,QAAQ4c,QAAQmD,MAC1B,MAAvB1H,EAAQjkC,OAAOy0C,MACxBzzC,KAAK6tC,MAAM7uC,OAAO,QAAQ,EAAO09C,EAAQ9xB,QAAQ4c,QAAQmD,QAI/D,oBAAqBwV,GAAqB,GAC1C,qBAAsBA,GAAqB,GAC3C,aAAc,CACZ3kD,IAAKohD,EAASriD,KAAKo2C,IACnB1oB,UAAU,EACVitB,WAAW,EACXqI,OAAQ,MACRngC,QAAS,SAAiByQ,GACxB7tB,KAAK6tC,MAAM1G,WAAWtZ,EAAM5qB,MAAQ,EAAG,EAAGy5C,EAAQ9xB,QAAQ4c,QAAQmD,QAGtE,IAAO,CACLnvC,IAAKohD,EAASriD,KAAKo2C,IACnBvzB,QAAS,SAAiByQ,GACxB7tB,KAAK6tC,MAAMlI,QAAQob,SACnB,IAAI7jC,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,OAAO65B,OAAOjP,EAAMxyB,QAAQ2gC,OAAO,MACvFh8B,KAAK6tC,MAAMmT,eAAe9jC,EAAOw/B,EAAQ9xB,QAAQ4c,QAAQmD,MACzD3qC,KAAK6tC,MAAMlI,QAAQob,SACnB/gD,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAGy5C,EAAQ9xB,QAAQ4c,QAAQO,UAGrE,mBAAoB,CAClBvsC,IAAKohD,EAASriD,KAAKyiD,MACnB9H,WAAW,EACXl2C,OAAQ,CAAC,QACT2/C,OAAO,EACPvhC,QAAS,SAAiByQ,EAAOoV,GAC/BjjC,KAAK6tC,MAAM7uC,OAAO,QAAQ,EAAO09C,EAAQ9xB,QAAQ4c,QAAQmD,MACrD1H,EAAQjkC,OAAOohD,QACjBpgD,KAAK6tC,MAAM7uC,OAAO,UAAU,EAAO09C,EAAQ9xB,QAAQ4c,QAAQmD,QAIjE,kBAAmB,CACjBnvC,IAAKohD,EAASriD,KAAKyiD,MACnB9H,WAAW,EACXl2C,OAAQ,CAAEy0C,KAAM,WAChBr2B,QAAS,SAAiByQ,GACxB,IAAIozB,EAAkBjhD,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,OAC3Ci+C,EAAkBxd,EAAeud,EAAiB,GAClDriB,EAAOsiB,EAAgB,GACvB9+B,EAAS8+B,EAAgB,GAEzBv3B,GAAU,EAAIgX,EAAS/V,SAAS,GAAIgU,EAAKjV,UAAW,CAAE8pB,KAAM,YAC5Dv2B,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,OAAO+4B,OAAO,KAAMrS,GAASwS,OAAOyC,EAAKvjC,SAAW+mB,EAAS,GAAG+Z,OAAO,EAAG,CAAEsX,KAAM,cACtIzzC,KAAK6tC,MAAMmT,eAAe9jC,EAAOw/B,EAAQ9xB,QAAQ4c,QAAQmD,MACzD3qC,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAGy5C,EAAQ9xB,QAAQ4c,QAAQO,QACjE/nC,KAAK6tC,MAAMvG,mBAGf,eAAgB,CACd9rC,IAAKohD,EAASriD,KAAKyiD,MACnB9H,WAAW,EACXl2C,OAAQ,CAAC,UACT8zC,OAAQ,KACR11B,QAAS,SAAiByQ,EAAOoV,GAC/B,IAAIke,EAAkBnhD,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,OAC3Cm+C,EAAkB1d,EAAeyd,EAAiB,GAClDviB,EAAOwiB,EAAgB,GACvBh/B,EAASg/B,EAAgB,GAEzBlkC,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,OAAO+4B,OAAO,KAAMiH,EAAQjkC,QAAQm9B,OAAOyC,EAAKvjC,SAAW+mB,EAAS,GAAG+Z,OAAO,EAAG,CAAEklB,OAAQ,OAC/IrhD,KAAK6tC,MAAMmT,eAAe9jC,EAAOw/B,EAAQ9xB,QAAQ4c,QAAQmD,MACzD3qC,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAGy5C,EAAQ9xB,QAAQ4c,QAAQO,QACjE/nC,KAAK6tC,MAAMvG,mBAGf,gBAAiB,CACf9rC,IAAK,IACL05C,WAAW,EACXl2C,OAAQ,CAAEy0C,MAAM,GAChB8J,OAAQ,kCACRngC,QAAS,SAAiByQ,EAAOoV,GAC/B,IAAI5nC,EAAS4nC,EAAQsa,OAAOliD,OAExBimD,EAAkBthD,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,OAC3Cs+C,EAAkB7d,EAAe4d,EAAiB,GAClD1iB,EAAO2iB,EAAgB,GACvBn/B,EAASm/B,EAAgB,GAE7B,GAAIn/B,EAAS/mB,EAAQ,OAAO,EAC5B,IAAIS,OAAQ,EACZ,OAAQmnC,EAAQsa,OAAOvnC,QACrB,IAAK,KAAK,IAAK,MACbla,EAAQ,YACR,MACF,IAAK,MACHA,EAAQ,UACR,MACF,IAAK,IAAI,IAAK,IACZA,EAAQ,SACR,MACF,QACEA,EAAQ,UAEZkE,KAAK6tC,MAAMlE,WAAW9b,EAAM5qB,MAAO,IAAKy5C,EAAQ9xB,QAAQ4c,QAAQmD,MAChE3qC,KAAK6tC,MAAMlI,QAAQob,SACnB,IAAI7jC,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,MAAQmf,GAAQ0a,OAAOzhC,EAAS,GAAG8gC,OAAOyC,EAAKvjC,SAAW,EAAI+mB,GAAQ+Z,OAAO,EAAG,CAAEsX,KAAM33C,IAC5IkE,KAAK6tC,MAAMmT,eAAe9jC,EAAOw/B,EAAQ9xB,QAAQ4c,QAAQmD,MACzD3qC,KAAK6tC,MAAMlI,QAAQob,SACnB/gD,KAAK6tC,MAAM/F,aAAaja,EAAM5qB,MAAQ5H,EAAQqhD,EAAQ9xB,QAAQ4c,QAAQO,UAG1E,YAAa,CACXvsC,IAAKohD,EAASriD,KAAKyiD,MACnB9H,WAAW,EACXl2C,OAAQ,CAAC,cACTu+C,OAAQ,QACRzK,OAAQ,QACR11B,QAAS,SAAiByQ,GACxB,IAAI2zB,EAAkBxhD,KAAK6tC,MAAMiQ,QAAQjwB,EAAM5qB,OAC3Cw+C,EAAmB/d,EAAe8d,EAAiB,GACnD5iB,EAAO6iB,EAAiB,GACxBr/B,EAASq/B,EAAiB,GAE1BvkC,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,MAAQ27B,EAAKvjC,SAAW+mB,EAAS,GAAG+Z,OAAO,EAAG,CAAE,aAAc,OAAQW,OAAO,GACjI98B,KAAK6tC,MAAMmT,eAAe9jC,EAAOw/B,EAAQ9xB,QAAQ4c,QAAQmD,QAG7D,aAAckU,EAAsBjC,EAASriD,KAAKykD,MAAM,GACxD,mBAAoBH,EAAsBjC,EAASriD,KAAKykD,MAAM,GAC9D,cAAeH,EAAsBjC,EAASriD,KAAK0kD,OAAO,GAC1D,oBAAqBJ,EAAsBjC,EAASriD,KAAK0kD,OAAO,KA0NpEr/C,EAAQgrB,QAAUgyB,EAClBh9C,EAAQ48C,SAAWA,GAIb,SAAU78C,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAI4nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjBi7B,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZN,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfa,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCM,EAAQ/J,EAAoB,GAE5BgK,EAASV,EAAuBS,GAEpC,SAAST,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI6f,EAAS,SAAU3f,GAUrB,SAAS2f,EAAO1f,EAASsD,GACvB/D,EAAgBvhC,KAAM0hD,GAEtB,IAAIhyC,EAAQ+xB,EAA2BzhC,MAAO0hD,EAAO3nB,WAAav/B,OAAOimC,eAAeihB,IAASr/C,KAAKrC,KAAMgiC,IAM5G,OAJAtyB,EAAM41B,UAAYA,EAClB51B,EAAM6kC,SAAW/jC,SAASmxC,eAAeD,EAAOxO,UAChDxjC,EAAMsyB,QAAQrwB,YAAYjC,EAAM6kC,UAChC7kC,EAAMkyC,QAAU,EACTlyC,EAwHT,OA1IAiyB,EAAU+f,EAAQ3f,GAElB/B,EAAa0hB,EAAQ,KAAM,CAAC,CAC1BlmD,IAAK,QACLM,MAAO,gBAiBTkkC,EAAa0hB,EAAQ,CAAC,CACpBlmD,IAAK,SACLM,MAAO,WAEc,MAAfkE,KAAK7C,QAAgB6C,KAAK7C,OAAO0T,YAAY7Q,QAElD,CACDxE,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GAC3B,GAAqB,IAAjBkE,KAAK4hD,QACP,OAAOvhB,EAAKqhB,EAAOxpC,UAAU6hB,WAAav/B,OAAOimC,eAAeihB,EAAOxpC,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMnD,EAAMf,GAEtH,IAAIZ,EAAS8E,KACTiD,EAAQ,EACZ,MAAiB,MAAV/H,GAAkBA,EAAOioC,QAAQtI,QAAUmG,EAAYpW,QAAQ8N,MAAM8J,WAC1Ev/B,GAAS/H,EAAOknB,OAAOlnB,EAAOiC,QAC9BjC,EAASA,EAAOiC,OAEJ,MAAVjC,IACF8E,KAAK4hD,QAAUF,EAAOxO,SAAS73C,OAC/BH,EAAOu1C,WACPv1C,EAAOg1C,SAASjtC,EAAOy+C,EAAOxO,SAAS73C,OAAQwB,EAAMf,GACrDkE,KAAK4hD,QAAU,KAGlB,CACDpmD,IAAK,QACLM,MAAO,SAAe6U,EAAMyR,GAC1B,OAAIzR,IAAS3Q,KAAKu0C,SAAiB,EAC5BlU,EAAKqhB,EAAOxpC,UAAU6hB,WAAav/B,OAAOimC,eAAeihB,EAAOxpC,WAAY,QAASlY,MAAMqC,KAAKrC,KAAM2Q,EAAMyR,KAEpH,CACD5mB,IAAK,SACLM,MAAO,WACL,OAAOkE,KAAK4hD,UAEb,CACDpmD,IAAK,WACLM,MAAO,WACL,MAAO,CAACkE,KAAKu0C,SAAUv0C,KAAKu0C,SAASr3C,KAAK7B,UAE3C,CACDG,IAAK,SACLM,MAAO,WACLukC,EAAKqhB,EAAOxpC,UAAU6hB,WAAav/B,OAAOimC,eAAeihB,EAAOxpC,WAAY,SAAUlY,MAAMqC,KAAKrC,MACjGA,KAAK7C,OAAS,OAEf,CACD3B,IAAK,UACLM,MAAO,WACL,IAAIkE,KAAKslC,UAAUwO,WAA4B,MAAf9zC,KAAK7C,OAArC,CACA,IAAIo3C,EAAWv0C,KAAKu0C,SAChB1mB,EAAQ7tB,KAAKslC,UAAUgP,iBACvBuN,OAAc,EACd9kB,OAAQ,EACRC,OAAM,EACV,GAAa,MAATnP,GAAiBA,EAAMkP,MAAMpsB,OAAS4jC,GAAY1mB,EAAMmP,IAAIrsB,OAAS4jC,EAAU,CACjF,IAAIt3C,EAAO,CAACs3C,EAAU1mB,EAAMkP,MAAM3a,OAAQyL,EAAMmP,IAAI5a,QACpDy/B,EAAc5kD,EAAK,GACnB8/B,EAAQ9/B,EAAK,GACb+/B,EAAM//B,EAAK,GAGb,MAAiC,MAA1B+C,KAAKgiC,QAAQnc,WAAqB7lB,KAAKgiC,QAAQnc,YAAc7lB,KAAKu0C,SACvEv0C,KAAKgiC,QAAQhxB,WAAWsP,aAAatgB,KAAKgiC,QAAQnc,UAAW7lB,KAAKgiC,SAEpE,GAAIhiC,KAAKu0C,SAASr3C,OAASwkD,EAAOxO,SAAU,CAC1C,IAAIjX,EAAOj8B,KAAKu0C,SAASr3C,KAAKY,MAAM4jD,EAAOxO,UAAU70C,KAAK,IACtD2B,KAAKq9B,gBAAgBiE,EAAO1W,SAC9Bi3B,EAAc7hD,KAAKq9B,KAAK2E,QACxBhiC,KAAKq9B,KAAKkF,SAAS,EAAGtG,GACtBj8B,KAAKu0C,SAASr3C,KAAOwkD,EAAOxO,WAE5BlzC,KAAKu0C,SAASr3C,KAAO++B,EACrBj8B,KAAK7C,OAAOmjB,aAAa0gB,EAAYpW,QAAQ+N,OAAO34B,KAAKu0C,UAAWv0C,MACpEA,KAAKu0C,SAAW/jC,SAASmxC,eAAeD,EAAOxO,UAC/ClzC,KAAKgiC,QAAQrwB,YAAY3R,KAAKu0C,WAIlC,GADAv0C,KAAKqQ,SACQ,MAAT0sB,EAAe,CACjB,IAAI4O,EAAO,CAAC5O,EAAOC,GAAKx+B,KAAI,SAAU4jB,GACpC,OAAO5gB,KAAKgF,IAAI,EAAGhF,KAAKD,IAAIsgD,EAAY3kD,KAAK7B,OAAQ+mB,EAAS,OAG5DypB,EAAQnI,EAAeiI,EAAM,GAKjC,OAHA5O,EAAQ8O,EAAM,GACd7O,EAAM6O,EAAM,GAEL,CACL8I,UAAWkN,EACXjN,YAAa7X,EACb8X,QAASgN,EACT/M,UAAW9X,OAIhB,CACDxhC,IAAK,SACLM,MAAO,SAAgBoqC,EAAWjD,GAChC,IAAIP,EAAS1iC,KAEb,GAAIkmC,EAAU3f,MAAK,SAAUqyB,GAC3B,MAAyB,kBAAlBA,EAASpnC,MAA4BonC,EAAS19C,SAAWwnC,EAAO6R,YACrE,CACF,IAAI1mB,EAAQ7tB,KAAK+0C,UACblnB,IAAOoV,EAAQpV,MAAQA,MAG9B,CACDryB,IAAK,QACLM,MAAO,WACL,MAAO,OAIJ4lD,EA3II,CA4IX1gB,EAAYpW,QAAQsO,OAEtBwoB,EAAOpmB,SAAW,SAClBomB,EAAOxxC,UAAY,YACnBwxC,EAAOxmB,QAAU,OACjBwmB,EAAOxO,SAAW,SAGlBtzC,EAAQgrB,QAAU82B,GAIZ,SAAU/hD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIilC,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCsO,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAErC,SAASzO,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI9I,EAAY,SAAU+oB,GAGxB,SAAS/oB,IAGP,OAFAwI,EAAgBvhC,KAAM+4B,GAEf0I,EAA2BzhC,MAAO+4B,EAAUgB,WAAav/B,OAAOimC,eAAe1H,IAAY/9B,MAAMgF,KAAM5E,YAGhH,OARAumC,EAAU5I,EAAW+oB,GAQd/oB,EATO,CAUdiI,EAAYpW,QAAQmO,WAEtBA,EAAUsK,gBAAkB,CAACiM,EAAQ1kB,QAASykB,EAAOvP,WAAY/G,GAEjEn5B,EAAQgrB,QAAUmO,GAIZ,SAAUp5B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQmiD,WAAaniD,EAAQoiD,WAAapiD,EAAQqiD,qBAAkB7/C,EAEpE,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIogB,EAAkB,SAAUC,GAG9B,SAASD,IAGP,OAFA1gB,EAAgBvhC,KAAMiiD,GAEfxgB,EAA2BzhC,MAAOiiD,EAAgBloB,WAAav/B,OAAOimC,eAAewhB,IAAkBjnD,MAAMgF,KAAM5E,YAe5H,OApBAumC,EAAUsgB,EAAiBC,GAQ3BliB,EAAaiiB,EAAiB,CAAC,CAC7BzmD,IAAK,QACLM,MAAO,SAAekmC,GACpB,IAAIlmC,EAAQukC,EAAK4hB,EAAgB/pC,UAAU6hB,WAAav/B,OAAOimC,eAAewhB,EAAgB/pC,WAAY,QAASlY,MAAMqC,KAAKrC,KAAMgiC,GACpI,OAAKlmC,EAAM+qC,WAAW,SACtB/qC,EAAQA,EAAMsB,QAAQ,UAAW,IAAIA,QAAQ,UAAW,IACjD,IAAMtB,EAAMgC,MAAM,KAAKU,KAAI,SAAU6/B,GAC1C,OAAQ,KAAO3qB,SAAS2qB,GAAWzgC,SAAS,KAAKQ,OAAO,MACvDC,KAAK,KAJ8BvC,MAQnCmmD,EArBa,CAsBpBjhB,EAAYpW,QAAQ2O,WAAWG,OAE7BsoB,EAAa,IAAIhhB,EAAYpW,QAAQ2O,WAAWE,MAAM,QAAS,WAAY,CAC7EoB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,SAE/B8mB,EAAa,IAAIE,EAAgB,QAAS,QAAS,CACrDpnB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,SAGnCr7B,EAAQqiD,gBAAkBA,EAC1BriD,EAAQoiD,WAAaA,EACrBpiD,EAAQmiD,WAAaA,GAIf,SAAUpiD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQuiD,SAAWviD,EAAQgrB,aAAUxoB,EAErC,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZa,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAEtC,SAASP,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIugB,EAAO,SAAU7S,GAGnB,SAAS6S,IAGP,OAFA7gB,EAAgBvhC,KAAMoiD,GAEf3gB,EAA2BzhC,MAAOoiD,EAAKroB,WAAav/B,OAAOimC,eAAe2hB,IAAOpnD,MAAMgF,KAAM5E,YAgCtG,OArCAumC,EAAUygB,EAAM7S,GAQhBvP,EAAaoiB,EAAM,CAAC,CAClB5mD,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GAC3B,GAAIe,IAASmD,KAAKmjC,QAAQ7H,WAAax/B,EAAO,OAAOukC,EAAK+hB,EAAKlqC,UAAU6hB,WAAav/B,OAAOimC,eAAe2hB,EAAKlqC,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMnD,EAAMf,GAC9JA,EAAQkE,KAAKi6B,YAAYkoB,SAASrmD,GAClCkE,KAAKgiC,QAAQtwB,aAAa,OAAQ5V,MAElC,CAAC,CACHN,IAAK,SACLM,MAAO,SAAgBA,GACrB,IAAI6U,EAAO0vB,EAAK+hB,EAAKroB,WAAav/B,OAAOimC,eAAe2hB,GAAO,SAAUpiD,MAAMqC,KAAKrC,KAAMlE,GAK1F,OAJAA,EAAQkE,KAAKmiD,SAASrmD,GACtB6U,EAAKe,aAAa,OAAQ5V,GAC1B6U,EAAKe,aAAa,MAAO,uBACzBf,EAAKe,aAAa,SAAU,UACrBf,IAER,CACDnV,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,OAAOA,EAAQjd,aAAa,UAE7B,CACDvpB,IAAK,WACLM,MAAO,SAAkBg7B,GACvB,OAAOurB,EAAUvrB,EAAK92B,KAAKsiD,oBAAsBxrB,EAAM92B,KAAKuiD,kBAIzDH,EAtCE,CAuCThhB,EAASxW,SAOX,SAASy3B,EAAUvrB,EAAK0rB,GACtB,IAAIC,EAASjyC,SAASF,cAAc,KACpCmyC,EAAOC,KAAO5rB,EACd,IAAI6rB,EAAWF,EAAOC,KAAKtkD,MAAM,EAAGqkD,EAAOC,KAAKp7C,QAAQ,MACxD,OAAOk7C,EAAUl7C,QAAQq7C,IAAa,EATxCP,EAAK9mB,SAAW,OAChB8mB,EAAKlnB,QAAU,IACfknB,EAAKG,cAAgB,cACrBH,EAAKE,mBAAqB,CAAC,OAAQ,QAAS,SAAU,OAStD1iD,EAAQgrB,QAAUw3B,EAClBxiD,EAAQuiD,SAAWE,GAIb,SAAU1iD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAI0nC,EAA4B,oBAAXC,QAAoD,kBAApBA,OAAOvG,SAAwB,SAAUrhC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAX4nC,QAAyB5nC,EAAIo+B,cAAgBwJ,QAAU5nC,IAAQ4nC,OAAOvrB,UAAY,gBAAkBrc,GAElQmkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEf0iB,EAAYtrB,EAAoB,IAEhCurB,EAAajiB,EAAuBgiB,GAEpCE,EAAYxrB,EAAoB,KAEhCyrB,EAAaniB,EAAuBkiB,GAExC,SAASliB,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,IAAI49C,EAAiB,EAErB,SAASC,EAAoBrqC,EAASspB,GACpCtpB,EAAQlH,aAAawwB,IAAiD,SAApCtpB,EAAQmM,aAAamd,KAGzD,IAAIghB,EAAS,WACX,SAASA,EAAOzkC,GACd,IAAI/O,EAAQ1P,KAEZuhC,EAAgBvhC,KAAMkjD,GAEtBljD,KAAKye,OAASA,EACdze,KAAKyjB,UAAYjT,SAASF,cAAc,QACxCtQ,KAAKmjD,cACLnjD,KAAKye,OAAO1D,MAAME,QAAU,OAC5Bjb,KAAKye,OAAOzN,WAAWsP,aAAatgB,KAAKyjB,UAAWzjB,KAAKye,QAEzDze,KAAKojD,MAAM7lC,iBAAiB,aAAa,WACvC7N,EAAM2zC,kBAERrjD,KAAKojD,MAAM7lC,iBAAiB,WAAW,SAAU1L,GAC/C,OAAQA,EAAMyV,SAEZ,KAAKu7B,EAAWj4B,QAAQrwB,KAAKyiD,MAC3BttC,EAAM2zC,eACN,MAGF,KAAKR,EAAWj4B,QAAQrwB,KAAKqmD,OAC3BlxC,EAAM4zC,SACNzxC,EAAM4V,iBACN,MACF,aAGJznB,KAAKye,OAAOlB,iBAAiB,SAAUvd,KAAKqmC,OAAOxrB,KAAK7a,OA4K1D,OAzKAggC,EAAakjB,EAAQ,CAAC,CACpB1nD,IAAK,eACLM,MAAO,WACLkE,KAAKyjB,UAAUtT,UAAUge,OAAO,eAEhC80B,EAAoBjjD,KAAKojD,MAAO,iBAChCH,EAAoBjjD,KAAKyU,QAAS,iBAEnC,CACDjZ,IAAK,YACLM,MAAO,SAAmBwyB,GACxB,IAAIoU,EAAS1iC,KAETkvC,EAAO1+B,SAASF,cAAc,QA+BlC,OA9BA4+B,EAAKvvB,SAAW,IAChBuvB,EAAKx9B,aAAa,OAAQ,UAE1Bw9B,EAAK/+B,UAAUC,IAAI,kBACfke,EAAOi1B,aAAa,UACtBrU,EAAKx9B,aAAa,aAAc4c,EAAOvJ,aAAa,UAElDuJ,EAAO7d,aACTy+B,EAAKx9B,aAAa,aAAc4c,EAAO7d,aAEzCy+B,EAAK3xB,iBAAiB,SAAS,WAC7BmlB,EAAO8gB,WAAWtU,GAAM,MAE1BA,EAAK3xB,iBAAiB,WAAW,SAAU1L,GACzC,OAAQA,EAAMyV,SAEZ,KAAKu7B,EAAWj4B,QAAQrwB,KAAKyiD,MAC3Bta,EAAO8gB,WAAWtU,GAAM,GACxBr9B,EAAM4V,iBACN,MAGF,KAAKo7B,EAAWj4B,QAAQrwB,KAAKqmD,OAC3Ble,EAAO4gB,SACPzxC,EAAM4V,iBACN,MACF,aAIGynB,IAER,CACD1zC,IAAK,aACLM,MAAO,WACL,IAAIsnD,EAAQ5yC,SAASF,cAAc,QAOnC,OANA8yC,EAAMjzC,UAAUC,IAAI,mBACpBgzC,EAAM//B,UAAY0/B,EAAWn4B,QAC7Bw4B,EAAMzjC,SAAW,IACjByjC,EAAM1xC,aAAa,OAAQ,UAC3B0xC,EAAM1xC,aAAa,gBAAiB,SACpC1R,KAAKyjB,UAAU9R,YAAYyxC,GACpBA,IAER,CACD5nD,IAAK,eACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAETyU,EAAUjE,SAASF,cAAc,QACrCmE,EAAQtE,UAAUC,IAAI,qBAGtBqE,EAAQ/C,aAAa,cAAe,QACpC+C,EAAQkL,SAAW,KAGnBlL,EAAQpU,GAAK,qBAAuB2iD,EACpCA,GAAkB,EAClBhjD,KAAKojD,MAAM1xC,aAAa,gBAAiB+C,EAAQpU,IAEjDL,KAAKyU,QAAUA,EAEf,GAAGrW,MAAMiE,KAAKrC,KAAKye,OAAOhK,SAASlZ,SAAQ,SAAU+yB,GACnD,IAAI4gB,EAAOlI,EAAOyc,UAAUn1B,GAC5B7Z,EAAQ9C,YAAYu9B,IACI,IAApB5gB,EAAOhL,UACT0jB,EAAOwc,WAAWtU,MAGtBlvC,KAAKyjB,UAAU9R,YAAY8C,KAE5B,CACDjZ,IAAK,cACLM,MAAO,WACL,IAAIyrC,EAASvnC,KAEb,GAAG5B,MAAMiE,KAAKrC,KAAKye,OAAO2b,YAAY7+B,SAAQ,SAAU2zC,GACtD3H,EAAO9jB,UAAU/R,aAAaw9B,EAAKryC,KAAMqyC,EAAKpzC,UAEhDkE,KAAKyjB,UAAUtT,UAAUC,IAAI,aAC7BpQ,KAAKojD,MAAQpjD,KAAK0jD,aAClB1jD,KAAK2jD,iBAEN,CACDnoD,IAAK,SACLM,MAAO,WACL,IAAIksC,EAAShoC,KAGbA,KAAK2lB,QAGL9V,YAAW,WACT,OAAOm4B,EAAOob,MAAM9hC,UACnB,KAEJ,CACD9lB,IAAK,QACLM,MAAO,WACLkE,KAAKyjB,UAAUtT,UAAUE,OAAO,eAChCrQ,KAAKojD,MAAM1xC,aAAa,gBAAiB,SACzC1R,KAAKyU,QAAQ/C,aAAa,cAAe,UAE1C,CACDlW,IAAK,aACLM,MAAO,SAAoBozC,GACzB,IAAI0U,EAAUxoD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAEzEkoB,EAAWtjB,KAAKyjB,UAAUiH,cAAc,gBAC5C,GAAIwkB,IAAS5rB,IACG,MAAZA,GACFA,EAASnT,UAAUE,OAAO,eAEhB,MAAR6+B,IACJA,EAAK/+B,UAAUC,IAAI,eACnBpQ,KAAKye,OAAOgP,cAAgB,GAAGnmB,QAAQjF,KAAK6sC,EAAKl+B,WAAWtQ,SAAUwuC,GAClEA,EAAKqU,aAAa,cACpBvjD,KAAKojD,MAAM1xC,aAAa,aAAcw9B,EAAKnqB,aAAa,eAExD/kB,KAAKojD,MAAMr9B,gBAAgB,cAEzBmpB,EAAKqU,aAAa,cACpBvjD,KAAKojD,MAAM1xC,aAAa,aAAcw9B,EAAKnqB,aAAa,eAExD/kB,KAAKojD,MAAMr9B,gBAAgB,cAEzB69B,IAAS,CACX,GAAqB,oBAAVC,MACT7jD,KAAKye,OAAOe,cAAc,IAAIqkC,MAAM,gBAC/B,GAAsE,YAAhD,qBAAVA,MAAwB,YAAcrgB,EAAQqgB,QAAsB,CAErF,IAAIhyC,EAAQrB,SAAS+O,YAAY,SACjC1N,EAAMqd,UAAU,UAAU,GAAM,GAChClvB,KAAKye,OAAOe,cAAc3N,GAE5B7R,KAAK2lB,WAGR,CACDnqB,IAAK,SACLM,MAAO,WACL,IAAIwyB,OAAS,EACb,GAAItuB,KAAKye,OAAOgP,eAAiB,EAAG,CAClC,IAAIyhB,EAAOlvC,KAAKyjB,UAAUiH,cAAc,sBAAsBhqB,SAASV,KAAKye,OAAOgP,eACnFa,EAAStuB,KAAKye,OAAOhK,QAAQzU,KAAKye,OAAOgP,eACzCztB,KAAKwjD,WAAWtU,QAEhBlvC,KAAKwjD,WAAW,MAElB,IAAIM,EAAqB,MAAVx1B,GAAkBA,IAAWtuB,KAAKye,OAAOiM,cAAc,oBACtE1qB,KAAKojD,MAAMjzC,UAAUge,OAAO,YAAa21B,OAItCZ,EA1MI,GA6MbtjD,EAAQgrB,QAAUs4B,GAIZ,SAAUvjD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIilC,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC0b,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCpN,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAEjCpO,EAAS3J,EAAoB,IAE7B4J,EAAUN,EAAuBK,GAEjC0a,EAAarkB,EAAoB,IAEjCskB,EAAchb,EAAuB+a,GAErC3K,EAAU1Z,EAAoB,IAE9B2Z,EAAWrQ,EAAuBoQ,GAElC+S,EAASzsB,EAAoB,IAE7B0sB,EAAUpjB,EAAuBmjB,GAEjC5iB,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAElC8iB,EAAU3sB,EAAoB,IAE9B4sB,EAAWtjB,EAAuBqjB,GAElC5iB,EAAQ/J,EAAoB,GAE5BgK,EAASV,EAAuBS,GAEhC8iB,EAAa7sB,EAAoB,IAEjC8sB,EAAcxjB,EAAuBujB,GAErCE,EAAW/sB,EAAoB,IAE/BgtB,EAAY1jB,EAAuByjB,GAEnCzB,EAAYtrB,EAAoB,IAEhCurB,EAAajiB,EAAuBgiB,GAExC,SAAShiB,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF6gD,EAAQ9xB,QAAQkO,SAAS,CACvB,cAAewW,EAAQ1kB,QACvB,oBAAqBykB,EAAOvP,WAC5B,cAAeoB,EAAQtW,QACvB,kBAAmBgxB,EAAYhxB,QAC/B,eAAgBqmB,EAASrmB,QACzB,cAAeo5B,EAAQp5B,QACvB,eAAgBwW,EAASxW,QACzB,eAAgBs5B,EAASt5B,QACzB,aAAc0W,EAAO1W,QAErB,oBAAqBw5B,EAAYx5B,QACjC,kBAAmB05B,EAAU15B,QAC7B,mBAAoBi4B,EAAWj4B,UAGjCoW,EAAYpW,QAAQkO,SAASwW,EAAQ1kB,QAASsW,EAAQtW,QAASqmB,EAASrmB,QAASwW,EAASxW,QAASs5B,EAASt5B,QAAS0W,EAAO1W,SAE5HhrB,EAAQgrB,QAAU8xB,EAAQ9xB,SAIpB,SAAUjrB,EAAQC,EAAS03B,GAEjC,aAEA98B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI08B,EAAWlB,EAAoB,GAC/BitB,EAA4B,WAC5B,SAASA,EAAWviB,GAChBhiC,KAAKgiC,QAAUA,EAEfhiC,KAAKgiC,QAAQxJ,EAASmC,UAAY,CAAEC,KAAM56B,MAkJ9C,OAhJAxF,OAAOoB,eAAe2oD,EAAWrsC,UAAW,UAAW,CAEnDoM,IAAK,WACD,OAAOtkB,KAAKi6B,aAEhBn/B,YAAY,EACZiB,cAAc,IAElBwoD,EAAW5rB,OAAS,SAAU78B,GAC1B,GAAoB,MAAhBkE,KAAKk7B,QACL,MAAM,IAAI1C,EAAS0B,eAAe,mCAEtC,IAAIvpB,EAwBJ,OAvBIZ,MAAMuiB,QAAQtyB,KAAKk7B,UACE,kBAAVp/B,IACPA,EAAQA,EAAMqC,cACVuV,SAAS5X,GAAO8B,aAAe9B,IAC/BA,EAAQ4X,SAAS5X,KAIrB6U,EADiB,kBAAV7U,EACA0U,SAASF,cAActQ,KAAKk7B,QAAQp/B,EAAQ,IAE9CkE,KAAKk7B,QAAQ5zB,QAAQxL,IAAU,EAC7B0U,SAASF,cAAcxU,GAGvB0U,SAASF,cAActQ,KAAKk7B,QAAQ,KAI/CvqB,EAAOH,SAASF,cAActQ,KAAKk7B,SAEnCl7B,KAAKkQ,WACLS,EAAKR,UAAUC,IAAIpQ,KAAKkQ,WAErBS,GAEX4zC,EAAWrsC,UAAUk9B,OAAS,WACP,MAAfp1C,KAAK7C,SACL6C,KAAKmlC,OAASnlC,KAAK7C,OAAOgoC,SAGlCof,EAAWrsC,UAAU0nB,MAAQ,WACzB,IAAIoC,EAAUhiC,KAAKgiC,QAAQwiB,WAAU,GACrC,OAAOhsB,EAASG,OAAOqJ,IAE3BuiB,EAAWrsC,UAAUigC,OAAS,WACP,MAAfn4C,KAAK7C,QACL6C,KAAK7C,OAAO0T,YAAY7Q,aAErBA,KAAKgiC,QAAQxJ,EAASmC,WAEjC4pB,EAAWrsC,UAAU23B,SAAW,SAAU5sC,EAAO5H,GAC7C,IAAIu/B,EAAO56B,KAAKosC,QAAQnpC,EAAO5H,GAC/Bu/B,EAAKvqB,UAETk0C,EAAWrsC,UAAUg4B,SAAW,SAAUjtC,EAAO5H,EAAQwB,EAAMf,GAC3D,IAAI8+B,EAAO56B,KAAKosC,QAAQnpC,EAAO5H,GAC/B,GAAiD,MAA7Cm9B,EAASK,MAAMh8B,EAAM27B,EAASE,MAAMyT,OAAiBrwC,EACrD8+B,EAAK7sB,KAAKlR,EAAMf,QAEf,GAAsD,MAAlD08B,EAASK,MAAMh8B,EAAM27B,EAASE,MAAMuW,WAAoB,CAC7D,IAAI9xC,EAASq7B,EAASG,OAAO34B,KAAKmjC,QAAQtI,OAC1CD,EAAK7sB,KAAK5Q,GACVA,EAAO6B,OAAOnC,EAAMf,KAG5ByoD,EAAWrsC,UAAUqqB,SAAW,SAAUt/B,EAAOnH,EAAOsmC,GACpD,IAAIxH,EAAc,MAAPwH,EAAc5J,EAASG,OAAO,OAAQ78B,GAAS08B,EAASG,OAAO78B,EAAOsmC,GAC7Ej+B,EAAMnE,KAAKlC,MAAMmF,GACrBjD,KAAK7C,OAAOmjB,aAAasa,EAAMz2B,IAEnCogD,EAAWrsC,UAAUogC,WAAa,SAAUmM,EAAYpM,QACpC,IAAZA,IAAsBA,EAAU,MACjB,MAAfr4C,KAAK7C,QACL6C,KAAK7C,OAAOuD,SAAS2P,OAAOrQ,MAEhC,IAAI0kD,EAAa,KACjBD,EAAW/jD,SAAS4f,aAAatgB,KAAMq4C,GACxB,MAAXA,IACAqM,EAAarM,EAAQrW,SAErBhiC,KAAKgiC,QAAQhxB,YAAcyzC,EAAWziB,SACtChiC,KAAKgiC,QAAQzhB,aAAemkC,GAC5BD,EAAWziB,QAAQ1hB,aAAatgB,KAAKgiC,QAAS0iB,GAElD1kD,KAAK7C,OAASsnD,EACdzkD,KAAKo1C,UAETmP,EAAWrsC,UAAUk0B,QAAU,SAAUnpC,EAAO5H,GAC5C,IAAIH,EAAS8E,KAAKlC,MAAMmF,GAExB,OADA/H,EAAO4C,MAAMzC,GACNH,GAEXqpD,EAAWrsC,UAAU7c,OAAS,WAC1B,OAAO,GAEXkpD,EAAWrsC,UAAUkK,OAAS,SAAU8U,GAEpC,YADa,IAATA,IAAmBA,EAAOl3B,KAAK7C,QAChB,MAAf6C,KAAK7C,QAAkB6C,MAAQk3B,EACxB,EACJl3B,KAAK7C,OAAOuD,SAAS0hB,OAAOpiB,MAAQA,KAAK7C,OAAOilB,OAAO8U,IAElEqtB,EAAWrsC,UAAUu4B,SAAW,SAAUxN,GAGC,MAAnCjjC,KAAKgiC,QAAQxJ,EAASmC,kBAEf36B,KAAKgiC,QAAQxJ,EAASmC,UAAUuL,WAG/Cqe,EAAWrsC,UAAU7H,OAAS,WACK,MAA3BrQ,KAAKgiC,QAAQhxB,YACbhR,KAAKgiC,QAAQhxB,WAAWH,YAAY7Q,KAAKgiC,SAE7ChiC,KAAKm4C,UAEToM,EAAWrsC,UAAU9a,QAAU,SAAUlC,GAChB,MAAjBA,EAAOiC,SAEXjC,EAAOiC,OAAOmjB,aAAatgB,KAAM9E,EAAOmiC,MACxCniC,EAAOmV,WAEXk0C,EAAWrsC,UAAUghC,YAAc,SAAUr8C,EAAMf,GAC/C,IAAIuM,EAA8B,kBAATxL,EAAoB27B,EAASG,OAAO97B,EAAMf,GAASe,EAE5E,OADAwL,EAAYjL,QAAQ4C,MACbqI,GAEXk8C,EAAWrsC,UAAUpa,MAAQ,SAAUmF,EAAOigC,GAC1C,OAAiB,IAAVjgC,EAAcjD,KAAOA,KAAKq9B,MAErCknB,EAAWrsC,UAAUmuB,OAAS,SAAUH,EAAWjD,KAGnDshB,EAAWrsC,UAAUnK,KAAO,SAAUlR,EAAMf,GACxC,IAAIsV,EAA0B,kBAATvU,EAAoB27B,EAASG,OAAO97B,EAAMf,GAASe,EAKxE,OAJmB,MAAfmD,KAAK7C,QACL6C,KAAK7C,OAAOmjB,aAAalP,EAASpR,KAAKq9B,MAE3CjsB,EAAQO,YAAY3R,MACboR,GAEXmzC,EAAWjpB,SAAW,WACfipB,EAtJoB,GAwJ/B3kD,EAAQgrB,QAAU25B,GAKZ,SAAU5kD,EAAQC,EAAS03B,GAEjC,aAEA98B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIs8B,EAAed,EAAoB,IACnCe,EAAUf,EAAoB,IAC9BgB,EAAUhB,EAAoB,IAC9BkB,EAAWlB,EAAoB,GAC/BqtB,EAAiC,WACjC,SAASA,EAAgB3iB,GACrBhiC,KAAKo6B,WAAa,GAClBp6B,KAAKgiC,QAAUA,EACfhiC,KAAK8Z,QAyDT,OAvDA6qC,EAAgBzsC,UAAUgqB,UAAY,SAAUA,EAAWpmC,GAEnDA,EACIomC,EAAU9xB,IAAIpQ,KAAKgiC,QAASlmC,KACS,MAAjComC,EAAUpmC,MAAMkE,KAAKgiC,SACrBhiC,KAAKo6B,WAAW8H,EAAU3G,UAAY2G,SAG/BliC,KAAKo6B,WAAW8H,EAAU3G,YAKzC2G,EAAU7xB,OAAOrQ,KAAKgiC,gBACfhiC,KAAKo6B,WAAW8H,EAAU3G,YAGzCopB,EAAgBzsC,UAAU4B,MAAQ,WAC9B,IAAIpK,EAAQ1P,KACZA,KAAKo6B,WAAa,GAClB,IAAIA,EAAahC,EAAaxN,QAAQrwB,KAAKyF,KAAKgiC,SAC5C3H,EAAUhC,EAAQzN,QAAQrwB,KAAKyF,KAAKgiC,SACpC4iB,EAAStsB,EAAQ1N,QAAQrwB,KAAKyF,KAAKgiC,SACvC5H,EACK/8B,OAAOg9B,GACPh9B,OAAOunD,GACPrpD,SAAQ,SAAUsB,GACnB,IAAIgoD,EAAOrsB,EAASK,MAAMh8B,EAAM27B,EAASE,MAAMuW,WAC3C4V,aAAgBzsB,EAAaxN,UAC7Blb,EAAM0qB,WAAWyqB,EAAKtpB,UAAYspB,OAI9CF,EAAgBzsC,UAAUwnB,KAAO,SAAUxkC,GACvC,IAAIwU,EAAQ1P,KACZxF,OAAOD,KAAKyF,KAAKo6B,YAAY7+B,SAAQ,SAAUC,GAC3C,IAAIM,EAAQ4T,EAAM0qB,WAAW5+B,GAAKM,MAAM4T,EAAMsyB,SAC9C9mC,EAAO8D,OAAOxD,EAAKM,OAG3B6oD,EAAgBzsC,UAAUihC,KAAO,SAAUj+C,GACvC,IAAIwU,EAAQ1P,KACZA,KAAK0/B,KAAKxkC,GACVV,OAAOD,KAAKyF,KAAKo6B,YAAY7+B,SAAQ,SAAUC,GAC3CkU,EAAM0qB,WAAW5+B,GAAK6U,OAAOX,EAAMsyB,YAEvChiC,KAAKo6B,WAAa,IAEtBuqB,EAAgBzsC,UAAU+pB,OAAS,WAC/B,IAAIvyB,EAAQ1P,KACZ,OAAOxF,OAAOD,KAAKyF,KAAKo6B,YAAYrP,QAAO,SAAUqP,EAAYv9B,GAE7D,OADAu9B,EAAWv9B,GAAQ6S,EAAM0qB,WAAWv9B,GAAMf,MAAM4T,EAAMsyB,SAC/C5H,IACR,KAEAuqB,EA7DyB,GA+DpC/kD,EAAQgrB,QAAU+5B,GAKZ,SAAUhlD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIs8B,EAAed,EAAoB,IACvC,SAASh1B,EAAMqO,EAAM4sC,GACjB,IAAIrtC,EAAYS,EAAKoU,aAAa,UAAY,GAC9C,OAAO7U,EAAUpS,MAAM,OAAOnD,QAAO,SAAUkC,GAC3C,OAAsC,IAA/BA,EAAKyK,QAAQi2C,EAAS,QAGrC,IAAIuH,EAAiC,SAAU3qB,GAE3C,SAAS2qB,IACL,OAAkB,OAAX3qB,GAAmBA,EAAOn/B,MAAMgF,KAAM5E,YAAc4E,KA+B/D,OAjCA45B,EAAUkrB,EAAiB3qB,GAI3B2qB,EAAgBvqD,KAAO,SAAUoW,GAC7B,OAAQA,EAAKoU,aAAa,UAAY,IAAIjnB,MAAM,OAAOU,KAAI,SAAU3B,GACjE,OAAOA,EACFiB,MAAM,KACNM,MAAM,GAAI,GACVC,KAAK,SAGlBymD,EAAgB5sC,UAAU9H,IAAM,SAAUO,EAAM7U,GAC5C,QAAKkE,KAAKmvC,OAAOx+B,EAAM7U,KAEvBkE,KAAKqQ,OAAOM,GACZA,EAAKR,UAAUC,IAAIpQ,KAAKw7B,QAAU,IAAM1/B,IACjC,IAEXgpD,EAAgB5sC,UAAU7H,OAAS,SAAUM,GACzC,IAAIo0C,EAAUziD,EAAMqO,EAAM3Q,KAAKw7B,SAC/BupB,EAAQxpD,SAAQ,SAAUsB,GACtB8T,EAAKR,UAAUE,OAAOxT,MAEI,IAA1B8T,EAAKR,UAAU9U,QACfsV,EAAKoV,gBAAgB,UAG7B++B,EAAgB5sC,UAAUpc,MAAQ,SAAU6U,GACxC,IAAI1Q,EAASqC,EAAMqO,EAAM3Q,KAAKw7B,SAAS,IAAM,GACzC1/B,EAAQmE,EAAO7B,MAAM4B,KAAKw7B,QAAQngC,OAAS,GAC/C,OAAO2E,KAAKmvC,OAAOx+B,EAAM7U,GAASA,EAAQ,IAEvCgpD,EAlCyB,CAmClC1sB,EAAaxN,SACfhrB,EAAQgrB,QAAUk6B,GAKZ,SAAUnlD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIs8B,EAAed,EAAoB,IACvC,SAAS0tB,EAASnoD,GACd,IAAIooD,EAAQpoD,EAAKiB,MAAM,KACnBmgC,EAAOgnB,EACN7mD,MAAM,GACNI,KAAI,SAAU0mD,GACf,OAAOA,EAAK,GAAG/mD,cAAgB+mD,EAAK9mD,MAAM,MAEzCC,KAAK,IACV,OAAO4mD,EAAM,GAAKhnB,EAEtB,IAAIknB,EAAiC,SAAUhrB,GAE3C,SAASgrB,IACL,OAAkB,OAAXhrB,GAAmBA,EAAOn/B,MAAMgF,KAAM5E,YAAc4E,KA2B/D,OA7BA45B,EAAUurB,EAAiBhrB,GAI3BgrB,EAAgB5qD,KAAO,SAAUoW,GAC7B,OAAQA,EAAKoU,aAAa,UAAY,IAAIjnB,MAAM,KAAKU,KAAI,SAAU1C,GAC/D,IAAI+B,EAAM/B,EAAMgC,MAAM,KACtB,OAAOD,EAAI,GAAGmY,WAGtBmvC,EAAgBjtC,UAAU9H,IAAM,SAAUO,EAAM7U,GAC5C,QAAKkE,KAAKmvC,OAAOx+B,EAAM7U,KAGvB6U,EAAKoK,MAAMiqC,EAAShlD,KAAKw7B,UAAY1/B,GAC9B,IAEXqpD,EAAgBjtC,UAAU7H,OAAS,SAAUM,GAEzCA,EAAKoK,MAAMiqC,EAAShlD,KAAKw7B,UAAY,GAChC7qB,EAAKoU,aAAa,UACnBpU,EAAKoV,gBAAgB,UAG7Bo/B,EAAgBjtC,UAAUpc,MAAQ,SAAU6U,GAExC,IAAI7U,EAAQ6U,EAAKoK,MAAMiqC,EAAShlD,KAAKw7B,UACrC,OAAOx7B,KAAKmvC,OAAOx+B,EAAM7U,GAASA,EAAQ,IAEvCqpD,EA9ByB,CA+BlC/sB,EAAaxN,SACfhrB,EAAQgrB,QAAUu6B,GAKZ,SAAUxlD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEnB,SAASqB,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,IAAIggD,EAAQ,WACV,SAASA,EAAMvX,EAAOp5B,GACpB8sB,EAAgBvhC,KAAMolD,GAEtBplD,KAAK6tC,MAAQA,EACb7tC,KAAKyU,QAAUA,EACfzU,KAAKo3B,QAAU,GAuBjB,OApBA4I,EAAaolB,EAAO,CAAC,CACnB5pD,IAAK,OACLM,MAAO,WACL,IAAI4T,EAAQ1P,KAEZxF,OAAOD,KAAKyF,KAAKyU,QAAQ2iB,SAAS77B,SAAQ,SAAUsB,GACvB,MAAvB6S,EAAM0nB,QAAQv6B,IAChB6S,EAAM+1B,UAAU5oC,QAIrB,CACDrB,IAAK,YACLM,MAAO,SAAmBe,GACxB,IAAIquC,EAAclrC,KAAK6tC,MAAM5T,YAAY6Q,OAAO,WAAajuC,GAE7D,OADAmD,KAAKo3B,QAAQv6B,GAAQ,IAAIquC,EAAYlrC,KAAK6tC,MAAO7tC,KAAKyU,QAAQ2iB,QAAQv6B,IAAS,IACxEmD,KAAKo3B,QAAQv6B,OAIjBuoD,EA7BG,GAgCZA,EAAMva,SAAW,CACfzT,QAAS,IAEXguB,EAAMC,OAAS,CACb,QAAWD,GAGbxlD,EAAQgrB,QAAUw6B,GAIZ,SAAUzlD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCM,EAAQ/J,EAAoB,GAE5BgK,EAASV,EAAuBS,GAEpC,SAAST,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIyjB,EAAa,SAEbpsB,EAAQ,SAAU6I,GAGpB,SAAS7I,EAAMvoB,GACb4wB,EAAgBvhC,KAAMk5B,GAEtB,IAAIxpB,EAAQ+xB,EAA2BzhC,MAAOk5B,EAAMa,WAAav/B,OAAOimC,eAAevH,IAAQ72B,KAAKrC,KAAM2Q,IAY1G,OAVAjB,EAAM61C,YAAc/0C,SAASF,cAAc,QAC3CZ,EAAM61C,YAAY7zC,aAAa,mBAAmB,GAClD,GAAGtT,MAAMiE,KAAKqN,EAAMsyB,QAAQ6U,YAAYt7C,SAAQ,SAAUiqD,GACxD91C,EAAM61C,YAAY5zC,YAAY6zC,MAEhC91C,EAAM+1C,UAAYj1C,SAASmxC,eAAe2D,GAC1C51C,EAAMg2C,WAAal1C,SAASmxC,eAAe2D,GAC3C51C,EAAMsyB,QAAQrwB,YAAYjC,EAAM+1C,WAChC/1C,EAAMsyB,QAAQrwB,YAAYjC,EAAM61C,aAChC71C,EAAMsyB,QAAQrwB,YAAYjC,EAAMg2C,YACzBh2C,EAiET,OAlFAiyB,EAAUzI,EAAO6I,GAoBjB/B,EAAa9G,EAAO,CAAC,CACnB19B,IAAK,QACLM,MAAO,SAAe6U,EAAMyR,GAC1B,OAAIzR,IAAS3Q,KAAKylD,UAAkB,EAChC90C,IAAS3Q,KAAK0lD,WAAmB,EAC9BrlB,EAAKnH,EAAMhhB,UAAU6hB,WAAav/B,OAAOimC,eAAevH,EAAMhhB,WAAY,QAASlY,MAAMqC,KAAKrC,KAAM2Q,EAAMyR,KAElH,CACD5mB,IAAK,UACLM,MAAO,SAAiB6U,GACtB,IAAIkd,OAAQ,EACR0mB,OAAW,EACXtY,EAAOtrB,EAAKzT,KAAKY,MAAMwnD,GAAYjnD,KAAK,IAC5C,GAAIsS,IAAS3Q,KAAKylD,UAChB,GAAIzlD,KAAKwwC,gBAAgBlP,EAAO1W,QAAS,CACvC,IAAI+6B,EAAa3lD,KAAKwwC,KAAKn1C,SAC3B2E,KAAKwwC,KAAKjO,SAASojB,EAAY1pB,GAC/BpO,EAAQ,CACN8mB,UAAW30C,KAAKwwC,KAAKxO,QACrB4S,YAAa+Q,EAAa1pB,EAAK5gC,aAGjCk5C,EAAW/jC,SAASmxC,eAAe1lB,GACnCj8B,KAAK7C,OAAOmjB,aAAa0gB,EAAYpW,QAAQ+N,OAAO4b,GAAWv0C,MAC/D6tB,EAAQ,CACN8mB,UAAWJ,EACXK,YAAa3Y,EAAK5gC,aAGbsV,IAAS3Q,KAAK0lD,aACnB1lD,KAAKq9B,gBAAgBiE,EAAO1W,SAC9B5qB,KAAKq9B,KAAKkF,SAAS,EAAGtG,GACtBpO,EAAQ,CACN8mB,UAAW30C,KAAKq9B,KAAK2E,QACrB4S,YAAa3Y,EAAK5gC,UAGpBk5C,EAAW/jC,SAASmxC,eAAe1lB,GACnCj8B,KAAK7C,OAAOmjB,aAAa0gB,EAAYpW,QAAQ+N,OAAO4b,GAAWv0C,KAAKq9B,MACpExP,EAAQ,CACN8mB,UAAWJ,EACXK,YAAa3Y,EAAK5gC,UAKxB,OADAsV,EAAKzT,KAAOooD,EACLz3B,IAER,CACDryB,IAAK,SACLM,MAAO,SAAgBoqC,EAAWjD,GAChC,IAAIP,EAAS1iC,KAEbkmC,EAAU3qC,SAAQ,SAAUq9C,GAC1B,GAAsB,kBAAlBA,EAASpnC,OAA6BonC,EAAS19C,SAAWwnC,EAAO+iB,WAAa7M,EAAS19C,SAAWwnC,EAAOgjB,YAAa,CACxH,IAAI73B,EAAQ6U,EAAOqS,QAAQ6D,EAAS19C,QAChC2yB,IAAOoV,EAAQpV,MAAQA,WAM5BqL,EAnFG,CAoFV8H,EAAYpW,QAAQsO,OAEtBt5B,EAAQgrB,QAAUsO,GAIZ,SAAUv5B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgmD,WAAahmD,EAAQimD,WAAajmD,EAAQkmD,oBAAiB1jD,EAEnE,IAAI2+B,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,IAAIoZ,EAAS,CACX4lB,MAAOmG,EAAYpW,QAAQ8N,MAAMsC,MACjCoK,UAAW,CAAC,QAAS,SAAU,YAG7B0gB,EAAiB,IAAI9kB,EAAYpW,QAAQ2O,WAAWC,UAAU,QAAS,QAASvkB,GAChF4wC,EAAa,IAAI7kB,EAAYpW,QAAQ2O,WAAWE,MAAM,QAAS,WAAYxkB,GAC3E2wC,EAAa,IAAI5kB,EAAYpW,QAAQ2O,WAAWG,MAAM,QAAS,aAAczkB,GAEjFrV,EAAQkmD,eAAiBA,EACzBlmD,EAAQimD,WAAaA,EACrBjmD,EAAQgmD,WAAaA,GAIf,SAAUjmD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQmmD,gBAAkBnmD,EAAQomD,qBAAkB5jD,EAEpD,IAAI2+B,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCklB,EAAS3uB,EAAoB,IAEjC,SAASsJ,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,IAAImqD,EAAkB,IAAIhlB,EAAYpW,QAAQ2O,WAAWE,MAAM,aAAc,QAAS,CACpFoB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,SAE/B8qB,EAAkB,IAAIE,EAAOhE,gBAAgB,aAAc,mBAAoB,CACjFpnB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,SAGnCr7B,EAAQomD,gBAAkBA,EAC1BpmD,EAAQmmD,gBAAkBA,GAIpB,SAAUpmD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQsmD,eAAiBtmD,EAAQumD,eAAiBvmD,EAAQwmD,wBAAqBhkD,EAE/E,IAAI2+B,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,IAAIoZ,EAAS,CACX4lB,MAAOmG,EAAYpW,QAAQ8N,MAAMsC,MACjCoK,UAAW,CAAC,QAGVghB,EAAqB,IAAIplB,EAAYpW,QAAQ2O,WAAWC,UAAU,YAAa,MAAOvkB,GACtFkxC,EAAiB,IAAInlB,EAAYpW,QAAQ2O,WAAWE,MAAM,YAAa,eAAgBxkB,GACvFixC,EAAiB,IAAIllB,EAAYpW,QAAQ2O,WAAWG,MAAM,YAAa,YAAazkB,GAExFrV,EAAQwmD,mBAAqBA,EAC7BxmD,EAAQumD,eAAiBA,EACzBvmD,EAAQsmD,eAAiBA,GAInB,SAAUvmD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQymD,UAAYzmD,EAAQ0mD,eAAYlkD,EAExC,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI5sB,EAAS,CACX4lB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,OACjCmK,UAAW,CAAC,QAAS,cAGnBihB,EAAY,IAAIrlB,EAAYpW,QAAQ2O,WAAWE,MAAM,OAAQ,UAAWxkB,GAExEsxC,EAAsB,SAAUrE,GAGlC,SAASqE,IAGP,OAFAhlB,EAAgBvhC,KAAMumD,GAEf9kB,EAA2BzhC,MAAOumD,EAAoBxsB,WAAav/B,OAAOimC,eAAe8lB,IAAsBvrD,MAAMgF,KAAM5E,YAUpI,OAfAumC,EAAU4kB,EAAqBrE,GAQ/BliB,EAAaumB,EAAqB,CAAC,CACjC/qD,IAAK,QACLM,MAAO,SAAe6U,GACpB,OAAO0vB,EAAKkmB,EAAoBruC,UAAU6hB,WAAav/B,OAAOimC,eAAe8lB,EAAoBruC,WAAY,QAASlY,MAAMqC,KAAKrC,KAAM2Q,GAAMvT,QAAQ,QAAS,QAI3JmpD,EAhBiB,CAiBxBvlB,EAAYpW,QAAQ2O,WAAWG,OAE7B4sB,EAAY,IAAIC,EAAoB,OAAQ,cAAetxC,GAE/DrV,EAAQ0mD,UAAYA,EACpB1mD,EAAQymD,UAAYA,GAId,SAAU1mD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQ4mD,UAAY5mD,EAAQ6mD,eAAYrkD,EAExC,IAAI2+B,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,IAAI4qD,EAAY,IAAIzlB,EAAYpW,QAAQ2O,WAAWE,MAAM,OAAQ,UAAW,CAC1EoB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,OACjCmK,UAAW,CAAC,QAAS,QAAS,UAE5BohB,EAAY,IAAIxlB,EAAYpW,QAAQ2O,WAAWG,MAAM,OAAQ,YAAa,CAC5EmB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,OACjCmK,UAAW,CAAC,OAAQ,OAAQ,UAG9BxlC,EAAQ6mD,UAAYA,EACpB7mD,EAAQ4mD,UAAYA,GAId,SAAU7mD,EAAQC,EAAS03B,GAEjC,aAGA33B,EAAOC,QAAU,CACf,MAAS,CACP,GAAI03B,EAAoB,IACxB,OAAUA,EAAoB,IAC9B,MAASA,EAAoB,IAC7B,QAAWA,EAAoB,KAEjC,WAAcA,EAAoB,IAClC,WAAcA,EAAoB,IAClC,KAAQA,EAAoB,IAC5B,MAASA,EAAoB,IAC7B,KAAQA,EAAoB,IAC5B,aAAcA,EAAoB,IAClC,MAASA,EAAoB,IAC7B,UAAa,CACX,GAAIA,EAAoB,IACxB,IAAOA,EAAoB,KAE7B,MAAS,CACP,OAAUA,EAAoB,IAC9B,KAAQA,EAAoB,IAC5B,KAAQA,EAAoB,IAC5B,MAASA,EAAoB,KAE/B,QAAWA,EAAoB,IAC/B,OAAU,CACR,EAAKA,EAAoB,IACzB,EAAKA,EAAoB,KAE3B,OAAUA,EAAoB,IAC9B,MAASA,EAAoB,IAC7B,OAAU,CACR,KAAMA,EAAoB,IAC1B,KAAMA,EAAoB,KAE5B,KAAQA,EAAoB,IAC5B,KAAQ,CACN,QAAWA,EAAoB,IAC/B,OAAUA,EAAoB,KAC9B,MAASA,EAAoB,MAE/B,OAAU,CACR,IAAOA,EAAoB,KAC3B,MAASA,EAAoB,MAE/B,OAAUA,EAAoB,KAC9B,UAAaA,EAAoB,KACjC,MAASA,EAAoB,OAKzB,SAAU33B,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQ8mD,mBAAqB9mD,EAAQgrB,aAAUxoB,EAE/C,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfa,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC0b,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCrY,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAEtC,SAASxD,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI8kB,EAAU,SAAU9J,GAGtB,SAAS8J,EAAQ9Y,EAAOp5B,GACtB8sB,EAAgBvhC,KAAM2mD,GAEtB,IAAIj3C,EAAQ+xB,EAA2BzhC,MAAO2mD,EAAQ5sB,WAAav/B,OAAOimC,eAAekmB,IAAUtkD,KAAKrC,KAAM6tC,EAAOp5B,IAkBrH,OAhBA/E,EAAMk3C,aAAe,EACrBl3C,EAAMm3C,cAAe,EACrBn3C,EAAM4V,QACN5V,EAAMm+B,MAAMjI,GAAG8W,EAAQ9xB,QAAQib,OAAOC,eAAe,SAAUgH,EAAW5vB,EAAOouB,EAAUhwC,GACrFwxC,IAAc4P,EAAQ9xB,QAAQib,OAAOE,aAAer2B,EAAMm3C,eACzDn3C,EAAM+E,QAAQqyC,UAAYxrD,IAAWohD,EAAQ9xB,QAAQ4c,QAAQmD,KAGhEj7B,EAAMmvB,UAAU3hB,GAFhBxN,EAAMq3C,OAAO7pC,EAAOouB,OAKxB57B,EAAMm+B,MAAMrI,SAASuX,WAAW,CAAEvhD,IAAK,IAAKklD,UAAU,GAAQhxC,EAAMs3C,KAAKnsC,KAAKnL,IAC9EA,EAAMm+B,MAAMrI,SAASuX,WAAW,CAAEvhD,IAAK,IAAKklD,UAAU,EAAMz4B,UAAU,GAAQvY,EAAMu3C,KAAKpsC,KAAKnL,IAC1F,OAAOxM,KAAKmH,UAAUsyC,WACxBjtC,EAAMm+B,MAAMrI,SAASuX,WAAW,CAAEvhD,IAAK,IAAKklD,UAAU,GAAQhxC,EAAMu3C,KAAKpsC,KAAKnL,IAEzEA,EAwET,OA/FAiyB,EAAUglB,EAAS9J,GA0BnB7c,EAAa2mB,EAAS,CAAC,CACrBnrD,IAAK,SACLM,MAAO,SAAgBR,EAAQ4rD,GAC7B,GAAkC,IAA9BlnD,KAAKmnD,MAAM7rD,GAAQD,OAAvB,CACA,IAAI6hB,EAAQld,KAAKmnD,MAAM7rD,GAAQihC,MAC/Bv8B,KAAKmnD,MAAMD,GAAMnsD,KAAKmiB,GACtBld,KAAK4mD,aAAe,EACpB5mD,KAAK6mD,cAAe,EACpB7mD,KAAK6tC,MAAMmT,eAAe9jC,EAAM5hB,GAASohD,EAAQ9xB,QAAQ4c,QAAQmD,MACjE3qC,KAAK6mD,cAAe,EACpB,IAAI5jD,EAAQyjD,EAAmBxpC,EAAM5hB,IACrC0E,KAAK6tC,MAAM/F,aAAa7kC,MAEzB,CACDzH,IAAK,QACLM,MAAO,WACLkE,KAAKmnD,MAAQ,CAAEH,KAAM,GAAIC,KAAM,MAEhC,CACDzrD,IAAK,SACLM,MAAO,WACLkE,KAAK4mD,aAAe,IAErB,CACDprD,IAAK,SACLM,MAAO,SAAgBsrD,EAAa9b,GAClC,GAA+B,IAA3B8b,EAAYlxC,IAAI7a,OAApB,CACA2E,KAAKmnD,MAAMF,KAAO,GAClB,IAAII,EAAYrnD,KAAK6tC,MAAMhF,cAAcnN,KAAK4P,GAC1CxiB,EAAY7pB,KAAKyN,MACrB,GAAI1M,KAAK4mD,aAAe5mD,KAAKyU,QAAQ6yC,MAAQx+B,GAAa9oB,KAAKmnD,MAAMH,KAAK3rD,OAAS,EAAG,CACpF,IAAI6hB,EAAQld,KAAKmnD,MAAMH,KAAKzqB,MAC5B8qB,EAAYA,EAAU/pB,QAAQpgB,EAAM8pC,MACpCI,EAAclqC,EAAM+pC,KAAK3pB,QAAQ8pB,QAEjCpnD,KAAK4mD,aAAe99B,EAEtB9oB,KAAKmnD,MAAMH,KAAKjsD,KAAK,CACnBksD,KAAMG,EACNJ,KAAMK,IAEJrnD,KAAKmnD,MAAMH,KAAK3rD,OAAS2E,KAAKyU,QAAQ8yC,UACxCvnD,KAAKmnD,MAAMH,KAAKjkB,WAGnB,CACDvnC,IAAK,OACLM,MAAO,WACLkE,KAAK2nC,OAAO,OAAQ,UAErB,CACDnsC,IAAK,YACLM,MAAO,SAAmBohB,GACxBld,KAAKmnD,MAAMH,KAAKzrD,SAAQ,SAAUosC,GAChCA,EAAOqf,KAAO9pC,EAAM2hB,UAAU8I,EAAOqf,MAAM,GAC3Crf,EAAOsf,KAAO/pC,EAAM2hB,UAAU8I,EAAOsf,MAAM,MAE7CjnD,KAAKmnD,MAAMF,KAAK1rD,SAAQ,SAAUosC,GAChCA,EAAOqf,KAAO9pC,EAAM2hB,UAAU8I,EAAOqf,MAAM,GAC3Crf,EAAOsf,KAAO/pC,EAAM2hB,UAAU8I,EAAOsf,MAAM,QAG9C,CACDzrD,IAAK,OACLM,MAAO,WACLkE,KAAK2nC,OAAO,OAAQ,YAIjBgf,EAhGK,CAiGZtiB,EAASzZ,SAQX,SAAS48B,EAAsBtqC,GAC7B,IAAIkf,EAASlf,EAAMhH,IAAIgH,EAAMhH,IAAI7a,OAAS,GAC1C,OAAc,MAAV+gC,IACiB,MAAjBA,EAAOJ,OACuB,kBAAlBI,EAAOJ,QAAuBI,EAAOJ,OAAOqG,SAAS,MAE5C,MAArBjG,EAAOhC,YACF5/B,OAAOD,KAAK6hC,EAAOhC,YAAY7T,MAAK,SAAUs+B,GACnD,OAA2E,MAApE7jB,EAAYpW,QAAQiO,MAAMgsB,EAAM7jB,EAAYpW,QAAQ8N,MAAMsC,WAMvE,SAAS0rB,EAAmBxpC,GAC1B,IAAIuqC,EAAevqC,EAAM6N,QAAO,SAAU1vB,EAAQugC,GAEhD,OADAvgC,GAAUugC,EAAGkB,QAAU,EAChBzhC,IACN,GACCqsD,EAAcxqC,EAAM7hB,SAAWosD,EAInC,OAHID,EAAsBtqC,KACxBwqC,GAAe,GAEVA,EA7BTf,EAAQ9b,SAAW,CACjByc,MAAO,IACPC,SAAU,IACVT,UAAU,GA6BZlnD,EAAQgrB,QAAU+7B,EAClB/mD,EAAQ8mD,mBAAqBA,GAIvB,SAAU/mD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQ+nD,iBAAcvlD,EAExC,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZI,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAElCG,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtC2K,EAAWlU,EAAoB,GAE/BmU,EAAY7K,EAAuB4K,GAEnCoX,EAAYtrB,EAAoB,IAEhCurB,EAAajiB,EAAuBgiB,GAEpCle,EAASpN,EAAoB,IAE7BqN,EAAU/D,EAAuB8D,GAEjCkjB,EAAetwB,EAAoB,IAEnCuwB,EAAgBjnB,EAAuBgnB,GAEvCE,EAAcxwB,EAAoB,IAElCywB,EAAennB,EAAuBknB,GAEtCE,EAAU1wB,EAAoB,IAE9B2wB,EAAWrnB,EAAuBonB,GAElCE,EAAW5wB,EAAoB,IAE/B6wB,EAAYvnB,EAAuBsnB,GAEvC,SAAStnB,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIumB,EAAS,EAAC,EAAO,SAAU,QAAS,WAEpCC,EAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAEhYC,EAAQ,EAAC,EAAO,QAAS,aAEzBC,EAAU,CAAC,IAAK,IAAK,KAAK,GAE1BC,EAAQ,CAAC,SAAS,EAAO,QAAS,QAElCC,EAAY,SAAUC,GAGxB,SAASD,EAAU5a,EAAOp5B,GACxB8sB,EAAgBvhC,KAAMyoD,GAEtB,IAAI/4C,EAAQ+xB,EAA2BzhC,MAAOyoD,EAAU1uB,WAAav/B,OAAOimC,eAAegoB,IAAYpmD,KAAKrC,KAAM6tC,EAAOp5B,IAErHk0C,EAAW,SAASA,EAAS5kD,GAC/B,IAAKyM,SAASgQ,KAAKnB,SAASwuB,EAAM3W,MAChC,OAAO1mB,SAASgQ,KAAK/C,oBAAoB,QAASkrC,GAE/B,MAAjBj5C,EAAMk5C,SAAoBl5C,EAAMk5C,QAAQ1xB,KAAK7X,SAAStb,EAAE7I,SAAWsV,SAASmK,gBAAkBjL,EAAMk5C,QAAQC,SAAYn5C,EAAMm+B,MAAMzE,YACtI15B,EAAMk5C,QAAQE,OAEK,MAAjBp5C,EAAMq5C,SACRr5C,EAAMq5C,QAAQxtD,SAAQ,SAAUytD,GACzBA,EAAOvlC,UAAUpE,SAAStb,EAAE7I,SAC/B8tD,EAAOrjC,YAMf,OADAkoB,EAAM3I,QAAQkP,UAAU,QAAS5jC,SAASgQ,KAAMmoC,GACzCj5C,EAyET,OAhGAiyB,EAAU8mB,EAAWC,GA0BrB1oB,EAAayoB,EAAW,CAAC,CACvBjtD,IAAK,YACLM,MAAO,SAAmBe,GACxB,IAAI8C,EAAS0gC,EAAKooB,EAAUvwC,UAAU6hB,WAAav/B,OAAOimC,eAAegoB,EAAUvwC,WAAY,YAAalY,MAAMqC,KAAKrC,KAAMnD,GAI7H,MAHa,YAATA,GACFmD,KAAKipD,cAActpD,GAEdA,IAER,CACDnE,IAAK,eACLM,MAAO,SAAsBotD,EAASC,GACpCD,EAAQ3tD,SAAQ,SAAU6tD,GACxB,IAAIl5C,EAAYk5C,EAAOrkC,aAAa,UAAY,GAChD7U,EAAUpS,MAAM,OAAOvC,SAAQ,SAAUsB,GACvC,GAAKA,EAAKgqC,WAAW,SACrBhqC,EAAOA,EAAKuB,MAAM,MAAM/C,QACL,MAAf8tD,EAAMtsD,IACV,GAAa,cAATA,EACFusD,EAAO/lC,UAAY8lC,EAAMtsD,GAAM,IAAMssD,EAAMtsD,GAAM,YAC5C,GAA2B,kBAAhBssD,EAAMtsD,GACtBusD,EAAO/lC,UAAY8lC,EAAMtsD,OACpB,CACL,IAAIf,EAAQstD,EAAOttD,OAAS,GACf,MAATA,GAAiBqtD,EAAMtsD,GAAMf,KAC/BstD,EAAO/lC,UAAY8lC,EAAMtsD,GAAMf,aAMxC,CACDN,IAAK,eACLM,MAAO,SAAsButD,EAASF,GACpC,IAAIzmB,EAAS1iC,KAEbA,KAAK+oD,QAAUM,EAAQ7qD,KAAI,SAAUigB,GACnC,GAAIA,EAAOtO,UAAUkP,SAAS,YAI5B,OAHsC,MAAlCZ,EAAOiM,cAAc,WACvB4+B,EAAW7qC,EAAQ2pC,GAEd,IAAIL,EAAan9B,QAAQnM,EAAQ0qC,EAAMI,OACzC,GAAI9qC,EAAOtO,UAAUkP,SAAS,kBAAoBZ,EAAOtO,UAAUkP,SAAS,YAAa,CAC9F,IAAIrgB,EAASyf,EAAOtO,UAAUkP,SAAS,iBAAmB,aAAe,QAIzE,OAHsC,MAAlCZ,EAAOiM,cAAc,WACvB4+B,EAAW7qC,EAAQ4pC,EAAmB,eAAXrpD,EAA0B,UAAY,WAE5D,IAAI6oD,EAAcj9B,QAAQnM,EAAQ0qC,EAAMnqD,IAW/C,OATsC,MAAlCyf,EAAOiM,cAAc,YACnBjM,EAAOtO,UAAUkP,SAAS,WAC5BiqC,EAAW7qC,EAAQ6pC,GACV7pC,EAAOtO,UAAUkP,SAAS,aACnCiqC,EAAW7qC,EAAQ8pC,GACV9pC,EAAOtO,UAAUkP,SAAS,YACnCiqC,EAAW7qC,EAAQ+pC,IAGhB,IAAIP,EAASr9B,QAAQnM,MAGhC,IAAI4nB,EAAS,WACX3D,EAAOqmB,QAAQxtD,SAAQ,SAAUytD,GAC/BA,EAAO3iB,aAGXrmC,KAAK6tC,MAAMjI,GAAG6F,EAAU7gB,QAAQib,OAAOC,cAAeO,OAInDoiB,EAjGO,CAkGd9jB,EAAQ/Z,SAEV69B,EAAU5d,UAAW,EAAIlK,EAAS/V,UAAS,EAAM,GAAI+Z,EAAQ/Z,QAAQigB,SAAU,CAC7EzT,QAAS,CACP+T,QAAS,CACPqe,SAAU,CACRC,QAAS,WACPzpD,KAAK6tC,MAAMtI,MAAMqjB,QAAQc,KAAK,YAEhClW,MAAO,WACL,IAAIxM,EAAShnC,KAET2pD,EAAY3pD,KAAKyjB,UAAUiH,cAAc,6BAC5B,MAAbi/B,IACFA,EAAYn5C,SAASF,cAAc,SACnCq5C,EAAUj4C,aAAa,OAAQ,QAC/Bi4C,EAAUj4C,aAAa,SAAU,6DACjCi4C,EAAUx5C,UAAUC,IAAI,YACxBu5C,EAAUpsC,iBAAiB,UAAU,WACnC,GAAuB,MAAnBosC,EAAUC,OAAuC,MAAtBD,EAAUC,MAAM,GAAY,CACzD,IAAIC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAUhmD,GACxB,IAAI8pB,EAAQmZ,EAAO6G,MAAMnG,cAAa,GACtCV,EAAO6G,MAAMmT,gBAAe,IAAIlgB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,OAAO65B,OAAOjP,EAAMxyB,QAAQ2gC,OAAO,CAAEwX,MAAOzvC,EAAE7I,OAAO+E,SAAWwrC,EAAU7gB,QAAQ4c,QAAQmD,MAC9J3D,EAAO6G,MAAM/F,aAAaja,EAAM5qB,MAAQ,EAAGwoC,EAAU7gB,QAAQ4c,QAAQO,QACrE4hB,EAAU7tD,MAAQ,IAEpB+tD,EAAOG,cAAcL,EAAUC,MAAM,QAGzC5pD,KAAKyjB,UAAU9R,YAAYg4C,IAE7BA,EAAU1gC,SAEZghC,MAAO,WACLjqD,KAAK6tC,MAAMtI,MAAMqjB,QAAQc,KAAK,eAOxC,IAAI/B,EAAc,SAAUuC,GAG1B,SAASvC,EAAY9Z,EAAOsc,GAC1B5oB,EAAgBvhC,KAAM2nD,GAEtB,IAAIpgB,EAAS9F,EAA2BzhC,MAAO2nD,EAAY5tB,WAAav/B,OAAOimC,eAAeknB,IAActlD,KAAKrC,KAAM6tC,EAAOsc,IAI9H,OAFA5iB,EAAOshB,QAAUthB,EAAOrQ,KAAKxM,cAAc,sBAC3C6c,EAAOkW,SACAlW,EA2FT,OApGA5F,EAAUgmB,EAAauC,GAYvBlqB,EAAa2nB,EAAa,CAAC,CACzBnsD,IAAK,SACLM,MAAO,WACL,IAAIksC,EAAShoC,KAEbA,KAAK6oD,QAAQtrC,iBAAiB,WAAW,SAAU1L,GAC7CgxC,EAAWj4B,QAAQtoB,MAAMuP,EAAO,UAClCm2B,EAAOoiB,OACPv4C,EAAM4V,kBACGo7B,EAAWj4B,QAAQtoB,MAAMuP,EAAO,YACzCm2B,EAAOqiB,SACPx4C,EAAM4V,uBAIX,CACDjsB,IAAK,SACLM,MAAO,WACLkE,KAAK8oD,SAEN,CACDttD,IAAK,OACLM,MAAO,WACL,IAAIwQ,EAAOlR,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,OAC3EkvD,EAAUlvD,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,KAElF4E,KAAKk3B,KAAK/mB,UAAUE,OAAO,aAC3BrQ,KAAKk3B,KAAK/mB,UAAUC,IAAI,cACT,MAAXk6C,EACFtqD,KAAK6oD,QAAQ/sD,MAAQwuD,EACZh+C,IAAStM,KAAKk3B,KAAKnS,aAAa,eACzC/kB,KAAK6oD,QAAQ/sD,MAAQ,IAEvBkE,KAAK+H,SAAS/H,KAAK6tC,MAAMtF,UAAUvoC,KAAK6tC,MAAMvI,UAAU2O,aACxDj0C,KAAK6oD,QAAQpqC,SACbze,KAAK6oD,QAAQn3C,aAAa,cAAe1R,KAAK6oD,QAAQ9jC,aAAa,QAAUzY,IAAS,IACtFtM,KAAKk3B,KAAKxlB,aAAa,YAAapF,KAErC,CACD9Q,IAAK,eACLM,MAAO,WACL,IAAIurC,EAAYrnC,KAAK6tC,MAAM5I,mBAAmBoC,UAC9CrnC,KAAK6tC,MAAMvsB,QACXthB,KAAK6tC,MAAM5I,mBAAmBoC,UAAYA,IAE3C,CACD7rC,IAAK,OACLM,MAAO,WACL,IAAIA,EAAQkE,KAAK6oD,QAAQ/sD,MACzB,OAAQkE,KAAKk3B,KAAKnS,aAAa,cAC7B,IAAK,OAED,IAAIsiB,EAAYrnC,KAAK6tC,MAAM3W,KAAKmQ,UAC5BrnC,KAAKuqD,WACPvqD,KAAK6tC,MAAMhG,WAAW7nC,KAAKuqD,UAAW,OAAQzuD,EAAO2vC,EAAU7gB,QAAQ4c,QAAQmD,aACxE3qC,KAAKuqD,YAEZvqD,KAAKwqD,eACLxqD,KAAK6tC,MAAM7uC,OAAO,OAAQlD,EAAO2vC,EAAU7gB,QAAQ4c,QAAQmD,OAE7D3qC,KAAK6tC,MAAM3W,KAAKmQ,UAAYA,EAC5B,MAEJ,IAAK,QAEDvrC,EAAQ2uD,EAAgB3uD,GAE5B,IAAK,UAED,IAAKA,EAAO,MACZ,IAAI+xB,EAAQ7tB,KAAK6tC,MAAMnG,cAAa,GACpC,GAAa,MAAT7Z,EAAe,CACjB,IAAI5qB,EAAQ4qB,EAAM5qB,MAAQ4qB,EAAMxyB,OAChC2E,KAAK6tC,MAAMtE,YAAYtmC,EAAOjD,KAAKk3B,KAAKnS,aAAa,aAAcjpB,EAAO2vC,EAAU7gB,QAAQ4c,QAAQmD,MACxD,YAAxC3qC,KAAKk3B,KAAKnS,aAAa,cACzB/kB,KAAK6tC,MAAMlE,WAAW1mC,EAAQ,EAAG,IAAKwoC,EAAU7gB,QAAQ4c,QAAQmD,MAElE3qC,KAAK6tC,MAAM/F,aAAa7kC,EAAQ,EAAGwoC,EAAU7gB,QAAQ4c,QAAQmD,MAE/D,MAEJ,SAEF3qC,KAAK6oD,QAAQ/sD,MAAQ,GACrBkE,KAAK8oD,WAIFnB,EArGS,CAsGhBQ,EAAUv9B,SAEZ,SAAS6/B,EAAgB3zB,GACvB,IAAIx0B,EAAQw0B,EAAIx0B,MAAM,+EAAiFw0B,EAAIx0B,MAAM,kEACjH,OAAIA,GACMA,EAAM,IAAM,SAAW,4BAA8BA,EAAM,GAAK,eAEtEA,EAAQw0B,EAAIx0B,MAAM,oDAEZA,EAAM,IAAM,SAAW,6BAA+BA,EAAM,GAAK,IAEpEw0B,EAGT,SAASwyB,EAAW7qC,EAAQwjB,GAC1B,IAAIlT,EAAe3zB,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAElF6mC,EAAO1mC,SAAQ,SAAUO,GACvB,IAAIwyB,EAAS9d,SAASF,cAAc,UAChCxU,IAAUizB,EACZT,EAAO5c,aAAa,WAAY,YAEhC4c,EAAO5c,aAAa,QAAS5V,GAE/B2iB,EAAO9M,YAAY2c,MAIvB1uB,EAAQ+nD,YAAcA,EACtB/nD,EAAQgrB,QAAU69B,GAIZ,SAAU9oD,EAAQC,EAAS03B,GAEjC,aAEA98B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI4uD,EAA4B,WAC5B,SAASA,IACL1qD,KAAKotB,KAAOptB,KAAKgjC,KAAO,KACxBhjC,KAAK3E,OAAS,EA8HlB,OA5HAqvD,EAAWxyC,UAAUhT,OAAS,WAE1B,IADA,IAAI6qB,EAAQ,GACHY,EAAK,EAAGA,EAAKv1B,UAAUC,OAAQs1B,IACpCZ,EAAMY,GAAMv1B,UAAUu1B,GAE1B3wB,KAAKsgB,aAAayP,EAAM,GAAI,MACxBA,EAAM10B,OAAS,GACf2E,KAAKkF,OAAOlK,MAAMgF,KAAM+vB,EAAM3xB,MAAM,KAG5CssD,EAAWxyC,UAAUmH,SAAW,SAAU1O,GACtC,IAAIg6C,EAAKttB,EAAOr9B,KAAKk9B,WACrB,MAAQytB,EAAMttB,IACV,GAAIstB,IAAQh6C,EACR,OAAO,EAEf,OAAO,GAEX+5C,EAAWxyC,UAAUoI,aAAe,SAAU3P,EAAMm2B,GAC3Cn2B,IAELA,EAAK0sB,KAAOyJ,EACG,MAAXA,GACAn2B,EAAK6/B,KAAO1J,EAAQ0J,KACA,MAAhB1J,EAAQ0J,OACR1J,EAAQ0J,KAAKnT,KAAO1sB,GAExBm2B,EAAQ0J,KAAO7/B,EACXm2B,IAAY9mC,KAAKotB,OACjBptB,KAAKotB,KAAOzc,IAGE,MAAb3Q,KAAKgjC,MACVhjC,KAAKgjC,KAAK3F,KAAO1sB,EACjBA,EAAK6/B,KAAOxwC,KAAKgjC,KACjBhjC,KAAKgjC,KAAOryB,IAGZA,EAAK6/B,KAAO,KACZxwC,KAAKotB,KAAOptB,KAAKgjC,KAAOryB,GAE5B3Q,KAAK3E,QAAU,IAEnBqvD,EAAWxyC,UAAUkK,OAAS,SAAUlnB,GACpC,IAAI+H,EAAQ,EAAG0nD,EAAM3qD,KAAKotB,KAC1B,MAAc,MAAPu9B,EAAa,CAChB,GAAIA,IAAQzvD,EACR,OAAO+H,EACXA,GAAS0nD,EAAItvD,SACbsvD,EAAMA,EAAIttB,KAEd,OAAQ,GAEZqtB,EAAWxyC,UAAU7H,OAAS,SAAUM,GAC/B3Q,KAAKqf,SAAS1O,KAEF,MAAbA,EAAK6/B,OACL7/B,EAAK6/B,KAAKnT,KAAO1sB,EAAK0sB,MACT,MAAb1sB,EAAK0sB,OACL1sB,EAAK0sB,KAAKmT,KAAO7/B,EAAK6/B,MACtB7/B,IAAS3Q,KAAKotB,OACdptB,KAAKotB,KAAOzc,EAAK0sB,MACjB1sB,IAAS3Q,KAAKgjC,OACdhjC,KAAKgjC,KAAOryB,EAAK6/B,MACrBxwC,KAAK3E,QAAU,IAEnBqvD,EAAWxyC,UAAUglB,SAAW,SAAU0tB,GAGtC,YAFgB,IAAZA,IAAsBA,EAAU5qD,KAAKotB,MAElC,WACH,IAAImd,EAAMqgB,EAGV,OAFe,MAAXA,IACAA,EAAUA,EAAQvtB,MACfkN,IAGfmgB,EAAWxyC,UAAU0gB,KAAO,SAAU31B,EAAOw1C,QACvB,IAAdA,IAAwBA,GAAY,GACxC,IAAIkS,EAAKttB,EAAOr9B,KAAKk9B,WACrB,MAAQytB,EAAMttB,IAAS,CACnB,IAAIhiC,EAASsvD,EAAItvD,SACjB,GAAI4H,EAAQ5H,GACPo9C,GAAax1C,IAAU5H,IAAuB,MAAZsvD,EAAIttB,MAAsC,IAAtBstB,EAAIttB,KAAKhiC,UAChE,MAAO,CAACsvD,EAAK1nD,GAEjBA,GAAS5H,EAEb,MAAO,CAAC,KAAM,IAElBqvD,EAAWxyC,UAAU3c,QAAU,SAAUsvD,GACrC,IAAIF,EAAKttB,EAAOr9B,KAAKk9B,WACrB,MAAQytB,EAAMttB,IACVwtB,EAASF,IAGjBD,EAAWxyC,UAAU8/B,UAAY,SAAU/0C,EAAO5H,EAAQwvD,GACtD,KAAIxvD,GAAU,GAAd,CAEA,IACIsvD,EADA51C,EAAK/U,KAAK44B,KAAK31B,GAAQ0xC,EAAY5/B,EAAG,GAAIqN,EAASrN,EAAG,GACjD+1C,EAAW7nD,EAAQmf,EAAQib,EAAOr9B,KAAKk9B,SAASyX,GACzD,OAAQgW,EAAMttB,MAAWytB,EAAW7nD,EAAQ5H,EAAQ,CAChD,IAAI0vD,EAAYJ,EAAItvD,SAChB4H,EAAQ6nD,EACRD,EAASF,EAAK1nD,EAAQ6nD,EAAUtpD,KAAKD,IAAIlG,EAAQyvD,EAAWC,EAAY9nD,IAGxE4nD,EAASF,EAAK,EAAGnpD,KAAKD,IAAIwpD,EAAW9nD,EAAQ5H,EAASyvD,IAE1DA,GAAYC,KAGpBL,EAAWxyC,UAAU1Z,IAAM,SAAUqsD,GACjC,OAAO7qD,KAAK+qB,QAAO,SAAUwtB,EAAMoS,GAE/B,OADApS,EAAKx9C,KAAK8vD,EAASF,IACZpS,IACR,KAEPmS,EAAWxyC,UAAU6S,OAAS,SAAU8/B,EAAUtS,GAC9C,IAAIoS,EAAKttB,EAAOr9B,KAAKk9B,WACrB,MAAQytB,EAAMttB,IACVkb,EAAOsS,EAAStS,EAAMoS,GAE1B,OAAOpS,GAEJmS,EAjIoB,GAmI/B9qD,EAAQgrB,QAAU8/B,GAKZ,SAAU/qD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI87B,EAAcN,EAAoB,IAClCkB,EAAWlB,EAAoB,GAC/B0zB,EAAkB,CAClB5wB,YAAY,EACZ6wB,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,GAETC,EAA0B,IAC1BC,EAA4B,SAAUnxB,GAEtC,SAASmxB,EAAW36C,GAChB,IAAIjB,EAAQyqB,EAAO93B,KAAKrC,KAAM2Q,IAAS3Q,KAOvC,OANA0P,EAAMy1B,OAASz1B,EACfA,EAAM4sC,SAAW,IAAIiP,kBAAiB,SAAUrlB,GAC5Cx2B,EAAM22B,OAAOH,MAEjBx2B,EAAM4sC,SAASkP,QAAQ97C,EAAMsyB,QAASgpB,GACtCt7C,EAAM0lC,SACC1lC,EA8IX,OAvJAkqB,EAAU0xB,EAAYnxB,GAWtBmxB,EAAWpzC,UAAUigC,OAAS,WAC1Bhe,EAAOjiB,UAAUigC,OAAO91C,KAAKrC,MAC7BA,KAAKs8C,SAASmP,cAElBH,EAAWpzC,UAAU23B,SAAW,SAAU5sC,EAAO5H,GAC7C2E,KAAKqmC,SACS,IAAVpjC,GAAe5H,IAAW2E,KAAK3E,SAC/B2E,KAAKU,SAASnF,SAAQ,SAAU0vB,GAC5BA,EAAM5a,YAIV8pB,EAAOjiB,UAAU23B,SAASxtC,KAAKrC,KAAMiD,EAAO5H,IAGpDiwD,EAAWpzC,UAAUg4B,SAAW,SAAUjtC,EAAO5H,EAAQwB,EAAMf,GAC3DkE,KAAKqmC,SACLlM,EAAOjiB,UAAUg4B,SAAS7tC,KAAKrC,KAAMiD,EAAO5H,EAAQwB,EAAMf,IAE9DwvD,EAAWpzC,UAAUqqB,SAAW,SAAUt/B,EAAOnH,EAAOsmC,GACpDpiC,KAAKqmC,SACLlM,EAAOjiB,UAAUqqB,SAASlgC,KAAKrC,KAAMiD,EAAOnH,EAAOsmC,IAEvDkpB,EAAWpzC,UAAUu4B,SAAW,SAAUvK,EAAWjD,GACjD,IAAIvzB,EAAQ1P,UACM,IAAdkmC,IAAwBA,EAAY,SACxB,IAAZjD,IAAsBA,EAAU,IACpC9I,EAAOjiB,UAAUu4B,SAASpuC,KAAKrC,KAAMijC,GAErC,IAAIyoB,EAAU,GAAGttD,MAAMiE,KAAKrC,KAAKs8C,SAASC,eAG1C,MAAOmP,EAAQrwD,OAAS,EACpB6qC,EAAUnrC,KAAK2wD,EAAQnvB,OA+B3B,IA7BA,IAAIovB,EAAO,SAAU/wB,EAAMgxB,QACJ,IAAfA,IAAyBA,GAAa,GAC9B,MAARhxB,GAAgBA,IAASlrB,GAEE,MAA3BkrB,EAAKoH,QAAQhxB,aAGgC,MAA7C4pB,EAAKoH,QAAQxJ,EAASmC,UAAUuL,YAEhCtL,EAAKoH,QAAQxJ,EAASmC,UAAUuL,UAAY,IAE5C0lB,GACAD,EAAK/wB,EAAKz9B,UAEdszC,EAAW,SAAU7V,GAIc,MAAnCA,EAAKoH,QAAQxJ,EAASmC,WAE2B,MAA7CC,EAAKoH,QAAQxJ,EAASmC,UAAUuL,YAGhCtL,aAAgBhD,EAAYhN,SAC5BgQ,EAAKl6B,SAASnF,QAAQk1C,GAE1B7V,EAAK6V,SAASxN,KAEd4oB,EAAY3lB,EACP/qC,EAAI,EAAG0wD,EAAUxwD,OAAS,EAAGF,GAAK,EAAG,CAC1C,GAAIA,GAAKkwD,EACL,MAAM,IAAI30C,MAAM,mDAEpBm1C,EAAUtwD,SAAQ,SAAUq9C,GACxB,IAAIhe,EAAOpC,EAASI,KAAKggB,EAAS19C,QAAQ,GAC9B,MAAR0/B,IAEAA,EAAKoH,UAAY4W,EAAS19C,SACJ,cAAlB09C,EAASpnC,MACTm6C,EAAKnzB,EAASI,KAAKggB,EAASkT,iBAAiB,IAC7C,GAAGvwD,QAAQ8G,KAAKu2C,EAASF,YAAY,SAAU/nC,GAC3C,IAAIsa,EAAQuN,EAASI,KAAKjoB,GAAM,GAChCg7C,EAAK1gC,GAAO,GACRA,aAAiB2M,EAAYhN,SAC7BK,EAAMvqB,SAASnF,SAAQ,SAAUwwD,GAC7BJ,EAAKI,GAAY,UAKN,eAAlBnT,EAASpnC,MACdm6C,EAAK/wB,EAAK4V,OAGlBmb,EAAK/wB,OAET56B,KAAKU,SAASnF,QAAQk1C,GACtBob,EAAY,GAAGztD,MAAMiE,KAAKrC,KAAKs8C,SAASC,eACxCmP,EAAUG,EAAUztD,QACpB,MAAOstD,EAAQrwD,OAAS,EACpB6qC,EAAUnrC,KAAK2wD,EAAQnvB,SAGnC+uB,EAAWpzC,UAAUmuB,OAAS,SAAUH,EAAWjD,GAC/C,IAAIvzB,EAAQ1P,UACI,IAAZijC,IAAsBA,EAAU,IACpCiD,EAAYA,GAAalmC,KAAKs8C,SAASC,cAEvCrW,EACK1nC,KAAI,SAAUo6C,GACf,IAAIhe,EAAOpC,EAASI,KAAKggB,EAAS19C,QAAQ,GAC1C,OAAY,MAAR0/B,EACO,KAEsC,MAA7CA,EAAKoH,QAAQxJ,EAASmC,UAAUuL,WAEhCtL,EAAKoH,QAAQxJ,EAASmC,UAAUuL,UAAY,CAAC0S,GACtChe,IAIPA,EAAKoH,QAAQxJ,EAASmC,UAAUuL,UAAUnrC,KAAK69C,GACxC,SAGVr9C,SAAQ,SAAUq/B,GACP,MAARA,GACAA,IAASlrB,GAE0B,MAAnCkrB,EAAKoH,QAAQxJ,EAASmC,WAG1BC,EAAKyL,OAAOzL,EAAKoH,QAAQxJ,EAASmC,UAAUuL,WAAa,GAAIjD,MAGhB,MAA7CjjC,KAAKgiC,QAAQxJ,EAASmC,UAAUuL,WAEhC/L,EAAOjiB,UAAUmuB,OAAOhkC,KAAKrC,KAAMA,KAAKgiC,QAAQxJ,EAASmC,UAAUuL,UAAWjD,GAElFjjC,KAAKywC,SAASvK,EAAWjD,IAE7BqoB,EAAWhwB,SAAW,SACtBgwB,EAAWloB,aAAe,QAC1BkoB,EAAWzwB,MAAQrC,EAASE,MAAM8J,WAClC8oB,EAAWpwB,QAAU,MACdowB,EAxJoB,CAyJ7B1zB,EAAYhN,SACdhrB,EAAQgrB,QAAU0gC,GAKZ,SAAU3rD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI+7B,EAAWP,EAAoB,IAC/BkB,EAAWlB,EAAoB,GAEnC,SAAS00B,EAAQC,EAAMC,GACnB,GAAI1xD,OAAOD,KAAK0xD,GAAM5wD,SAAWb,OAAOD,KAAK2xD,GAAM7wD,OAC/C,OAAO,EAEX,IAAK,IAAI8wD,KAAQF,EAEb,GAAIA,EAAKE,KAAUD,EAAKC,GACpB,OAAO,EAEf,OAAO,EAEX,IAAIC,EAA4B,SAAUjyB,GAEtC,SAASiyB,IACL,OAAkB,OAAXjyB,GAAmBA,EAAOn/B,MAAMgF,KAAM5E,YAAc4E,KA8C/D,OAhDA45B,EAAUwyB,EAAYjyB,GAItBiyB,EAAWziC,QAAU,SAAUqY,GAC3B,GAAIA,EAAQ9G,UAAYkxB,EAAWlxB,QAEnC,OAAOf,EAAOxQ,QAAQtnB,KAAKrC,KAAMgiC,IAErCoqB,EAAWl0C,UAAUlZ,OAAS,SAAUnC,EAAMf,GAC1C,IAAI4T,EAAQ1P,KACRnD,IAASmD,KAAKmjC,QAAQ7H,UAAax/B,EAUnCq+B,EAAOjiB,UAAUlZ,OAAOqD,KAAKrC,KAAMnD,EAAMf,IATzCkE,KAAKU,SAASnF,SAAQ,SAAU0vB,GACtBA,aAAiB4M,EAASjN,UAC5BK,EAAQA,EAAMld,KAAKq+C,EAAW9wB,UAAU,IAE5C5rB,EAAM0qB,WAAWsF,KAAKzU,MAE1BjrB,KAAK0wC,WAMb0b,EAAWl0C,UAAUg4B,SAAW,SAAUjtC,EAAO5H,EAAQwB,EAAMf,GAC3D,GAA4B,MAAxBkE,KAAK2pB,UAAU9sB,IAAiB27B,EAASK,MAAMh8B,EAAM27B,EAASE,MAAMuW,WAAY,CAChF,IAAIrU,EAAO56B,KAAKosC,QAAQnpC,EAAO5H,GAC/Bu/B,EAAK57B,OAAOnC,EAAMf,QAGlBq+B,EAAOjiB,UAAUg4B,SAAS7tC,KAAKrC,KAAMiD,EAAO5H,EAAQwB,EAAMf,IAGlEswD,EAAWl0C,UAAUu4B,SAAW,SAAUxN,GACtC9I,EAAOjiB,UAAUu4B,SAASpuC,KAAKrC,KAAMijC,GACrC,IAAItZ,EAAU3pB,KAAK2pB,UACnB,GAAoC,IAAhCnvB,OAAOD,KAAKovB,GAAStuB,OACrB,OAAO2E,KAAK0wC,SAEhB,IAAIrT,EAAOr9B,KAAKq9B,KACZA,aAAgB+uB,GAAc/uB,EAAKmT,OAASxwC,MAAQgsD,EAAQriC,EAAS0T,EAAK1T,aAC1E0T,EAAKgP,aAAarsC,MAClBq9B,EAAKhtB,WAGb+7C,EAAW9wB,SAAW,SACtB8wB,EAAWvxB,MAAQrC,EAASE,MAAM2gB,YAClC+S,EAAWlxB,QAAU,OACdkxB,EAjDoB,CAkD7Bv0B,EAASjN,SACXhrB,EAAQgrB,QAAUwhC,GAKZ,SAAUzsD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAI+7B,EAAWP,EAAoB,IAC/BkB,EAAWlB,EAAoB,GAC/B+0B,EAA2B,SAAUlyB,GAErC,SAASkyB,IACL,OAAkB,OAAXlyB,GAAmBA,EAAOn/B,MAAMgF,KAAM5E,YAAc4E,KAiD/D,OAnDA45B,EAAUyyB,EAAWlyB,GAIrBkyB,EAAU1iC,QAAU,SAAUqY,GAC1B,IAAI9G,EAAU1C,EAASK,MAAMwzB,EAAU/wB,UAAUJ,QACjD,GAAI8G,EAAQ9G,UAAYA,EAExB,OAAOf,EAAOxQ,QAAQtnB,KAAKrC,KAAMgiC,IAErCqqB,EAAUn0C,UAAUlZ,OAAS,SAAUnC,EAAMf,GACS,MAA9C08B,EAASK,MAAMh8B,EAAM27B,EAASE,MAAMsC,SAG/Bn+B,IAASmD,KAAKmjC,QAAQ7H,UAAax/B,EAIxCq+B,EAAOjiB,UAAUlZ,OAAOqD,KAAKrC,KAAMnD,EAAMf,GAHzCkE,KAAKk5C,YAAYmT,EAAU/wB,YAMnC+wB,EAAUn0C,UAAUg4B,SAAW,SAAUjtC,EAAO5H,EAAQwB,EAAMf,GACR,MAA9C08B,EAASK,MAAMh8B,EAAM27B,EAASE,MAAMsC,OACpCh7B,KAAKhB,OAAOnC,EAAMf,GAGlBq+B,EAAOjiB,UAAUg4B,SAAS7tC,KAAKrC,KAAMiD,EAAO5H,EAAQwB,EAAMf,IAGlEuwD,EAAUn0C,UAAUqqB,SAAW,SAAUt/B,EAAOnH,EAAOsmC,GACnD,GAAW,MAAPA,GAA+D,MAAhD5J,EAASK,MAAM/8B,EAAO08B,EAASE,MAAMuC,QAEpDd,EAAOjiB,UAAUqqB,SAASlgC,KAAKrC,KAAMiD,EAAOnH,EAAOsmC,OAElD,CACD,IAAI+S,EAAQn1C,KAAKlC,MAAMmF,GACnB23B,EAAOpC,EAASG,OAAO78B,EAAOsmC,GAClC+S,EAAMh4C,OAAOmjB,aAAasa,EAAMua,KAGxCkX,EAAUn0C,UAAUmuB,OAAS,SAAUH,EAAWjD,GAC1C54B,UAAUC,UAAUhI,MAAM,WAC1BtC,KAAK8Z,QAGLqgB,EAAOjiB,UAAUmuB,OAAOhkC,KAAKrC,KAAMkmC,EAAWjD,IAGtDopB,EAAU/wB,SAAW,QACrB+wB,EAAUxxB,MAAQrC,EAASE,MAAM8J,WACjC6pB,EAAUnxB,QAAU,IACbmxB,EApDmB,CAqD5Bx0B,EAASjN,SACXhrB,EAAQgrB,QAAUyhC,GAKZ,SAAU1sD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIg8B,EAASR,EAAoB,IAC7Bg1B,EAA2B,SAAUnyB,GAErC,SAASmyB,IACL,OAAkB,OAAXnyB,GAAmBA,EAAOn/B,MAAMgF,KAAM5E,YAAc4E,KAsB/D,OAxBA45B,EAAU0yB,EAAWnyB,GAIrBmyB,EAAU3iC,QAAU,SAAUqY,KAG9BsqB,EAAUp0C,UAAUlZ,OAAS,SAAUnC,EAAMf,GAIzCq+B,EAAOjiB,UAAUg4B,SAAS7tC,KAAKrC,KAAM,EAAGA,KAAK3E,SAAUwB,EAAMf,IAEjEwwD,EAAUp0C,UAAUg4B,SAAW,SAAUjtC,EAAO5H,EAAQwB,EAAMf,GAC5C,IAAVmH,GAAe5H,IAAW2E,KAAK3E,SAC/B2E,KAAKhB,OAAOnC,EAAMf,GAGlBq+B,EAAOjiB,UAAUg4B,SAAS7tC,KAAKrC,KAAMiD,EAAO5H,EAAQwB,EAAMf,IAGlEwwD,EAAUp0C,UAAUyR,QAAU,WAC1B,OAAO3pB,KAAKmjC,QAAQxZ,QAAQ3pB,KAAKgiC,UAE9BsqB,EAzBmB,CA0B5Bx0B,EAAOlN,SACThrB,EAAQgrB,QAAU0hC,GAKZ,SAAU3sD,EAAQC,EAAS03B,GAEjC,aAEA,IAAIsC,EAAa55B,MAAQA,KAAK45B,WAAc,WACxC,IAAIC,EAAgBr/B,OAAOs/B,gBACtB,CAAEC,UAAW,cAAgBhqB,OAAS,SAAUgE,EAAG4Z,GAAK5Z,EAAEgmB,UAAYpM,IACvE,SAAU5Z,EAAG4Z,GAAK,IAAK,IAAI/pB,KAAK+pB,EAAOA,EAAExV,eAAevU,KAAImQ,EAAEnQ,GAAK+pB,EAAE/pB,KACzE,OAAO,SAAUmQ,EAAG4Z,GAEhB,SAASqM,IAAOh6B,KAAKi6B,YAAclmB,EADnC8lB,EAAc9lB,EAAG4Z,GAEjB5Z,EAAEmE,UAAkB,OAANyV,EAAanzB,OAAOm+B,OAAOhL,IAAMqM,EAAG9hB,UAAYyV,EAAEzV,UAAW,IAAI8hB,IAP3C,GAU5Cx/B,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,IACtD,IAAIg8B,EAASR,EAAoB,IAC7BkB,EAAWlB,EAAoB,GAC/BmV,EAA0B,SAAUtS,GAEpC,SAASsS,EAAS97B,GACd,IAAIjB,EAAQyqB,EAAO93B,KAAKrC,KAAM2Q,IAAS3Q,KAEvC,OADA0P,EAAMusB,KAAOvsB,EAAMyzB,QAAQrnC,MAAM4T,EAAMsyB,SAChCtyB,EA0EX,OA9EAkqB,EAAU6S,EAAUtS,GAMpBsS,EAAS9T,OAAS,SAAU78B,GACxB,OAAO0U,SAASmxC,eAAe7lD,IAEnC2wC,EAAS3wC,MAAQ,SAAUkmC,GACvB,IAAI/F,EAAO+F,EAAQ9kC,KAInB,OAFI++B,EAAK,eACLA,EAAOA,EAAK,gBACTA,GAEXwQ,EAASv0B,UAAU23B,SAAW,SAAU5sC,EAAO5H,GAC3C2E,KAAKgiC,QAAQ9kC,KAAO8C,KAAKi8B,KAAOj8B,KAAKi8B,KAAK79B,MAAM,EAAG6E,GAASjD,KAAKi8B,KAAK79B,MAAM6E,EAAQ5H,IAExFoxC,EAASv0B,UAAUjV,MAAQ,SAAU0N,EAAMyR,GACvC,OAAIpiB,KAAKgiC,UAAYrxB,EACVyR,GAEH,GAEZqqB,EAASv0B,UAAUqqB,SAAW,SAAUt/B,EAAOnH,EAAOsmC,GACvC,MAAPA,GACApiC,KAAKi8B,KAAOj8B,KAAKi8B,KAAK79B,MAAM,EAAG6E,GAASnH,EAAQkE,KAAKi8B,KAAK79B,MAAM6E,GAChEjD,KAAKgiC,QAAQ9kC,KAAO8C,KAAKi8B,MAGzB9B,EAAOjiB,UAAUqqB,SAASlgC,KAAKrC,KAAMiD,EAAOnH,EAAOsmC,IAG3DqK,EAASv0B,UAAU7c,OAAS,WACxB,OAAO2E,KAAKi8B,KAAK5gC,QAErBoxC,EAASv0B,UAAUu4B,SAAW,SAAUxN,GACpC9I,EAAOjiB,UAAUu4B,SAASpuC,KAAKrC,KAAMijC,GACrCjjC,KAAKi8B,KAAOj8B,KAAKmjC,QAAQrnC,MAAMkE,KAAKgiC,SACX,IAArBhiC,KAAKi8B,KAAK5gC,OACV2E,KAAKqQ,SAEArQ,KAAKq9B,gBAAgBoP,GAAYzsC,KAAKq9B,KAAKmT,OAASxwC,OACzDA,KAAKuiC,SAASviC,KAAK3E,SAAU2E,KAAKq9B,KAAKvhC,SACvCkE,KAAKq9B,KAAKhtB,WAGlBo8B,EAASv0B,UAAUnQ,SAAW,SAAU9E,EAAOw1C,GAE3C,YADkB,IAAdA,IAAwBA,GAAY,GACjC,CAACz4C,KAAKgiC,QAAS/+B,IAE1BwpC,EAASv0B,UAAUpa,MAAQ,SAAUmF,EAAOigC,GAExC,QADc,IAAVA,IAAoBA,GAAQ,IAC3BA,EAAO,CACR,GAAc,IAAVjgC,EACA,OAAOjD,KACX,GAAIiD,IAAUjD,KAAK3E,SACf,OAAO2E,KAAKq9B,KAEpB,IAAI8X,EAAQ3c,EAASG,OAAO34B,KAAKgiC,QAAQuqB,UAAUtpD,IAGnD,OAFAjD,KAAK7C,OAAOmjB,aAAa60B,EAAOn1C,KAAKq9B,MACrCr9B,KAAKi8B,KAAOj8B,KAAKmjC,QAAQrnC,MAAMkE,KAAKgiC,SAC7BmT,GAEX1I,EAASv0B,UAAUmuB,OAAS,SAAUH,EAAWjD,GAC7C,IAAIvzB,EAAQ1P,KACRkmC,EAAU3f,MAAK,SAAUqyB,GACzB,MAAyB,kBAAlBA,EAASpnC,MAA4BonC,EAAS19C,SAAWwU,EAAMsyB,aAEtEhiC,KAAKi8B,KAAOj8B,KAAKmjC,QAAQrnC,MAAMkE,KAAKgiC,WAG5CyK,EAASv0B,UAAUpc,MAAQ,WACvB,OAAOkE,KAAKi8B,MAEhBwQ,EAASnR,SAAW,OACpBmR,EAAS5R,MAAQrC,EAASE,MAAM2gB,YACzB5M,EA/EkB,CAgF3B3U,EAAOlN,SACThrB,EAAQgrB,QAAU6hB,GAKZ,SAAU9sC,EAAQC,EAAS03B,GAEjC,aAGA,IAAIrnB,EAAOO,SAASF,cAAc,OAElC,GADAL,EAAKE,UAAUge,OAAO,cAAc,GAChCle,EAAKE,UAAUkP,SAAS,cAAe,CACzC,IAAImtC,EAAUC,aAAav0C,UAAUiW,OACrCs+B,aAAav0C,UAAUiW,OAAS,SAAU9X,EAAO6sB,GAC/C,OAAI9nC,UAAUC,OAAS,IAAM2E,KAAKqf,SAAShJ,MAAY6sB,EAC9CA,EAEAspB,EAAQnqD,KAAKrC,KAAMqW,IAK3BtW,OAAOmY,UAAU2uB,aACpB9mC,OAAOmY,UAAU2uB,WAAa,SAAU6lB,EAAc3kD,GAEpD,OADAA,EAAWA,GAAY,EAChB/H,KAAK05C,OAAO3xC,EAAU2kD,EAAarxD,UAAYqxD,IAIrD3sD,OAAOmY,UAAUmqB,WACpBtiC,OAAOmY,UAAUmqB,SAAW,SAAUqqB,EAAc3kD,GAClD,IAAI4kD,EAAgB3sD,KAAKpC,YACD,kBAAbmK,IAA0B6kD,SAAS7kD,IAAavG,KAAKiF,MAAMsB,KAAcA,GAAYA,EAAW4kD,EAActxD,UACvH0M,EAAW4kD,EAActxD,QAE3B0M,GAAY2kD,EAAarxD,OACzB,IAAIkH,EAAYoqD,EAAcrlD,QAAQolD,EAAc3kD,GACpD,OAAsB,IAAfxF,GAAoBA,IAAcwF,IAIxCgI,MAAMmI,UAAU0gB,MACnBp+B,OAAOoB,eAAemU,MAAMmI,UAAW,OAAQ,CAC7Cpc,MAAO,SAAe0gC,GACpB,GAAa,OAATx8B,KACF,MAAM,IAAIoF,UAAU,oDAEtB,GAAyB,oBAAdo3B,EACT,MAAM,IAAIp3B,UAAU,gCAOtB,IALA,IAGItJ,EAHA23C,EAAOj5C,OAAOwF,MACd3E,EAASo4C,EAAKp4C,SAAW,EACzBwxD,EAAUzxD,UAAU,GAGfD,EAAI,EAAGA,EAAIE,EAAQF,IAE1B,GADAW,EAAQ23C,EAAKt4C,GACTqhC,EAAUn6B,KAAKwqD,EAAS/wD,EAAOX,EAAGs4C,GACpC,OAAO33C,KAQjB0U,SAAS+M,iBAAiB,oBAAoB,WAE5C/M,SAASs8C,YAAY,wBAAwB,GAAO,GAEpDt8C,SAASs8C,YAAY,iBAAiB,GAAO,OAKzC,SAAUntD,EAAQC,GAiCxB,IAAImtD,GAAe,EACfC,EAAc,EACdC,EAAa,EAWjB,SAASC,EAAUC,EAAOC,EAAOC,GAE/B,GAAIF,GAASC,EACX,OAAID,EACK,CAAC,CAACF,EAAYE,IAEhB,IAILE,EAAa,GAAKF,EAAM9xD,OAASgyD,KACnCA,EAAa,MAIf,IAAIC,EAAeC,EAAkBJ,EAAOC,GACxCI,EAAeL,EAAMt4C,UAAU,EAAGy4C,GACtCH,EAAQA,EAAMt4C,UAAUy4C,GACxBF,EAAQA,EAAMv4C,UAAUy4C,GAGxBA,EAAeG,EAAkBN,EAAOC,GACxC,IAAIM,EAAeP,EAAMt4C,UAAUs4C,EAAM9xD,OAASiyD,GAClDH,EAAQA,EAAMt4C,UAAU,EAAGs4C,EAAM9xD,OAASiyD,GAC1CF,EAAQA,EAAMv4C,UAAU,EAAGu4C,EAAM/xD,OAASiyD,GAG1C,IAAIK,EAAQC,EAAcT,EAAOC,GAcjC,OAXII,GACFG,EAAMtxB,QAAQ,CAAC4wB,EAAYO,IAEzBE,GACFC,EAAM5yD,KAAK,CAACkyD,EAAYS,IAE1BG,EAAkBF,GACA,MAAdN,IACFM,EAAQG,EAAWH,EAAON,IAE5BM,EAAQI,EAAUJ,GACXA,EAWT,SAASC,EAAcT,EAAOC,GAC5B,IAAIO,EAEJ,IAAKR,EAEH,MAAO,CAAC,CAACH,EAAaI,IAGxB,IAAKA,EAEH,MAAO,CAAC,CAACL,EAAaI,IAGxB,IAAIa,EAAWb,EAAM9xD,OAAS+xD,EAAM/xD,OAAS8xD,EAAQC,EACjDa,EAAYd,EAAM9xD,OAAS+xD,EAAM/xD,OAAS+xD,EAAQD,EAClDhyD,EAAI6yD,EAAS1mD,QAAQ2mD,GACzB,IAAU,GAAN9yD,EASF,OAPAwyD,EAAQ,CAAC,CAACX,EAAagB,EAASn5C,UAAU,EAAG1Z,IACpC,CAAC8xD,EAAYgB,GACb,CAACjB,EAAagB,EAASn5C,UAAU1Z,EAAI8yD,EAAU5yD,UAEpD8xD,EAAM9xD,OAAS+xD,EAAM/xD,SACvBsyD,EAAM,GAAG,GAAKA,EAAM,GAAG,GAAKZ,GAEvBY,EAGT,GAAwB,GAApBM,EAAU5yD,OAGZ,MAAO,CAAC,CAAC0xD,EAAaI,GAAQ,CAACH,EAAaI,IAI9C,IAAIc,EAAKC,EAAgBhB,EAAOC,GAChC,GAAIc,EAAI,CAEN,IAAIE,EAAUF,EAAG,GACbG,EAAUH,EAAG,GACbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,GACbM,EAAaN,EAAG,GAEhBO,EAAUvB,EAAUkB,EAASE,GAC7BI,EAAUxB,EAAUmB,EAASE,GAEjC,OAAOE,EAAQpxD,OAAO,CAAC,CAAC4vD,EAAYuB,IAAcE,GAGpD,OAAOC,EAAaxB,EAAOC,GAa7B,SAASuB,EAAaxB,EAAOC,GAW3B,IATA,IAAIwB,EAAezB,EAAM9xD,OACrBwzD,EAAezB,EAAM/xD,OACrByzD,EAAQttD,KAAKutD,MAAMH,EAAeC,GAAgB,GAClDG,EAAWF,EACXG,EAAW,EAAIH,EACfI,EAAK,IAAIn/C,MAAMk/C,GACfE,EAAK,IAAIp/C,MAAMk/C,GAGVjnC,EAAI,EAAGA,EAAIinC,EAAUjnC,IAC5BknC,EAAGlnC,IAAM,EACTmnC,EAAGnnC,IAAM,EAEXknC,EAAGF,EAAW,GAAK,EACnBG,EAAGH,EAAW,GAAK,EAWnB,IAVA,IAAI9xC,EAAQ0xC,EAAeC,EAGvBO,EAASlyC,EAAQ,GAAK,EAGtBmyC,EAAU,EACVC,EAAQ,EACRC,EAAU,EACVC,EAAQ,EACHz7C,EAAI,EAAGA,EAAI+6C,EAAO/6C,IAAK,CAE9B,IAAK,IAAI07C,GAAM17C,EAAIs7C,EAASI,GAAM17C,EAAIu7C,EAAOG,GAAM,EAAG,CACpD,IAAIC,EAAYV,EAAWS,EAGzBE,EADEF,IAAO17C,GAAM07C,GAAM17C,GAAKm7C,EAAGQ,EAAY,GAAKR,EAAGQ,EAAY,GACxDR,EAAGQ,EAAY,GAEfR,EAAGQ,EAAY,GAAK,EAE3B,IAAIE,EAAKD,EAAKF,EACd,MAAOE,EAAKf,GAAgBgB,EAAKf,GAC1B1B,EAAMjvD,OAAOyxD,IAAOvC,EAAMlvD,OAAO0xD,GACtCD,IACAC,IAGF,GADAV,EAAGQ,GAAaC,EACZA,EAAKf,EAEPU,GAAS,OACJ,GAAIM,EAAKf,EAEdQ,GAAW,OACN,GAAID,EAAO,CAChB,IAAIS,EAAYb,EAAW9xC,EAAQuyC,EACnC,GAAII,GAAa,GAAKA,EAAYZ,IAA8B,GAAlBE,EAAGU,GAAkB,CAEjE,IAAIC,EAAKlB,EAAeO,EAAGU,GAC3B,GAAIF,GAAMG,EAER,OAAOC,EAAkB5C,EAAOC,EAAOuC,EAAIC,KAOnD,IAAK,IAAII,GAAMj8C,EAAIw7C,EAASS,GAAMj8C,EAAIy7C,EAAOQ,GAAM,EAAG,CAChDH,EAAYb,EAAWgB,EAGzBF,EADEE,IAAOj8C,GAAMi8C,GAAMj8C,GAAKo7C,EAAGU,EAAY,GAAKV,EAAGU,EAAY,GACxDV,EAAGU,EAAY,GAEfV,EAAGU,EAAY,GAAK,EAE3B,IAAII,EAAKH,EAAKE,EACd,MAAOF,EAAKlB,GAAgBqB,EAAKpB,GAC1B1B,EAAMjvD,OAAO0wD,EAAekB,EAAK,IACjC1C,EAAMlvD,OAAO2wD,EAAeoB,EAAK,GACtCH,IACAG,IAGF,GADAd,EAAGU,GAAaC,EACZA,EAAKlB,EAEPY,GAAS,OACJ,GAAIS,EAAKpB,EAEdU,GAAW,OACN,IAAKH,EAAO,CACbM,EAAYV,EAAW9xC,EAAQ8yC,EACnC,GAAIN,GAAa,GAAKA,EAAYT,IAA8B,GAAlBC,EAAGQ,GAAkB,CACjE,IAAIC,EAAKT,EAAGQ,GACRE,EAAKZ,EAAWW,EAAKD,EAGzB,GADAI,EAAKlB,EAAekB,EAChBH,GAAMG,EAER,OAAOC,EAAkB5C,EAAOC,EAAOuC,EAAIC,MAQrD,MAAO,CAAC,CAAC7C,EAAaI,GAAQ,CAACH,EAAaI,IAa9C,SAAS2C,EAAkB5C,EAAOC,EAAOplC,EAAG1T,GAC1C,IAAI47C,EAAS/C,EAAMt4C,UAAU,EAAGmT,GAC5BmoC,EAAS/C,EAAMv4C,UAAU,EAAGP,GAC5B87C,EAASjD,EAAMt4C,UAAUmT,GACzBqoC,EAASjD,EAAMv4C,UAAUP,GAGzBq5C,EAAQT,EAAUgD,EAAQC,GAC1BG,EAASpD,EAAUkD,EAAQC,GAE/B,OAAO1C,EAAMtwD,OAAOizD,GAWtB,SAAS/C,EAAkBJ,EAAOC,GAEhC,IAAKD,IAAUC,GAASD,EAAMjvD,OAAO,IAAMkvD,EAAMlvD,OAAO,GACtD,OAAO,EAIT,IAAIqyD,EAAa,EACbC,EAAahvD,KAAKD,IAAI4rD,EAAM9xD,OAAQ+xD,EAAM/xD,QAC1Co1D,EAAaD,EACbE,EAAe,EACnB,MAAOH,EAAaE,EACdtD,EAAMt4C,UAAU67C,EAAcD,IAC9BrD,EAAMv4C,UAAU67C,EAAcD,IAChCF,EAAaE,EACbC,EAAeH,GAEfC,EAAaC,EAEfA,EAAajvD,KAAKiF,OAAO+pD,EAAaD,GAAc,EAAIA,GAE1D,OAAOE,EAUT,SAAShD,EAAkBN,EAAOC,GAEhC,IAAKD,IAAUC,GACXD,EAAMjvD,OAAOivD,EAAM9xD,OAAS,IAAM+xD,EAAMlvD,OAAOkvD,EAAM/xD,OAAS,GAChE,OAAO,EAIT,IAAIk1D,EAAa,EACbC,EAAahvD,KAAKD,IAAI4rD,EAAM9xD,OAAQ+xD,EAAM/xD,QAC1Co1D,EAAaD,EACbG,EAAa,EACjB,MAAOJ,EAAaE,EACdtD,EAAMt4C,UAAUs4C,EAAM9xD,OAASo1D,EAAYtD,EAAM9xD,OAASs1D,IAC1DvD,EAAMv4C,UAAUu4C,EAAM/xD,OAASo1D,EAAYrD,EAAM/xD,OAASs1D,IAC5DJ,EAAaE,EACbE,EAAaJ,GAEbC,EAAaC,EAEfA,EAAajvD,KAAKiF,OAAO+pD,EAAaD,GAAc,EAAIA,GAE1D,OAAOE,EAcT,SAAStC,EAAgBhB,EAAOC,GAC9B,IAAIY,EAAWb,EAAM9xD,OAAS+xD,EAAM/xD,OAAS8xD,EAAQC,EACjDa,EAAYd,EAAM9xD,OAAS+xD,EAAM/xD,OAAS+xD,EAAQD,EACtD,GAAIa,EAAS3yD,OAAS,GAAwB,EAAnB4yD,EAAU5yD,OAAa2yD,EAAS3yD,OACzD,OAAO,KAeT,SAASu1D,EAAiB5C,EAAUC,EAAW9yD,GAE7C,IAGI01D,EAAiBC,EAAiBC,EAAkBC,EAHpDC,EAAOjD,EAASn5C,UAAU1Z,EAAGA,EAAIqG,KAAKiF,MAAMunD,EAAS3yD,OAAS,IAC9D4M,GAAK,EACLipD,EAAc,GAElB,OAAgD,IAAxCjpD,EAAIgmD,EAAU3mD,QAAQ2pD,EAAMhpD,EAAI,IAAW,CACjD,IAAIkpD,EAAe5D,EAAkBS,EAASn5C,UAAU1Z,GACnB8yD,EAAUp5C,UAAU5M,IACrD4qC,EAAe4a,EAAkBO,EAASn5C,UAAU,EAAG1Z,GACtB8yD,EAAUp5C,UAAU,EAAG5M,IACxDipD,EAAY71D,OAASw3C,EAAese,IACtCD,EAAcjD,EAAUp5C,UAAU5M,EAAI4qC,EAAc5qC,GAChDgmD,EAAUp5C,UAAU5M,EAAGA,EAAIkpD,GAC/BN,EAAkB7C,EAASn5C,UAAU,EAAG1Z,EAAI03C,GAC5Cie,EAAkB9C,EAASn5C,UAAU1Z,EAAIg2D,GACzCJ,EAAmB9C,EAAUp5C,UAAU,EAAG5M,EAAI4qC,GAC9Cme,EAAmB/C,EAAUp5C,UAAU5M,EAAIkpD,IAG/C,OAAyB,EAArBD,EAAY71D,QAAc2yD,EAAS3yD,OAC9B,CAACw1D,EAAiBC,EACjBC,EAAkBC,EAAkBE,GAErC,KAKX,IAKIhD,EAaAE,EAASC,EAASC,EAASC,EAlB3B6C,EAAMR,EAAiB5C,EAAUC,EACVzsD,KAAKutD,KAAKf,EAAS3yD,OAAS,IAEnDg2D,EAAMT,EAAiB5C,EAAUC,EACVzsD,KAAKutD,KAAKf,EAAS3yD,OAAS,IAEvD,IAAK+1D,IAAQC,EACX,OAAO,KAOPnD,EANUmD,EAEAD,GAILA,EAAI,GAAG/1D,OAASg2D,EAAI,GAAGh2D,OAAS+1D,EAHhCC,EAFAD,EAUHjE,EAAM9xD,OAAS+xD,EAAM/xD,QACvB+yD,EAAUF,EAAG,GACbG,EAAUH,EAAG,GACbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,KAEbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,GACbE,EAAUF,EAAG,GACbG,EAAUH,EAAG,IAEf,IAAIM,EAAaN,EAAG,GACpB,MAAO,CAACE,EAASC,EAASC,EAASC,EAASC,GAS9C,SAASX,EAAkBF,GACzBA,EAAM5yD,KAAK,CAACkyD,EAAY,KACxB,IAKIK,EALAgE,EAAU,EACVC,EAAe,EACfC,EAAe,EACfC,EAAc,GACdC,EAAc,GAElB,MAAOJ,EAAU3D,EAAMtyD,OACrB,OAAQsyD,EAAM2D,GAAS,IACrB,KAAKtE,EACHwE,IACAE,GAAe/D,EAAM2D,GAAS,GAC9BA,IACA,MACF,KAAKvE,EACHwE,IACAE,GAAe9D,EAAM2D,GAAS,GAC9BA,IACA,MACF,KAAKrE,EAECsE,EAAeC,EAAe,GACX,IAAjBD,GAAuC,IAAjBC,IAExBlE,EAAeC,EAAkBmE,EAAaD,GACzB,IAAjBnE,IACGgE,EAAUC,EAAeC,EAAgB,GAC1C7D,EAAM2D,EAAUC,EAAeC,EAAe,GAAG,IACjDvE,EACFU,EAAM2D,EAAUC,EAAeC,EAAe,GAAG,IAC7CE,EAAY78C,UAAU,EAAGy4C,IAE7BK,EAAMzoC,OAAO,EAAG,EAAG,CAAC+nC,EACAyE,EAAY78C,UAAU,EAAGy4C,KAC7CgE,KAEFI,EAAcA,EAAY78C,UAAUy4C,GACpCmE,EAAcA,EAAY58C,UAAUy4C,IAGtCA,EAAeG,EAAkBiE,EAAaD,GACzB,IAAjBnE,IACFK,EAAM2D,GAAS,GAAKI,EAAY78C,UAAU68C,EAAYr2D,OAClDiyD,GAAgBK,EAAM2D,GAAS,GACnCI,EAAcA,EAAY78C,UAAU,EAAG68C,EAAYr2D,OAC/CiyD,GACJmE,EAAcA,EAAY58C,UAAU,EAAG48C,EAAYp2D,OAC/CiyD,KAIa,IAAjBiE,EACF5D,EAAMzoC,OAAOosC,EAAUE,EACnBD,EAAeC,EAAc,CAACxE,EAAa0E,IACrB,IAAjBF,EACT7D,EAAMzoC,OAAOosC,EAAUC,EACnBA,EAAeC,EAAc,CAACzE,EAAa0E,IAE/C9D,EAAMzoC,OAAOosC,EAAUC,EAAeC,EAClCD,EAAeC,EAAc,CAACzE,EAAa0E,GAC3C,CAACzE,EAAa0E,IAEpBJ,EAAUA,EAAUC,EAAeC,GACxBD,EAAe,EAAI,IAAMC,EAAe,EAAI,GAAK,GACvC,IAAZF,GAAiB3D,EAAM2D,EAAU,GAAG,IAAMrE,GAEnDU,EAAM2D,EAAU,GAAG,IAAM3D,EAAM2D,GAAS,GACxC3D,EAAMzoC,OAAOosC,EAAS,IAEtBA,IAEFE,EAAe,EACfD,EAAe,EACfE,EAAc,GACdC,EAAc,GACd,MAG6B,KAA/B/D,EAAMA,EAAMtyD,OAAS,GAAG,IAC1BsyD,EAAMpxB,MAMR,IAAIo1B,GAAU,EACdL,EAAU,EAEV,MAAOA,EAAU3D,EAAMtyD,OAAS,EAC1BsyD,EAAM2D,EAAU,GAAG,IAAMrE,GACzBU,EAAM2D,EAAU,GAAG,IAAMrE,IAEvBU,EAAM2D,GAAS,GAAGz8C,UAAU84C,EAAM2D,GAAS,GAAGj2D,OAC9CsyD,EAAM2D,EAAU,GAAG,GAAGj2D,SAAWsyD,EAAM2D,EAAU,GAAG,IAEtD3D,EAAM2D,GAAS,GAAK3D,EAAM2D,EAAU,GAAG,GACnC3D,EAAM2D,GAAS,GAAGz8C,UAAU,EAAG84C,EAAM2D,GAAS,GAAGj2D,OACrBsyD,EAAM2D,EAAU,GAAG,GAAGj2D,QACtDsyD,EAAM2D,EAAU,GAAG,GAAK3D,EAAM2D,EAAU,GAAG,GAAK3D,EAAM2D,EAAU,GAAG,GACnE3D,EAAMzoC,OAAOosC,EAAU,EAAG,GAC1BK,GAAU,GACDhE,EAAM2D,GAAS,GAAGz8C,UAAU,EAAG84C,EAAM2D,EAAU,GAAG,GAAGj2D,SAC5DsyD,EAAM2D,EAAU,GAAG,KAErB3D,EAAM2D,EAAU,GAAG,IAAM3D,EAAM2D,EAAU,GAAG,GAC5C3D,EAAM2D,GAAS,GACX3D,EAAM2D,GAAS,GAAGz8C,UAAU84C,EAAM2D,EAAU,GAAG,GAAGj2D,QAClDsyD,EAAM2D,EAAU,GAAG,GACvB3D,EAAMzoC,OAAOosC,EAAU,EAAG,GAC1BK,GAAU,IAGdL,IAGEK,GACF9D,EAAkBF,GAKtB,IAAIjyB,EAAOwxB,EAmBX,SAAS0E,EAAuBjE,EAAON,GACrC,GAAmB,IAAfA,EACF,MAAO,CAACJ,EAAYU,GAEtB,IAAK,IAAIkE,EAAc,EAAG12D,EAAI,EAAGA,EAAIwyD,EAAMtyD,OAAQF,IAAK,CACtD,IAAI4Y,EAAI45C,EAAMxyD,GACd,GAAI4Y,EAAE,KAAOg5C,GAAeh5C,EAAE,KAAOk5C,EAAY,CAC/C,IAAI6E,EAAWD,EAAc99C,EAAE,GAAG1Y,OAClC,GAAIgyD,IAAeyE,EACjB,MAAO,CAAC32D,EAAI,EAAGwyD,GACV,GAAIN,EAAayE,EAAU,CAEhCnE,EAAQA,EAAMvvD,QAEd,IAAI2zD,EAAY1E,EAAawE,EACzBG,EAAS,CAACj+C,EAAE,GAAIA,EAAE,GAAG3V,MAAM,EAAG2zD,IAC9BE,EAAU,CAACl+C,EAAE,GAAIA,EAAE,GAAG3V,MAAM2zD,IAEhC,OADApE,EAAMzoC,OAAO/pB,EAAG,EAAG62D,EAAQC,GACpB,CAAC92D,EAAI,EAAGwyD,GAEfkE,EAAcC,GAIpB,MAAM,IAAIp7C,MAAM,gCAqBlB,SAASo3C,EAAYH,EAAON,GAC1B,IAAI6E,EAAON,EAAsBjE,EAAON,GACpC8E,EAASD,EAAK,GACdE,EAAiBF,EAAK,GACtBn+C,EAAIo+C,EAAOC,GACXC,EAASF,EAAOC,EAAiB,GAErC,GAAS,MAALr+C,EAGF,OAAO45C,EACF,GAAI55C,EAAE,KAAOk5C,EAGlB,OAAOU,EAEP,GAAc,MAAV0E,GAAkBt+C,EAAE,GAAKs+C,EAAO,KAAOA,EAAO,GAAKt+C,EAAE,GAIvD,OADAo+C,EAAOjtC,OAAOktC,EAAgB,EAAGC,EAAQt+C,GAClCu+C,EAAaH,EAAQC,EAAgB,GACvC,GAAc,MAAVC,GAA8C,IAA5BA,EAAO,GAAG/qD,QAAQyM,EAAE,IAAW,CAK1Do+C,EAAOjtC,OAAOktC,EAAgB,EAAG,CAACC,EAAO,GAAIt+C,EAAE,IAAK,CAAC,EAAGA,EAAE,KAC1D,IAAI++B,EAASuf,EAAO,GAAGj0D,MAAM2V,EAAE,GAAG1Y,QAIlC,OAHIy3C,EAAOz3C,OAAS,GAClB82D,EAAOjtC,OAAOktC,EAAiB,EAAG,EAAG,CAACC,EAAO,GAAIvf,IAE5Cwf,EAAaH,EAAQC,EAAgB,GAG5C,OAAOzE,EAab,SAASI,EAAWJ,GAQlB,IAPA,IAAI4E,GAAU,EACVC,EAAuB,SAAS70D,GAClC,OAAOA,EAAIgjD,WAAW,IAAM,OAAUhjD,EAAIgjD,WAAW,IAAM,OAEzD8R,EAAuB,SAAS90D,GAClC,OAAOA,EAAIgjD,WAAWhjD,EAAItC,OAAO,IAAM,OAAUsC,EAAIgjD,WAAWhjD,EAAItC,OAAO,IAAM,OAE1EF,EAAI,EAAGA,EAAIwyD,EAAMtyD,OAAQF,GAAK,EACjCwyD,EAAMxyD,EAAE,GAAG,KAAO8xD,GAAcwF,EAAqB9E,EAAMxyD,EAAE,GAAG,KAChEwyD,EAAMxyD,EAAE,GAAG,KAAO4xD,GAAeyF,EAAqB7E,EAAMxyD,EAAE,GAAG,KACjEwyD,EAAMxyD,GAAG,KAAO6xD,GAAewF,EAAqB7E,EAAMxyD,GAAG,MAC/Do3D,GAAU,EAEV5E,EAAMxyD,EAAE,GAAG,GAAKwyD,EAAMxyD,EAAE,GAAG,GAAGiD,OAAO,GAAKuvD,EAAMxyD,EAAE,GAAG,GACrDwyD,EAAMxyD,GAAG,GAAKwyD,EAAMxyD,EAAE,GAAG,GAAGiD,OAAO,GAAKuvD,EAAMxyD,GAAG,GAEjDwyD,EAAMxyD,EAAE,GAAG,GAAKwyD,EAAMxyD,EAAE,GAAG,GAAGiD,MAAM,GAAI,IAG5C,IAAKm0D,EACH,OAAO5E,EAET,IAAI+E,EAAc,GAClB,IAASv3D,EAAI,EAAGA,EAAIwyD,EAAMtyD,OAAQF,GAAK,EACjCwyD,EAAMxyD,GAAG,GAAGE,OAAS,GACvBq3D,EAAY33D,KAAK4yD,EAAMxyD,IAG3B,OAAOu3D,EAYT,SAASJ,EAAc3E,EAAO5wB,EAAO1hC,GAEnC,IAAK,IAAIF,EAAI4hC,EAAQ1hC,EAAS,EAAGF,GAAK,GAAKA,GAAK4hC,EAAQ,EAAG5hC,IACzD,GAAIA,EAAI,EAAIwyD,EAAMtyD,OAAQ,CACxB,IAAIs3D,EAAShF,EAAMxyD,GACfy3D,EAAUjF,EAAMxyD,EAAE,GAClBw3D,EAAO,KAAOC,EAAQ,IACxBjF,EAAMzoC,OAAO/pB,EAAG,EAAG,CAACw3D,EAAO,GAAIA,EAAO,GAAKC,EAAQ,KAIzD,OAAOjF,EAlKTjyB,EAAK6C,OAASyuB,EACdtxB,EAAK8C,OAASuuB,EACdrxB,EAAK+C,MAAQwuB,EAEbttD,EAAOC,QAAU87B,GAoKX,SAAU/7B,EAAQC,GAMxB,SAASizD,EAAMh3D,GACb,IAAItB,EAAO,GACX,IAAK,IAAIiB,KAAOK,EAAKtB,EAAKQ,KAAKS,GAC/B,OAAOjB,EAPTqF,EAAUD,EAAOC,QAAiC,oBAAhBpF,OAAOD,KACrCC,OAAOD,KAAOs4D,EAElBjzD,EAAQizD,KAAOA,GAUT,SAAUlzD,EAAQC,GAExB,IAAIkzD,EAEI,sBAFqB,WAC3B,OAAOt4D,OAAO0d,UAAUta,SAASyE,KAAKjH,WADX,GAO7B,SAAS23D,EAAU14D,GACjB,MAAiD,sBAA1CG,OAAO0d,UAAUta,SAASyE,KAAKhI,GAIxC,SAAS24D,EAAY34D,GACnB,OAAOA,GACY,iBAAVA,GACiB,iBAAjBA,EAAOgB,QACdb,OAAO0d,UAAUC,eAAe9V,KAAKhI,EAAQ,YAC5CG,OAAO0d,UAAU+6C,qBAAqB5wD,KAAKhI,EAAQ,YACpD,EAdJuF,EAAUD,EAAOC,QAAUkzD,EAAyBC,EAAYC,EAEhEpzD,EAAQmzD,UAAYA,EAKpBnzD,EAAQozD,YAAcA,GAahB,SAAUrzD,EAAQC,GAExB,aAEA,IAAIszD,EAAM14D,OAAO0d,UAAUC,eACvBolC,EAAS,IASb,SAAS4V,KA4BT,SAASC,EAAG7jD,EAAI0zB,EAAS4G,GACvB7pC,KAAKuP,GAAKA,EACVvP,KAAKijC,QAAUA,EACfjjC,KAAK6pC,KAAOA,IAAQ,EAUtB,SAASwpB,IACPrzD,KAAKszD,QAAU,IAAIH,EACnBnzD,KAAKuzD,aAAe,EAlClB/4D,OAAOm+B,SACTw6B,EAAOj7C,UAAY1d,OAAOm+B,OAAO,OAM5B,IAAIw6B,GAASp5B,YAAWwjB,GAAS,IAqCxC8V,EAAan7C,UAAUs7C,WAAa,WAClC,IACI3tB,EACAhpC,EAFAm6B,EAAQ,GAIZ,GAA0B,IAAtBh3B,KAAKuzD,aAAoB,OAAOv8B,EAEpC,IAAKn6B,KAASgpC,EAAS7lC,KAAKszD,QACtBJ,EAAI7wD,KAAKwjC,EAAQhpC,IAAOm6B,EAAMj8B,KAAKwiD,EAAS1gD,EAAKuB,MAAM,GAAKvB,GAGlE,OAAIrC,OAAOC,sBACFu8B,EAAM35B,OAAO7C,OAAOC,sBAAsBorC,IAG5C7O,GAWTq8B,EAAan7C,UAAUm1B,UAAY,SAAmBx7B,EAAO4hD,GAC3D,IAAI91C,EAAM4/B,EAASA,EAAS1rC,EAAQA,EAChC6hD,EAAY1zD,KAAKszD,QAAQ31C,GAE7B,GAAI81C,EAAQ,QAASC,EACrB,IAAKA,EAAW,MAAO,GACvB,GAAIA,EAAUnkD,GAAI,MAAO,CAACmkD,EAAUnkD,IAEpC,IAAK,IAAIpU,EAAI,EAAG+Y,EAAIw/C,EAAUr4D,OAAQs4D,EAAK,IAAI5jD,MAAMmE,GAAI/Y,EAAI+Y,EAAG/Y,IAC9Dw4D,EAAGx4D,GAAKu4D,EAAUv4D,GAAGoU,GAGvB,OAAOokD,GAUTN,EAAan7C,UAAUwzB,KAAO,SAAc75B,EAAO+hD,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAIr2C,EAAM4/B,EAASA,EAAS1rC,EAAQA,EAEpC,IAAK7R,KAAKszD,QAAQ31C,GAAM,OAAO,EAE/B,IAEIhO,EACAxU,EAHAkyC,EAAYrtC,KAAKszD,QAAQ31C,GACzBs2C,EAAM74D,UAAUC,OAIpB,GAAIgyC,EAAU99B,GAAI,CAGhB,OAFI89B,EAAUxD,MAAM7pC,KAAKk0D,eAAeriD,EAAOw7B,EAAU99B,QAAInN,GAAW,GAEhE6xD,GACN,KAAK,EAAG,OAAO5mB,EAAU99B,GAAGlN,KAAKgrC,EAAUpK,UAAU,EACrD,KAAK,EAAG,OAAOoK,EAAU99B,GAAGlN,KAAKgrC,EAAUpK,QAAS2wB,IAAK,EACzD,KAAK,EAAG,OAAOvmB,EAAU99B,GAAGlN,KAAKgrC,EAAUpK,QAAS2wB,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOxmB,EAAU99B,GAAGlN,KAAKgrC,EAAUpK,QAAS2wB,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOzmB,EAAU99B,GAAGlN,KAAKgrC,EAAUpK,QAAS2wB,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAO1mB,EAAU99B,GAAGlN,KAAKgrC,EAAUpK,QAAS2wB,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAK74D,EAAI,EAAGwU,EAAO,IAAII,MAAMkkD,EAAK,GAAI94D,EAAI84D,EAAK94D,IAC7CwU,EAAKxU,EAAI,GAAKC,UAAUD,GAG1BkyC,EAAU99B,GAAGvU,MAAMqyC,EAAUpK,QAAStzB,OACjC,CACL,IACI1H,EADA5M,EAASgyC,EAAUhyC,OAGvB,IAAKF,EAAI,EAAGA,EAAIE,EAAQF,IAGtB,OAFIkyC,EAAUlyC,GAAG0uC,MAAM7pC,KAAKk0D,eAAeriD,EAAOw7B,EAAUlyC,GAAGoU,QAAInN,GAAW,GAEtE6xD,GACN,KAAK,EAAG5mB,EAAUlyC,GAAGoU,GAAGlN,KAAKgrC,EAAUlyC,GAAG8nC,SAAU,MACpD,KAAK,EAAGoK,EAAUlyC,GAAGoU,GAAGlN,KAAKgrC,EAAUlyC,GAAG8nC,QAAS2wB,GAAK,MACxD,KAAK,EAAGvmB,EAAUlyC,GAAGoU,GAAGlN,KAAKgrC,EAAUlyC,GAAG8nC,QAAS2wB,EAAIC,GAAK,MAC5D,KAAK,EAAGxmB,EAAUlyC,GAAGoU,GAAGlN,KAAKgrC,EAAUlyC,GAAG8nC,QAAS2wB,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKnkD,EAAM,IAAK1H,EAAI,EAAG0H,EAAO,IAAII,MAAMkkD,EAAK,GAAIhsD,EAAIgsD,EAAKhsD,IACxD0H,EAAK1H,EAAI,GAAK7M,UAAU6M,GAG1BolC,EAAUlyC,GAAGoU,GAAGvU,MAAMqyC,EAAUlyC,GAAG8nC,QAAStzB,IAKpD,OAAO,GAYT0jD,EAAan7C,UAAU0tB,GAAK,SAAY/zB,EAAOtC,EAAI0zB,GACjD,IAAI0lB,EAAW,IAAIyK,EAAG7jD,EAAI0zB,GAAWjjC,MACjC2d,EAAM4/B,EAASA,EAAS1rC,EAAQA,EAMpC,OAJK7R,KAAKszD,QAAQ31C,GACR3d,KAAKszD,QAAQ31C,GAAKpO,GACvBvP,KAAKszD,QAAQ31C,GAAO,CAAC3d,KAAKszD,QAAQ31C,GAAMgrC,GADb3oD,KAAKszD,QAAQ31C,GAAK5iB,KAAK4tD,IAD/B3oD,KAAKszD,QAAQ31C,GAAOgrC,EAAU3oD,KAAKuzD,gBAIpDvzD,MAYTqzD,EAAan7C,UAAU2xB,KAAO,SAAch4B,EAAOtC,EAAI0zB,GACrD,IAAI0lB,EAAW,IAAIyK,EAAG7jD,EAAI0zB,GAAWjjC,MAAM,GACvC2d,EAAM4/B,EAASA,EAAS1rC,EAAQA,EAMpC,OAJK7R,KAAKszD,QAAQ31C,GACR3d,KAAKszD,QAAQ31C,GAAKpO,GACvBvP,KAAKszD,QAAQ31C,GAAO,CAAC3d,KAAKszD,QAAQ31C,GAAMgrC,GADb3oD,KAAKszD,QAAQ31C,GAAK5iB,KAAK4tD,IAD/B3oD,KAAKszD,QAAQ31C,GAAOgrC,EAAU3oD,KAAKuzD,gBAIpDvzD,MAaTqzD,EAAan7C,UAAUg8C,eAAiB,SAAwBriD,EAAOtC,EAAI0zB,EAAS4G,GAClF,IAAIlsB,EAAM4/B,EAASA,EAAS1rC,EAAQA,EAEpC,IAAK7R,KAAKszD,QAAQ31C,GAAM,OAAO3d,KAC/B,IAAKuP,EAGH,OAF4B,MAAtBvP,KAAKuzD,aAAoBvzD,KAAKszD,QAAU,IAAIH,SACtCnzD,KAAKszD,QAAQ31C,GAClB3d,KAGT,IAAIqtC,EAAYrtC,KAAKszD,QAAQ31C,GAE7B,GAAI0vB,EAAU99B,GAEP89B,EAAU99B,KAAOA,GACfs6B,IAAQwD,EAAUxD,MAClB5G,GAAWoK,EAAUpK,UAAYA,IAEV,MAAtBjjC,KAAKuzD,aAAoBvzD,KAAKszD,QAAU,IAAIH,SACtCnzD,KAAKszD,QAAQ31C,QAEtB,CACL,IAAK,IAAIxiB,EAAI,EAAG0qC,EAAS,GAAIxqC,EAASgyC,EAAUhyC,OAAQF,EAAIE,EAAQF,KAE7DkyC,EAAUlyC,GAAGoU,KAAOA,GACnBs6B,IAASwD,EAAUlyC,GAAG0uC,MACtB5G,GAAWoK,EAAUlyC,GAAG8nC,UAAYA,IAExC4C,EAAO9qC,KAAKsyC,EAAUlyC,IAOtB0qC,EAAOxqC,OAAQ2E,KAAKszD,QAAQ31C,GAAyB,IAAlBkoB,EAAOxqC,OAAewqC,EAAO,GAAKA,EACxC,MAAtB7lC,KAAKuzD,aAAoBvzD,KAAKszD,QAAU,IAAIH,SAC3CnzD,KAAKszD,QAAQ31C,GAG3B,OAAO3d,MAUTqzD,EAAan7C,UAAUi8C,mBAAqB,SAA4BtiD,GACtE,IAAI8L,EAaJ,OAXI9L,GACF8L,EAAM4/B,EAASA,EAAS1rC,EAAQA,EAC5B7R,KAAKszD,QAAQ31C,KACa,MAAtB3d,KAAKuzD,aAAoBvzD,KAAKszD,QAAU,IAAIH,SACtCnzD,KAAKszD,QAAQ31C,MAG3B3d,KAAKszD,QAAU,IAAIH,EACnBnzD,KAAKuzD,aAAe,GAGfvzD,MAMTqzD,EAAan7C,UAAU0xB,IAAMypB,EAAan7C,UAAUg8C,eACpDb,EAAan7C,UAAUk8C,YAAcf,EAAan7C,UAAU0tB,GAK5DytB,EAAan7C,UAAUm8C,gBAAkB,WACvC,OAAOr0D,MAMTqzD,EAAaiB,SAAW/W,EAKxB8V,EAAaA,aAAeA,EAKxB,qBAAuB1zD,IACzBA,EAAOC,QAAUyzD,IAMb,SAAU1zD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQ20D,UAAY30D,EAAQ40D,aAAe50D,EAAQ60D,aAAe70D,EAAQ80D,UAAY90D,EAAQ+0D,gBAAkB/0D,EAAQgrB,aAAUxoB,EAElI,IAAIohC,EAA4B,oBAAXC,QAAoD,kBAApBA,OAAOvG,SAAwB,SAAUrhC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAX4nC,QAAyB5nC,EAAIo+B,cAAgBwJ,QAAU5nC,IAAQ4nC,OAAOvrB,UAAY,gBAAkBrc,GAElQ6nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfS,EAAWrJ,EAAoB,GAE/Bs9B,EAAWh0B,EAAuBD,GAElCE,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtCE,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC0b,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCjY,EAAUlN,EAAoB,IAE9BmN,EAAW7D,EAAuB4D,GAElCJ,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAElCywB,EAASv9B,EAAoB,IAE7Bw9B,EAAcx9B,EAAoB,IAElCwZ,EAAQxZ,EAAoB,IAE5ByZ,EAASnQ,EAAuBkQ,GAEhCmV,EAAS3uB,EAAoB,IAE7By9B,EAAaz9B,EAAoB,IAEjC09B,EAAQ19B,EAAoB,IAE5B29B,EAAQ39B,EAAoB,IAEhC,SAASsJ,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAASJ,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAE3M,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI+C,GAAQ,EAAIH,EAAS7Z,SAAS,mBAE9BsqC,EAAU,eAEVC,EAAmB,CAAC,CAAC9kC,KAAKoK,UAAW85B,GAAY,CAAClkC,KAAKoK,UAAWg6B,GAAe,CAAC,KAAMW,GAAa,CAAC/kC,KAAKglC,aAAcZ,GAAe,CAACpkC,KAAKglC,aAAcX,GAAY,CAACrkC,KAAKglC,aAAcb,GAAe,CAACnkC,KAAKglC,aAAcV,GAAkB,CAACtkC,KAAKglC,aAAcC,GAAc,CAAC,KAAMC,GAAc,CAAC,IAAKC,EAAW36C,KAAK26C,EAAY,SAAU,CAAC,IAAKA,EAAW36C,KAAK26C,EAAY,WAAY,CAAC,QAASC,IAE5YC,EAAwB,CAACb,EAAO/O,eAAgBiP,EAAW3O,oBAAoBr7B,QAAO,SAAUwtB,EAAMsM,GAExG,OADAtM,EAAKsM,EAAKrpB,SAAWqpB,EACdtM,IACN,IAECod,EAAoB,CAACd,EAAOjP,WAAYkP,EAAY/O,gBAAiBE,EAAOlE,WAAYgT,EAAW7O,eAAgB8O,EAAM1O,UAAW2O,EAAMzO,WAAWz7B,QAAO,SAAUwtB,EAAMsM,GAE9K,OADAtM,EAAKsM,EAAKrpB,SAAWqpB,EACdtM,IACN,IAECqd,EAAY,SAAU/Y,GAGxB,SAAS+Y,EAAU/nB,EAAOp5B,GACxB8sB,EAAgBvhC,KAAM41D,GAEtB,IAAIlmD,EAAQ+xB,EAA2BzhC,MAAO41D,EAAU77B,WAAav/B,OAAOimC,eAAem1B,IAAYvzD,KAAKrC,KAAM6tC,EAAOp5B,IAezH,OAbA/E,EAAMm+B,MAAM3W,KAAK3Z,iBAAiB,QAAS7N,EAAMmmD,QAAQh7C,KAAKnL,IAC9DA,EAAM+T,UAAY/T,EAAMm+B,MAAM7I,aAAa,gBAC3Ct1B,EAAM+T,UAAU/R,aAAa,mBAAmB,GAChDhC,EAAM+T,UAAU/R,aAAa,YAAa,GAC1ChC,EAAMomD,SAAW,GACjBX,EAAiB93D,OAAOqS,EAAM+E,QAAQqhD,UAAUv6D,SAAQ,SAAU0B,GAChE,IAAIohD,EAAQ3a,EAAezmC,EAAM,GAC7BmzB,EAAWiuB,EAAM,GACjB0X,EAAU1X,EAAM,IAEf5pC,EAAQuhD,aAAeD,IAAYvB,IACxC9kD,EAAMumD,WAAW7lC,EAAU2lC,MAEtBrmD,EAsGT,OA1HAiyB,EAAUi0B,EAAW/Y,GAuBrB7c,EAAa41B,EAAW,CAAC,CACvBp6D,IAAK,aACLM,MAAO,SAAoBs0B,EAAU2lC,GACnC/1D,KAAK81D,SAAS/6D,KAAK,CAACq1B,EAAU2lC,MAE/B,CACDv6D,IAAK,UACLM,MAAO,SAAiBgpC,GACtB,GAAoB,kBAATA,EAET,OADA9kC,KAAKyjB,UAAUJ,UAAYyhB,EAAK1nC,QAAQ,eAAgB,MACjD4C,KAAKumC,UAEd,IAAI5c,EAAU3pB,KAAK6tC,MAAM/E,UAAU9oC,KAAK6tC,MAAMvI,UAAU2O,WAAWhxC,OACnE,GAAI0mB,EAAQonB,EAAOnmB,QAAQ0Q,UAAW,CACpC,IAAIW,EAAOj8B,KAAKyjB,UAAUyyC,UAE1B,OADAl2D,KAAKyjB,UAAUJ,UAAY,IACpB,IAAIyd,EAAalW,SAAUoR,OAAOC,EAAMxgC,EAAgB,GAAIs1C,EAAOnmB,QAAQ0Q,SAAU3R,EAAQonB,EAAOnmB,QAAQ0Q,YAGrH,IAAI66B,EAAmBn2D,KAAKo2D,kBACxBC,EAAoB3yB,EAAeyyB,EAAkB,GACrDG,EAAkBD,EAAkB,GACpCE,EAAeF,EAAkB,GAEjCn5C,EAAQs5C,EAASx2D,KAAKyjB,UAAW6yC,EAAiBC,GAOtD,OALIE,EAAcv5C,EAAO,OAAuD,MAA9CA,EAAMhH,IAAIgH,EAAMhH,IAAI7a,OAAS,GAAG++B,aAChEld,EAAQA,EAAMogB,SAAQ,IAAIwD,EAAalW,SAAUuR,OAAOjf,EAAM7hB,SAAW,GAAGyhC,OAAO,KAErF8H,EAAM0I,IAAI,UAAWttC,KAAKyjB,UAAUJ,UAAWnG,GAC/Cld,KAAKyjB,UAAUJ,UAAY,GACpBnG,IAER,CACD1hB,IAAK,uBACLM,MAAO,SAA8BmH,EAAO6hC,GAC1C,IAAIxpC,EAASF,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAKshD,EAAQ9xB,QAAQ4c,QAAQC,IAEzG,GAAqB,kBAAVxkC,EACTjD,KAAK6tC,MAAMrH,YAAYxmC,KAAKumC,QAAQtjC,GAAQ6hC,GAC5C9kC,KAAK6tC,MAAM/F,aAAa,EAAG4U,EAAQ9xB,QAAQ4c,QAAQO,YAC9C,CACL,IAAI2uB,EAAQ12D,KAAKumC,QAAQzB,GACzB9kC,KAAK6tC,MAAMmT,gBAAe,IAAIlgB,EAAalW,SAAUuR,OAAOl5B,GAAO5F,OAAOq5D,GAAQp7D,GAClF0E,KAAK6tC,MAAM/F,aAAa7kC,EAAQyzD,EAAMr7D,SAAUqhD,EAAQ9xB,QAAQ4c,QAAQO,WAG3E,CACDvsC,IAAK,UACLM,MAAO,SAAiBiI,GACtB,IAAI2+B,EAAS1iC,KAEb,IAAI+D,EAAE65C,kBAAqB59C,KAAK6tC,MAAMjtB,YAAtC,CACA,IAAIiN,EAAQ7tB,KAAK6tC,MAAMnG,eACnBxqB,GAAQ,IAAI4jB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,OAChDokC,EAAYrnC,KAAK6tC,MAAM5I,mBAAmBoC,UAC9CrnC,KAAKyjB,UAAUnC,QACfthB,KAAK6tC,MAAMvI,UAAUe,OAAOqW,EAAQ9xB,QAAQ4c,QAAQO,QACpDl4B,YAAW,WACTqN,EAAQA,EAAM7f,OAAOqlC,EAAO6D,WAAWzJ,OAAOjP,EAAMxyB,QACpDqnC,EAAOmL,MAAMmT,eAAe9jC,EAAOw/B,EAAQ9xB,QAAQ4c,QAAQmD,MAE3DjI,EAAOmL,MAAM/F,aAAa5qB,EAAM7hB,SAAWwyB,EAAMxyB,OAAQqhD,EAAQ9xB,QAAQ4c,QAAQO,QACjFrF,EAAOmL,MAAM5I,mBAAmBoC,UAAYA,EAC5C3E,EAAOmL,MAAMvsB,UACZ,MAEJ,CACD9lB,IAAK,kBACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAETs2D,EAAkB,GAClBC,EAAe,GAsBnB,OArBAv2D,KAAK81D,SAASv6D,SAAQ,SAAUo7D,GAC9B,IAAIC,EAAQlzB,EAAeizB,EAAM,GAC7BvmC,EAAWwmC,EAAM,GACjBb,EAAUa,EAAM,GAEpB,OAAQxmC,GACN,KAAKC,KAAKoK,UACR87B,EAAax7D,KAAKg7D,GAClB,MACF,KAAK1lC,KAAKglC,aACRiB,EAAgBv7D,KAAKg7D,GACrB,MACF,QACE,GAAGx6D,QAAQ8G,KAAK2kC,EAAOvjB,UAAU7F,iBAAiBwS,IAAW,SAAUzf,GAErEA,EAAKukD,GAAWvkD,EAAKukD,IAAY,GACjCvkD,EAAKukD,GAASn6D,KAAKg7D,MAErB,UAGC,CAACO,EAAiBC,OAItBX,EA3HO,CA4HdvxB,EAASzZ,SAOX,SAASisC,EAAY35C,EAAOle,EAAQlD,GAClC,MAAwE,YAAjD,qBAAXkD,EAAyB,YAAcwkC,EAAQxkC,IAClDxE,OAAOD,KAAKyE,GAAQ+rB,QAAO,SAAU7N,EAAO1hB,GACjD,OAAOq7D,EAAY35C,EAAO1hB,EAAKwD,EAAOxD,MACrC0hB,GAEIA,EAAM6N,QAAO,SAAU7N,EAAO0e,GACnC,OAAIA,EAAGxB,YAAcwB,EAAGxB,WAAWp7B,GAC1Bke,EAAMniB,KAAK6gC,GAEX1e,EAAM8e,OAAOJ,EAAGI,QAAQ,EAAI44B,EAAShqC,SAAS,GAAInvB,EAAgB,GAAIuD,EAAQlD,GAAQ8/B,EAAGxB,eAEjG,IAAI0G,EAAalW,SAIxB,SAASksC,EAAanmD,GACpB,GAAIA,EAAK0P,WAAagQ,KAAKglC,aAAc,MAAO,GAChD,IAAIH,EAAU,sBACd,OAAOvkD,EAAKukD,KAAavkD,EAAKukD,GAAW9qD,OAAO2sD,iBAAiBpmD,IAGnE,SAAS8lD,EAAcv5C,EAAO+e,GAE5B,IADA,IAAI+6B,EAAU,GACL77D,EAAI+hB,EAAMhH,IAAI7a,OAAS,EAAGF,GAAK,GAAK67D,EAAQ37D,OAAS4gC,EAAK5gC,SAAUF,EAAG,CAC9E,IAAIygC,EAAK1e,EAAMhH,IAAI/a,GACnB,GAAyB,kBAAdygC,EAAGI,OAAqB,MACnCg7B,EAAUp7B,EAAGI,OAASg7B,EAExB,OAAOA,EAAQ54D,OAAO,EAAI69B,EAAK5gC,UAAY4gC,EAG7C,SAAS4f,EAAOlrC,GACd,GAA+B,IAA3BA,EAAKkmC,WAAWx7C,OAAc,OAAO,EACzC,IAAI0f,EAAQ+7C,EAAanmD,GACzB,MAAO,CAAC,QAAS,aAAarJ,QAAQyT,EAAME,UAAY,EAG1D,SAASu7C,EAAS7lD,EAAM2lD,EAAiBC,GAEvC,OAAI5lD,EAAK0P,WAAa1P,EAAK8pB,UAClB87B,EAAaxrC,QAAO,SAAU7N,EAAO64C,GAC1C,OAAOA,EAAQplD,EAAMuM,KACpB,IAAI4jB,EAAalW,SACXja,EAAK0P,WAAa1P,EAAK0kD,aACzB,GAAGtqC,OAAO1oB,KAAKsO,EAAKkmC,YAAc,IAAI,SAAU35B,EAAOsoC,GAC5D,IAAIyR,EAAgBT,EAAShR,EAAW8Q,EAAiBC,GASzD,OARI/Q,EAAUnlC,WAAa1P,EAAK0kD,eAC9B4B,EAAgBX,EAAgBvrC,QAAO,SAAUksC,EAAelB,GAC9D,OAAOA,EAAQvQ,EAAWyR,KACzBA,GACHA,GAAiBzR,EAAU0P,IAAY,IAAInqC,QAAO,SAAUksC,EAAelB,GACzE,OAAOA,EAAQvQ,EAAWyR,KACzBA,IAEE/5C,EAAM7f,OAAO45D,KACnB,IAAIn2B,EAAalW,SAEb,IAAIkW,EAAalW,QAI5B,SAAS4qC,EAAWx2D,EAAQ2R,EAAMuM,GAChC,OAAO25C,EAAY35C,EAAOle,GAAQ,GAGpC,SAAS21D,EAAgBhkD,EAAMuM,GAC7B,IAAIkd,EAAa4G,EAAYpW,QAAQ2O,WAAWC,UAAUj/B,KAAKoW,GAC3D0pB,EAAU2G,EAAYpW,QAAQ2O,WAAWE,MAAMl/B,KAAKoW,GACpDi0C,EAAS5jB,EAAYpW,QAAQ2O,WAAWG,MAAMn/B,KAAKoW,GACnDgZ,EAAU,GAoBd,OAnBAyQ,EAAW/8B,OAAOg9B,GAASh9B,OAAOunD,GAAQrpD,SAAQ,SAAUsB,GAC1D,IAAIgoD,EAAO7jB,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMuW,WACzD,MAAR4V,IACFl7B,EAAQk7B,EAAKtpB,UAAYspB,EAAK/oD,MAAM6U,GAChCgZ,EAAQk7B,EAAKtpB,aAEnBspB,EAAO6Q,EAAsB74D,GACjB,MAARgoD,GAAiBA,EAAKtpB,WAAa1+B,GAAQgoD,EAAKrpB,UAAY3+B,IAC9D8sB,EAAQk7B,EAAKtpB,UAAYspB,EAAK/oD,MAAM6U,SAASvO,GAE/CyiD,EAAO8Q,EAAkB94D,GACb,MAARgoD,GAAiBA,EAAKtpB,WAAa1+B,GAAQgoD,EAAKrpB,UAAY3+B,IAC9DgoD,EAAO8Q,EAAkB94D,GACzB8sB,EAAQk7B,EAAKtpB,UAAYspB,EAAK/oD,MAAM6U,SAASvO,OAG7C5H,OAAOD,KAAKovB,GAAStuB,OAAS,IAChC6hB,EAAQ25C,EAAY35C,EAAOyM,IAEtBzM,EAGT,SAASw3C,EAAU/jD,EAAMuM,GACvB,IAAI5a,EAAQ0+B,EAAYpW,QAAQiO,MAAMloB,GACtC,GAAa,MAATrO,EAAe,OAAO4a,EAC1B,GAAI5a,EAAM4V,qBAAqB8oB,EAAYpW,QAAQsO,MAAO,CACxD,IAAImQ,EAAQ,GACRvtC,EAAQwG,EAAMxG,MAAM6U,GACX,MAAT7U,IACFutC,EAAM/mC,EAAMg5B,UAAYx/B,EACxBohB,GAAQ,IAAI4jB,EAAalW,SAAUoR,OAAOqN,EAAO/mC,EAAMqnB,QAAQhZ,SAE/B,oBAAlBrO,EAAMqnB,UACtBzM,EAAQ25C,EAAY35C,EAAO5a,EAAMg5B,SAAUh5B,EAAMqnB,QAAQhZ,KAE3D,OAAOuM,EAGT,SAASk4C,EAAWzkD,EAAMuM,GAIxB,OAHKu5C,EAAcv5C,EAAO,OACxBA,EAAM8e,OAAO,MAER9e,EAGT,SAASu4C,IACP,OAAO,IAAI30B,EAAalW,QAG1B,SAAS2qC,EAAY5kD,EAAMuM,GACzB,IAAI5a,EAAQ0+B,EAAYpW,QAAQiO,MAAMloB,GACtC,GAAa,MAATrO,GAAoC,cAAnBA,EAAMg5B,WAA6Bm7B,EAAcv5C,EAAO,MAC3E,OAAOA,EAET,IAAIkjC,GAAU,EACVjjD,EAASwT,EAAKK,WAClB,OAAQ7T,EAAOgT,UAAUkP,SAAS,gBAC2B,UAAtD2hB,EAAYpW,QAAQiO,MAAM17B,IAAW,IAAIm+B,WAC5C8kB,GAAU,GAEZjjD,EAASA,EAAO6T,WAElB,OAAIovC,GAAU,EAAUljC,EACjBA,EAAMogB,SAAQ,IAAIwD,EAAalW,SAAUuR,OAAOjf,EAAM7hB,SAAW,GAAG8gC,OAAO,EAAG,CAAEikB,OAAQA,KAGjG,SAASqU,EAAa9jD,EAAMuM,GAM1B,OALKu5C,EAAcv5C,EAAO,QACpB2+B,EAAOlrC,IAASuM,EAAM7hB,SAAW,GAAKsV,EAAK4P,aAAes7B,EAAOlrC,EAAK4P,eACxErD,EAAM8e,OAAO,MAGV9e,EAGT,SAASs3C,EAAa7jD,EAAMuM,GAC1B,GAAI2+B,EAAOlrC,IAAoC,MAA3BA,EAAKumD,qBAA+BT,EAAcv5C,EAAO,QAAS,CACpF,IAAIi6C,EAAaxmD,EAAKua,aAAetY,WAAWkkD,EAAanmD,GAAMymD,WAAaxkD,WAAWkkD,EAAanmD,GAAM0mD,cAC1G1mD,EAAKumD,mBAAmBI,UAAY3mD,EAAK2mD,UAAyB,IAAbH,GACvDj6C,EAAM8e,OAAO,MAGjB,OAAO9e,EAGT,SAASo4C,EAAY3kD,EAAMuM,GACzB,IAAIyM,EAAU,GACV5O,EAAQpK,EAAKoK,OAAS,GAc1B,OAbIA,EAAMw8C,WAA8C,WAAjCT,EAAanmD,GAAM4mD,YACxC5tC,EAAQ6tC,QAAS,GAEfz8C,EAAM08C,aAAeX,EAAanmD,GAAM8mD,WAAW5wB,WAAW,SAAWnzB,SAASojD,EAAanmD,GAAM8mD,aAAe,OACtH9tC,EAAQ+tC,MAAO,GAEbl9D,OAAOD,KAAKovB,GAAStuB,OAAS,IAChC6hB,EAAQ25C,EAAY35C,EAAOyM,IAEzB/W,WAAWmI,EAAM48C,YAAc,GAAK,IAEtCz6C,GAAQ,IAAI4jB,EAAalW,SAAUoR,OAAO,MAAM3+B,OAAO6f,IAElDA,EAGT,SAASq3C,EAAU5jD,EAAMuM,GACvB,IAAI+e,EAAOtrB,EAAKzT,KAEhB,GAAgC,QAA5ByT,EAAKK,WAAWkqB,QAClB,OAAOhe,EAAM8e,OAAOC,EAAKjmB,QAE3B,GAA2B,IAAvBimB,EAAKjmB,OAAO3a,QAAgBsV,EAAKK,WAAWb,UAAUkP,SAAS,gBACjE,OAAOnC,EAET,IAAK45C,EAAanmD,EAAKK,YAAY4mD,WAAW/wB,WAAW,OAAQ,CAE/D,IAAInpC,EAAW,SAAkBm6D,EAAUv1D,GAEzC,OADAA,EAAQA,EAAMlF,QAAQ,aAAc,IAC7BkF,EAAMjH,OAAS,GAAKw8D,EAAW,IAAMv1D,GAE9C25B,EAAOA,EAAK7+B,QAAQ,QAAS,KAAKA,QAAQ,MAAO,KACjD6+B,EAAOA,EAAK7+B,QAAQ,SAAUM,EAASmd,KAAKnd,GAAU,KAC1B,MAAxBiT,EAAKm7C,iBAA2BjQ,EAAOlrC,EAAKK,aAAuC,MAAxBL,EAAKm7C,iBAA2BjQ,EAAOlrC,EAAKm7C,oBACzG7vB,EAAOA,EAAK7+B,QAAQ,OAAQM,EAASmd,KAAKnd,GAAU,MAE9B,MAApBiT,EAAK4P,aAAuBs7B,EAAOlrC,EAAKK,aAAmC,MAApBL,EAAK4P,aAAuBs7B,EAAOlrC,EAAK4P,gBACjG0b,EAAOA,EAAK7+B,QAAQ,OAAQM,EAASmd,KAAKnd,GAAU,KAGxD,OAAOwf,EAAM8e,OAAOC,GA5MtB25B,EAAU/qB,SAAW,CACnBirB,SAAU,GACVE,aAAa,GA6Mfp2D,EAAQgrB,QAAUgrC,EAClBh2D,EAAQ+0D,gBAAkBA,EAC1B/0D,EAAQ80D,UAAYA,EACpB90D,EAAQ60D,aAAeA,EACvB70D,EAAQ40D,aAAeA,EACvB50D,EAAQ20D,UAAYA,GAId,SAAU50D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZa,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAEtC,SAASP,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIi2B,EAAO,SAAUvoB,GAGnB,SAASuoB,IAGP,OAFAv2B,EAAgBvhC,KAAM83D,GAEfr2B,EAA2BzhC,MAAO83D,EAAK/9B,WAAav/B,OAAOimC,eAAeq3B,IAAO98D,MAAMgF,KAAM5E,YAuBtG,OA5BAumC,EAAUm2B,EAAMvoB,GAQhBvP,EAAa83B,EAAM,CAAC,CAClBt8D,IAAK,WACLM,MAAO,SAAkBmnC,GACvB5C,EAAKy3B,EAAK5/C,UAAU6hB,WAAav/B,OAAOimC,eAAeq3B,EAAK5/C,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMijC,GACjGjjC,KAAKgiC,QAAQ9G,UAAYl7B,KAAKmjC,QAAQjI,QAAQ,IAChDl7B,KAAKk5C,YAAYl5C,KAAKmjC,QAAQ7H,aAGhC,CAAC,CACH9/B,IAAK,SACLM,MAAO,WACL,OAAOukC,EAAKy3B,EAAK/9B,WAAav/B,OAAOimC,eAAeq3B,GAAO,SAAU93D,MAAMqC,KAAKrC,QAEjF,CACDxE,IAAK,UACLM,MAAO,WACL,OAAO,MAIJg8D,EA7BE,CA8BT12B,EAASxW,SAEXktC,EAAKx8B,SAAW,OAChBw8B,EAAK58B,QAAU,CAAC,SAAU,KAE1Bt7B,EAAQgrB,QAAUktC,GAIZ,SAAUn4D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQm4D,YAAcn4D,EAAQgrB,aAAUxoB,EAExC,IAAIshC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjB46B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfW,EAAcvJ,EAAoB,GAElCwJ,EAAeF,EAAuBC,GAEtCE,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC0b,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCjY,EAAUlN,EAAoB,IAE9BmN,EAAW7D,EAAuB4D,GAElCJ,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAEtC,SAASxD,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAASJ,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAE3M,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI+C,GAAQ,EAAIH,EAAS7Z,SAAS,iBAE9BotC,EAAU,SAAUnb,GAGtB,SAASmb,EAAQnqB,EAAOp5B,GACtB8sB,EAAgBvhC,KAAMg4D,GAEtB,IAaMC,EAbFvoD,EAAQ+xB,EAA2BzhC,MAAOg4D,EAAQj+B,WAAav/B,OAAOimC,eAAeu3B,IAAU31D,KAAKrC,KAAM6tC,EAAOp5B,IAErH,GAAI1E,MAAMuiB,QAAQ5iB,EAAM+E,QAAQgP,WAAY,CAC1C,IAAIA,EAAYjT,SAASF,cAAc,OACvCynD,EAAYt0C,EAAW/T,EAAM+E,QAAQgP,WACrCoqB,EAAMpqB,UAAUzS,WAAWsP,aAAamD,EAAWoqB,EAAMpqB,WACzD/T,EAAM+T,UAAYA,MAC0B,kBAA5B/T,EAAM+E,QAAQgP,UAC9B/T,EAAM+T,UAAYjT,SAASka,cAAchb,EAAM+E,QAAQgP,WAEvD/T,EAAM+T,UAAY/T,EAAM+E,QAAQgP,UAElC,OAAM/T,EAAM+T,qBAAqBuM,aAKjCtgB,EAAM+T,UAAUtT,UAAUC,IAAI,cAC9BV,EAAMwoD,SAAW,GACjBxoD,EAAM85C,SAAW,GACjBhvD,OAAOD,KAAKmV,EAAM+E,QAAQ+0C,UAAUjuD,SAAQ,SAAUyD,GACpD0Q,EAAMyoD,WAAWn5D,EAAQ0Q,EAAM+E,QAAQ+0C,SAASxqD,OAElD,GAAGzD,QAAQ8G,KAAKqN,EAAM+T,UAAU7F,iBAAiB,mBAAmB,SAAUpE,GAC5E9J,EAAM0lC,OAAO57B,MAEf9J,EAAMm+B,MAAMjI,GAAG8W,EAAQ9xB,QAAQib,OAAOC,eAAe,SAAUt0B,EAAMqc,GAC/Drc,IAASkrC,EAAQ9xB,QAAQib,OAAO8H,kBAClCj+B,EAAM22B,OAAOxY,MAGjBne,EAAMm+B,MAAMjI,GAAG8W,EAAQ9xB,QAAQib,OAAO6H,iBAAiB,WACrD,IAAI0qB,EAAwB1oD,EAAMm+B,MAAMvI,UAAU0D,WAC9CqvB,EAAyB30B,EAAe00B,EAAuB,GAC/DvqC,EAAQwqC,EAAuB,GAGnC3oD,EAAM22B,OAAOxY,MAERne,IAxBEuoD,EAAOrzB,EAAM5yB,MAAM,iCAAkCtC,EAAM+E,SAAUgtB,EAA2B/xB,EAAOuoD,IA0IlH,OA9JAt2B,EAAUq2B,EAASnb,GA+CnB7c,EAAag4B,EAAS,CAAC,CACrBx8D,IAAK,aACLM,MAAO,SAAoBkD,EAAQoe,GACjCpd,KAAKwpD,SAASxqD,GAAUoe,IAEzB,CACD5hB,IAAK,SACLM,MAAO,SAAgB0d,GACrB,IAAIkpB,EAAS1iC,KAEThB,EAAS,GAAG45B,KAAKv2B,KAAKmX,EAAMrJ,WAAW,SAAUD,GACnD,OAAoC,IAA7BA,EAAU5I,QAAQ,UAE3B,GAAKtI,EAAL,CAKA,GAJAA,EAASA,EAAOZ,MAAM,MAAM/C,QACN,WAAlBme,EAAM0hB,SACR1hB,EAAM9H,aAAa,OAAQ,UAEA,MAAzB1R,KAAKwpD,SAASxqD,GAAiB,CACjC,GAAmC,MAA/BgB,KAAK6tC,MAAM1I,OAAOC,WAA4D,MAAvCplC,KAAK6tC,MAAM1I,OAAOC,UAAUpmC,GAErE,YADA4lC,EAAMr5B,KAAK,wCAAyCvM,EAAQwa,GAG9D,GAAyC,MAArCwnB,EAAYpW,QAAQiO,MAAM75B,GAE5B,YADA4lC,EAAMr5B,KAAK,2CAA4CvM,EAAQwa,GAInE,IAAIszB,EAA8B,WAAlBtzB,EAAM0hB,QAAuB,SAAW,QACxD1hB,EAAM+D,iBAAiBuvB,GAAW,SAAU/oC,GAC1C,IAAIjI,OAAQ,EACZ,GAAsB,WAAlB0d,EAAM0hB,QAAsB,CAC9B,GAAI1hB,EAAMiU,cAAgB,EAAG,OAC7B,IAAInK,EAAW9J,EAAM/E,QAAQ+E,EAAMiU,eAEjC3xB,GADEwnB,EAASigC,aAAa,cAGhBjgC,EAASxnB,QAAS,QAI1BA,GADE0d,EAAMrJ,UAAUkP,SAAS,eAGnB7F,EAAM1d,QAAU0d,EAAM+pC,aAAa,UAE7Cx/C,EAAE0jB,iBAEJib,EAAOmL,MAAMvsB,QAEb,IAAIg3C,EAAwB51B,EAAOmL,MAAMvI,UAAU0D,WAC/CuvB,EAAyB70B,EAAe40B,EAAuB,GAC/DzqC,EAAQ0qC,EAAuB,GAEnC,GAA+B,MAA3B71B,EAAO8mB,SAASxqD,GAClB0jC,EAAO8mB,SAASxqD,GAAQqD,KAAKqgC,EAAQ5mC,QAChC,GAAIklC,EAAYpW,QAAQiO,MAAM75B,GAAQkZ,qBAAqB8oB,EAAYpW,QAAQsO,MAAO,CAE3F,GADAp9B,EAAQ08D,OAAO,SAAWx5D,IACrBlD,EAAO,OACZ4mC,EAAOmL,MAAMmT,gBAAe,IAAIlgB,EAAalW,SAAUuR,OAAOtO,EAAM5qB,OAAO65B,OAAOjP,EAAMxyB,QAAQ2gC,OAAOvgC,EAAgB,GAAIuD,EAAQlD,IAAS4gD,EAAQ9xB,QAAQ4c,QAAQmD,WAEpKjI,EAAOmL,MAAM7uC,OAAOA,EAAQlD,EAAO4gD,EAAQ9xB,QAAQ4c,QAAQmD,MAE7DjI,EAAO2D,OAAOxY,MAGhB7tB,KAAKk4D,SAASn9D,KAAK,CAACiE,EAAQwa,OAE7B,CACDhe,IAAK,SACLM,MAAO,SAAgB+xB,GACrB,IAAIlE,EAAmB,MAATkE,EAAgB,GAAK7tB,KAAK6tC,MAAM/E,UAAUjb,GACxD7tB,KAAKk4D,SAAS38D,SAAQ,SAAUo7D,GAC9B,IAAIC,EAAQlzB,EAAeizB,EAAM,GAC7B33D,EAAS43D,EAAM,GACfp9C,EAAQo9C,EAAM,GAElB,GAAsB,WAAlBp9C,EAAM0hB,QAAsB,CAC9B,IAAI5M,OAAS,EACb,GAAa,MAATT,EACFS,EAAS,UACJ,GAAuB,MAAnB3E,EAAQ3qB,GACjBsvB,EAAS9U,EAAMkR,cAAc,yBACxB,IAAK3a,MAAMuiB,QAAQ3I,EAAQ3qB,IAAU,CAC1C,IAAIlD,EAAQ6tB,EAAQ3qB,GACC,kBAAVlD,IACTA,EAAQA,EAAMsB,QAAQ,MAAO,QAE/BkxB,EAAS9U,EAAMkR,cAAc,iBAAmB5uB,EAAQ,MAE5C,MAAVwyB,GACF9U,EAAM1d,MAAQ,GACd0d,EAAMiU,eAAiB,GAEvBa,EAAOhL,UAAW,OAGpB,GAAa,MAATuK,EACFrU,EAAMrJ,UAAUE,OAAO,kBAClB,GAAImJ,EAAM+pC,aAAa,SAAU,CAGtC,IAAIO,EAAWn6B,EAAQ3qB,KAAYwa,EAAMuL,aAAa,UAA+B,MAAnB4E,EAAQ3qB,IAAmB2qB,EAAQ3qB,GAAQpB,aAAe4b,EAAMuL,aAAa,UAA+B,MAAnB4E,EAAQ3qB,KAAoBwa,EAAMuL,aAAa,SAC1MvL,EAAMrJ,UAAUge,OAAO,YAAa21B,QAEpCtqC,EAAMrJ,UAAUge,OAAO,YAAgC,MAAnBxE,EAAQ3qB,WAO/Cg5D,EA/JK,CAgKZ3zB,EAASzZ,SAIX,SAAS6tC,EAAUh1C,EAAWzkB,EAAQlD,GACpC,IAAI0d,EAAQhJ,SAASF,cAAc,UACnCkJ,EAAM9H,aAAa,OAAQ,UAC3B8H,EAAMrJ,UAAUC,IAAI,MAAQpR,GACf,MAATlD,IACF0d,EAAM1d,MAAQA,GAEhB2nB,EAAU9R,YAAY6H,GAGxB,SAASu+C,EAAYt0C,EAAWtb,GACzB4H,MAAMuiB,QAAQnqB,EAAO,MACxBA,EAAS,CAACA,IAEZA,EAAO5M,SAAQ,SAAU28D,GACvB,IAAIQ,EAAQloD,SAASF,cAAc,QACnCooD,EAAMvoD,UAAUC,IAAI,cACpB8nD,EAAS38D,SAAQ,SAAUo9D,GACzB,GAAuB,kBAAZA,EACTF,EAAUC,EAAOC,OACZ,CACL,IAAI35D,EAASxE,OAAOD,KAAKo+D,GAAS,GAC9B78D,EAAQ68D,EAAQ35D,GAChB+Q,MAAMuiB,QAAQx2B,GAChB88D,EAAUF,EAAO15D,EAAQlD,GAEzB28D,EAAUC,EAAO15D,EAAQlD,OAI/B2nB,EAAU9R,YAAY+mD,MAI1B,SAASE,EAAUn1C,EAAWzkB,EAAQijC,GACpC,IAAIzoB,EAAQhJ,SAASF,cAAc,UACnCkJ,EAAMrJ,UAAUC,IAAI,MAAQpR,GAC5BijC,EAAO1mC,SAAQ,SAAUO,GACvB,IAAIwyB,EAAS9d,SAASF,cAAc,WACtB,IAAVxU,EACFwyB,EAAO5c,aAAa,QAAS5V,GAE7BwyB,EAAO5c,aAAa,WAAY,YAElC8H,EAAM7H,YAAY2c,MAEpB7K,EAAU9R,YAAY6H,GAhDxBw+C,EAAQntB,SAAW,GAmDnBmtB,EAAQntB,SAAW,CACjBpnB,UAAW,KACX+lC,SAAU,CACRqP,MAAO,WACL,IAAI7xB,EAAShnC,KAET6tB,EAAQ7tB,KAAK6tC,MAAMnG,eACvB,GAAa,MAAT7Z,EACJ,GAAoB,GAAhBA,EAAMxyB,OAAa,CACrB,IAAIsuB,EAAU3pB,KAAK6tC,MAAM/E,YACzBtuC,OAAOD,KAAKovB,GAASpuB,SAAQ,SAAUsB,GAEoC,MAArEmkC,EAAYpW,QAAQiO,MAAMh8B,EAAMmkC,EAAYpW,QAAQ8N,MAAMuC,SAC5D+L,EAAO6G,MAAM7uC,OAAOnC,GAAM,WAI9BmD,KAAK6tC,MAAM3D,aAAarc,EAAO6uB,EAAQ9xB,QAAQ4c,QAAQmD,OAG3DmuB,UAAW,SAAmBh9D,GAC5B,IAAIytD,EAAQvpD,KAAK6tC,MAAM/E,YAAY,SACrB,QAAVhtC,GAA4B,MAATytD,EACrBvpD,KAAK6tC,MAAM7uC,OAAO,QAAS,QAAS09C,EAAQ9xB,QAAQ4c,QAAQmD,MAClD7uC,GAAmB,UAAVytD,GACnBvpD,KAAK6tC,MAAM7uC,OAAO,SAAS,EAAO09C,EAAQ9xB,QAAQ4c,QAAQmD,MAE5D3qC,KAAK6tC,MAAM7uC,OAAO,YAAalD,EAAO4gD,EAAQ9xB,QAAQ4c,QAAQmD,OAEhEyV,OAAQ,SAAgBtkD,GACtB,IAAI+xB,EAAQ7tB,KAAK6tC,MAAMnG,eACnB/d,EAAU3pB,KAAK6tC,MAAM/E,UAAUjb,GAC/BuyB,EAAS1sC,SAASiW,EAAQy2B,QAAU,GACxC,GAAc,OAAVtkD,GAA4B,OAAVA,EAAgB,CACpC,IAAIsvC,EAAqB,OAAVtvC,EAAiB,GAAK,EACX,QAAtB6tB,EAAQmvC,YAAqB1tB,IAAa,GAC9CprC,KAAK6tC,MAAM7uC,OAAO,SAAUohD,EAAShV,EAAUsR,EAAQ9xB,QAAQ4c,QAAQmD,QAG3EouB,KAAM,SAAcj9D,IACJ,IAAVA,IACFA,EAAQ08D,OAAO,oBAEjBx4D,KAAK6tC,MAAM7uC,OAAO,OAAQlD,EAAO4gD,EAAQ9xB,QAAQ4c,QAAQmD,OAE3D8I,KAAM,SAAc33C,GAClB,IAAI+xB,EAAQ7tB,KAAK6tC,MAAMnG,eACnB/d,EAAU3pB,KAAK6tC,MAAM/E,UAAUjb,GACrB,UAAV/xB,EACsB,YAApB6tB,EAAQ,SAA6C,cAApBA,EAAQ,QAC3C3pB,KAAK6tC,MAAM7uC,OAAO,QAAQ,EAAO09C,EAAQ9xB,QAAQ4c,QAAQmD,MAEzD3qC,KAAK6tC,MAAM7uC,OAAO,OAAQ,YAAa09C,EAAQ9xB,QAAQ4c,QAAQmD,MAGjE3qC,KAAK6tC,MAAM7uC,OAAO,OAAQlD,EAAO4gD,EAAQ9xB,QAAQ4c,QAAQmD,SAMjE/qC,EAAQgrB,QAAUotC,EAClBp4D,EAAQm4D,YAAcA,GAIhB,SAAUp4D,EAAQC,GAExBD,EAAOC,QAAU,uOAIX,SAAUD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZ0nB,EAAU1wB,EAAoB,IAE9B2wB,EAAWrnB,EAAuBonB,GAEtC,SAASpnB,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIm3B,EAAc,SAAUC,GAG1B,SAASD,EAAYv6C,EAAQ2kC,GAC3B7hB,EAAgBvhC,KAAMg5D,GAEtB,IAAItpD,EAAQ+xB,EAA2BzhC,MAAOg5D,EAAYj/B,WAAav/B,OAAOimC,eAAeu4B,IAAc32D,KAAKrC,KAAMye,IAOtH,OALA/O,EAAM0zC,MAAM//B,UAAY+/B,EACxB1zC,EAAM+T,UAAUtT,UAAUC,IAAI,mBAC9B,GAAGhS,MAAMiE,KAAKqN,EAAM+T,UAAU7F,iBAAiB,mBAAoB,EAAG,GAAGriB,SAAQ,SAAU2zC,GACzFA,EAAK/+B,UAAUC,IAAI,iBAEdV,EA0BT,OAtCAiyB,EAAUq3B,EAAaC,GAevBj5B,EAAag5B,EAAa,CAAC,CACzBx9D,IAAK,YACLM,MAAO,SAAmBwyB,GACxB,IAAI4gB,EAAO7O,EAAK24B,EAAY9gD,UAAU6hB,WAAav/B,OAAOimC,eAAeu4B,EAAY9gD,WAAY,YAAalY,MAAMqC,KAAKrC,KAAMsuB,GAE/H,OADA4gB,EAAKn0B,MAAMm+C,gBAAkB5qC,EAAOvJ,aAAa,UAAY,GACtDmqB,IAER,CACD1zC,IAAK,aACLM,MAAO,SAAoBozC,EAAM0U,GAC/BvjB,EAAK24B,EAAY9gD,UAAU6hB,WAAav/B,OAAOimC,eAAeu4B,EAAY9gD,WAAY,aAAclY,MAAMqC,KAAKrC,KAAMkvC,EAAM0U,GAC3H,IAAIuV,EAAan5D,KAAKojD,MAAM14B,cAAc,mBACtC5uB,EAAQozC,GAAOA,EAAKnqB,aAAa,eAAsB,GACvDo0C,IACyB,SAAvBA,EAAWj+B,QACbi+B,EAAWp+C,MAAMq+C,OAASt9D,EAE1Bq9D,EAAWp+C,MAAMs+C,KAAOv9D,OAMzBk9D,EAvCS,CAwChB/Q,EAASr9B,SAEXhrB,EAAQgrB,QAAUouC,GAIZ,SAAUr5D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZ0nB,EAAU1wB,EAAoB,IAE9B2wB,EAAWrnB,EAAuBonB,GAEtC,SAASpnB,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIy3B,EAAa,SAAUL,GAGzB,SAASK,EAAW76C,EAAQ0qC,GAC1B5nB,EAAgBvhC,KAAMs5D,GAEtB,IAAI5pD,EAAQ+xB,EAA2BzhC,MAAOs5D,EAAWv/B,WAAav/B,OAAOimC,eAAe64B,IAAaj3D,KAAKrC,KAAMye,IAQpH,OANA/O,EAAM+T,UAAUtT,UAAUC,IAAI,kBAC9B,GAAG7U,QAAQ8G,KAAKqN,EAAM+T,UAAU7F,iBAAiB,oBAAoB,SAAUsxB,GAC7EA,EAAK7rB,UAAY8lC,EAAMja,EAAKnqB,aAAa,eAAiB,OAE5DrV,EAAM6pD,YAAc7pD,EAAM+T,UAAUiH,cAAc,gBAClDhb,EAAM8zC,WAAW9zC,EAAM6pD,aAChB7pD,EAYT,OAzBAiyB,EAAU23B,EAAYL,GAgBtBj5B,EAAas5B,EAAY,CAAC,CACxB99D,IAAK,aACLM,MAAO,SAAoBozC,EAAM0U,GAC/BvjB,EAAKi5B,EAAWphD,UAAU6hB,WAAav/B,OAAOimC,eAAe64B,EAAWphD,WAAY,aAAclY,MAAMqC,KAAKrC,KAAMkvC,EAAM0U,GACzH1U,EAAOA,GAAQlvC,KAAKu5D,YACpBv5D,KAAKojD,MAAM//B,UAAY6rB,EAAK7rB,cAIzBi2C,EA1BQ,CA2BfrR,EAASr9B,SAEXhrB,EAAQgrB,QAAU0uC,GAIZ,SAAU35D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEnB,SAASqB,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,IAAIo0D,EAAU,WACZ,SAASA,EAAQ3rB,EAAOsc,GACtB,IAAIz6C,EAAQ1P,KAEZuhC,EAAgBvhC,KAAMw5D,GAEtBx5D,KAAK6tC,MAAQA,EACb7tC,KAAKmqD,gBAAkBA,GAAmB35C,SAASgQ,KACnDxgB,KAAKk3B,KAAO2W,EAAM7I,aAAa,cAC/BhlC,KAAKk3B,KAAK7T,UAAYrjB,KAAKi6B,YAAYw/B,SACnCz5D,KAAK6tC,MAAM3W,OAASl3B,KAAK6tC,MAAM5I,oBACjCjlC,KAAK6tC,MAAM3W,KAAK3Z,iBAAiB,UAAU,WACzC7N,EAAMwnB,KAAKnc,MAAMq8C,WAAa,EAAI1nD,EAAMm+B,MAAM3W,KAAKmQ,UAAY,QAGnErnC,KAAK8oD,OA4CP,OAzCA9oB,EAAaw5B,EAAS,CAAC,CACrBh+D,IAAK,OACLM,MAAO,WACLkE,KAAKk3B,KAAK/mB,UAAUC,IAAI,eAEzB,CACD5U,IAAK,WACLM,MAAO,SAAkB49D,GACvB,IAAI3tC,EAAO2tC,EAAU3tC,KAAO2tC,EAAUp+C,MAAQ,EAAItb,KAAKk3B,KAAK7b,YAAc,EAEtEwQ,EAAM6tC,EAAU/tC,OAAS3rB,KAAK6tC,MAAM3W,KAAKmQ,UAC7CrnC,KAAKk3B,KAAKnc,MAAMgR,KAAOA,EAAO,KAC9B/rB,KAAKk3B,KAAKnc,MAAM8Q,IAAMA,EAAM,KAC5B7rB,KAAKk3B,KAAK/mB,UAAUE,OAAO,WAC3B,IAAIm4B,EAAkBxoC,KAAKmqD,gBAAgB3+B,wBACvCmuC,EAAa35D,KAAKk3B,KAAK1L,wBACvBuX,EAAQ,EASZ,GARI42B,EAAWxtC,MAAQqc,EAAgBrc,QACrC4W,EAAQyF,EAAgBrc,MAAQwtC,EAAWxtC,MAC3CnsB,KAAKk3B,KAAKnc,MAAMgR,KAAOA,EAAOgX,EAAQ,MAEpC42B,EAAW5tC,KAAOyc,EAAgBzc,OACpCgX,EAAQyF,EAAgBzc,KAAO4tC,EAAW5tC,KAC1C/rB,KAAKk3B,KAAKnc,MAAMgR,KAAOA,EAAOgX,EAAQ,MAEpC42B,EAAWhuC,OAAS6c,EAAgB7c,OAAQ,CAC9C,IAAI8c,EAASkxB,EAAWhuC,OAASguC,EAAW9tC,IACxC+tC,EAAgBF,EAAU/tC,OAAS+tC,EAAU7tC,IAAM4c,EACvDzoC,KAAKk3B,KAAKnc,MAAM8Q,IAAMA,EAAM+tC,EAAgB,KAC5C55D,KAAKk3B,KAAK/mB,UAAUC,IAAI,WAE1B,OAAO2yB,IAER,CACDvnC,IAAK,OACLM,MAAO,WACLkE,KAAKk3B,KAAK/mB,UAAUE,OAAO,cAC3BrQ,KAAKk3B,KAAK/mB,UAAUE,OAAO,iBAIxBmpD,EA3DK,GA8Dd55D,EAAQgrB,QAAU4uC,GAIZ,SAAU75D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAI4nC,EAAiB,WAAc,SAASC,EAAc9lC,EAAK1C,GAAK,IAAIyoC,EAAO,GAAQC,GAAK,EAAUzuB,GAAK,EAAW0uB,OAAK1hC,EAAW,IAAM,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAA6B,GAArBD,EAAK7oC,KAAKgpC,EAAGjoC,OAAYX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAAW,MAAOkQ,GAAO+J,GAAK,EAAM0uB,EAAKz4B,EAAO,QAAU,KAAWw4B,GAAMlT,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIvb,EAAI,MAAM0uB,GAAQ,OAAOF,EAAQ,OAAO,SAAU/lC,EAAK1C,GAAK,GAAI4U,MAAMuiB,QAAQz0B,GAAQ,OAAOA,EAAY,GAAI4lC,OAAOvG,YAAY1iC,OAAOqD,GAAQ,OAAO8lC,EAAc9lC,EAAK1C,GAAa,MAAM,IAAIiK,UAAU,yDAAjkB,GAEjBi7B,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZN,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfQ,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAElC8K,EAAWlU,EAAoB,GAE/BmU,EAAY7K,EAAuB4K,GAEnCquB,EAAQviC,EAAoB,IAE5BwiC,EAASl5B,EAAuBi5B,GAEhCE,EAAQziC,EAAoB,IAE5B0iC,EAASp5B,EAAuBm5B,GAEhCz1B,EAAahN,EAAoB,IAEjC2iC,EAAS3iC,EAAoB,IAE7B4iC,EAAUt5B,EAAuBq5B,GAErC,SAASr5B,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIs4B,EAAiB,CAAC,CAAC,CAAE9Y,OAAQ,CAAC,IAAK,IAAK,KAAK,KAAW,CAAC,OAAQ,SAAU,YAAa,QAAS,CAAC,CAAE5N,KAAM,WAAa,CAAEA,KAAM,WAAa,CAAC,UAE7I2mB,EAAY,SAAUC,GAGxB,SAASD,EAAUvsB,EAAOp5B,GACxB8sB,EAAgBvhC,KAAMo6D,GAES,MAA3B3lD,EAAQ2iB,QAAQ+T,SAAwD,MAArC12B,EAAQ2iB,QAAQ+T,QAAQ1nB,YAC7DhP,EAAQ2iB,QAAQ+T,QAAQ1nB,UAAY02C,GAGtC,IAAIzqD,EAAQ+xB,EAA2BzhC,MAAOo6D,EAAUrgC,WAAav/B,OAAOimC,eAAe25B,IAAY/3D,KAAKrC,KAAM6tC,EAAOp5B,IAGzH,OADA/E,EAAMm+B,MAAMpqB,UAAUtT,UAAUC,IAAI,WAC7BV,EAkBT,OA9BAiyB,EAAUy4B,EAAWC,GAerBr6B,EAAao6B,EAAW,CAAC,CACvB5+D,IAAK,gBACLM,MAAO,SAAuBqvC,GAC5BA,EAAQ1nB,UAAUtT,UAAUC,IAAI,WAChCpQ,KAAKs6D,aAAa,GAAGl8D,MAAMiE,KAAK8oC,EAAQ1nB,UAAU7F,iBAAiB,WAAYs8C,EAAQtvC,SACvF5qB,KAAKu6D,aAAa,GAAGn8D,MAAMiE,KAAK8oC,EAAQ1nB,UAAU7F,iBAAiB,WAAYs8C,EAAQtvC,SACvF5qB,KAAK4oD,QAAU,IAAI4R,EAAYx6D,KAAK6tC,MAAO7tC,KAAKyU,QAAQ6zB,QACpD6C,EAAQ1nB,UAAUiH,cAAc,aAClC1qB,KAAK6tC,MAAMrI,SAASuX,WAAW,CAAEvhD,IAAK,IAAKklD,UAAU,IAAQ,SAAU7yB,EAAOoV,GAC5EkI,EAAQqe,SAAS,QAAQnnD,KAAK8oC,GAAUlI,EAAQjkC,OAAO+5D,aAMxDqB,EA/BO,CAgCdN,EAAOlvC,SAETwvC,EAAUvvB,UAAW,EAAIlK,EAAS/V,UAAS,EAAM,GAAIkvC,EAAOlvC,QAAQigB,SAAU,CAC5EzT,QAAS,CACP+T,QAAS,CACPqe,SAAU,CACRuP,KAAM,SAAcj9D,GAClB,GAAIA,EAAO,CACT,IAAI+xB,EAAQ7tB,KAAK6tC,MAAMnG,eACvB,GAAa,MAAT7Z,GAAiC,GAAhBA,EAAMxyB,OAAa,OACxC,IAAIivD,EAAUtqD,KAAK6tC,MAAM1E,QAAQtb,GAC7B,iBAAiB3qB,KAAKonD,IAA2C,IAA/BA,EAAQhjD,QAAQ,aACpDgjD,EAAU,UAAYA,GAExB,IAAI1B,EAAU5oD,KAAK6tC,MAAMtI,MAAMqjB,QAC/BA,EAAQc,KAAK,OAAQY,QAErBtqD,KAAK6tC,MAAM7uC,OAAO,QAAQ,SAQtC,IAAIw7D,EAAc,SAAUC,GAG1B,SAASD,EAAY3sB,EAAOvF,GAC1B/G,EAAgBvhC,KAAMw6D,GAEtB,IAAI93B,EAASjB,EAA2BzhC,MAAOw6D,EAAYzgC,WAAav/B,OAAOimC,eAAe+5B,IAAcn4D,KAAKrC,KAAM6tC,EAAOvF,IAG9H,OADA5F,EAAO4nB,QAAU5nB,EAAOxL,KAAKxM,cAAc,gBACpCgY,EA0DT,OAlEAf,EAAU64B,EAAaC,GAWvBz6B,EAAaw6B,EAAa,CAAC,CACzBh/D,IAAK,SACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAEbqgC,EAAKm6B,EAAYtiD,UAAU6hB,WAAav/B,OAAOimC,eAAe+5B,EAAYtiD,WAAY,SAAUlY,MAAMqC,KAAKrC,MAC3GA,KAAKk3B,KAAKxM,cAAc,eAAenN,iBAAiB,SAAS,SAAU1L,GACrEm1B,EAAO9P,KAAK/mB,UAAUkP,SAAS,cACjC2nB,EAAOojB,OAEPpjB,EAAO0iB,KAAK,OAAQ1iB,EAAOsjB,QAAQ75C,aAErCoB,EAAM4V,oBAERznB,KAAKk3B,KAAKxM,cAAc,eAAenN,iBAAiB,SAAS,SAAU1L,GACzE,GAAwB,MAApBm1B,EAAOujB,UAAmB,CAC5B,IAAI18B,EAAQmZ,EAAOujB,UACnBvjB,EAAOwjB,eACPxjB,EAAO6G,MAAMhG,WAAWha,EAAO,QAAQ,EAAO4d,EAAU7gB,QAAQ4c,QAAQmD,aACjE3D,EAAOujB,UAEhB14C,EAAM4V,iBACNuf,EAAO8hB,UAET9oD,KAAK6tC,MAAMjI,GAAG6F,EAAU7gB,QAAQib,OAAO8H,kBAAkB,SAAU9f,EAAO2pB,EAAUl8C,GAClF,GAAa,MAATuyB,EAAJ,CACA,GAAqB,IAAjBA,EAAMxyB,QAAgBC,IAAWmwC,EAAU7gB,QAAQ4c,QAAQmD,KAAM,CACnE,IAAI0V,EAAwBrZ,EAAO6G,MAAM1I,OAAOwK,WAAWqqB,EAAOpvC,QAASiD,EAAM5qB,OAC7Eq9C,EAAyB5c,EAAe2c,EAAuB,GAC/D0Y,EAAOzY,EAAuB,GAC9Bl+B,EAASk+B,EAAuB,GAEpC,GAAY,MAARyY,EAAc,CAChB/xB,EAAOujB,UAAY,IAAIjmB,EAAWoG,MAAM7c,EAAM5qB,MAAQmf,EAAQ22C,EAAK19D,UACnE,IAAIivD,EAAU0P,EAAOpvC,QAAQjB,QAAQovC,EAAK/2B,SAK1C,OAJAgF,EAAOsjB,QAAQ75C,YAAc65C,EAC7BtjB,EAAOsjB,QAAQ54C,aAAa,OAAQ44C,GACpCtjB,EAAO0zB,YACP1zB,EAAOj/B,SAASi/B,EAAO6G,MAAMtF,UAAUvB,EAAOujB,yBAIzCvjB,EAAOujB,UAEhBvjB,EAAO8hB,aAGV,CACDttD,IAAK,OACLM,MAAO,WACLukC,EAAKm6B,EAAYtiD,UAAU6hB,WAAav/B,OAAOimC,eAAe+5B,EAAYtiD,WAAY,OAAQlY,MAAMqC,KAAKrC,MACzGA,KAAKk3B,KAAKnR,gBAAgB,iBAIvBy0C,EAnES,CAoEhBX,EAAMlS,aAER6S,EAAYf,SAAW,CAAC,0FAA2F,mGAAoG,4BAA6B,6BAA6Bp7D,KAAK,IAEtRuB,EAAQgrB,QAAUwvC,GAIZ,SAAUz6D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAI6+D,EAAQrjC,EAAoB,IAE5BsjC,EAASh6B,GAAuB+5B,GAEhC9F,EAASv9B,EAAoB,IAE7By9B,EAAaz9B,EAAoB,IAEjCujC,EAAUvjC,EAAoB,IAE9BwjC,EAAcxjC,EAAoB,IAElCyjC,EAAen6B,GAAuBk6B,GAEtCE,EAAU1jC,EAAoB,IAE9B2jC,EAAWr6B,GAAuBo6B,GAElCE,EAAQ5jC,EAAoB,IAE5B6jC,EAASv6B,GAAuBs6B,GAEhCpG,EAAcx9B,EAAoB,IAElC2uB,EAAS3uB,EAAoB,IAE7B09B,EAAQ19B,EAAoB,IAE5B29B,EAAQ39B,EAAoB,IAE5B8jC,EAAQ9jC,EAAoB,IAE5B+jC,EAASz6B,GAAuBw6B,GAEhCE,EAAUhkC,EAAoB,IAE9BikC,EAAW36B,GAAuB06B,GAElCvB,EAAQziC,EAAoB,IAE5B0iC,EAASp5B,GAAuBm5B,GAEhCyB,EAAUlkC,EAAoB,IAE9BmkC,EAAW76B,GAAuB46B,GAElCE,EAAUpkC,EAAoB,IAE9BqkC,EAAW/6B,GAAuB86B,GAElCE,EAAatkC,EAAoB,IAEjCukC,EAAcj7B,GAAuBg7B,GAErCE,EAASxkC,EAAoB,IAE7BykC,EAAUn7B,GAAuBk7B,GAEjCE,EAAS1kC,EAAoB,IAE7B2kC,EAAUr7B,GAAuBo7B,GAEjClrB,EAAQxZ,EAAoB,IAE5ByZ,EAASnQ,GAAuBkQ,GAEhCorB,EAAW5kC,EAAoB,IAE/B6kC,EAAYv7B,GAAuBs7B,GAEnCE,EAAU9kC,EAAoB,IAE9B+kC,EAAWz7B,GAAuBw7B,GAElCE,EAAWhlC,EAAoB,IAE/BilC,EAAY37B,GAAuB07B,GAEnCrC,EAAS3iC,EAAoB,IAE7B4iC,EAAUt5B,GAAuBq5B,GAEjCjS,EAAU1wB,EAAoB,IAE9B2wB,EAAWrnB,GAAuBonB,GAElCJ,EAAetwB,EAAoB,IAEnCuwB,EAAgBjnB,GAAuBgnB,GAEvCE,EAAcxwB,EAAoB,IAElCywB,EAAennB,GAAuBknB,GAEtCI,EAAW5wB,EAAoB,IAE/B6wB,EAAYvnB,GAAuBsnB,GAEnCsU,EAAUllC,EAAoB,KAE9BmlC,EAAW77B,GAAuB47B,GAElCE,GAAQplC,EAAoB,IAE5BqlC,GAAS/7B,GAAuB87B,IAEpC,SAAS97B,GAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF++D,EAAOhwC,QAAQkO,SAAS,CACtB,kCAAmCi8B,EAAW3O,mBAE9C,0BAA2ByO,EAAOhP,WAClC,+BAAgCiP,EAAY9O,gBAC5C,0BAA2BC,EAAOjE,WAClC,8BAA+B+S,EAAW5O,eAC1C,yBAA0B6O,EAAM3O,UAChC,yBAA0B4O,EAAMxO,UAEhC,0BAA2BoO,EAAOjP,WAClC,+BAAgCkP,EAAY/O,gBAC5C,0BAA2BE,EAAOlE,WAClC,8BAA+BgT,EAAW7O,eAC1C,yBAA0B8O,EAAM1O,UAChC,yBAA0B2O,EAAMzO,YAC/B,GAEHoU,EAAOhwC,QAAQkO,SAAS,CACtB,gBAAiB+7B,EAAOhP,WACxB,oBAAqBkP,EAAW5O,eAChC,iBAAkB0U,EAAQ+B,YAE1B,qBAAsB9H,EAAY/O,gBAClC,gBAAiBE,EAAOlE,WACxB,eAAgBiT,EAAM3O,UACtB,eAAgB4O,EAAMxO,UAEtB,qBAAsBsU,EAAanwC,QACnC,qBAAsBmmB,EAAOnmB,QAC7B,iBAAkBqwC,EAASrwC,QAC3B,eAAgBuwC,EAAOvwC,QAEvB,eAAgBywC,EAAOzwC,QACvB,eAAgBkmB,EAAM1B,KACtB,iBAAkBmsB,EAAS3wC,QAC3B,eAAgBovC,EAAOpvC,QACvB,iBAAkB6wC,EAAS7wC,QAC3B,iBAAkB+wC,EAAS/wC,QAC3B,oBAAqBixC,EAAYjxC,QAEjC,gBAAiBmxC,EAAQnxC,QACzB,gBAAiBqxC,EAAQrxC,QAEzB,oBAAqBswC,EAAM2B,SAE3B,kBAAmBV,EAAUvxC,QAC7B,iBAAkByxC,EAASzxC,QAC3B,kBAAmB2xC,EAAU3xC,QAE7B,gBAAiB6xC,EAAS7xC,QAC1B,cAAe+xC,GAAO/xC,QAEtB,WAAYsvC,EAAQtvC,QACpB,YAAaq9B,EAASr9B,QACtB,iBAAkBm9B,EAAan9B,QAC/B,kBAAmBi9B,EAAcj9B,QACjC,aAAcu9B,EAAUv9B,UACvB,GAEHhrB,EAAQgrB,QAAUgwC,EAAOhwC,SAInB,SAAUjrB,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQg9D,iBAAcx6D,EAEtB,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAEzC,SAASH,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIi7B,EAAkB,SAAU5a,GAG9B,SAAS4a,IAGP,OAFAv7B,EAAgBvhC,KAAM88D,GAEfr7B,EAA2BzhC,MAAO88D,EAAgB/iC,WAAav/B,OAAOimC,eAAeq8B,IAAkB9hE,MAAMgF,KAAM5E,YA6B5H,OAlCAumC,EAAUm7B,EAAiB5a,GAQ3BliB,EAAa88B,EAAiB,CAAC,CAC7BthE,IAAK,MACLM,MAAO,SAAa6U,EAAM7U,GACxB,GAAc,OAAVA,GAA4B,OAAVA,EAAgB,CACpC,IAAIskD,EAASpgD,KAAKlE,MAAM6U,IAAS,EACjC7U,EAAkB,OAAVA,EAAiBskD,EAAS,EAAIA,EAAS,EAEjD,OAAc,IAAVtkD,GACFkE,KAAKqQ,OAAOM,IACL,GAEA0vB,EAAKy8B,EAAgB5kD,UAAU6hB,WAAav/B,OAAOimC,eAAeq8B,EAAgB5kD,WAAY,MAAOlY,MAAMqC,KAAKrC,KAAM2Q,EAAM7U,KAGtI,CACDN,IAAK,SACLM,MAAO,SAAgB6U,EAAM7U,GAC3B,OAAOukC,EAAKy8B,EAAgB5kD,UAAU6hB,WAAav/B,OAAOimC,eAAeq8B,EAAgB5kD,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAM2Q,EAAM7U,IAAUukC,EAAKy8B,EAAgB5kD,UAAU6hB,WAAav/B,OAAOimC,eAAeq8B,EAAgB5kD,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAM2Q,EAAM+C,SAAS5X,MAEzR,CACDN,IAAK,QACLM,MAAO,SAAe6U,GACpB,OAAO+C,SAAS2sB,EAAKy8B,EAAgB5kD,UAAU6hB,WAAav/B,OAAOimC,eAAeq8B,EAAgB5kD,WAAY,QAASlY,MAAMqC,KAAKrC,KAAM2Q,UAAUvO,MAI/I06D,EAnCa,CAoCpB97B,EAAYpW,QAAQ2O,WAAWE,OAE7BmjC,EAAc,IAAIE,EAAgB,SAAU,YAAa,CAC3DjiC,MAAOmG,EAAYpW,QAAQ8N,MAAMsC,MACjCoK,UAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAGnCxlC,EAAQg9D,YAAcA,GAIhB,SAAUj9D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIuzC,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAErC,SAASzO,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIk7B,EAAa,SAAUttB,GAGzB,SAASstB,IAGP,OAFAx7B,EAAgBvhC,KAAM+8D,GAEft7B,EAA2BzhC,MAAO+8D,EAAWhjC,WAAav/B,OAAOimC,eAAes8B,IAAa/hE,MAAMgF,KAAM5E,YAGlH,OARAumC,EAAUo7B,EAAYttB,GAQfstB,EATQ,CAUfztB,EAAQ1kB,SAEVmyC,EAAWzhC,SAAW,aACtByhC,EAAW7hC,QAAU,aAErBt7B,EAAQgrB,QAAUmyC,GAIZ,SAAUp9D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfmP,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAErC,SAASzO,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIm7B,EAAS,SAAUvtB,GAGrB,SAASutB,IAGP,OAFAz7B,EAAgBvhC,KAAMg9D,GAEfv7B,EAA2BzhC,MAAOg9D,EAAOjjC,WAAav/B,OAAOimC,eAAeu8B,IAAShiE,MAAMgF,KAAM5E,YAU1G,OAfAumC,EAAUq7B,EAAQvtB,GAQlBzP,EAAag9B,EAAQ,KAAM,CAAC,CAC1BxhE,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,OAAOhiC,KAAKk7B,QAAQ5zB,QAAQ06B,EAAQ9G,SAAW,MAI5C8hC,EAhBI,CAiBX1tB,EAAQ1kB,SAEVoyC,EAAO1hC,SAAW,SAClB0hC,EAAO9hC,QAAU,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAEhDt7B,EAAQgrB,QAAUoyC,GAIZ,SAAUr9D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQi9D,cAAWz6D,EAErC,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCsO,EAAS/X,EAAoB,GAE7BgY,EAAU1O,EAAuByO,GAEjCsM,EAAarkB,EAAoB,IAEjCskB,EAAchb,EAAuB+a,GAEzC,SAAS/a,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAASJ,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAE3M,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIg7B,EAAW,SAAUptB,GAGvB,SAASotB,IAGP,OAFAt7B,EAAgBvhC,KAAM68D,GAEfp7B,EAA2BzhC,MAAO68D,EAAS9iC,WAAav/B,OAAOimC,eAAeo8B,IAAW7hE,MAAMgF,KAAM5E,YAwC9G,OA7CAumC,EAAUk7B,EAAUptB,GAQpBzP,EAAa68B,EAAU,CAAC,CACtBrhE,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GACvBe,IAASogE,EAAK3hC,UAAax/B,EAG7BukC,EAAKw8B,EAAS3kD,UAAU6hB,WAAav/B,OAAOimC,eAAeo8B,EAAS3kD,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMnD,EAAMf,GAFjHkE,KAAKk5C,YAAYlY,EAAYpW,QAAQ+N,OAAO34B,KAAKmjC,QAAQtI,UAK5D,CACDr/B,IAAK,SACLM,MAAO,WACY,MAAbkE,KAAKwwC,MAA6B,MAAbxwC,KAAKq9B,KAC5Br9B,KAAK7C,OAAOkT,SAEZgwB,EAAKw8B,EAAS3kD,UAAU6hB,WAAav/B,OAAOimC,eAAeo8B,EAAS3kD,WAAY,SAAUlY,MAAMqC,KAAKrC,QAGxG,CACDxE,IAAK,cACLM,MAAO,SAAqBe,EAAMf,GAEhC,OADAkE,KAAK7C,OAAOivC,QAAQpsC,KAAKoiB,OAAOpiB,KAAK7C,QAAS6C,KAAK3E,UAC/CwB,IAASmD,KAAK7C,OAAOgmC,QAAQ7H,UAC/Bt7B,KAAK7C,OAAO+7C,YAAYr8C,EAAMf,GACvBkE,OAEPA,KAAK7C,OAAOuzC,SACLrQ,EAAKw8B,EAAS3kD,UAAU6hB,WAAav/B,OAAOimC,eAAeo8B,EAAS3kD,WAAY,cAAelY,MAAMqC,KAAKrC,KAAMnD,EAAMf,OAG/H,CAAC,CACHN,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,OAAOA,EAAQ9G,UAAYl7B,KAAKk7B,aAAU94B,EAAYi+B,EAAKw8B,EAAS9iC,WAAav/B,OAAOimC,eAAeo8B,GAAW,UAAW78D,MAAMqC,KAAKrC,KAAMgiC,OAI3I66B,EA9CM,CA+CbvtB,EAAQ1kB,SAEViyC,EAASvhC,SAAW,YACpBuhC,EAAS3hC,QAAU,KAEnB,IAAI+hC,EAAO,SAAUC,GA4BnB,SAASD,EAAKj7B,GACZT,EAAgBvhC,KAAMi9D,GAEtB,IAAIv6B,EAASjB,EAA2BzhC,MAAOi9D,EAAKljC,WAAav/B,OAAOimC,eAAew8B,IAAO56D,KAAKrC,KAAMgiC,IAErGm7B,EAAmB,SAA0Bp5D,GAC/C,GAAIA,EAAE7I,OAAO8V,aAAegxB,EAA5B,CACA,IAAIhjC,EAAS0jC,EAAOS,QAAQxZ,QAAQqY,GAChCpH,EAAOoG,EAAYpW,QAAQgO,KAAK70B,EAAE7I,QACvB,YAAX8D,EACF47B,EAAK57B,OAAO,OAAQ,aACA,cAAXA,GACT47B,EAAK57B,OAAO,OAAQ,aAMxB,OAFAgjC,EAAQzkB,iBAAiB,aAAc4/C,GACvCn7B,EAAQzkB,iBAAiB,YAAa4/C,GAC/Bz6B,EAiDT,OA9FAf,EAAUs7B,EAAMC,GAEhBl9B,EAAai9B,EAAM,KAAM,CAAC,CACxBzhE,IAAK,SACLM,MAAO,SAAgBA,GACrB,IAAIo/B,EAAoB,YAAVp/B,EAAsB,KAAO,KACvC6U,EAAO0vB,EAAK48B,EAAKljC,WAAav/B,OAAOimC,eAAew8B,GAAO,SAAUj9D,MAAMqC,KAAKrC,KAAMk7B,GAI1F,MAHc,YAAVp/B,GAAiC,cAAVA,GACzB6U,EAAKe,aAAa,eAA0B,YAAV5V,GAE7B6U,IAER,CACDnV,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,MAAwB,OAApBA,EAAQ9G,QAAyB,UACb,OAApB8G,EAAQ9G,QACN8G,EAAQuhB,aAAa,gBACyB,SAAzCvhB,EAAQjd,aAAa,gBAA6B,UAAY,YAE9D,cAJX,MAgCJib,EAAai9B,EAAM,CAAC,CAClBzhE,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GACvBkE,KAAKU,SAASrF,OAAS,GACzB2E,KAAKU,SAASsiC,KAAKhkC,OAAOnC,EAAMf,KAGnC,CACDN,IAAK,UACLM,MAAO,WAEL,OAAOL,EAAgB,GAAIuE,KAAKmjC,QAAQ7H,SAAUt7B,KAAKmjC,QAAQxZ,QAAQ3pB,KAAKgiC,YAE7E,CACDxmC,IAAK,eACLM,MAAO,SAAsB8+B,EAAMz2B,GACjC,GAAIy2B,aAAgBiiC,EAClBx8B,EAAK48B,EAAK/kD,UAAU6hB,WAAav/B,OAAOimC,eAAew8B,EAAK/kD,WAAY,eAAgBlY,MAAMqC,KAAKrC,KAAM46B,EAAMz2B,OAC1G,CACL,IAAIlB,EAAe,MAAPkB,EAAcnE,KAAK3E,SAAW8I,EAAIie,OAAOpiB,MACjDm1C,EAAQn1C,KAAKlC,MAAMmF,GACvBkyC,EAAMh4C,OAAOmjB,aAAasa,EAAMua,MAGnC,CACD35C,IAAK,WACLM,MAAO,SAAkBmnC,GACvB5C,EAAK48B,EAAK/kD,UAAU6hB,WAAav/B,OAAOimC,eAAew8B,EAAK/kD,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAMijC,GACrG,IAAI5F,EAAOr9B,KAAKq9B,KACJ,MAARA,GAAgBA,EAAKmT,OAASxwC,MAAQq9B,EAAK8F,QAAQ7H,WAAat7B,KAAKmjC,QAAQ7H,UAAY+B,EAAK2E,QAAQ9G,UAAYl7B,KAAKgiC,QAAQ9G,SAAWmC,EAAK2E,QAAQjd,aAAa,kBAAoB/kB,KAAKgiC,QAAQjd,aAAa,kBACpNsY,EAAKgP,aAAarsC,MAClBq9B,EAAKhtB,YAGR,CACD7U,IAAK,UACLM,MAAO,SAAiBZ,GACtB,GAAIA,EAAOioC,QAAQ7H,WAAat7B,KAAKmjC,QAAQ7H,SAAU,CACrD,IAAI4T,EAAOlO,EAAYpW,QAAQ+N,OAAO34B,KAAKmjC,QAAQC,cACnDloC,EAAOmxC,aAAa6C,GACpBlvC,KAAK2R,YAAYu9B,GAEnB7O,EAAK48B,EAAK/kD,UAAU6hB,WAAav/B,OAAOimC,eAAew8B,EAAK/kD,WAAY,UAAWlY,MAAMqC,KAAKrC,KAAM9E,OAIjG+hE,EA/FE,CAgGTrhB,EAAYhxB,SAEdqyC,EAAK3hC,SAAW,OAChB2hC,EAAKpiC,MAAQmG,EAAYpW,QAAQ8N,MAAM8J,WACvCy6B,EAAK/hC,QAAU,CAAC,KAAM,MACtB+hC,EAAK75B,aAAe,YACpB65B,EAAK55B,gBAAkB,CAACw5B,GAExBj9D,EAAQi9D,SAAWA,EACnBj9D,EAAQgrB,QAAUqyC,GAIZ,SAAUt9D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIs/D,EAAQ9jC,EAAoB,IAE5B+jC,EAASz6B,EAAuBw6B,GAEpC,SAASx6B,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIu7B,EAAS,SAAUC,GAGrB,SAASD,IAGP,OAFA77B,EAAgBvhC,KAAMo9D,GAEf37B,EAA2BzhC,MAAOo9D,EAAOrjC,WAAav/B,OAAOimC,eAAe28B,IAASpiE,MAAMgF,KAAM5E,YAG1G,OARAumC,EAAUy7B,EAAQC,GAQXD,EATI,CAUX/B,EAAOzwC,SAETwyC,EAAO9hC,SAAW,SAClB8hC,EAAOliC,QAAU,CAAC,KAAM,KAExBt7B,EAAQgrB,QAAUwyC,GAIZ,SAAUz9D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZa,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAEtC,SAASP,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIy7B,EAAS,SAAU/tB,GAGrB,SAAS+tB,IAGP,OAFA/7B,EAAgBvhC,KAAMs9D,GAEf77B,EAA2BzhC,MAAOs9D,EAAOvjC,WAAav/B,OAAOimC,eAAe68B,IAAStiE,MAAMgF,KAAM5E,YAuB1G,OA5BAumC,EAAU27B,EAAQ/tB,GAQlBvP,EAAas9B,EAAQ,KAAM,CAAC,CAC1B9hE,IAAK,SACLM,MAAO,SAAgBA,GACrB,MAAc,UAAVA,EACK0U,SAASF,cAAc,OACX,QAAVxU,EACF0U,SAASF,cAAc,OAEvB+vB,EAAKi9B,EAAOvjC,WAAav/B,OAAOimC,eAAe68B,GAAS,SAAUt9D,MAAMqC,KAAKrC,KAAMlE,KAG7F,CACDN,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,MAAwB,QAApBA,EAAQ9G,QAA0B,MACd,QAApB8G,EAAQ9G,QAA0B,aAAtC,MAKGoiC,EA7BI,CA8BXl8B,EAASxW,SAEX0yC,EAAOhiC,SAAW,SAClBgiC,EAAOpiC,QAAU,CAAC,MAAO,OAEzBt7B,EAAQgrB,QAAU0yC,GAIZ,SAAU39D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIqlC,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAEtC,SAASP,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI07B,EAAS,SAAUhuB,GAGrB,SAASguB,IAGP,OAFAh8B,EAAgBvhC,KAAMu9D,GAEf97B,EAA2BzhC,MAAOu9D,EAAOxjC,WAAav/B,OAAOimC,eAAe88B,IAASviE,MAAMgF,KAAM5E,YAG1G,OARAumC,EAAU47B,EAAQhuB,GAQXguB,EATI,CAUXn8B,EAASxW,SAEX2yC,EAAOjiC,SAAW,SAClBiiC,EAAOriC,QAAU,IAEjBt7B,EAAQgrB,QAAU2yC,GAIZ,SAAU59D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIqlC,EAAU7J,EAAoB,GAE9B8J,EAAWR,EAAuBO,GAEtC,SAASP,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI27B,EAAY,SAAUjuB,GAGxB,SAASiuB,IAGP,OAFAj8B,EAAgBvhC,KAAMw9D,GAEf/7B,EAA2BzhC,MAAOw9D,EAAUzjC,WAAav/B,OAAOimC,eAAe+8B,IAAYxiE,MAAMgF,KAAM5E,YAGhH,OARAumC,EAAU67B,EAAWjuB,GAQdiuB,EATO,CAUdp8B,EAASxW,SAEX4yC,EAAUliC,SAAW,YACrBkiC,EAAUtiC,QAAU,IAEpBt7B,EAAQgrB,QAAU4yC,GAIZ,SAAU79D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErCg5B,EAAQziC,EAAoB,IAEhC,SAASsJ,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI47B,EAAa,CAAC,MAAO,SAAU,SAE/BC,EAAQ,SAAU37B,GAGpB,SAAS27B,IAGP,OAFAn8B,EAAgBvhC,KAAM09D,GAEfj8B,EAA2BzhC,MAAO09D,EAAM3jC,WAAav/B,OAAOimC,eAAei9B,IAAQ1iE,MAAMgF,KAAM5E,YAqDxG,OA1DAumC,EAAU+7B,EAAO37B,GAQjB/B,EAAa09B,EAAO,CAAC,CACnBliE,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GACvB2hE,EAAWn2D,QAAQzK,IAAS,EAC1Bf,EACFkE,KAAKgiC,QAAQtwB,aAAa7U,EAAMf,GAEhCkE,KAAKgiC,QAAQjc,gBAAgBlpB,GAG/BwjC,EAAKq9B,EAAMxlD,UAAU6hB,WAAav/B,OAAOimC,eAAei9B,EAAMxlD,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMnD,EAAMf,MAG7G,CAAC,CACHN,IAAK,SACLM,MAAO,SAAgBA,GACrB,IAAI6U,EAAO0vB,EAAKq9B,EAAM3jC,WAAav/B,OAAOimC,eAAei9B,GAAQ,SAAU19D,MAAMqC,KAAKrC,KAAMlE,GAI5F,MAHqB,kBAAVA,GACT6U,EAAKe,aAAa,MAAO1R,KAAKmiD,SAASrmD,IAElC6U,IAER,CACDnV,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,OAAOy7B,EAAW1yC,QAAO,SAAUpB,EAASuY,GAI1C,OAHIF,EAAQuhB,aAAarhB,KACvBvY,EAAQuY,GAAaF,EAAQjd,aAAamd,IAErCvY,IACN,MAEJ,CACDnuB,IAAK,QACLM,MAAO,SAAeg7B,GACpB,MAAQ,qBAAqB5zB,KAAK4zB,IAAQ,yBAAyB5zB,KAAK4zB,KAGzE,CACDt7B,IAAK,WACLM,MAAO,SAAkBg7B,GACvB,OAAO,EAAIijC,EAAM5X,UAAUrrB,EAAK,CAAC,OAAQ,QAAS,SAAWA,EAAM,SAEpE,CACDt7B,IAAK,QACLM,MAAO,SAAekmC,GACpB,OAAOA,EAAQjd,aAAa,WAIzB24C,EA3DG,CA4DV18B,EAAYpW,QAAQsO,OAEtBwkC,EAAMpiC,SAAW,QACjBoiC,EAAMxiC,QAAU,MAEhBt7B,EAAQgrB,QAAU8yC,GAIZ,SAAU/9D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAGT,IAAIkkC,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZ+O,EAAS/X,EAAoB,GAE7ByiC,EAAQziC,EAAoB,IAE5B0iC,EAASp5B,EAAuBm5B,GAEpC,SAASn5B,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAI47B,EAAa,CAAC,SAAU,SAExBE,EAAQ,SAAUC,GAGpB,SAASD,IAGP,OAFAp8B,EAAgBvhC,KAAM29D,GAEfl8B,EAA2BzhC,MAAO29D,EAAM5jC,WAAav/B,OAAOimC,eAAek9B,IAAQ3iE,MAAMgF,KAAM5E,YA+CxG,OApDAumC,EAAUg8B,EAAOC,GAQjB59B,EAAa29B,EAAO,CAAC,CACnBniE,IAAK,SACLM,MAAO,SAAgBe,EAAMf,GACvB2hE,EAAWn2D,QAAQzK,IAAS,EAC1Bf,EACFkE,KAAKgiC,QAAQtwB,aAAa7U,EAAMf,GAEhCkE,KAAKgiC,QAAQjc,gBAAgBlpB,GAG/BwjC,EAAKs9B,EAAMzlD,UAAU6hB,WAAav/B,OAAOimC,eAAek9B,EAAMzlD,WAAY,SAAUlY,MAAMqC,KAAKrC,KAAMnD,EAAMf,MAG7G,CAAC,CACHN,IAAK,SACLM,MAAO,SAAgBA,GACrB,IAAI6U,EAAO0vB,EAAKs9B,EAAM5jC,WAAav/B,OAAOimC,eAAek9B,GAAQ,SAAU39D,MAAMqC,KAAKrC,KAAMlE,GAI5F,OAHA6U,EAAKe,aAAa,cAAe,KACjCf,EAAKe,aAAa,mBAAmB,GACrCf,EAAKe,aAAa,MAAO1R,KAAKmiD,SAASrmD,IAChC6U,IAER,CACDnV,IAAK,UACLM,MAAO,SAAiBkmC,GACtB,OAAOy7B,EAAW1yC,QAAO,SAAUpB,EAASuY,GAI1C,OAHIF,EAAQuhB,aAAarhB,KACvBvY,EAAQuY,GAAaF,EAAQjd,aAAamd,IAErCvY,IACN,MAEJ,CACDnuB,IAAK,WACLM,MAAO,SAAkBg7B,GACvB,OAAOkjC,EAAOpvC,QAAQu3B,SAASrrB,KAEhC,CACDt7B,IAAK,QACLM,MAAO,SAAekmC,GACpB,OAAOA,EAAQjd,aAAa,WAIzB44C,EArDG,CAsDVtuB,EAAOvP,YAET69B,EAAMriC,SAAW,QACjBqiC,EAAMztD,UAAY,WAClBytD,EAAMziC,QAAU,SAEhBt7B,EAAQgrB,QAAU+yC,GAIZ,SAAUh+D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQi+D,iBAAcz7D,EAExC,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZyjB,EAASzsB,EAAoB,IAE7B0sB,EAAUpjB,EAAuBmjB,GAEjCtH,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCrY,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAEtC,SAASxD,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIg8B,EAAc,SAAUC,GAG1B,SAASD,IAGP,OAFAt8B,EAAgBvhC,KAAM69D,GAEfp8B,EAA2BzhC,MAAO69D,EAAY9jC,WAAav/B,OAAOimC,eAAeo9B,IAAc7iE,MAAMgF,KAAM5E,YAuBpH,OA5BAumC,EAAUk8B,EAAaC,GAQvB99B,EAAa69B,EAAa,KAAM,CAAC,CAC/BriE,IAAK,SACLM,MAAO,SAAgBA,GACrB,IAAI6U,EAAO0vB,EAAKw9B,EAAY9jC,WAAav/B,OAAOimC,eAAeo9B,GAAc,SAAU79D,MAAMqC,KAAKrC,KAAMlE,GAQxG,MAPqB,kBAAVA,IACTsO,OAAO2zD,MAAMhhE,OAAOjB,EAAO6U,EAAM,CAC/BqtD,cAAc,EACdC,WAAY,SAEdttD,EAAKe,aAAa,aAAc5V,IAE3B6U,IAER,CACDnV,IAAK,QACLM,MAAO,SAAekmC,GACpB,OAAOA,EAAQjd,aAAa,kBAIzB84C,EA7BS,CA8BhB7Z,EAAQp5B,SAEVizC,EAAYviC,SAAW,UACvBuiC,EAAY3tD,UAAY,aACxB2tD,EAAY3iC,QAAU,OAEtB,IAAIgjC,EAAU,SAAUrhB,GAUtB,SAASqhB,IACP38B,EAAgBvhC,KAAMk+D,GAEtB,IAAIx7B,EAASjB,EAA2BzhC,MAAOk+D,EAAQnkC,WAAav/B,OAAOimC,eAAey9B,IAAU77D,KAAKrC,OAEzG,GAAoB,MAAhBoK,OAAO2zD,MACT,MAAM,IAAIrnD,MAAM,kCAElB,OAAOgsB,EAGT,OApBAf,EAAUu8B,EAASrhB,GAEnB7c,EAAak+B,EAAS,KAAM,CAAC,CAC3B1iE,IAAK,WACLM,MAAO,WACL4gD,EAAQ9xB,QAAQkO,SAAS+kC,GAAa,OAenCK,EArBK,CAsBZ75B,EAASzZ,SAEXhrB,EAAQi+D,YAAcA,EACtBj+D,EAAQgrB,QAAUszC,GAIZ,SAAUv+D,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQu+D,UAAYv+D,EAAQ4vC,eAAYptC,EAE1D,IAAI49B,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfG,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZS,EAAazJ,EAAoB,GAEjC0J,EAAcJ,EAAuBG,GAErC0b,EAASnlB,EAAoB,GAE7BolB,EAAU9b,EAAuB6b,GAEjCrY,EAAU9M,EAAoB,GAE9B+M,EAAWzD,EAAuBwD,GAElC0M,EAAQxZ,EAAoB,IAE5ByZ,EAASnQ,EAAuBkQ,GAEpC,SAASlQ,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIu8B,EAAkB,SAAUC,GAG9B,SAASD,IAGP,OAFA78B,EAAgBvhC,KAAMo+D,GAEf38B,EAA2BzhC,MAAOo+D,EAAgBrkC,WAAav/B,OAAOimC,eAAe29B,IAAkBpjE,MAAMgF,KAAM5E,YAyB5H,OA9BAumC,EAAUy8B,EAAiBC,GAQ3Br+B,EAAao+B,EAAiB,CAAC,CAC7B5iE,IAAK,cACLM,MAAO,SAAqBwmC,GAC1BtiC,KAAKgiC,QAAQvxB,YAAczQ,KAAKgiC,QAAQvxB,YACxCzQ,KAAKo1C,SACL/U,EAAK+9B,EAAgBlmD,UAAU6hB,WAAav/B,OAAOimC,eAAe29B,EAAgBlmD,WAAY,cAAelY,MAAMqC,KAAKrC,KAAMsiC,KAE/H,CACD9mC,IAAK,YACLM,MAAO,SAAmBwiE,GACxB,IAAIriC,EAAOj8B,KAAKgiC,QAAQvxB,YACpBzQ,KAAKu+D,aAAetiC,KAClBA,EAAKjmB,OAAO3a,OAAS,GAAwB,MAAnB2E,KAAKu+D,cACjCv+D,KAAKgiC,QAAQ3e,UAAYi7C,EAAWriC,GACpCj8B,KAAKgiC,QAAQ2b,YACb39C,KAAKo1C,UAEPp1C,KAAKu+D,WAAatiC,OAKjBmiC,EA/Ba,CAgCpBrtB,EAAOnmB,SAETwzC,EAAgBluD,UAAY,YAE5B,IAAIiuD,EAAY,IAAIn9B,EAAYpW,QAAQ2O,WAAWE,MAAM,QAAS,OAAQ,CACxEoB,MAAOmG,EAAYpW,QAAQ8N,MAAMuC,SAG/BujC,EAAS,SAAU3hB,GAWrB,SAAS2hB,EAAO3wB,EAAOp5B,GACrB8sB,EAAgBvhC,KAAMw+D,GAEtB,IAAI97B,EAASjB,EAA2BzhC,MAAOw+D,EAAOzkC,WAAav/B,OAAOimC,eAAe+9B,IAASn8D,KAAKrC,KAAM6tC,EAAOp5B,IAEpH,GAAwC,oBAA7BiuB,EAAOjuB,QAAQgqD,UACxB,MAAM,IAAI/nD,MAAM,6FAElB,IAAIgoD,EAAQ,KASZ,OARAh8B,EAAOmL,MAAMjI,GAAG8W,EAAQ9xB,QAAQib,OAAO6H,iBAAiB,WACtD99B,aAAa8uD,GACbA,EAAQ7uD,YAAW,WACjB6yB,EAAO+7B,YACPC,EAAQ,OACPh8B,EAAOjuB,QAAQkqD,aAEpBj8B,EAAO+7B,YACA/7B,EAqBT,OAhDAf,EAAU68B,EAAQ3hB,GAElB7c,EAAaw+B,EAAQ,KAAM,CAAC,CAC1BhjE,IAAK,WACLM,MAAO,WACL4gD,EAAQ9xB,QAAQkO,SAASqlC,GAAW,GACpCzhB,EAAQ9xB,QAAQkO,SAASslC,GAAiB,OAwB9Cp+B,EAAaw+B,EAAQ,CAAC,CACpBhjE,IAAK,YACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAEb,IAAIA,KAAK6tC,MAAMvI,UAAUwO,UAAzB,CACA9zC,KAAK6tC,MAAMxH,OAAOqW,EAAQ9xB,QAAQ4c,QAAQmD,MAC1C,IAAI9c,EAAQ7tB,KAAK6tC,MAAMnG,eACvB1nC,KAAK6tC,MAAM1I,OAAOvC,YAAYw7B,GAAiB7iE,SAAQ,SAAUqjE,GAC/DA,EAAKH,UAAUz3B,EAAOvyB,QAAQgqD,cAEhCz+D,KAAK6tC,MAAMxH,OAAOqW,EAAQ9xB,QAAQ4c,QAAQO,QAC7B,MAATla,GACF7tB,KAAK6tC,MAAM/F,aAAaja,EAAO6uB,EAAQ9xB,QAAQ4c,QAAQO,aAKtDy2B,EAjDI,CAkDXn6B,EAASzZ,SAEX4zC,EAAO3zB,SAAW,CAChB4zB,UAAW,WACT,OAAmB,MAAfr0D,OAAOy0D,KAAqB,KACzB,SAAU5iC,GACf,IAAIh8B,EAASmK,OAAOy0D,KAAKC,cAAc7iC,GACvC,OAAOh8B,EAAOnE,OAJP,GAOX6iE,SAAU,KAGZ/+D,EAAQ4vC,UAAY4uB,EACpBx+D,EAAQu+D,UAAYA,EACpBv+D,EAAQgrB,QAAU4zC,GAIZ,SAAU7+D,EAAQC,GAExBD,EAAOC,QAAU,8LAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,+LAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,+LAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,+LAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,g7EAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,sTAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,iRAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,sUAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,oPAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,mVAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,kVAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,qOAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,mOAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,0WAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,6YAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,03CAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,gkBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,goBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,gMAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,0OAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,yQAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,+PAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,+ZAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,osBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,uVAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,6XAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,wqBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,ijBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,6gBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,gMAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,+qBAIX,SAAUD,EAAQC,GAExBD,EAAOC,QAAU,oKAIX,SAAUD,EAAQC,EAAS03B,GAEjC,aAGA98B,OAAOoB,eAAegE,EAAS,aAAc,CAC3C9D,OAAO,IAET8D,EAAQgrB,QAAUhrB,EAAQm/D,mBAAgB38D,EAE1C,IAAIi+B,EAAO,SAAS/b,EAAIjqB,EAAQs9B,EAAU2I,GAA2B,OAAXjmC,IAAiBA,EAASkmC,SAASroB,WAAW,IAAIsoB,EAAOhmC,OAAOK,yBAAyBR,EAAQs9B,GAAW,QAAav1B,IAATo+B,EAAoB,CAAE,IAAIrjC,EAAS3C,OAAOimC,eAAepmC,GAAS,OAAe,OAAX8C,OAAmB,EAAkCmnB,EAAInnB,EAAQw6B,EAAU2I,GAAoB,GAAI,UAAWE,EAAQ,OAAOA,EAAK1kC,MAAgB,IAAI07B,EAASgJ,EAAKlc,IAAK,YAAeliB,IAAXo1B,EAAmDA,EAAOn1B,KAAKi+B,QAAnE,GAErZN,EAAe,WAAc,SAASrkC,EAAiBT,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAI8kC,EAAazjC,EAAMrB,GAAI8kC,EAAWnlC,WAAamlC,EAAWnlC,aAAc,EAAOmlC,EAAWlkC,cAAe,EAAU,UAAWkkC,IAAYA,EAAWjkC,UAAW,GAAMxB,OAAOoB,eAAeV,EAAQ+kC,EAAWzkC,IAAKykC,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYxkC,EAAiBukC,EAAYhoB,UAAWioB,GAAiBC,GAAazkC,EAAiBukC,EAAaE,GAAqBF,GAA7gB,GAEfQ,EAAUpJ,EAAoB,GAE9BqJ,EAAWC,EAAuBF,GAElC8K,EAAWlU,EAAoB,GAE/BmU,EAAY7K,EAAuB4K,GAEnCquB,EAAQviC,EAAoB,IAE5BwiC,EAASl5B,EAAuBi5B,GAEhCv1B,EAAahN,EAAoB,IAEjC2iC,EAAS3iC,EAAoB,IAE7B4iC,EAAUt5B,EAAuBq5B,GAErC,SAASr5B,EAAuB/kC,GAAO,OAAOA,GAAOA,EAAI67B,WAAa77B,EAAM,CAAE+uB,QAAS/uB,GAEvF,SAAS0lC,EAAgBC,EAAUtB,GAAe,KAAMsB,aAAoBtB,GAAgB,MAAM,IAAI96B,UAAU,qCAEhH,SAASq8B,EAA2B3oB,EAAMzW,GAAQ,IAAKyW,EAAQ,MAAM,IAAI4oB,eAAe,6DAAgE,OAAOr/B,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByW,EAAPzW,EAElO,SAASs/B,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIz8B,UAAU,kEAAoEy8B,GAAeD,EAAS1pB,UAAY1d,OAAOm+B,OAAOkJ,GAAcA,EAAW3pB,UAAW,CAAE+hB,YAAa,CAAEn+B,MAAO8lC,EAAU9mC,YAAY,EAAOkB,UAAU,EAAMD,cAAc,KAAe8lC,IAAYrnC,OAAOs/B,eAAiBt/B,OAAOs/B,eAAe8H,EAAUC,GAAcD,EAAS7H,UAAY8H,GAEje,IAAIs4B,EAAiB,CAAC,CAAC,OAAQ,SAAU,QAAS,CAAC,CAAE9Y,OAAQ,GAAK,CAAEA,OAAQ,GAAK,eAE7E2d,EAAc,SAAU3E,GAG1B,SAAS2E,EAAYnxB,EAAOp5B,GAC1B8sB,EAAgBvhC,KAAMg/D,GAES,MAA3BvqD,EAAQ2iB,QAAQ+T,SAAwD,MAArC12B,EAAQ2iB,QAAQ+T,QAAQ1nB,YAC7DhP,EAAQ2iB,QAAQ+T,QAAQ1nB,UAAY02C,GAGtC,IAAIzqD,EAAQ+xB,EAA2BzhC,MAAOg/D,EAAYjlC,WAAav/B,OAAOimC,eAAeu+B,IAAc38D,KAAKrC,KAAM6tC,EAAOp5B,IAG7H,OADA/E,EAAMm+B,MAAMpqB,UAAUtT,UAAUC,IAAI,aAC7BV,EAaT,OAzBAiyB,EAAUq9B,EAAa3E,GAevBr6B,EAAag/B,EAAa,CAAC,CACzBxjE,IAAK,gBACLM,MAAO,SAAuBqvC,GAC5BnrC,KAAK4oD,QAAU,IAAImW,EAAc/+D,KAAK6tC,MAAO7tC,KAAKyU,QAAQ6zB,QAC1DtoC,KAAK4oD,QAAQ1xB,KAAKvlB,YAAYw5B,EAAQ1nB,WACtCzjB,KAAKs6D,aAAa,GAAGl8D,MAAMiE,KAAK8oC,EAAQ1nB,UAAU7F,iBAAiB,WAAYs8C,EAAQtvC,SACvF5qB,KAAKu6D,aAAa,GAAGn8D,MAAMiE,KAAK8oC,EAAQ1nB,UAAU7F,iBAAiB,WAAYs8C,EAAQtvC,aAIpFo0C,EA1BS,CA2BhBlF,EAAOlvC,SAETo0C,EAAYn0B,UAAW,EAAIlK,EAAS/V,UAAS,EAAM,GAAIkvC,EAAOlvC,QAAQigB,SAAU,CAC9EzT,QAAS,CACP+T,QAAS,CACPqe,SAAU,CACRuP,KAAM,SAAcj9D,GACbA,EAGHkE,KAAK6tC,MAAMtI,MAAMqjB,QAAQc,OAFzB1pD,KAAK6tC,MAAM7uC,OAAO,QAAQ,SAUtC,IAAI+/D,EAAgB,SAAUtE,GAG5B,SAASsE,EAAclxB,EAAOvF,GAC5B/G,EAAgBvhC,KAAM++D,GAEtB,IAAIr8B,EAASjB,EAA2BzhC,MAAO++D,EAAchlC,WAAav/B,OAAOimC,eAAes+B,IAAgB18D,KAAKrC,KAAM6tC,EAAOvF,IAwBlI,OAtBA5F,EAAOmL,MAAMjI,GAAG6F,EAAU7gB,QAAQib,OAAOC,eAAe,SAAUt0B,EAAMqc,EAAO2pB,EAAUl8C,GACvF,GAAIkW,IAASi6B,EAAU7gB,QAAQib,OAAO8H,iBACtC,GAAa,MAAT9f,GAAiBA,EAAMxyB,OAAS,GAAKC,IAAWmwC,EAAU7gB,QAAQ4c,QAAQmD,KAAM,CAClFjI,EAAOg4B,OAEPh4B,EAAOxL,KAAKnc,MAAMgR,KAAO,MACzB2W,EAAOxL,KAAKnc,MAAMO,MAAQ,GAC1BonB,EAAOxL,KAAKnc,MAAMO,MAAQonB,EAAOxL,KAAK7b,YAAc,KACpD,IAAIynB,EAAQJ,EAAOmL,MAAMwO,SAASxuB,EAAM5qB,MAAO4qB,EAAMxyB,QACrD,GAAqB,IAAjBynC,EAAMznC,OACRqnC,EAAO36B,SAAS26B,EAAOmL,MAAMtF,UAAU1a,QAClC,CACL,IAAIoxC,EAAWn8B,EAAMA,EAAMznC,OAAS,GAChC4H,EAAQy/B,EAAOmL,MAAM2S,SAASye,GAC9B5jE,EAASmG,KAAKD,IAAI09D,EAAS5jE,SAAW,EAAGwyB,EAAM5qB,MAAQ4qB,EAAMxyB,OAAS4H,GACtEi8D,EAAUx8B,EAAOmL,MAAMtF,UAAU,IAAIjE,EAAWoG,MAAMznC,EAAO5H,IACjEqnC,EAAO36B,SAASm3D,SAET1uD,SAASmK,gBAAkB+nB,EAAOmmB,SAAWnmB,EAAOmL,MAAMzE,YACnE1G,EAAOomB,UAGJpmB,EAuCT,OApEAf,EAAUo9B,EAAetE,GAgCzBz6B,EAAa++B,EAAe,CAAC,CAC3BvjE,IAAK,SACLM,MAAO,WACL,IAAIkrC,EAAShnC,KAEbqgC,EAAK0+B,EAAc7mD,UAAU6hB,WAAav/B,OAAOimC,eAAes+B,EAAc7mD,WAAY,SAAUlY,MAAMqC,KAAKrC,MAC/GA,KAAKk3B,KAAKxM,cAAc,aAAanN,iBAAiB,SAAS,WAC7DypB,EAAO9P,KAAK/mB,UAAUE,OAAO,iBAE/BrQ,KAAK6tC,MAAMjI,GAAG6F,EAAU7gB,QAAQib,OAAO6H,iBAAiB,WAEtD79B,YAAW,WACT,IAAIm3B,EAAO9P,KAAK/mB,UAAUkP,SAAS,aAAnC,CACA,IAAIwO,EAAQmZ,EAAO6G,MAAMnG,eACZ,MAAT7Z,GACFmZ,EAAOj/B,SAASi/B,EAAO6G,MAAMtF,UAAU1a,OAExC,QAGN,CACDryB,IAAK,SACLM,MAAO,WACLkE,KAAK06D,SAEN,CACDl/D,IAAK,WACLM,MAAO,SAAkB49D,GACvB,IAAI32B,EAAQ1C,EAAK0+B,EAAc7mD,UAAU6hB,WAAav/B,OAAOimC,eAAes+B,EAAc7mD,WAAY,WAAYlY,MAAMqC,KAAKrC,KAAM05D,GAC/HyF,EAAQn/D,KAAKk3B,KAAKxM,cAAc,qBAEpC,GADAy0C,EAAMpkD,MAAMqkD,WAAa,GACX,IAAVr8B,EAAa,OAAOA,EACxBo8B,EAAMpkD,MAAMqkD,YAAc,EAAIr8B,EAAQo8B,EAAM9jD,YAAc,EAAI,SAI3D0jD,EArEW,CAsElBlF,EAAMlS,aAERoX,EAActF,SAAW,CAAC,yCAA0C,kCAAmC,mGAAoG,2BAA4B,UAAUp7D,KAAK,IAEtPuB,EAAQm/D,cAAgBA,EACxBn/D,EAAQgrB,QAAUo0C,GAIZ,SAAUr/D,EAAQC,EAAS03B,GAEjC33B,EAAOC,QAAU03B,EAAoB,OAIzB,gB,qDCxyWX,SAAS7nB,EAAE1L,GAAqDpE,EAAOC,QAAQmE,EAAE,EAAQ,SAAzF,CAA8P/D,GAAK,SAASyP,GAAG,OAAO,SAASA,GAAG,SAAS1L,EAAE5I,GAAG,GAAG+E,EAAE/E,GAAG,OAAO+E,EAAE/E,GAAGyE,QAAQ,IAAIsU,EAAEhU,EAAE/E,GAAG,CAACA,EAAEA,EAAE+Y,GAAE,EAAGtU,QAAQ,IAAI,OAAO6P,EAAEtU,GAAGkH,KAAK6R,EAAEtU,QAAQsU,EAAEA,EAAEtU,QAAQmE,GAAGmQ,EAAEA,GAAE,EAAGA,EAAEtU,QAAQ,IAAIM,EAAE,GAAG,OAAO6D,EAAEyE,EAAEiH,EAAE1L,EAAEyR,EAAEtV,EAAE6D,EAAE5I,EAAE,SAASsU,GAAG,OAAOA,GAAG1L,EAAEgQ,EAAE,SAAStE,EAAEvP,EAAE/E,GAAG4I,EAAE0zB,EAAEhoB,EAAEvP,IAAI1F,OAAOoB,eAAe6T,EAAEvP,EAAE,CAACnE,cAAa,EAAGjB,YAAW,EAAGwpB,IAAInpB,KAAK4I,EAAE7D,EAAE,SAASuP,GAAG,IAAIvP,EAAEuP,GAAGA,EAAEioB,WAAW,WAAW,OAAOjoB,EAAEmb,SAAS,WAAW,OAAOnb,GAAG,OAAO1L,EAAEgQ,EAAE7T,EAAE,IAAIA,GAAGA,GAAG6D,EAAE0zB,EAAE,SAAShoB,EAAE1L,GAAG,OAAOvJ,OAAO0d,UAAUC,eAAe9V,KAAKoN,EAAE1L,IAAIA,EAAEH,EAAE,IAAIG,EAAEA,EAAE0K,EAAE,GAAze,CAA6e,CAAC,SAAS1K,EAAE7D,GAAG6D,EAAEnE,QAAQ6P,GAAG,SAASA,EAAE1L,EAAE7D,GAAG,aAAa1F,OAAOoB,eAAemI,EAAE,aAAa,CAACjI,OAAM,IAAK,IAAIX,EAAE+E,EAAE,GAAGgU,EAAEhU,EAAEA,EAAE/E,GAAGs8B,EAAEv3B,EAAE,GAAGoY,EAAEpY,EAAE,GAAGiU,EAAEmE,EAAEpE,EAAEsE,EAAEif,EAAEjf,GAAE,EAAG,KAAK,KAAK,MAAMzU,EAAE6mB,QAAQzW,EAAEvU,SAAS,SAAS6P,EAAE1L,EAAE7D,GAAG,aAAa,SAAS/E,EAAEsU,GAAG,OAAOA,GAAGA,EAAEioB,WAAWjoB,EAAE,CAACmb,QAAQnb,GAAGjV,OAAOoB,eAAemI,EAAE,aAAa,CAACjI,OAAM,IAAKiI,EAAEs7D,QAAQt7D,EAAEu7D,YAAYv7D,EAAE8gC,WAAM,EAAO,IAAI3wB,EAAEhU,EAAE,GAAGu3B,EAAEt8B,EAAE+Y,GAAGoE,EAAEpY,EAAE,GAAGiU,EAAEhZ,EAAEmd,GAAG7J,EAAErE,OAAOy6B,OAAOpN,EAAE7M,QAAQpS,EAAE,SAAS/I,EAAE1L,GAAGA,IAAIoQ,EAAEyW,QAAQpuB,MAAM+iE,cAAc30C,QAAQ,WAAW,OAAO7mB,IAAI0L,EAAE4uB,UAAUlqB,EAAEyW,QAAQ/tB,KAAKsX,EAAEyW,UAAUpV,EAAE,CAACqvB,MAAMp2B,EAAE6wD,YAAYnrD,EAAEyW,QAAQy0C,QAAQ7mD,GAAGzU,EAAE6mB,QAAQpV,EAAEzR,EAAE8gC,MAAMp2B,EAAE1K,EAAEu7D,YAAYnrD,EAAEyW,QAAQ7mB,EAAEs7D,QAAQ7mD,GAAG,SAAS/I,EAAE1L,EAAE7D,GAAG,aAAa1F,OAAOoB,eAAemI,EAAE,aAAa,CAACjI,OAAM,IAAKiI,EAAE6mB,QAAQ,CAAC2a,MAAM,OAAOi6B,SAAShvD,SAASgQ,KAAK4W,QAAQ,CAAC+T,QAAQ,CAAC,CAAC,OAAO,SAAS,YAAY,UAAU,CAAC,aAAa,cAAc,CAAC,CAACkW,OAAO,GAAG,CAACA,OAAO,IAAI,CAAC,CAAC5N,KAAK,WAAW,CAACA,KAAK,WAAW,CAAC,CAACgsB,OAAO,OAAO,CAACA,OAAO,UAAU,CAAC,CAACrf,OAAO,MAAM,CAACA,OAAO,OAAO,CAAC,CAAC0Y,UAAU,QAAQ,CAAC,CAAC/vD,KAAK,CAAC,SAAQ,EAAG,QAAQ,UAAU,CAAC,CAACs4C,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,KAAM,CAAC,CAACqe,MAAM,IAAI,CAACC,WAAW,KAAK,CAAC,CAACC,KAAK,KAAK,CAAC,CAACrW,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,QAAQ,WAAW36B,YAAY,uBAAuB6X,UAAS,IAAK,SAASh3B,EAAE1L,EAAE7D,GAAG,aAAa,SAAS/E,EAAEsU,GAAG,OAAOA,GAAGA,EAAEioB,WAAWjoB,EAAE,CAACmb,QAAQnb,GAAGjV,OAAOoB,eAAemI,EAAE,aAAa,CAACjI,OAAM,IAAK,IAAIoY,EAAEhU,EAAE,GAAGu3B,EAAEt8B,EAAE+Y,GAAGoE,EAAEpY,EAAE,GAAGiU,EAAEhZ,EAAEmd,GAAG7J,EAAErE,OAAOy6B,OAAOpN,EAAE7M,QAAQ,mBAAmBpwB,OAAOyd,QAAQzd,OAAOoB,eAAepB,OAAO,SAAS,CAACsB,MAAM,SAAS2T,EAAE1L,GAAG,GAAG,MAAM0L,EAAE,MAAM,IAAIrK,UAAU,8CAA8C,IAAI,IAAIlF,EAAE1F,OAAOiV,GAAGtU,EAAE,EAAEA,EAAEC,UAAUC,OAAOF,IAAI,CAAC,IAAI+Y,EAAE9Y,UAAUD,GAAG,GAAG,MAAM+Y,EAAE,IAAI,IAAIujB,KAAKvjB,EAAE1Z,OAAO0d,UAAUC,eAAe9V,KAAK6R,EAAEujB,KAAKv3B,EAAEu3B,GAAGvjB,EAAEujB,IAAI,OAAOv3B,GAAGlE,UAAS,EAAGD,cAAa,IAAKgI,EAAE6mB,QAAQ,CAAC/tB,KAAK,eAAeK,KAAK,WAAW,MAAM,CAAC2iE,SAAS,GAAGC,SAAS,GAAGC,eAAe5rD,EAAEyW,UAAUpuB,MAAM,CAAC+T,QAAQxQ,OAAOjE,MAAMiE,OAAOikB,SAAS,CAACxS,KAAKwuD,QAAQp1C,SAAQ,GAAInW,QAAQ,CAACjD,KAAKhX,OAAOwL,UAAS,EAAG4kB,QAAQ,WAAW,MAAM,KAAK20C,cAAc,CAAC/tD,KAAKhX,OAAOwL,UAAS,EAAG4kB,QAAQ,WAAW,MAAM,MAAMq1C,QAAQ,WAAWjgE,KAAKkgE,cAAcC,cAAc,WAAWngE,KAAK6tC,MAAM,YAAY7tC,KAAK6tC,OAAOuyB,QAAQ,CAACF,WAAW,WAAW,IAAIzwD,EAAEzP,KAAKA,KAAKqgE,MAAMrgE,KAAK6/D,SAASrlE,OAAOyd,OAAO,GAAGjY,KAAK+/D,eAAe//D,KAAKu/D,cAAcv/D,KAAKyU,SAASzU,KAAK6tC,MAAM,IAAIp/B,EAAEzO,KAAKsgE,MAAMj7B,OAAOrlC,KAAK6/D,UAAU7/D,KAAK6tC,MAAMjnB,QAAO,IAAK5mB,KAAKlE,OAAOkE,KAAKuQ,UAAUvQ,KAAK6tC,MAAM0yB,UAAUvgE,KAAKlE,OAAOkE,KAAKuQ,SAASvQ,KAAKgkB,UAAUhkB,KAAK6tC,MAAMjnB,QAAO,GAAI5mB,KAAK6tC,MAAMjI,GAAG,oBAAmB,SAAS7hC,GAAGA,EAAE0L,EAAE+wD,MAAM,QAAQ/wD,EAAEo+B,OAAOp+B,EAAE+wD,MAAM,OAAO/wD,EAAEo+B,UAAS7tC,KAAK6tC,MAAMjI,GAAG,eAAc,SAAS7hC,EAAE7D,EAAE/E,GAAG,IAAI+Y,EAAEzE,EAAE6wD,MAAMj7B,OAAO3kC,SAAS,GAAG2iB,UAAUoU,EAAEhoB,EAAEo+B,MAAMv1B,EAAE7I,EAAEo+B,MAAM1E,UAAU,gBAAgBj1B,IAAIA,EAAE,IAAIzE,EAAEqwD,SAAS5rD,EAAEzE,EAAE+wD,MAAM,QAAQ/wD,EAAEqwD,UAAUrwD,EAAE+wD,MAAM,SAAS,CAAC17B,KAAK5wB,EAAE+nB,KAAK3jB,EAAEu1B,MAAMpW,OAAMz3B,KAAKwgE,MAAM,QAAQxgE,KAAK6tC,UAAUrpC,MAAM,CAAC+L,QAAQ,SAASd,EAAE1L,GAAG/D,KAAK6tC,QAAQp+B,GAAGA,IAAIzP,KAAK8/D,UAAU9/D,KAAK8/D,SAASrwD,EAAEzP,KAAK6tC,MAAM0yB,UAAU9wD,IAAIA,GAAGzP,KAAK6tC,MAAM4yB,QAAQ,MAAM3kE,MAAM,SAAS2T,EAAE1L,GAAG/D,KAAK6tC,QAAQp+B,GAAGA,IAAIzP,KAAK8/D,UAAU9/D,KAAK8/D,SAASrwD,EAAEzP,KAAK6tC,MAAM0yB,UAAU9wD,IAAIA,GAAGzP,KAAK6tC,MAAM4yB,QAAQ,MAAMz8C,SAAS,SAASvU,EAAE1L,GAAG/D,KAAK6tC,OAAO7tC,KAAK6tC,MAAMjnB,QAAQnX,OAAO,SAASA,EAAE1L,GAAG0L,EAAE7P,QAAQ,SAAS6P,EAAE1L,EAAE7D,EAAE/E,EAAE+Y,EAAEujB,GAAG,IAAInf,EAAEnE,EAAE1E,EAAEA,GAAG,GAAGhB,SAASgB,EAAEmb,QAAQ,WAAWnc,GAAG,aAAaA,IAAI6J,EAAE7I,EAAE0E,EAAE1E,EAAEmb,SAAS,IAA4JpV,EAAxJgD,EAAE,mBAAmBrE,EAAEA,EAAEM,QAAQN,EAAyH,GAAvHpQ,IAAIyU,EAAEzb,OAAOgH,EAAEhH,OAAOyb,EAAEkoD,gBAAgB38D,EAAE28D,gBAAgBloD,EAAEmoD,WAAU,GAAIzgE,IAAIsY,EAAE1b,YAAW,GAAIoX,IAAIsE,EAAEooD,SAAS1sD,GAAYujB,GAAGjiB,EAAE,SAAS/F,GAAGA,EAAEA,GAAGzP,KAAK6gE,QAAQ7gE,KAAK6gE,OAAOC,YAAY9gE,KAAK7C,QAAQ6C,KAAK7C,OAAO0jE,QAAQ7gE,KAAK7C,OAAO0jE,OAAOC,WAAWrxD,GAAG,oBAAoBsxD,sBAAsBtxD,EAAEsxD,qBAAqB5lE,GAAGA,EAAEkH,KAAKrC,KAAKyP,GAAGA,GAAGA,EAAEuxD,uBAAuBvxD,EAAEuxD,sBAAsB5wD,IAAIqnB,IAAIjf,EAAEyoD,aAAazrD,GAAGra,IAAIqa,EAAEra,GAAGqa,EAAE,CAAC,IAAIzB,EAAEyE,EAAE1b,WAAW6L,EAAEoL,EAAEyE,EAAEzb,OAAOyb,EAAE0oD,aAAantD,GAAGyE,EAAE2oD,cAAc3rD,EAAEgD,EAAEzb,OAAO,SAAS0S,EAAE1L,GAAG,OAAOyR,EAAEnT,KAAK0B,GAAG4E,EAAE8G,EAAE1L,KAAKyU,EAAE0oD,aAAav4D,EAAE,GAAGtL,OAAOsL,EAAE6M,GAAG,CAACA,GAAG,MAAM,CAAC4rD,SAAS9oD,EAAE1Y,QAAQuU,EAAEM,QAAQ+D,KAAK,SAAS/I,EAAE1L,EAAE7D,GAAG,aAAa,IAAI/E,EAAE,WAAW,IAAIsU,EAAEzP,KAAK+D,EAAE0L,EAAE4xD,eAAenhE,EAAEuP,EAAE6xD,MAAMpsD,IAAInR,EAAE,OAAO7D,EAAE,MAAM,CAAC8E,YAAY,gBAAgB,CAACyK,EAAE8xD,GAAG,WAAW9xD,EAAE+xD,GAAG,KAAKthE,EAAE,MAAM,CAACiE,IAAI,YAAY,IAAI+P,EAAE,GAAGujB,EAAE,CAAC16B,OAAO5B,EAAEulE,gBAAgBxsD,GAAGnQ,EAAEyU,EAAEif,S,wKCA3zJgqC,EAAsB,YACtBC,EAAoB,UACpBC,EAAyB,eACzBC,EAAuB,aACvBC,EAAwB,cAExBC,EAAuB,a,4GCDvBC,EAAgB,aAAInlE,OAAO,CACpCM,KAAM,WACJ,MAAO,CACL8kE,mBAAmB,IAGvBx9D,MAAO,CACLw9D,kBAAmB,SAA2BtyC,EAAUujB,GAClDvjB,IAAaujB,IACf,eAASjzC,KAAKiiE,gBAAiBjiE,KAAKkiE,kBAAmBliE,KAAKmiE,iBAAkB,SAE1EzyC,GACF,eAAQ1vB,KAAKiiE,gBAAiBjiE,KAAKkiE,kBAAmBliE,KAAKmiE,iBAAkB,YAKrFjB,aAAc,WAEZlhE,KAAKiiE,gBAAkB,KACvBjiE,KAAKkiE,kBAAoB,MAE3BjC,QAAS,WACFjgE,KAAKiiE,kBACRjiE,KAAKiiE,gBAAkBzxD,UAGpBxQ,KAAKkiE,oBACRliE,KAAKkiE,kBAAoB,SAGvBliE,KAAKgiE,mBACP,eAAQhiE,KAAKiiE,gBAAiBjiE,KAAKkiE,kBAAmBliE,KAAKmiE,iBAAkB,UAGjFhC,cAAe,WACb,eAASngE,KAAKiiE,gBAAiBjiE,KAAKkiE,kBAAmBliE,KAAKmiE,iBAAkB,UAEhF/B,QAAS,CACPgC,WAAY,SAAoBvwD,GAC9B,OAAQ,eAAS7R,KAAKqgE,IAAKxuD,EAAM3W,SAEnCinE,iBAAkB,SAA0BtwD,GACtC7R,KAAKqiE,iBAAmBriE,KAAKoiE,WAAWvwD,IAC1C7R,KAAKqiE,gBAAgBxwD,OC7ClBywD,EAAe,aAAI1lE,OAAO,CACnCM,KAAM,WACJ,MAAO,CACLqlE,kBAAkB,IAGtB/9D,MAAO,CACL+9D,iBAAkB,SAA0B7yC,EAAUujB,GAChDvjB,IAAaujB,IACf,eAASjzC,KAAKwiE,eAAgB,UAAWxiE,KAAKyiE,gBAAiB,SAE3D/yC,GACF,eAAQ1vB,KAAKwiE,eAAgB,UAAWxiE,KAAKyiE,gBAAiB,YAKtEvB,aAAc,WAEZlhE,KAAKwiE,eAAiB,MAExBvC,QAAS,WACFjgE,KAAKwiE,iBACRxiE,KAAKwiE,eAAiBhyD,UAGpBxQ,KAAKuiE,kBACP,eAAQviE,KAAKwiE,eAAgB,UAAWxiE,KAAKyiE,gBAAiB,UAGlEtC,cAAe,WACb,eAASngE,KAAKwiE,eAAgB,UAAWxiE,KAAKyiE,gBAAiB,UAEjErC,QAAS,CACPqC,gBAAiB,SAAyB5wD,GACpC7R,KAAK0iE,gBACP1iE,KAAK0iE,eAAe7wD,O,wBCxC5B,SAASzX,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAsB3M,IAAI8mE,EAAwB,eAAiB,OAAe,QACxDC,EAAyB,eAAiB,OAAe,QAEzDC,EAAsB,iBACtBC,EAAgB,CAAC,iBAAkB,oBAAoBtkE,KAAI,SAAU4xB,GACvE,MAAO,GAAG/yB,OAAO+yB,EAAU,sCAC1B/xB,KAAK,MAGJ,EAAiB,SAAwB0kE,GAC3C,OAAQA,GAAO,IAAIpoE,OAAO,SAIjB,EAAQ,eAAsB,eAASM,EAAcA,EAAc,GAAIoF,EAAA,MAAU,GAAI,CAG9Fm/D,SAAU,eAAS,CAAC,OAAa,QAAmB,gBACpDx7C,SAAU,eAAS,QAAmB,GAEtCg/C,SAAU,eAAS,QAAmB,GAEtCC,UAAW,eAAS,QAAmB,GAEvCC,OAAQ,eAAS,QAAmB,GAEpCC,OAAQ,eAAS,QAAmB,GAGpC/gD,OAAQ,eAAS,OAAyB,GAC1CghD,WAAY,eAAS,OAAkB,IAEvCj3C,MAAO,eAAS,QAAmB,MAChC,QAGMk3C,EAAgB,aAAIzmE,OAAO,CACpC0mE,OAAQ,CAACjjE,EAAA,KAAS,OAAmB0hE,EAAeO,GACpDiB,QAAS,WACP,MAAO,CACLC,WAAYxjE,OAGhByjE,OAAQ,CACNC,SAAU,CACR94C,QAAS,OAGbpuB,MAAO,EACPU,KAAM,WACJ,MAAO,CACLymE,SAAS,EACTC,wBAAwB,IAG5Bv/D,SAAU,CACRw/D,SAAU,WACR,OAAQ,eAAO7jE,KAAK0jE,WAEtBI,QAAS,WACP,IAAI31C,EAASnuB,KAAKsgE,MAAMnyC,OACxB,OAAOA,EAASA,EAAOkyC,KAAOlyC,EAAS,MAEzC41C,eAAgB,WACd,OAAI/jE,KAAKkjE,OACA,SACEljE,KAAKijE,UACP,YACEjjE,KAAKgjE,SACP,WAGF,IAETgB,cAAe,WAIb,MAAyB,iBAAlBhkE,KAAKw/D,UAAgCx/D,KAAK6jE,SAA+B,GAApB,oBAGhEr/D,MAAO,CACLm/D,QAAS,SAAiBj0C,EAAUujB,GAClC,GAAIjzC,KAAK4jE,uBACP5jE,KAAK4jE,wBAAyB,OAIhC,GAAIl0C,IAAaujB,EAAU,CACzB,IAAInG,EAAYpd,EAAW,OAAkB,OACzCu0C,EAAU,IAAI,OAAQn3B,EAAW,CACnCo3B,YAAY,EACZC,UAAWnkE,KACX9E,OAAQ8E,KAAKsgE,MAAM8D,KACnB/9C,cAAe,KACfg+C,YAAarkE,KAAKskE,OAAStkE,KAAKskE,SAAWtkE,KAAKK,IAAM,OAIxD,GAFAL,KAAKukE,UAAUN,GAEXA,EAAQrmB,iBAMV,OAJA59C,KAAK4jE,wBAAyB,EAC9B5jE,KAAK2jE,QAAU1wB,OAEfjzC,KAAKwkE,KAAK,OAAmBxkE,KAAKykE,cAIhC/0C,EACF1vB,KAAK0kE,WAEL1kE,KAAK2kE,aAIX3gD,SAAU,SAAkB0L,EAAUujB,GAChCvjB,IAAaujB,GAAYvjB,GAAY1vB,KAAK2jE,UAE5C3jE,KAAK2jE,SAAU,KAIrBiB,QAAS,WAEP5kE,KAAK6kE,SAAW,KAChB7kE,KAAK8kE,cAAgB,MAIvBC,YAAa,WAEX/kE,KAAK2jE,SAAU,EACf3jE,KAAKglE,iBAAgB,GACrBhlE,KAAKilE,iBAEP9E,cAAe,WACbngE,KAAK2jE,SAAU,EACf3jE,KAAKglE,iBAAgB,GACrBhlE,KAAKilE,gBACLjlE,KAAKklE,oBAEP9E,QAAS,CAEPmE,UAAW,SAAmBN,GAC5B,IAAIzyD,EAAOyyD,EAAQzyD,KACnBxR,KAAKmlE,WAAW,eAAiB,OAAe3zD,GAAOyyD,GACvDjkE,KAAKwgE,MAAMhvD,EAAMyyD,IAEnBS,SAAU,WACR,IAAIh1D,EAAQ1P,KAEZ,IAAIA,KAAKgkB,SAAT,CAMA,IAAKhkB,KAAK6jE,SACR,GAAsB,qBAAX,OAET,OAAAt4D,EAAA,MAAK,uDAAwD,YACxD,CAEL,IAAI+R,EAAKtd,KAAKkjE,QAAUljE,KAAKmsB,OAASnsB,KAAKlC,MAAQkC,KAAKqgE,IAAMrgE,KAAKsgE,MAAMnyC,OAEzE7Q,EAAKA,EAAG+iD,KAAO/iD,EAEftd,KAAKolE,aAAa9nD,GAKtBtd,KAAKmlE,WAAWxC,EAAuB3iE,MAEvCA,KAAKglE,iBAAgB,GAErBhlE,KAAKqlE,WAAU,WAEb31D,EAAM41D,YAGN51D,EAAM8wD,MAAM,aAGhBmE,SAAU,WACR3kE,KAAKglE,iBAAgB,GACrBhlE,KAAKmlE,WAAWvC,EAAwB5iE,MACxCA,KAAKwgE,MAAM,QACXxgE,KAAKilE,iBAEPG,aAAc,SAAsBxsD,GAClC5Y,KAAKilE,gBACLjlE,KAAK6kE,SAAW,IAAI,OAAOjsD,EAAS5Y,KAAKsgE,MAAM8D,KAAMpkE,KAAKulE,oBAG5DN,cAAe,WACbjlE,KAAK6kE,UAAY7kE,KAAK6kE,SAASj/C,UAC/B5lB,KAAK6kE,SAAW,MAIlBW,aAAc,WACZ,IACExlE,KAAK6kE,SAASY,iBACd,MAAOC,MAEXR,iBAAkB,WAChBt1D,aAAa5P,KAAK8kE,eAClB9kE,KAAK8kE,cAAgB,MAEvBS,gBAAiB,WACf,IAAII,EAAYhE,EAEZ3hE,KAAKkjE,OACPyC,EAAY3lE,KAAKmsB,MAAQu1C,EAAoBD,EACpCzhE,KAAKijE,UACd0C,EAAY9D,EACH7hE,KAAKgjE,SACd2C,EAAY7D,EACH9hE,KAAKmsB,QACdw5C,EAAY/D,GAGd,IAAIgE,EAAe,CACjBD,UAAWA,EACXE,UAAW,CACTzjD,OAAQ,CACNA,OAAQpiB,KAAKoiB,QAAU,GAEzB0jD,KAAM,CACJ1+B,SAAUpnC,KAAKmjE,UAIjB4C,EAAoB/lE,KAAKw/D,SAQ7B,OANIuG,IACFH,EAAaC,UAAUG,gBAAkB,CACvCD,kBAAmBA,IAIhB,eAAUH,EAAc5lE,KAAKojE,YAAc,KAGpD4B,gBAAiB,SAAyBvrD,GAExCzZ,KAAKgiE,kBAAoBvoD,EAEzBzZ,KAAKuiE,iBAAmB9oD,EAExB,IAAIs0B,EAASt0B,EAAS,MAAQ,OAC9BzZ,KAAKimE,MAAMl4B,GAAQ40B,EAAuB3iE,KAAKkmE,oBAEjDA,kBAAmB,SAA2BC,GACxCA,IAAOnmE,OACTA,KAAK2jE,SAAU,IAInBjJ,KAAM,WACJ,IAAIh4B,EAAS1iC,KAETA,KAAKgkB,UAMT,gBAAU,WACR0e,EAAOihC,SAAU,MAIrB7a,KAAM,WACJ,IAAIsd,EAAUhrE,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,IAAmBA,UAAU,GAGzE4E,KAAKgkB,WAIThkB,KAAK2jE,SAAU,EAEXyC,GAEFpmE,KAAKqmE,MAAM,OAAmBrmE,KAAKykE,gBAIvCt2C,OAAQ,SAAgBtc,GACtBA,EAAQA,GAAS,GAEjB,IAAIy0D,EAASz0D,EACTL,EAAO80D,EAAO90D,KACd8V,EAAUg/C,EAAOh/C,SAER,UAAT9V,GAA+B,YAATA,IAAgF,IAA1D,CAAC,OAAY,OAAY,QAAWlK,QAAQggB,MAOxFtnB,KAAKgkB,SACPhkB,KAAK2jE,SAAU,GAIjB3jE,KAAKwgE,MAAM,OAAmB3uD,GAC9B,eAAUA,GAEN7R,KAAK2jE,QACP3jE,KAAK8oD,MAAK,GAEV9oD,KAAK06D,UAMT6L,YAAa,SAAqB10D,GAShC,eAAUA,EAAO,CACf20D,aAAa,KAIjBC,UAAW,SAAmB50D,GAC5B,IAAIyV,EAAUzV,EAAMyV,QAEhBA,IAAY,OAEdtnB,KAAK0mE,MAAM70D,GACFyV,IAAY,OAErBtnB,KAAK2mE,UAAU90D,GAAO,GACbyV,IAAY,QAErBtnB,KAAK2mE,UAAU90D,GAAO,IAI1B60D,MAAO,SAAe70D,GAChB7R,KAAK2jE,UACP3jE,KAAK2jE,SAAU,EACf,eAAU9xD,GAEV7R,KAAKqmE,MAAM,OAAmBrmE,KAAKykE,gBAIvCmC,aAAc,SAAsB/0D,GAE9B7R,KAAKgkB,SACPhkB,KAAK2jE,SAAU,EAIjB3jE,KAAKwgE,MAAM,OAAkB3uD,IAG/Bg1D,YAAa,SAAqBh1D,GAChC,IAAIm1B,EAAShnC,KAET9E,EAAS2W,EAAM3W,QAEf8E,KAAK2jE,SAAY,eAAS3jE,KAAKsgE,MAAM8D,KAAMlpE,IAAY,eAAS8E,KAAK8jE,QAAS5oE,KAChF8E,KAAKklE,mBACLllE,KAAK8kE,cAAgBj1D,YAAW,WAC9B,OAAOm3B,EAAO8hB,SACb9oD,KAAK6jE,SAAW,IAAM,KAI7BxB,gBAAiB,SAAyBxwD,GACxC7R,KAAK6mE,YAAYh1D,IAGnB6wD,eAAgB,SAAwB7wD,GACtC7R,KAAK6mE,YAAYh1D,IAGnB80D,UAAW,SAAmB90D,EAAOi1D,GACnC,IAAIv/B,EAASvnC,KAGT9E,EAAS2W,EAAM3W,QAEd8E,KAAK2jE,SAAW9xD,GAAS,eAAQgxD,EAAqB3nE,KAK3D,eAAU2W,GACV7R,KAAKqlE,WAAU,WACb,IAAI0B,EAAQx/B,EAAOy/B,WAEnB,KAAID,EAAM1rE,OAAS,GAAnB,CAKA,IAAI4H,EAAQ8jE,EAAMz/D,QAAQpM,GAEtB4rE,GAAM7jE,EAAQ,EAChBA,KACU6jE,GAAM7jE,EAAQ8jE,EAAM1rE,OAAS,GACvC4H,IAGEA,EAAQ,IAEVA,EAAQ,GAGVskC,EAAO0/B,UAAUhkE,EAAO8jE,SAG5BE,UAAW,SAAmBhkE,EAAO8jE,GACnC,IAAIzpD,EAAKypD,EAAMnuC,MAAK,SAAUtb,EAAIniB,GAChC,OAAOA,IAAM8H,KAEf,eAAaqa,IAEf0pD,SAAU,WAER,OAAO,EAAe,eAAUlE,EAAe9iE,KAAKsgE,MAAM8D,QAE5DkB,UAAW,WACT,eAAatlE,KAAKsgE,MAAM8D,OAE1BK,aAAc,WACZ,IAAIz8B,EAAShoC,KAEbA,KAAKqlE,WAAU,WACb,eAAar9B,EAAO87B,iB,qBCrd5BnkE,EAAOC,QAAQ,SAAS6P,GAAG,SAAS1L,EAAE5I,GAAG,GAAGmd,EAAEnd,GAAG,OAAOmd,EAAEnd,GAAGyE,QAAQ,IAAIM,EAAEoY,EAAEnd,GAAG,CAACA,EAAEA,EAAE+Y,GAAE,EAAGtU,QAAQ,IAAI,OAAO6P,EAAEtU,GAAGkH,KAAKnC,EAAEN,QAAQM,EAAEA,EAAEN,QAAQmE,GAAG7D,EAAEgU,GAAE,EAAGhU,EAAEN,QAAQ,IAAI0Y,EAAE,GAAG,OAAOvU,EAAEyE,EAAEiH,EAAE1L,EAAEyR,EAAE8C,EAAEvU,EAAE5I,EAAE,SAASsU,GAAG,OAAOA,GAAG1L,EAAEgQ,EAAE,SAAStE,EAAE6I,EAAEnd,GAAG4I,EAAE0zB,EAAEhoB,EAAE6I,IAAI9d,OAAOoB,eAAe6T,EAAE6I,EAAE,CAACvc,cAAa,EAAGjB,YAAW,EAAGwpB,IAAInpB,KAAK4I,EAAE7D,EAAE,SAASuP,GAAG,IAAI6I,EAAE7I,GAAGA,EAAEioB,WAAW,WAAW,OAAOjoB,EAAEmb,SAAS,WAAW,OAAOnb,GAAG,OAAO1L,EAAEgQ,EAAEuE,EAAE,IAAIA,GAAGA,GAAGvU,EAAE0zB,EAAE,SAAShoB,EAAE1L,GAAG,OAAOvJ,OAAO0d,UAAUC,eAAe9V,KAAKoN,EAAE1L,IAAIA,EAAEH,EAAE,SAASG,EAAEA,EAAE0K,EAAE,GAA9e,CAAkf,CAAC,SAASgB,EAAE1L,GAAG0L,EAAE7P,QAAQ,WAAW,IAAI6P,EAAE,GAAG,OAAOA,EAAE7R,SAAS,WAAW,IAAI,IAAI6R,EAAE,GAAG1L,EAAE,EAAEA,EAAE/D,KAAK3E,OAAO0I,IAAI,CAAC,IAAIuU,EAAEtY,KAAK+D,GAAGuU,EAAE,GAAG7I,EAAE1U,KAAK,UAAUud,EAAE,GAAG,IAAIA,EAAE,GAAG,KAAK7I,EAAE1U,KAAKud,EAAE,IAAI,OAAO7I,EAAEpR,KAAK,KAAKoR,EAAEtU,EAAE,SAAS4I,EAAEuU,GAAG,iBAAiBvU,IAAIA,EAAE,CAAC,CAAC,KAAKA,EAAE,MAAM,IAAI,IAAI5I,EAAE,GAAG+E,EAAE,EAAEA,EAAEF,KAAK3E,OAAO6E,IAAI,CAAC,IAAIu3B,EAAEz3B,KAAKE,GAAG,GAAG,iBAAiBu3B,IAAIt8B,EAAEs8B,IAAG,GAAI,IAAIv3B,EAAE,EAAEA,EAAE6D,EAAE1I,OAAO6E,IAAI,CAAC,IAAIgU,EAAEnQ,EAAE7D,GAAG,iBAAiBgU,EAAE,IAAI/Y,EAAE+Y,EAAE,MAAMoE,IAAIpE,EAAE,GAAGA,EAAE,GAAGoE,EAAEA,IAAIpE,EAAE,GAAG,IAAIA,EAAE,GAAG,UAAUoE,EAAE,KAAK7I,EAAE1U,KAAKmZ,MAAMzE,IAAI,SAASA,EAAE1L,EAAEuU,GAAGA,EAAE,IAAI,IAAInd,EAAEmd,EAAE,EAAFA,CAAKA,EAAE,GAAGA,EAAE,GAAG,KAAK,MAAM7I,EAAE7P,QAAQzE,EAAEyE,SAAS,SAAS6P,EAAE1L,EAAEuU,GAAG,aAAa9d,OAAOoB,eAAemI,EAAE,aAAa,CAACjI,OAAM,IAAK,IAAIX,EAAEmd,EAAE,GAAGpY,EAAEoY,EAAEpY,EAAE/E,GAAG4I,EAAE6mB,QAAQ1qB,EAAEsY,GAAG,SAAS/I,EAAE1L,EAAEuU,GAAG,aAAa9d,OAAOoB,eAAemI,EAAE,aAAa,CAACjI,OAAM,IAAK,IAAIX,EAAEmd,EAAE,GAAGvU,EAAE6mB,QAAQ,CAAC/tB,KAAK,wBAAwBL,MAAM,CAAC0qE,SAAS,CAACt8C,aAAQ,GAAQu8C,QAAQ,CAAC31D,KAAKzR,OAAO6qB,QAAQ,YAAY1tB,KAAK,WAAW,MAAM,CAACkqE,GAAG,OAAOhH,QAAQ,CAAC/5B,OAAO,WAAWrmC,KAAKonE,IAAIpnE,KAAKonE,GAAG/gC,UAAUghC,OAAO,WAAWrnE,KAAKonE,KAAKpnE,KAAKonE,GAAG,IAAIjsE,EAAEqd,EAAExY,KAAKqgE,IAAIrgE,KAAKknE,YAAYI,SAAS,WAAWtnE,KAAKonE,KAAKpnE,KAAKonE,GAAGxhD,UAAU5lB,KAAKonE,GAAG,QAAQ5iE,MAAM,CAAC+iE,OAAO,WAAWvnE,KAAKqmC,WAAW45B,QAAQ,WAAWjgE,KAAKwnE,WAAWxnE,KAAKqnE,UAAUI,QAAQ,WAAWznE,KAAKqlE,UAAUrlE,KAAKqmC,SAASqhC,UAAU,WAAW1nE,KAAKqnE,UAAUtC,YAAY,WAAW/kE,KAAKsnE,YAAYnH,cAAc,WAAWngE,KAAKsnE,cAAc,SAAS73D,EAAE1L,EAAEuU,GAAGvU,EAAE0L,EAAE7P,QAAQ0Y,EAAE,EAAFA,GAAOvU,EAAEhJ,KAAK,CAAC0U,EAAEtU,EAAE,inDAAinD,MAAM,SAASsU,EAAE1L,EAAEuU,GAAGvU,EAAE0L,EAAE7P,QAAQ0Y,EAAE,EAAFA,GAAOvU,EAAE5I,EAAEmd,EAAE,GAAG,IAAIvU,EAAEhJ,KAAK,CAAC0U,EAAEtU,EAAE,mCAAmC,MAAM,SAASsU,EAAE1L,EAAEuU,GAAG;;;;;GAK3lH,SAASnd,EAAEsU,GAAG,OAAOsnD,iBAAiBtnD,GAAG,SAASvP,EAAEuP,EAAE1L,GAAG,IAAI,IAAIuU,KAAKvU,EAAE,CAAC,IAAI5I,EAAE4I,EAAEuU,GAAG,iBAAiBnd,IAAIA,GAAG,MAAMsU,EAAEsL,MAAMzC,GAAGnd,EAAE,OAAOsU,EAAE,SAASgoB,EAAEhoB,GAAG,IAAI1L,EAAEyM,SAASF,cAAc,OAAO,OAAOvM,EAAEmM,UAAUT,EAAE1L,EAAE,SAASmQ,EAAEzE,EAAE1L,GAAG,IAAIsQ,EAAE,MAAM,IAAIqC,MAAM,wCAAwC,OAAOrC,EAAEhS,KAAKoN,EAAE1L,GAAG,SAAS0K,EAAEgB,GAAGA,EAAEY,OAAOZ,EAAEY,SAASZ,EAAEuB,YAAYvB,EAAEuB,WAAWH,YAAYpB,GAAG,SAAS+I,EAAE/I,EAAE1L,GAAG,OAAOgM,MAAMmI,UAAUvd,OAAO0H,KAAKoN,EAAE/O,UAAS,SAAS+O,GAAG,OAAOyE,EAAEzE,EAAE1L,MAAK,SAASyR,EAAE/F,EAAE1L,GAAG,IAAIuU,EAAE7I,EAAEmJ,QAAQzI,UAAUhV,EAAEwY,EAAEg0D,MAAMC,UAAU7jE,GAAGuU,EAAE+G,SAASlkB,GAAGyU,aAAayD,EAAEtP,IAAIuU,EAAElI,IAAIjV,GAAG,SAAS6B,EAAEyS,EAAE1L,GAAGsP,EAAEtP,GAAG8L,YAAW,WAAW,OAAOJ,EAAEo4D,SAASp4D,EAAEmJ,QAAQzI,UAAUE,OAAOsD,EAAEg0D,MAAMC,UAAU7jE,MAAK0L,EAAEy3D,SAASY,oBAAoB,SAAS3zD,EAAE1E,EAAE1L,GAAGyR,EAAE/F,EAAE1L,GAAG/G,EAAEyS,EAAE1L,GAAG,SAASH,EAAE6L,GAAG,GAAG,mBAAmBrF,OAAO29D,YAAY,OAAO,IAAIA,YAAYt4D,GAAG,IAAI1L,EAAEyM,SAAS+O,YAAY,eAAe,OAAOxb,EAAEikE,gBAAgBv4D,GAAE,GAAG,OAAG,GAAQ1L,EAAE,SAASgQ,EAAEtE,EAAE1L,EAAEuU,EAAEnd,EAAE+E,GAAG,IAAIu3B,EAAEnf,EAAE,GAAGpE,EAAEoE,EAAE,GAAG7J,EAAE6J,EAAE,GAAGE,EAAEF,EAAE,GAAG9C,EAAE8C,EAAE,GAAGtb,EAAEsb,EAAE,QAAG,IAASnd,IAAIA,GAAE,QAAI,IAAS+E,IAAIA,GAAE,GAAI,IAAI6T,EAAEtE,EAAEmJ,QAAQnJ,EAAEw4D,MAAMzvD,GAAG,KAAKzE,EAAEtF,GAAG,IAAIgB,EAAEw4D,MAAMzvD,GAAG,SAASzE,EAAEtF,GAAGgB,EAAEgoB,GAAGhoB,EAAEyE,GAAG,IAAIzE,EAAEw4D,MAAMzvD,GAAG,OAAOzU,IAAIgQ,EAAEyL,cAAc5b,EAAE,aAAa4U,IAAIzU,EAAE,EAAEgQ,EAAEyL,cAAc5b,EAAE,aAAa4R,IAAIzR,EAAE,GAAGgQ,EAAEyL,cAAc5b,EAAE,aAAa5G,IAAI7B,GAAGgZ,EAAE1E,EAAE+I,IAAI/I,EAAEw4D,MAAMzvD,KAAKzU,GAAG7D,IAAI6T,EAAEyL,cAAc5b,EAAE,MAAM4U,EAAE,UAAU/I,EAAEw4D,MAAMzvD,KAAK,SAAS7P,EAAE8G,GAAG,OAAOiE,SAASjE,EAAE,KAAK,EAAE,SAASke,EAAEle,GAAG,OAAOyE,EAAEzE,EAAE,4BAA4ByE,EAAEzE,EAAE,6BAA6ByE,EAAEzE,EAAE,+BAA+ByE,EAAEzE,EAAE,4BAA4B,SAASy4D,EAAEz4D,GAAG,IAAI1L,EAAE5I,EAAEsU,GAAG,OAAO9G,EAAE5E,EAAEuX,OAAO3S,EAAE5E,EAAEokE,aAAax/D,EAAE5E,EAAEqkE,cAAcz/D,EAAE5E,EAAEskE,iBAAiB1/D,EAAE5E,EAAEukE,kBAAkB,SAASC,EAAE94D,EAAE1L,GAAG,OAAO0L,EAAEy3D,SAASsB,qBAAqBzkE,EAAEvC,KAAKgF,IAAIzC,EAAE0L,EAAEy3D,SAASsB,qBAAqB/4D,EAAEy3D,SAASuB,qBAAqB1kE,EAAEvC,KAAKD,IAAIwC,EAAE0L,EAAEy3D,SAASuB,qBAAqB1kE,EAAE,SAASyE,EAAEiH,EAAE1L,GAAG,IAAIuU,EAAE,CAACgD,MAAMvX,EAAE2kE,YAAYvtE,EAAEqG,KAAKiF,MAAMgJ,EAAE43B,WAAWtjC,EAAE4kE,MAAMrwD,EAAEyT,KAAKhoB,EAAE6kE,yBAAyBn5D,EAAEo5D,WAAW9kE,EAAE+kE,eAAe/kE,EAAEglE,aAAazwD,EAAEyT,KAAKtc,EAAEo5D,WAAW9kE,EAAEilE,wBAAwB1wD,EAAEqT,OAAO5nB,EAAEklE,iBAAiB9tE,EAAEmd,EAAEuT,IAAI9nB,EAAEmlE,cAAc/tE,EAAE+E,EAAE6D,EAAEolE,eAAe7wD,GAAG,IAAImf,EAAE,CAAC5L,IAAI1wB,EAAEstC,OAAO1kC,EAAEqlE,aAAarlE,EAAEslE,uBAAuBtlE,EAAE4kE,MAAMlxC,EAAEtL,MAAMpoB,EAAEglE,cAAchlE,EAAE6kE,yBAAyBn5D,EAAEo5D,YAAY9kE,EAAEulE,gBAAgBvlE,EAAEwlE,qBAAqB9xC,EAAEtL,MAAMpoB,EAAEulE,gBAAgB75D,EAAEo5D,WAAW9kE,EAAE4kE,MAAMlxC,EAAE1L,KAAKhoB,EAAE6kE,yBAAyBn5D,EAAEo5D,WAAW,EAAE9kE,EAAE+kE,eAAe/kE,EAAEglE,aAAahlE,EAAEylE,eAAezlE,EAAEwlE,qBAAqB9xC,EAAE1L,KAAKhoB,EAAEylE,eAAe/5D,EAAEo5D,WAAW3oE,EAAE6D,EAAE0lE,eAAehyC,GAAGv3B,EAAE6D,EAAE2lE,WAAW,CAAC39C,KAAKhoB,EAAE4lE,eAAeruD,MAAMvX,EAAE6lE,gBAAgB7lE,EAAE8lE,mBAAmB3pE,EAAE6D,EAAE+lE,WAAW,CAACj+C,IAAI9nB,EAAEgmE,cAActhC,OAAO1kC,EAAEimE,iBAAiBjmE,EAAEkmE,mBAAmB,SAAS31D,EAAE7E,EAAE1L,GAAG,SAASuU,EAAEvU,GAAG4pB,EAAE/pB,GAAGskE,EAAE1/D,GAAGzE,EAAEmQ,GAAGq0D,GAAG/yD,EAAE/F,EAAEsE,GAAGm2D,EAAEz6D,GAAG1L,EAAE8jB,kBAAkB9jB,EAAE0jB,iBAAiB,SAAStsB,IAAI6B,EAAEyS,EAAEsE,GAAGtE,EAAE9G,GAAGwH,UAAUE,OAAOsD,EAAEg0D,MAAMwC,UAAU16D,EAAEoC,MAAMu4D,OAAO36D,EAAE46D,cAAc,YAAY/xD,GAAG,IAAIpY,EAAE6D,EAAE,GAAG0zB,EAAE1zB,EAAE,GAAGmQ,EAAEnQ,EAAE,GAAG0K,EAAE1K,EAAE,GAAGyU,EAAEzU,EAAE,GAAGoQ,EAAEpQ,EAAE,GAAGH,EAAEG,EAAE,GAAGgQ,EAAEhQ,EAAE,GAAG4E,EAAE5E,EAAE,GAAG4pB,EAAEle,EAAEmJ,QAAQsvD,EAAE,KAAKK,EAAE,KAAK//D,EAAE,KAAKiH,EAAEoC,MAAMgJ,KAAKpL,EAAE+I,GAAG,aAAY,SAASzU,GAAGmkE,EAAEv6C,EAAE/pB,GAAG2kE,EAAExkE,EAAEmQ,GAAG1L,GAAGiH,EAAEgoB,GAAGhoB,EAAEvP,KAAKuP,EAAEhB,GAAGgB,EAAE0E,IAAI1E,EAAEoC,MAAMgJ,KAAKpL,EAAE46D,cAAc,YAAY/xD,GAAG7I,EAAEoC,MAAMg4B,KAAKp6B,EAAE46D,cAAc,UAAUlvE,GAAGsU,EAAE9G,GAAGwH,UAAUC,IAAIuD,EAAEg0D,MAAMwC,UAAUpmE,EAAE8jB,kBAAkB9jB,EAAE0jB,oBAAmB,IAAIpT,EAAE,oBAAoBi2D,UAAUA,QAAQpyD,UAAU6sC,SAASulB,QAAQpyD,UAAUqyD,uBAAuBD,QAAQpyD,UAAUsyD,oBAAoBF,QAAQpyD,UAAUuyD,mBAAmB92D,EAAE,CAAC+2D,KAAK,KAAK9xD,QAAQ,CAAC+xD,MAAM,SAASl7D,GAAG,MAAM,aAAaA,GAAGm7D,KAAK,SAASn7D,GAAG,MAAM,YAAYA,GAAGo7D,UAAU,sBAAsBlD,MAAM,CAACrmD,MAAM,YAAY6oD,SAAS,eAAeW,OAAO,SAASr7D,GAAG,MAAM,cAAcA,GAAGm4D,UAAU,SAASn4D,GAAG,MAAM,iBAAiBA,KAAK4D,EAAE,CAAC2U,EAAE,KAAK1T,EAAE,MAAMy2D,EAAE,SAASt7D,GAAGzP,KAAK4Y,QAAQnJ,EAAEzP,KAAKwpD,SAAS,IAAIj2C,EAAE,CAACy3D,QAAQ,CAACjvE,cAAa,IAAKgvE,EAAE7yD,UAAU2C,KAAK,SAASpL,EAAE1L,QAAG,IAAS/D,KAAKwpD,SAAS/5C,KAAKzP,KAAKwpD,SAAS/5C,GAAG,IAAIzP,KAAKwpD,SAAS/5C,GAAG1U,KAAKgJ,GAAG/D,KAAK4Y,QAAQ2E,iBAAiB9N,EAAE1L,GAAE,IAAKgnE,EAAE7yD,UAAUkyD,OAAO,SAAS36D,EAAE1L,GAAG,IAAIuU,EAAEtY,KAAKA,KAAKwpD,SAAS/5C,GAAGzP,KAAKwpD,SAAS/5C,GAAG9U,QAAO,SAASQ,GAAG,SAAS4I,GAAG5I,IAAI4I,KAAKuU,EAAEM,QAAQ6E,oBAAoBhO,EAAEtU,GAAE,IAAI,OAAO4vE,EAAE7yD,UAAU+yD,UAAU,WAAW,IAAIx7D,EAAEzP,KAAK,IAAI,IAAI+D,KAAK0L,EAAE+5C,SAAS/5C,EAAE26D,OAAOrmE,IAAIwP,EAAEy3D,QAAQ1mD,IAAI,WAAW,IAAI7U,EAAEzP,KAAK,OAAOxF,OAAOD,KAAKyF,KAAKwpD,UAAUj3B,OAAM,SAASxuB,GAAG,OAAO,IAAI0L,EAAE+5C,SAASzlD,GAAG1I,WAAUb,OAAOmB,iBAAiBovE,EAAE7yD,UAAU3E,GAAG,IAAIyU,EAAE,WAAWhoB,KAAKkrE,cAAc,IAAIljD,EAAE9P,UAAUizD,aAAa,SAAS17D,GAAG,IAAI1L,EAAE/D,KAAKkrE,cAAcvwE,QAAO,SAASoJ,GAAG,OAAOA,EAAE6U,UAAUnJ,KAAI,GAAG,OAAO1L,IAAIA,EAAE,IAAIgnE,EAAEt7D,GAAGzP,KAAKkrE,cAAcnwE,KAAKgJ,IAAIA,GAAGikB,EAAE9P,UAAU2C,KAAK,SAASpL,EAAE1L,EAAEuU,GAAGtY,KAAKmrE,aAAa17D,GAAGoL,KAAK9W,EAAEuU,IAAI0P,EAAE9P,UAAUkyD,OAAO,SAAS36D,EAAE1L,EAAEuU,GAAG,IAAInd,EAAE6E,KAAKmrE,aAAa17D,GAAGtU,EAAEivE,OAAOrmE,EAAEuU,GAAGnd,EAAE6vE,SAAShrE,KAAKkrE,cAAchmD,OAAOllB,KAAKkrE,cAAc5jE,QAAQnM,GAAG,IAAI6sB,EAAE9P,UAAU+yD,UAAU,WAAWjrE,KAAKkrE,cAAc3vE,SAAQ,SAASkU,GAAG,OAAOA,EAAEw7D,eAAcjrE,KAAKkrE,cAAc,IAAIljD,EAAE9P,UAAU2xB,KAAK,SAASp6B,EAAE1L,EAAEuU,GAAG,IAAInd,EAAE6E,KAAKmrE,aAAa17D,GAAGvP,EAAE,SAASuP,GAAGtU,EAAEivE,OAAOrmE,EAAE7D,GAAGoY,EAAE7I,IAAItU,EAAE0f,KAAK9W,EAAE7D,IAAI,IAAIkrE,EAAE,SAAS37D,EAAE1L,EAAEuU,EAAEnd,EAAE+E,GAAyC,IAAIu3B,EAAE,QAA5C,IAASt8B,IAAIA,GAAE,QAAI,IAAS+E,IAAIA,GAAE,GAAa,QAAQ6D,EAAE0zB,EAAE,CAAC,gBAAgB,kBAAkB,YAAY,IAAI,KAAK,YAAY,CAAC,GAAG,SAAS1zB,EAAE,MAAM,IAAI2S,MAAM,oCAAoC+gB,EAAE,CAAC,eAAe,iBAAiB,aAAa,IAAI,OAAO,SAAS1jB,EAAEtE,EAAE6I,EAAEmf,EAAEt8B,EAAE+E,IAAImrE,EAAE,CAACC,SAAS,oBAAoB96D,UAAU,qBAAqBA,SAAS+6D,gBAAgBxwD,MAAMywD,cAAc,oBAAoBphE,SAAS,iBAAiBA,QAAQA,OAAOqhE,eAAej7D,oBAAoBpG,OAAOqhE,eAAeC,kBAAkB,oBAAoBrhE,WAAWA,UAAUgjB,iBAAiBs+C,SAAS,oBAAoBthE,WAAW,UAAUnH,KAAKmH,WAAWA,UAAUC,YAAY4/D,EAAE,SAASz6D,GAAG,IAAI1L,EAAE0L,EAAEmJ,QAAQN,EAAE9W,KAAKiF,MAAM1C,EAAEsjC,WAAW53B,EAAEq5D,eAAe/kE,EAAE6nE,YAAYn8D,EAAEo8D,gBAAgB9nE,EAAE+nE,aAAar8D,EAAEs5D,aAAahlE,EAAEgoE,YAAYt8D,EAAEu8D,cAAcjoE,EAAEkoE,aAAaloE,EAAEsb,SAAS5P,EAAE05D,kBAAkB3wD,EAAEzU,EAAE4P,EAAEiF,QAAQgyD,KAAK,MAAMrvE,SAAQ,SAASkU,GAAG,OAAOhB,EAAEgB,MAAK1L,EAAE4N,YAAYlC,EAAE05D,iBAAiBplE,EAAEsb,SAAS5P,EAAEg6D,kBAAkBjxD,EAAEzU,EAAE4P,EAAEiF,QAAQgyD,KAAK,MAAMrvE,SAAQ,SAASkU,GAAG,OAAOhB,EAAEgB,MAAK1L,EAAE4N,YAAYlC,EAAEg6D,kBAAkBh6D,EAAEy3D,SAASgF,iBAAiBz8D,EAAEq5D,eAAer5D,EAAEy3D,SAASiF,oBAAoB18D,EAAEs5D,cAAct5D,EAAE28D,kBAAiB,EAAG38D,EAAEi5D,WAAWj5D,EAAEq5D,eAAer5D,EAAE48D,iBAAiB58D,EAAE68D,WAAW78D,EAAEq5D,eAAer5D,EAAEi5D,WAAWj5D,EAAEm6D,gBAAgBrB,EAAE94D,EAAE9G,EAAE8G,EAAEi5D,WAAWj5D,EAAEq5D,eAAer5D,EAAEs5D,eAAet5D,EAAEk6D,eAAehhE,GAAG8G,EAAEm5D,yBAAyB7kE,EAAE8kE,aAAap5D,EAAEi5D,WAAWj5D,EAAEm6D,kBAAkBn6D,EAAEs5D,aAAat5D,EAAEq5D,kBAAkBr5D,EAAE28D,kBAAiB,GAAI38D,EAAEy3D,SAASqF,iBAAiB98D,EAAEo8D,gBAAgBp8D,EAAEy3D,SAASsF,oBAAoB/8D,EAAEu8D,eAAev8D,EAAEg9D,kBAAiB,EAAGh9D,EAAE25D,YAAY35D,EAAEo8D,gBAAgBp8D,EAAEi9D,kBAAkBj9D,EAAEk9D,WAAWl9D,EAAEo8D,gBAAgBp8D,EAAE25D,YAAY35D,EAAEu6D,iBAAiBzB,EAAE94D,EAAE9G,EAAE8G,EAAE25D,YAAY35D,EAAEo8D,gBAAgBp8D,EAAEu8D,gBAAgBv8D,EAAEs6D,cAAcphE,EAAE2P,GAAG7I,EAAE25D,YAAY35D,EAAEu6D,mBAAmBv6D,EAAEu8D,cAAcv8D,EAAEo8D,mBAAmBp8D,EAAEg9D,kBAAiB,EAAGh9D,EAAEk6D,gBAAgBl6D,EAAEi5D,WAAWj5D,EAAEm6D,kBAAkBn6D,EAAEk6D,eAAel6D,EAAEi5D,WAAWj5D,EAAEm6D,iBAAiBn6D,EAAEs6D,eAAet6D,EAAE25D,YAAY35D,EAAEu6D,mBAAmBv6D,EAAEs6D,cAAct6D,EAAE25D,YAAY35D,EAAEu6D,kBAAkBxhE,EAAEzE,EAAE0L,GAAGA,EAAE28D,iBAAiBroE,EAAEoM,UAAUC,IAAIuD,EAAEg0D,MAAMmD,OAAO,OAAO/mE,EAAEoM,UAAUE,OAAOsD,EAAEg0D,MAAMmD,OAAO,MAAMr7D,EAAEm6D,gBAAgB,EAAEn6D,EAAEk6D,eAAe,EAAE5lE,EAAE8kE,WAAW,GAAGp5D,EAAEg9D,iBAAiB1oE,EAAEoM,UAAUC,IAAIuD,EAAEg0D,MAAMmD,OAAO,OAAO/mE,EAAEoM,UAAUE,OAAOsD,EAAEg0D,MAAMmD,OAAO,MAAMr7D,EAAEu6D,iBAAiB,EAAEv6D,EAAEs6D,cAAc,EAAEhmE,EAAEsjC,UAAU,IAAI5jC,EAAE,SAASgM,GAAGA,EAAEoC,MAAMgJ,KAAKpL,EAAEq6D,WAAW,aAAY,SAASr6D,GAAG,OAAOA,EAAEoY,qBAAoBpY,EAAEoC,MAAMgJ,KAAKpL,EAAEg6D,eAAe,aAAY,SAAS1lE,GAAG,IAAIuU,EAAEvU,EAAE6oE,MAAMxiE,OAAO0hB,YAAYrc,EAAEg6D,eAAej+C,wBAAwBK,IAAI1wB,EAAEmd,EAAE7I,EAAEs6D,cAAc,GAAG,EAAEt6D,EAAEmJ,QAAQyuB,WAAWlsC,EAAEsU,EAAEo8D,gBAAgB3B,EAAEz6D,GAAG1L,EAAE8jB,qBAAoBpY,EAAEoC,MAAMgJ,KAAKpL,EAAEi6D,WAAW,aAAY,SAASj6D,GAAG,OAAOA,EAAEoY,qBAAoBpY,EAAEoC,MAAMgJ,KAAKpL,EAAE05D,eAAe,aAAY,SAASplE,GAAG,IAAIuU,EAAEvU,EAAE8oE,MAAMziE,OAAO4hB,YAAYvc,EAAE05D,eAAe39C,wBAAwBO,KAAK5wB,EAAEmd,EAAE7I,EAAEk6D,eAAe,GAAG,EAAEl6D,EAAEmJ,QAAQiwD,YAAY1tE,EAAEsU,EAAEq5D,eAAeoB,EAAEz6D,GAAG1L,EAAE8jB,sBAAqBhV,EAAE,SAASpD,GAAG6E,EAAE7E,EAAE,CAAC,iBAAiB,eAAe,QAAQ,aAAa,aAAa,kBAAkB,aAAa,IAAI,mBAAmB6E,EAAE7E,EAAE,CAAC,kBAAkB,gBAAgB,QAAQ,cAAc,aAAa,mBAAmB,YAAY,IAAI,oBAAoBq9D,EAAE,SAASr9D,GAAG,SAAS1L,EAAEA,EAAE5I,GAAG,IAAI+E,EAAEsB,KAAKiF,MAAM6R,EAAE+uB,WAAW,GAAG,IAAItjC,EAAE,CAAC,IAAI0L,EAAEg9D,iBAAiB,OAAM,EAAG,GAAG,IAAIvsE,GAAG/E,EAAE,GAAG+E,GAAGuP,EAAEu8D,cAAcv8D,EAAEo8D,iBAAiB1wE,EAAE,EAAE,OAAOsU,EAAEy3D,SAAS6F,iBAAiB,IAAIt1C,EAAEnf,EAAEuwD,WAAW,GAAG,IAAI1tE,EAAE,CAAC,IAAIsU,EAAE28D,iBAAiB,OAAM,EAAG,GAAG,IAAI30C,GAAG1zB,EAAE,GAAG0zB,GAAGhoB,EAAEs5D,aAAat5D,EAAEq5D,gBAAgB/kE,EAAE,EAAE,OAAO0L,EAAEy3D,SAAS6F,iBAAiB,OAAM,EAAG,IAAIz0D,EAAE7I,EAAEmJ,QAAQzd,EAAE,WAAW,OAAO+Y,EAAEoE,EAAE,WAAWpY,EAAE,WAAW,OAAOgU,EAAEzE,EAAEi6D,WAAW,WAAWx1D,EAAEzE,EAAEq6D,WAAW,WAAWr6D,EAAEoC,MAAMgJ,KAAKpL,EAAE46D,cAAc,WAAU,SAAS5yC,GAAG,KAAKA,EAAEu1C,oBAAoBv1C,EAAEu1C,sBAAsBv1C,EAAEmmB,oBAAoBziD,KAAK+E,KAAK,CAAC,IAAIgU,EAAE1D,SAASmK,cAAcnK,SAASmK,cAAclL,EAAE46D,cAAc1vD,cAAc,GAAGzG,EAAE,CAAC,GAAG,WAAWA,EAAEgnB,QAAQhnB,EAAEA,EAAE+4D,gBAAgBtyD,mBAAmB,KAAKzG,EAAEg5D,YAAYh5D,EAAEA,EAAEg5D,WAAWvyD,cAAc,GAAGgT,EAAEzZ,GAAG,OAAO,IAAIzF,EAAE,EAAE+J,EAAE,EAAE,OAAOif,EAAEhI,OAAO,KAAK,GAAGhhB,EAAEgpB,EAAEylB,SAASztC,EAAEs5D,aAAatxC,EAAE0lB,QAAQ1tC,EAAEq5D,gBAAgB,GAAG,MAAM,KAAK,GAAGtwD,EAAEif,EAAEylB,QAAQztC,EAAEu8D,cAAcv0C,EAAE0lB,OAAO1tC,EAAEo8D,gBAAgB,GAAG,MAAM,KAAK,GAAGp9D,EAAEgpB,EAAEylB,QAAQztC,EAAEs5D,aAAatxC,EAAE0lB,OAAO1tC,EAAEq5D,eAAe,GAAG,MAAM,KAAK,GAAGtwD,EAAEif,EAAEylB,SAASztC,EAAEu8D,cAAcv0C,EAAE0lB,QAAQ1tC,EAAEo8D,iBAAiB,GAAG,MAAM,KAAK,GAAGrzD,EAAEif,EAAExP,SAASxY,EAAEo8D,iBAAiBp8D,EAAEo8D,gBAAgB,MAAM,KAAK,GAAGrzD,EAAE/I,EAAEo8D,gBAAgB,MAAM,KAAK,GAAGrzD,GAAG/I,EAAEo8D,gBAAgB,MAAM,KAAK,GAAGrzD,EAAE/I,EAAEu8D,cAAc,MAAM,KAAK,GAAGxzD,GAAG/I,EAAEu8D,cAAc,MAAM,QAAQ,OAAOv8D,EAAEy3D,SAASgF,iBAAiB,IAAIz9D,GAAGgB,EAAEy3D,SAASqF,iBAAiB,IAAI/zD,IAAIF,EAAE+uB,WAAW7uB,EAAEF,EAAEuwD,YAAYp6D,EAAEy7D,EAAEz6D,GAAG1L,EAAE0K,EAAE+J,IAAIif,EAAEhQ,uBAAsBzU,EAAE,SAASvD,GAAG,SAAS1L,EAAEA,EAAEuU,GAAG,IAAInd,EAAEqG,KAAKiF,MAAMyN,EAAEmzB,WAAWnnC,EAAE,IAAIgU,EAAEmzB,UAAU5P,EAAEt8B,EAAE+Y,EAAEgX,eAAehX,EAAE+3D,aAAax9D,EAAE,IAAIyF,EAAE20D,WAAWrwD,EAAEtE,EAAE20D,WAAW30D,EAAEmH,cAAcnH,EAAE63D,YAAY,QAAQvqE,KAAKygB,IAAI3J,GAAG9W,KAAKygB,IAAIle,GAAG7D,GAAGu3B,EAAEhpB,GAAG+J,KAAK/I,EAAEy3D,SAAS6F,iBAAiB,SAASz0D,EAAE7I,GAAG,IAAI1L,EAAE0L,EAAE09D,OAAO70D,GAAG,EAAE7I,EAAE29D,OAAO,YAAO,IAASrpE,QAAG,IAASuU,IAAIvU,GAAG,EAAE0L,EAAE49D,YAAY,EAAE/0D,EAAE7I,EAAE69D,YAAY,GAAG79D,EAAE89D,WAAW,IAAI99D,EAAE89D,YAAYxpE,GAAG,GAAGuU,GAAG,IAAIvU,IAAIA,GAAGuU,IAAIA,IAAIvU,EAAE,EAAEuU,EAAE7I,EAAE+9D,YAAY/9D,EAAEwY,SAAS,EAAE3P,GAAGvU,GAAG,CAACA,EAAEuU,GAAG,SAASpY,EAAEuP,EAAE1L,EAAEuU,GAAG,IAAI+yD,EAAEC,UAAUp3D,EAAEwW,cAAc,gBAAgB,OAAM,EAAG,IAAIxW,EAAEmL,SAAS5P,GAAG,OAAM,EAAG,IAAI,IAAIvP,EAAEuP,EAAEvP,GAAGA,IAAIgU,GAAG,CAAC,GAAGhU,EAAEiQ,UAAUkP,SAAS1L,EAAEiF,QAAQiyD,WAAW,OAAM,EAAG,IAAIpzC,EAAEt8B,EAAE+E,GAAG,GAAG,CAACu3B,EAAEg2C,SAASh2C,EAAEi2C,UAAUj2C,EAAEk2C,WAAWtvE,KAAK,IAAIiE,MAAM,iBAAiB,CAAC,IAAImM,EAAEvO,EAAE+rE,aAAa/rE,EAAE4rE,aAAa,GAAGr9D,EAAE,KAAK,IAAIvO,EAAEmnC,WAAW/uB,EAAE,GAAGpY,EAAEmnC,YAAY54B,GAAG6J,EAAE,GAAG,OAAM,EAAG,IAAIE,EAAEtY,EAAE6rE,YAAY7rE,EAAE0rE,YAAY,GAAGpzD,EAAE,KAAK,IAAItY,EAAE2oE,YAAY9kE,EAAE,GAAG7D,EAAE2oE,aAAarwD,GAAGzU,EAAE,GAAG,OAAM,EAAG7D,EAAEA,EAAE8Q,WAAW,OAAM,EAAG,SAASymB,EAAEt8B,GAAG,IAAIs8B,EAAEnf,EAAEnd,GAAGsT,EAAEgpB,EAAE,GAAGjf,EAAEif,EAAE,GAAG,IAAIv3B,EAAE/E,EAAED,OAAOuT,EAAE+J,GAAG,CAAC,IAAIhD,GAAE,EAAG/F,EAAEy3D,SAAS0G,iBAAiBn+D,EAAEg9D,mBAAmBh9D,EAAE28D,kBAAkB5zD,EAAEtE,EAAEmzB,WAAW7uB,EAAE/I,EAAEy3D,SAAS2G,WAAW35D,EAAEmzB,WAAW54B,EAAEgB,EAAEy3D,SAAS2G,WAAWr4D,GAAE,GAAI/F,EAAE28D,mBAAmB38D,EAAEg9D,mBAAmBh+D,EAAEyF,EAAE20D,YAAYp6D,EAAEgB,EAAEy3D,SAAS2G,WAAW35D,EAAE20D,YAAYrwD,EAAE/I,EAAEy3D,SAAS2G,WAAWr4D,GAAE,IAAKtB,EAAEmzB,WAAW7uB,EAAE/I,EAAEy3D,SAAS2G,WAAW35D,EAAE20D,YAAYp6D,EAAEgB,EAAEy3D,SAAS2G,YAAY3D,EAAEz6D,GAAG+F,EAAEA,GAAGzR,EAAE0K,EAAE+J,GAAGhD,IAAIra,EAAEysB,UAAUzsB,EAAE0sB,kBAAkB1sB,EAAEssB,mBAAmB,IAAIvT,EAAEzE,EAAEmJ,aAAQ,IAASxO,OAAO0jE,QAAQr+D,EAAEoC,MAAMgJ,KAAK3G,EAAE,QAAQujB,QAAG,IAASrtB,OAAO2jE,cAAct+D,EAAEoC,MAAMgJ,KAAK3G,EAAE,aAAaujB,IAAIlf,EAAE,SAAS9I,GAAG,SAAS1L,EAAEA,EAAEuU,GAAG,IAAInd,EAAEqG,KAAKiF,MAAMzJ,EAAEqqC,WAAWnnC,EAAElD,EAAE6rE,WAAWpxC,EAAEj2B,KAAKygB,IAAIle,GAAGmQ,EAAE1S,KAAKygB,IAAI3J,GAAG,GAAGpE,EAAEujB,GAAG,GAAGnf,EAAE,GAAGnd,IAAIsU,EAAEu8D,cAAcv8D,EAAEo8D,iBAAiBvzD,EAAE,GAAG,IAAInd,EAAE,OAAO,IAAIiP,OAAO4jE,SAAS11D,EAAE,GAAG+yD,EAAEM,cAAc,GAAGl0C,EAAEvjB,IAAInQ,EAAE,GAAG7D,IAAIuP,EAAEs5D,aAAat5D,EAAEq5D,gBAAgB/kE,EAAE,GAAG,IAAI7D,GAAG,OAAM,EAAG,OAAM,EAAG,SAASoY,EAAEvU,EAAEuU,GAAGtb,EAAEqqC,WAAW/uB,EAAEtb,EAAE6rE,YAAY9kE,EAAEmmE,EAAEz6D,GAAG,SAASvP,EAAEuP,GAAG,OAAOA,EAAEw+D,cAAcx+D,EAAEw+D,cAAc,GAAGx+D,EAAE,SAASgoB,EAAEhoB,GAAG,QAAQA,EAAEy+D,aAAa,QAAQz+D,EAAEy+D,aAAa,IAAIz+D,EAAEy5C,cAAcz5C,EAAEw+D,eAAe,IAAIx+D,EAAEw+D,cAAc5yE,YAAYoU,EAAEy+D,aAAa,UAAUz+D,EAAEy+D,aAAaz+D,EAAEy+D,cAAcz+D,EAAE0+D,uBAAuB,SAASj6D,EAAEzE,GAAG,GAAGgoB,EAAEhoB,GAAG,CAAC,IAAI1L,EAAE7D,EAAEuP,GAAG0E,EAAE04D,MAAM9oE,EAAE8oE,MAAM14D,EAAEy4D,MAAM7oE,EAAE6oE,MAAMhpE,GAAE,IAAK3E,MAAMyM,UAAU,OAAO/C,GAAGylE,cAAczlE,IAAI,SAAS8F,EAAEgB,EAAE1L,EAAEuU,GAAG,IAAItb,EAAEqiB,SAAS5P,GAAG,OAAM,EAAG,IAAI,IAAIvP,EAAEuP,EAAEvP,GAAGA,IAAIlD,GAAG,CAAC,GAAGkD,EAAEiQ,UAAUkP,SAAS1L,EAAEiF,QAAQiyD,WAAW,OAAM,EAAG,IAAIpzC,EAAEt8B,EAAE+E,GAAG,GAAG,CAACu3B,EAAEg2C,SAASh2C,EAAEi2C,UAAUj2C,EAAEk2C,WAAWtvE,KAAK,IAAIiE,MAAM,iBAAiB,CAAC,IAAI4R,EAAEhU,EAAE+rE,aAAa/rE,EAAE4rE,aAAa,GAAG53D,EAAE,KAAK,IAAIhU,EAAEmnC,WAAW/uB,EAAE,GAAGpY,EAAEmnC,YAAYnzB,GAAGoE,EAAE,GAAG,OAAM,EAAG,IAAI7J,EAAEvO,EAAE2oE,WAAW3oE,EAAE0rE,YAAY,GAAGn9D,EAAE,KAAK,IAAIvO,EAAE2oE,YAAY9kE,EAAE,GAAG7D,EAAE2oE,aAAap6D,GAAG1K,EAAE,GAAG,OAAM,EAAG7D,EAAEA,EAAE8Q,WAAW,OAAM,EAAG,SAASwH,EAAE/I,GAAG,GAAGgoB,EAAEhoB,GAAG,CAAC,IAAItU,EAAE+E,EAAEuP,GAAGyE,EAAE,CAAC24D,MAAM1xE,EAAE0xE,MAAMD,MAAMzxE,EAAEyxE,OAAOp0D,EAAEtE,EAAE24D,MAAM14D,EAAE04D,MAAMr3D,EAAEtB,EAAE04D,MAAMz4D,EAAEy4D,MAAM,GAAGn+D,EAAEgB,EAAEvU,OAAOsd,EAAEhD,GAAG,OAAO8C,EAAEE,EAAEhD,GAAGrB,EAAED,EAAE,IAAIlX,GAAE,IAAKiC,MAAMyM,UAAU/C,EAAE3L,EAAE4G,EAAE+E,EAAE,IAAIoL,EAAEiU,EAAExP,EAAE7P,EAAEoL,EAAEO,EAAEkB,EAAE7M,EAAE/E,EAAE5G,GAAG+G,EAAEyU,EAAEhD,IAAI/F,EAAEgY,kBAAkB,SAASjS,IAAI/F,EAAEy3D,SAASmH,cAAcD,cAAczlE,GAAGA,EAAE2lE,aAAY,WAAW,OAAO7+D,EAAE8+D,mBAAmBH,cAAczlE,GAAGoL,EAAEiU,GAAGjU,EAAEO,EAAE9S,KAAKygB,IAAIlO,EAAEiU,GAAG,KAAKxmB,KAAKygB,IAAIlO,EAAEO,GAAG,SAAS85D,cAAczlE,IAAI2P,EAAE,GAAGvE,EAAEiU,EAAE,GAAGjU,EAAEO,GAAGP,EAAEiU,GAAG,QAAQjU,EAAEO,GAAG,UAAU85D,cAAczlE,KAAI,KAAK,GAAG0iE,EAAEG,eAAeH,EAAEK,kBAAkB,CAAC,IAAI1uE,EAAEyS,EAAEmJ,QAAQzE,EAAE,GAAGvQ,EAAE,EAAEmQ,EAAE,GAAGpL,EAAE,KAAK0iE,EAAEG,eAAe/7D,EAAEoC,MAAMgJ,KAAK7d,EAAE,aAAakX,GAAGzE,EAAEoC,MAAMgJ,KAAK7d,EAAE,YAAYwb,GAAG/I,EAAEoC,MAAMgJ,KAAK7d,EAAE,WAAWwY,IAAI61D,EAAEK,oBAAoBthE,OAAOokE,cAAc/+D,EAAEoC,MAAMgJ,KAAK7d,EAAE,cAAckX,GAAGzE,EAAEoC,MAAMgJ,KAAK7d,EAAE,cAAcwb,GAAG/I,EAAEoC,MAAMgJ,KAAK7d,EAAE,YAAYwY,IAAIpL,OAAOqkE,iBAAiBh/D,EAAEoC,MAAMgJ,KAAK7d,EAAE,gBAAgBkX,GAAGzE,EAAEoC,MAAMgJ,KAAK7d,EAAE,gBAAgBwb,GAAG/I,EAAEoC,MAAMgJ,KAAK7d,EAAE,cAAcwY,OAAO1R,EAAE,WAAW,MAAM,CAAC0lD,SAAS,CAAC,aAAa,aAAa,WAAW,QAAQ,SAASif,mBAAmB,KAAKD,mBAAmB,KAAKV,mBAAmB,IAAIqE,oBAAoB,EAAEK,oBAAoB,EAAEN,iBAAgB,EAAGK,iBAAgB,EAAG8B,aAAY,EAAGT,kBAAiB,EAAGb,kBAAiB,EAAGc,WAAW,IAAIa,EAAE,CAAC,aAAajrE,EAAE,aAAaoP,EAAE2yB,SAASsnC,EAAE6B,MAAM37D,EAAE47D,MAAMr2D,GAAG7U,EAAE,SAAS+L,EAAE1L,GAAG,IAAIuU,EAAEtY,KAAK,QAAG,IAAS+D,IAAIA,EAAE,IAAI,iBAAiB0L,IAAIA,EAAEe,SAASka,cAAcjb,KAAKA,IAAIA,EAAEkf,SAAS,MAAM,IAAIjY,MAAM,0DAAmH,IAAI,IAAIxC,KAAjElU,KAAK4Y,QAAQnJ,EAAEA,EAAEU,UAAUC,IAAIuD,EAAE+2D,MAAM1qE,KAAKknE,SAASpjE,IAAiBC,EAAEuU,EAAE4uD,SAAShzD,GAAGnQ,EAAEmQ,GAAGlU,KAAK8oE,eAAe,KAAK9oE,KAAK6rE,gBAAgB,KAAK7rE,KAAK+oE,aAAa,KAAK/oE,KAAKgsE,cAAc,KAAK,IAAIv9D,EAAE,WAAW,OAAOgB,EAAEU,UAAUC,IAAIuD,EAAEg0D,MAAMrmD,QAAQ9I,EAAE,WAAW,OAAO/I,EAAEU,UAAUE,OAAOsD,EAAEg0D,MAAMrmD,QAAQthB,KAAK2oE,MAAM,QAAQxtE,EAAEsU,GAAGqpD,UAAU94D,KAAK6uE,iBAAiB,WAAW,IAAI9qE,EAAE0L,EAAEo5D,WAAWvwD,EAAE,KAAK,OAAO7I,EAAEo5D,YAAY,EAAEvwD,EAAE7I,EAAEo5D,WAAW,EAAEp5D,EAAEo5D,WAAW9kE,EAAEuU,EAA5F,GAAiGtY,KAAK4oE,yBAAyB5oE,KAAK6uE,iBAAiBp/D,EAAEs8D,YAAYt8D,EAAEm8D,YAAY,EAAE5rE,KAAK6R,MAAM,IAAImW,EAAEhoB,KAAKqqE,cAAc56D,EAAE46D,eAAe75D,SAASxQ,KAAKmpE,eAAe1xC,EAAE9jB,EAAEiF,QAAQgyD,KAAK,MAAMn7D,EAAEkC,YAAY3R,KAAKmpE,gBAAgBnpE,KAAK0pE,WAAWjyC,EAAE9jB,EAAEiF,QAAQ+xD,MAAM,MAAM3qE,KAAKmpE,eAAex3D,YAAY3R,KAAK0pE,YAAY1pE,KAAK0pE,WAAWh4D,aAAa,WAAW,GAAG1R,KAAK6R,MAAMgJ,KAAK7a,KAAK0pE,WAAW,QAAQj7D,GAAGzO,KAAK6R,MAAMgJ,KAAK7a,KAAK0pE,WAAW,OAAOlxD,GAAGxY,KAAKosE,iBAAiB,KAAKpsE,KAAK4pE,gBAAgB,KAAK5pE,KAAK2pE,eAAe,KAAK,IAAIn0D,EAAEra,EAAE6E,KAAKmpE,gBAAgBnpE,KAAKipE,iBAAiBv1D,SAAS8B,EAAEmW,OAAO,IAAIlV,MAAMzW,KAAKipE,mBAAmBjpE,KAAKgpE,yBAAwB,EAAGhpE,KAAKkpE,cAAcvgE,EAAE6M,EAAEqW,MAAM7rB,KAAKgpE,yBAAwB,EAAGhpE,KAAK6pE,iBAAiBlhE,EAAE6M,EAAE6yD,iBAAiB1/D,EAAE6M,EAAE8yD,kBAAkBpoE,EAAEF,KAAKmpE,eAAe,CAACluD,QAAQ,UAAUjb,KAAKqsE,iBAAiB1jE,EAAE6M,EAAE4pD,YAAYz2D,EAAE6M,EAAEs5D,aAAa5uE,EAAEF,KAAKmpE,eAAe,CAACluD,QAAQ,KAAKjb,KAAK0oE,WAAW,KAAK1oE,KAAKssE,WAAW,KAAKtsE,KAAKypE,eAAehyC,EAAE9jB,EAAEiF,QAAQgyD,KAAK,MAAMn7D,EAAEkC,YAAY3R,KAAKypE,gBAAgBzpE,KAAK8pE,WAAWryC,EAAE9jB,EAAEiF,QAAQ+xD,MAAM,MAAM3qE,KAAKypE,eAAe93D,YAAY3R,KAAK8pE,YAAY9pE,KAAK8pE,WAAWp4D,aAAa,WAAW,GAAG1R,KAAK6R,MAAMgJ,KAAK7a,KAAK8pE,WAAW,QAAQr7D,GAAGzO,KAAK6R,MAAMgJ,KAAK7a,KAAK8pE,WAAW,OAAOtxD,GAAGxY,KAAKysE,iBAAiB,KAAKzsE,KAAKgqE,iBAAiB,KAAKhqE,KAAK+pE,cAAc,KAAK,IAAI/sE,EAAE7B,EAAE6E,KAAKypE,gBAAgBzpE,KAAKspE,gBAAgB51D,SAAS1W,EAAEmvB,MAAM,IAAI1V,MAAMzW,KAAKspE,kBAAkBtpE,KAAKqpE,wBAAuB,EAAGrpE,KAAKwpE,eAAe7gE,EAAE3L,EAAE+uB,OAAO/rB,KAAKqpE,wBAAuB,EAAGrpE,KAAKupE,qBAAqBvpE,KAAK2oE,MAAMT,EAAEloE,KAAK8pE,YAAY,KAAK9pE,KAAKiqE,iBAAiBthE,EAAE3L,EAAE+xE,gBAAgBpmE,EAAE3L,EAAEgyE,mBAAmB9uE,EAAEF,KAAKypE,eAAe,CAACxuD,QAAQ,UAAUjb,KAAK0sE,kBAAkB/jE,EAAE3L,EAAEo6D,WAAWzuD,EAAE3L,EAAEq6D,cAAcn3D,EAAEF,KAAKypE,eAAe,CAACxuD,QAAQ,KAAKjb,KAAKopE,YAAY,KAAKppE,KAAK2sE,WAAW,KAAK3sE,KAAKioE,MAAM,CAACjgD,EAAEvY,EAAEo5D,YAAY,EAAE,QAAQp5D,EAAEo5D,YAAY7oE,KAAK+oE,aAAa/oE,KAAK8oE,eAAe,MAAM,KAAKx0D,EAAE7E,EAAE43B,WAAW,EAAE,QAAQ53B,EAAE43B,WAAWrnC,KAAKgsE,cAAchsE,KAAK6rE,gBAAgB,MAAM,MAAM7rE,KAAK6nE,SAAQ,EAAG7nE,KAAKknE,SAAS1d,SAASjuD,SAAQ,SAASkU,GAAG,OAAOi/D,EAAEj/D,GAAG6I,MAAKtY,KAAKivE,cAAcztE,KAAKiF,MAAMgJ,EAAE43B,WAAWrnC,KAAKkvE,eAAez/D,EAAEo5D,WAAW7oE,KAAK6R,MAAMgJ,KAAK7a,KAAK4Y,QAAQ,UAAS,SAASnJ,GAAG,OAAO6I,EAAE62D,SAAS1/D,MAAKy6D,EAAElqE,OAAO0D,EAAEwU,UAAUmuB,OAAO,WAAWrmC,KAAK6nE,UAAU7nE,KAAK4oE,yBAAyB5oE,KAAK6uE,iBAAiB7uE,KAAK4Y,QAAQmzD,YAAY/rE,KAAK4Y,QAAQgzD,YAAY,EAAE1rE,EAAEF,KAAKmpE,eAAe,CAACluD,QAAQ,UAAU/a,EAAEF,KAAKypE,eAAe,CAACxuD,QAAQ,UAAUjb,KAAKqsE,iBAAiB1jE,EAAExN,EAAE6E,KAAKmpE,gBAAgB/J,YAAYz2D,EAAExN,EAAE6E,KAAKmpE,gBAAgB2F,aAAa9uE,KAAK0sE,kBAAkB/jE,EAAExN,EAAE6E,KAAKypE,gBAAgBrS,WAAWzuD,EAAExN,EAAE6E,KAAKypE,gBAAgBpS,cAAcn3D,EAAEF,KAAKmpE,eAAe,CAACluD,QAAQ,SAAS/a,EAAEF,KAAKypE,eAAe,CAACxuD,QAAQ,SAASivD,EAAElqE,MAAMorE,EAAEprE,KAAK,MAAM,GAAE,GAAG,GAAIorE,EAAEprE,KAAK,OAAO,GAAE,GAAG,GAAIE,EAAEF,KAAKmpE,eAAe,CAACluD,QAAQ,KAAK/a,EAAEF,KAAKypE,eAAe,CAACxuD,QAAQ,OAAOvX,EAAEwU,UAAUi3D,SAAS,SAAS1/D,GAAGzP,KAAK6nE,UAAUqC,EAAElqE,MAAMorE,EAAEprE,KAAK,MAAMA,KAAK4Y,QAAQyuB,UAAUrnC,KAAKivE,eAAe7D,EAAEprE,KAAK,OAAOA,KAAK4Y,QAAQiwD,WAAW7oE,KAAKkvE,gBAAgBlvE,KAAKivE,cAAcztE,KAAKiF,MAAMzG,KAAK4Y,QAAQyuB,WAAWrnC,KAAKkvE,eAAelvE,KAAK4Y,QAAQiwD,aAAanlE,EAAEwU,UAAU0N,QAAQ,WAAW5lB,KAAK6nE,UAAU7nE,KAAK6R,MAAMo5D,YAAYx8D,EAAEzO,KAAK0pE,YAAYj7D,EAAEzO,KAAK8pE,YAAYr7D,EAAEzO,KAAKmpE,gBAAgB16D,EAAEzO,KAAKypE,gBAAgBzpE,KAAKovE,kBAAkBpvE,KAAK4Y,QAAQ,KAAK5Y,KAAK0pE,WAAW,KAAK1pE,KAAK8pE,WAAW,KAAK9pE,KAAKmpE,eAAe,KAAKnpE,KAAKypE,eAAe,KAAKzpE,KAAK6nE,SAAQ,IAAKnkE,EAAEwU,UAAUk3D,gBAAgB,WAAWpvE,KAAK4Y,QAAQ1I,UAAUlQ,KAAK4Y,QAAQ1I,UAAUpS,MAAM,KAAKnD,QAAO,SAAS8U,GAAG,OAAOA,EAAEnN,MAAM,oBAAmBjE,KAAK,MAAM0F,EAAEyU,EAAE9U,GAAG,SAAS+L,EAAE1L,GAAG0L,EAAE7P,QAAQ,SAAS6P,EAAE1L,EAAEuU,EAAEnd,GAAG,IAAI+E,EAAEu3B,EAAEhoB,EAAEA,GAAG,GAAGyE,SAASzE,EAAEmb,QAAQ,WAAW1W,GAAG,aAAaA,IAAIhU,EAAEuP,EAAEgoB,EAAEhoB,EAAEmb,SAAS,IAAInc,EAAE,mBAAmBgpB,EAAEA,EAAEhjB,QAAQgjB,EAAE,GAAG1zB,IAAI0K,EAAE1R,OAAOgH,EAAEhH,OAAO0R,EAAEiyD,gBAAgB38D,EAAE28D,iBAAiBpoD,IAAI7J,EAAEmyD,SAAStoD,GAAGnd,EAAE,CAAC,IAAIqd,EAAE/J,EAAEpK,WAAWoK,EAAEpK,SAAS,IAAI7J,OAAOD,KAAKY,GAAGI,SAAQ,SAASkU,GAAG,IAAI1L,EAAE5I,EAAEsU,GAAG+I,EAAE/I,GAAG,WAAW,OAAO1L,MAAK,MAAM,CAACq9D,SAASlhE,EAAEN,QAAQ63B,EAAEhjB,QAAQhG,KAAK,SAASgB,EAAE1L,GAAG0L,EAAE7P,QAAQ,CAAC7C,OAAO,WAAW,IAAI0S,EAAEzP,KAAK+D,EAAE0L,EAAE4xD,eAAe,OAAO5xD,EAAE6xD,MAAMpsD,IAAInR,GAAG0L,EAAE4/D,OAAOlI,QAAQ13D,EAAE6/D,GAAG,CAACzqE,IAAI,UAAUG,YAAY,eAAe4gC,GAAG,CAAC,aAAa,SAAS7hC,GAAG,OAAO0L,EAAE42B,OAAOtiC,MAAM0L,EAAE8/D,YAAY,CAAC9/D,EAAE8xD,GAAG,YAAY,IAAIb,gBAAgB,KAAK,SAASjxD,EAAE1L,GAAG,SAASuU,EAAE7I,EAAE1L,GAAG,IAAI,IAAIuU,EAAE,EAAEA,EAAE7I,EAAEpU,OAAOid,IAAI,CAAC,IAAInd,EAAEsU,EAAE6I,GAAGpY,EAAElD,EAAE7B,EAAEkF,IAAI,GAAGH,EAAE,CAACA,EAAEsvE,OAAO,IAAI,IAAI/3C,EAAE,EAAEA,EAAEv3B,EAAE+kD,MAAM5pD,OAAOo8B,IAAIv3B,EAAE+kD,MAAMxtB,GAAGt8B,EAAE8pD,MAAMxtB,IAAI,KAAKA,EAAEt8B,EAAE8pD,MAAM5pD,OAAOo8B,IAAIv3B,EAAE+kD,MAAMlqD,KAAK0T,EAAEtT,EAAE8pD,MAAMxtB,GAAG1zB,QAAQ,CAAK,IAAImQ,EAAE,GAAV,IAAaujB,EAAE,EAAEA,EAAEt8B,EAAE8pD,MAAM5pD,OAAOo8B,IAAIvjB,EAAEnZ,KAAK0T,EAAEtT,EAAE8pD,MAAMxtB,GAAG1zB,IAAI/G,EAAE7B,EAAEkF,IAAI,CAACA,GAAGlF,EAAEkF,GAAGmvE,KAAK,EAAEvqB,MAAM/wC,KAAK,SAAS/Y,EAAEsU,GAAG,IAAI,IAAI1L,EAAE,GAAGuU,EAAE,GAAGnd,EAAE,EAAEA,EAAEsU,EAAEpU,OAAOF,IAAI,CAAC,IAAI+E,EAAEuP,EAAEtU,GAAGs8B,EAAEv3B,EAAE,GAAGgU,EAAEhU,EAAE,GAAGuO,EAAEvO,EAAE,GAAGsY,EAAEtY,EAAE,GAAGsV,EAAE,CAACi6D,IAAIv7D,EAAEw7D,MAAMjhE,EAAEkhE,UAAUn3D,GAAGF,EAAEmf,GAAGnf,EAAEmf,GAAGwtB,MAAMlqD,KAAKya,GAAGzR,EAAEhJ,KAAKud,EAAEmf,GAAG,CAACp3B,GAAGo3B,EAAEwtB,MAAM,CAACzvC,KAAK,OAAOzR,EAAE,SAAS7D,EAAEuP,EAAE1L,GAAG,IAAIuU,EAAEvE,IAAI5Y,EAAE+sE,EAAEA,EAAE7sE,OAAO,GAAG,GAAG,QAAQoU,EAAE8yB,SAASpnC,EAAEA,EAAEolB,YAAYjI,EAAEgI,aAAavc,EAAE5I,EAAEolB,aAAajI,EAAE3G,YAAY5N,GAAGuU,EAAEgI,aAAavc,EAAEuU,EAAE1H,YAAYs3D,EAAEntE,KAAKgJ,OAAO,CAAC,GAAG,WAAW0L,EAAE8yB,SAAS,MAAM,IAAI7rB,MAAM,sEAAsE4B,EAAE3G,YAAY5N,IAAI,SAAS0zB,EAAEhoB,GAAGA,EAAEuB,WAAWH,YAAYpB,GAAG,IAAI1L,EAAEmkE,EAAE5gE,QAAQmI,GAAG1L,GAAG,GAAGmkE,EAAEhjD,OAAOnhB,EAAE,GAAG,SAASmQ,EAAEzE,GAAG,IAAI1L,EAAEyM,SAASF,cAAc,SAAS,OAAOvM,EAAEyN,KAAK,WAAWtR,EAAEuP,EAAE1L,GAAGA,EAAE,SAAS0K,EAAEgB,EAAE1L,GAAG,IAAIuU,EAAEnd,EAAE+E,EAAE,GAAG6D,EAAE6rE,UAAU,CAAC,IAAInhE,EAAEkf,IAAIrV,EAAE3P,IAAIA,EAAEuL,EAAEnQ,IAAI5I,EAAEqd,EAAEqC,KAAK,KAAKvC,EAAE7J,GAAE,GAAIvO,EAAEsY,EAAEqC,KAAK,KAAKvC,EAAE7J,GAAE,QAAS6J,EAAEpE,EAAEnQ,GAAG5I,EAAEqa,EAAEqF,KAAK,KAAKvC,GAAGpY,EAAE,WAAWu3B,EAAEnf,IAAI,OAAOnd,EAAEsU,GAAG,SAAS1L,GAAG,GAAGA,EAAE,CAAC,GAAGA,EAAE0rE,MAAMhgE,EAAEggE,KAAK1rE,EAAE2rE,QAAQjgE,EAAEigE,OAAO3rE,EAAE4rE,YAAYlgE,EAAEkgE,UAAU,OAAOx0E,EAAEsU,EAAE1L,QAAQ7D,KAAK,SAASsY,EAAE/I,EAAE1L,EAAEuU,EAAEnd,GAAG,IAAI+E,EAAEoY,EAAE,GAAGnd,EAAEs0E,IAAI,GAAGhgE,EAAEogE,WAAWpgE,EAAEogE,WAAWC,QAAQvH,EAAExkE,EAAE7D,OAAO,CAAC,IAAIu3B,EAAEjnB,SAASmxC,eAAezhD,GAAGgU,EAAEzE,EAAEonC,WAAW3iC,EAAEnQ,IAAI0L,EAAEoB,YAAYqD,EAAEnQ,IAAImQ,EAAE7Y,OAAOoU,EAAE6Q,aAAamX,EAAEvjB,EAAEnQ,IAAI0L,EAAEkC,YAAY8lB,IAAI,SAASjiB,EAAE/F,EAAE1L,GAAG,IAAIuU,EAAEvU,EAAE0rE,IAAIt0E,EAAE4I,EAAE2rE,MAAMxvE,EAAE6D,EAAE4rE,UAAU,GAAGx0E,GAAGsU,EAAEiC,aAAa,QAAQvW,GAAG+E,IAAIoY,GAAG,mBAAmBpY,EAAEsnC,QAAQ,GAAG,MAAMlvB,GAAG,uDAAuDy3D,KAAKC,SAASC,mBAAmB1mD,KAAKE,UAAUvpB,MAAM,OAAOuP,EAAEogE,WAAWpgE,EAAEogE,WAAWC,QAAQx3D,MAAM,CAAC,KAAK7I,EAAEmB,YAAYnB,EAAEoB,YAAYpB,EAAEmB,YAAYnB,EAAEkC,YAAYnB,SAASmxC,eAAerpC,KAAK,IAAItb,EAAE,GAAGmX,EAAE,SAAS1E,GAAG,IAAI1L,EAAE,OAAO,WAAW,YAAO,IAASA,IAAIA,EAAE0L,EAAEzU,MAAMgF,KAAK5E,YAAY2I,IAAIH,EAAEuQ,GAAE,WAAW,MAAM,eAAejR,KAAKkH,OAAOC,UAAUC,UAAU4d,kBAAiBnU,EAAEI,GAAE,WAAW,OAAO3D,SAAS4c,MAAM5c,SAASuT,qBAAqB,QAAQ,MAAKpb,EAAE,KAAKglB,EAAE,EAAEu6C,EAAE,GAAGz4D,EAAE7P,QAAQ,SAAS6P,EAAE1L,GAAG,GAAG,oBAAoBmsE,OAAOA,OAAO,iBAAiB1/D,SAAS,MAAM,IAAIkG,MAAM,gEAAgE3S,EAAEA,GAAG,QAAG,IAASA,EAAE6rE,YAAY7rE,EAAE6rE,UAAUhsE,UAAK,IAASG,EAAEw+B,WAAWx+B,EAAEw+B,SAAS,UAAU,IAAIriC,EAAE/E,EAAEsU,GAAG,OAAO6I,EAAEpY,EAAE6D,GAAG,SAAS0L,GAAG,IAAI,IAAIgoB,EAAE,GAAGvjB,EAAE,EAAEA,EAAEhU,EAAE7E,OAAO6Y,IAAI,CAAC,IAAIzF,EAAEvO,EAAEgU,GAAGsE,EAAExb,EAAEyR,EAAEpO,IAAImY,EAAEg3D,OAAO/3C,EAAE18B,KAAKyd,GAAM/I,GAAG6I,EAAEnd,EAAEsU,GAAG1L,GAAG,IAAQmQ,EAAE,EAAEA,EAAEujB,EAAEp8B,OAAO6Y,IAAI,CAAKsE,EAAEif,EAAEvjB,GAAG,GAAG,IAAIsE,EAAEg3D,KAAK,CAAC,IAAI,IAAIh6D,EAAE,EAAEA,EAAEgD,EAAEysC,MAAM5pD,OAAOma,IAAIgD,EAAEysC,MAAMzvC,YAAYxY,EAAEwb,EAAEnY,QAAQ,IAAIkoE,EAAE,WAAW,IAAI94D,EAAE,GAAG,OAAO,SAAS1L,EAAEuU,GAAG,OAAO7I,EAAE1L,GAAGuU,EAAE7I,EAAE9U,OAAOqlE,SAAS3hE,KAAK,OAA9E,IAAyF,SAASoR,EAAE1L,EAAEuU,GAAG,IAAInd,EAAEmd,EAAE,GAAG,iBAAiBnd,IAAIA,EAAE,CAAC,CAACsU,EAAEtU,EAAEA,EAAE,MAAMmd,EAAE,EAAFA,CAAKnd,EAAE,IAAIA,EAAEg1E,SAAS1gE,EAAE7P,QAAQzE,EAAEg1E,Y,oCCLrkqB,uKAAS/1E,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAapM,IAAIW,EAAQ,eAAsB,eAASvB,EAAcA,EAAc,GAAI,eAAK,OAAY,CAAC,QAAS,eAAgB,GAAI,CAC/Hm1E,UAAW,eAAS,QACpBC,QAAS,eAAS,WACf,QAGMC,EAA6B,aAAI1zE,OAAO,CACjDC,KAAM,OACNymE,OAAQ,CAAC,OAAY,QACrBG,OAAQ,CACND,WAAY,CACV54C,QAAS,OAGb2lD,cAAc,EACd/zE,MAAOA,EACP6H,SAAU,CACRmsE,cAAe,WACb,OAAOv1E,EAAcA,EAAc,GAAI+E,KAAKywE,SAAU,GAAI,CACxD9mE,KAAM,eAIZy2D,QAAS,CACPsQ,cAAe,WACb,IAAIhhE,EAAQ1P,KAGZ,gBAAU,WACJ0P,EAAM8zD,YACR9zD,EAAM8zD,WAAW1a,MAAK,OAI5B6nB,QAAS,SAAiB9+D,GACxB7R,KAAKwgE,MAAM,OAAkB3uD,GAC7B7R,KAAK0wE,kBAGT3zE,OAAQ,SAAgBC,GACtB,IAAIozE,EAAYpwE,KAAKowE,UACjBC,EAAUrwE,KAAKqwE,QACfvF,EAAS9qE,KAAK8qE,OACd9mD,EAAWhkB,KAAKgkB,SAChB2sD,EAAU3wE,KAAK2wE,QACfF,EAAUzwE,KAAKywE,QACnB,OAAOzzE,EAAE,KAAM,CACb2D,MAAO8vE,EAAQ9vE,MACfoa,MAAO01D,EAAQ11D,MACfna,MAAO,CACL+I,KAAM,iBAEP,CAAC3M,EAAE,OAAO,CACXgI,YAAa,gBACbrE,MAAO,CAACyvE,EAAW30E,EAAgB,GAAI,QAAQ4B,OAAOgzE,GAAUA,KAAavF,GAAU9mD,KACvFxnB,MAAOwD,KAAKqvE,OACZzuE,MAAOZ,KAAKwwE,cACZ5qC,GAAI,CACF3c,MAAO0nD,GAETxsE,IAAK,QACJnE,KAAK4wE,uB,mCC7EZ,IAAIC,EAAI,EAAQ,QACZC,EAAgB,EAAQ,QACxBC,EAAkB,EAAQ,QAC1BC,EAAsB,EAAQ,QAE9BC,EAAa,GAAG5yE,KAEhB6yE,EAAcJ,GAAiBt2E,OAC/B22E,EAAgBH,EAAoB,OAAQ,KAIhDH,EAAE,CAAE31E,OAAQ,QAASu/C,OAAO,EAAM22B,OAAQF,IAAgBC,GAAiB,CACzE9yE,KAAM,SAAc2D,GAClB,OAAOivE,EAAW5uE,KAAK0uE,EAAgB/wE,WAAqBoC,IAAdJ,EAA0B,IAAMA,O,yDCflF,4GAIWxF,EAAQ,eAAsB,CACvC60E,MAAO,eAAS,QAAmB,IAClC,gBAGQC,EAAkB,aAAI10E,OAAO,CACtCJ,MAAOA,EACP6H,SAAU,CACRktE,OAAQ,WACN,OAAQvxE,KAAKqxE,W;;;;;;;ACPnB,SAAS7tC,EAAQ3nC,GAWf,OATE2nC,EADoB,oBAAXC,QAAoD,kBAApBA,OAAOvG,SACtC,SAAUrhC,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,oBAAX4nC,QAAyB5nC,EAAIo+B,cAAgBwJ,QAAU5nC,IAAQ4nC,OAAOvrB,UAAY,gBAAkBrc,GAItH2nC,EAAQ3nC,GAGjB,SAASJ,EAAgBI,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EAGT,SAAS21E,IAeP,OAdAA,EAAWh3E,OAAOyd,QAAU,SAAU/c,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIK,KAAOF,EACVd,OAAO0d,UAAUC,eAAe9V,KAAK/G,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAGFs2E,EAASx2E,MAAMgF,KAAM5E,WAG9B,SAASH,EAAcC,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAC/Cf,EAAUI,OAAOD,KAAKe,GAEkB,oBAAjCd,OAAOC,wBAChBL,EAAUA,EAAQiD,OAAO7C,OAAOC,sBAAsBa,GAAQX,QAAO,SAAUC,GAC7E,OAAOJ,OAAOK,yBAAyBS,EAAQV,GAAKE,gBAIxDV,EAAQmB,SAAQ,SAAUC,GACxBC,EAAgBP,EAAQM,EAAKF,EAAOE,OAIxC,OAAON,EAGT,SAASu2E,EAA8Bn2E,EAAQo2E,GAC7C,GAAc,MAAVp2E,EAAgB,MAAO,GAC3B,IAEIE,EAAKL,EAFLD,EAAS,GACTy2E,EAAan3E,OAAOD,KAAKe,GAG7B,IAAKH,EAAI,EAAGA,EAAIw2E,EAAWt2E,OAAQF,IACjCK,EAAMm2E,EAAWx2E,GACbu2E,EAASpqE,QAAQ9L,IAAQ,IAC7BN,EAAOM,GAAOF,EAAOE,IAGvB,OAAON,EAGT,SAAS02E,EAAyBt2E,EAAQo2E,GACxC,GAAc,MAAVp2E,EAAgB,MAAO,GAE3B,IAEIE,EAAKL,EAFLD,EAASu2E,EAA8Bn2E,EAAQo2E,GAInD,GAAIl3E,OAAOC,sBAAuB,CAChC,IAAIo3E,EAAmBr3E,OAAOC,sBAAsBa,GAEpD,IAAKH,EAAI,EAAGA,EAAI02E,EAAiBx2E,OAAQF,IACvCK,EAAMq2E,EAAiB12E,GACnBu2E,EAASpqE,QAAQ9L,IAAQ,GACxBhB,OAAO0d,UAAU+6C,qBAAqB5wD,KAAK/G,EAAQE,KACxDN,EAAOM,GAAOF,EAAOE,IAIzB,OAAON,EAGT,SAASy4C,EAAmB91C,GAC1B,OAAOi0E,EAAmBj0E,IAAQk0E,EAAiBl0E,IAAQm0E,IAG7D,SAASF,EAAmBj0E,GAC1B,GAAIkS,MAAMuiB,QAAQz0B,GAAM,CACtB,IAAK,IAAI1C,EAAI,EAAGy4C,EAAO,IAAI7jC,MAAMlS,EAAIxC,QAASF,EAAI0C,EAAIxC,OAAQF,IAAKy4C,EAAKz4C,GAAK0C,EAAI1C,GAEjF,OAAOy4C,GAIX,SAASm+B,EAAiB90C,GACxB,GAAIwG,OAAOvG,YAAY1iC,OAAOyiC,IAAkD,uBAAzCziC,OAAO0d,UAAUta,SAASyE,KAAK46B,GAAgC,OAAOltB,MAAMgX,KAAKkW,GAG1H,SAAS+0C,IACP,MAAM,IAAI5sE,UAAU,mDA7HtB,kIAgIA,IAAI4mC,EAAU,SAEd,SAAS1hC,EAAUmH,GACjB,GAAsB,qBAAXrH,QAA0BA,OAAOC,UAC1C,QAEAA,UAAUC,UAAUhI,MAAMmP,GAI9B,IAAIwgE,EAAa3nE,EAAU,yDACvB4nE,EAAO5nE,EAAU,SACjB6nE,EAAU7nE,EAAU,YACpB8nE,EAAS9nE,EAAU,aAAeA,EAAU,aAAeA,EAAU,YACrE+nE,EAAM/nE,EAAU,mBAChBgoE,EAAmBhoE,EAAU,YAAcA,EAAU,YAErDioE,EAAc,CAChB7pE,SAAS,EACT8pE,SAAS,GAGX,SAAS5sC,EAAGtoB,EAAIzL,EAAOtC,GACrB+N,EAAGC,iBAAiB1L,EAAOtC,GAAK0iE,GAAcM,GAGhD,SAAS3oC,EAAItsB,EAAIzL,EAAOtC,GACtB+N,EAAGG,oBAAoB5L,EAAOtC,GAAK0iE,GAAcM,GAGnD,SAASxtB,EAETznC,EAEA8S,GACE,GAAKA,EAAL,CAGA,GAFgB,MAAhBA,EAAS,KAAeA,EAAWA,EAASvb,UAAU,IAElDyI,EACF,IACE,GAAIA,EAAGynC,QACL,OAAOznC,EAAGynC,QAAQ30B,GACb,GAAI9S,EAAGmtD,kBACZ,OAAOntD,EAAGmtD,kBAAkBr6C,GACvB,GAAI9S,EAAGitD,sBACZ,OAAOjtD,EAAGitD,sBAAsBn6C,GAElC,MAAO/c,GACP,OAAO,EAIX,OAAO,GAGT,SAASo/D,EAAgBn1D,GACvB,OAAOA,EAAGo1D,MAAQp1D,IAAO9M,UAAY8M,EAAGo1D,KAAKryD,SAAW/C,EAAGo1D,KAAOp1D,EAAGtM,WAGvE,SAAS2hE,EAETr1D,EAEA8S,EAEAl0B,EAAK02E,GACH,GAAIt1D,EAAI,CACNphB,EAAMA,GAAOsU,SAEb,EAAG,CACD,GAAgB,MAAZ4f,IAAqC,MAAhBA,EAAS,GAAa9S,EAAGtM,aAAe9U,GAAO6oD,EAAQznC,EAAI8S,GAAY20B,EAAQznC,EAAI8S,KAAcwiD,GAAct1D,IAAOphB,EAC7I,OAAOohB,EAGT,GAAIA,IAAOphB,EAAK,YAETohB,EAAKm1D,EAAgBn1D,IAGhC,OAAO,KAGT,IAgWIu1D,EAhWAC,EAAU,OAEd,SAAS9iE,EAAYsN,EAAIzgB,EAAM8qE,GAC7B,GAAIrqD,GAAMzgB,EACR,GAAIygB,EAAGnN,UACLmN,EAAGnN,UAAUw3D,EAAQ,MAAQ,UAAU9qE,OAClC,CACL,IAAIqT,GAAa,IAAMoN,EAAGpN,UAAY,KAAK9S,QAAQ01E,EAAS,KAAK11E,QAAQ,IAAMP,EAAO,IAAK,KAC3FygB,EAAGpN,WAAaA,GAAay3D,EAAQ,IAAM9qE,EAAO,KAAKO,QAAQ01E,EAAS,MAK9E,SAASrD,EAAInyD,EAAI6uC,EAAM1nD,GACrB,IAAIsW,EAAQuC,GAAMA,EAAGvC,MAErB,GAAIA,EAAO,CACT,QAAY,IAARtW,EAOF,OANI+L,SAASuiE,aAAeviE,SAASuiE,YAAYhc,iBAC/CtyD,EAAM+L,SAASuiE,YAAYhc,iBAAiBz5C,EAAI,IACvCA,EAAG01D,eACZvuE,EAAM6Y,EAAG01D,mBAGK,IAAT7mB,EAAkB1nD,EAAMA,EAAI0nD,GAE7BA,KAAQpxC,IAAsC,IAA5BoxC,EAAK7kD,QAAQ,YACnC6kD,EAAO,WAAaA,GAGtBpxC,EAAMoxC,GAAQ1nD,GAAsB,kBAARA,EAAmB,GAAK,OAK1D,SAASwuE,EAAO31D,EAAI41D,GAClB,IAAIC,EAAoB,GAExB,GAAkB,kBAAP71D,EACT61D,EAAoB71D,OAEpB,EAAG,CACD,IAAIuhB,EAAY4wC,EAAInyD,EAAI,aAEpBuhB,GAA2B,SAAdA,IACfs0C,EAAoBt0C,EAAY,IAAMs0C,UAIhCD,IAAa51D,EAAKA,EAAGtM,aAGjC,IAAIoiE,EAAWhpE,OAAOipE,WAAajpE,OAAOkpE,iBAAmBlpE,OAAOmpE,WAAanpE,OAAOopE,YAGxF,OAAOJ,GAAY,IAAIA,EAASD,GAGlC,SAASv6C,EAAK18B,EAAKg/B,EAASgC,GAC1B,GAAIhhC,EAAK,CACP,IAAIu3C,EAAOv3C,EAAI6nB,qBAAqBmX,GAChC//B,EAAI,EACJ+E,EAAIuzC,EAAKp4C,OAEb,GAAI6hC,EACF,KAAO/hC,EAAI+E,EAAG/E,IACZ+hC,EAASuW,EAAKt4C,GAAIA,GAItB,OAAOs4C,EAGT,MAAO,GAGT,SAASggC,IACP,IAAIC,EAAmBljE,SAASkjE,iBAEhC,OAAIA,GAGKljE,SAAS+6D,gBAcpB,SAASoI,EAAQr2D,EAAIs2D,EAA2BC,EAA2BC,EAAWrwD,GACpF,GAAKnG,EAAGkO,uBAAyBlO,IAAOlT,OAAxC,CACA,IAAI2pE,EAAQloD,EAAKE,EAAMJ,EAAQQ,EAAOsc,EAAQntB,EAmB9C,GAjBIgC,IAAOlT,QAAUkT,IAAOm2D,KAC1BM,EAASz2D,EAAGkO,wBACZK,EAAMkoD,EAAOloD,IACbE,EAAOgoD,EAAOhoD,KACdJ,EAASooD,EAAOpoD,OAChBQ,EAAQ4nD,EAAO5nD,MACfsc,EAASsrC,EAAOtrC,OAChBntB,EAAQy4D,EAAOz4D,QAEfuQ,EAAM,EACNE,EAAO,EACPJ,EAASvhB,OAAOshB,YAChBS,EAAQ/hB,OAAO4pE,WACfvrC,EAASr+B,OAAOshB,YAChBpQ,EAAQlR,OAAO4pE,aAGZJ,GAA6BC,IAA8Bv2D,IAAOlT,SAErEqZ,EAAYA,GAAanG,EAAGtM,YAGvBihE,GACH,GACE,GAAIxuD,GAAaA,EAAU+H,wBAA0D,SAAhCikD,EAAIhsD,EAAW,cAA2BowD,GAA4D,WAA/BpE,EAAIhsD,EAAW,aAA2B,CACpK,IAAIwwD,EAAgBxwD,EAAU+H,wBAE9BK,GAAOooD,EAAcpoD,IAAMnY,SAAS+7D,EAAIhsD,EAAW,qBACnDsI,GAAQkoD,EAAcloD,KAAOrY,SAAS+7D,EAAIhsD,EAAW,sBACrDkI,EAASE,EAAMkoD,EAAOtrC,OACtBtc,EAAQJ,EAAOgoD,EAAOz4D,MACtB,aAIKmI,EAAYA,EAAUzS,YAInC,GAAI8iE,GAAax2D,IAAOlT,OAAQ,CAE9B,IAAI8pE,EAAWjB,EAAOxvD,GAAanG,GAC/B62D,EAASD,GAAYA,EAAS17D,EAC9B47D,EAASF,GAAYA,EAASngE,EAE9BmgE,IACFroD,GAAOuoD,EACProD,GAAQooD,EACR74D,GAAS64D,EACT1rC,GAAU2rC,EACVzoD,EAASE,EAAM4c,EACftc,EAAQJ,EAAOzQ,GAInB,MAAO,CACLuQ,IAAKA,EACLE,KAAMA,EACNJ,OAAQA,EACRQ,MAAOA,EACP7Q,MAAOA,EACPmtB,OAAQA,IAYZ,SAAS4rC,EAAe/2D,EAAIg3D,EAAQC,GAClC,IAAIp3E,EAASq3E,EAA2Bl3D,GAAI,GACxCm3D,EAAYd,EAAQr2D,GAAIg3D,GAG5B,MAAOn3E,EAAQ,CACb,IAAIu3E,EAAgBf,EAAQx2E,GAAQo3E,GAChC5Q,OAAU,EAQd,GALEA,EADiB,QAAf4Q,GAAuC,SAAfA,EAChBE,GAAaC,EAEbD,GAAaC,GAGpB/Q,EAAS,OAAOxmE,EACrB,GAAIA,IAAWs2E,IAA6B,MAC5Ct2E,EAASq3E,EAA2Br3E,GAAQ,GAG9C,OAAO,EAYT,SAASw3E,EAASr3D,EAAIs3D,EAAUngE,GAC9B,IAAIogE,EAAe,EACf15E,EAAI,EACJuF,EAAW4c,EAAG5c,SAElB,MAAOvF,EAAIuF,EAASrF,OAAQ,CAC1B,GAAkC,SAA9BqF,EAASvF,GAAG4f,MAAME,SAAsBva,EAASvF,KAAO25E,GAASC,OAASr0E,EAASvF,KAAO25E,GAASE,SAAWrC,EAAQjyE,EAASvF,GAAIsZ,EAAQwgE,UAAW33D,GAAI,GAAQ,CACpK,GAAIu3D,IAAiBD,EACnB,OAAOl0E,EAASvF,GAGlB05E,IAGF15E,IAGF,OAAO,KAUT,SAAS0qB,EAAUvI,EAAI8S,GACrB,IAAI+mB,EAAO75B,EAAG43D,iBAEd,MAAO/9B,IAASA,IAAS29B,GAASC,OAAkC,SAAzBtF,EAAIt4B,EAAM,YAAyB/mB,IAAa20B,EAAQ5N,EAAM/mB,IACvG+mB,EAAOA,EAAKg+B,uBAGd,OAAOh+B,GAAQ,KAWjB,SAASl0C,EAAMqa,EAAI8S,GACjB,IAAIntB,EAAQ,EAEZ,IAAKqa,IAAOA,EAAGtM,WACb,OAAQ,EAKV,MAAOsM,EAAKA,EAAG63D,uBACqB,aAA9B73D,EAAGqR,SAASxwB,eAAgCmf,IAAOw3D,GAASl1C,OAAWxP,IAAY20B,EAAQznC,EAAI8S,IACjGntB,IAIJ,OAAOA,EAUT,SAASmyE,EAAwB93D,GAC/B,IAAI+3D,EAAa,EACb/d,EAAY,EACZge,EAAc7B,IAElB,GAAIn2D,EACF,EAAG,CACD,IAAI42D,EAAWjB,EAAO31D,GAClB62D,EAASD,EAAS17D,EAClB47D,EAASF,EAASngE,EACtBshE,GAAc/3D,EAAGurD,WAAasL,EAC9B7c,GAAah6C,EAAG+pB,UAAY+sC,QACrB92D,IAAOg4D,IAAgBh4D,EAAKA,EAAGtM,aAG1C,MAAO,CAACqkE,EAAY/d,GAUtB,SAASie,EAAc13E,EAAKhC,GAC1B,IAAK,IAAIV,KAAK0C,EACZ,GAAKA,EAAIsa,eAAehd,GAExB,IAAK,IAAIK,KAAOK,EACd,GAAIA,EAAIsc,eAAe3c,IAAQK,EAAIL,KAASqC,EAAI1C,GAAGK,GAAM,OAAO03B,OAAO/3B,GAI3E,OAAQ,EAGV,SAASq5E,EAA2Bl3D,EAAIk4D,GAEtC,IAAKl4D,IAAOA,EAAGkO,sBAAuB,OAAOioD,IAC7C,IAAIxjE,EAAOqN,EACPm4D,GAAU,EAEd,GAEE,GAAIxlE,EAAK27D,YAAc37D,EAAK87D,aAAe97D,EAAK67D,aAAe77D,EAAKg8D,aAAc,CAChF,IAAIyJ,EAAUjG,EAAIx/D,GAElB,GAAIA,EAAK27D,YAAc37D,EAAK87D,cAAqC,QAArB2J,EAAQhI,WAA4C,UAArBgI,EAAQhI,YAA0Bz9D,EAAK67D,aAAe77D,EAAKg8D,eAAsC,QAArByJ,EAAQ/H,WAA4C,UAArB+H,EAAQ/H,WAAwB,CACpN,IAAK19D,EAAKub,uBAAyBvb,IAASO,SAASgQ,KAAM,OAAOizD,IAClE,GAAIgC,GAAWD,EAAa,OAAOvlE,EACnCwlE,GAAU,UAKPxlE,EAAOA,EAAKe,YAErB,OAAOyiE,IAGT,SAAS72E,EAAO+4E,EAAKl2C,GACnB,GAAIk2C,GAAOl2C,EACT,IAAK,IAAIjkC,KAAOikC,EACVA,EAAItnB,eAAe3c,KACrBm6E,EAAIn6E,GAAOikC,EAAIjkC,IAKrB,OAAOm6E,EAGT,SAASC,EAAYC,EAAOC,GAC1B,OAAOt0E,KAAKyK,MAAM4pE,EAAMhqD,OAASrqB,KAAKyK,MAAM6pE,EAAMjqD,MAAQrqB,KAAKyK,MAAM4pE,EAAM9pD,QAAUvqB,KAAKyK,MAAM6pE,EAAM/pD,OAASvqB,KAAKyK,MAAM4pE,EAAMptC,UAAYjnC,KAAKyK,MAAM6pE,EAAMrtC,SAAWjnC,KAAKyK,MAAM4pE,EAAMv6D,SAAW9Z,KAAKyK,MAAM6pE,EAAMx6D,OAKvN,SAASy6D,EAASlrB,EAAUmrB,GAC1B,OAAO,WACL,IAAKnD,EAAkB,CACrB,IAAIljE,EAAOvU,UACPsU,EAAQ1P,KAEQ,IAAhB2P,EAAKtU,OACPwvD,EAASxoD,KAAKqN,EAAOC,EAAK,IAE1Bk7C,EAAS7vD,MAAM0U,EAAOC,GAGxBkjE,EAAmBhjE,YAAW,WAC5BgjE,OAAmB,IAClBmD,KAKT,SAASC,IACPrmE,aAAaijE,GACbA,OAAmB,EAGrB,SAASqD,EAAS54D,EAAI0K,EAAG1T,GACvBgJ,EAAGurD,YAAc7gD,EACjB1K,EAAG+pB,WAAa/yB,EAGlB,SAASsrB,EAAMtiB,GACb,IAAI64D,EAAU/rE,OAAO+rE,QACjBtF,EAAIzmE,OAAOqmB,QAAUrmB,OAAOgsE,MAEhC,OAAID,GAAWA,EAAQE,IACdF,EAAQE,IAAI/4D,GAAIknC,WAAU,GACxBqsB,EACFA,EAAEvzD,GAAIsiB,OAAM,GAAM,GAElBtiB,EAAGknC,WAAU,GAIxB,SAAS8xB,EAAQh5D,EAAI24B,GACnBw5B,EAAInyD,EAAI,WAAY,YACpBmyD,EAAInyD,EAAI,MAAO24B,EAAKpqB,KACpB4jD,EAAInyD,EAAI,OAAQ24B,EAAKlqB,MACrB0jD,EAAInyD,EAAI,QAAS24B,EAAK36B,OACtBm0D,EAAInyD,EAAI,SAAU24B,EAAKxN,QAGzB,SAAS8tC,EAAUj5D,GACjBmyD,EAAInyD,EAAI,WAAY,IACpBmyD,EAAInyD,EAAI,MAAO,IACfmyD,EAAInyD,EAAI,OAAQ,IAChBmyD,EAAInyD,EAAI,QAAS,IACjBmyD,EAAInyD,EAAI,SAAU,IAGpB,IAAIk5D,EAAU,YAAa,IAAIv3E,MAAOyM,UAEtC,SAAS+qE,IACP,IACIC,EADAC,EAAkB,GAEtB,MAAO,CACLC,sBAAuB,WAErB,GADAD,EAAkB,GACb32E,KAAKyU,QAAQoiE,UAAlB,CACA,IAAIn2E,EAAW,GAAGtC,MAAMiE,KAAKrC,KAAKsd,GAAG5c,UACrCA,EAASnF,SAAQ,SAAU0vB,GACzB,GAA8B,SAA1BwkD,EAAIxkD,EAAO,YAAyBA,IAAU6pD,GAASC,MAA3D,CACA4B,EAAgB57E,KAAK,CACnBG,OAAQ+vB,EACRgrB,KAAM09B,EAAQ1oD,KAGhB,IAAI6rD,EAAW77E,EAAc,GAAI07E,EAAgBA,EAAgBt7E,OAAS,GAAG46C,MAG7E,GAAIhrB,EAAM8rD,sBAAuB,CAC/B,IAAIC,EAAc/D,EAAOhoD,GAAO,GAE5B+rD,IACFF,EAASjrD,KAAOmrD,EAAYruE,EAC5BmuE,EAAS/qD,MAAQirD,EAAYjzE,GAIjCknB,EAAM6rD,SAAWA,QAGrBG,kBAAmB,SAA2BtP,GAC5CgP,EAAgB57E,KAAK4sE,IAEvBuP,qBAAsB,SAA8Bh8E,GAClDy7E,EAAgBzxD,OAAOqwD,EAAcoB,EAAiB,CACpDz7E,OAAQA,IACN,IAENi8E,WAAY,SAAoBtsB,GAC9B,IAAIn7C,EAAQ1P,KAEZ,IAAKA,KAAKyU,QAAQoiE,UAGhB,OAFAjnE,aAAa8mE,QACW,oBAAb7rB,GAAyBA,KAItC,IAAIusB,GAAY,EACZC,EAAgB,EACpBV,EAAgBp7E,SAAQ,SAAUosE,GAChC,IAAI2P,EAAO,EACPp8E,EAASysE,EAAMzsE,OACf47E,EAAW57E,EAAO47E,SAClBS,EAAS5D,EAAQz4E,GACjBs8E,EAAet8E,EAAOs8E,aACtBC,EAAav8E,EAAOu8E,WACpBC,EAAgB/P,EAAM1xB,KACtB0hC,EAAe1E,EAAO/3E,GAAQ,GAE9By8E,IAEFJ,EAAO1rD,KAAO8rD,EAAahvE,EAC3B4uE,EAAOxrD,MAAQ4rD,EAAa5zE,GAG9B7I,EAAOq8E,OAASA,EAEZr8E,EAAO67E,uBAELnB,EAAY4B,EAAcD,KAAY3B,EAAYkB,EAAUS,KAC/DG,EAAc7rD,IAAM0rD,EAAO1rD,MAAQ6rD,EAAc3rD,KAAOwrD,EAAOxrD,SAAW+qD,EAASjrD,IAAM0rD,EAAO1rD,MAAQirD,EAAS/qD,KAAOwrD,EAAOxrD,QAE9HurD,EAAOM,EAAkBF,EAAeF,EAAcC,EAAY/nE,EAAM+E,UAKvEmhE,EAAY2B,EAAQT,KACvB57E,EAAOs8E,aAAeV,EACtB57E,EAAOu8E,WAAaF,EAEfD,IACHA,EAAO5nE,EAAM+E,QAAQoiE,WAGvBnnE,EAAMvF,QAAQjP,EAAQw8E,EAAeH,EAAQD,IAG3CA,IACFF,GAAY,EACZC,EAAgB71E,KAAKgF,IAAI6wE,EAAeC,GACxC1nE,aAAa1U,EAAO28E,qBACpB38E,EAAO28E,oBAAsBhoE,YAAW,WACtC3U,EAAOm8E,cAAgB,EACvBn8E,EAAOs8E,aAAe,KACtBt8E,EAAO47E,SAAW,KAClB57E,EAAOu8E,WAAa,KACpBv8E,EAAO67E,sBAAwB,OAC9BO,GACHp8E,EAAO67E,sBAAwBO,MAGnC1nE,aAAa8mE,GAERU,EAGHV,EAAsB7mE,YAAW,WACP,oBAAbg7C,GAAyBA,MACnCwsB,GAJqB,oBAAbxsB,GAAyBA,IAOtC8rB,EAAkB,IAEpBxsE,QAAS,SAAiBjP,EAAQ48E,EAAaP,EAAQjgE,GACrD,GAAIA,EAAU,CACZm4D,EAAIv0E,EAAQ,aAAc,IAC1Bu0E,EAAIv0E,EAAQ,YAAa,IACzB,IAAIg5E,EAAWjB,EAAOjzE,KAAKsd,IACvB62D,EAASD,GAAYA,EAAS17D,EAC9B47D,EAASF,GAAYA,EAASngE,EAC9BgkE,GAAcD,EAAY/rD,KAAOwrD,EAAOxrD,OAASooD,GAAU,GAC3D6D,GAAcF,EAAYjsD,IAAM0rD,EAAO1rD,MAAQuoD,GAAU,GAC7Dl5E,EAAO+8E,aAAeF,EACtB78E,EAAOg9E,aAAeF,EACtBvI,EAAIv0E,EAAQ,YAAa,eAAiB68E,EAAa,MAAQC,EAAa,SAC5EG,EAAQj9E,GAERu0E,EAAIv0E,EAAQ,aAAc,aAAeoc,EAAW,MAAQtX,KAAKyU,QAAQ2jE,OAAS,IAAMp4E,KAAKyU,QAAQ2jE,OAAS,KAC9G3I,EAAIv0E,EAAQ,YAAa,sBACE,kBAApBA,EAAOm9E,UAAyBzoE,aAAa1U,EAAOm9E,UAC3Dn9E,EAAOm9E,SAAWxoE,YAAW,WAC3B4/D,EAAIv0E,EAAQ,aAAc,IAC1Bu0E,EAAIv0E,EAAQ,YAAa,IACzBA,EAAOm9E,UAAW,EAClBn9E,EAAO+8E,YAAa,EACpB/8E,EAAOg9E,YAAa,IACnB5gE,MAMX,SAAS6gE,EAAQj9E,GACf,OAAOA,EAAOmgB,YAGhB,SAASu8D,EAAkBF,EAAeZ,EAAUS,EAAQ9iE,GAC1D,OAAOjT,KAAK82E,KAAK92E,KAAK+2E,IAAIzB,EAASjrD,IAAM6rD,EAAc7rD,IAAK,GAAKrqB,KAAK+2E,IAAIzB,EAAS/qD,KAAO2rD,EAAc3rD,KAAM,IAAMvqB,KAAK82E,KAAK92E,KAAK+2E,IAAIzB,EAASjrD,IAAM0rD,EAAO1rD,IAAK,GAAKrqB,KAAK+2E,IAAIzB,EAAS/qD,KAAOwrD,EAAOxrD,KAAM,IAAMtX,EAAQoiE,UAG7N,IAAItpE,GAAU,GACVoO,GAAW,CACb68D,qBAAqB,GAEnBC,GAAgB,CAClBC,MAAO,SAAeC,GAEpB,IAAK,IAAIrqD,KAAU3S,GACbA,GAASxD,eAAemW,MAAaA,KAAUqqD,KACjDA,EAAOrqD,GAAU3S,GAAS2S,IAI9B/gB,GAAQxS,KAAK49E,IAEfC,YAAa,SAAqB9rC,EAAW+rC,EAAUl7D,GACrD,IAAIjO,EAAQ1P,KAEZA,KAAK84E,eAAgB,EAErBn7D,EAAI0sC,OAAS,WACX36C,EAAMopE,eAAgB,GAGxB,IAAIC,EAAkBjsC,EAAY,SAClCv/B,GAAQhS,SAAQ,SAAUo9E,GACnBE,EAASF,EAAOK,cAEjBH,EAASF,EAAOK,YAAYD,IAC9BF,EAASF,EAAOK,YAAYD,GAAiB99E,EAAc,CACzD49E,SAAUA,GACTl7D,IAKDk7D,EAASpkE,QAAQkkE,EAAOK,aAAeH,EAASF,EAAOK,YAAYlsC,IACrE+rC,EAASF,EAAOK,YAAYlsC,GAAW7xC,EAAc,CACnD49E,SAAUA,GACTl7D,SAITs7D,kBAAmB,SAA2BJ,EAAUv7D,EAAI3B,EAAUlH,GAYpE,IAAK,IAAI6Z,KAXT/gB,GAAQhS,SAAQ,SAAUo9E,GACxB,IAAIK,EAAaL,EAAOK,WACxB,GAAKH,EAASpkE,QAAQukE,IAAgBL,EAAOH,oBAA7C,CACA,IAAIU,EAAc,IAAIP,EAAOE,EAAUv7D,EAAIu7D,EAASpkE,SACpDykE,EAAYL,SAAWA,EACvBK,EAAYzkE,QAAUokE,EAASpkE,QAC/BokE,EAASG,GAAcE,EAEvB1H,EAAS71D,EAAUu9D,EAAYv9D,cAGdk9D,EAASpkE,QAC1B,GAAKokE,EAASpkE,QAAQ0D,eAAemW,GAArC,CACA,IAAI6qD,EAAWn5E,KAAKo5E,aAAaP,EAAUvqD,EAAQuqD,EAASpkE,QAAQ6Z,IAE5C,qBAAb6qD,IACTN,EAASpkE,QAAQ6Z,GAAU6qD,KAIjCE,mBAAoB,SAA4Bx8E,EAAMg8E,GACpD,IAAIS,EAAkB,GAMtB,OALA/rE,GAAQhS,SAAQ,SAAUo9E,GACc,oBAA3BA,EAAOW,iBAElB9H,EAAS8H,EAAiBX,EAAOW,gBAAgBj3E,KAAKw2E,EAASF,EAAOK,YAAan8E,OAE9Ey8E,GAETF,aAAc,SAAsBP,EAAUh8E,EAAMf,GAClD,IAAIy9E,EASJ,OARAhsE,GAAQhS,SAAQ,SAAUo9E,GAEnBE,EAASF,EAAOK,aAEjBL,EAAOa,iBAA2D,oBAAjCb,EAAOa,gBAAgB38E,KAC1D08E,EAAgBZ,EAAOa,gBAAgB38E,GAAMwF,KAAKw2E,EAASF,EAAOK,YAAal9E,OAG5Ey9E,IAIX,SAAS/5D,GAAcviB,GACrB,IAAI47E,EAAW57E,EAAK47E,SAChBY,EAASx8E,EAAKw8E,OACd58E,EAAOI,EAAKJ,KACZ68E,EAAWz8E,EAAKy8E,SAChBC,EAAU18E,EAAK08E,QACfC,EAAO38E,EAAK28E,KACZC,EAAS58E,EAAK48E,OACdC,EAAW78E,EAAK68E,SAChBC,EAAW98E,EAAK88E,SAChBC,EAAoB/8E,EAAK+8E,kBACzBC,EAAoBh9E,EAAKg9E,kBACzBC,EAAgBj9E,EAAKi9E,cACrBC,EAAcl9E,EAAKk9E,YACnBC,EAAuBn9E,EAAKm9E,qBAEhC,GADAvB,EAAWA,GAAYY,GAAUA,EAAOjD,GACnCqC,EAAL,CACA,IAAIl7D,EACAlJ,EAAUokE,EAASpkE,QACnB4lE,EAAS,KAAOx9E,EAAKqB,OAAO,GAAGC,cAAgBtB,EAAK68C,OAAO,IAE3DtvC,OAAO29D,aAAgBkK,GAAeC,GAMxCv0D,EAAMnN,SAAS+O,YAAY,SAC3B5B,EAAIuR,UAAUryB,GAAM,GAAM,IAN1B8gB,EAAM,IAAIoqD,YAAYlrE,EAAM,CAC1By9E,SAAS,EACTpW,YAAY,IAOhBvmD,EAAIqJ,GAAK4yD,GAAQH,EACjB97D,EAAIoJ,KAAO8yD,GAAUJ,EACrB97D,EAAIuxB,KAAOwqC,GAAYD,EACvB97D,EAAIiiB,MAAQ+5C,EACZh8D,EAAIm8D,SAAWA,EACfn8D,EAAIo8D,SAAWA,EACfp8D,EAAIq8D,kBAAoBA,EACxBr8D,EAAIs8D,kBAAoBA,EACxBt8D,EAAIu8D,cAAgBA,EACpBv8D,EAAI48D,SAAWJ,EAAcA,EAAYK,iBAAcp4E,EAEvD,IAAIq4E,EAAqBx/E,EAAc,GAAIm/E,EAAsB3B,GAAcY,mBAAmBx8E,EAAMg8E,IAExG,IAAK,IAAIvqD,KAAUmsD,EACjB98D,EAAI2Q,GAAUmsD,EAAmBnsD,GAG/BmrD,GACFA,EAAOj6D,cAAc7B,GAGnBlJ,EAAQ4lE,IACV5lE,EAAQ4lE,GAAQh4E,KAAKw2E,EAAUl7D,IAInC,IAAIi7D,GAAc,SAAqB9rC,EAAW+rC,GAChD,IAAI57E,EAAO7B,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAC3E8+E,EAAgBj9E,EAAK0gB,IACrBzgB,EAAO00E,EAAyB30E,EAAM,CAAC,QAE3Cw7E,GAAcG,YAAY/9D,KAAKi6D,GAA/B2D,CAAyC3rC,EAAW+rC,EAAU59E,EAAc,CAC1Ey/E,OAAQA,GACRC,SAAUA,GACVC,QAASA,GACTnB,OAAQA,GACRoB,OAAQA,GACRC,WAAYA,GACZnB,QAASA,GACToB,YAAaA,GACbC,YAAaC,GACbd,YAAaA,GACbe,eAAgBpG,GAAShK,OACzBoP,cAAeA,EACfJ,SAAUA,GACVE,kBAAmBA,GACnBD,SAAUA,GACVE,kBAAmBA,GACnBkB,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdR,IAAc,GAEhBS,cAAe,WACbT,IAAc,GAEhBU,sBAAuB,SAA+B5+E,GACpD6+E,GAAe,CACb7C,SAAUA,EACVh8E,KAAMA,EACNq9E,cAAeA,MAGlBh9E,KAGL,SAASw+E,GAAerlC,GACtB72B,GAAcvkB,EAAc,CAC1Bk/E,YAAaA,GACbR,QAASA,GACTD,SAAUgB,GACVjB,OAAQA,GACRK,SAAUA,GACVE,kBAAmBA,GACnBD,SAAUA,GACVE,kBAAmBA,IAClB5jC,IAGL,IAAIqkC,GACAC,GACAC,GACAnB,GACAoB,GACAC,GACAnB,GACAoB,GACAjB,GACAC,GACAC,GACAC,GACA0B,GACAxB,GAIAyB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAhB,GACAiB,GACAC,GAGAC,GAEJC,GAhBIC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAEvCC,IAAU,EACNC,GAAoB,GAGpBC,GAAqC,qBAAbtsE,SACxBusE,GAA0B1K,EAC1B2K,GAAmB9K,GAAQD,EAAa,WAAa,QAEzDgL,GAAmBH,KAAmBxK,IAAqBD,GAAO,cAAe7hE,SAASF,cAAc,OACpG4sE,GAA0B,WAC5B,GAAKJ,GAAL,CAEA,GAAI7K,EACF,OAAO,EAGT,IAAI30D,EAAK9M,SAASF,cAAc,KAEhC,OADAgN,EAAGvC,MAAM+0D,QAAU,sBACe,SAA3BxyD,EAAGvC,MAAMoiE,eATY,GAW1BC,GAAmB,SAA0B9/D,EAAI7I,GACnD,IAAI4oE,EAAQ5N,EAAInyD,GACZggE,EAAU5pE,SAAS2pE,EAAM/hE,OAAS5H,SAAS2pE,EAAMlV,aAAez0D,SAAS2pE,EAAMjV,cAAgB10D,SAAS2pE,EAAMhV,iBAAmB30D,SAAS2pE,EAAM/U,kBAChJiV,EAAS5I,EAASr3D,EAAI,EAAG7I,GACzB+oE,EAAS7I,EAASr3D,EAAI,EAAG7I,GACzBgpE,EAAgBF,GAAU9N,EAAI8N,GAC9BG,EAAiBF,GAAU/N,EAAI+N,GAC/BG,EAAkBF,GAAiB/pE,SAAS+pE,EAAcre,YAAc1rD,SAAS+pE,EAAc3O,aAAe6E,EAAQ4J,GAAQjiE,MAC9HsiE,EAAmBF,GAAkBhqE,SAASgqE,EAAete,YAAc1rD,SAASgqE,EAAe5O,aAAe6E,EAAQ6J,GAAQliE,MAEtI,GAAsB,SAAlB+hE,EAAMpiE,QACR,MAA+B,WAAxBoiE,EAAMQ,eAAsD,mBAAxBR,EAAMQ,cAAqC,WAAa,aAGrG,GAAsB,SAAlBR,EAAMpiE,QACR,OAAOoiE,EAAMS,oBAAoBhgF,MAAM,KAAKzC,QAAU,EAAI,WAAa,aAGzE,GAAIkiF,GAAUE,EAAc,UAAuC,SAA3BA,EAAc,SAAqB,CACzE,IAAIM,EAAgD,SAA3BN,EAAc,SAAsB,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAep4D,OAAoBo4D,EAAep4D,QAAUy4D,EAAmC,aAAb,WAGtG,OAAOR,IAAqC,UAA1BE,EAAcxiE,SAAiD,SAA1BwiE,EAAcxiE,SAAgD,UAA1BwiE,EAAcxiE,SAAiD,SAA1BwiE,EAAcxiE,SAAsB0iE,GAAmBL,GAAuC,SAA5BD,EAAML,KAAgCQ,GAAsC,SAA5BH,EAAML,KAAgCW,EAAkBC,EAAmBN,GAAW,WAAa,cAEnVU,GAAqB,SAA4BC,EAAUC,EAAYC,GACzE,IAAIC,EAAcD,EAAWF,EAASlyD,KAAOkyD,EAASpyD,IAClDwyD,EAAcF,EAAWF,EAAS9xD,MAAQ8xD,EAAStyD,OACnD2yD,EAAkBH,EAAWF,EAAS3iE,MAAQ2iE,EAASx1C,OACvD81C,EAAcJ,EAAWD,EAAWnyD,KAAOmyD,EAAWryD,IACtD2yD,EAAcL,EAAWD,EAAW/xD,MAAQ+xD,EAAWvyD,OACvD8yD,EAAkBN,EAAWD,EAAW5iE,MAAQ4iE,EAAWz1C,OAC/D,OAAO21C,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,GAS7IC,GAA8B,SAAqC12D,EAAG1T,GACpE,IAAIi2B,EAYJ,OAXAiyC,GAAUj2D,MAAK,SAAUsyD,GACvB,IAAIhzD,EAAUgzD,GAAd,CACA,IAAI5iC,EAAO09B,EAAQkF,GACf8F,EAAY9F,EAASrC,GAAS/hE,QAAQmqE,qBACtCC,EAAqB72D,GAAKiuB,EAAKlqB,KAAO4yD,GAAa32D,GAAKiuB,EAAK9pB,MAAQwyD,EACrEG,EAAmBxqE,GAAK2hC,EAAKpqB,IAAM8yD,GAAarqE,GAAK2hC,EAAKtqB,OAASgzD,EAEvE,OAAIA,GAAaE,GAAsBC,EAC9Bv0C,EAAMsuC,OADf,MAIKtuC,GAELw0C,GAAgB,SAAuBtqE,GACzC,SAASuqE,EAAKljF,EAAOmjF,GACnB,OAAO,SAAUj4D,EAAID,EAAM2zD,EAAQ/8D,GACjC,IAAIuhE,EAAYl4D,EAAGvS,QAAQikD,MAAM77D,MAAQkqB,EAAKtS,QAAQikD,MAAM77D,MAAQmqB,EAAGvS,QAAQikD,MAAM77D,OAASkqB,EAAKtS,QAAQikD,MAAM77D,KAEjH,GAAa,MAATf,IAAkBmjF,GAAQC,GAG5B,OAAO,EACF,GAAa,MAATpjF,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAImjF,GAAkB,UAAVnjF,EACjB,OAAOA,EACF,GAAqB,oBAAVA,EAChB,OAAOkjF,EAAKljF,EAAMkrB,EAAID,EAAM2zD,EAAQ/8D,GAAMshE,EAAnCD,CAAyCh4D,EAAID,EAAM2zD,EAAQ/8D,GAElE,IAAIwhE,GAAcF,EAAOj4D,EAAKD,GAAMtS,QAAQikD,MAAM77D,KAClD,OAAiB,IAAVf,GAAmC,kBAAVA,GAAsBA,IAAUqjF,GAAcrjF,EAAMuC,MAAQvC,EAAMwL,QAAQ63E,IAAe,GAK/H,IAAIzmB,EAAQ,GACR0mB,EAAgB3qE,EAAQikD,MAEvB0mB,GAA2C,UAA1B57C,EAAQ47C,KAC5BA,EAAgB,CACdviF,KAAMuiF,IAIV1mB,EAAM77D,KAAOuiF,EAAcviF,KAC3B67D,EAAM2mB,UAAYL,EAAKI,EAAcH,MAAM,GAC3CvmB,EAAM4mB,SAAWN,EAAKI,EAAcG,KACpC7mB,EAAM8mB,YAAcJ,EAAcI,YAClC/qE,EAAQikD,MAAQA,GAEd0iB,GAAsB,YACnB8B,IAA2BtC,IAC9BnL,EAAImL,GAAS,UAAW,SAGxBU,GAAwB,YACrB4B,IAA2BtC,IAC9BnL,EAAImL,GAAS,UAAW,KAKxBkC,IACFtsE,SAAS+M,iBAAiB,SAAS,SAAUI,GAC3C,GAAI4+D,GAKF,OAJA5+D,EAAI8J,iBACJ9J,EAAIkK,iBAAmBlK,EAAIkK,kBAC3BlK,EAAI8hE,0BAA4B9hE,EAAI8hE,2BACpClD,IAAkB,GACX,KAER,GAGL,IAAImD,GAAgC,SAAuC/hE,GACzE,GAAI+8D,GAAQ,CACV/8D,EAAMA,EAAIgiE,QAAUhiE,EAAIgiE,QAAQ,GAAKhiE,EAErC,IAAIiiE,EAAUlB,GAA4B/gE,EAAIkiE,QAASliE,EAAImiE,SAE3D,GAAIF,EAAS,CAEX,IAAI/tE,EAAQ,GAEZ,IAAK,IAAI1W,KAAKwiB,EACRA,EAAIxF,eAAehd,KACrB0W,EAAM1W,GAAKwiB,EAAIxiB,IAInB0W,EAAM3W,OAAS2W,EAAM4nE,OAASmG,EAC9B/tE,EAAM4V,oBAAiB,EACvB5V,EAAMgW,qBAAkB,EAExB+3D,EAAQpJ,GAASuJ,YAAYluE,MAK/BmuE,GAAwB,SAA+BriE,GACrD+8D,IACFA,GAAO1pE,WAAWwlE,GAASyJ,iBAAiBtiE,EAAIziB,SAUpD,SAAS45E,GAASx3D,EAAI7I,GACpB,IAAM6I,IAAMA,EAAG+C,UAA4B,IAAhB/C,EAAG+C,SAC5B,KAAM,8CAA8ChjB,OAAO,GAAGO,SAASyE,KAAKib,IAG9Etd,KAAKsd,GAAKA,EAEVtd,KAAKyU,QAAUA,EAAU+8D,EAAS,GAAI/8D,GAEtC6I,EAAGk5D,GAAWx2E,KACd,IAAI2b,EAAW,CACb+8C,MAAO,KACPhrC,MAAM,EACN1J,UAAU,EACV1f,MAAO,KACP47E,OAAQ,KACRjL,UAAW,WAAW/xE,KAAKoa,EAAGqR,UAAY,MAAQ,KAClDwxD,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBxnB,UAAW,WACT,OAAOskB,GAAiB9/D,EAAItd,KAAKyU,UAEnC8rE,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXC,OAAQ,SACR/lF,OAAQ,KACRgmF,iBAAiB,EACjB9J,UAAW,EACXuB,OAAQ,KACRwI,QAAS,SAAiBC,EAAcnG,GACtCmG,EAAaD,QAAQ,OAAQlG,EAAOjqE,cAEtCqwE,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZ15B,MAAO,EACP25B,kBAAkB,EAClBC,qBAAsBhuD,OAAOxf,SAAWwf,OAAS9oB,QAAQsJ,SAAStJ,OAAO+2E,iBAAkB,KAAO,EAClGC,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACdx5D,EAAG,EACH1T,EAAG,GAELmtE,gBAA4C,IAA5B3M,GAAS2M,gBAA4B,iBAAkBr3E,OACvEw0E,qBAAsB,GAIxB,IAAK,IAAI/hF,KAFT47E,GAAcQ,kBAAkBj5E,KAAMsd,EAAI3B,GAEzBA,IACb9e,KAAQ4X,KAAaA,EAAQ5X,GAAQ8e,EAAS9e,IAMlD,IAAK,IAAI0S,KAHTwvE,GAActqE,GAGCzU,KACQ,MAAjBuP,EAAGrR,OAAO,IAAkC,oBAAb8B,KAAKuP,KACtCvP,KAAKuP,GAAMvP,KAAKuP,GAAIsL,KAAK7a,OAK7BA,KAAK0hF,iBAAkBjtE,EAAQ2sE,eAAwBnE,GAEnDj9E,KAAK0hF,kBAEP1hF,KAAKyU,QAAQysE,oBAAsB,GAIjCzsE,EAAQgtE,eACV77C,EAAGtoB,EAAI,cAAetd,KAAK2hF,cAE3B/7C,EAAGtoB,EAAI,YAAatd,KAAK2hF,aACzB/7C,EAAGtoB,EAAI,aAActd,KAAK2hF,cAGxB3hF,KAAK0hF,kBACP97C,EAAGtoB,EAAI,WAAYtd,MACnB4lC,EAAGtoB,EAAI,YAAatd,OAGtBw8E,GAAUzhF,KAAKiF,KAAKsd,IAEpB7I,EAAQnQ,OAASmQ,EAAQnQ,MAAMggB,KAAOtkB,KAAK0tB,KAAKjZ,EAAQnQ,MAAMggB,IAAItkB,OAAS,IAE3EwxE,EAASxxE,KAAMy2E,KAqpCjB,SAASmL,GAETjkE,GACMA,EAAIkjE,eACNljE,EAAIkjE,aAAagB,WAAa,QAGhClkE,EAAIumD,YAAcvmD,EAAI8J,iBAGxB,SAASq6D,GAAQjI,EAAQD,EAAMc,EAAQuD,EAAUvE,EAAUwE,EAAYhE,EAAe6H,GACpF,IAAIpkE,EAGAqkE,EAFAnJ,EAAWgB,EAAOrD,GAClByL,EAAWpJ,EAASpkE,QAAQytE,OA2BhC,OAxBI93E,OAAO29D,aAAgBkK,GAAeC,GAMxCv0D,EAAMnN,SAAS+O,YAAY,SAC3B5B,EAAIuR,UAAU,QAAQ,GAAM,IAN5BvR,EAAM,IAAIoqD,YAAY,OAAQ,CAC5BuS,SAAS,EACTpW,YAAY,IAOhBvmD,EAAIqJ,GAAK4yD,EACTj8D,EAAIoJ,KAAO8yD,EACXl8D,EAAIq3D,QAAU0F,EACd/8D,EAAIwkE,YAAclE,EAClBtgE,EAAIykE,QAAU1I,GAAYE,EAC1Bj8D,EAAI0kE,YAAcnE,GAAcvK,EAAQiG,GACxCj8D,EAAIokE,gBAAkBA,EACtBpkE,EAAIu8D,cAAgBA,EACpBL,EAAOr6D,cAAc7B,GAEjBskE,IACFD,EAASC,EAAS5/E,KAAKw2E,EAAUl7D,EAAKu8D,IAGjC8H,EAGT,SAASM,GAAkBhlE,GACzBA,EAAG23D,WAAY,EAGjB,SAASsN,KACP3F,IAAU,EAGZ,SAAS4F,GAAa7kE,EAAKwgE,EAAUtF,GACnC,IAAI5iC,EAAO09B,EAAQ9tD,EAAUgzD,EAASv7D,GAAIu7D,EAASpkE,QAAQwgE,YACvDwN,EAAS,GACb,OAAOtE,EAAWxgE,EAAIkiE,QAAU5pC,EAAK9pB,MAAQs2D,GAAU9kE,EAAIkiE,SAAW5pC,EAAK9pB,OAASxO,EAAImiE,QAAU7pC,EAAKtqB,QAAUhO,EAAIkiE,SAAW5pC,EAAKlqB,KAAOpO,EAAIkiE,QAAU5pC,EAAK9pB,OAASxO,EAAImiE,QAAU7pC,EAAKpqB,KAAOlO,EAAIkiE,SAAW5pC,EAAK9pB,OAASxO,EAAImiE,QAAU7pC,EAAKtqB,OAAS82D,EAG7P,SAASC,GAAkB/kE,EAAKziB,EAAQgjF,EAAYC,EAAUgC,EAAeE,EAAuBD,EAAYuC,GAC9G,IAAIC,EAAczE,EAAWxgE,EAAImiE,QAAUniE,EAAIkiE,QAC3CgD,EAAe1E,EAAWD,EAAWz1C,OAASy1C,EAAW5iE,MACzDwnE,EAAW3E,EAAWD,EAAWryD,IAAMqyD,EAAWnyD,KAClDg3D,EAAW5E,EAAWD,EAAWvyD,OAASuyD,EAAW/xD,MACrD62D,GAAS,EAEb,IAAK5C,EAEH,GAAIuC,GAAgBvG,GAAqByG,EAAe1C,GAQtD,IALK1D,KAA4C,IAAlBN,GAAsByG,EAAcE,EAAWD,EAAexC,EAAwB,EAAIuC,EAAcG,EAAWF,EAAexC,EAAwB,KAEvL5D,IAAwB,GAGrBA,GAOHuG,GAAS,OALT,GAAsB,IAAlB7G,GAAsByG,EAAcE,EAAW1G,GACjDwG,EAAcG,EAAW3G,GACzB,OAAQD,QAOZ,GAAIyG,EAAcE,EAAWD,GAAgB,EAAI1C,GAAiB,GAAKyC,EAAcG,EAAWF,GAAgB,EAAI1C,GAAiB,EACnI,OAAO8C,GAAoB/nF,GAOjC,OAFA8nF,EAASA,GAAU5C,EAEf4C,IAEEJ,EAAcE,EAAWD,EAAexC,EAAwB,GAAKuC,EAAcG,EAAWF,EAAexC,EAAwB,GAChIuC,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAIrD,EAUT,SAASI,GAAoB/nF,GAC3B,OAAI+H,EAAMy3E,IAAUz3E,EAAM/H,GACjB,GAEC,EAWZ,SAASgoF,GAAY5lE,GACnB,IAAI3f,EAAM2f,EAAG4d,QAAU5d,EAAGpN,UAAYoN,EAAGmiB,IAAMniB,EAAGolC,KAAOplC,EAAG7M,YACxDtV,EAAIwC,EAAItC,OACR8nF,EAAM,EAEV,MAAOhoF,IACLgoF,GAAOxlF,EAAIgjD,WAAWxlD,GAGxB,OAAOgoF,EAAIvlF,SAAS,IAGtB,SAASwlF,GAAuBlsD,GAC9B2lD,GAAkBxhF,OAAS,EAC3B,IAAIgoF,EAASnsD,EAAKnT,qBAAqB,SACnCu/D,EAAMD,EAAOhoF,OAEjB,MAAOioF,IAAO,CACZ,IAAIhmE,EAAK+lE,EAAOC,GAChBhmE,EAAGimE,SAAW1G,GAAkB9hF,KAAKuiB,IAIzC,SAASkmE,GAAUj0E,GACjB,OAAOM,WAAWN,EAAI,GAGxB,SAASk0E,GAAgBpjF,GACvB,OAAOuP,aAAavP,GA3yCtBy0E,GAAS58D,UAET,CACE+hB,YAAa66C,GACbmL,iBAAkB,SAA0B/kF,GACrC8E,KAAKsd,GAAG+B,SAASnkB,IAAWA,IAAW8E,KAAKsd,KAC/C4+D,GAAa,OAGjBwH,cAAe,SAAuB/lE,EAAKziB,GACzC,MAAyC,oBAA3B8E,KAAKyU,QAAQqkD,UAA2B94D,KAAKyU,QAAQqkD,UAAUz2D,KAAKrC,KAAM2d,EAAKziB,EAAQw/E,IAAU16E,KAAKyU,QAAQqkD,WAE9H6oB,YAAa,SAEbhkE,GACE,GAAKA,EAAIumD,WAAT,CAEA,IAAIx0D,EAAQ1P,KACRsd,EAAKtd,KAAKsd,GACV7I,EAAUzU,KAAKyU,QACfksE,EAAkBlsE,EAAQksE,gBAC1BnvE,EAAOmM,EAAInM,KACXo9D,EAAQjxD,EAAIgiE,SAAWhiE,EAAIgiE,QAAQ,IAAMhiE,EAAIuwD,aAAmC,UAApBvwD,EAAIuwD,aAA2BvwD,EAC3FziB,GAAU0zE,GAASjxD,GAAKziB,OACxByoF,EAAiBhmE,EAAIziB,OAAOgyE,aAAevvD,EAAI5L,MAAQ4L,EAAI5L,KAAK,IAAM4L,EAAI7L,cAAgB6L,EAAI7L,eAAe,KAAO5W,EACpHP,EAAS8Z,EAAQ9Z,OAKrB,GAHAyoF,GAAuB9lE,IAGnBo9D,MAIA,wBAAwBx3E,KAAKsO,IAAwB,IAAfmM,EAAIyrC,QAAgB30C,EAAQuP,YAKlE2/D,EAAeC,oBAInB1oF,EAASy3E,EAAQz3E,EAAQuZ,EAAQwgE,UAAW33D,GAAI,KAE5CpiB,IAAUA,EAAOm9E,WAIjByC,KAAe5/E,GAAnB,CASA,GAHA4+E,GAAW72E,EAAM/H,GACjB8+E,GAAoB/2E,EAAM/H,EAAQuZ,EAAQwgE,WAEpB,oBAAXt6E,GACT,GAAIA,EAAO0H,KAAKrC,KAAM2d,EAAKziB,EAAQ8E,MAcjC,OAbA07E,GAAe,CACb7C,SAAUnpE,EACV+pE,OAAQkK,EACR9mF,KAAM,SACN68E,SAAUx+E,EACV0+E,KAAMt8D,EACNu8D,OAAQv8D,IAGVs7D,GAAY,SAAUlpE,EAAO,CAC3BiO,IAAKA,SAEPgjE,GAAmBhjE,EAAIumD,YAAcvmD,EAAI8J,uBAGtC,GAAI9sB,IACTA,EAASA,EAAOmD,MAAM,KAAKyoB,MAAK,SAAU0xB,GAGxC,GAFAA,EAAW06B,EAAQgR,EAAgB1rC,EAASjiC,OAAQsH,GAAI,GAEpD26B,EAaF,OAZAyjC,GAAe,CACb7C,SAAUnpE,EACV+pE,OAAQxhC,EACRp7C,KAAM,SACN68E,SAAUx+E,EACV2+E,OAAQv8D,EACRs8D,KAAMt8D,IAGRs7D,GAAY,SAAUlpE,EAAO,CAC3BiO,IAAKA,KAEA,KAIPhjB,GAEF,YADAgmF,GAAmBhjE,EAAIumD,YAAcvmD,EAAI8J,kBAKzChT,EAAQyrE,SAAWvN,EAAQgR,EAAgBlvE,EAAQyrE,OAAQ5iE,GAAI,IAKnEtd,KAAK6jF,kBAAkBlmE,EAAKixD,EAAO1zE,MAErC2oF,kBAAmB,SAEnBlmE,EAEAixD,EAEA1zE,GACE,IAII4oF,EAJAp0E,EAAQ1P,KACRsd,EAAK5N,EAAM4N,GACX7I,EAAU/E,EAAM+E,QAChB41D,EAAgB/sD,EAAG+sD,cAGvB,GAAInvE,IAAWw/E,IAAUx/E,EAAO8V,aAAesM,EAAI,CACjD,IAAI2gE,EAAWtK,EAAQz4E,GAwEvB,GAvEAu+E,GAASn8D,EACTo9D,GAASx/E,EACTy/E,GAAWD,GAAO1pE,WAClB6pE,GAASH,GAAOn6D,YAChBu6D,GAAa5/E,EACbygF,GAAclnE,EAAQikD,MACtBoc,GAASE,QAAU0F,GACnBkB,GAAS,CACP1gF,OAAQw/E,GACRmF,SAAUjR,GAASjxD,GAAKkiE,QACxBC,SAAUlR,GAASjxD,GAAKmiE,SAE1B9D,GAAkBJ,GAAOiE,QAAU5B,EAASlyD,KAC5CkwD,GAAiBL,GAAOkE,QAAU7B,EAASpyD,IAC3C7rB,KAAK+jF,QAAUnV,GAASjxD,GAAKkiE,QAC7B7/E,KAAKgkF,QAAUpV,GAASjxD,GAAKmiE,QAC7BpF,GAAO3/D,MAAM,eAAiB,MAE9B+oE,EAAc,WACZlL,GAAY,aAAclpE,EAAO,CAC/BiO,IAAKA,IAGHm3D,GAASgE,cACXppE,EAAMu0E,WAORv0E,EAAMw0E,6BAED/R,GAAWziE,EAAMgyE,kBACpBhH,GAAOzF,WAAY,GAIrBvlE,EAAMy0E,kBAAkBxmE,EAAKixD,GAG7B8M,GAAe,CACb7C,SAAUnpE,EACV7S,KAAM,SACNq9E,cAAev8D,IAIjB3N,EAAY0qE,GAAQjmE,EAAQ+rE,aAAa,KAI3C/rE,EAAQisE,OAAO5iF,MAAM,KAAKvC,SAAQ,SAAU08C,GAC1Crf,EAAK8hD,GAAQziC,EAASjiC,OAAQssE,OAEhC18C,EAAGykC,EAAe,WAAYqV,IAC9B95C,EAAGykC,EAAe,YAAaqV,IAC/B95C,EAAGykC,EAAe,YAAaqV,IAC/B95C,EAAGykC,EAAe,UAAW36D,EAAMu0E,SACnCr+C,EAAGykC,EAAe,WAAY36D,EAAMu0E,SACpCr+C,EAAGykC,EAAe,cAAe36D,EAAMu0E,SAEnC9R,GAAWnyE,KAAK0hF,kBAClB1hF,KAAKyU,QAAQysE,oBAAsB,EACnCxG,GAAOzF,WAAY,GAGrB2D,GAAY,aAAc54E,KAAM,CAC9B2d,IAAKA,KAGHlJ,EAAQ6yC,OAAW7yC,EAAQwsE,mBAAoBrS,GAAY5uE,KAAK0hF,kBAAqBxP,GAAQD,GAkB/F6R,QAlB6G,CAC7G,GAAIhP,GAASgE,cAGX,YAFA94E,KAAKikF,UAQPr+C,EAAGykC,EAAe,UAAW36D,EAAM00E,qBACnCx+C,EAAGykC,EAAe,WAAY36D,EAAM00E,qBACpCx+C,EAAGykC,EAAe,cAAe36D,EAAM00E,qBACvCx+C,EAAGykC,EAAe,YAAa36D,EAAM20E,8BACrCz+C,EAAGykC,EAAe,YAAa36D,EAAM20E,8BACrC5vE,EAAQgtE,gBAAkB77C,EAAGykC,EAAe,cAAe36D,EAAM20E,8BACjE30E,EAAM40E,gBAAkBz0E,WAAWi0E,EAAarvE,EAAQ6yC,UAM9D+8B,6BAA8B,SAE9BtgF,GACE,IAAI6qE,EAAQ7qE,EAAE47E,QAAU57E,EAAE47E,QAAQ,GAAK57E,EAEnCvC,KAAKgF,IAAIhF,KAAKygB,IAAI2sD,EAAMiR,QAAU7/E,KAAK+jF,QAASviF,KAAKygB,IAAI2sD,EAAMkR,QAAU9/E,KAAKgkF,UAAYxiF,KAAKiF,MAAMzG,KAAKyU,QAAQysE,qBAAuBlhF,KAAK0hF,iBAAmBt3E,OAAO+2E,kBAAoB,KAC9LnhF,KAAKokF,uBAGTA,oBAAqB,WACnB1J,IAAU4H,GAAkB5H,IAC5B9qE,aAAa5P,KAAKskF,iBAElBtkF,KAAKkkF,6BAEPA,0BAA2B,WACzB,IAAI7Z,EAAgBrqE,KAAKsd,GAAG+sD,cAC5BzgC,EAAIygC,EAAe,UAAWrqE,KAAKokF,qBACnCx6C,EAAIygC,EAAe,WAAYrqE,KAAKokF,qBACpCx6C,EAAIygC,EAAe,cAAerqE,KAAKokF,qBACvCx6C,EAAIygC,EAAe,YAAarqE,KAAKqkF,8BACrCz6C,EAAIygC,EAAe,YAAarqE,KAAKqkF,8BACrCz6C,EAAIygC,EAAe,cAAerqE,KAAKqkF,+BAEzCF,kBAAmB,SAEnBxmE,EAEAixD,GACEA,EAAQA,GAA4B,SAAnBjxD,EAAIuwD,aAA0BvwD,GAE1C3d,KAAK0hF,iBAAmB9S,EACvB5uE,KAAKyU,QAAQgtE,eACf77C,EAAGp1B,SAAU,cAAexQ,KAAKukF,cAEjC3+C,EAAGp1B,SADMo+D,EACI,YAEA,YAFa5uE,KAAKukF,eAKjC3+C,EAAG80C,GAAQ,UAAW16E,MACtB4lC,EAAG6zC,GAAQ,YAAaz5E,KAAKwkF,eAG/B,IACMh0E,SAAS80B,UAEXk+C,IAAU,WACRhzE,SAAS80B,UAAUqZ,WAGrBv0C,OAAOs9B,eAAe2P,kBAExB,MAAOhsC,MAEXo5E,aAAc,SAAsBC,EAAU/mE,GAI5C,GAFA2+D,IAAsB,EAElB7C,IAAUiB,GAAQ,CACpB9B,GAAY,cAAe54E,KAAM,CAC/B2d,IAAKA,IAGH3d,KAAK0hF,iBACP97C,EAAGp1B,SAAU,WAAYwvE,IAG3B,IAAIvrE,EAAUzU,KAAKyU,SAElBiwE,GAAY10E,EAAY0qE,GAAQjmE,EAAQgsE,WAAW,GACpDzwE,EAAY0qE,GAAQjmE,EAAQ8rE,YAAY,GACxCzL,GAAShK,OAAS9qE,KAClB0kF,GAAY1kF,KAAK2kF,eAEjBjJ,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,QACNq9E,cAAev8D,SAGjB3d,KAAK4kF,YAGTC,iBAAkB,WAChB,GAAIhJ,GAAU,CACZ77E,KAAK+jF,OAASlI,GAASgE,QACvB7/E,KAAKgkF,OAASnI,GAASiE,QAEvB1E,KAEA,IAAIlgF,EAASsV,SAASs0E,iBAAiBjJ,GAASgE,QAAShE,GAASiE,SAC9D3iF,EAASjC,EAEb,MAAOA,GAAUA,EAAOgyE,WAAY,CAElC,GADAhyE,EAASA,EAAOgyE,WAAW4X,iBAAiBjJ,GAASgE,QAAShE,GAASiE,SACnE5kF,IAAWiC,EAAQ,MACvBA,EAASjC,EAKX,GAFAw/E,GAAO1pE,WAAWwlE,GAASyJ,iBAAiB/kF,GAExCiC,EACF,EAAG,CACD,GAAIA,EAAOq5E,GAAU,CACnB,IAAIuO,OAAW,EAQf,GAPAA,EAAW5nF,EAAOq5E,GAASuJ,YAAY,CACrCF,QAAShE,GAASgE,QAClBC,QAASjE,GAASiE,QAClB5kF,OAAQA,EACRu+E,OAAQt8E,IAGN4nF,IAAa/kF,KAAKyU,QAAQssE,eAC5B,MAIJ7lF,EAASiC,QAGJA,EAASA,EAAO6T,YAGzBsqE,OAGJiJ,aAAc,SAEd5mE,GACE,GAAIi+D,GAAQ,CACV,IAAInnE,EAAUzU,KAAKyU,QACf8sE,EAAoB9sE,EAAQ8sE,kBAC5BC,EAAiB/sE,EAAQ+sE,eACzB5S,EAAQjxD,EAAIgiE,QAAUhiE,EAAIgiE,QAAQ,GAAKhiE,EACvCqnE,EAAcpK,IAAW3H,EAAO2H,IAAS,GACzCzG,EAASyG,IAAWoK,GAAeA,EAAYxsE,EAC/C47D,EAASwG,IAAWoK,GAAeA,EAAYjxE,EAC/CkxE,EAAuBlI,IAA2BV,IAAuBjH,EAAwBiH,IACjG6I,GAAMtW,EAAMiR,QAAUjE,GAAOiE,QAAU2B,EAAex5D,IAAMmsD,GAAU,IAAM8Q,EAAuBA,EAAqB,GAAKtI,GAAiC,GAAK,IAAMxI,GAAU,GACnLgR,GAAMvW,EAAMkR,QAAUlE,GAAOkE,QAAU0B,EAAeltE,IAAM8/D,GAAU,IAAM6Q,EAAuBA,EAAqB,GAAKtI,GAAiC,GAAK,IAAMvI,GAAU,GAEvL,IAAKU,GAAShK,SAAWwR,GAAqB,CAC5C,GAAIiF,GAAqB//E,KAAKgF,IAAIhF,KAAKygB,IAAI2sD,EAAMiR,QAAU7/E,KAAK+jF,QAASviF,KAAKygB,IAAI2sD,EAAMkR,QAAU9/E,KAAKgkF,SAAWzC,EAChH,OAGFvhF,KAAKwkF,aAAa7mE,GAAK,GAGzB,GAAIi9D,GAAS,CACPoK,GACFA,EAAYjhF,GAAKmhF,GAAMpJ,IAAU,GACjCkJ,EAAYr8E,GAAKw8E,GAAMpJ,IAAU,IAEjCiJ,EAAc,CACZxsE,EAAG,EACHmV,EAAG,EACHnY,EAAG,EACHzB,EAAG,EACHhQ,EAAGmhF,EACHv8E,EAAGw8E,GAIP,IAAIC,EAAY,UAAU/nF,OAAO2nF,EAAYxsE,EAAG,KAAKnb,OAAO2nF,EAAYr3D,EAAG,KAAKtwB,OAAO2nF,EAAYxvE,EAAG,KAAKnY,OAAO2nF,EAAYjxE,EAAG,KAAK1W,OAAO2nF,EAAYjhF,EAAG,KAAK1G,OAAO2nF,EAAYr8E,EAAG,KACvL8mE,EAAImL,GAAS,kBAAmBwK,GAChC3V,EAAImL,GAAS,eAAgBwK,GAC7B3V,EAAImL,GAAS,cAAewK,GAC5B3V,EAAImL,GAAS,YAAawK,GAC1BtJ,GAASoJ,EACTnJ,GAASoJ,EACTtJ,GAAWjN,EAGbjxD,EAAIumD,YAAcvmD,EAAI8J,mBAG1Bk9D,aAAc,WAGZ,IAAK/J,GAAS,CACZ,IAAIn3D,EAAYzjB,KAAKyU,QAAQ6sE,eAAiB9wE,SAASgQ,KAAOi5D,GAC1DxjC,EAAO09B,EAAQ+G,IAAQ,EAAMqC,IAAyB,EAAMt5D,GAC5DhP,EAAUzU,KAAKyU,QAEnB,GAAIsoE,GAAyB,CAE3BV,GAAsB54D,EAEtB,MAAgD,WAAzCgsD,EAAI4M,GAAqB,aAAsE,SAA1C5M,EAAI4M,GAAqB,cAA2BA,KAAwB7rE,SACtI6rE,GAAsBA,GAAoBrrE,WAGxCqrE,KAAwB7rE,SAASgQ,MAAQ67D,KAAwB7rE,SAAS+6D,iBACxE8Q,KAAwB7rE,WAAU6rE,GAAsB5I,KAC5Dx9B,EAAKpqB,KAAOwwD,GAAoBh1C,UAChC4O,EAAKlqB,MAAQswD,GAAoBxT,YAEjCwT,GAAsB5I,IAGxBkJ,GAAmCvH,EAAwBiH,IAG7DzB,GAAUF,GAAOl2B,WAAU,GAC3Bx0C,EAAY4qE,GAASnmE,EAAQ8rE,YAAY,GACzCvwE,EAAY4qE,GAASnmE,EAAQ4sE,eAAe,GAC5CrxE,EAAY4qE,GAASnmE,EAAQgsE,WAAW,GACxChR,EAAImL,GAAS,aAAc,IAC3BnL,EAAImL,GAAS,YAAa,IAC1BnL,EAAImL,GAAS,aAAc,cAC3BnL,EAAImL,GAAS,SAAU,GACvBnL,EAAImL,GAAS,MAAO3kC,EAAKpqB,KACzB4jD,EAAImL,GAAS,OAAQ3kC,EAAKlqB,MAC1B0jD,EAAImL,GAAS,QAAS3kC,EAAK36B,OAC3Bm0D,EAAImL,GAAS,SAAU3kC,EAAKxN,QAC5BgnC,EAAImL,GAAS,UAAW,OACxBnL,EAAImL,GAAS,WAAYmC,GAA0B,WAAa,SAChEtN,EAAImL,GAAS,SAAU,UACvBnL,EAAImL,GAAS,gBAAiB,QAC9B9F,GAASC,MAAQ6F,GACjBn3D,EAAU9R,YAAYipE,IAEtBnL,EAAImL,GAAS,mBAAoBoB,GAAkBtoE,SAASknE,GAAQ7/D,MAAMO,OAAS,IAAM,KAAO2gE,GAAiBvoE,SAASknE,GAAQ7/D,MAAM0tB,QAAU,IAAM,OAG5J+7C,aAAc,SAEd7mE,EAEA+mE,GACE,IAAIh1E,EAAQ1P,KAER6gF,EAAeljE,EAAIkjE,aACnBpsE,EAAU/E,EAAM+E,QACpBmkE,GAAY,YAAa54E,KAAM,CAC7B2d,IAAKA,IAGHm3D,GAASgE,cACX94E,KAAKikF,WAKPrL,GAAY,aAAc54E,MAErB80E,GAASgE,gBACZa,GAAU/5C,EAAM86C,IAChBf,GAAQ1E,WAAY,EACpB0E,GAAQ5+D,MAAM,eAAiB,GAE/B/a,KAAKqlF,aAELr1E,EAAY2pE,GAAS35E,KAAKyU,QAAQ+rE,aAAa,GAC/C1L,GAASl1C,MAAQ+5C,IAInBjqE,EAAM41E,QAAU9B,IAAU,WACxB5K,GAAY,QAASlpE,GACjBolE,GAASgE,gBAERppE,EAAM+E,QAAQ6rE,mBACjB7G,GAAOn5D,aAAaq5D,GAASe,IAG/BhrE,EAAM21E,aAEN3J,GAAe,CACb7C,SAAUnpE,EACV7S,KAAM,eAGT6nF,GAAY10E,EAAY0qE,GAAQjmE,EAAQgsE,WAAW,GAEhDiE,GACFnI,IAAkB,EAClB7sE,EAAM61E,QAAUjX,YAAY5+D,EAAMm1E,iBAAkB,MAGpDj7C,EAAIp5B,SAAU,UAAWd,EAAMu0E,SAC/Br6C,EAAIp5B,SAAU,WAAYd,EAAMu0E,SAChCr6C,EAAIp5B,SAAU,cAAed,EAAMu0E,SAE/BpD,IACFA,EAAa2E,cAAgB,OAC7B/wE,EAAQmsE,SAAWnsE,EAAQmsE,QAAQv+E,KAAKqN,EAAOmxE,EAAcnG,KAG/D90C,EAAGp1B,SAAU,OAAQd,GAErB+/D,EAAIiL,GAAQ,YAAa,kBAG3B4B,IAAsB,EACtB5sE,EAAM+1E,aAAejC,GAAU9zE,EAAM+0E,aAAa5pE,KAAKnL,EAAOg1E,EAAU/mE,IACxEioB,EAAGp1B,SAAU,cAAed,GAC5BurE,IAAQ,EAEJ7I,GACF3C,EAAIj/D,SAASgQ,KAAM,cAAe,UAItCu/D,YAAa,SAEbpiE,GACE,IAEIsgE,EACAC,EACAwH,EAOAvH,EAXA7gE,EAAKtd,KAAKsd,GACVpiB,EAASyiB,EAAIziB,OAIbuZ,EAAUzU,KAAKyU,QACfikD,EAAQjkD,EAAQikD,MAChBwiB,EAAiBpG,GAAShK,OAC1B6a,EAAUhK,KAAgBjjB,EAC1BktB,EAAUnxE,EAAQiZ,KAClBm4D,EAAe1L,IAAee,EAE9BxrE,EAAQ1P,KACR8lF,GAAiB,EAErB,IAAIlJ,GAAJ,CAgHA,QAN2B,IAAvBj/D,EAAI8J,gBACN9J,EAAIumD,YAAcvmD,EAAI8J,iBAGxBvsB,EAASy3E,EAAQz3E,EAAQuZ,EAAQwgE,UAAW33D,GAAI,GAChDyoE,EAAc,YACVjR,GAASgE,cAAe,OAAOgN,EAEnC,GAAIpL,GAAOr7D,SAAS1B,EAAIziB,SAAWA,EAAOm9E,UAAYn9E,EAAO+8E,YAAc/8E,EAAOg9E,YAAcxoE,EAAMs2E,wBAA0B9qF,EAC9H,OAAO+qF,GAAU,GAKnB,GAFA1J,IAAkB,EAEdrB,IAAmBzmE,EAAQuP,WAAa2hE,EAAUC,IAAYF,GAAUjM,GAAOp6D,SAASq7D,KAC1FP,KAAgBn6E,OAASA,KAAKw6E,YAAcmB,GAAY0D,UAAUr/E,KAAMk7E,EAAgBR,GAAQ/8D,KAAS+6C,EAAM4mB,SAASt/E,KAAMk7E,EAAgBR,GAAQ/8D,IAAO,CAI7J,GAHAwgE,EAA+C,aAApCn+E,KAAK0jF,cAAc/lE,EAAKziB,GACnC+iF,EAAWtK,EAAQ+G,IACnBqL,EAAc,iBACVjR,GAASgE,cAAe,OAAOgN,EAEnC,GAAIJ,EAiBF,OAhBA/K,GAAWlB,GAEX/wE,IAEA1I,KAAKqlF,aAELU,EAAc,UAETjR,GAASgE,gBACR+B,GACFpB,GAAOn5D,aAAao6D,GAAQG,IAE5BpB,GAAO9nE,YAAY+oE,KAIhBuL,GAAU,GAGnB,IAAIC,EAAcrgE,EAAUvI,EAAI7I,EAAQwgE,WAExC,IAAKiR,GAAe1D,GAAa7kE,EAAKwgE,EAAUn+E,QAAUkmF,EAAY7N,SAAU,CAE9E,GAAI6N,IAAgBxL,GAClB,OAAOuL,GAAU,GAYnB,GARIC,GAAe5oE,IAAOK,EAAIziB,SAC5BA,EAASgrF,GAGPhrF,IACFgjF,EAAavK,EAAQz4E,KAG0D,IAA7E4mF,GAAQrI,GAAQn8D,EAAIo9D,GAAQuD,EAAU/iF,EAAQgjF,EAAYvgE,IAAOziB,GAMnE,OALAwN,IACA4U,EAAG3L,YAAY+oE,IACfC,GAAWr9D,EAEXrX,IACOggF,GAAU,QAEd,GAAI/qF,EAAO8V,aAAesM,EAAI,CACnC4gE,EAAavK,EAAQz4E,GACrB,IACIirF,EAcAC,EAfAttB,EAAY,EAEZutB,EAAiB3L,GAAO1pE,aAAesM,EACvCgpE,GAAmBtI,GAAmBtD,GAAOrC,UAAYqC,GAAOnD,QAAU0G,EAAU/iF,EAAOm9E,UAAYn9E,EAAOq8E,QAAU2G,EAAYC,GACpIoI,EAAQpI,EAAW,MAAQ,OAC3BqI,EAAkBnS,EAAen5E,EAAQ,MAAO,QAAUm5E,EAAeqG,GAAQ,MAAO,OACxF+L,EAAeD,EAAkBA,EAAgBn/C,eAAY,EAWjE,GATI60C,KAAehhF,IACjBirF,EAAwBjI,EAAWqI,GACnC9J,IAAwB,EACxBC,IAA0B4J,GAAmB7xE,EAAQ2rE,YAAciG,GAGrEvtB,EAAY4pB,GAAkB/kE,EAAKziB,EAAQgjF,EAAYC,EAAUmI,EAAkB,EAAI7xE,EAAQ0rE,cAAgD,MAAjC1rE,EAAQ4rE,sBAAgC5rE,EAAQ0rE,cAAgB1rE,EAAQ4rE,sBAAuB3D,GAAwBR,KAAehhF,GAGlO,IAAd49D,EAAiB,CAEnB,IAAI4tB,EAAYzjF,EAAMy3E,IAEtB,GACEgM,GAAa5tB,EACbstB,EAAUzL,GAASj6E,SAASgmF,SACrBN,IAAwC,SAA5B3W,EAAI2W,EAAS,YAAyBA,IAAYxL,KAIzE,GAAkB,IAAd9hB,GAAmBstB,IAAYlrF,EACjC,OAAO+qF,GAAU,GAGnB/J,GAAahhF,EACbihF,GAAgBrjB,EAChB,IAAIv4C,EAAcrlB,EAAOg8D,mBACrB/hB,GAAQ,EACZA,EAAsB,IAAd2jB,EAER,IAAI6tB,EAAa7E,GAAQrI,GAAQn8D,EAAIo9D,GAAQuD,EAAU/iF,EAAQgjF,EAAYvgE,EAAKw3B,GAEhF,IAAmB,IAAfwxC,EA4BF,OA3BmB,IAAfA,IAAoC,IAAhBA,IACtBxxC,EAAuB,IAAfwxC,GAGV/J,IAAU,EACV/sE,WAAW0yE,GAAW,IACtB75E,IAEIysC,IAAU50B,EACZjD,EAAG3L,YAAY+oE,IAEfx/E,EAAO8V,WAAWsP,aAAao6D,GAAQvlC,EAAQ50B,EAAcrlB,GAI3DsrF,GACFtQ,EAASsQ,EAAiB,EAAGC,EAAeD,EAAgBn/C,WAG9DszC,GAAWD,GAAO1pE,gBAGY5O,IAA1B+jF,GAAwCzJ,KAC1CN,GAAqB56E,KAAKygB,IAAIkkE,EAAwBxS,EAAQz4E,GAAQqrF,KAGxEtgF,IACOggF,GAAU,GAIrB,GAAI3oE,EAAG+B,SAASq7D,IACd,OAAOuL,GAAU,GAIrB,OAAO,EAzPP,SAASF,EAAclpF,EAAM+pF,GAC3BhO,GAAY/7E,EAAM6S,EAAOzU,EAAc,CACrC0iB,IAAKA,EACLgoE,QAASA,EACTkB,KAAM1I,EAAW,WAAa,aAC9BuH,OAAQA,EACRzH,SAAUA,EACVC,WAAYA,EACZ0H,QAASA,EACTC,aAAcA,EACd3qF,OAAQA,EACR+qF,UAAWA,EACX/D,OAAQ,SAAgBhnF,EAAQi6C,GAC9B,OAAO2sC,GAAQrI,GAAQn8D,EAAIo9D,GAAQuD,EAAU/iF,EAAQy4E,EAAQz4E,GAASyiB,EAAKw3B,IAE7ElvC,QAASA,GACR2gF,IAIL,SAASl+E,IACPq9E,EAAc,4BAEdr2E,EAAMknE,wBAEFlnE,IAAUm2E,GACZA,EAAajP,wBAKjB,SAASqP,EAAUa,GAuDjB,OAtDAf,EAAc,oBAAqB,CACjCe,UAAWA,IAGTA,IAEEnB,EACFzK,EAAemK,aAEfnK,EAAe6L,WAAWr3E,GAGxBA,IAAUm2E,IAEZ71E,EAAY0qE,GAAQP,GAAcA,GAAY1lE,QAAQ8rE,WAAarF,EAAezmE,QAAQ8rE,YAAY,GACtGvwE,EAAY0qE,GAAQjmE,EAAQ8rE,YAAY,IAGtCpG,KAAgBzqE,GAASA,IAAUolE,GAAShK,OAC9CqP,GAAczqE,EACLA,IAAUolE,GAAShK,QAAUqP,KACtCA,GAAc,MAIZ0L,IAAiBn2E,IACnBA,EAAMs2E,sBAAwB9qF,GAGhCwU,EAAMynE,YAAW,WACf4O,EAAc,6BACdr2E,EAAMs2E,sBAAwB,QAG5Bt2E,IAAUm2E,IACZA,EAAa1O,aACb0O,EAAaG,sBAAwB,QAKrC9qF,IAAWw/E,KAAWA,GAAOrC,UAAYn9E,IAAWoiB,IAAOpiB,EAAOm9E,YACpE6D,GAAa,MAIVznE,EAAQssE,gBAAmBpjE,EAAI87D,QAAUv+E,IAAWsV,WACvDkqE,GAAO1pE,WAAWwlE,GAASyJ,iBAAiBtiE,EAAIziB,SAG/C4rF,GAAapH,GAA8B/hE,KAG7ClJ,EAAQssE,gBAAkBpjE,EAAIkK,iBAAmBlK,EAAIkK,kBAC/Ci+D,GAAiB,EAI1B,SAAS7/E,IACP8zE,GAAW92E,EAAMy3E,IACjBT,GAAoBh3E,EAAMy3E,GAAQjmE,EAAQwgE,WAE1CyG,GAAe,CACb7C,SAAUnpE,EACV7S,KAAM,SACN+8E,KAAMt8D,EACNy8D,SAAUA,GACVE,kBAAmBA,GACnBC,cAAev8D,MAuJrBqoE,sBAAuB,KACvBgB,eAAgB,WACdp9C,EAAIp5B,SAAU,YAAaxQ,KAAKukF,cAChC36C,EAAIp5B,SAAU,YAAaxQ,KAAKukF,cAChC36C,EAAIp5B,SAAU,cAAexQ,KAAKukF,cAClC36C,EAAIp5B,SAAU,WAAYkvE,IAC1B91C,EAAIp5B,SAAU,YAAakvE,IAC3B91C,EAAIp5B,SAAU,YAAakvE,KAE7BuH,aAAc,WACZ,IAAI5c,EAAgBrqE,KAAKsd,GAAG+sD,cAC5BzgC,EAAIygC,EAAe,UAAWrqE,KAAKikF,SACnCr6C,EAAIygC,EAAe,WAAYrqE,KAAKikF,SACpCr6C,EAAIygC,EAAe,YAAarqE,KAAKikF,SACrCr6C,EAAIygC,EAAe,cAAerqE,KAAKikF,SACvCr6C,EAAIp5B,SAAU,cAAexQ,OAE/BikF,QAAS,SAETtmE,GACE,IAAIL,EAAKtd,KAAKsd,GACV7I,EAAUzU,KAAKyU,QAEnBslE,GAAW92E,EAAMy3E,IACjBT,GAAoBh3E,EAAMy3E,GAAQjmE,EAAQwgE,WAC1C2D,GAAY,OAAQ54E,KAAM,CACxB2d,IAAKA,IAEPg9D,GAAWD,IAAUA,GAAO1pE,WAE5B+oE,GAAW92E,EAAMy3E,IACjBT,GAAoBh3E,EAAMy3E,GAAQjmE,EAAQwgE,WAEtCH,GAASgE,gBAMbwD,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBrO,cAAcpuE,KAAKulF,SACnB31E,aAAa5P,KAAKskF,iBAElBb,GAAgBzjF,KAAKslF,SAErB7B,GAAgBzjF,KAAKylF,cAGjBzlF,KAAK0hF,kBACP93C,EAAIp5B,SAAU,OAAQxQ,MACtB4pC,EAAItsB,EAAI,YAAatd,KAAKwkF,eAG5BxkF,KAAKgnF,iBAELhnF,KAAKinF,eAED7U,GACF3C,EAAIj/D,SAASgQ,KAAM,cAAe,IAGpCivD,EAAIiL,GAAQ,YAAa,IAErB/8D,IACEs9D,KACFt9D,EAAIumD,YAAcvmD,EAAI8J,kBACrBhT,EAAQqsE,YAAcnjE,EAAIkK,mBAG7B+yD,IAAWA,GAAQ5pE,YAAc4pE,GAAQ5pE,WAAWH,YAAY+pE,KAE5DnB,KAAWkB,IAAYR,IAA2C,UAA5BA,GAAYK,cAEpDb,IAAWA,GAAQ3oE,YAAc2oE,GAAQ3oE,WAAWH,YAAY8oE,IAG9De,KACE16E,KAAK0hF,iBACP93C,EAAI8wC,GAAQ,UAAW16E,MAGzBsiF,GAAkB5H,IAElBA,GAAO3/D,MAAM,eAAiB,GAG1BkgE,KAAUqB,IACZtsE,EAAY0qE,GAAQP,GAAcA,GAAY1lE,QAAQ8rE,WAAavgF,KAAKyU,QAAQ8rE,YAAY,GAG9FvwE,EAAY0qE,GAAQ16E,KAAKyU,QAAQ+rE,aAAa,GAE9C9E,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,WACN+8E,KAAMe,GACNZ,SAAU,KACVE,kBAAmB,KACnBC,cAAev8D,IAGb87D,KAAWkB,IACTZ,IAAY,IAEd2B,GAAe,CACbjC,OAAQkB,GACR99E,KAAM,MACN+8E,KAAMe,GACNd,OAAQJ,GACRS,cAAev8D,IAIjB+9D,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,SACN+8E,KAAMe,GACNT,cAAev8D,IAIjB+9D,GAAe,CACbjC,OAAQkB,GACR99E,KAAM,OACN+8E,KAAMe,GACNd,OAAQJ,GACRS,cAAev8D,IAGjB+9D,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,OACN+8E,KAAMe,GACNT,cAAev8D,KAInBw8D,IAAeA,GAAY/vB,QAEvB2vB,KAAaD,IACXC,IAAY,IAEd2B,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,SACN+8E,KAAMe,GACNT,cAAev8D,IAGjB+9D,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,OACN+8E,KAAMe,GACNT,cAAev8D,KAMnBm3D,GAAShK,SAEK,MAAZiP,KAAkC,IAAdA,KACtBA,GAAWD,GACXG,GAAoBD,IAGtB0B,GAAe,CACb7C,SAAU74E,KACVnD,KAAM,MACN+8E,KAAMe,GACNT,cAAev8D,IAIjB3d,KAAKoqD,WA9ITpqD,KAAK4kF,YAqJTA,SAAU,WACRhM,GAAY,UAAW54E,MACvBy5E,GAASiB,GAASC,GAAWC,GAAUC,GAASlB,GAAUmB,GAAaC,GAAca,GAASC,GAAWZ,GAAQlB,GAAWE,GAAoBH,GAAWE,GAAoBkC,GAAaC,GAAgBhC,GAAcwB,GAAc7G,GAASE,QAAUF,GAASC,MAAQD,GAASl1C,MAAQk1C,GAAShK,OAAS,KAC/S+R,GAAkBthF,SAAQ,SAAU+hB,GAClCA,EAAGimE,SAAU,KAEf1G,GAAkBxhF,OAASygF,GAASC,GAAS,GAE/CmL,YAAa,SAEbvpE,GACE,OAAQA,EAAInM,MACV,IAAK,OACL,IAAK,UACHxR,KAAKikF,QAAQtmE,GAEb,MAEF,IAAK,YACL,IAAK,WACC+8D,KACF16E,KAAK+/E,YAAYpiE,GAEjBikE,GAAgBjkE,IAGlB,MAEF,IAAK,cACHA,EAAI8J,iBACJ,QAQN8M,QAAS,WAQP,IAPA,IACIjX,EADAivB,EAAQ,GAER7rC,EAAWV,KAAKsd,GAAG5c,SACnBvF,EAAI,EACJ+E,EAAIQ,EAASrF,OACboZ,EAAUzU,KAAKyU,QAEZtZ,EAAI+E,EAAG/E,IACZmiB,EAAK5c,EAASvF,GAEVw3E,EAAQr1D,EAAI7I,EAAQwgE,UAAWj1E,KAAKsd,IAAI,IAC1CivB,EAAMxxC,KAAKuiB,EAAGyH,aAAatQ,EAAQusE,aAAekC,GAAY5lE,IAIlE,OAAOivB,GAOT7e,KAAM,SAAc6e,GAClB,IAAIw6B,EAAQ,GACR0S,EAASz5E,KAAKsd,GAClBtd,KAAKu0B,UAAUh5B,SAAQ,SAAU8E,EAAIlF,GACnC,IAAImiB,EAAKm8D,EAAO/4E,SAASvF,GAErBw3E,EAAQr1D,EAAItd,KAAKyU,QAAQwgE,UAAWwE,GAAQ,KAC9C1S,EAAM1mE,GAAMid,KAEbtd,MACHusC,EAAMhxC,SAAQ,SAAU8E,GAClB0mE,EAAM1mE,KACRo5E,EAAO5oE,YAAYk2D,EAAM1mE,IACzBo5E,EAAO9nE,YAAYo1D,EAAM1mE,SAQ/B+pD,KAAM,WACJ,IAAI9lD,EAAQtE,KAAKyU,QAAQnQ,MACzBA,GAASA,EAAMkgB,KAAOlgB,EAAMkgB,IAAIxkB,OASlC2yE,QAAS,SAAmBr1D,EAAI8S,GAC9B,OAAOuiD,EAAQr1D,EAAI8S,GAAYpwB,KAAKyU,QAAQwgE,UAAWj1E,KAAKsd,IAAI,IASlEgR,OAAQ,SAAgBzxB,EAAMf,GAC5B,IAAI2Y,EAAUzU,KAAKyU,QAEnB,QAAc,IAAV3Y,EACF,OAAO2Y,EAAQ5X,GAEf,IAAI08E,EAAgBd,GAAcW,aAAap5E,KAAMnD,EAAMf,GAGzD2Y,EAAQ5X,GADmB,qBAAlB08E,EACOA,EAEAz9E,EAGL,UAATe,GACFkiF,GAActqE,IAQpBmR,QAAS,WACPgzD,GAAY,UAAW54E,MACvB,IAAIsd,EAAKtd,KAAKsd,GACdA,EAAGk5D,GAAW,KACd5sC,EAAItsB,EAAI,YAAatd,KAAK2hF,aAC1B/3C,EAAItsB,EAAI,aAActd,KAAK2hF,aAC3B/3C,EAAItsB,EAAI,cAAetd,KAAK2hF,aAExB3hF,KAAK0hF,kBACP93C,EAAItsB,EAAI,WAAYtd,MACpB4pC,EAAItsB,EAAI,YAAatd,OAIvB+P,MAAMmI,UAAU3c,QAAQ8G,KAAKib,EAAGM,iBAAiB,gBAAgB,SAAUN,GACzEA,EAAGyI,gBAAgB,gBAGrB/lB,KAAKikF,UAELjkF,KAAKkkF,4BAEL1H,GAAUt3D,OAAOs3D,GAAUl1E,QAAQtH,KAAKsd,IAAK,GAC7Ctd,KAAKsd,GAAKA,EAAK,MAEjB+nE,WAAY,WACV,IAAKtK,GAAa,CAEhB,GADAnC,GAAY,YAAa54E,MACrB80E,GAASgE,cAAe,OAC5BrJ,EAAIkK,GAAS,UAAW,QAEpB35E,KAAKyU,QAAQ6rE,mBAAqB3G,GAAQ3oE,YAC5C2oE,GAAQ3oE,WAAWH,YAAY8oE,IAGjCoB,IAAc,IAGlBgM,WAAY,SAAoB5M,GAC9B,GAAgC,UAA5BA,EAAYK,aAMhB,GAAIO,GAAa,CAEf,GADAnC,GAAY,YAAa54E,MACrB80E,GAASgE,cAAe,OAExBW,GAAOp6D,SAASq7D,MAAY16E,KAAKyU,QAAQikD,MAAM8mB,YACjD/F,GAAOn5D,aAAaq5D,GAASe,IACpBG,GACTpB,GAAOn5D,aAAaq5D,GAASkB,IAE7BpB,GAAO9nE,YAAYgoE,IAGjB35E,KAAKyU,QAAQikD,MAAM8mB,aACrBx/E,KAAKmK,QAAQuwE,GAAQf,IAGvBlK,EAAIkK,GAAS,UAAW,IACxBoB,IAAc,QAtBd/6E,KAAKqlF,eAwLPvI,IACFl3C,EAAGp1B,SAAU,aAAa,SAAUmN,IAC7Bm3D,GAAShK,QAAUwR,KAAwB3+D,EAAIumD,YAClDvmD,EAAI8J,oBAMVqtD,GAAS57D,MAAQ,CACf0sB,GAAIA,EACJgE,IAAKA,EACL6lC,IAAKA,EACL72C,KAAMA,EACNuuD,GAAI,SAAY7pE,EAAI8S,GAClB,QAASuiD,EAAQr1D,EAAI8S,EAAU9S,GAAI,IAErC1gB,OAAQA,EACRm5E,SAAUA,EACVpD,QAASA,EACT3iE,YAAaA,EACb4vB,MAAOA,EACP38B,MAAOA,EACPmD,SAAUo9E,GACV4D,eAAgB3D,GAChB4D,gBAAiBjK,GACjBzI,SAAUA,GAQZG,GAASxwD,IAAM,SAAU1L,GACvB,OAAOA,EAAQ49D,IAQjB1B,GAAS4D,MAAQ,WACf,IAAK,IAAI3rC,EAAO3xC,UAAUC,OAAQkS,EAAU,IAAIwC,MAAMg9B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFz/B,EAAQy/B,GAAQ5xC,UAAU4xC,GAGxBz/B,EAAQ,GAAG0sB,cAAgBlqB,QAAOxC,EAAUA,EAAQ,IACxDA,EAAQhS,SAAQ,SAAUo9E,GACxB,IAAKA,EAAOzgE,YAAcygE,EAAOzgE,UAAU+hB,YACzC,KAAM,gEAAgE58B,OAAO,GAAGO,SAASyE,KAAKs2E,IAG5FA,EAAOz/D,QAAO47D,GAAS57D,MAAQje,EAAc,GAAI65E,GAAS57D,MAAOy/D,EAAOz/D,QAC5Eu/D,GAAcC,MAAMC,OAUxB7D,GAASn8C,OAAS,SAAUrb,EAAI7I,GAC9B,OAAO,IAAIqgE,GAASx3D,EAAI7I,IAI1BqgE,GAAS9oC,QAAUA,EAEnB,IACIs7C,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPAC,GAAc,GAGdhgB,IAAY,EAMhB,SAASigB,KACP,SAASC,IAQP,IAAK,IAAIv4E,KAPTvP,KAAK2b,SAAW,CACdwpB,QAAQ,EACR4iD,kBAAmB,GACnBC,YAAa,GACbC,cAAc,GAGDjoF,KACQ,MAAjBuP,EAAGrR,OAAO,IAAkC,oBAAb8B,KAAKuP,KACtCvP,KAAKuP,GAAMvP,KAAKuP,GAAIsL,KAAK7a,OA4F/B,OAvFA8nF,EAAW5vE,UAAY,CACrB8iE,YAAa,SAAqB/9E,GAChC,IAAIi9E,EAAgBj9E,EAAKi9E,cAErBl6E,KAAK64E,SAAS6I,gBAChB97C,EAAGp1B,SAAU,WAAYxQ,KAAKkoF,mBAE1BloF,KAAKyU,QAAQgtE,eACf77C,EAAGp1B,SAAU,cAAexQ,KAAKmoF,2BACxBjO,EAAcyF,QACvB/5C,EAAGp1B,SAAU,YAAaxQ,KAAKmoF,2BAE/BviD,EAAGp1B,SAAU,YAAaxQ,KAAKmoF,4BAIrCC,kBAAmB,SAA2B/pC,GAC5C,IAAI67B,EAAgB77B,EAAM67B,cAGrBl6E,KAAKyU,QAAQ4zE,gBAAmBnO,EAAcT,QACjDz5E,KAAKkoF,kBAAkBhO,IAG3BoO,KAAM,WACAtoF,KAAK64E,SAAS6I,gBAChB93C,EAAIp5B,SAAU,WAAYxQ,KAAKkoF,oBAE/Bt+C,EAAIp5B,SAAU,cAAexQ,KAAKmoF,2BAClCv+C,EAAIp5B,SAAU,YAAaxQ,KAAKmoF,2BAChCv+C,EAAIp5B,SAAU,YAAaxQ,KAAKmoF,4BAGlCI,KACAC,KACAvS,KAEFwS,QAAS,WACPf,GAAaH,GAAeD,GAAW1f,GAAY+f,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAYvsF,OAAS,GAEvB8sF,0BAA2B,SAAmCxqE,GAC5D3d,KAAKkoF,kBAAkBvqE,GAAK,IAE9BuqE,kBAAmB,SAA2BvqE,EAAK+mE,GACjD,IAAIh1E,EAAQ1P,KAERgoB,GAAKrK,EAAIgiE,QAAUhiE,EAAIgiE,QAAQ,GAAKhiE,GAAKkiE,QACzCvrE,GAAKqJ,EAAIgiE,QAAUhiE,EAAIgiE,QAAQ,GAAKhiE,GAAKmiE,QACzC7vE,EAAOO,SAASs0E,iBAAiB98D,EAAG1T,GAMxC,GALAozE,GAAa/pE,EAKT+mE,GAAYxS,GAAQD,GAAcG,EAAQ,CAC5CsW,GAAW/qE,EAAK3d,KAAKyU,QAASxE,EAAMy0E,GAEpC,IAAIiE,EAAiBnU,EAA2BvkE,GAAM,IAElD23D,IAAe+f,IAA8B3/D,IAAMw/D,IAAmBlzE,IAAMmzE,KAC9EE,IAA8BY,KAE9BZ,GAA6BrZ,aAAY,WACvC,IAAIsa,EAAUpU,EAA2BhkE,SAASs0E,iBAAiB98D,EAAG1T,IAAI,GAEtEs0E,IAAYD,IACdA,EAAiBC,EACjBJ,MAGFE,GAAW/qE,EAAKjO,EAAM+E,QAASm0E,EAASlE,KACvC,IACH8C,GAAkBx/D,EAClBy/D,GAAkBnzE,OAEf,CAEL,IAAKtU,KAAKyU,QAAQwzE,cAAgBzT,EAA2BvkE,GAAM,KAAUwjE,IAE3E,YADA+U,KAIFE,GAAW/qE,EAAK3d,KAAKyU,QAAS+/D,EAA2BvkE,GAAM,IAAQ,MAItEuhE,EAASsW,EAAY,CAC1B9O,WAAY,SACZR,qBAAqB,IAIzB,SAASgQ,KACPZ,GAAYrsF,SAAQ,SAAUmtF,GAC5Bta,cAAcsa,EAAWG,QAE3BjB,GAAc,GAGhB,SAASW,KACPna,cAAcuZ,IAGhB,IAoLImB,GApLAJ,GAAa3S,GAAS,SAAUp4D,EAAKlJ,EAASglE,EAAQsP,GAExD,GAAKt0E,EAAQ0wB,OAAb,CACA,IAMI6jD,EANAhhE,GAAKrK,EAAIgiE,QAAUhiE,EAAIgiE,QAAQ,GAAKhiE,GAAKkiE,QACzCvrE,GAAKqJ,EAAIgiE,QAAUhiE,EAAIgiE,QAAQ,GAAKhiE,GAAKmiE,QACzCmJ,EAAOx0E,EAAQszE,kBACfmB,EAAQz0E,EAAQuzE,YAChB1S,EAAc7B,IACd0V,GAAqB,EAGrB5B,KAAiB9N,IACnB8N,GAAe9N,EACf+O,KACAlB,GAAW7yE,EAAQ0wB,OACnB6jD,EAAiBv0E,EAAQ20E,UAER,IAAb9B,KACFA,GAAW9S,EAA2BiF,GAAQ,KAIlD,IAAI4P,EAAY,EACZC,EAAgBhC,GAEpB,EAAG,CACD,IAAIhqE,EAAKgsE,EACLrzC,EAAO09B,EAAQr2D,GACfuO,EAAMoqB,EAAKpqB,IACXF,EAASsqB,EAAKtqB,OACdI,EAAOkqB,EAAKlqB,KACZI,EAAQ8pB,EAAK9pB,MACb7Q,EAAQ26B,EAAK36B,MACbmtB,EAASwN,EAAKxN,OACd8gD,OAAa,EACbC,OAAa,EACbzd,EAAczuD,EAAGyuD,YACjBE,EAAe3uD,EAAG2uD,aAClBoR,EAAQ5N,EAAInyD,GACZmsE,EAAansE,EAAGurD,WAChB6gB,EAAapsE,EAAG+pB,UAEhB/pB,IAAOg4D,GACTiU,EAAajuE,EAAQywD,IAAoC,SAApBsR,EAAM3P,WAA4C,WAApB2P,EAAM3P,WAA8C,YAApB2P,EAAM3P,WACzG8b,EAAa/gD,EAASwjC,IAAqC,SAApBoR,EAAM1P,WAA4C,WAApB0P,EAAM1P,WAA8C,YAApB0P,EAAM1P,aAE3G4b,EAAajuE,EAAQywD,IAAoC,SAApBsR,EAAM3P,WAA4C,WAApB2P,EAAM3P,WACzE8b,EAAa/gD,EAASwjC,IAAqC,SAApBoR,EAAM1P,WAA4C,WAApB0P,EAAM1P,YAG7E,IAAIgc,EAAKJ,IAAe/nF,KAAKygB,IAAIkK,EAAQnE,IAAMihE,GAAQQ,EAAanuE,EAAQywD,IAAgBvqE,KAAKygB,IAAI8J,EAAO/D,IAAMihE,KAAUQ,GACxHG,EAAKJ,IAAehoF,KAAKygB,IAAI0J,EAASrX,IAAM20E,GAAQS,EAAajhD,EAASwjC,IAAiBzqE,KAAKygB,IAAI4J,EAAMvX,IAAM20E,KAAUS,GAE9H,IAAK9B,GAAYyB,GACf,IAAK,IAAIluF,EAAI,EAAGA,GAAKkuF,EAAWluF,IACzBysF,GAAYzsF,KACfysF,GAAYzsF,GAAK,IAKnBysF,GAAYyB,GAAWM,IAAMA,GAAM/B,GAAYyB,GAAWO,IAAMA,GAAMhC,GAAYyB,GAAW/rE,KAAOA,IACtGsqE,GAAYyB,GAAW/rE,GAAKA,EAC5BsqE,GAAYyB,GAAWM,GAAKA,EAC5B/B,GAAYyB,GAAWO,GAAKA,EAC5Bxb,cAAcwZ,GAAYyB,GAAWR,KAE3B,GAANc,GAAiB,GAANC,IACbT,GAAqB,EAGrBvB,GAAYyB,GAAWR,IAAMva,YAAY,WAEnCya,GAA6B,IAAf/oF,KAAK6pF,OACrB/U,GAAShK,OAAOyZ,aAAamD,IAI/B,IAAIoC,EAAgBlC,GAAY5nF,KAAK6pF,OAAOD,GAAKhC,GAAY5nF,KAAK6pF,OAAOD,GAAKV,EAAQ,EAClFa,EAAgBnC,GAAY5nF,KAAK6pF,OAAOF,GAAK/B,GAAY5nF,KAAK6pF,OAAOF,GAAKT,EAAQ,EAExD,oBAAnBF,GACoI,aAAzIA,EAAe3mF,KAAKyyE,GAASE,QAAQhkE,WAAWwlE,GAAUuT,EAAeD,EAAensE,EAAK+pE,GAAYE,GAAY5nF,KAAK6pF,OAAOvsE,KAKvI44D,EAAS0R,GAAY5nF,KAAK6pF,OAAOvsE,GAAIysE,EAAeD,IACpDjvE,KAAK,CACLgvE,MAAOR,IACL,MAIRA,UACO50E,EAAQwzE,cAAgBqB,IAAkBhU,IAAgBgU,EAAgB9U,EAA2B8U,GAAe,KAE7H1hB,GAAYuhB,KACX,IAECb,GAAO,SAAcrrF,GACvB,IAAIi9E,EAAgBj9E,EAAKi9E,cACrBC,EAAcl9E,EAAKk9E,YACnBO,EAASz9E,EAAKy9E,OACdQ,EAAiBj+E,EAAKi+E,eACtBO,EAAwBx+E,EAAKw+E,sBAC7BN,EAAqBl+E,EAAKk+E,mBAC1BE,EAAuBp+E,EAAKo+E,qBAChC,GAAKnB,EAAL,CACA,IAAI8P,EAAa7P,GAAee,EAChCC,IACA,IAAIvM,EAAQsL,EAAc+P,gBAAkB/P,EAAc+P,eAAe5uF,OAAS6+E,EAAc+P,eAAe,GAAK/P,EAChHh/E,EAASsV,SAASs0E,iBAAiBlW,EAAMiR,QAASjR,EAAMkR,SAC5DzE,IAEI2O,IAAeA,EAAW1sE,GAAG+B,SAASnkB,KACxCugF,EAAsB,SACtBz7E,KAAKkqF,QAAQ,CACXxP,OAAQA,EACRP,YAAaA,OAKnB,SAASgQ,MAsCT,SAASC,MAoBT,SAASC,KACP,SAASC,IACPtqF,KAAK2b,SAAW,CACd4uE,UAAW,2BA6Df,OAzDAD,EAAKpyE,UAAY,CACfsyE,UAAW,SAAmBvtF,GAC5B,IAAIy9E,EAASz9E,EAAKy9E,OAClBoO,GAAapO,GAEf+P,cAAe,SAAuBpsC,GACpC,IAAI4nC,EAAY5nC,EAAM4nC,UAClB/qF,EAASmjD,EAAMnjD,OACfgnF,EAAS7jC,EAAM6jC,OACfhH,EAAiB78B,EAAM68B,eACvBj1E,EAAUo4C,EAAMp4C,QAChBokD,EAAShM,EAAMgM,OACnB,GAAK6wB,EAAezmE,QAAQi2E,KAA5B,CACA,IAAIptE,EAAKtd,KAAK64E,SAASv7D,GACnB7I,EAAUzU,KAAKyU,QAEnB,GAAIvZ,GAAUA,IAAWoiB,EAAI,CAC3B,IAAIqtE,EAAa7B,IAEM,IAAnB5G,EAAOhnF,IACT8U,EAAY9U,EAAQuZ,EAAQ81E,WAAW,GACvCzB,GAAa5tF,GAEb4tF,GAAa,KAGX6B,GAAcA,IAAe7B,IAC/B94E,EAAY26E,EAAYl2E,EAAQ81E,WAAW,GAI/CtkF,IACAggF,GAAU,GACV57B,MAEFi+B,KAAM,SAAcxpC,GAClB,IAAIo8B,EAAiBp8B,EAAMo8B,eACvBf,EAAcr7B,EAAMq7B,YACpBO,EAAS57B,EAAM47B,OACfsP,EAAa7P,GAAen6E,KAAK64E,SACjCpkE,EAAUzU,KAAKyU,QACnBq0E,IAAc94E,EAAY84E,GAAYr0E,EAAQ81E,WAAW,GAErDzB,KAAer0E,EAAQi2E,MAAQvQ,GAAeA,EAAY1lE,QAAQi2E,OAChEhQ,IAAWoO,KACbkB,EAAWpT,wBACPoT,IAAe9O,GAAgBA,EAAetE,wBAClDgU,GAAUlQ,EAAQoO,IAClBkB,EAAW7S,aACP6S,IAAe9O,GAAgBA,EAAe/D,eAIxDsR,QAAS,WACPK,GAAa,OAGVtX,EAAS8Y,EAAM,CACpBtR,WAAY,OACZM,gBAAiB,WACf,MAAO,CACLuR,SAAU/B,OAMlB,SAAS8B,GAAUE,EAAIC,GACrB,IAEIC,EACAC,EAHAC,EAAKJ,EAAG95E,WACRm6E,EAAKJ,EAAG/5E,WAGPk6E,GAAOC,IAAMD,EAAGE,YAAYL,KAAOI,EAAGC,YAAYN,KACvDE,EAAK/nF,EAAM6nF,GACXG,EAAKhoF,EAAM8nF,GAEPG,EAAGE,YAAYD,IAAOH,EAAKC,GAC7BA,IAGFC,EAAG5qE,aAAayqE,EAAIG,EAAGxqF,SAASsqF,IAChCG,EAAG7qE,aAAawqE,EAAIK,EAAGzqF,SAASuqF,KAhJlCd,GAAOjyE,UAAY,CACjBwJ,WAAY,KACZ8oE,UAAW,SAAmBnsC,GAC5B,IAAI27B,EAAoB37B,EAAM27B,kBAC9Bh6E,KAAK0hB,WAAas4D,GAEpBkQ,QAAS,SAAiBprC,GACxB,IAAI47B,EAAS57B,EAAM47B,OACfP,EAAcr7B,EAAMq7B,YACxBn6E,KAAK64E,SAASjC,wBAEVuD,GACFA,EAAYvD,wBAGd,IAAIr2D,EAAco0D,EAAS30E,KAAK64E,SAASv7D,GAAItd,KAAK0hB,WAAY1hB,KAAKyU,SAE/D8L,EACFvgB,KAAK64E,SAASv7D,GAAGgD,aAAao6D,EAAQn6D,GAEtCvgB,KAAK64E,SAASv7D,GAAG3L,YAAY+oE,GAG/B16E,KAAK64E,SAAS1B,aAEVgD,GACFA,EAAYhD,cAGhBmR,KAAMA,IAGR9W,EAAS2Y,GAAQ,CACfnR,WAAY,kBAKdoR,GAAOlyE,UAAY,CACjBgyE,QAAS,SAAiBmB,GACxB,IAAI3Q,EAAS2Q,EAAM3Q,OACfP,EAAckR,EAAMlR,YACpBmR,EAAiBnR,GAAen6E,KAAK64E,SACzCyS,EAAe1U,wBACf8D,EAAO1pE,YAAc0pE,EAAO1pE,WAAWH,YAAY6pE,GACnD4Q,EAAenU,cAEjBmR,KAAMA,IAGR9W,EAAS4Y,GAAQ,CACfpR,WAAY,kBAgGd,IAEIuS,GAEJC,GAMIC,GACAC,GACAC,GAZAC,GAAoB,GACpBC,GAAkB,GAIlBC,IAAiB,EAErBC,IAAU,EAEV/Q,IAAc,EAKd,SAASgR,KACP,SAASC,EAAUpT,GAEjB,IAAK,IAAItpE,KAAMvP,KACQ,MAAjBuP,EAAGrR,OAAO,IAAkC,oBAAb8B,KAAKuP,KACtCvP,KAAKuP,GAAMvP,KAAKuP,GAAIsL,KAAK7a,OAIzB64E,EAASpkE,QAAQgtE,eACnB77C,EAAGp1B,SAAU,YAAaxQ,KAAKksF,qBAE/BtmD,EAAGp1B,SAAU,UAAWxQ,KAAKksF,oBAC7BtmD,EAAGp1B,SAAU,WAAYxQ,KAAKksF,qBAGhCtmD,EAAGp1B,SAAU,UAAWxQ,KAAKmsF,eAC7BvmD,EAAGp1B,SAAU,QAASxQ,KAAKosF,aAC3BpsF,KAAK2b,SAAW,CACd0wE,cAAe,oBACfC,aAAc,KACd1L,QAAS,SAAiBC,EAAcnG,GACtC,IAAIx9E,EAAO,GAEP0uF,GAAkBvwF,QAAUmwF,KAAsB3S,EACpD+S,GAAkBrwF,SAAQ,SAAUgxF,EAAkBpxF,GACpD+B,IAAU/B,EAAS,KAAL,IAAaoxF,EAAiB97E,eAG9CvT,EAAOw9E,EAAOjqE,YAGhBowE,EAAaD,QAAQ,OAAQ1jF,KAkcnC,OA7bA+uF,EAAU/zE,UAAY,CACpBs0E,kBAAkB,EAClBC,aAAa,EACbC,iBAAkB,SAA0BzvF,GAC1C,IAAI+3E,EAAU/3E,EAAKy9E,OACnB+Q,GAAWzW,GAEb2X,WAAY,WACV3sF,KAAKysF,aAAeb,GAAkBtkF,QAAQmkF,KAEhDmB,WAAY,SAAoBvuC,GAC9B,IAAIw6B,EAAWx6B,EAAMw6B,SACjBxuB,EAAShM,EAAMgM,OACnB,GAAKrqD,KAAKysF,YAAV,CAEA,IAAK,IAAItxF,EAAI,EAAGA,EAAIywF,GAAkBvwF,OAAQF,IAC5C0wF,GAAgB9wF,KAAK6kC,EAAMgsD,GAAkBzwF,KAC7C0wF,GAAgB1wF,GAAG0xF,cAAgBjB,GAAkBzwF,GAAG0xF,cACxDhB,GAAgB1wF,GAAG85E,WAAY,EAC/B4W,GAAgB1wF,GAAG4f,MAAM,eAAiB,GAC1C/K,EAAY67E,GAAgB1wF,GAAI6E,KAAKyU,QAAQ43E,eAAe,GAC5DT,GAAkBzwF,KAAOswF,IAAYz7E,EAAY67E,GAAgB1wF,GAAI6E,KAAKyU,QAAQ+rE,aAAa,GAGjG3H,EAASwM,aAETh7B,MAEFzqB,MAAO,SAAekf,GACpB,IAAI+5B,EAAW/5B,EAAM+5B,SACjBY,EAAS36B,EAAM26B,OACfgC,EAAwB38B,EAAM28B,sBAC9BpxB,EAASvL,EAAMuL,OACdrqD,KAAKysF,cAELzsF,KAAKyU,QAAQ6rE,mBACZsL,GAAkBvwF,QAAUmwF,KAAsB3S,IACpDiU,IAAsB,EAAMrT,GAC5BgC,EAAsB,SACtBpxB,OAIN0iC,UAAW,SAAmB1B,GAC5B,IAAI7P,EAAgB6P,EAAM7P,cACtB/B,EAAS4R,EAAM5R,OACfpvB,EAASghC,EAAMhhC,OACdrqD,KAAKysF,cACVK,IAAsB,EAAOrT,GAC7BoS,GAAgBtwF,SAAQ,SAAUqkC,GAChC6vC,EAAI7vC,EAAO,UAAW,OAExB47C,IACAmQ,IAAe,EACfthC,MAEF2iC,UAAW,SAAmBC,GAC5B,IAAIv9E,EAAQ1P,KAGRu7E,GADW0R,EAAMpU,SACAoU,EAAM1R,gBACvBlxB,EAAS4iC,EAAM5iC,OACdrqD,KAAKysF,cACVZ,GAAgBtwF,SAAQ,SAAUqkC,GAChC6vC,EAAI7vC,EAAO,UAAW,QAElBlwB,EAAM+E,QAAQ6rE,mBAAqB1gD,EAAM5uB,YAC3C4uB,EAAM5uB,WAAWH,YAAY+uB,MAGjC27C,IACAoQ,IAAe,EACfthC,MAEF6iC,gBAAiB,SAAyBC,GACzBA,EAAMtU,UAEhB74E,KAAKysF,aAAejB,IACvBA,GAAkB4B,UAAUlB,qBAG9BN,GAAkBrwF,SAAQ,SAAUgxF,GAClCA,EAAiBM,cAAgB5pF,EAAMspF,MAGzCX,GAAoBA,GAAkBl+D,MAAK,SAAUlV,EAAGmV,GACtD,OAAOnV,EAAEq0E,cAAgBl/D,EAAEk/D,iBAE7B7R,IAAc,GAEhBA,YAAa,SAAqBqS,GAChC,IAAI3qD,EAAS1iC,KAET64E,EAAWwU,EAAMxU,SACrB,GAAK74E,KAAKysF,YAAV,CAEA,GAAIzsF,KAAKyU,QAAQiZ,OAOfmrD,EAASjC,wBAEL52E,KAAKyU,QAAQoiE,WAAW,CAC1B+U,GAAkBrwF,SAAQ,SAAUgxF,GAC9BA,IAAqBd,IACzBhc,EAAI8c,EAAkB,WAAY,eAEpC,IAAItO,EAAWtK,EAAQ8X,IAAU,GAAO,GAAM,GAC9CG,GAAkBrwF,SAAQ,SAAUgxF,GAC9BA,IAAqBd,IACzBnV,EAAQiW,EAAkBtO,MAE5B8N,IAAU,EACVD,IAAiB,EAIrBjT,EAAS1B,YAAW,WAClB4U,IAAU,EACVD,IAAiB,EAEbppD,EAAOjuB,QAAQoiE,WACjB+U,GAAkBrwF,SAAQ,SAAUgxF,GAClChW,EAAUgW,MAKV7pD,EAAOjuB,QAAQiZ,MACjB4/D,UAINC,SAAU,SAAkBC,GAC1B,IAAItyF,EAASsyF,EAAMtyF,OACf+qF,EAAYuH,EAAMvH,UAClB57B,EAASmjC,EAAMnjC,OAEf0hC,KAAYH,GAAkBtkF,QAAQpM,KACxC+qF,GAAU,GACV57B,MAGJq7B,OAAQ,SAAgB+H,GACtB,IAAI5H,EAAe4H,EAAM5H,aACrBpM,EAASgU,EAAMhU,OACfZ,EAAW4U,EAAM5U,SACjBoF,EAAWwP,EAAMxP,SAEjB2N,GAAkBvwF,OAAS,IAE7BuwF,GAAkBrwF,SAAQ,SAAUgxF,GAClC1T,EAAS5B,kBAAkB,CACzB/7E,OAAQqxF,EACRt2C,KAAM81C,GAAUpY,EAAQ4Y,GAAoBtO,IAE9C1H,EAAUgW,GACVA,EAAiBzV,SAAWmH,EAC5B4H,EAAa3O,qBAAqBqV,MAEpCR,IAAU,EACV2B,IAAyB1tF,KAAKyU,QAAQ6rE,kBAAmB7G,KAG7D2O,kBAAmB,SAA2BuF,GAC5C,IAAI9U,EAAW8U,EAAO9U,SAClB8M,EAAUgI,EAAOhI,QACjBmB,EAAY6G,EAAO7G,UACnB5L,EAAiByS,EAAOzS,eACxBP,EAAWgT,EAAOhT,SAClBR,EAAcwT,EAAOxT,YACrB1lE,EAAUzU,KAAKyU,QAEnB,GAAIqyE,EAAW,CAQb,GANInB,GACFzK,EAAemK,aAGjByG,IAAiB,EAEbr3E,EAAQoiE,WAAa+U,GAAkBvwF,OAAS,IAAM0wF,KAAYpG,IAAYzK,EAAezmE,QAAQiZ,OAASysD,GAAc,CAE9H,IAAIyT,EAAmBja,EAAQ8X,IAAU,GAAO,GAAM,GACtDG,GAAkBrwF,SAAQ,SAAUgxF,GAC9BA,IAAqBd,KACzBnV,EAAQiW,EAAkBqB,GAG1BjT,EAAShpE,YAAY46E,OAEvBR,IAAU,EAIZ,IAAKpG,EAMH,GAJKoG,IACHuB,KAGE1B,GAAkBvwF,OAAS,EAAG,CAChC,IAAIwyF,EAAqBlC,GAEzBzQ,EAAe6L,WAAWlO,GAGtBqC,EAAezmE,QAAQoiE,YAAc8U,IAAgBkC,GACvDhC,GAAgBtwF,SAAQ,SAAUqkC,GAChCs7C,EAAejE,kBAAkB,CAC/B/7E,OAAQ0kC,EACRqW,KAAMy1C,KAER9rD,EAAMk3C,SAAW4U,GACjB9rD,EAAMm3C,sBAAwB,aAIlCmE,EAAe6L,WAAWlO,KAKlCiV,yBAA0B,SAAkCC,GAC1D,IAAI9P,EAAW8P,EAAO9P,SAClB0H,EAAUoI,EAAOpI,QACjBzK,EAAiB6S,EAAO7S,eAK5B,GAJA0Q,GAAkBrwF,SAAQ,SAAUgxF,GAClCA,EAAiBxV,sBAAwB,QAGvCmE,EAAezmE,QAAQoiE,YAAc8O,GAAWzK,EAAekS,UAAUX,YAAa,CACxFf,GAAiBla,EAAS,GAAIyM,GAC9B,IAAI+P,EAAa/a,EAAOwY,IAAU,GAClCC,GAAe7/D,KAAOmiE,EAAWrlF,EACjC+iF,GAAe3/D,MAAQiiE,EAAWjqF,IAGtCkqF,0BAA2B,WACrBlC,KACFA,IAAU,EACVuB,OAGJhF,KAAM,SAAc4F,GAClB,IAAIvwE,EAAMuwE,EAAOhU,cACbT,EAASyU,EAAOzU,OAChBkB,EAAWuT,EAAOvT,SAClB9B,EAAWqV,EAAOrV,SAClB4C,EAAwByS,EAAOzS,sBAC/B3B,EAAWoU,EAAOpU,SAClBK,EAAc+T,EAAO/T,YACrB6P,EAAa7P,GAAen6E,KAAK64E,SACrC,GAAKl7D,EAAL,CACA,IAAIlJ,EAAUzU,KAAKyU,QACf/T,EAAWi6E,EAASj6E,SAExB,IAAKs6E,GAOH,GANIvmE,EAAQ63E,eAAiBtsF,KAAKwsF,kBAChCxsF,KAAKksF,qBAGPl8E,EAAYy7E,GAAUh3E,EAAQ43E,gBAAiBT,GAAkBtkF,QAAQmkF,MAEnEG,GAAkBtkF,QAAQmkF,IA8C9BG,GAAkB1mE,OAAO0mE,GAAkBtkF,QAAQmkF,IAAW,GAC9DF,GAAsB,KACtB/rE,GAAc,CACZq5D,SAAUA,EACVY,OAAQA,EACR58E,KAAM,WACN68E,SAAU+R,GACV0C,YAAaxwE,QArD0B,CAUzC,GATAiuE,GAAkB7wF,KAAK0wF,IACvBjsE,GAAc,CACZq5D,SAAUA,EACVY,OAAQA,EACR58E,KAAM,SACN68E,SAAU+R,GACV0C,YAAaxwE,IAGXA,EAAIsK,UAAYsjE,IAAuB1S,EAASv7D,GAAG+B,SAASksE,IAAsB,CACpF,IAMMrrF,EAAG/E,EANLoH,EAAYU,EAAMsoF,IAClB6C,EAAenrF,EAAMwoF,IAEzB,IAAKlpF,IAAc6rF,GAAgB7rF,IAAc6rF,EAa/C,IARIA,EAAe7rF,GACjBpH,EAAIoH,EACJrC,EAAIkuF,IAEJjzF,EAAIizF,EACJluF,EAAIqC,EAAY,GAGXpH,EAAI+E,EAAG/E,KACPywF,GAAkBtkF,QAAQ5G,EAASvF,MACxC6U,EAAYtP,EAASvF,GAAIsZ,EAAQ43E,eAAe,GAChDT,GAAkB7wF,KAAK2F,EAASvF,IAChCqkB,GAAc,CACZq5D,SAAUA,EACVY,OAAQA,EACR58E,KAAM,SACN68E,SAAUh5E,EAASvF,GACnBgzF,YAAaxwE,UAKnB4tE,GAAsBE,GAGxBD,GAAoBxB,EAexB,GAAIhP,IAAeh7E,KAAKysF,YAAa,CAEnC,IAAK9R,EAASnE,GAAS/hE,QAAQiZ,MAAQitD,IAAalB,IAAWmS,GAAkBvwF,OAAS,EAAG,CAC3F,IAAI4iF,EAAWtK,EAAQ8X,IACnB4C,EAAiBprF,EAAMwoF,GAAU,SAAWzrF,KAAKyU,QAAQ43E,cAAgB,KAI7E,IAHKP,IAAkBr3E,EAAQoiE,YAAW4U,GAAS1U,sBAAwB,MAC3EiT,EAAWpT,yBAENkV,KACCr3E,EAAQoiE,YACV4U,GAAS3U,SAAWmH,EACpB2N,GAAkBrwF,SAAQ,SAAUgxF,GAGlC,GAFAA,EAAiBxV,sBAAwB,KAErCwV,IAAqBd,GAAU,CACjC,IAAIx1C,EAAO81C,GAAUpY,EAAQ4Y,GAAoBtO,EACjDsO,EAAiBzV,SAAW7gC,EAE5B+zC,EAAW/S,kBAAkB,CAC3B/7E,OAAQqxF,EACRt2C,KAAMA,SAQdq3C,KACA1B,GAAkBrwF,SAAQ,SAAUgxF,GAC9B7rF,EAAS2tF,GACX1T,EAASr6D,aAAaisE,EAAkB7rF,EAAS2tF,IAEjD1T,EAAShpE,YAAY46E,GAGvB8B,OAKEvU,IAAa72E,EAAMwoF,KAAW,CAChC,IAAIplD,GAAS,EACbulD,GAAkBrwF,SAAQ,SAAUgxF,GAC9BA,EAAiBM,gBAAkB5pF,EAAMspF,KAC3ClmD,GAAS,MAKTA,GACFo1C,EAAsB,UAM5BmQ,GAAkBrwF,SAAQ,SAAUgxF,GAClChW,EAAUgW,MAEZvC,EAAW7S,aAGbqU,GAAoBxB,GAIlBvQ,IAAWkB,GAAYR,GAA2C,UAA5BA,EAAYK,cACpDqR,GAAgBtwF,SAAQ,SAAUqkC,GAChCA,EAAM5uB,YAAc4uB,EAAM5uB,WAAWH,YAAY+uB,QAIvD0uD,cAAe,WACbtuF,KAAKysF,YAAczR,IAAc,EACjC6Q,GAAgBxwF,OAAS,GAE3BkzF,cAAe,WACbvuF,KAAKksF,qBAELtiD,EAAIp5B,SAAU,YAAaxQ,KAAKksF,oBAChCtiD,EAAIp5B,SAAU,UAAWxQ,KAAKksF,oBAC9BtiD,EAAIp5B,SAAU,WAAYxQ,KAAKksF,oBAC/BtiD,EAAIp5B,SAAU,UAAWxQ,KAAKmsF,eAC9BviD,EAAIp5B,SAAU,QAASxQ,KAAKosF,cAE9BF,mBAAoB,SAA4BvuE,GAC9C,IAA2B,qBAAhBq9D,KAA+BA,KAEtCwQ,KAAsBxrF,KAAK64E,YAE3Bl7D,IAAOg1D,EAAQh1D,EAAIziB,OAAQ8E,KAAKyU,QAAQwgE,UAAWj1E,KAAK64E,SAASv7D,IAAI,OAErEK,GAAsB,IAAfA,EAAIyrC,QAEf,MAAOwiC,GAAkBvwF,OAAQ,CAC/B,IAAIiiB,EAAKsuE,GAAkB,GAC3B57E,EAAYsN,EAAItd,KAAKyU,QAAQ43E,eAAe,GAC5CT,GAAkB7oD,QAClBvjB,GAAc,CACZq5D,SAAU74E,KAAK64E,SACfY,OAAQz5E,KAAK64E,SAASv7D,GACtBzgB,KAAM,WACN68E,SAAUp8D,EACV6wE,YAAaxwE,MAInBwuE,cAAe,SAAuBxuE,GAChCA,EAAIniB,MAAQwE,KAAKyU,QAAQ63E,eAC3BtsF,KAAKwsF,kBAAmB,IAG5BJ,YAAa,SAAqBzuE,GAC5BA,EAAIniB,MAAQwE,KAAKyU,QAAQ63E,eAC3BtsF,KAAKwsF,kBAAmB,KAIvBhb,EAASya,EAAW,CAEzBjT,WAAY,YACZ9/D,MAAO,CAKLuF,OAAQ,SAAgBnB,GACtB,IAAIu7D,EAAWv7D,EAAGtM,WAAWwlE,GACxBqC,GAAaA,EAASpkE,QAAQ24E,aAAcxB,GAAkBtkF,QAAQgW,KAEvEkuE,IAAqBA,KAAsB3S,IAC7C2S,GAAkB4B,UAAUlB,qBAE5BV,GAAoB3S,GAGtB7oE,EAAYsN,EAAIu7D,EAASpkE,QAAQ43E,eAAe,GAChDT,GAAkB7wF,KAAKuiB,KAOzBkxE,SAAU,SAAkBlxE,GAC1B,IAAIu7D,EAAWv7D,EAAGtM,WAAWwlE,GACzBvzE,EAAQ2oF,GAAkBtkF,QAAQgW,GACjCu7D,GAAaA,EAASpkE,QAAQ24E,YAAenqF,IAClD+M,EAAYsN,EAAIu7D,EAASpkE,QAAQ43E,eAAe,GAChDT,GAAkB1mE,OAAOjiB,EAAO,MAGpCq2E,gBAAiB,WACf,IAAItyC,EAAShnC,KAETyuF,EAAc,GACdC,EAAc,GAsBlB,OArBA9C,GAAkBrwF,SAAQ,SAAUgxF,GAMlC,IAAIxS,EALJ0U,EAAY1zF,KAAK,CACfwxF,iBAAkBA,EAClBtpF,MAAOspF,EAAiBM,gBAMxB9S,EADEgS,IAAWQ,IAAqBd,IACtB,EACHM,GACE9oF,EAAMspF,EAAkB,SAAWvlD,EAAOvyB,QAAQ43E,cAAgB,KAElEppF,EAAMspF,GAGnBmC,EAAY3zF,KAAK,CACfwxF,iBAAkBA,EAClBtpF,MAAO82E,OAGJ,CACLhT,MAAOpzB,EAAmBi4C,IAC1B+C,OAAQ,GAAGtxF,OAAOwuF,IAClB4C,YAAaA,EACbC,YAAaA,IAGjBlV,gBAAiB,CACf8S,aAAc,SAAsB9wF,GASlC,OARAA,EAAMA,EAAI0sB,cAEE,SAAR1sB,EACFA,EAAM,UACGA,EAAIH,OAAS,IACtBG,EAAMA,EAAI0C,OAAO,GAAGC,cAAgB3C,EAAIk+C,OAAO,IAG1Cl+C,MAMf,SAASkyF,GAAwBkB,EAAgBnV,GAC/CmS,GAAkBrwF,SAAQ,SAAUgxF,EAAkBpxF,GACpD,IAAID,EAASu+E,EAAO/4E,SAAS6rF,EAAiBM,eAAiB+B,EAAiB17D,OAAO/3B,GAAK,IAExFD,EACFu+E,EAAOn5D,aAAaisE,EAAkBrxF,GAEtCu+E,EAAO9nE,YAAY46E,MAWzB,SAASO,GAAsB+B,EAAkBpV,GAC/CoS,GAAgBtwF,SAAQ,SAAUqkC,EAAOzkC,GACvC,IAAID,EAASu+E,EAAO/4E,SAASk/B,EAAMitD,eAAiBgC,EAAmB37D,OAAO/3B,GAAK,IAE/ED,EACFu+E,EAAOn5D,aAAasf,EAAO1kC,GAE3Bu+E,EAAO9nE,YAAYiuB,MAKzB,SAAS0tD,KACP1B,GAAkBrwF,SAAQ,SAAUgxF,GAC9BA,IAAqBd,IACzBc,EAAiBv7E,YAAcu7E,EAAiBv7E,WAAWH,YAAY07E,MAI3EzX,GAAS4D,MAAM,IAAImP,IACnB/S,GAAS4D,MAAM0R,GAAQD,IAER,iB,yCCjnHf,IAAIptF,EAAS,WAAa,IAAI+xF,EAAI9uF,KAAS+uF,EAAGD,EAAIztB,eAAmBnsD,EAAG45E,EAAIxtB,MAAMpsD,IAAI65E,EAAG,OAAO75E,EAAG,MAAM,CAAC85E,YAAY,CAAC,OAAS,YAAY,CAAC95E,EAAG,MAAM,CAAClQ,YAAY,uBAAuBrE,MAAM,CAAC,KAAQmuF,EAAI5qF,wBAAwB0hC,GAAG,CAAC,MAAQ,SAASqpD,GAAQH,EAAI5qF,wBAAyB,MAAUgR,EAAG,MAAM,CAAClQ,YAAY,iBAAiB,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,8CAA8C,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,yCAAyC,CAACkQ,EAAG,eAAe,CAAClQ,YAAY,iBAAiBpE,MAAM,CAAC,KAAO,WAAW,KAAO,MAAMglC,GAAG,CAAC,MAAQ,SAASqpD,GAAQH,EAAI5qF,wBAAyB,OAAU,GAAGgR,EAAG,MAAM,CAAClQ,YAAY,6DAA6D,CAACkQ,EAAG,gBAAgB,CAAClQ,YAAY,qBAAqB,CAACkQ,EAAG,wBAAwB,CAACtU,MAAM,CAAC,UAAU,KAAK,CAACsU,EAAG,eAAe,CAAClQ,YAAY,aAAapE,MAAM,CAAC,KAAO,iBAAiB,GAAGsU,EAAG,eAAe,CAACtU,MAAM,CAAC,MAAQkuF,EAAII,YAAY,YAAc,eAAetpD,GAAG,CAAC,MAAQkpD,EAAIK,qBAAqB,IAAI,GAAGj6E,EAAG,MAAM,CAAClQ,YAAY,YAAY,CAACkQ,EAAG,aAAa,CAACtU,MAAM,CAAC,QAAU,OAAO,WAAW,GAAG,eAAe,WAAW,MAAQ,IAAIsI,YAAY4lF,EAAIM,GAAG,CAAC,CAAC5zF,IAAI,iBAAiB+T,GAAG,WAAW,MAAO,CAAC2F,EAAG,eAAe,CAAClQ,YAAY,yBAAyBpE,MAAM,CAAC,KAAO,mBAAmB,KAAO,UAAUyuF,OAAM,MAAS,CAACn6E,EAAG,kBAAkB,CAAC0wB,GAAG,CAAC,MAAQkpD,EAAIQ,uBAAuB,CAACR,EAAIttB,GAAG,kBAAkBtsD,EAAG,kBAAkB,CAACtU,MAAM,CAAC,GAAK,CAAE/D,KAAMiyF,EAAIvnB,OAAO1qE,KAAMg8B,MAAOr+B,OAAOyd,OAAO,GAAI62E,EAAIvnB,OAAO1uC,MAAO,CAACnL,KAAM,iBAAkB,CAACohE,EAAIttB,GAAG,gBAAgBtsD,EAAG,kBAAkB,CAACtU,MAAM,CAAC,GAAK,CAAE/D,KAAMiyF,EAAIvnB,OAAO1qE,KAAMg8B,MAAOr+B,OAAOyd,OAAO,GAAI62E,EAAIvnB,OAAO1uC,MAAO,CAACnL,KAAM,kBAAmB,CAACohE,EAAIttB,GAAG,gBAAgBtsD,EAAG,kBAAkB,CAACtU,MAAM,CAAC,GAAK,CAAE/D,KAAMiyF,EAAIvnB,OAAO1qE,KAAMg8B,MAAOr+B,OAAOyd,OAAO,GAAI62E,EAAIvnB,OAAO1uC,MAAO,CAACnL,KAAM,gBAAiB,CAACohE,EAAIttB,GAAG,qBAAqBtsD,EAAG,kBAAkB,CAACtU,MAAM,CAAC,GAAK,CAAE/D,KAAMiyF,EAAIvnB,OAAO1qE,KAAMg8B,MAAOr+B,OAAOyd,OAAO,GAAI62E,EAAIvnB,OAAO1uC,MAAO,CAACnL,KAAM,gBAAiB,CAACohE,EAAIttB,GAAG,sBAAsB,IAAI,KAAKtsD,EAAG,wBAAwB,CAAClQ,YAAY,gDAAgDpE,MAAM,CAAC,SAAWkuF,EAAIS,2BAA2B,CAACr6E,EAAG,YAAY,CAAClQ,YAAY,4BAA4BpE,MAAM,CAAC,OAAS,yBAAyB,IAAM,MAAM4uF,MAAM,CAAC1zF,MAAOgzF,EAAS,MAAEjkC,SAAS,SAAU4kC,GAAMX,EAAIY,MAAMD,GAAKE,WAAW,UAAUb,EAAIc,GAAId,EAAS,OAAE,SAASe,GAAM,OAAO36E,EAAG,KAAK,CAAC1Z,IAAIq0F,EAAKxvF,GAAG2E,YAAY,YAAYrE,MAAM,CAAE,UAAakvF,EAAKC,aAAclqD,GAAG,CAAC,MAAQ,SAASqpD,GAAQ,OAAOH,EAAIiB,gBAAgBF,MAAS,CAAC36E,EAAG,eAAe,CAAClQ,YAAY,iCAAiCpE,MAAM,CAAC,KAAO,sBAAsBsU,EAAG,MAAM,CAAClQ,YAAY,sBAAsB,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,mBAAmB,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,iBAAiB,CAACkQ,EAAG,kBAAkB,CAACtU,MAAM,CAAC,QAAUivF,EAAKC,aAAalqD,GAAG,CAAC,OAAS,SAASqpD,GAAQ,OAAOH,EAAIkB,sBAAsBH,KAAQI,SAAS,CAAC,MAAQ,SAAShB,GAAQA,EAAOpnE,sBAAuB3S,EAAG,OAAO,CAAClQ,YAAY,cAAc,CAAC8pF,EAAIttB,GAAGstB,EAAI/qD,GAAG8rD,EAAKpyF,WAAW,KAAKyX,EAAG,MAAM,CAAClQ,YAAY,oBAAoB,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,sBAAsB8pF,EAAIc,GAAIC,EAAS,MAAE,SAAShrF,GAAK,OAAOqQ,EAAG,UAAU,CAAC1Z,IAAIqJ,EAAIG,YAAY,kBAAkBpE,MAAM,CAAC,KAAO,GAAG,QAAW,SAAYkuF,EAAIoB,kBAAkBrrF,KAAS,CAACiqF,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAGl/B,GAAK,UAAS,GAAGqQ,EAAG,QAAQ,CAAClQ,YAAY,+BAA+B,CAAC8pF,EAAIttB,GAAGstB,EAAI/qD,GAAG+qD,EAAIrwF,WAAWoxF,EAAKM,QAAS,CAAExxF,MAAO,QAASC,IAAK,gBAAiBixF,EAAa,SAAE36E,EAAG,WAAW,CAACtU,MAAM,CAAC,KAAO,KAAK,IAAMivF,EAAKO,SAASC,OAAO,QAAW,SAAYvB,EAAIwB,qBAAqBT,EAAKv1D,MAAQ,KAAOw0D,EAAIxwF,WAAWuxF,EAAKO,SAASG,aAAar7E,EAAG,WAAW,CAACtU,MAAM,CAAC,KAAO,KAAK,QAAU,oBAAoB,CAACsU,EAAG,eAAe,CAACtU,MAAM,CAAC,KAAO,WAAW,KAAO,SAAS,IAAI,MAAM,MAAK,GAAGsU,EAAG,MAAM,CAAClQ,YAAY,aAAarE,MAAM,CAAC,MAASmuF,EAAIY,MAAMr0F,SAAS,CAAC6Z,EAAG,KAAK,CAAC45E,EAAIttB,GAAG,uBAAuB,IAAI,GAAGtsD,EAAG,4BAA4B,CAACtU,MAAM,CAAC,KAAOkuF,EAAIe,KAAK,kBAAkBf,EAAI0B,eAAe5qD,GAAG,CAAC,cAAckpD,EAAI2B,WAAW,WAAW3B,EAAI4B,QAAQ,cAAc5B,EAAI6B,YAAYnB,MAAM,CAAC1zF,MAAOgzF,EAA8B,2BAAEjkC,SAAS,SAAU4kC,GAAMX,EAAI8B,2BAA2BnB,GAAKE,WAAW,gCAAgCz6E,EAAG,SAAS,CAACtU,MAAM,CAAC,GAAK,kCAAkC,CAACsU,EAAG,oBAAoB,CAACvU,MAAM,CAAC,KAAQmuF,EAAI5qF,wBAAwBtD,MAAM,CAAC,YAAYkuF,EAAI+B,SAAS,iCAAiC/B,EAAI8B,4BAA4BhrD,GAAG,CAAC,oCAAoC,SAASqpD,GAAQH,EAAI8B,2BAA2B3B,GAAQ,wCAAwC,SAASA,GAAQH,EAAI8B,2BAA2B3B,GAAQ,qBAAqB,SAASA,GAAQH,EAAI5qF,wBAAyB,OAAW,IAAI,IAChpJw8D,EAAkB,G,kSCDlB,EAAS,WAAa,IAAIouB,EAAI9uF,KAAS+uF,EAAGD,EAAIztB,eAAmBnsD,EAAG45E,EAAIxtB,MAAMpsD,IAAI65E,EAAG,OAAO75E,EAAG,MAAM,CAAClQ,YAAY,gBAAgB,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,WAAW,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,gCAAgC,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,iBAAiB,CAACkQ,EAAG,MAAM,CAAClQ,YAAY,YAAY,CAACkQ,EAAG,WAAW,CAAC47E,WAAW,CAAC,CAACj0F,KAAK,SAASk0F,QAAQ,eAAej1F,MAAM,4BAA8B6zF,WAAW,8BAA8B9pB,UAAU,CAAC,KAAM,KAAQjlE,MAAM,CAAC,QAAU,UAAU,MAAQ,IAAIglC,GAAG,CAAC,MAAQ,SAASqpD,GAAQH,EAAItuB,MAAM,yCAAyC,GAAOsuB,EAAItuB,MAAM,yBAAyB,CAACsuB,EAAIttB,GAAG,iBAAiB,GAAGtsD,EAAG,wBAAwB,CAAClQ,YAAY,gCAAgCpE,MAAM,CAAC,SAAWkuF,EAAIS,2BAA2B,CAACr6E,EAAG,eAAe,CAAClQ,YAAY,sBAAsB8pF,EAAIc,GAAId,EAAe,aAAE,SAASn0F,GAAQ,OAAOua,EAAG,oBAAoB,CAAC1Z,IAAIb,EAAO8C,MAAQqxF,EAAIvnB,OAAOx1D,KAAKnR,MAAM,CAAC,GAAKjG,EAAOq2F,MAAM,OAASlC,EAAImC,qBAAqBt2F,EAAOq2F,QAAQprD,GAAG,CAAC,MAAQ,SAASqpD,GAAQ,OAAOH,EAAItuB,MAAM,yBAAyB,CAACtrD,EAAG,eAAe,CAAClQ,YAAY,QAAQpE,MAAM,CAAC,KAAOjG,EAAO8B,KAAK,KAAO,QAAQyY,EAAG,OAAO,CAAClQ,YAAY,mCAAmC,CAAC8pF,EAAIttB,GAAGstB,EAAI/qD,GAAGppC,EAAO8C,WAAW,MAAK,GAAGyX,EAAG,MAAM,CAAClQ,YAAY,4CAA4C,CAACkQ,EAAG,KAAK,CAAClQ,YAAY,sBAAsB,CAAC8pF,EAAIttB,GAAG,YAAYtsD,EAAG,eAAe,CAACtU,MAAM,CAAC,KAAO,eAAe,GAAGsU,EAAG,eAAe,CAAClQ,YAAY,qBAAqB8pF,EAAIc,GAAId,EAAY,UAAE,SAASjqF,GAAK,OAAOqQ,EAAG,oBAAoB,CAAC1Z,IAAIqJ,EAAIpH,MAAQqxF,EAAIvnB,OAAOx1D,KAAKnR,MAAM,CAAC,GAAKiE,EAAImsF,MAAM,OAASlC,EAAImC,qBAAqBpsF,EAAImsF,QAAQprD,GAAG,CAAC,MAAQ,SAASqpD,GAAQ,OAAOH,EAAItuB,MAAM,yBAAyB,CAACtrD,EAAG,OAAO,CAAClQ,YAAY,wBAAwBrE,MAAO,UAAakE,EAAS,QAAKqQ,EAAG,OAAO,CAAC45E,EAAIttB,GAAGstB,EAAI/qD,GAAGl/B,EAAIpH,eAAc,IAAI,IAAI,UACv0D,EAAkB,G,gDCyEP,GACfqzF,YACAI,eAEA90F,YACA+0F,eACArsF,kBACAssF,sBACAC,yBAEA70F,OACAq0F,UACAr/E,WACAxL,cAGAsrF,iBACA,OACA7oB,uBAGA,GACA,CAAAhrE,gBAAAhB,gBAAAu0F,OAAAn0F,mBACA,CAAAY,kBAAAhB,gBAAAu0F,OAAAn0F,wBAAA41B,QAAA93B,sBACA,CAAA8C,kBAAAhB,iBAAAu0F,OAAAn0F,wBAAA41B,QAAA93B,sBACA,CAAA8C,gBAAAhB,iBAAAu0F,OAAAn0F,wBAAA41B,QAAA93B,qBAGA,OACA40F,2BACAgC,cACAN,+BCzGuX,I,YCOnX5yD,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,oBChBA,GACbmzD,YAAY,EACZ7pB,MAAO,GACPpjE,QAAS,GACT2hC,UAAW,GACXurD,QAAS,CACPC,WAAU,SAACx1F,EAAKy1F,GACd,OAAO,IAAI13C,SAAQ,SAACS,EAASC,GAC3Bi3C,OACGttE,IAAI,mBAAoB,CAAEmO,OAAQk/D,IAClC/2C,MAAK,SAAAi3C,GAAQ,OAAIn3C,EAAQm3C,MACzBC,OAAM,SAAA9/E,GAAK,OAAI2oC,EAAO3oC,UAG7B0+E,QAAO,SAACx0F,EAAK61F,GACX,OAAO,IAAI93C,SAAQ,SAACS,EAASC,GAC3Bi3C,OACGI,KAAK,mBAAoB,CAAEnC,KAAMkC,IACjCn3C,MAAK,SAAAi3C,GAAQ,OAAIn3C,EAAQm3C,MACzBC,OAAM,SAAA9/E,GAAK,OAAI2oC,EAAO3oC,UAG7B2+E,WAAU,SAACz0F,EAAK,GAAU,IAAR2zF,EAAI,EAAJA,KAChB,OAAO,IAAI51C,SAAQ,SAACS,EAASC,GAC3Bi3C,OACGI,KAAK,oBAAD,OAAqBnC,EAAKxvF,IAAM,CAAEwvF,SACtCj1C,MAAK,SAAAi3C,GAAQ,OAAIn3C,EAAQm3C,MACzBC,OAAM,SAAA9/E,GAAK,OAAI2oC,EAAO3oC,UAG7By+E,WAAU,SAACv0F,EAAK,GAAQ,IAANmE,EAAE,EAAFA,GAChB,OAAO,IAAI45C,SAAQ,SAACS,EAASC,GAC3Bi3C,OACG90D,OAAO,oBAAD,OAAqBz8B,IAC3Bu6C,MAAK,SAAAi3C,GAAQ,OAAIn3C,EAAQm3C,MACzBC,OAAM,SAAA9/E,GAAK,OAAI2oC,EAAO3oC,YCrC7B,EAAS,WAAa,IAAI88E,EAAI9uF,KAAS+uF,EAAGD,EAAIztB,eAAmBnsD,EAAG45E,EAAIxtB,MAAMpsD,IAAI65E,EAAG,OAAO75E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACtU,MAAM,CAAC,GAAK,uBAAuB,gBAAgB,aAAa,QAAUkuF,EAAI8B,2BAA2B,aAAa,QAAQ,OAAS,GAAG,SAAW,GAAG,YAAY,GAAG,MAAQ,IAAIhrD,GAAG,CAAC,OAAS,SAAUnhC,GAAO,OAAOqqF,EAAItuB,MAAM,wCAAyC/7D,IAAQ,OAASqqF,EAAIzoF,WAAW6C,YAAY4lF,EAAIM,GAAG,CAAC,CAAC5zF,IAAI,UAAU+T,GAAG,SAASpL,GACpd,IAAI2kD,EAAO3kD,EAAI2kD,KACf,MAAO,CAAC5zC,EAAG,MAAM,CAAClQ,YAAY,sFAAsF,CAAE8pF,EAAImD,UAAY,GAAE/8E,EAAG,WAAW,CAACtU,MAAM,CAAC,KAAO,KAAK,QAAUkuF,EAAImD,UAAUnC,YAAc,kBAAoB,qBAAqBlqD,GAAG,CAAC,MAAQ,SAASqpD,GAAQH,EAAImD,UAAUnC,aAAehB,EAAImD,UAAUnC,eAAe,CAAChB,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAG+qD,EAAImD,UAAUnC,YAAc,YAAc,iBAAiB,OAAO56E,EAAG,KAAK,CAAClQ,YAAY,QAAQ,CAAC8pF,EAAIttB,GAAG,gBAAgBtsD,EAAG,MAAM,CAACA,EAAG,eAAe,CAAC47E,WAAW,CAAC,CAACj0F,KAAK,OAAOk0F,QAAQ,SAASj1F,MAAOgzF,EAAImD,UAAY,GAAEtC,WAAW,iBAAiB3qF,YAAY,iBAAiBpE,MAAM,CAAC,KAAO,aAAaglC,GAAG,CAAC,MAAQ,SAASqpD,GAAQH,EAAItuB,MAAM,eAAgB1X,QAAY5zC,EAAG,eAAe,CAAClQ,YAAY,sBAAsBrE,MAAM,CAAE,eAAgBmuF,EAAImD,UAAUC,aAActxF,MAAM,CAAC,KAAO,WAAW,KAAO,MAAMglC,GAAG,CAAC,MAAQ,SAASqpD,GAAQH,EAAImD,UAAUC,aAAepD,EAAImD,UAAUC,gBAAgBh9E,EAAG,eAAe,CAAClQ,YAAY,sBAAsBpE,MAAM,CAAC,KAAO,QAAQ,KAAO,MAAMglC,GAAG,CAAC,MAAQkjB,MAAS,IAAI,GAAG5zC,EAAG,sBAAsB,CAAC/Q,IAAI,kBAAkB+E,YAAY4lF,EAAIM,GAAG,CAAC,CAAC5zF,IAAI,UAAU+T,GAAG,SAASpL,GAC3oC,IAAIguF,EAAehuF,EAAIguF,aACvB,MAAO,CAACj9E,EAAG,SAAS,CAAClQ,YAAY,MAAM4gC,GAAG,CAAC,OAAS,SAASqpD,GAAgC,OAAxBA,EAAOxnE,iBAAwB0qE,EAAarD,EAAIsD,WAAW,MAAQ,SAASnD,GAAgC,OAAxBA,EAAOxnE,iBAAwBqnE,EAAI3oF,UAAU8oF,MAAW,CAAC/5E,EAAG,sBAAsB,CAACtU,MAAM,CAAC,KAAO,QAAQ,MAAQ,YAAYsI,YAAY4lF,EAAIM,GAAG,CAAC,CAAC5zF,IAAI,UAAU+T,GAAG,SAAS8iF,GAAmB,MAAO,CAACn9E,EAAG,eAAe,CAACtU,MAAM,CAAC,MAAQ,QAAQ,YAAY,eAAe,CAACsU,EAAG,eAAe,CAACtU,MAAM,CAAC,GAAK,aAAa,UAAY,GAAG,MAAQkuF,EAAIjpF,mBAAmBwsF,GAAmB,KAAO,GAAG,YAAc,cAAc7C,MAAM,CAAC1zF,MAAOgzF,EAAImD,UAAe,MAAEpnC,SAAS,SAAU4kC,GAAMX,EAAIwD,KAAKxD,EAAImD,UAAW,QAASxC,IAAME,WAAW,qBAAqBz6E,EAAG,0BAA0B,CAAC45E,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAGsuD,EAAkBE,OAAO,IAAI,QAAQ,OAAO,MAAK,KAAQr9E,EAAG,eAAe,CAACtU,MAAM,CAAC,MAAQ,WAAW,YAAY,aAAa,CAACsU,EAAG,WAAW,CAAClQ,YAAY,oBAAoBpE,MAAM,CAAC,IAAMkuF,EAAI0D,OAAO7qB,MAAM8qB,UAAUC,MAAQ,MAAQ,MAAM,QAAU5D,EAAI6D,gBAAgB,MAAQ,WAAW,WAAW,YAAYzpF,YAAY4lF,EAAIM,GAAG,CAAC,CAAC5zF,IAAI,SAAS+T,GAAG,SAASpL,GAC/kC,IAAIksF,EAASlsF,EAAIksF,OACbE,EAAWpsF,EAAIosF,SACnB,MAAO,CAACr7E,EAAG,WAAW,CAACtU,MAAM,CAAC,KAAO,KAAK,IAAMyvF,KAAUn7E,EAAG,OAAO,CAAClQ,YAAY,qCAAqC,CAAC8pF,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAGwsD,SAAgB,CAAC/0F,IAAI,kBAAkB+T,GAAG,SAASpL,GAC5L,IAAIksF,EAASlsF,EAAIksF,OACbE,EAAWpsF,EAAIosF,SACnB,MAAO,CAACr7E,EAAG,WAAW,CAACtU,MAAM,CAAC,KAAO,KAAK,IAAMyvF,EAAO,QAAW,SAAYvB,EAAIwB,qBAAqBxB,EAAImD,UAAU33D,MAAQ,KAAOw0D,EAAIxwF,WAAWiyF,MAAar7E,EAAG,OAAO,CAAClQ,YAAY,qCAAqC,CAAC8pF,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAGwsD,UAAiB,MAAK,GAAMf,MAAM,CAAC1zF,MAAOgzF,EAAImD,UAAkB,SAAEpnC,SAAS,SAAU4kC,GAAMX,EAAIwD,KAAKxD,EAAImD,UAAW,WAAYxC,IAAME,WAAW,yBAAyB,GAAGz6E,EAAG,sBAAsB,CAACtU,MAAM,CAAC,KAAO,WAAW,MAAQ,YAAYsI,YAAY4lF,EAAIM,GAAG,CAAC,CAAC5zF,IAAI,UAAU+T,GAAG,SAAS8iF,GAAmB,MAAO,CAACn9E,EAAG,eAAe,CAACtU,MAAM,CAAC,MAAQ,WAAW,YAAY,aAAa,CAACsU,EAAG,aAAa,CAAClQ,YAAY,eAAewqF,MAAM,CAAC1zF,MAAOgzF,EAAImD,UAAiB,QAAEpnC,SAAS,SAAU4kC,GAAMX,EAAIwD,KAAKxD,EAAImD,UAAW,UAAWxC,IAAME,WAAW,uBAAuBz6E,EAAG,0BAA0B,CAACtU,MAAM,CAAC,MAAQkuF,EAAIjpF,mBAAmBwsF,KAAqB,CAACvD,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAGsuD,EAAkBE,OAAO,IAAI,QAAQ,OAAO,MAAK,KAAQr9E,EAAG,eAAe,CAACtU,MAAM,CAAC,MAAQ,MAAM,YAAY,QAAQ,CAACsU,EAAG,WAAW,CAACtU,MAAM,CAAC,IAAMkuF,EAAI0D,OAAO7qB,MAAM8qB,UAAUC,MAAQ,MAAQ,MAAM,SAAW,GAAG,mBAAkB,EAAM,QAAU5D,EAAI8D,WAAW,OAAS,SAAUtkE,GAAU,OAAOA,EAAOxyB,OAAS,WAAW,QAAQ0zF,MAAM,CAAC1zF,MAAOgzF,EAAImD,UAAc,KAAEpnC,SAAS,SAAU4kC,GAAMX,EAAIwD,KAAKxD,EAAImD,UAAW,OAAQxC,IAAME,WAAW,qBAAqB,GAAGz6E,EAAG,eAAe,CAACtU,MAAM,CAAC,MAAQ,cAAc,YAAY,qBAAqB,CAACsU,EAAG,eAAe,CAAClQ,YAAY,kBAAkBpE,MAAM,CAAC,GAAK,eAAe,QAAUkuF,EAAI+D,cAAcrD,MAAM,CAAC1zF,MAAOgzF,EAAImD,UAAqB,YAAEpnC,SAAS,SAAU4kC,GAAMX,EAAIwD,KAAKxD,EAAImD,UAAW,cAAexC,IAAME,WAAW,2BAA2Bz6E,EAAG,MAAM,CAAClQ,YAAY,0CAA0CpE,MAAM,CAAC,GAAK,kBAAkB,CAACsU,EAAG,SAAS,CAAClQ,YAAY,YAAYkQ,EAAG,SAAS,CAAClQ,YAAY,cAAckQ,EAAG,SAAS,CAAClQ,YAAY,iBAAiBkQ,EAAG,SAAS,CAAClQ,YAAY,aAAakQ,EAAG,SAAS,CAAClQ,YAAY,eAAe,GAAGkQ,EAAG,MAAM,CAAClQ,YAAY,eAAe,CAACkQ,EAAG,WAAW,CAAC47E,WAAW,CAAC,CAACj0F,KAAK,SAASk0F,QAAQ,eAAej1F,MAAM,4BAA8B6zF,WAAW,8BAA8B9pB,UAAU,CAAC,KAAM,KAAQ7gE,YAAY,OAAOpE,MAAM,CAAC,QAAU,UAAU,KAAO,WAAW,CAACkuF,EAAIttB,GAAG,IAAIstB,EAAI/qD,GAAG+qD,EAAImD,UAAU5xF,GAAK,SAAW,QAAQ,OAAO6U,EAAG,WAAW,CAAC47E,WAAW,CAAC,CAACj0F,KAAK,SAASk0F,QAAQ,eAAej1F,MAAM,4BAA8B6zF,WAAW,8BAA8B9pB,UAAU,CAAC,KAAM,KAAQjlE,MAAM,CAAC,KAAO,QAAQ,QAAU,sBAAsB,CAACkuF,EAAIttB,GAAG,cAAc,IAAI,OAAO,MAAK,aAAgB,IACljF,EAAkB,G,0ICRP,SAASsxB,EAAet2F,EAAOkvC,GAI5C,IAAMumD,EAAY9tF,iBAAIolB,KAAKC,MAAMD,KAAKE,UAAUjtB,EAAMqzF,KAAK/zF,SACrDi3F,EAAiB,WACrBd,EAAUn2F,MAAQytB,KAAKC,MAAMD,KAAKE,UAAUjtB,EAAMqzF,KAAK/zF,SAEzD0I,mBAAMhI,EAAMqzF,MAAM,WAChBkD,OAiBF,IAAMX,EAAW,WACf,IAAML,EAAWxoE,KAAKC,MAAMD,KAAKE,UAAUwoE,IAIvCz1F,EAAMqzF,KAAK/zF,MAAMuE,GAAIqrC,EAAK,cAAeqmD,EAASj2F,OACjD4vC,EAAK,WAAYqmD,EAASj2F,OAG/B4vC,EAAK,yCAAyC,IAY1CinD,EAAkB,CACtB,CAAEtC,OAAQ2C,EAAQ,QAAwCzC,SAAU,eACpE,CAAEF,OAAQ2C,EAAQ,QAAwCzC,SAAU,eACpE,CAAEF,OAAQ2C,EAAQ,QAAwCzC,SAAU,uBACpE,CAAEF,OAAQ2C,EAAQ,QAAwCzC,SAAU,eACpE,CAAEF,OAAQ2C,EAAQ,QAAwCzC,SAAU,cACpE,CAAEF,OAAQ2C,EAAQ,QAAyCzC,SAAU,eAIjED,EAAuB,SAAAh2D,GAC3B,OAAIA,EAAK24D,SAAS,QAAgB,UAC9B34D,EAAK24D,SAAS,UAAkB,UAChC34D,EAAK24D,SAAS,OAAe,UAC7B34D,EAAK24D,SAAS,UAAkB,SAChC34D,EAAK24D,SAAS,QAAgB,OAC3B,WAGHL,EAAa,CACjB,CAAExvC,MAAO,OAAQtnD,MAAO,QACxB,CAAEsnD,MAAO,MAAOtnD,MAAO,OACvB,CAAEsnD,MAAO,SAAUtnD,MAAO,UAC1B,CAAEsnD,MAAO,OAAQtnD,MAAO,QACxB,CAAEsnD,MAAO,SAAUtnD,MAAO,WAG5B,MAAO,CACLm2F,YACAc,iBAGAJ,kBACArC,uBACAsC,aACAR,YC+IW,OACfh2F,YAEA+0F,eACA+B,gBACAzyF,aACA0yF,kBACAC,kBACAC,eACAC,4BAGAC,YACAC,cACAl0B,6BAGAm0B,0BACAC,2BAEA5C,YACAI,eAEA1B,OACArjC,kCACAt6C,+CAEArV,OACAo0F,4BACAp/E,aACAxL,aAEA6pF,MACAr+E,YACAxL,aAEAwqF,eACAh/E,cACAxL,cAGA9I,gBACA,OACA8I,gBACAmuB,aACA2C,aAGAw6D,oBAAA,aACA,EASAwB,4BARAb,cACAc,mBAGAJ,oBACAP,aACAQ,eACAtC,yBAGA,EAKA/qF,kCAJAG,oBACAG,uBACAM,cACAE,cAGA,GACA+wB,SACA+T,0BAEAvc,sCAGA,OAEAqjE,YACAG,WACAO,kBACAC,aAGAzsF,YACAE,YACAX,kBACAG,qBAGAgtF,eACAvC,uBAGAhyF,qBChU8X,ICS1X,G,oBAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QC2KA,IACflC,YACAg3F,kBACApqF,mBACA/D,0BACA0uF,iBACArjB,qBACAsjB,qBACAC,cACAR,eACApe,cACAoc,wBAGAyC,kBACAC,0BAEAzC,iBACA,iBAGA,gDAGA0C,qCACA,mDAGA,uBAAAhD,UAAAiD,WACA,iEACA,8DACA,6DACAzvF,iCAEAktF,OAGA,2BAEA,GACA,SACA,YACA,aACA,WACA,YAEA,4BACAltF,kCACA,2BAGA,iBACA,uDAEA,OAEAyvF,WAAAp3F,YAAAg8B,UAAA,uBAGA,GACAx4B,QACA5C,SACA0yF,iBACA+D,eACA9D,cACA91D,QACAw1D,eACAqE,aACAjC,gBAEA,kDACA,aACArC,uCAGA,cACAvrF,sCACAs2C,iBAEA82C,QAGA,aACAptF,uCAAAjE,gBACAu6C,iBAEA82C,QAGA,cACAptF,uCAAAurF,SACAj1C,iBAEA82C,QAIA,GACAjpB,wBAGA,uBAEA,GACA,CAAAhrE,aAAAiiE,gBAAAsxB,OAAAn0F,qBAAA41B,QAAA5tB,cACA,CAAApH,YAAAiiE,gBAAAsxB,OAAAn0F,qBAAA41B,QAAA5tB,aACA,CAAApH,eAAAiiE,gBAAAsxB,OAAAn0F,qBAAA41B,QAAA5tB,gBACA,CAAApH,aAAAiiE,eAAAsxB,OAAAn0F,qBAAA41B,QAAA5tB,cACA,CAAApH,eAAAiiE,aAAAsxB,OAAAn0F,qBAAA41B,QAAA5tB,iBAGA,cACA,2BACA,oBACA,uBACA,oBACA,oBACA,WAGA,cACA,oCACA,+BACA,4BACA,8BACA,0BACA,WAIA,4BACAL,kCACA0qF,aAGA1qF,qCAAA,cACA,kBACA,gDAEA,eACA,IAEAyvF,WAAAp3F,YAAAg8B,WAGA,aACAv0B,uCACAT,UACAlJ,oCACAkK,8BACAuvF,iBAEAx5C,kBACA80C,mBAIAgC,IAEA,kBACA7B,UACAe,YAIA,cAEAmB,6BACApB,MAGA,mBAAAzsF,2BAEA,OACA2rF,OACAH,QACAe,aACAC,UACAC,aACAH,gBACAK,WACA3B,cACAwC,aACAnC,2BACAJ,mBACAG,uBAGAY,oBACAI,uBACAM,6BAGAb,kBAGAtxF,kBACAH,kBAGA0xF,wBAGA9rF,4BC1Y4W,MCSxW,I,oBAAY,eACd,GACAnH,EACA2jE,GACA,EACA,KACA,WACA,OAIa,gB,2CCnBf,IAAImQ,EAAI,EAAQ,QACZpxE,EAAY,EAAQ,QACpB40F,EAAkB,EAAQ,QAC1Bx0F,EAAS,EAAQ,QACjBwB,EAAQ,EAAQ,QAEhBizF,EAAgB,GAAI92F,QACpBiJ,EAAQjF,KAAKiF,MAEb8xE,EAAM,SAAUvwD,EAAG9nB,EAAG8qB,GACxB,OAAa,IAAN9qB,EAAU8qB,EAAM9qB,EAAI,IAAM,EAAIq4E,EAAIvwD,EAAG9nB,EAAI,EAAG8qB,EAAMhD,GAAKuwD,EAAIvwD,EAAIA,EAAG9nB,EAAI,EAAG8qB,IAG9EsiB,EAAM,SAAUtlB,GAClB,IAAI9nB,EAAI,EACJ4vD,EAAK9nC,EACT,MAAO8nC,GAAM,KACX5vD,GAAK,GACL4vD,GAAM,KAER,MAAOA,GAAM,EACX5vD,GAAK,EACL4vD,GAAM,EACN,OAAO5vD,GAGPq0F,EAASD,IACY,UAAvB,KAAQ92F,QAAQ,IACG,MAAnB,GAAIA,QAAQ,IACS,SAArB,MAAMA,QAAQ,IACuB,yBAArC,mBAAsBA,QAAQ,MAC1B6D,GAAM,WAEVizF,EAAcjyF,KAAK,OAKrBwuE,EAAE,CAAE31E,OAAQ,SAAUu/C,OAAO,EAAM22B,OAAQmjB,GAAU,CAEnD/2F,QAAS,SAAiBg3F,GACxB,IAKIzwF,EAAGC,EAAGiE,EAAGsQ,EALTnJ,EAASilF,EAAgBr0F,MACzBy0F,EAAch1F,EAAU+0F,GACxBt3F,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvBw3F,EAAO,GACPz0F,EAAS,IAGT00F,EAAW,SAAUz0F,EAAGsV,GAC1B,IAAIvS,GAAS,EACT2xF,EAAKp/E,EACT,QAASvS,EAAQ,EACf2xF,GAAM10F,EAAIhD,EAAK+F,GACf/F,EAAK+F,GAAS2xF,EAAK,IACnBA,EAAKnuF,EAAMmuF,EAAK,MAIhBC,EAAS,SAAU30F,GACrB,IAAI+C,EAAQ,EACRuS,EAAI,EACR,QAASvS,GAAS,EAChBuS,GAAKtY,EAAK+F,GACV/F,EAAK+F,GAASwD,EAAM+O,EAAItV,GACxBsV,EAAKA,EAAItV,EAAK,KAId40F,EAAe,WACjB,IAAI7xF,EAAQ,EACRwL,EAAI,GACR,QAASxL,GAAS,EAChB,GAAU,KAANwL,GAAsB,IAAVxL,GAA+B,IAAhB/F,EAAK+F,GAAc,CAChD,IAAIwM,EAAI1P,OAAO7C,EAAK+F,IACpBwL,EAAU,KAANA,EAAWgB,EAAIhB,EAAI5O,EAAOwC,KAAK,IAAK,EAAIoN,EAAEpU,QAAUoU,EAE1D,OAAOhB,GAGX,GAAIgmF,EAAc,GAAKA,EAAc,GAAI,MAAMr0F,WAAW,6BAE1D,GAAIgP,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAQA,GAAU,KAAM,OAAOrP,OAAOqP,GAKrD,GAJIA,EAAS,IACXslF,EAAO,IACPtlF,GAAUA,GAERA,EAAS,MAKX,GAJArL,EAAIupC,EAAIl+B,EAASmpE,EAAI,EAAG,GAAI,IAAM,GAClCv0E,EAAID,EAAI,EAAIqL,EAASmpE,EAAI,GAAIx0E,EAAG,GAAKqL,EAASmpE,EAAI,EAAGx0E,EAAG,GACxDC,GAAK,iBACLD,EAAI,GAAKA,EACLA,EAAI,EAAG,CACT4wF,EAAS,EAAG3wF,GACZiE,EAAIwsF,EACJ,MAAOxsF,GAAK,EACV0sF,EAAS,IAAK,GACd1sF,GAAK,EAEP0sF,EAASpc,EAAI,GAAItwE,EAAG,GAAI,GACxBA,EAAIlE,EAAI,EACR,MAAOkE,GAAK,GACV4sF,EAAO,GAAK,IACZ5sF,GAAK,GAEP4sF,EAAO,GAAK5sF,GACZ0sF,EAAS,EAAG,GACZE,EAAO,GACP50F,EAAS60F,SAETH,EAAS,EAAG3wF,GACZ2wF,EAAS,IAAM5wF,EAAG,GAClB9D,EAAS60F,IAAiBj1F,EAAOwC,KAAK,IAAKoyF,GAU7C,OAPEA,EAAc,GAChBl8E,EAAItY,EAAO5E,OACX4E,EAASy0F,GAAQn8E,GAAKk8E,EAClB,KAAO50F,EAAOwC,KAAK,IAAKoyF,EAAcl8E,GAAKtY,EAC3CA,EAAO7B,MAAM,EAAGma,EAAIk8E,GAAe,IAAMx0F,EAAO7B,MAAMma,EAAIk8E,KAE9Dx0F,EAASy0F,EAAOz0F,EACTA,M,sBC3Hb,SAA2Ci3B,EAAMC,GAE/Cx3B,EAAOC,QAAUu3B,EAAQ,EAAQ,UAFnC,CASoB,qBAATre,MAAuBA,MAAc,SAASi8E,GACzD,OAAgB,SAAU39D,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAU33B,QAGnC,IAAID,EAAS03B,EAAiBE,GAAY,CACzCp8B,EAAGo8B,EACHrjB,GAAG,EACHtU,QAAS,IAUV,OANAw3B,EAAQG,GAAUl1B,KAAK1C,EAAOC,QAASD,EAAQA,EAAOC,QAAS03B,GAG/D33B,EAAOuU,GAAI,EAGJvU,EAAOC,QA0Df,OArDA03B,EAAoB9uB,EAAI4uB,EAGxBE,EAAoB9hB,EAAI6hB,EAGxBC,EAAoBvjB,EAAI,SAASnU,EAAS/C,EAAM26B,GAC3CF,EAAoBG,EAAE73B,EAAS/C,IAClCrC,OAAOoB,eAAegE,EAAS/C,EAAM,CAAE/B,YAAY,EAAMwpB,IAAKkT,KAKhEF,EAAoBhf,EAAI,SAAS1Y,GACX,qBAAX6jC,QAA0BA,OAAOuxD,aAC1Cx6F,OAAOoB,eAAegE,EAAS6jC,OAAOuxD,YAAa,CAAEl5F,MAAO,WAE7DtB,OAAOoB,eAAegE,EAAS,aAAc,CAAE9D,OAAO,KAQvDw7B,EAAoB7nB,EAAI,SAAS3T,EAAOwQ,GAEvC,GADU,EAAPA,IAAUxQ,EAAQw7B,EAAoBx7B,IAC/B,EAAPwQ,EAAU,OAAOxQ,EACpB,GAAW,EAAPwQ,GAA8B,kBAAVxQ,GAAsBA,GAASA,EAAM47B,WAAY,OAAO57B,EAChF,IAAIoyC,EAAK1zC,OAAOm+B,OAAO,MAGvB,GAFArB,EAAoBhf,EAAE41B,GACtB1zC,OAAOoB,eAAesyC,EAAI,UAAW,CAAEpzC,YAAY,EAAMgB,MAAOA,IACtD,EAAPwQ,GAA4B,iBAATxQ,EAAmB,IAAI,IAAIN,KAAOM,EAAOw7B,EAAoBvjB,EAAEm6B,EAAI1yC,EAAK,SAASA,GAAO,OAAOM,EAAMN,IAAQqf,KAAK,KAAMrf,IAC9I,OAAO0yC,GAIR5W,EAAoBp3B,EAAI,SAASP,GAChC,IAAI63B,EAAS73B,GAAUA,EAAO+3B,WAC7B,WAAwB,OAAO/3B,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADA23B,EAAoBvjB,EAAEyjB,EAAQ,IAAKA,GAC5BA,GAIRF,EAAoBG,EAAI,SAASp9B,EAAQs9B,GAAY,OAAOn9B,OAAO0d,UAAUC,eAAe9V,KAAKhI,EAAQs9B,IAGzGL,EAAoB1zB,EAAI,GAIjB0zB,EAAoBA,EAAoB7oB,EAAI,QAnF7C,CAsFN,CAEJ,OACA,SAAU9O,EAAQC,EAAS03B,GAEjC,aAEA,IAAI29D,EAAU39D,EAAoB,QAC9B49D,EAAU59D,EAAoB,QAC9B69D,EAAW79D,EAAoB,QAC/BwxB,EAAOxxB,EAAoB,QAC3B89D,EAAY99D,EAAoB,QAChC+9D,EAAc/9D,EAAoB,QAClCg+D,EAAiBh+D,EAAoB,QACrCmJ,EAAiBnJ,EAAoB,QACrCi+D,EAAWj+D,EAAoB,OAApBA,CAA4B,YACvCk+D,IAAU,GAAGj7F,MAAQ,QAAU,GAAGA,QAClCk7F,EAAc,aACdC,EAAO,OACPC,EAAS,SAETC,EAAa,WAAc,OAAO51F,MAEtCL,EAAOC,QAAU,SAAUi2F,EAAMC,EAAM51D,EAAa7C,EAAM04D,EAASC,EAAQzB,GACzEc,EAAYn1D,EAAa41D,EAAMz4D,GAC/B,IAeI+iC,EAAS5kE,EAAKy6F,EAfdC,EAAY,SAAUC,GACxB,IAAKX,GAASW,KAAQ17C,EAAO,OAAOA,EAAM07C,GAC1C,OAAQA,GACN,KAAKT,EAAM,OAAO,WAAkB,OAAO,IAAIx1D,EAAYlgC,KAAMm2F,IACjE,KAAKR,EAAQ,OAAO,WAAoB,OAAO,IAAIz1D,EAAYlgC,KAAMm2F,IACrE,OAAO,WAAqB,OAAO,IAAIj2D,EAAYlgC,KAAMm2F,KAEzDC,EAAMN,EAAO,YACbO,EAAaN,GAAWJ,EACxBW,GAAa,EACb77C,EAAQo7C,EAAK39E,UACbq+E,EAAU97C,EAAM86C,IAAa96C,EAAMg7C,IAAgBM,GAAWt7C,EAAMs7C,GACpES,EAAWD,GAAWL,EAAUH,GAChCU,EAAWV,EAAWM,EAAwBH,EAAU,WAArBM,OAAkCp0F,EACrEs0F,EAAqB,SAARZ,GAAkBr7C,EAAMk8C,SAAqBJ,EAwB9D,GArBIG,IACFT,EAAoBx1D,EAAei2D,EAAWr0F,KAAK,IAAIwzF,IACnDI,IAAsBz7F,OAAO0d,WAAa+9E,EAAkB54D,OAE9Di4D,EAAeW,EAAmBG,GAAK,GAElCnB,GAAiD,mBAA/BgB,EAAkBV,IAAyBzsC,EAAKmtC,EAAmBV,EAAUK,KAIpGS,GAAcE,GAAWA,EAAQ15F,OAAS84F,IAC5CW,GAAa,EACbE,EAAW,WAAoB,OAAOD,EAAQl0F,KAAKrC,QAG/Ci1F,IAAWV,IAAYiB,IAASc,GAAe77C,EAAM86C,IACzDzsC,EAAKrO,EAAO86C,EAAUiB,GAGxBpB,EAAUU,GAAQU,EAClBpB,EAAUgB,GAAOR,EACbG,EAMF,GALA31B,EAAU,CACRn+B,OAAQo0D,EAAaG,EAAWN,EAAUP,GAC1Cp7F,KAAMy7F,EAASQ,EAAWN,EAAUR,GACpCiB,QAASF,GAEPlC,EAAQ,IAAK/4F,KAAO4kE,EAChB5kE,KAAOi/C,GAAQ06C,EAAS16C,EAAOj/C,EAAK4kE,EAAQ5kE,SAC7C05F,EAAQA,EAAQxmB,EAAIwmB,EAAQ5iF,GAAKkjF,GAASc,GAAaR,EAAM11B,GAEtE,OAAOA,IAMH,OACA,SAAUzgE,EAAQC,EAAS03B,GAEjC,IAAI73B,EAAY63B,EAAoB,QAChCs/D,EAAUt/D,EAAoB,QAGlC33B,EAAOC,QAAU,SAAUi3F,GACzB,OAAO,SAAUC,EAAMlrD,GACrB,IAGIpzB,EAAGmV,EAHHlf,EAAI1O,OAAO62F,EAAQE,IACnB37F,EAAIsE,EAAUmsC,GACd13B,EAAIzF,EAAEpT,OAEV,OAAIF,EAAI,GAAKA,GAAK+Y,EAAU2iF,EAAY,QAAKz0F,GAC7CoW,EAAI/J,EAAEkyC,WAAWxlD,GACVqd,EAAI,OAAUA,EAAI,OAAUrd,EAAI,IAAM+Y,IAAMyZ,EAAIlf,EAAEkyC,WAAWxlD,EAAI,IAAM,OAAUwyB,EAAI,MACxFkpE,EAAYpoF,EAAEvQ,OAAO/C,GAAKqd,EAC1Bq+E,EAAYpoF,EAAErQ,MAAMjD,EAAGA,EAAI,GAA2BwyB,EAAI,OAAzBnV,EAAI,OAAU,IAAqB,UAOtE,OACA,SAAU7Y,EAAQC,EAAS03B,GAEjC,aAEA,IAAIy/D,EAAKz/D,EAAoB,OAApBA,EAA4B,GAIrC33B,EAAOC,QAAU,SAAU6D,EAAGR,EAAOJ,GACnC,OAAOI,GAASJ,EAAUk0F,EAAGtzF,EAAGR,GAAO5H,OAAS,KAM5C,OACA,SAAUsE,EAAQC,EAAS03B,GAEjC,aAGA,IAAIv2B,EAAWu2B,EAAoB,QACnC33B,EAAOC,QAAU,WACf,IAAIk3F,EAAO/1F,EAASf,MAChBC,EAAS,GAMb,OALI62F,EAAKtvF,SAAQvH,GAAU,KACvB62F,EAAKn0F,aAAY1C,GAAU,KAC3B62F,EAAKl0F,YAAW3C,GAAU,KAC1B62F,EAAKj0F,UAAS5C,GAAU,KACxB62F,EAAKh0F,SAAQ7C,GAAU,KACpBA,IAMH,OACA,SAAUN,EAAQC,EAAS03B,GAGjC,IAAI0/D,EAAQ1/D,EAAoB,QAC5B2/D,EAAc3/D,EAAoB,QAEtC33B,EAAOC,QAAUpF,OAAOD,MAAQ,SAAc4I,GAC5C,OAAO6zF,EAAM7zF,EAAG8zF,KAMZ,KACA,SAAUt3F,EAAQC,EAAS03B,GAEjC,IAAI4/D,EAAK5/D,EAAoB,QACzBv2B,EAAWu2B,EAAoB,QAC/B6/D,EAAU7/D,EAAoB,QAElC33B,EAAOC,QAAU03B,EAAoB,QAAU98B,OAAOmB,iBAAmB,SAA0BwH,EAAGi0F,GACpGr2F,EAASoC,GACT,IAGIurE,EAHAn0E,EAAO48F,EAAQC,GACf/7F,EAASd,EAAKc,OACdF,EAAI,EAER,MAAOE,EAASF,EAAG+7F,EAAGvuF,EAAExF,EAAGurE,EAAIn0E,EAAKY,KAAMi8F,EAAW1oB,IACrD,OAAOvrE,IAMH,OACA,SAAUxD,EAAQC,EAAS03B,GAEjC,aAEAA,EAAoB,QACpB,IAAI69D,EAAW79D,EAAoB,QAC/BwxB,EAAOxxB,EAAoB,QAC3Bj2B,EAAQi2B,EAAoB,QAC5Bs/D,EAAUt/D,EAAoB,QAC9B+/D,EAAM//D,EAAoB,QAC1Bl2B,EAAak2B,EAAoB,QAEjCggE,EAAUD,EAAI,WAEdE,GAAiCl2F,GAAM,WAIzC,IAAI2yB,EAAK,IAMT,OALAA,EAAGxd,KAAO,WACR,IAAIvW,EAAS,GAEb,OADAA,EAAOkI,OAAS,CAAEqQ,EAAG,KACdvY,GAEyB,MAA3B,GAAG7C,QAAQ42B,EAAI,WAGpBwjE,EAAoC,WAEtC,IAAIxjE,EAAK,OACLyjE,EAAezjE,EAAGxd,KACtBwd,EAAGxd,KAAO,WAAc,OAAOihF,EAAaz8F,MAAMgF,KAAM5E,YACxD,IAAI6E,EAAS,KAAKnC,MAAMk2B,GACxB,OAAyB,IAAlB/zB,EAAO5E,QAA8B,MAAd4E,EAAO,IAA4B,MAAdA,EAAO,GANpB,GASxCN,EAAOC,QAAU,SAAU83F,EAAKr8F,EAAQmb,GACtC,IAAImhF,EAASN,EAAIK,GAEbE,GAAuBv2F,GAAM,WAE/B,IAAI8B,EAAI,GAER,OADAA,EAAEw0F,GAAU,WAAc,OAAO,GACZ,GAAd,GAAGD,GAAKv0F,MAGb00F,EAAoBD,GAAuBv2F,GAAM,WAEnD,IAAIy2F,GAAa,EACb9jE,EAAK,IAST,OARAA,EAAGxd,KAAO,WAAiC,OAAnBshF,GAAa,EAAa,MACtC,UAARJ,IAGF1jE,EAAGiG,YAAc,GACjBjG,EAAGiG,YAAYq9D,GAAW,WAAc,OAAOtjE,IAEjDA,EAAG2jE,GAAQ,KACHG,UACL11F,EAEL,IACGw1F,IACAC,GACQ,YAARH,IAAsBH,GACd,UAARG,IAAoBF,EACrB,CACA,IAAIO,EAAqB,IAAIJ,GACzBK,EAAMxhF,EACRogF,EACAe,EACA,GAAGD,IACH,SAAyBO,EAAc50F,EAAQ1F,EAAKu6F,EAAMC,GACxD,OAAI90F,EAAOmT,OAASpV,EACdw2F,IAAwBO,EAInB,CAAE50F,MAAM,EAAMzH,MAAOi8F,EAAmB11F,KAAKgB,EAAQ1F,EAAKu6F,IAE5D,CAAE30F,MAAM,EAAMzH,MAAOm8F,EAAa51F,KAAK1E,EAAK0F,EAAQ60F,IAEtD,CAAE30F,MAAM,MAGf60F,EAAQJ,EAAI,GACZK,EAAOL,EAAI,GAEf7C,EAASp1F,OAAOmY,UAAWw/E,EAAKU,GAChCtvC,EAAKnnD,OAAOuW,UAAWy/E,EAAkB,GAAVt8F,EAG3B,SAAU6G,EAAQo2F,GAAO,OAAOD,EAAKh2F,KAAKH,EAAQlC,KAAMs4F,IAGxD,SAAUp2F,GAAU,OAAOm2F,EAAKh2F,KAAKH,EAAQlC,WAQ/C,OACA,SAAUL,EAAQC,EAAS03B,GAEjC,IAAIihE,EAAWjhE,EAAoB,QAC/B9mB,EAAW8mB,EAAoB,QAAQ9mB,SAEvC22E,EAAKoR,EAAS/nF,IAAa+nF,EAAS/nF,EAASF,eACjD3Q,EAAOC,QAAU,SAAUiH,GACzB,OAAOsgF,EAAK32E,EAASF,cAAczJ,GAAM,KAMrC,OACA,SAAUlH,EAAQC,EAAS03B,GAGjC,IAAIkhE,EAAMlhE,EAAoB,QAC1B8+D,EAAM9+D,EAAoB,OAApBA,CAA4B,eAElCmhE,EAAkD,aAA5CD,EAAI,WAAc,OAAOp9F,UAArB,IAGVs9F,EAAS,SAAU7xF,EAAIrL,GACzB,IACE,OAAOqL,EAAGrL,GACV,MAAOuI,MAGXpE,EAAOC,QAAU,SAAUiH,GACzB,IAAI1D,EAAG+mE,EAAGyuB,EACV,YAAcv2F,IAAPyE,EAAmB,YAAqB,OAAPA,EAAc,OAEN,iBAApCqjE,EAAIwuB,EAAOv1F,EAAI3I,OAAOqM,GAAKuvF,IAAoBlsB,EAEvDuuB,EAAMD,EAAIr1F,GAEM,WAAfw1F,EAAIH,EAAIr1F,KAAsC,mBAAZA,EAAEy1F,OAAuB,YAAcD,IAM1E,KACA,SAAUh5F,EAAQC,GAExBA,EAAQ+I,EAAInO,OAAOC,uBAKb,OACA,SAAUkF,EAAQC,EAAS03B,GAEjC,IAAI9vB,EAAS8vB,EAAoB,QAC7BwxB,EAAOxxB,EAAoB,QAC3B47B,EAAM57B,EAAoB,QAC1BuhE,EAAMvhE,EAAoB,OAApBA,CAA4B,OAClCwhE,EAAYxhE,EAAoB,QAChCu/D,EAAY,WACZkC,GAAO,GAAKD,GAAWh7F,MAAM+4F,GAEjCv/D,EAAoB,QAAQ0hE,cAAgB,SAAUnyF,GACpD,OAAOiyF,EAAUz2F,KAAKwE,KAGvBlH,EAAOC,QAAU,SAAUuD,EAAG3H,EAAKiJ,EAAKw0F,GACvC,IAAIC,EAA2B,mBAAPz0F,EACpBy0F,IAAYhmC,EAAIzuD,EAAK,SAAWqkD,EAAKrkD,EAAK,OAAQjJ,IAClD2H,EAAE3H,KAASiJ,IACXy0F,IAAYhmC,EAAIzuD,EAAKo0F,IAAQ/vC,EAAKrkD,EAAKo0F,EAAK11F,EAAE3H,GAAO,GAAK2H,EAAE3H,GAAOu9F,EAAI16F,KAAK0B,OAAOvE,MACnF2H,IAAMqE,EACRrE,EAAE3H,GAAOiJ,EACCw0F,EAGD91F,EAAE3H,GACX2H,EAAE3H,GAAOiJ,EAETqkD,EAAK3lD,EAAG3H,EAAKiJ,WALNtB,EAAE3H,GACTstD,EAAK3lD,EAAG3H,EAAKiJ,OAOd87B,SAASroB,UAAW2+E,GAAW,WAChC,MAAsB,mBAAR72F,MAAsBA,KAAK64F,IAAQC,EAAUz2F,KAAKrC,UAM5D,OACA,SAAUL,EAAQC,EAAS03B,GAGjC,IAAIv2B,EAAWu2B,EAAoB,QAC/B6hE,EAAM7hE,EAAoB,QAC1B2/D,EAAc3/D,EAAoB,QAClC8hE,EAAW9hE,EAAoB,OAApBA,CAA4B,YACvC+hE,EAAQ,aACRC,EAAY,YAGZC,EAAa,WAEf,IAIIC,EAJAC,EAASniE,EAAoB,OAApBA,CAA4B,UACrCn8B,EAAI87F,EAAY57F,OAChBg2B,EAAK,IACLqoE,EAAK,IAETD,EAAO1+E,MAAME,QAAU,OACvBqc,EAAoB,QAAQ3lB,YAAY8nF,GACxCA,EAAOh6D,IAAM,cAGb+5D,EAAiBC,EAAOE,cAAcnpF,SACtCgpF,EAAer7E,OACfq7E,EAAeI,MAAMvoE,EAAK,SAAWqoE,EAAK,oBAAsBroE,EAAK,UAAYqoE,GACjFF,EAAe7zE,QACf4zE,EAAaC,EAAelnF,EAC5B,MAAOnX,WAAYo+F,EAAWD,GAAWrC,EAAY97F,IACrD,OAAOo+F,KAGT55F,EAAOC,QAAUpF,OAAOm+B,QAAU,SAAgBx1B,EAAGi0F,GACnD,IAAIn3F,EAQJ,OAPU,OAANkD,GACFk2F,EAAMC,GAAav4F,EAASoC,GAC5BlD,EAAS,IAAIo5F,EACbA,EAAMC,GAAa,KAEnBr5F,EAAOm5F,GAAYj2F,GACdlD,EAASs5F,SACMn3F,IAAfg1F,EAA2Bn3F,EAASk5F,EAAIl5F,EAAQm3F,KAMnD,OACA,SAAUz3F,EAAQC,EAAS03B,GAEjC,IAAIhzB,EAAQgzB,EAAoB,OAApBA,CAA4B,OACpCuiE,EAAMviE,EAAoB,QAC1BmM,EAASnM,EAAoB,QAAQmM,OACrCq2D,EAA8B,mBAAVr2D,EAEpBs2D,EAAWp6F,EAAOC,QAAU,SAAU/C,GACxC,OAAOyH,EAAMzH,KAAUyH,EAAMzH,GAC3Bi9F,GAAcr2D,EAAO5mC,KAAUi9F,EAAar2D,EAASo2D,GAAK,UAAYh9F,KAG1Ek9F,EAASz1F,MAAQA,GAKX,OACA,SAAU3E,EAAQC,GAExBD,EAAOC,SAAU,GAKX,OACA,SAAUD,EAAQC,GAExB,IAAIhC,EAAW,GAAGA,SAElB+B,EAAOC,QAAU,SAAUiH,GACzB,OAAOjJ,EAASyE,KAAKwE,GAAIzI,MAAM,GAAI,KAM/B,OACA,SAAUuB,EAAQC,EAAS03B,GAEjC,aAGA,IAAI49D,EAAU59D,EAAoB,QAC9B2L,EAAU3L,EAAoB,QAC9B0iE,EAAW,WAEf9E,EAAQA,EAAQxmB,EAAIwmB,EAAQ5iF,EAAIglB,EAAoB,OAApBA,CAA4B0iE,GAAW,SAAU,CAC/E/G,SAAU,SAAkBvmC,GAC1B,SAAUzpB,EAAQjjC,KAAM0sD,EAAcstC,GACnC1yF,QAAQolD,EAActxD,UAAUC,OAAS,EAAID,UAAU,QAAKgH,OAO7D,OACA,SAAUzC,EAAQC,EAAS03B,GAEjC,IAAI4/D,EAAK5/D,EAAoB,QACzB2iE,EAAa3iE,EAAoB,QACrC33B,EAAOC,QAAU03B,EAAoB,QAAU,SAAUj9B,EAAQmB,EAAKM,GACpE,OAAOo7F,EAAGvuF,EAAEtO,EAAQmB,EAAKy+F,EAAW,EAAGn+F,KACrC,SAAUzB,EAAQmB,EAAKM,GAEzB,OADAzB,EAAOmB,GAAOM,EACPzB,IAMH,OACA,SAAUsF,EAAQC,EAAS03B,GAGjC,IAAI47B,EAAM57B,EAAoB,QAC1BhxB,EAAWgxB,EAAoB,QAC/B8hE,EAAW9hE,EAAoB,OAApBA,CAA4B,YACvC4iE,EAAc1/F,OAAO0d,UAEzBvY,EAAOC,QAAUpF,OAAOimC,gBAAkB,SAAUt9B,GAElD,OADAA,EAAImD,EAASnD,GACT+vD,EAAI/vD,EAAGi2F,GAAkBj2F,EAAEi2F,GACH,mBAAjBj2F,EAAE82B,aAA6B92B,aAAaA,EAAE82B,YAChD92B,EAAE82B,YAAY/hB,UACd/U,aAAa3I,OAAS0/F,EAAc,OAMzC,OACA,SAAUv6F,EAAQC,EAAS03B,GAEjC,aAEA,IAAIqB,EAASrB,EAAoB,QAC7B2I,EAAa3I,EAAoB,QACjCg+D,EAAiBh+D,EAAoB,QACrC2+D,EAAoB,GAGxB3+D,EAAoB,OAApBA,CAA4B2+D,EAAmB3+D,EAAoB,OAApBA,CAA4B,aAAa,WAAc,OAAOt3B,QAE7GL,EAAOC,QAAU,SAAUsgC,EAAa41D,EAAMz4D,GAC5C6C,EAAYhoB,UAAYygB,EAAOs9D,EAAmB,CAAE54D,KAAM4C,EAAW,EAAG5C,KACxEi4D,EAAep1D,EAAa41D,EAAO,eAM/B,OACA,SAAUn2F,EAAQC,EAAS03B,GAGjC,IAAIhxB,EAAWgxB,EAAoB,QAC/B0/D,EAAQ1/D,EAAoB,QAEhCA,EAAoB,OAApBA,CAA4B,QAAQ,WAClC,OAAO,SAAczwB,GACnB,OAAOmwF,EAAM1wF,EAASO,SAOpB,KACA,SAAUlH,EAAQC,GAGxB,IAAImvD,EAAOvtD,KAAKutD,KACZtoD,EAAQjF,KAAKiF,MACjB9G,EAAOC,QAAU,SAAUiH,GACzB,OAAO4P,MAAM5P,GAAMA,GAAM,GAAKA,EAAK,EAAIJ,EAAQsoD,GAAMloD,KAMjD,KACA,SAAUlH,EAAQC,GAExBD,EAAOC,QAAU,SAAUu6F,EAAQr+F,GACjC,MAAO,CACLhB,aAAuB,EAATq/F,GACdp+F,eAAyB,EAATo+F,GAChBn+F,WAAqB,EAATm+F,GACZr+F,MAAOA,KAOL,OACA,SAAU6D,EAAQC,EAAS03B,GAGjC,IAAIs/D,EAAUt/D,EAAoB,QAClC33B,EAAOC,QAAU,SAAUiH,GACzB,OAAOrM,OAAOo8F,EAAQ/vF,MAMlB,KACA,SAAUlH,EAAQC,EAAS03B,GAEjC,IAAI8iE,EAAQ9iE,EAAoB,OAApBA,CAA4B,SACxC33B,EAAOC,QAAU,SAAU83F,GACzB,IAAI1jE,EAAK,IACT,IACE,MAAM0jE,GAAK1jE,GACX,MAAOjwB,GACP,IAEE,OADAiwB,EAAGomE,IAAS,GACJ,MAAM1C,GAAK1jE,GACnB,MAAOrrB,KACT,OAAO,IAML,OACA,SAAUhJ,EAAQC,EAAS03B,GAEjC,aAGA,IAAI+iE,EAAc/iE,EAAoB,QAElCgjE,EAAa34F,OAAOuW,UAAU1B,KAI9BzP,EAAgBhH,OAAOmY,UAAU9a,QAEjCm9F,EAAcD,EAEdE,EAAa,YAEbC,EAA2B,WAC7B,IAAIC,EAAM,IACNC,EAAM,MAGV,OAFAL,EAAWj4F,KAAKq4F,EAAK,KACrBJ,EAAWj4F,KAAKs4F,EAAK,KACM,IAApBD,EAAIF,IAAyC,IAApBG,EAAIH,GALP,GAS3BI,OAAuCx4F,IAAvB,OAAOoU,KAAK,IAAI,GAEhCqkF,EAAQJ,GAA4BG,EAEpCC,IACFN,EAAc,SAAc58F,GAC1B,IACI4E,EAAWu4F,EAAQx4F,EAAOnH,EAD1B64B,EAAKh0B,KAwBT,OArBI46F,IACFE,EAAS,IAAIn5F,OAAO,IAAMqyB,EAAG14B,OAAS,WAAY++F,EAAYh4F,KAAK2xB,KAEjEymE,IAA0Bl4F,EAAYyxB,EAAGwmE,IAE7Cl4F,EAAQg4F,EAAWj4F,KAAK2xB,EAAIr2B,GAExB88F,GAA4Bn4F,IAC9B0xB,EAAGwmE,GAAcxmE,EAAGxsB,OAASlF,EAAMW,MAAQX,EAAM,GAAGjH,OAASkH,GAE3Dq4F,GAAiBt4F,GAASA,EAAMjH,OAAS,GAI3C0L,EAAc1E,KAAKC,EAAM,GAAIw4F,GAAQ,WACnC,IAAK3/F,EAAI,EAAGA,EAAIC,UAAUC,OAAS,EAAGF,SACfiH,IAAjBhH,UAAUD,KAAkBmH,EAAMnH,QAAKiH,MAK1CE,IAIX3C,EAAOC,QAAU26F,GAKX,OACA,SAAU56F,EAAQC,GAExBA,EAAQ+I,EAAI,GAAGsqD,sBAKT,KACA,SAAUtzD,EAAQC,EAAS03B,GAEjC,IAAIyjE,EAAOzjE,EAAoB,QAC3B9vB,EAAS8vB,EAAoB,QAC7B0jE,EAAS,qBACT12F,EAAQkD,EAAOwzF,KAAYxzF,EAAOwzF,GAAU,KAE/Cr7F,EAAOC,QAAU,SAAUpE,EAAKM,GAC/B,OAAOwI,EAAM9I,KAAS8I,EAAM9I,QAAiB4G,IAAVtG,EAAsBA,EAAQ,MAChE,WAAY,IAAIf,KAAK,CACtBixC,QAAS+uD,EAAK/uD,QACd1/B,KAAMgrB,EAAoB,QAAU,OAAS,SAC7C2jE,UAAW,0CAMP,OACA,SAAUt7F,EAAQC,EAAS03B,GAEjC,IAAI9vB,EAAS8vB,EAAoB,QAC7ByjE,EAAOzjE,EAAoB,QAC3BwxB,EAAOxxB,EAAoB,QAC3B69D,EAAW79D,EAAoB,QAC/Bp7B,EAAMo7B,EAAoB,QAC1BgiE,EAAY,YAEZpE,EAAU,SAAU1jF,EAAM3U,EAAMvB,GAClC,IAQIE,EAAK0/F,EAAKC,EAAKC,EARfC,EAAY7pF,EAAO0jF,EAAQ5iF,EAC3BgpF,EAAY9pF,EAAO0jF,EAAQxiF,EAC3B6oF,EAAY/pF,EAAO0jF,EAAQzxF,EAC3B+3F,EAAWhqF,EAAO0jF,EAAQxmB,EAC1B+sB,EAAUjqF,EAAO0jF,EAAQyD,EACzBz9F,EAASogG,EAAY9zF,EAAS+zF,EAAY/zF,EAAO3K,KAAU2K,EAAO3K,GAAQ,KAAO2K,EAAO3K,IAAS,IAAIy8F,GACrG15F,EAAU07F,EAAYP,EAAOA,EAAKl+F,KAAUk+F,EAAKl+F,GAAQ,IACzD6+F,EAAW97F,EAAQ05F,KAAe15F,EAAQ05F,GAAa,IAG3D,IAAK99F,KADD8/F,IAAWhgG,EAASuB,GACZvB,EAEV4/F,GAAOG,GAAangG,QAA0BkH,IAAhBlH,EAAOM,GAErC2/F,GAAOD,EAAMhgG,EAASI,GAAQE,GAE9B4/F,EAAMK,GAAWP,EAAMh/F,EAAIi/F,EAAK3zF,GAAUg0F,GAA0B,mBAAPL,EAAoBj/F,EAAIqkC,SAASl+B,KAAM84F,GAAOA,EAEvGjgG,GAAQi6F,EAASj6F,EAAQM,EAAK2/F,EAAK3pF,EAAO0jF,EAAQ9hF,GAElDxT,EAAQpE,IAAQ2/F,GAAKryC,EAAKlpD,EAASpE,EAAK4/F,GACxCI,GAAYE,EAASlgG,IAAQ2/F,IAAKO,EAASlgG,GAAO2/F,IAG1D3zF,EAAOuzF,KAAOA,EAEd7F,EAAQ5iF,EAAI,EACZ4iF,EAAQxiF,EAAI,EACZwiF,EAAQzxF,EAAI,EACZyxF,EAAQxmB,EAAI,EACZwmB,EAAQyD,EAAI,GACZzD,EAAQ3hF,EAAI,GACZ2hF,EAAQ9hF,EAAI,GACZ8hF,EAAQ7pB,EAAI,IACZ1rE,EAAOC,QAAUs1F,GAKX,OACA,SAAUv1F,EAAQC,EAAS03B,GAGjC,IAAI49D,EAAU59D,EAAoB,QAC9ByjE,EAAOzjE,EAAoB,QAC3Bj2B,EAAQi2B,EAAoB,QAChC33B,EAAOC,QAAU,SAAU83F,EAAKlhF,GAC9B,IAAIjH,GAAMwrF,EAAKvgG,QAAU,IAAIk9F,IAAQl9F,OAAOk9F,GACxC0D,EAAM,GACVA,EAAI1D,GAAOlhF,EAAKjH,GAChB2lF,EAAQA,EAAQzxF,EAAIyxF,EAAQ5iF,EAAIjR,GAAM,WAAckO,EAAG,MAAQ,SAAU6rF,KAMrE,OACA,SAAUz7F,EAAQC,EAAS03B,GAEjC,aAGA,IAAInyB,EAAUmyB,EAAoB,QAC9BqkE,EAAch6F,OAAOuW,UAAU1B,KAInC7W,EAAOC,QAAU,SAAUyrE,EAAG5nE,GAC5B,IAAI+S,EAAO60D,EAAE70D,KACb,GAAoB,oBAATA,EAAqB,CAC9B,IAAIvW,EAASuW,EAAKnU,KAAKgpE,EAAG5nE,GAC1B,GAAsB,kBAAXxD,EACT,MAAM,IAAImF,UAAU,sEAEtB,OAAOnF,EAET,GAAmB,WAAfkF,EAAQkmE,GACV,MAAM,IAAIjmE,UAAU,+CAEtB,OAAOu2F,EAAYt5F,KAAKgpE,EAAG5nE,KAMvB,OACA,SAAU9D,EAAQC,EAAS03B,GAEjC,IAAIskE,EAAStkE,EAAoB,OAApBA,CAA4B,QACrCuiE,EAAMviE,EAAoB,QAC9B33B,EAAOC,QAAU,SAAUpE,GACzB,OAAOogG,EAAOpgG,KAASogG,EAAOpgG,GAAOq+F,EAAIr+F,MAMrC,OACA,SAAUmE,EAAQC,EAAS03B,GAGjC,IAAIkhE,EAAMlhE,EAAoB,QAE9B33B,EAAOC,QAAUpF,OAAO,KAAKy4D,qBAAqB,GAAKz4D,OAAS,SAAUqM,GACxE,MAAkB,UAAX2xF,EAAI3xF,GAAkBA,EAAG/I,MAAM,IAAMtD,OAAOqM,KAM/C,KACA,SAAUlH,EAAQC,EAAS03B,GAEjC,aAGA,IAAI49D,EAAU59D,EAAoB,QAC9BukE,EAAYvkE,EAAoB,OAApBA,EAA4B,GAE5C49D,EAAQA,EAAQxmB,EAAG,QAAS,CAC1BukB,SAAU,SAAkB31E,GAC1B,OAAOu+E,EAAU77F,KAAMsd,EAAIliB,UAAUC,OAAS,EAAID,UAAU,QAAKgH,MAIrEk1B,EAAoB,OAApBA,CAA4B,aAKtB,KACA,SAAU33B,EAAQC,EAAS03B,GAGjC,IAAIwkE,EAAUxkE,EAAoB,QAC9Bs/D,EAAUt/D,EAAoB,QAClC33B,EAAOC,QAAU,SAAUiH,GACzB,OAAOi1F,EAAQlF,EAAQ/vF,MAMnB,OACA,SAAUlH,EAAQC,GAExB,IAAIuY,EAAiB,GAAGA,eACxBxY,EAAOC,QAAU,SAAUiH,EAAIrL,GAC7B,OAAO2c,EAAe9V,KAAKwE,EAAIrL,KAM3B,OACA,SAAUmE,EAAQC,EAAS03B,GAGjC,IAAIihE,EAAWjhE,EAAoB,QAGnC33B,EAAOC,QAAU,SAAUiH,EAAIpD,GAC7B,IAAK80F,EAAS1xF,GAAK,OAAOA,EAC1B,IAAI0I,EAAI9K,EACR,GAAIhB,GAAkC,mBAArB8L,EAAK1I,EAAGjJ,YAA4B26F,EAAS9zF,EAAM8K,EAAGlN,KAAKwE,IAAM,OAAOpC,EACzF,GAAgC,mBAApB8K,EAAK1I,EAAGk1F,WAA2BxD,EAAS9zF,EAAM8K,EAAGlN,KAAKwE,IAAM,OAAOpC,EACnF,IAAKhB,GAAkC,mBAArB8L,EAAK1I,EAAGjJ,YAA4B26F,EAAS9zF,EAAM8K,EAAGlN,KAAKwE,IAAM,OAAOpC,EAC1F,MAAMW,UAAU,6CAMZ,KACA,SAAUzF,EAAQC,EAAS03B,GAEjC,aAGA,IAAI6/D,EAAU7/D,EAAoB,QAC9B0kE,EAAO1kE,EAAoB,QAC3B2kE,EAAM3kE,EAAoB,QAC1BhxB,EAAWgxB,EAAoB,QAC/BwkE,EAAUxkE,EAAoB,QAC9B4kE,EAAU1hG,OAAOyd,OAGrBtY,EAAOC,SAAWs8F,GAAW5kE,EAAoB,OAApBA,EAA4B,WACvD,IAAIxzB,EAAI,GACJ60F,EAAI,GAEJl1F,EAAIggC,SACJ1wB,EAAI,uBAGR,OAFAjP,EAAEL,GAAK,EACPsP,EAAEjV,MAAM,IAAIvC,SAAQ,SAAUgd,GAAKogF,EAAEpgF,GAAKA,KACd,GAArB2jF,EAAQ,GAAIp4F,GAAGL,IAAWjJ,OAAOD,KAAK2hG,EAAQ,GAAIvD,IAAIt6F,KAAK,KAAO0U,KACtE,SAAgB7X,EAAQI,GAC3B,IAAI4uE,EAAI5jE,EAASpL,GACbihG,EAAO/gG,UAAUC,OACjB4H,EAAQ,EACRm5F,EAAaJ,EAAKrzF,EAClB0zF,EAASJ,EAAItzF,EACjB,MAAOwzF,EAAOl5F,EAAO,CACnB,IAIIzH,EAJAiI,EAAIq4F,EAAQ1gG,UAAU6H,MACtB1I,EAAO6hG,EAAajF,EAAQ1zF,GAAGpG,OAAO++F,EAAW34F,IAAM0zF,EAAQ1zF,GAC/DpI,EAASd,EAAKc,OACd4M,EAAI,EAER,MAAO5M,EAAS4M,EAAOo0F,EAAOh6F,KAAKoB,EAAGjI,EAAMjB,EAAK0N,QAAOiiE,EAAE1uE,GAAOiI,EAAEjI,IACnE,OAAO0uE,GACPgyB,GAKE,KACA,SAAUv8F,EAAQC,GAGxB,IAAI4H,EAAS7H,EAAOC,QAA2B,oBAAVwK,QAAyBA,OAAO5I,MAAQA,KACzE4I,OAAwB,oBAAR0O,MAAuBA,KAAKtX,MAAQA,KAAOsX,KAE3DynB,SAAS,cAATA,GACc,iBAAP+7D,MAAiBA,IAAM90F,IAK5B,OACA,SAAU7H,EAAQC,EAAS03B,GAEjC,IAAI73B,EAAY63B,EAAoB,QAChC9wB,EAAMhF,KAAKgF,IACXjF,EAAMC,KAAKD,IACf5B,EAAOC,QAAU,SAAUqD,EAAO5H,GAEhC,OADA4H,EAAQxD,EAAUwD,GACXA,EAAQ,EAAIuD,EAAIvD,EAAQ5H,EAAQ,GAAKkG,EAAI0B,EAAO5H,KAMnD,OACA,SAAUsE,EAAQC,GAExBD,EAAOC,QAAU,SAAU4W,GACzB,IACE,QAASA,IACT,MAAOzS,GACP,OAAO,KAOL,OACA,SAAUpE,EAAQC,EAAS03B,GAEjC,IAAI8K,EAAM9K,EAAoB,QAAQ3uB,EAClCuqD,EAAM57B,EAAoB,QAC1B8+D,EAAM9+D,EAAoB,OAApBA,CAA4B,eAEtC33B,EAAOC,QAAU,SAAUiH,EAAIhC,EAAK03F,GAC9B11F,IAAOqsD,EAAIrsD,EAAK01F,EAAO11F,EAAKA,EAAGqR,UAAWk+E,IAAMh0D,EAAIv7B,EAAIuvF,EAAK,CAAEr6F,cAAc,EAAMD,MAAO+I,MAM1F,KACA,SAAUlF,EAAQC,GAExB,IAAIm7F,EAAOp7F,EAAOC,QAAU,CAAEosC,QAAS,SACrB,iBAAPwwD,MAAiBA,IAAMzB,IAK5B,OACA,SAAUp7F,EAAQC,GAExBD,EAAOC,QAAU,IAKX,OACA,SAAUD,EAAQC,EAAS03B,GAEjC,IAAIv2B,EAAWu2B,EAAoB,QAC/BmlE,EAAiBnlE,EAAoB,QACrColE,EAAcplE,EAAoB,QAClC4/D,EAAK18F,OAAOoB,eAEhBgE,EAAQ+I,EAAI2uB,EAAoB,QAAU98B,OAAOoB,eAAiB,SAAwBuH,EAAGurE,EAAGiuB,GAI9F,GAHA57F,EAASoC,GACTurE,EAAIguB,EAAYhuB,GAAG,GACnB3tE,EAAS47F,GACLF,EAAgB,IAClB,OAAOvF,EAAG/zF,EAAGurE,EAAGiuB,GAChB,MAAO54F,IACT,GAAI,QAAS44F,GAAc,QAASA,EAAY,MAAMv3F,UAAU,4BAEhE,MADI,UAAWu3F,IAAYx5F,EAAEurE,GAAKiuB,EAAW7gG,OACtCqH,IAMH,OACA,SAAUxD,EAAQC,EAAS03B,GAGjC,IAAIslE,EAAYtlE,EAAoB,QACpC33B,EAAOC,QAAU,SAAU2P,EAAIunF,EAAMz7F,GAEnC,GADAuhG,EAAUrtF,QACGnN,IAAT00F,EAAoB,OAAOvnF,EAC/B,OAAQlU,GACN,KAAK,EAAG,OAAO,SAAUmd,GACvB,OAAOjJ,EAAGlN,KAAKy0F,EAAMt+E,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGmV,GAC1B,OAAOpe,EAAGlN,KAAKy0F,EAAMt+E,EAAGmV,IAE1B,KAAK,EAAG,OAAO,SAAUnV,EAAGmV,EAAGnY,GAC7B,OAAOjG,EAAGlN,KAAKy0F,EAAMt+E,EAAGmV,EAAGnY,IAG/B,OAAO,WACL,OAAOjG,EAAGvU,MAAM87F,EAAM17F,cAOpB,OACA,SAAUuE,EAAQC,EAAS03B,GAGjC,IAAIulE,EAAcvlE,EAAoB,OAApBA,CAA4B,eAC1CwlE,EAAa/sF,MAAMmI,eACQ9V,GAA3B06F,EAAWD,IAA2BvlE,EAAoB,OAApBA,CAA4BwlE,EAAYD,EAAa,IAC/Fl9F,EAAOC,QAAU,SAAUpE,GACzBshG,EAAWD,GAAarhG,IAAO,IAM3B,OACA,SAAUmE,EAAQC,EAAS03B,GAGjC,IAAI73B,EAAY63B,EAAoB,QAChC/1B,EAAMC,KAAKD,IACf5B,EAAOC,QAAU,SAAUiH,GACzB,OAAOA,EAAK,EAAItF,EAAI9B,EAAUoH,GAAK,kBAAoB,IAMnD,OACA,SAAUlH,EAAQC,EAAS03B,GAGjC33B,EAAOC,SAAW03B,EAAoB,OAApBA,EAA4B,WAC5C,OAA+E,GAAxE98B,OAAOoB,eAAe,GAAI,IAAK,CAAE0oB,IAAK,WAAc,OAAO,KAAQ9L,MAMtE,KACA,SAAU7Y,EAAQC,GAExBD,EAAOC,QAAUm1F,GAIX,KACA,SAAUp1F,EAAQC,EAAS03B,GAEjC,aAGA,IAAIv2B,EAAWu2B,EAAoB,QAC/BhxB,EAAWgxB,EAAoB,QAC/Bp2B,EAAWo2B,EAAoB,QAC/B73B,EAAY63B,EAAoB,QAChCr2B,EAAqBq2B,EAAoB,QACzC/wB,EAAa+wB,EAAoB,QACjC9wB,EAAMhF,KAAKgF,IACXjF,EAAMC,KAAKD,IACXkF,EAAQjF,KAAKiF,MACbC,EAAuB,4BACvBC,EAAgC,oBAEhCC,EAAgB,SAAUC,GAC5B,YAAczE,IAAPyE,EAAmBA,EAAK9G,OAAO8G,IAIxCywB,EAAoB,OAApBA,CAA4B,UAAW,GAAG,SAAUs/D,EAAS9vF,EAASi2F,EAAUj7F,GAC9E,MAAO,CAGL,SAAiBsF,EAAaC,GAC5B,IAAIlE,EAAIyzF,EAAQ52F,MACZuP,OAAoBnN,GAAfgF,OAA2BhF,EAAYgF,EAAYN,GAC5D,YAAc1E,IAAPmN,EACHA,EAAGlN,KAAK+E,EAAajE,EAAGkE,GACxB01F,EAAS16F,KAAKtC,OAAOoD,GAAIiE,EAAaC,IAI5C,SAAUhE,EAAQgE,GAChB,IAAI/D,EAAMxB,EAAgBi7F,EAAU15F,EAAQrD,KAAMqH,GAClD,GAAI/D,EAAIC,KAAM,OAAOD,EAAIxH,MAEzB,IAAI0H,EAAKzC,EAASsC,GACdI,EAAI1D,OAAOC,MACXuH,EAA4C,oBAAjBF,EAC1BE,IAAmBF,EAAetH,OAAOsH,IAC9C,IAAIG,EAAShE,EAAGgE,OAChB,GAAIA,EAAQ,CACV,IAAIC,EAAcjE,EAAGX,QACrBW,EAAGjB,UAAY,EAEjB,IAAImF,EAAU,GACd,MAAO,EAAM,CACX,IAAIzH,EAASsG,EAAW/C,EAAIC,GAC5B,GAAe,OAAXxD,EAAiB,MAErB,GADAyH,EAAQ3M,KAAKkF,IACRuH,EAAQ,MACb,IAAIG,EAAW5H,OAAOE,EAAO,IACZ,KAAb0H,IAAiBnE,EAAGjB,UAAYtB,EAAmBwC,EAAGvC,EAASsC,EAAGjB,WAAYkF,IAIpF,IAFA,IAAIG,EAAoB,GACpBC,EAAqB,EAChB1M,EAAI,EAAGA,EAAIuM,EAAQrM,OAAQF,IAAK,CACvC8E,EAASyH,EAAQvM,GASjB,IARA,IAAI2M,EAAU/H,OAAOE,EAAO,IACxB8H,EAAWvB,EAAIjF,EAAI9B,EAAUQ,EAAOgD,OAAQQ,EAAEpI,QAAS,GACvD2M,EAAW,GAMNC,EAAI,EAAGA,EAAIhI,EAAO5E,OAAQ4M,IAAKD,EAASjN,KAAK6L,EAAc3G,EAAOgI,KAC3E,IAAIC,EAAgBjI,EAAOkI,OAC3B,GAAIZ,EAAmB,CACrB,IAAIa,EAAe,CAACN,GAASzK,OAAO2K,EAAUD,EAAUtE,QAClCrB,IAAlB8F,GAA6BE,EAAarN,KAAKmN,GACnD,IAAIG,EAActI,OAAOsH,EAAarM,WAAMoH,EAAWgG,SAEvDC,EAAcC,EAAgBR,EAASrE,EAAGsE,EAAUC,EAAUE,EAAeb,GAE3EU,GAAYF,IACdD,GAAqBnE,EAAErF,MAAMyJ,EAAoBE,GAAYM,EAC7DR,EAAqBE,EAAWD,EAAQzM,QAG5C,OAAOuM,EAAoBnE,EAAErF,MAAMyJ,KAKvC,SAASS,EAAgBR,EAASnK,EAAKoK,EAAUC,EAAUE,EAAeG,GACxE,IAAIE,EAAUR,EAAWD,EAAQzM,OAC7BmN,EAAIR,EAAS3M,OACbX,EAAUiM,EAKd,YAJsBvE,IAAlB8F,IACFA,EAAgB5B,EAAS4B,GACzBxN,EAAUgM,GAELq2F,EAAS16F,KAAKgG,EAAa3N,GAAS,SAAU4H,EAAOmG,GAC1D,IAAIC,EACJ,OAAQD,EAAGvK,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO4J,EACjB,IAAK,IAAK,OAAOnK,EAAIS,MAAM,EAAG2J,GAC9B,IAAK,IAAK,OAAOpK,EAAIS,MAAMmK,GAC3B,IAAK,IACHG,EAAUR,EAAcO,EAAGrK,MAAM,GAAI,IACrC,MACF,QACE,IAAI8B,GAAKuI,EACT,GAAU,IAANvI,EAAS,OAAOoC,EACpB,GAAIpC,EAAIsI,EAAG,CACT,IAAIG,EAAIlC,EAAMvG,EAAI,IAClB,OAAU,IAANyI,EAAgBrG,EAChBqG,GAAKH,OAA8BpG,IAApB4F,EAASW,EAAI,GAAmBF,EAAGvK,OAAO,GAAK8J,EAASW,EAAI,GAAKF,EAAGvK,OAAO,GACvFoE,EAEToG,EAAUV,EAAS9H,EAAI,GAE3B,YAAmBkC,IAAZsG,EAAwB,GAAKA,UAQpC,KACA,SAAU/I,EAAQC,EAAS03B,GAGjC,IAAIihE,EAAWjhE,EAAoB,QAC/BkhE,EAAMlhE,EAAoB,QAC1B8iE,EAAQ9iE,EAAoB,OAApBA,CAA4B,SACxC33B,EAAOC,QAAU,SAAUiH,GACzB,IAAI/F,EACJ,OAAOy3F,EAAS1xF,UAAmCzE,KAA1BtB,EAAW+F,EAAGuzF,MAA0Bt5F,EAAsB,UAAX03F,EAAI3xF,MAM5E,KACA,SAAUlH,EAAQC,EAAS03B,GA+CjC,IA7CA,IAAI0lE,EAAa1lE,EAAoB,QACjC6/D,EAAU7/D,EAAoB,QAC9B69D,EAAW79D,EAAoB,QAC/B9vB,EAAS8vB,EAAoB,QAC7BwxB,EAAOxxB,EAAoB,QAC3B89D,EAAY99D,EAAoB,QAChC+/D,EAAM//D,EAAoB,QAC1Bi+D,EAAW8B,EAAI,YACf4F,EAAgB5F,EAAI,eACpB6F,EAAc9H,EAAUrlF,MAExBotF,EAAe,CACjBC,aAAa,EACbC,qBAAqB,EACrBC,cAAc,EACdC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,EACfhxC,cAAc,EACdixC,sBAAsB,EACtBC,UAAU,EACVC,mBAAmB,EACnB1tE,gBAAgB,EAChB2tE,iBAAiB,EACjBC,mBAAmB,EACnBC,WAAW,EACXC,eAAe,EACfC,cAAc,EACd9tE,UAAU,EACV+tE,kBAAkB,EAClBC,QAAQ,EACRC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,cAAc,EACdC,eAAe,EACfC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,WAAW,GAGJC,EAAc7H,EAAQgG,GAAehiG,EAAI,EAAGA,EAAI6jG,EAAY3jG,OAAQF,IAAK,CAChF,IAIIK,EAJAs6F,EAAOkJ,EAAY7jG,GACnB8jG,EAAW9B,EAAarH,GACxBoJ,EAAa13F,EAAOsuF,GACpBr7C,EAAQykD,GAAcA,EAAWhnF,UAErC,GAAIuiC,IACGA,EAAM86C,IAAWzsC,EAAKrO,EAAO86C,EAAU2H,GACvCziD,EAAMwiD,IAAgBn0C,EAAKrO,EAAOwiD,EAAenH,GACtDV,EAAUU,GAAQoH,EACd+B,GAAU,IAAKzjG,KAAOwhG,EAAiBviD,EAAMj/C,IAAM25F,EAAS16C,EAAOj/C,EAAKwhG,EAAWxhG,IAAM,KAO3F,KACA,SAAUmE,EAAQC,EAAS03B,GAEjC,aAEA,IAAIl2B,EAAak2B,EAAoB,QACrCA,EAAoB,OAApBA,CAA4B,CAC1Bp8B,OAAQ,SACRu/C,OAAO,EACP22B,OAAQhwE,IAAe,IAAIoV,MAC1B,CACDA,KAAMpV,KAMF,KACA,SAAUzB,EAAQC,GAGxBD,EAAOC,QAAU,SAAUiH,GACzB,QAAUzE,GAANyE,EAAiB,MAAMzB,UAAU,yBAA2ByB,GAChE,OAAOA,IAMH,KACA,SAAUlH,EAAQC,EAAS03B,GAIjC,IAAI6nE,EAAY7nE,EAAoB,QAChCp2B,EAAWo2B,EAAoB,QAC/B8nE,EAAkB9nE,EAAoB,QAC1C33B,EAAOC,QAAU,SAAUy/F,GACzB,OAAO,SAAUC,EAAOhiF,EAAIiiF,GAC1B,IAGIzjG,EAHAqH,EAAIg8F,EAAUG,GACdjkG,EAAS6F,EAASiC,EAAE9H,QACpB4H,EAAQm8F,EAAgBG,EAAWlkG,GAIvC,GAAIgkG,GAAe/hF,GAAMA,GAAI,MAAOjiB,EAAS4H,EAG3C,GAFAnH,EAAQqH,EAAEF,KAENnH,GAASA,EAAO,OAAO,OAEtB,KAAMT,EAAS4H,EAAOA,IAAS,IAAIo8F,GAAep8F,KAASE,IAC5DA,EAAEF,KAAWqa,EAAI,OAAO+hF,GAAep8F,GAAS,EACpD,OAAQo8F,IAAgB,KAOxB,KACA,SAAU1/F,EAAQ6/F,EAAqBloE,GAE7C,cAC4B,SAAS9vB,GAAwC8vB,EAAoBvjB,EAAEyrF,EAAqB,KAAK,WAAa,OAAOC,KAClHnoE,EAAoBvjB,EAAEyrF,EAAqB,KAAK,WAAa,OAAOx6C,KACpE1tB,EAAoBvjB,EAAEyrF,EAAqB,KAAK,WAAa,OAAOl0F,KACpEgsB,EAAoBvjB,EAAEyrF,EAAqB,KAAK,WAAa,OAAOE,KACRpoE,EAAoB,QAI/G,SAASqoE,IACP,MAAsB,qBAAXv1F,OACFA,OAAOkB,QAGT9D,EAAO8D,QAGhB,IAAIA,EAAUq0F,IAEd,SAASC,EAAOrwF,GACd,IAAIozB,EAAQnoC,OAAOm+B,OAAO,MAC1B,OAAO,SAAkBh7B,GACvB,IAAIkiG,EAAMl9D,EAAMhlC,GAChB,OAAOkiG,IAAQl9D,EAAMhlC,GAAO4R,EAAG5R,KAInC,IAAIs3B,EAAQ,SACR+vB,EAAW46C,GAAO,SAAUjiG,GAC9B,OAAOA,EAAIP,QAAQ63B,GAAO,SAAU5hB,EAAGmC,GACrC,OAAOA,EAAIA,EAAErX,cAAgB,SAIjC,SAASuhG,EAAW/uF,GACS,OAAvBA,EAAKmvF,eACPnvF,EAAKmvF,cAAcjvF,YAAYF,GAInC,SAAS8uF,EAAaM,EAAYpvF,EAAM5I,GACtC,IAAI++B,EAAuB,IAAb/+B,EAAiBg4F,EAAWr/F,SAAS,GAAKq/F,EAAWr/F,SAASqH,EAAW,GAAGwY,YAC1Fw/E,EAAWz/E,aAAa3P,EAAMm2B,MAIHzkC,KAAKrC,KAAMs3B,EAAoB,UAItD,KACA,SAAU33B,EAAQC,EAAS03B,GAEjC33B,EAAOC,SAAW03B,EAAoB,UAAYA,EAAoB,OAApBA,EAA4B,WAC5E,OAA+G,GAAxG98B,OAAOoB,eAAe07B,EAAoB,OAApBA,CAA4B,OAAQ,IAAK,CAAEhT,IAAK,WAAc,OAAO,KAAQ9L,MAMtG,KACA,SAAU7Y,EAAQC,GAExB,IAAI2oE,EAGJA,EAAI,WACH,OAAOvoE,KADJ,GAIJ,IAECuoE,EAAIA,GAAK,IAAIhoC,SAAS,cAAb,GACR,MAAOx8B,GAEc,kBAAXqG,SAAqBm+D,EAAIn+D,QAOrCzK,EAAOC,QAAU2oE,GAKX,KACA,SAAU5oE,EAAQC,GAExB,IAAIS,EAAK,EACL2/F,EAAKx+F,KAAKy+F,SACdtgG,EAAOC,QAAU,SAAUpE,GACzB,MAAO,UAAU6B,YAAe+E,IAAR5G,EAAoB,GAAKA,EAAK,QAAS6E,EAAK2/F,GAAIpiG,SAAS,OAM7E,KACA,SAAU+B,EAAQC,EAAS03B,GAEjC,aAEA,IAAI4oE,EAAmB5oE,EAAoB,QACvCtI,EAAOsI,EAAoB,QAC3B89D,EAAY99D,EAAoB,QAChC6nE,EAAY7nE,EAAoB,QAMpC33B,EAAOC,QAAU03B,EAAoB,OAApBA,CAA4BvnB,MAAO,SAAS,SAAUowF,EAAUhK,GAC/En2F,KAAKuhE,GAAK49B,EAAUgB,GACpBngG,KAAK2wB,GAAK,EACV3wB,KAAKogG,GAAKjK,KAET,WACD,IAAIhzF,EAAInD,KAAKuhE,GACT40B,EAAOn2F,KAAKogG,GACZn9F,EAAQjD,KAAK2wB,KACjB,OAAKxtB,GAAKF,GAASE,EAAE9H,QACnB2E,KAAKuhE,QAAKn/D,EACH4sB,EAAK,IAEaA,EAAK,EAApB,QAARmnE,EAA+BlzF,EACvB,UAARkzF,EAAiChzF,EAAEF,GACxB,CAACA,EAAOE,EAAEF,OACxB,UAGHmyF,EAAUiL,UAAYjL,EAAUrlF,MAEhCmwF,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAKX,KACA,SAAUvgG,EAAQC,EAAS03B,GAEjC,IAAIihE,EAAWjhE,EAAoB,QACnC33B,EAAOC,QAAU,SAAUiH,GACzB,IAAK0xF,EAAS1xF,GAAK,MAAMzB,UAAUyB,EAAK,sBACxC,OAAOA,IAMH,KACA,SAAUlH,EAAQC,EAAS03B,GAEjC,IAAI47B,EAAM57B,EAAoB,QAC1B6nE,EAAY7nE,EAAoB,QAChCgpE,EAAehpE,EAAoB,OAApBA,EAA4B,GAC3C8hE,EAAW9hE,EAAoB,OAApBA,CAA4B,YAE3C33B,EAAOC,QAAU,SAAUvF,EAAQ28B,GACjC,IAGIx7B,EAHA2H,EAAIg8F,EAAU9kG,GACdc,EAAI,EACJ8E,EAAS,GAEb,IAAKzE,KAAO2H,EAAO3H,GAAO49F,GAAUlmC,EAAI/vD,EAAG3H,IAAQyE,EAAOlF,KAAKS,GAE/D,MAAOw7B,EAAM37B,OAASF,EAAO+3D,EAAI/vD,EAAG3H,EAAMw7B,EAAM77B,SAC7CmlG,EAAargG,EAAQzE,IAAQyE,EAAOlF,KAAKS,IAE5C,OAAOyE,IAMH,KACA,SAAUN,EAAQC,EAAS03B,GAGjC,IAAIx2B,EAAWw2B,EAAoB,QAC/Bs/D,EAAUt/D,EAAoB,QAElC33B,EAAOC,QAAU,SAAUk3F,EAAMpqC,EAAcopC,GAC7C,GAAIh1F,EAAS4rD,GAAe,MAAMtnD,UAAU,UAAY0wF,EAAO,0BAC/D,OAAO/1F,OAAO62F,EAAQE,MAMlB,KACA,SAAUn3F,EAAQC,GAExBD,EAAOC,QAAU,SAAUiH,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,IAMjD,KACA,SAAUlH,EAAQC,GAExBD,EAAOC,QAAU,SAAU2D,EAAMzH,GAC/B,MAAO,CAAEA,MAAOA,EAAOyH,OAAQA,KAM3B,KACA,SAAU5D,EAAQC,GAExBD,EAAOC,QAAU,SAAUiH,GACzB,GAAiB,mBAANA,EAAkB,MAAMzB,UAAUyB,EAAK,uBAClD,OAAOA,IAMH,KACA,SAAUlH,EAAQC,GAGxBD,EAAOC,QAAU,gGAEf9B,MAAM,MAKF,KACA,SAAU6B,EAAQC,EAAS03B,GAEjC,aAGA,IAAI49D,EAAU59D,EAAoB,QAC9Bp2B,EAAWo2B,EAAoB,QAC/B2L,EAAU3L,EAAoB,QAC9BipE,EAAc,aACdC,EAAc,GAAGD,GAErBrL,EAAQA,EAAQxmB,EAAIwmB,EAAQ5iF,EAAIglB,EAAoB,OAApBA,CAA4BipE,GAAc,SAAU,CAClF15D,WAAY,SAAoB6lB,GAC9B,IAAIoqC,EAAO7zD,EAAQjjC,KAAM0sD,EAAc6zC,GACnCt9F,EAAQ/B,EAASM,KAAKD,IAAInG,UAAUC,OAAS,EAAID,UAAU,QAAKgH,EAAW00F,EAAKz7F,SAChFolG,EAAS1gG,OAAO2sD,GACpB,OAAO8zC,EACHA,EAAYn+F,KAAKy0F,EAAM2J,EAAQx9F,GAC/B6zF,EAAK14F,MAAM6E,EAAOA,EAAQw9F,EAAOplG,UAAYolG,MAO/C,KACA,SAAU9gG,EAAQC,IAMxB,SAAU4Q,GACR,IAAIkwF,EAAgB,gBAChBC,EAAUnwF,EAASuT,qBAAqB,UAGtC28E,KAAiBlwF,GACrBhW,OAAOoB,eAAe4U,EAAUkwF,EAAe,CAC7Cp8E,IAAK,WAIH,IAAM,MAAM,IAAI5N,MAChB,MAAOrL,GAIL,IAAIlQ,EAAGmI,GAAO,+BAAiCkT,KAAKnL,EAAI87C,QAAU,EAAC,IAAQ,GAG3E,IAAIhsD,KAAKwlG,EACP,GAAGA,EAAQxlG,GAAGskC,KAAOn8B,GAAgC,eAAzBq9F,EAAQxlG,GAAGylG,WACrC,OAAOD,EAAQxlG,GAKnB,OAAO,UA1BjB,CA+BGqV,WAKG,KACA,SAAU7Q,EAAQC,EAAS03B,GAGjC,IAAI49D,EAAU59D,EAAoB,QAElC49D,EAAQA,EAAQzxF,EAAIyxF,EAAQ5iF,EAAG,SAAU,CAAE2F,OAAQqf,EAAoB,WAKjE,KACA,SAAU33B,EAAQC,EAAS03B,GAEjC33B,EAAOC,QAAU03B,EAAoB,OAApBA,CAA4B,4BAA6BiJ,SAAS3iC,WAK7E,KACA,SAAU+B,EAAQC,EAAS03B,GAEjC,IAAI9mB,EAAW8mB,EAAoB,QAAQ9mB,SAC3C7Q,EAAOC,QAAU4Q,GAAYA,EAAS+6D,iBAKhC,KACA,SAAU5rE,EAAQ6/F,EAAqBloE,GAE7C,aAYE,IAAIupE,GAVNvpE,EAAoBhf,EAAEknF,GAKA,qBAAXp1F,UAEPktB,EAAoB,SAIjBupE,EAAkBz2F,OAAOoG,SAASkwF,iBAAmBG,EAAkBA,EAAgBphE,IAAIn9B,MAAM,8BACpGg1B,EAAoB1zB,EAAIi9F,EAAgB,KAQpBvpE,EAAoB,QAGfA,EAAoB,QAG1BA,EAAoB,QAGlBA,EAAoB,QAGvBA,EAAoB,QAG1C,SAASwpE,EAAgBjjG,GACvB,GAAIkS,MAAMuiB,QAAQz0B,GAAM,OAAOA,EAGjC,SAASkjG,EAAsBljG,EAAK1C,GAClC,GAAsB,qBAAXsoC,QAA4BA,OAAOvG,YAAY1iC,OAAOqD,GAAjE,CACA,IAAI+lC,EAAO,GACPC,GAAK,EACLzuB,GAAK,EACL0uB,OAAK1hC,EAET,IACE,IAAK,IAAiC2hC,EAA7BpT,EAAK9yB,EAAI4lC,OAAOvG,cAAmB2G,GAAME,EAAKpT,EAAG0M,QAAQ95B,MAAOsgC,GAAK,EAG5E,GAFAD,EAAK7oC,KAAKgpC,EAAGjoC,OAETX,GAAKyoC,EAAKvoC,SAAWF,EAAG,MAE9B,MAAOkQ,GACP+J,GAAK,EACL0uB,EAAKz4B,EACL,QACA,IACOw4B,GAAsB,MAAhBlT,EAAG,WAAmBA,EAAG,YACpC,QACA,GAAIvb,EAAI,MAAM0uB,GAIlB,OAAOF,GAGT,SAASo9D,EAAkBnjG,EAAKo2D,IACnB,MAAPA,GAAeA,EAAMp2D,EAAIxC,UAAQ44D,EAAMp2D,EAAIxC,QAE/C,IAAK,IAAIF,EAAI,EAAGy4C,EAAO,IAAI7jC,MAAMkkD,GAAM94D,EAAI84D,EAAK94D,IAC9Cy4C,EAAKz4C,GAAK0C,EAAI1C,GAGhB,OAAOy4C,EAIT,SAASqtD,EAA4BxpE,EAAGypE,GACtC,GAAKzpE,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOupE,EAAkBvpE,EAAGypE,GACvD,IAAIhhG,EAAI1F,OAAO0d,UAAUta,SAASyE,KAAKo1B,GAAGr5B,MAAM,GAAI,GAEpD,MADU,WAAN8B,GAAkBu3B,EAAEwC,cAAa/5B,EAAIu3B,EAAEwC,YAAYp9B,MAC7C,QAANqD,GAAqB,QAANA,EAAoB6P,MAAMgX,KAAK0Q,GACxC,cAANv3B,GAAqB,2CAA2CgD,KAAKhD,GAAW8gG,EAAkBvpE,EAAGypE,QAAzG,GAGF,SAASC,IACP,MAAM,IAAI/7F,UAAU,6IAOtB,SAASs+B,EAAe7lC,EAAK1C,GAC3B,OAAO2lG,EAAgBjjG,IAAQkjG,EAAsBljG,EAAK1C,IAAM8lG,EAA4BpjG,EAAK1C,IAAMgmG,IAGhF7pE,EAAoB,QAGnBA,EAAoB,QAI9C,SAASw6C,EAAmBj0E,GAC1B,GAAIkS,MAAMuiB,QAAQz0B,GAAM,OAAOmjG,EAAkBnjG,GAGnD,SAASk0E,EAAiB90C,GACxB,GAAsB,qBAAXwG,QAA0BA,OAAOvG,YAAY1iC,OAAOyiC,GAAO,OAAOltB,MAAMgX,KAAKkW,GAG1F,SAAS+0C,IACP,MAAM,IAAI5sE,UAAU,wIAOtB,SAASuuC,EAAmB91C,GAC1B,OAAOi0E,EAAmBj0E,IAAQk0E,EAAiBl0E,IAAQojG,EAA4BpjG,IAAQm0E,IAGjG,IAAIovB,EAAkF9pE,EAAoB,QACtG+pE,EAAsG/pE,EAAoBp3B,EAAEkhG,GAG5HE,EAAShqE,EAAoB,QAejC,SAASiqE,EAAelnG,EAAQmnG,EAAU1lG,GACxC,YAAcsG,IAAVtG,IAIJzB,EAASA,GAAU,GACnBA,EAAOmnG,GAAY1lG,GAJVzB,EAQX,SAASonG,EAAeC,EAAQ9oF,GAC9B,OAAO8oF,EAAOljG,KAAI,SAAUmjG,GAC1B,OAAOA,EAAIC,OACVt6F,QAAQsR,GAGb,SAASipF,EAAgB54F,EAAOvI,EAAUohG,EAAcC,GACtD,IAAK94F,EACH,MAAO,GAGT,IAAI+4F,EAAe/4F,EAAMzK,KAAI,SAAUmjG,GACrC,OAAOA,EAAIC,OAETK,EAAcvhG,EAASrF,OAAS0mG,EAEhCG,EAAavuD,EAAmBjzC,GAAUlC,KAAI,SAAUmjG,EAAKre,GAC/D,OAAOA,GAAO2e,EAAcD,EAAa3mG,OAAS2mG,EAAa16F,QAAQq6F,MAGzE,OAAOG,EAAeI,EAAWvnG,QAAO,SAAUwnG,GAChD,OAAgB,IAATA,KACJD,EAGP,SAASx2D,EAAK02D,EAASC,GACrB,IAAI3yF,EAAQ1P,KAEZA,KAAKqlE,WAAU,WACb,OAAO31D,EAAM8wD,MAAM4hC,EAAQl6E,cAAem6E,MAI9C,SAASC,EAAgBF,GACvB,IAAI1/D,EAAS1iC,KAEb,OAAO,SAAUqiG,GACS,OAApB3/D,EAAO6/D,UACT7/D,EAAO,SAAW0/D,GAASC,GAG7B32D,EAAKrpC,KAAKqgC,EAAQ0/D,EAASC,IAI/B,SAASG,EAAiB3lG,GACxB,MAAO,CAAC,mBAAoB,mBAAmBo2F,SAASp2F,GAG1D,SAAS4lG,EAA0Bx5F,GACjC,IAAKA,GAA0B,IAAjBA,EAAM5N,OAClB,OAAO,EAGT,IAAIqnG,EAASh/D,EAAez6B,EAAO,GAC/B05F,EAAmBD,EAAO,GAAGC,iBAEjC,QAAKA,GAIEH,EAAiBG,EAAiB99F,KAG3C,SAAS+9F,EAAQC,EAAMC,EAAYtnG,GACjC,OAAOqnG,EAAKrnG,KAASsnG,EAAWtnG,GAAOsnG,EAAWtnG,UAAS4G,GAG7D,SAAS2gG,EAA0BriG,EAAUmiG,EAAMC,GACjD,IAAIE,EAAe,EACfjB,EAAe,EACf1gD,EAASuhD,EAAQC,EAAMC,EAAY,UAEnCzhD,IACF2hD,EAAe3hD,EAAOhmD,OACtBqF,EAAWA,EAAW,GAAGrD,OAAOs2C,EAAmB0N,GAAS1N,EAAmBjzC,IAAaizC,EAAmB0N,IAGjH,IAAI4hD,EAASL,EAAQC,EAAMC,EAAY,UAOvC,OALIG,IACFlB,EAAekB,EAAO5nG,OACtBqF,EAAWA,EAAW,GAAGrD,OAAOs2C,EAAmBjzC,GAAWizC,EAAmBsvD,IAAWtvD,EAAmBsvD,IAG1G,CACLviG,SAAUA,EACVsiG,aAAcA,EACdjB,aAAcA,GAIlB,SAASmB,EAAuBC,EAAQp+F,GACtC,IAAIq1B,EAAa,KAEbiM,EAAS,SAAgBxpC,EAAMf,GACjCs+B,EAAamnE,EAAennE,EAAYv9B,EAAMf,IAG5C8E,EAAQpG,OAAOD,KAAK4oG,GAAQxoG,QAAO,SAAUa,GAC/C,MAAe,OAARA,GAAgBA,EAAIqrC,WAAW,YACrC9b,QAAO,SAAUznB,EAAK9H,GAEvB,OADA8H,EAAI9H,GAAO2nG,EAAO3nG,GACX8H,IACN,IAGH,GAFA+iC,EAAO,QAASzlC,IAEXmE,EACH,OAAOq1B,EAGT,IAAIwL,EAAK7gC,EAAc6gC,GACnBppC,EAAQuI,EAAcvI,MACtB4mG,EAAqBr+F,EAAcnE,MAIvC,OAHAylC,EAAO,KAAMT,GACbS,EAAO,QAAS7pC,GAChBhC,OAAOyd,OAAOmiB,EAAWx5B,MAAOwiG,GACzBhpE,EAGT,IAAIipE,EAAiB,CAAC,QAAS,MAAO,SAAU,SAAU,OACtDC,EAAe,CAAC,SAAU,WAAY,OAAQ,SAAU,SACxDC,EAAqB,CAAC,QAAQlmG,OAAOgmG,EAAgBC,GAAc9kG,KAAI,SAAUmf,GACnF,MAAO,KAAOA,KAEZ6lF,EAAkB,KAClBhnG,EAAQ,CACViY,QAASja,OACTi5C,KAAM,CACJjiC,KAAMzB,MACN/J,UAAU,EACV4kB,QAAS,MAEX9uB,MAAO,CACL0V,KAAMzB,MACN/J,UAAU,EACV4kB,QAAS,MAEX64E,mBAAoB,CAClBjyF,KAAMwuD,QACNp1C,SAAS,GAEXgV,MAAO,CACLpuB,KAAM+uB,SACN3V,QAAS,SAAkB84E,GACzB,OAAOA,IAGX9qF,QAAS,CACPpH,KAAMzR,OACN6qB,QAAS,OAEX/lB,IAAK,CACH2M,KAAMzR,OACN6qB,QAAS,MAEXuuB,KAAM,CACJ3nC,KAAM+uB,SACN3V,QAAS,MAEX7lB,cAAe,CACbyM,KAAMhX,OACNwL,UAAU,EACV4kB,QAAS,OAGT+4E,EAAqB,CACvB9mG,KAAM,YACN0zE,cAAc,EACd/zE,MAAOA,EACPU,KAAM,WACJ,MAAO,CACL0mG,gBAAgB,EAChBC,6BAA6B,IAGjC9mG,OAAQ,SAAgBC,GACtB,IAAIiM,EAAQjJ,KAAKoJ,OAAOwhB,QACxB5qB,KAAK4jG,eAAiBnB,EAA0Bx5F,GAEhD,IAAI66F,EAAwBf,EAA0B95F,EAAOjJ,KAAKoJ,OAAQpJ,KAAKmJ,cAC3EzI,EAAWojG,EAAsBpjG,SACjCsiG,EAAec,EAAsBd,aACrCjB,EAAe+B,EAAsB/B,aAEzC/hG,KAAKgjG,aAAeA,EACpBhjG,KAAK+hG,aAAeA,EACpB,IAAI3nE,EAAa8oE,EAAuBljG,KAAKmjG,OAAQnjG,KAAK+E,eAC1D,OAAO/H,EAAEgD,KAAK+jG,SAAU3pE,EAAY15B,IAEtCkkE,QAAS,WACW,OAAd5kE,KAAKyzC,MAAgC,OAAfzzC,KAAKlE,OAC7BwlG,EAAO,KAAmBtvF,MAAM,2EAGb,QAAjBhS,KAAK4Y,SACP0oF,EAAO,KAAmB/1F,KAAK,qKAGZnJ,IAAjBpC,KAAKyU,SACP6sF,EAAO,KAAmB/1F,KAAK,wMAGnC00D,QAAS,WACP,IAAIj5B,EAAShnC,KAIb,GAFAA,KAAK6jG,4BAA8B7jG,KAAK+jG,SAAS77E,gBAAkBloB,KAAKqgE,IAAI1xC,SAASzG,gBAAkBloB,KAAKgkG,kBAExGhkG,KAAK6jG,6BAA+B7jG,KAAK4jG,eAC3C,MAAM,IAAIltF,MAAM,6HAA6HrZ,OAAO2C,KAAK+jG,WAG3J,IAAIE,EAAe,GACnBZ,EAAe9nG,SAAQ,SAAUomG,GAC/BsC,EAAa,KAAOtC,GAAOW,EAAgBjgG,KAAK2kC,EAAQ26D,MAE1D2B,EAAa/nG,SAAQ,SAAUomG,GAC7BsC,EAAa,KAAOtC,GAAOj2D,EAAK7wB,KAAKmsB,EAAQ26D,MAE/C,IAAIvnE,EAAa5/B,OAAOD,KAAKyF,KAAKmjG,QAAQp4E,QAAO,SAAUznB,EAAK9H,GAE9D,OADA8H,EAAI9I,OAAO8mG,EAAO,KAAd9mG,CAAmCgB,IAAQwrC,EAAOm8D,OAAO3nG,GACtD8H,IACN,IACCmR,EAAUja,OAAOyd,OAAO,GAAIjY,KAAKyU,QAAS2lB,EAAY6pE,EAAc,CACtE/hB,OAAQ,SAAgBvkE,EAAKu8D,GAC3B,OAAOlzC,EAAOk9D,WAAWvmF,EAAKu8D,QAGhC,cAAezlE,KAAaA,EAAQwgE,UAAY,MAClDj1E,KAAKmkG,UAAY,IAAI9C,EAAuF7oF,EAAExY,KAAKokG,cAAe3vF,GAClIzU,KAAKqkG,kBAEPlkC,cAAe,gBACU/9D,IAAnBpC,KAAKmkG,WAAyBnkG,KAAKmkG,UAAUv+E,WAEnDvhB,SAAU,CACR+/F,cAAe,WACb,OAAOpkG,KAAK4jG,eAAiB5jG,KAAKqgE,IAAI3/D,SAAS,GAAKV,KAAKqgE,KAE3DkiC,SAAU,WACR,OAAOviG,KAAKyzC,KAAOzzC,KAAKyzC,KAAOzzC,KAAKlE,QAGxC0I,MAAO,CACLiQ,QAAS,CACP2I,QAAS,SAAiBknF,GACxBtkG,KAAKukG,cAAcD,IAErBzkE,MAAM,GAERsjE,OAAQ,CACN/lF,QAAS,SAAiBknF,GACxBtkG,KAAKukG,cAAcD,IAErBzkE,MAAM,GAER0iE,SAAU,WACRviG,KAAKqkG,mBAGTjkC,QAAS,CACP4jC,gBAAiB,WACf,IAAIQ,EAAYxkG,KAAKykG,OAAOD,UAC5B,OAAOA,GAAaA,EAAU1nG,YAEhCinG,OAAQ,WACN,OAAO/jG,KAAK6E,KAAO7E,KAAK4Y,SAE1B2rF,cAAe,SAAuBD,GACpC,IAAK,IAAI3sE,KAAY2sE,EAAgB,CACnC,IAAIxoG,EAAQtB,OAAO8mG,EAAO,KAAd9mG,CAAmCm9B,IAEJ,IAAvC4rE,EAAmBj8F,QAAQxL,IAC7BkE,KAAKmkG,UAAU71E,OAAOxyB,EAAOwoG,EAAe3sE,MAIlD+sE,iBAAkB,WAChB,GAAI1kG,KAAK6jG,4BACP,OAAO7jG,KAAK2kG,UAAU,GAAGv7F,OAAOwhB,QAGlC,IAAIg6E,EAAW5kG,KAAKoJ,OAAOwhB,QAC3B,OAAO5qB,KAAK4jG,eAAiBgB,EAAS,GAAG35E,MAAM7hB,OAAOwhB,QAAUg6E,GAElEP,eAAgB,WACd,IAAI98D,EAASvnC,KAEbA,KAAKqlE,WAAU,WACb99B,EAAOs9D,eAAiBhD,EAAgBt6D,EAAOm9D,mBAAoBn9D,EAAO68D,cAAc1jG,SAAU6mC,EAAOq8D,eAAgBr8D,EAAOw6D,kBAGpI+C,gBAAiB,SAAyBC,GACxC,IAAI9hG,EAAQw+F,EAAezhG,KAAK0kG,oBAAsB,GAAIK,GAE1D,IAAe,IAAX9hG,EAGF,OAAO,KAGT,IAAI2V,EAAU5Y,KAAKuiG,SAASt/F,GAC5B,MAAO,CACLA,MAAOA,EACP2V,QAASA,IAGbosF,yCAA0C,SAAkD/nG,GAC1F,IAAIgoG,EAAMhoG,EAAKioG,QAEf,OAAKD,GAAQA,EAAI5oG,UAAammG,EAAiByC,EAAI5oG,SAAS8oG,eAKrDF,EAAI1oG,UAJH,aAAc0oG,IAAiC,IAAzBA,EAAIN,UAAUtpG,QAAgB,aAAc4pG,EAAIN,UAAU,GAAWM,EAAIN,UAAU,GACxGM,GAKXG,YAAa,SAAqBznF,GAChC,IAAIqqB,EAAShoC,KAEbA,KAAKqlE,WAAU,WACbr9B,EAAOw4B,MAAM,SAAU7iD,OAG3B0nF,UAAW,SAAmBC,GAC5B,GAAItlG,KAAKyzC,KACP6xD,EAAOtlG,KAAKyzC,UADd,CAKA,IAAI8xD,EAAU5xD,EAAmB3zC,KAAKlE,OAEtCwpG,EAAOC,GACPvlG,KAAKwgE,MAAM,QAAS+kC,KAEtBC,WAAY,WACV,IAAIC,EAAarqG,UAEboqG,EAAa,SAAoB/xD,GACnC,OAAOA,EAAKvuB,OAAOlqB,MAAMy4C,EAAME,EAAmB8xD,KAGpDzlG,KAAKqlG,UAAUG,IAEjBE,eAAgB,SAAwB5rB,EAAUC,GAChD,IAAI2rB,EAAiB,SAAwBjyD,GAC3C,OAAOA,EAAKvuB,OAAO60D,EAAU,EAAGtmC,EAAKvuB,OAAO40D,EAAU,GAAG,KAG3D95E,KAAKqlG,UAAUK,IAEjBC,+BAAgC,SAAwCtnD,GACtE,IAAIr3B,EAAKq3B,EAAMr3B,GACXo7D,EAAU/jC,EAAM+jC,QAChB/jD,EAAYr+B,KAAKglG,yCAAyCh+E,GAE9D,IAAKqX,EACH,MAAO,CACLA,UAAWA,GAIf,IAAIoV,EAAOpV,EAAUkkE,SACjBt/D,EAAU,CACZwQ,KAAMA,EACNpV,UAAWA,GAGb,GAAIrX,IAAOo7D,GAAW3uC,GAAQpV,EAAUymE,gBAAiB,CACvD,IAAIc,EAAcvnE,EAAUymE,gBAAgB1iB,GAE5C,GAAIwjB,EACF,OAAOprG,OAAOyd,OAAO2tF,EAAa3iE,GAItC,OAAOA,GAET4iE,WAAY,SAAoBC,GAC9B,IAAIrvD,EAAUz2C,KAAK6kG,eACfkB,EAAgBtvD,EAAQp7C,OAC5B,OAAOyqG,EAAWC,EAAgB,EAAIA,EAAgBtvD,EAAQqvD,IAEhEE,aAAc,WACZ,OAAOhmG,KAAKoJ,OAAOwhB,QAAQ,GAAGq7E,mBAEhCC,oBAAqB,SAA6BjjG,GAChD,GAAKjD,KAAKyjG,oBAAuBzjG,KAAK4jG,eAAtC,CAIA,IAAI7zE,EAAQ/vB,KAAK0kG,mBACjB30E,EAAM9sB,GAAO/F,KAAO,KACpB,IAAIipG,EAAsBnmG,KAAKgmG,eAC/BG,EAAoBzlG,SAAW,GAC/BylG,EAAoBC,UAAOhkG,IAE7BikG,YAAa,SAAqB1oF,GAChC3d,KAAKijC,QAAUjjC,KAAK8kG,gBAAgBnnF,EAAIuxB,MACxCvxB,EAAIuxB,KAAKo3D,gBAAkBtmG,KAAK4/B,MAAM5/B,KAAKijC,QAAQrqB,SACnD4qF,EAAkB7lF,EAAIuxB,MAExBq3D,UAAW,SAAmB5oF,GAC5B,IAAI/E,EAAU+E,EAAIuxB,KAAKo3D,gBAEvB,QAAgBlkG,IAAZwW,EAAJ,CAIApe,OAAO8mG,EAAO,KAAd9mG,CAAqCmjB,EAAIuxB,MACzC,IAAI6qC,EAAW/5E,KAAK6lG,WAAWloF,EAAIo8D,UACnC/5E,KAAKwlG,WAAWzrB,EAAU,EAAGnhE,GAC7B5Y,KAAKqkG,iBACL,IAAImC,EAAQ,CACV5tF,QAASA,EACTmhE,SAAUA,GAEZ/5E,KAAKolG,YAAY,CACfoB,MAAOA,MAGXC,aAAc,SAAsB9oF,GAGlC,GAFAnjB,OAAO8mG,EAAO,KAAd9mG,CAAuCwF,KAAKokG,cAAezmF,EAAIuxB,KAAMvxB,EAAIm8D,UAEpD,UAAjBn8D,EAAI48D,SAAR,CAKA,IAAIT,EAAW95E,KAAKijC,QAAQhgC,MAC5BjD,KAAKwlG,WAAW1rB,EAAU,GAC1B,IAAI4sB,EAAU,CACZ9tF,QAAS5Y,KAAKijC,QAAQrqB,QACtBkhE,SAAUA,GAEZ95E,KAAKkmG,oBAAoBpsB,GACzB95E,KAAKolG,YAAY,CACfsB,QAASA,SAZTlsG,OAAO8mG,EAAO,KAAd9mG,CAAqCmjB,EAAIiiB,QAe7C+mE,aAAc,SAAsBhpF,GAClCnjB,OAAO8mG,EAAO,KAAd9mG,CAAqCmjB,EAAIuxB,MACzC10C,OAAO8mG,EAAO,KAAd9mG,CAAuCmjB,EAAIoJ,KAAMpJ,EAAIuxB,KAAMvxB,EAAIm8D,UAC/D,IAAIA,EAAW95E,KAAKijC,QAAQhgC,MACxB82E,EAAW/5E,KAAK6lG,WAAWloF,EAAIo8D,UACnC/5E,KAAK0lG,eAAe5rB,EAAUC,GAC9B,IAAIkB,EAAQ,CACVriE,QAAS5Y,KAAKijC,QAAQrqB,QACtBkhE,SAAUA,EACVC,SAAUA,GAEZ/5E,KAAKolG,YAAY,CACfnqB,MAAOA,KAGX2rB,eAAgB,SAAwBjpF,EAAK69B,GAC3C79B,EAAIxF,eAAeqjC,KAAkB79B,EAAI69B,IAAiBx7C,KAAKgjG,eAEjE6D,mBAAoB,SAA4BC,EAAgBnpF,GAC9D,IAAKmpF,EAAeluF,QAClB,OAAO,EAGT,IAAImuF,EAAcpzD,EAAmBh2B,EAAIqJ,GAAGtmB,UAAU/F,QAAO,SAAU2iB,GACrE,MAA+B,SAAxBA,EAAGvC,MAAM,cAGdisF,EAAkBD,EAAYz/F,QAAQqW,EAAIykE,SAC1CgM,EAAe0Y,EAAezoE,UAAUwnE,WAAWmB,GACnDC,GAA0D,IAA1CF,EAAYz/F,QAAQk8F,GACxC,OAAOyD,IAAkBtpF,EAAIokE,gBAAkBqM,EAAeA,EAAe,GAE/E8V,WAAY,SAAoBvmF,EAAKu8D,GACnC,IAAIgI,EAASliF,KAAKm5C,KAElB,IAAK+oC,IAAWliF,KAAKuiG,SACnB,OAAO,EAGT,IAAIuE,EAAiB9mG,KAAK2lG,+BAA+BhoF,GACrDupF,EAAiBlnG,KAAKijC,QACtBkkE,EAAcnnG,KAAK6mG,mBAAmBC,EAAgBnpF,GAC1DnjB,OAAOyd,OAAOivF,EAAgB,CAC5BC,YAAaA,IAEf,IAAIC,EAAU5sG,OAAOyd,OAAO,GAAI0F,EAAK,CACnCmpF,eAAgBA,EAChBI,eAAgBA,IAElB,OAAOhlB,EAAOklB,EAASltB,IAEzBmtB,UAAW,WACTrnG,KAAKqkG,iBACLb,EAAkB,QAKF,qBAAXp5F,QAA0B,QAASA,QAC5CA,OAAOk9F,IAAIjpE,UAAU,YAAaslE,GAGP,IAAI4D,EAAe,EAIH/H,EAAoB,WAAa,KAMlE,e,kCCz5EZ,sCAAIgI,EAAJ,oOAEA,SAASptG,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAsB3M,IAAI4rG,EAAa,YACbC,EAAuC,eAAuB,OAAe,iBAC7EC,EAAgC,eAAuB,OAAe,UACtEC,EAAwB,eAAiB,OAAe,SACxDC,EAA6B,eAAiB,OAAe,cAE7DC,EAAkB,eAAe,UAAW,CAC9Ct2F,KAAM,OACNud,cAAc,EACdld,MAAO,SAELk2F,EAAaD,EAAgBE,MAC7BC,EAAaH,EAAgBtrG,MAC7B0rG,EAAkBJ,EAAgB37C,KAClCg8C,EAAmBL,EAAgBj2F,MAG5BrV,EAAQ,eAAsB,eAASvB,EAAcA,EAAcA,EAAc,GAAI,QAAUgtG,GAAa,GAAI,CACzHG,UAAW,eAAS,QACpBC,eAAgB,eAAS,QAEzBC,SAAU,eAAS,QAAmB,GACtCC,gBAAiB,eAAS,OAAkB,QAC5CC,UAAW,eAAS,OAAkB,SACtCC,UAAW,eAAS,QAEpBC,WAAY,eAAS,QACrBC,YAAa,eAAS,QACtBC,YAAa,eAAS,QACtBC,KAAM,eAAS,QAAmB,GAClCC,kBAAmB,eAAS,QAAmB,GAC/CC,aAAc,eAAS,QAAmB,GAC1CC,qBAAsB,eAAS,QAAmB,GAClDC,eAAgB,eAAS,QAAmB,GAC5CC,SAAU,eAAS,QAAmB,GACtCC,cAAe,eAAS,QAAmB,GAC3CC,QAAS,eAAS,QAAmB,GACrCj9E,MAAO,eAAS,QAAmB,GACnCk9E,OAAQ,eAAS,QAA0B,GAC3CC,aAAc,eAAS,QACvBzkG,IAAK,eAAS,OAAkB,OAChC0kG,YAAa,eAAS,OAAkB,QACxC9rG,MAAO,eAAS,QAChB6d,MAAO,eAAS,QAChBkuF,OAAQ,eAAS,WACd,SAEDC,EAAoB,SAA2BzsG,EAAGd,GAEpD,IAAIuB,EAAQvB,EAAI00E,cAAc,QAAiB10E,EAAImN,YAAcnN,EAAIuB,MAErE,OAAKA,EAIET,EAAE,SAAU,CACjB4D,MAAO,CACLP,GAAInE,EAAIooE,OAAO,eAEhB,CAAC7mE,IAPKT,EAAE,SAUT0sG,EAAoB,SAA2B1sG,EAAGd,GACpD,GAAIA,EAAIitG,cACN,OAAOnsG,IAGT,IAAI0rG,EAAaxsG,EAAIwsG,WACjBa,EAAcrtG,EAAIqtG,YAClBzgD,EAAO5sD,EAAI4sD,KACf,OAAO9rD,EAAE,OAAc,CACrBR,MAAO,CACL4rG,UAAWM,EACXa,YAAaA,GAEf3jE,GAAI,CACF3c,MAAO6/B,GAET3kD,IAAK,gBACJ,CAACjI,EAAI00E,cAAc,SAA2B5zE,EAAE,WAGjD2sG,EAAe,SAAsB3sG,EAAGd,GAC1C,GAAIA,EAAIgtG,SACN,OAAOlsG,IAGT,IAAI4sG,EAAW1tG,EAAI00E,cAAc,OAAkB10E,EAAImN,WAEvD,IAAKugG,EAAU,CACb,IAAIC,EAASJ,EAAkBzsG,EAAGd,GAC9B4tG,EAASJ,EAAkB1sG,EAAGd,GAClC0tG,EAAW1tG,EAAIiwB,MAAQ,CAAC29E,EAAQD,GAAU,CAACA,EAAQC,GAGrD,OAAO9sG,EAAE,SAAU,CACjBgI,YAAa,GAAG3H,OAAOoqG,EAAY,WACnC9mG,MAAOzE,EAAI0sG,YACXptG,IAAK,UACJouG,IAGDG,EAAa,SAAoB/sG,EAAGd,GACtC,OAAOc,EAAE,MAAO,CACdgI,YAAa,GAAG3H,OAAOoqG,EAAY,SACnC9mG,MAAOzE,EAAIusG,UACXjtG,IAAK,QACJ,CAACU,EAAI00E,cAAc,OAAmB10E,EAAImN,cAG3C2gG,EAAe,SAAsBhtG,EAAGd,GAC1C,IAAI+tG,EAAU/tG,EAAI00E,cAAc,OAAkB10E,EAAImN,WAEtD,OAAK4gG,EAIEjtG,EAAE,SAAU,CACjBgI,YAAa,GAAG3H,OAAOoqG,EAAY,WACnC9mG,MAAOzE,EAAIysG,YACXntG,IAAK,UACJ,CAACyuG,IAPKjtG,KAUPktG,EAAgB,SAAuBltG,EAAGd,GAG5C,IAAIiuG,EAAUR,EAAa3sG,EAAGd,GAE9B,OAAIA,EAAI2sG,OAAS3sG,EAAIud,OACZ0wF,EAGF,CAACA,EAASJ,EAAW/sG,EAAGd,GAAM8tG,EAAahtG,EAAGd,KAGnDkuG,EAAiB,SAAwBptG,EAAGd,GAC9C,IAAKA,EAAIosG,SACP,OAAOtrG,IAGT,IAAIurG,EAAkBrsG,EAAIqsG,gBAC1B,OAAOvrG,EAAE,MAAO,CACd8zF,WAAY,CAAC,CACXj0F,KAAM,OACNf,MAAOI,EAAImuG,YAEbrlG,YAAa,qBACbrE,MAAOlF,EAAgB,GAAI,MAAM4B,OAAOkrG,GAAkBA,GAC1D3iE,GAAI,CACF3c,MAAO/sB,EAAIouG,oBAONpX,EAAwB,aAAIt2F,OAAO,CAC5CC,KAAM,QACNymE,OAAQ,CAAC,OAAY,OAASykC,EAAY,OAAmB,QAC7Dx3B,cAAc,EACd/zE,MAAOA,EACPU,KAAM,WACJ,IAAIymE,IAAY3jE,KAAKkoG,GACrB,MAAO,CAELmC,UAAW1mC,EAEXlqD,OAAQkqD,IAGZt/D,SAAU,CACRkmG,gBAAiB,WACf,OAAOvqG,KAAKopG,QAEZ,CACE35B,KAAK,GACH,CACFA,KAAK,EACL+6B,WAAY,GACZC,iBAAkB,QAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,QAClBC,aAAc,KAGlBxhG,UAAW,WACT,IAAIy/C,EAAO9oD,KAAK8oD,KACZ38B,EAAQnsB,KAAKmsB,MACbw3C,EAAU3jE,KAAKqqG,UACnB,MAAO,CACLvhD,KAAMA,EACN38B,MAAOA,EACPw3C,QAASA,IAGbmnC,SAAU,WACR,IAAI3hG,EAAenJ,KAAKmJ,aACpBC,EAASpJ,KAAKoJ,OAClB,OAAQpJ,KAAKkpG,WAAalpG,KAAK+qG,kBAAkB,YAAwB/qG,KAAK4wE,cAAc,QAAiB5wE,KAAKqJ,UAAWF,EAAcC,KAAWpJ,KAAKvC,QAE7JutG,QAAS,WACP,OAAOhrG,KAAK8qG,SAAW9qG,KAAKskE,OAAO,aAAe,MAEpDkM,cAAe,WACb,OAAOv1E,EAAcA,EAAc,GAAI+E,KAAKywE,SAAU,GAAI,CACxDpwE,GAAIL,KAAKskE,SACTzgD,SAAU,KACVla,KAAM,SACN,aAAc3J,KAAKsoG,SAAW,OAAS,QACvC,cAAetoG,KAAKqqG,UAAY,KAAO,OACvC,aAAcrqG,KAAKooG,WAAa,KAChC,kBAAmBpoG,KAAKqoG,gBAAkBroG,KAAKgrG,SAAW,SAIhExmG,OAAQgjG,EAAS,GAAI/rG,EAAgB+rG,EAAQU,GAAiB,SAAUx4E,EAAUujB,GAC5EvjB,IAAaujB,IACfjzC,KAAKqqG,UAAY36E,MAEjBj0B,EAAgB+rG,EAAQ,aAAa,SAAmB93E,EAAUujB,GAChEvjB,IAAaujB,IACfjzC,KAAKirG,UAAUv7E,GACf1vB,KAAKwgE,MAAM2nC,EAAkBz4E,OAE7Bj0B,EAAgB+rG,EAAQ,UAAU,WACpC,IAAI93E,EAAWt0B,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAC/E63C,EAAW73C,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK,GAE9E4E,KAAKgpG,sBAAwBt5E,EAASw7E,WAAaj4D,EAASi4D,UAC/DlrG,KAAK8oD,UAEL0+C,GACJ5iC,QAAS,WAEP5kE,KAAKmrG,gBAAkB,MAEzBlrC,QAAS,WACP,IAAIvwD,EAAQ1P,KAGZA,KAAKorG,aAAazD,EAA+B3nG,KAAKqrG,cACtDrrG,KAAKorG,aAAa1D,EAAsC1nG,KAAKsrG,YAE7DtrG,KAAKqlE,WAAU,WACb31D,EAAMu7F,UAAUv7F,EAAM26F,eAK1B3iC,UAAW,WACT1nE,KAAKurG,YAEPprC,cAAe,WACbngE,KAAKqqG,WAAY,EACjBrqG,KAAKmrG,gBAAkB,MAEzB/qC,QAAS,CACPtX,KAAM,WACJ9oD,KAAKqqG,WAAY,GAEnBY,UAAW,WACT,IAAItjC,EAAQvsE,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK4E,KAAKqqG,UACrFrqG,KAAKmlE,WAAWyiC,EAAuB5nG,KAAKskE,SAAUqD,IAExD4jC,SAAU,WACR,IAAI5jC,EAAQvsE,UAAUC,OAAS,QAAsB+G,IAAjBhH,UAAU,GAAmBA,UAAU,GAAK4E,KAAKqqG,UACrFrqG,KAAKmlE,WAAW0iC,EAA4B7nG,KAAKskE,SAAUqD,IAE7D0jC,aAAc,SAAsBhrG,GAE9BA,GAAMA,IAAOL,KAAKskE,WACpBtkE,KAAKqqG,WAAarqG,KAAKqqG,YAG3BiB,WAAY,SAAoBjrG,GAC9B,IAAIqiC,EAAS1iC,KAGTK,GAAMA,IAAOL,KAAKskE,UACpBtkE,KAAKqlE,WAAU,WACb3iC,EAAO6oE,SAAS7oE,EAAO2nE,eAI7B5jC,UAAW,SAAmB50D,GAC5B,IAAIyV,EAAUzV,EAAMyV,SAEftnB,KAAK+oG,cAAgBzhF,IAAY,QAAYtnB,KAAKqqG,WACrDrqG,KAAK8oD,QAGTwhD,gBAAiB,WACXtqG,KAAKqqG,YAAcrqG,KAAK8oG,mBAC1B9oG,KAAK8oD,QAKT0iD,eAAgB,WACd,IAAIC,EAAW,eAAYzrG,KAAKsgE,MAAM/vD,SACtCvQ,KAAK0rG,aAAaD,EAASn7D,UAAU,KAIvCq7D,kBAAmB,WACjB,IAAIF,EAAW,eAAYzrG,KAAKsgE,MAAM/vD,SACtCvQ,KAAK0rG,aAAaD,EAAS,KAE7BG,cAAe,WAGb5rG,KAAKmrG,gBAAkB,eAAiB,OAAa,CAAC36F,SAASgQ,MAAQ,IAEvExgB,KAAKyZ,QAAS,GAEhBoyF,aAAc,SAAsBvuF,GAC7B,eAASA,EAAI,mBAChBtd,KAAK0rG,aAAapuF,GAGpBtd,KAAKwgE,MAAM,SAEbsrC,aAAc,WACZ9rG,KAAK0rG,aAAa1rG,KAAKmrG,iBACvBnrG,KAAKmrG,gBAAkB,KAEvBnrG,KAAKyZ,QAAS,EACdzZ,KAAKwgE,MAAM,SAEbkrC,aAAc,SAAsBpuF,GAC7Btd,KAAKipG,gBACR,eAAa3rF,KAInBvgB,OAAQ,SAAgBC,GACtB,IAAIC,EAEAurG,EAAYxoG,KAAKwoG,UACjBltF,EAAQtb,KAAKsb,MACbiuF,EAAcvpG,KAAKupG,YACnBc,EAAYrqG,KAAKqqG,UACjBhB,EAAyB,KAAhBrpG,KAAKqpG,QAAuBrpG,KAAKqpG,OAC1C0C,EAAW/uG,EAAEgD,KAAK6E,IAAK,CACzBG,YAAayiG,EACb9mG,MAAO,EAAE1D,EAAO,CACdosG,QAAmB,IAAXA,GACP5tG,EAAgBwB,EAAM,UAAUI,OAAOgsG,GAASA,IAAqB,IAAXA,GAAkB5tG,EAAgBwB,EAAM,GAAGI,OAAOoqG,EAAY,UAAWznG,KAAKmsB,OAAQ1wB,EAAgBwB,EAAM,MAAMI,OAAOmrG,GAAYA,GAAY/sG,EAAgBwB,EAAM,QAAQI,OAAOksG,GAAcA,GAActsG,GAAO+C,KAAKspG,cAC3RvuF,MAAO,CACLO,MAAOA,GAET1a,MAAOZ,KAAKwwE,cACZsgB,WAAY,CAAC,CACXj0F,KAAM,OACNf,MAAOuuG,IAETlmG,IAAK,WACJ,CAAC+lG,EAAcltG,EAAGgD,QACrB+rG,EAAW/uG,EAAE,aAAc,CACzBR,MAAOwD,KAAKuqG,gBACZ3kE,GAAI,CACFomE,YAAahsG,KAAK4rG,cAClBK,WAAYjsG,KAAK6rG,aACjBK,WAAYlsG,KAAK8rG,eAElB,CAACC,IACJ,IAAII,EAAYnvG,EAAE,OAAc,CAC9BR,MAAO,CACL4vG,OAAQpsG,KAAKopG,UAEd,CAACgB,EAAeptG,EAAGgD,QAClBqsG,EAAcrvG,IACdsvG,EAAiBtvG,IAqBrB,OAnBIgD,KAAKsoG,UAAY+B,IACnBgC,EAAcrvG,EAAE,MAAO,CACrB4D,MAAO,CACLijB,SAAU,KAEZ+hB,GAAI,CACFtkB,MAAOthB,KAAKwrG,kBAGhBc,EAAiBtvG,EAAE,MAAO,CACxB4D,MAAO,CACLijB,SAAU,KAEZ+hB,GAAI,CACFtkB,MAAOthB,KAAK2rG,sBAKX3uG,EAAE,MAAO,CACdgI,YAAa,kBACb+V,MAAO,CACLyuF,OAAQxpG,KAAKwpG,QAEf5oG,MAAO,CACLijB,SAAU,MAEZ+hB,GAAI,CACF2mE,QAASvsG,KAAKymE,YAEf,CAAC4lC,EAAaN,EAAUO,EAAgBH,Q,sBClb9C,SAAS18F,EAAE1L,GAAqDpE,EAAOC,QAAQmE,EAAE,EAAQ,SAAzF,CAAyR,oBAAoB+U,MAAKA,MAAU,SAAUrJ,GAAG,OAAO,SAASA,GAAG,IAAI1L,EAAE,GAAG,SAAS7D,EAAEoY,GAAG,GAAGvU,EAAEuU,GAAG,OAAOvU,EAAEuU,GAAG1Y,QAAQ,IAAI63B,EAAE1zB,EAAEuU,GAAG,CAACnd,EAAEmd,EAAEpE,GAAE,EAAGtU,QAAQ,IAAI,OAAO6P,EAAE6I,GAAGjW,KAAKo1B,EAAE73B,QAAQ63B,EAAEA,EAAE73B,QAAQM,GAAGu3B,EAAEvjB,GAAE,EAAGujB,EAAE73B,QAAQ,OAAOM,EAAEsI,EAAEiH,EAAEvP,EAAEsV,EAAEzR,EAAE7D,EAAE6T,EAAE,SAAStE,EAAE1L,EAAEuU,GAAGpY,EAAEu3B,EAAEhoB,EAAE1L,IAAIvJ,OAAOoB,eAAe6T,EAAE1L,EAAE,CAACjJ,YAAW,EAAGwpB,IAAIhM,KAAKpY,EAAEoY,EAAE,SAAS7I,GAAG,oBAAoBg0B,QAAQA,OAAOuxD,aAAax6F,OAAOoB,eAAe6T,EAAEg0B,OAAOuxD,YAAY,CAACl5F,MAAM,WAAWtB,OAAOoB,eAAe6T,EAAE,aAAa,CAAC3T,OAAM,KAAMoE,EAAEuP,EAAE,SAASA,EAAE1L,GAAG,GAAG,EAAEA,IAAI0L,EAAEvP,EAAEuP,IAAI,EAAE1L,EAAE,OAAO0L,EAAE,GAAG,EAAE1L,GAAG,iBAAiB0L,GAAGA,GAAGA,EAAEioB,WAAW,OAAOjoB,EAAE,IAAI6I,EAAE9d,OAAOm+B,OAAO,MAAM,GAAGz4B,EAAEoY,EAAEA,GAAG9d,OAAOoB,eAAe0c,EAAE,UAAU,CAACxd,YAAW,EAAGgB,MAAM2T,IAAI,EAAE1L,GAAG,iBAAiB0L,EAAE,IAAI,IAAIgoB,KAAKhoB,EAAEvP,EAAE6T,EAAEuE,EAAEmf,EAAE,SAAS1zB,GAAG,OAAO0L,EAAE1L,IAAI8W,KAAK,KAAK4c,IAAI,OAAOnf,GAAGpY,EAAEA,EAAE,SAASuP,GAAG,IAAI1L,EAAE0L,GAAGA,EAAEioB,WAAW,WAAW,OAAOjoB,EAAEmb,SAAS,WAAW,OAAOnb,GAAG,OAAOvP,EAAE6T,EAAEhQ,EAAE,IAAIA,GAAGA,GAAG7D,EAAEu3B,EAAE,SAAShoB,EAAE1L,GAAG,OAAOvJ,OAAO0d,UAAUC,eAAe9V,KAAKoN,EAAE1L,IAAI7D,EAAE0D,EAAE,GAAG1D,EAAEA,EAAEuO,EAAE,GAAj5B,CAAq5B,CAAC,SAAS1K,EAAE7D,GAAG6D,EAAEnE,QAAQ6P,GAAG,SAASA,EAAE1L,EAAE7D,GAAG,aAAaA,EAAEoY,EAAEvU,GAAG7D,EAAE6T,EAAEhQ,EAAE,aAAY,WAAY,OAAOyR,KAAKtV,EAAE6T,EAAEhQ,EAAE,UAAS,WAAY,OAAOH,KAAK,IAAI0U,EAAEpY,EAAE,GAAGu3B,EAAEv3B,EAAEA,EAAEoY,GAAGnd,EAAE,CAAC,WAAW,UAAU,YAAY,gBAAgB,SAAS,gBAAgB,SAASgZ,IAAI,OAAOA,EAAE3Z,OAAOyd,QAAQ,SAASxI,GAAG,IAAI,IAAI1L,EAAE,EAAEA,EAAE3I,UAAUC,OAAO0I,IAAI,CAAC,IAAI7D,EAAE9E,UAAU2I,GAAG,IAAI,IAAIuU,KAAKpY,EAAE1F,OAAO0d,UAAUC,eAAe9V,KAAKnC,EAAEoY,KAAK7I,EAAE6I,GAAGpY,EAAEoY,IAAI,OAAO7I,IAAIzU,MAAMgF,KAAK5E,WAAW,IAAIod,EAAE,SAAS/I,GAAG,OAAOA,EAAErS,QAAQ,kBAAkB,SAAS8qB,eAAevf,EAAE,SAAS8G,GAAG,OAAO0E,EAAE,GAAG1E,IAAIyE,EAAE/Y,EAAEkC,OAAO,CAAC,gBAAgB,cAAc,gBAAgB,UAAU,wBAAwB,cAAcoR,EAAE,CAAC,SAAS,cAAc+G,EAAE,CAAC3Y,KAAK,aAAaE,OAAO,SAAS0S,GAAG,OAAOA,EAAE,QAAQ,CAAC7O,MAAM,CAAC4Q,KAAK,OAAO,cAAa,GAAIhV,MAAM,CAACwnB,SAAShkB,KAAKgkB,UAAU4hB,GAAG,CAACpsB,MAAMxZ,KAAKwsG,YAAYhwG,MAAM,CAACV,MAAM,CAAC8uB,QAAQ,KAAK5kB,UAAS,EAAGymG,UAAU,SAASh9F,GAAG,OAAO,OAAOA,GAAGA,aAAaxQ,MAAM,iBAAiBwQ,GAAGA,aAAa1P,QAAQ0P,aAAaM,OAAO,iBAAiBN,IAAIwF,OAAO,CAACzD,KAAKhX,OAAOowB,QAAQ,WAAW,MAAM,CAAC7c,MAAK,EAAG2N,YAAY,QAAQmqB,OAAO,CAACr0B,KAAKzB,MAAM6a,QAAQ,WAAW,OAAOzvB,IAAI6oB,SAAS,CAACxS,KAAKwuD,QAAQp1C,SAAQ,IAAK1tB,KAAK,WAAW,MAAM,CAACwvG,GAAG,OAAOzsC,QAAQ,WAAW,IAAIxwD,EAAEzP,KAAK,IAAIA,KAAK0sG,GAAG,CAAC,IAAI3oG,EAAE4E,EAAE3I,KAAKiV,QAAQjV,KAAK6lC,OAAOtqC,SAAQ,SAAU2E,GAAG,IAAIoY,EAAEnd,EAAEs8B,EAAEjf,EAAEQ,cAAc9Y,IAAI,GAAG6D,EAAE7D,IAAIoY,EAAEvU,EAAE7D,IAAI,GAAGoY,aAAavI,MAAMuI,EAAE,CAACA,IAAIjb,OAAOlC,GAAE,WAAY,IAAI,IAAI4I,EAAE3I,UAAUC,OAAOid,EAAE,IAAIvI,MAAMhM,GAAG0zB,EAAE,EAAEA,EAAE1zB,EAAE0zB,IAAInf,EAAEmf,GAAGr8B,UAAUq8B,GAAGhoB,EAAE+wD,MAAMxlE,MAAMyU,EAAE,CAAC+I,EAAEtY,IAAI7C,OAAOib,UAAUvU,EAAE2X,YAAY1b,KAAKlE,OAAOiI,EAAE2X,YAAY1b,KAAK0sG,GAAG,IAAIj1E,EAAEjf,EAAExY,KAAK2sG,UAAU5oG,GAAG/D,KAAK4sG,UAAUrvF,iBAAiB,OAAOvd,KAAK2e,QAAQ3e,KAAK6sG,IAAI,WAAW7sG,KAAK4M,SAAS5M,KAAK8sG,OAAO,WAAW9sG,KAAK+sG,cAAc,CAACC,WAAU,MAAO5sC,QAAQ,CAACusC,QAAQ,WAAW,OAAO3sG,KAAKiV,OAAOlH,KAAK/N,KAAKqgE,IAAIrvD,WAAWhR,KAAKqgE,KAAKmsC,QAAQ,SAAS/8F,GAAG,IAAI1L,EAAE/D,KAAKE,EAAEuP,EAAEvU,OAAO8E,KAAKqlE,WAAU,WAAYthE,EAAEy8D,MAAM,QAAQtgE,EAAEpE,WAAW8wG,QAAQ,WAAW,OAAO5sG,KAAK0sG,GAAGziG,UAAUjK,KAAK0sG,GAAGlzF,OAAOmF,OAAO,SAASlP,GAAGzP,KAAKwgE,MAAM,OAAO/wD,EAAEvU,OAAOY,QAAQ8Q,QAAQ,SAAS6C,EAAE1L,GAAG/D,KAAKwgE,MAAM,QAAQz8D,IAAIgpG,cAAc,SAASt9F,GAAGA,EAAEzP,KAAK4sG,UAAUl7F,aAAa,WAAWjC,GAAGzP,KAAK4sG,UAAU7mF,gBAAgB,cAAcvhB,MAAM,CAACyQ,OAAO,CAAC4qB,MAAK,EAAGziB,QAAQ,SAAS3N,GAAG,IAAI1L,EAAE/D,KAAKE,EAAEyI,EAAE8G,GAAGyE,EAAE3Y,SAAQ,SAAUkU,UAAUvP,EAAEuP,MAAMzP,KAAK0sG,GAAGloF,IAAItkB,GAAGuO,EAAElT,SAAQ,SAAUkU,QAAG,IAASvP,EAAEuP,IAAI1L,EAAE2oG,GAAGloF,IAAI/U,EAAEvP,EAAEuP,SAAS3T,MAAM,SAAS2T,GAAGA,IAAIzP,KAAKqgE,IAAIvkE,OAAOkE,KAAK0sG,IAAI1sG,KAAK0sG,GAAG9gG,QAAQ6D,GAAE,KAAM0wD,cAAc,WAAWngE,KAAK0sG,KAAK1sG,KAAK4sG,UAAUnvF,oBAAoB,OAAOzd,KAAK2e,QAAQ3e,KAAK0sG,GAAG9mF,UAAU5lB,KAAK0sG,GAAG,QAAQ9oG,EAAE,SAAS6L,EAAE1L,GAAG,IAAI7D,EAAE,aAAa,iBAAiB6D,IAAI7D,EAAE6D,GAAG0L,EAAE4uB,UAAUn+B,EAAEsV,IAAIA,EAAE6pD,QAAQz7D,EAAEG,EAAE6mB,QAAQpV,KAAKoV,Y,wECA30HqiF,E,wECEO,EAAe,SAAsBpmF,EAAO/qB,GACrD,IAAK,IAAIX,EAAI,EAAGA,EAAI0rB,EAAMxrB,OAAQF,IAChC,GAAI,eAAW0rB,EAAM1rB,GAAIW,GACvB,OAAOX,EAIX,OAAQ,G,oCDPV,SAASf,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAa3M,IAAIqxG,EAAgC,gBAChCC,EAAiC,QAA0BD,EAEpD,EAAQ,eAAsB,eAASjyG,EAAcA,EAAc,GAAI,QAAsB,IAAKgyG,EAAiB,GAAIxxG,EAAgBwxG,EAAgBC,EAA+B,eAAS,QAAmB,IAASzxG,EAAgBwxG,EAAgB,SAAU,eAAS,QAAmB,IAASxxG,EAAgBwxG,EAAgB,iBAAkB,eAAS,QAAe,IAASxxG,EAAgBwxG,EAAgB,QAAS,eAAS,QAAe,IAAQA,KAAmB,QAGzdrZ,EAA6B,aAAIh3F,OAAO,CACjDC,KAAM,OACNymE,OAAQ,CAAC,QACTG,OAAQ,CACN2pC,QAAS,CACPrmF,KAAM,eACN6D,QAAS,OAGbpuB,MAAO,EACP6H,SAAU,CACRgpG,UAAW,WACT,IAAIvxG,EAAQkE,KAAKlE,MACbynF,EAAUvjF,KAAKstG,qBACnB,OAAO,eAAQ/pB,GAAW,EAAaA,EAASznF,IAAU,EAAI,eAAWynF,EAASznF,IAEpFyxG,QAAS,WACP,OAAO,IAGX/oG,MAAO/I,EAAgB,GAAIyxG,GAA+B,SAAUx9E,EAAUujB,GACvE,eAAWvjB,EAAUujB,IACxBjzC,KAAKwtG,iBAAiB99E,MAG1BuwC,QAAS,WAEPjgE,KAAKwtG,iBAAiBxtG,KAAKktG,KAE7B9sC,QAAS,CACPqtC,4BAA6B,SAAqC/9E,EAAUujB,GAC1E,IAAK,eAAWvjB,EAAUujB,GAAW,CACnCjzC,KAAKwgE,MAAM,OAAkB9wC,GAC7B,IAAIg+E,EAAS1tG,KAAKsgE,MAAM9mD,MAEpBk0F,GACF1tG,KAAKwgE,MAAM2sC,EAAgCO,EAAOC,iBAIxDC,aAAc,SAAsB3wG,GAClC,IAAIyS,EAAQ1P,KAER6tG,EAAc5wG,EAAK/B,OACnBqoF,EAAUsqB,EAAYtqB,QACtBoqB,EAAgBE,EAAYF,cAC5B7xG,EAAQkE,KAAKlE,MACbgyG,EAAiB9tG,KAAK8tG,eAEtBC,EAAe/tG,KAAKstG,qBAExB,GAAI,eAAQS,GAAe,CACzB,IAAI9qG,EAAQ,EAAa8qG,EAAcjyG,GAEnCynF,GAAWtgF,EAAQ,EAErB8qG,EAAeA,EAAa1wG,OAAOvB,IACzBynF,GAAWtgF,GAAS,IAE9B8qG,EAAeA,EAAa3vG,MAAM,EAAG6E,GAAO5F,OAAO0wG,EAAa3vG,MAAM6E,EAAQ,UAGhF8qG,EAAexqB,EAAUznF,EAAQgyG,EAGnC9tG,KAAKstG,qBAAuBS,EAE5B/tG,KAAKqlE,WAAU,WAEb31D,EAAM8wD,MAAM,OAAmButC,GAG3Br+F,EAAMs+F,SACRt+F,EAAM09F,QAAQ5sC,MAAM,OAAmButC,GAGzCr+F,EAAM8wD,MAAM2sC,EAAgCQ,OAGhDH,iBAAkB,SAA0B7lC,GAEtC,eAAQ3nE,KAAKstG,wBACf3lC,GAAQ,GAGV,IAAI+lC,EAAS1tG,KAAKsgE,MAAM9mD,MAEpBk0F,IACFA,EAAOC,cAAgBhmC,EAEvB3nE,KAAKwgE,MAAM2sC,EAAgCxlC,S,8NE/GtC4wB,EAAW,SAAA18F,GAAG,MAAmB,WAAf,eAAOA,IAA4B,OAARA,GAE7CwD,EAAU,SAAAD,GACrB,IAAM6uG,EAAQ,IAAIhvG,KAClB,OAEEG,EAAKyM,YAAcoiG,EAAMpiG,WACzBzM,EAAKsV,aAAeu5F,EAAMv5F,YAC1BtV,EAAK4M,gBAAkBiiG,EAAMjiG,eAWpBilF,EAAuB,SAAAD,GAClC,MAAiCiD,OAAOv5C,QAAQs2C,GAAjCkd,EAAa,EAApBld,MACR,OAAOkd,EAAcn8F,OAASkiF,OAAOka,aAAap8F,MAIvCq8F,EAAY,WACvB,IAAMjoC,EAAKkoC,kCAAqBhf,MAC1B1nB,EAAQ2mC,sBAAS,CACrBtd,MAAO7qB,EAAGoB,SAUZ,OAPA/iE,oBACE,kBAAM2hE,EAAGoB,UACT,SAAAjvD,GACEqvD,EAAMqpB,MAAQ14E,KAIX,iCAAKi2F,oBAAO5mC,IAAM,IAAEssB,OAAQ9tB,EAAGqoC,Y,kCC1CxC,uHAASp0G,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAQpM,IAAIW,EAAQ,eAAsB,eAAK,OAAuB,CAAC,WAAY,SAGvEiyG,EAAiC,aAAI7xG,OAAO,CACrDC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SAEpB,OAAO1D,EAAE,OAAkB,eAAUE,EAAM,CACzCV,MAAOvB,EAAcA,EAAc,GAAIuB,GAAQ,GAAI,CACjD0I,QAAQ,MAERxE,O,kCC5BR,kGAKWlE,EAAQ,eAAsB,CACvCqI,IAAK,eAAS,OAAkB,QAC/B,SAGQ6pG,EAA+B,aAAI9xG,OAAO,CACnDC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SACpB,OAAO1D,EAAER,EAAMqI,IAAK,eAAU3H,EAAM,CAClC8H,YAAa,qBACXtE,O,kCCpBR,uKAAStG,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAY3M,IAAI8yG,EAAa,CAAC,IAAK,cAAe,SAAU,UAE5CC,EAAY,eAAK,OAAY,CAAC,QAAS,qBACpCA,EAAUlsD,KAAK93B,eACfgkF,EAAU5nF,GAAG4D,QACb,IAAIpuB,EAAQ,eAAsB,eAASvB,EAAcA,EAAc,GAAI2zG,GAAY,GAAI,CAChGC,OAAQ,eAAS,QAAmB,GACpCzlD,OAAQ,eAAS,QAAmB,GACpCvkD,IAAK,eAAS,OAAkB,OAChCwrE,QAAS,eAAS,WACf,SAGM+gB,EAA8B,aAAIx0F,OAAO,CAClDC,KAAM,QACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAI6xG,EAEAtyG,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SAChB0oD,EAAS5sD,EAAM4sD,OACfinB,EAAU7zE,EAAM6zE,QAChBvF,EAAStuE,EAAMsuE,OACf9mD,EAAWxnB,EAAMwnB,SACjB+0C,EAAO,eAAOv8D,GACdqI,EAAMukD,EAAS,SAAY2P,EAAmB,OAAZv8D,EAAMqI,IACxCgqG,KAAYryG,EAAMqyG,QAAU91C,GAAQ3P,GAAU,eAAculD,EAAYnyG,EAAMqI,MAC9EjE,EAAQ,GACRmuG,EAAY,GAgBhB,OAdI,eAAMlqG,EAAK,WACR3H,EAAK0D,OAAU1D,EAAK0D,MAAM4Q,OAE7B5Q,EAAM4Q,KAAO,UAGXhV,EAAMwnB,WAERpjB,EAAMojB,UAAW,IAGnB+qF,EAAY,eAAWH,EAAWpyG,GAG7BQ,EAAE6H,EAAK,eAAU3H,EAAM,CAC5B0D,MAAOA,EACPpE,MAAOuyG,EACP/pG,YAAa,kBACbrE,OAAQmuG,EAAS,GAAIrzG,EAAgBqzG,EAAQ,mBAAmBzxG,OAAOgzE,GAAUA,GAAU50E,EAAgBqzG,EAAQ,yBAA0BD,GAASpzG,EAAgBqzG,EAAQ,SAAUhkC,GAASrvE,EAAgBqzG,EAAQ,WAAY9qF,GAAW8qF,KAC9OpuG,O,kCCpER,0GAAI8mG,EAAQwH,EAAZ,gMAEA,SAAS50G,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAmB3M,IAAIisG,EAAkB,eAAe,UAAW,CAC9C/4E,aAAc,OAEZg5E,EAAaD,EAAgBE,MAC7BC,EAAaH,EAAgBtrG,MAC7B0rG,EAAkBJ,EAAgB37C,KAClCg8C,EAAmBL,EAAgBj2F,MAI5BrV,EAAQ,eAAsB,eAASvB,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUgtG,GAAa,QAAmB,QAAgB,QAAiB,QAAkB,GAAI,CACvPG,UAAW,eAAS,QACpBC,eAAgB,eAAS,QAEzBj/C,OAAQ,eAAS,QAAmB,GAEpC6lD,cAAe,eAAS,QACxB3uG,OAAQ,eAAS,QAAmB,GACpCxE,MAAO,eAAS,WACb,0BAGMozG,EAAsB,aAAItyG,OAAO,CAC1C0mE,OAAQ,CAAC,OAAY,OAASykC,EAAY,OAAoB,OAAkB,OAAe,OAAgB,QAC/Gx3B,cAAc,EACd/zE,MAAOA,EACPU,KAAM,WACJ,MAAO,CACL6wG,aAAc/tG,KAAKguG,QAAUhuG,KAAKotG,QAAQlF,GAAmBloG,KAAKkoG,GAClE9+D,UAAU,IAGd/kC,SAAU,CACRipG,qBAAsB,CACpBhpF,IAAK,WACH,OAAOtkB,KAAKguG,QAAUhuG,KAAKotG,QAAQW,aAAe/tG,KAAK+tG,cAEzDvpF,IAAK,SAAa1oB,GACZkE,KAAKguG,QACPhuG,KAAKotG,QAAQW,aAAejyG,EAE5BkE,KAAK+tG,aAAejyG,IAI1BuxG,UAAW,WACT,OAAO,eAAWrtG,KAAKlE,MAAOkE,KAAKstG,uBAErCC,QAAS,WACP,OAAO,GAETS,QAAS,WAEP,QAAShuG,KAAKotG,SAEhB+B,UAAW,WAET,OAAOnvG,KAAKguG,QAAUhuG,KAAKotG,QAAQlkD,QAAUlpD,KAAKopD,QAEpDgmD,QAAS,WACP,OAAOpvG,KAAKmvG,YAAoBnvG,KAAKguG,QAAUhuG,KAAKotG,QAAQ/7B,MAAQrxE,KAAKqxE,QAE3Eg+B,SAAU,WACR,OAAOrvG,KAAKmvG,YAAqBnvG,KAAKovG,SAExCE,SAAU,WAER,QAAOtvG,KAAKmvG,WAAanvG,KAAKutG,SAAWvtG,KAAKovG,WAAkBpvG,KAAKguG,QAAUhuG,KAAKotG,QAAQmC,SAAWvvG,KAAKwvG,SAE9GC,SAAU,WACR,OAAOzvG,KAAKguG,QAAUhuG,KAAKotG,QAAQ9sG,OAASN,KAAKM,QAEnDovG,WAAY,WAEV,OAAO1vG,KAAKguG,SAAUhuG,KAAKotG,QAAQppF,UAA4BhkB,KAAKgkB,UAEtE2rF,WAAY,WAIV,OAAO3vG,KAAK4vG,eAAiB5vG,KAAKguG,QAAUhuG,KAAKotG,QAAQpnG,SAAWhG,KAAKgG,WAE3E4pG,aAAc,WAEZ,OAAQ5vG,KAAKguG,QAAUhuG,KAAKotG,QAAQyC,UAAY7vG,KAAKnD,OAAS,MAEhEizG,aAAc,WACZ,OAAQ9vG,KAAKguG,QAAUhuG,KAAKotG,QAAQ2C,KAAO/vG,KAAK+vG,OAAS,MAE3DC,aAAc,WACZ,OAAQhwG,KAAKguG,QAAUhuG,KAAKotG,QAAQrkG,KAAO/I,KAAK+I,OAAS,IAE3DknG,cAAe,WACb,OAAOjwG,KAAKguG,QAAUhuG,KAAKotG,QAAQ6C,cAAgB,eAAUjwG,KAAK2nE,OAAS3nE,KAAK2nE,MAAQ,MAE1FuoC,sBAAuB,WAErB,IAAIjB,EAAgBjvG,KAAKivG,cAEzB,OAAIA,IAIAjvG,KAAKguG,SAAWhuG,KAAKotG,QAAQ6B,cACxBjvG,KAAKotG,QAAQ6B,cAGf,cAETkB,cAAe,WACb,IAAIlzG,EAEA+yG,EAAehwG,KAAKgwG,aACxB,MAAO,CAAC,MAAO,OAAO3yG,OAAO2C,KAAKkwG,wBAAyBjzG,EAAO,GAAIxB,EAAgBwB,EAAM,OAAOI,OAAO2yG,GAAeA,GAAev0G,EAAgBwB,EAAM,WAAY+C,KAAK0vG,YAAaj0G,EAAgBwB,EAAM,SAAU+C,KAAKqtG,WAAY5xG,EAAgBwB,EAAM,QAAS+C,KAAKopC,UAAWnsC,KAE9RuzE,cAAe,WACb,IAAIxsD,EAAWhkB,KAAK0vG,WAChB1pG,EAAWhG,KAAK2vG,WACpB,OAAO10G,EAAcA,EAAc,GAAI+E,KAAKywE,SAAU,GAAI,CACxDpwE,GAAIL,KAAKskE,SACT9yD,KAAMxR,KAAKutG,QAAU,QAAU,WAC/B1wG,KAAMmD,KAAK4vG,aACXG,KAAM/vG,KAAK8vG,aACX9rF,SAAUA,EACVhe,SAAUA,EACV,gBAAiBA,GAAY,KAC7B,aAAchG,KAAKooG,WAAa,KAChC,kBAAmBpoG,KAAKqoG,gBAAkB,SAIhD7jG,OAAQgjG,EAAS,GAAI/rG,EAAgB+rG,EAAQU,GAAiB,WAC5DloG,KAAK,GAAG3C,OAAO6qG,EAAiB,YAAYltG,MAAMgF,KAAM5E,cACtDK,EAAgB+rG,EAAQ,wBAAwB,WAClDxnG,KAAKytG,4BAA4BzyG,MAAMgF,KAAM5E,cAC3CosG,GACJpnC,SAAU4uC,EAAW,GAAIvzG,EAAgBuzG,EAAU,GAAG3xG,OAAO6qG,EAAiB,YAAY,SAAiBx4E,GACpG,eAAWA,EAAU1vB,KAAKstG,wBAC7BttG,KAAKstG,qBAAuB59E,MAE5Bj0B,EAAgBuzG,EAAU,+BAA+B,SAAqCt/E,EAAUujB,GACrG,eAAWvjB,EAAUujB,IACxBjzC,KAAKwgE,MAAM2nC,EAAkBz4E,MAE7Bj0B,EAAgBuzG,EAAU,gBAAgB,SAAsB3wD,GAClE,IAAI3uC,EAAQ1P,KAERujF,EAAUllC,EAAMnjD,OAAOqoF,QACvBznF,EAAQkE,KAAKlE,MACbiyG,EAAexqB,EAAUznF,EAAQ,KACrCkE,KAAKstG,qBAAuBxxG,EAE5BkE,KAAKqlE,WAAU,WAEb31D,EAAM8wD,MAAM,OAAmButC,GAG3Br+F,EAAMs+F,SACRt+F,EAAM09F,QAAQ5sC,MAAM,OAAmButC,SAGzCtyG,EAAgBuzG,EAAU,eAAe,SAAqBn9F,GAG5DA,EAAM3W,SACW,UAAf2W,EAAML,KACRxR,KAAKopC,UAAW,EACQ,SAAfv3B,EAAML,OACfxR,KAAKopC,UAAW,OAGlB3tC,EAAgBuzG,EAAU,SAAS,WAChChvG,KAAK0vG,YACR,eAAa1vG,KAAKsgE,MAAM9mD,UAExB/d,EAAgBuzG,EAAU,QAAQ,WAC/BhvG,KAAK0vG,YACR,eAAY1vG,KAAKsgE,MAAM9mD,UAEvBw1F,GACJjyG,OAAQ,SAAgBC,GACtB,IAAIuwG,EAAUvtG,KAAKutG,QACf4B,EAAYnvG,KAAKmvG,UACjBC,EAAUpvG,KAAKovG,QACfC,EAAWrvG,KAAKqvG,SAChBI,EAAWzvG,KAAKyvG,SAChBH,EAAWtvG,KAAKsvG,SAChBU,EAAehwG,KAAKgwG,aACpBv/B,EAAUzwE,KAAKywE,QACfm5B,EAAW5pG,KAAK4wE,gBAChB88B,EAAS1wG,EAAE,QAAS,CACtB2D,MAAO,CAAC,CACN,mBAAoByuG,EACpB,uBAAwBC,EAExB,kBAAmBD,IAAYxF,GAC9BuF,EAAY,GAAKnvG,KAAKowG,YACzBtf,WAAY,CAAC,CACXj0F,KAAM,QACNf,MAAOkE,KAAKstG,uBAEd1sG,MAAOZ,KAAKwwE,cACZhnE,SAAU,CACR1N,MAAOkE,KAAKlE,MACZynF,QAASvjF,KAAKqtG,WAEhBznE,GAAI3qC,EAAc,CAChB0sC,OAAQ3nC,KAAK4tG,cACZuB,EAAY,CACb7tF,MAAOthB,KAAKqwG,YACZ9oF,KAAMvnB,KAAKqwG,aACT,IACJ70G,IAAK,QACL2I,IAAK,UAGP,GAAIgrG,EAAW,CACb,IAAImB,EAAUtzG,EAAE,QAAS,CACvB2D,MAAOX,KAAKmwG,eACX,CAACzC,EAAQ9D,IAUZ,OARK5pG,KAAKguG,UAGRsC,EAAUtzG,EAAE,MAAO,CACjB2D,MAAO,CAAC,mBAAoB,mBAC3B,CAAC2vG,KAGCA,EAKT,IAAIC,EAASvzG,IAcb,OAZMoyG,IAAYxF,IAChB2G,EAASvzG,EAAE,QAAS,CAClB2D,MAAO,CACL,mBAAoByuG,EACpB,uBAAwBC,GAE1BzuG,MAAO,CACL4vG,IAAKxwG,KAAKskE,WAEXslC,IAGE5sG,EAAE,MAAO,CACd2D,MAAO,CAAClF,EAAgB,CACtB,aAAc2zG,EACd,oBAAqBA,GAAWK,EAChC,iBAAkBJ,EAClB,wBAAyBA,GAAYI,EACrC,kBAAmBJ,IAAa9B,IAAY+B,EAC5C,gBAAiBA,EACjB,eAAgBD,GAAY9B,GAC3B,oBAAoBlwG,OAAO2yG,GAAeA,IAAiBb,GAAY1+B,EAAQ9vE,OAClFoa,MAAO01D,EAAQ11D,OACd,CAAC2yF,EAAQ6C,Q,s7CC5RhB,6OAASn2G,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAgBpM,IAAIW,EAAQ,eAAsB,eAASvB,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAgB,GAAI,CAC5HqnC,MAAO,eAAS,QAAmB,GACnCwC,KAAM,eAAS,QAEf+jE,KAAM,eAAS,QAAmB,GAClC4H,UAAW,eAAS,QACpBC,QAAS,eAAS,QAAmB,GACrC/mG,KAAM,eAAS,OAAkB,QACjCZ,KAAM,eAAS,QACfjL,MAAO,eAAS,QAAmB,GACnC6yG,gBAAiB,eAAS,OAAkB,UAAU,SAAU70G,GAC9D,OAAO,eAAc,CAAC,SAAU,SAAU,SAAUA,MAEtD80G,WAAY,eAAS,QACrBC,UAAW,eAAS,QACpBC,QAAS,eAAS,QAClBC,aAAc,eAAS,QACvB90E,KAAM,eAAS,QACfjsB,YAAa,eAAS,QACtBghG,UAAW,eAAS,OAAkB,UAEtCC,WAAY,eAAS,OAAkB,mBACvC5gC,QAAS,eAAS,OAAkB,gBACjC,QAGMsjB,EAAyB,aAAI/2F,OAAO,CAC7CC,KAAM,OACNymE,OAAQ,CAAC,OAAS,OAAe,QACjC9mE,MAAOA,EACP6H,SAAU,CACR6sG,gBAAiB,WACf,IAAI5uE,EAAQtiC,KAAKsiC,MACbxkC,EAAQkC,KAAKlC,MACjB,MAAO,CAACkC,KAAK+jE,eAAgB/jE,KAAKgkE,cAAe,CAC/CtJ,KAAM16D,KAAK2jE,QAIX,YAAa7lE,IAAUwkC,EAGvB,SAAUA,GAASxkC,KAGvBqzG,YAAa,WACX,MAAO,CAACnxG,KAAKywG,UAAW,CACtB,sBAAuBzwG,KAAKmsB,MAC5BuuC,KAAM16D,KAAK2jE,WAGfytC,cAAe,WACb,IAAItzG,EAAQkC,KAAKlC,MACjB,MAAO,CAACkC,KAAKgQ,YAAa,CACxB,wBAAyBlS,EACzB,2BAA4BkC,KAAK0wG,UAAY5yG,MAInDf,OAAQ,SAAgBC,GACtB,IAAI2mE,EAAU3jE,KAAK2jE,QACf0M,EAAUrwE,KAAKqwE,QACftnE,EAAO/I,KAAK+I,KACZu5B,EAAQtiC,KAAKsiC,MACbte,EAAWhkB,KAAKgkB,SAChBlmB,EAAQkC,KAAKlC,MACb6L,EAAO3J,KAAK2J,KACZm/C,EAAO9oD,KAAK8oD,KACZ36B,EAASnuB,KAAKmuB,OACdkjF,EAAc,CAChBhhC,QAASA,EACTtnE,KAAMA,EACNu5B,MAAOA,EACPte,SAAUA,GAERstF,EAAkBtxG,KAAK4wE,cAAc,QACrC2gC,EAAwBvxG,KAAK+qG,kBAAkB,QAA4B,GAAK,eAAW/qG,KAAK8kC,KAAM9kC,KAAKi8B,MAC3Gu1E,EAASx0G,IAEb,GAAIc,EAAO,CACT,IAAIgzG,EAAU9wG,KAAK8wG,QACfD,EAAY7wG,KAAK6wG,UACjBF,EAAkB3wG,KAAK2wG,gBAEvBc,EAAWx2G,EAAcA,EAAc,GAAIo2G,GAAc,GAAI,CAC/DhhC,QAASrwE,KAAK+wG,cAAgB1gC,IAK5BygC,EACFW,EAASzqF,GAAK8pF,EACLD,EACTY,EAAS/uD,KAAOmuD,EACPF,IACTc,EAASjgG,KAAOm/F,GAGlBa,EAASx0G,EAAE,OAAS,CAClB2D,MAAOX,KAAK4wG,WACZhwG,MAAO,CACLP,GAAIL,KAAKskE,OAAO,gBAElB9nE,MAAOi1G,EACPjoG,SAAU+nG,EACV3rE,GAAI,CACF3c,MAAOjpB,KAAK4mE,cAEdziE,IAAK,UACJmtG,GAEHA,EAAkB,CAACt0G,EAAE,OAAQ,CAC3B2D,MAAO,CAAC,YACP,CAACX,KAAKixG,cACTM,EAAwB,GAG1B,IAAIG,EAAU10G,EAAE,OAAS,CACvBgI,YAAa,kBACbrE,MAAOX,KAAKoxG,cACZxwG,MAAO,CACLP,GAAIL,KAAKskE,OAAO,eAChB,gBAAiB,OACjB,gBAAiB,eAASX,IAE5BnnE,MAAOvB,EAAcA,EAAc,GAAIo2G,GAAc,GAAI,CACvDxsG,IAAK7E,KAAKgxG,UACV1uE,MAAOA,IAAUxkC,IAEnB0L,SAAU+nG,EACV3rE,GAAI,CACF+rE,UAAW3xG,KAAKumE,YAChBt9C,MAAOkF,EACPo+E,QAASp+E,GAGXhqB,IAAK,UACJmtG,GACCM,EAAQ50G,EAAE,KAAM,CAClBgI,YAAa,gBACbrE,MAAOX,KAAKmxG,YACZvwG,MAAO,CACL+I,KAAMA,EACNka,SAAU,KACV,kBAAmB7jB,KAAKskE,OAAOxmE,EAAQ,cAAgB,gBAEzD8nC,GAAI,CACF2mE,QAASvsG,KAAKymE,WAGhBtiE,IAAK,QACJ,EAAEnE,KAAK6oG,MAAQllC,EAAU3jE,KAAK4wE,cAAc,OAAmB,CAChE9nB,KAAMA,IACH9rD,MACL,OAAOA,EAAE,MAAO,CACdgI,YAAa,sBACbrE,MAAOX,KAAKkxG,gBACZtwG,MAAO,CACLP,GAAIL,KAAKskE,WAEV,CAACktC,EAAQE,EAASE,Q,kCCpLzB,qQAASx3G,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAkB3M,IAAI4rG,EAAa,WACbj/C,EAAQ,CAAC,KAAM,KAAM,MACrBqpD,EAAkB,GAClBC,EAA0C,GAAlBD,EAEjBE,EAAc,SAAqBj2G,GAI5C,OAFAA,EAAQ,eAASA,IAAU,eAAUA,GAAS,eAAQA,EAAO,GAAKA,EAE3D,eAASA,GAAS,GAAGuB,OAAOvB,EAAO,MAAQA,GAAS,MAGzD8yG,EAAY,eAAK,OAAY,CAAC,SAAU,QAAS,cAC1CpyG,EAAQ,eAAsB,eAASvB,EAAcA,EAAc,GAAI2zG,GAAY,GAAI,CAChGoD,IAAK,eAAS,OAAkB,UAChC5J,UAAW,eAAS,QACpB6J,MAAO,eAAS,QAA0B,GAC1CC,UAAW,eAAS,QAAmB,GACvCC,YAAa,eAAS,QACtBC,SAAU,eAAS,QAAmB,GACtCC,aAAc,eAAS,OAAkB,WACzCjpD,OAAQ,eAAS,QAAmB,GACpCkpD,WAAY,eAAS,OAAkB,UACvC71G,KAAM,eAAS,QACf81G,QAAS,eAAS,QAA0B,GAC5CxpG,KAAM,eAAS,QACfypG,OAAQ,eAAS,QAAmB,GACpC/yE,IAAK,eAAS,QACdxD,KAAM,eAAS,QACfo0C,QAAS,eAAS,OAAkB,gBACjC,QAGMgjB,EAAuB,aAAIz2F,OAAO,CAC3CC,KAAM,OACNymE,OAAQ,CAAC,QACTG,OAAQ,CACNgvC,cAAe,CACb7nF,QAAS,OAGbpuB,MAAOA,EACPU,KAAM,WACJ,MAAO,CACLw1G,SAAU1yG,KAAKy/B,KAAO,OAG1Bp7B,SAAU,CACR2rG,aAAc,WAEZ,IAAIyC,EAAgBzyG,KAAKyyG,cACzB,OAAOV,EAAYU,EAAgBA,EAAc1pG,KAAO/I,KAAK+I,OAE/D4pG,gBAAiB,WACf,IAAIF,EAAgBzyG,KAAKyyG,cACzB,OAAOA,GAAiBA,EAAcpiC,QAAUoiC,EAAcpiC,QAAUrwE,KAAKqwE,SAE/EuiC,gBAAiB,WACf,IAAIH,EAAgBzyG,KAAKyyG,cACrBD,KAASC,IAAiBA,EAAcD,SAAgBxyG,KAAKwyG,OAC7DD,EAAUE,GAAiBA,EAAcF,QAAUE,EAAcF,QAAUvyG,KAAKuyG,QACpF,OAAOC,EAAS,IAAkB,KAAZD,IAAwBA,GAAW,WAE3Dh7C,UAAW,WACT,IAAIxuD,EAAO/I,KAAKgwG,aACZ6C,GAAoC,IAAzBrqD,EAAMlhD,QAAQyB,GAAe,QAAQ1L,OAAO0L,EAAM,OAAO1L,OAAOw0G,EAAiB,KAAO,KACvG,OAAOgB,EAAW,CAChBA,SAAUA,GACR,IAENC,YAAa,WACX,IAAI/pG,EAAO/I,KAAKgwG,aACZyC,EAAgBzyG,KAAKyyG,cACrBM,EAAeN,EAAgBA,EAAcM,aAAe,EAC5Dj3G,EAAQiN,GAAQgqG,EAAe,QAAQ11G,OAAO0L,EAAM,QAAQ1L,OAAO01G,EAAc,KAAO,KAC5F,OAAOj3G,EAAQ,CACbsjE,WAAYtjE,EACZgzE,YAAahzE,GACX,IAENk3G,WAAY,WACV,IAAIjqG,EAAO/I,KAAKgwG,aACZoC,EAAWpyG,KAAKoyG,SAChBF,EAAYlyG,KAAKkyG,UACjBC,EAAcnyG,KAAKmyG,YACnB/vF,EAAS+vF,GAAe,MAC5B,MAAO,CACLU,UAAmC,IAAzBrqD,EAAMlhD,QAAQyB,GAAe,QAAQ1L,OAAO0L,EAAM,OAAO1L,OAAOy0G,EAAuB,MAAQ,KACzGjmF,IAAKumF,EAAWhwF,EAAS,KACzBuJ,OAAQymF,EAAW,KAAOhwF,EAC1B2J,KAAMmmF,EAAY9vF,EAAS,KAC3B+J,MAAO+lF,EAAY,KAAO9vF,KAIhC5d,MAAO,CACLi7B,IAAK,SAAa/P,EAAUujB,GACtBvjB,IAAaujB,IACfjzC,KAAK0yG,SAAWhjF,GAAY,QAIlC0wC,QAAS,CACP6yC,WAAY,SAAoBphG,GAC9B7R,KAAK0yG,SAAW,KAChB1yG,KAAKwgE,MAAM,OAAsB3uD,IAEnC8+D,QAAS,SAAiB9+D,GACxB7R,KAAKwgE,MAAM,OAAkB3uD,KAGjC9U,OAAQ,SAAgBC,GACtB,IAAIk2G,EAEA7iC,EAAUrwE,KAAK2yG,gBACf3uF,EAAWhkB,KAAKgkB,SAChBuuF,EAAUvyG,KAAK4yG,gBACfn2G,EAAOuD,KAAKvD,KACZgjC,EAAMz/B,KAAK0yG,SACXz2E,EAAOj8B,KAAKi8B,KACZs7B,EAAYv3D,KAAKu3D,UACjBu7C,EAAc9yG,KAAK8yG,YACnB/pG,EAAO/I,KAAKgwG,aACZ5mD,EAASppD,KAAKopD,OACd53C,EAAOxR,KAAKsyG,WACZL,EAAQjyG,KAAKiyG,MACbI,EAAeryG,KAAKqyG,aACpBW,EAAahzG,KAAKgzG,WAClBj6C,GAAQ3P,GAAU,eAAOppD,MACzB6E,EAAMukD,EAAS,OAAU2P,EAAO,OAAQ,OACxCi5C,EAAMhyG,KAAKgyG,IACX5J,EAAYpoG,KAAKooG,WAAa,KAC9BwB,EAAW,KAEX5pG,KAAK+qG,oBAEPnB,EAAW5sG,EAAE,OAAQ,CACnBgI,YAAa,mBACZ,CAAChF,KAAK4wE,kBACAnxC,GACTmqE,EAAW5sG,EAAE,MAAO,CAClB+d,MAAOs1D,EAAU,GAAK,CACpB/0D,MAAO,OACPmtB,OAAQ,QAEV7nC,MAAO,CACL6+B,IAAKA,EACLuyE,IAAKA,GAEPpsE,GAAI,CACF5zB,MAAOhS,KAAKizG,cAGhBrJ,EAAW5sG,EAAE,OAAQ,CACnBgI,YAAa,gBACZ,CAAC4kG,KAEJA,EADSntG,EACEO,EAAE,OAAO,CAClBR,MAAO,CACLC,KAAMA,GAERmE,MAAO,CACL,cAAe,OACfoxG,IAAKA,KAGA/1E,EACEj/B,EAAE,OAAQ,CACnBgI,YAAa,gBACb+V,MAAOw8C,GACN,CAACv6D,EAAE,OAAQi/B,KAGHj/B,EAAE,OAAiB,CAC5B4D,MAAO,CACL,cAAe,OACfoxG,IAAKA,KAKX,IAAImB,EAASn2G,IACTo2G,EAAepzG,KAAK+qG,kBAAkB,QAE1C,GAAIkH,GAAmB,KAAVA,GAAgBmB,EAAc,CACzC,IAAIC,GAAsB,IAAVpB,EAAiB,GAAKA,EACtCkB,EAASn2G,EAAE,OAAQ,CACjBgI,YAAa,iBACbrE,MAAOlF,EAAgB,GAAI,SAAS4B,OAAOg1G,GAAeA,GAC1Dt3F,MAAOi4F,GACN,CAACI,EAAepzG,KAAK4wE,cAAc,QAAmByiC,IAG3D,IAAItuG,EAAgB,CAClBC,YAAayiG,EACb9mG,OAAQuyG,EAAU,GAAIz3G,EAAgBy3G,EAAS,GAAG71G,OAAOoqG,EAAY,KAAKpqG,OAAO0L,GAAOA,IAAiC,IAAzBy/C,EAAMlhD,QAAQyB,IAAetN,EAAgBy3G,EAAS,SAAS71G,OAAOgzE,IAAWjnB,GAAUinB,GAAU50E,EAAgBy3G,EAAS,WAAuB,IAAZX,GAAmB92G,EAAgBy3G,EAAS,WAAW71G,OAAOk1G,GAAUA,IAAuB,IAAZA,GAAmB92G,EAAgBy3G,EAAS,WAAYlvF,GAAWkvF,GAC/Xn4F,MAAO9f,EAAcA,EAAc,GAAI63G,GAAc,GAAI,CACvDx3F,MAAOvS,EACP0/B,OAAQ1/B,IAEVnI,MAAO,CACL,aAAcwnG,GAAa,MAE7B5rG,MAAO4sD,EAAS,CACdinB,QAASA,EACTrsD,SAAUA,EACVxS,KAAMA,GACJunD,EAAO,eAAW61C,EAAW5uG,MAAQ,GACzC4lC,GAAIwjB,GAAU2P,EAAO,CACnB9vC,MAAOjpB,KAAK2wE,SACV,IAEN,OAAO3zE,EAAE6H,EAAKE,EAAe,CAAC6kG,EAAUuJ,Q,kCC1O5C,+IAAS/4G,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOhB,YAAY,EAAMiB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,EAU3M,IAAI+yG,EAAY,eAAK,OAAY,CAAC,QAAS,qBACpCA,EAAUlsD,KAAK93B,eACfgkF,EAAU5nF,GAAG4D,QACb,IAAIpuB,EAAQ,eAAsB,eAASvB,EAAcA,EAAc,GAAI2zG,GAAY,GAAI,CAChG0E,KAAM,eAAS,QAAmB,GAClCzuG,IAAK,eAAS,OAAkB,QAChCwrE,QAAS,eAAS,OAAkB,gBACjC,QAGMwjB,EAAsB,aAAIj3F,OAAO,CAC1CC,KAAM,OACNC,YAAY,EACZN,MAAOA,EACPO,OAAQ,SAAgBC,EAAGC,GACzB,IAAIT,EAAQS,EAAKT,MACbU,EAAOD,EAAKC,KACZwD,EAAWzD,EAAKyD,SAChBoqE,EAAStuE,EAAMsuE,OACf9mD,EAAWxnB,EAAMwnB,SACjB+0C,EAAO,eAAOv8D,GACdqI,EAAMk0D,EAAO,OAAQv8D,EAAMqI,IAC3BwrE,EAAU7zE,EAAM6zE,SAAW,YAC/B,OAAOrzE,EAAE6H,EAAK,eAAU3H,EAAM,CAC5B8H,YAAa,QACbrE,MAAO,CAAC,SAAStD,OAAOgzE,GAAU,CAChC,aAAc7zE,EAAM82G,KACpBxoC,OAAQA,EACR9mD,SAAUA,IAEZxnB,MAAOu8D,EAAO,eAAW61C,EAAWpyG,GAAS,KAC3CkE,O,kCC7CR","file":"js/chunk-12e7d267.c986850a.js","sourcesContent":["function 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\nimport { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","import { isToday } from './utils'\r\n\r\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\r\n\r\nexport const title = (value, replacer = ' ') => {\r\n if (!value) return ''\r\n const str = value.toString()\r\n\r\n const arr = str.split(replacer)\r\n const capitalizedArray = []\r\n arr.forEach(word => {\r\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\r\n capitalizedArray.push(capitalized)\r\n })\r\n return capitalizedArray.join(' ')\r\n}\r\n\r\nexport const avatarText = value => {\r\n if (!value) return ''\r\n const nameArray = value.split(' ')\r\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\r\n}\r\n\r\n/**\r\n * Format and return date in Humanize format\r\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\r\n if (!value) return value\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n/**\r\n * Return short human friendly month representation of date\r\n * Can also convert date to only time if date is of today (Better UX)\r\n * @param {String} value date to format\r\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\r\n */\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value)\r\n let formatting = { month: 'short', day: 'numeric' }\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' }\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n// Strip all the tags from markup and return plain text\r\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\r\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","import store from '@/store'\r\nimport { ref, watch, computed } from '@vue/composition-api'\r\n\r\nexport const useResponsiveAppLeftSidebarVisibility = () => {\r\n const mqShallShowLeftSidebar = ref(false)\r\n // Close Active Sidebars and other stuff when going in large device\r\n const currentBreakPoint = computed(() => store.getters['app/currentBreakPoint'])\r\n watch(currentBreakPoint, (val, oldVal) => {\r\n // Reset chats & contacts left sidebar\r\n if (oldVal === 'md' && val === 'lg') mqShallShowLeftSidebar.value = false\r\n })\r\n\r\n return {\r\n mqShallShowLeftSidebar,\r\n }\r\n}\r\n\r\nexport const _ = {}\r\n","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_LIST_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isString } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n flush: makeProp(PROP_TYPE_BOOLEAN, false),\n horizontal: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_LIST_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BListGroup = /*#__PURE__*/Vue.extend({\n name: NAME_LIST_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var horizontal = props.horizontal === '' ? true : props.horizontal;\n horizontal = props.flush ? false : horizontal;\n var componentData = {\n staticClass: 'list-group',\n class: _defineProperty({\n 'list-group-flush': props.flush,\n 'list-group-horizontal': horizontal === true\n }, \"list-group-horizontal-\".concat(horizontal), isString(horizontal))\n };\n return h(props.tag, mergeData(data, componentData), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\n }), children);\n }\n});","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","import { ref, nextTick } from '@vue/composition-api'\r\n\r\n// ===========================================================\r\n// ! This is coupled with \"veeValidate\" plugin\r\n// ===========================================================\r\n\r\nexport default function formValidation(resetFormData, clearFormData = () => {}) {\r\n // ------------------------------------------------\r\n // refFormObserver\r\n // ! This is for veeValidate Observer\r\n // * Used for veeValidate form observer\r\n // ------------------------------------------------\r\n const refFormObserver = ref(null)\r\n\r\n // ------------------------------------------------\r\n // resetObserver\r\n // ! This function is coupled with veeValidate\r\n // * It resets form observer\r\n // ------------------------------------------------\r\n const resetObserver = () => {\r\n refFormObserver.value.reset()\r\n }\r\n\r\n // ------------------------------------------------\r\n // getValidationState\r\n // ! This function is coupled with veeValidate\r\n // * It returns true/false based on validation\r\n // ------------------------------------------------\r\n // eslint-disable-next-line object-curly-newline\r\n const getValidationState = ({ dirty, validated, required: fieldRequired, changed, valid = null }) => {\r\n const result = dirty || validated ? valid : null\r\n return !fieldRequired && !changed ? null : result\r\n }\r\n\r\n // ------------------------------------------------\r\n // resetForm\r\n // ! This function is coupled with veeValidate\r\n // * This uses resetFormData arg to reset form data\r\n // ------------------------------------------------\r\n const resetForm = () => {\r\n resetFormData()\r\n nextTick(() => {\r\n resetObserver()\r\n })\r\n }\r\n\r\n // ------------------------------------------------\r\n // clearForm\r\n // ! This function is coupled with veeValidate\r\n // * This uses clearFormData arg to reset form data\r\n // ------------------------------------------------\r\n const clearForm = () => {\r\n clearFormData()\r\n nextTick(() => {\r\n resetObserver()\r\n })\r\n }\r\n\r\n return {\r\n refFormObserver,\r\n resetObserver,\r\n getValidationState,\r\n resetForm,\r\n clearForm,\r\n }\r\n}\r\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\n }\n});","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoTaskHandlerSidebar.vue?vue&type=style&index=0&id=6b93e4ba&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Todo.vue?vue&type=style&index=1&id=53380294&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoTaskHandlerSidebar.vue?vue&type=style&index=1&id=6b93e4ba&prod&lang=scss&scoped=true&\"","/**\n * vee-validate v3.4.5\n * (c) 2020 Abdelrahman Awad\n * @license MIT\n */\n/**\r\n * Some Alpha Regex helpers.\r\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\r\n */\r\n/* eslint-disable no-misleading-character-class */\r\nvar alpha = {\r\n en: /^[A-Z]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[A-ZÆØÅ]*$/i,\r\n de: /^[A-ZÄÖÜß]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ro: /^[A-ZĂÂÎŞŢ]*$/i,\r\n ru: /^[А-ЯЁ]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[A-ZÅÄÖ]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,\r\n el: /^[Α-ώ]*$/i\r\n};\r\nvar alphaSpaces = {\r\n en: /^[A-Z\\s]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\\s]*$/i,\r\n da: /^[A-ZÆØÅ\\s]*$/i,\r\n de: /^[A-ZÄÖÜß\\s]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ\\s]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\\s]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ\\s]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ\\s]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ\\s]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\\s]*$/i,\r\n ro: /^[A-ZĂÂÎŞŢ\\s]*$/i,\r\n ru: /^[А-ЯЁ\\s]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\\s]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ\\s]*$/i,\r\n sv: /^[A-ZÅÄÖ\\s]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ\\s]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\\s]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ\\s]*$/i,\r\n el: /^[Α-ώ\\s]*$/i\r\n};\r\nvar alphanumeric = {\r\n en: /^[0-9A-Z]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[0-9A-ZÆØÅ]$/i,\r\n de: /^[0-9A-ZÄÖÜß]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ro: /^[0-9A-ZĂÂÎŞŢ]*$/i,\r\n ru: /^[0-9А-ЯЁ]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,\r\n el: /^[0-9Α-ώ]*$/i\r\n};\r\nvar alphaDash = {\r\n en: /^[0-9A-Z_-]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,\r\n da: /^[0-9A-ZÆØÅ_-]*$/i,\r\n de: /^[0-9A-ZÄÖÜß_-]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ_-]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,\r\n ro: /^[0-9A-ZĂÂÎŞŢ_-]*$/i,\r\n ru: /^[0-9А-ЯЁ_-]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ_-]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ_-]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,\r\n el: /^[0-9Α-ώ_-]*$/i\r\n};\n\nvar validate = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });\r\n }\r\n return (alpha[locale] || alpha.en).test(value);\r\n};\r\nvar params = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha$1 = {\r\n validate: validate,\r\n params: params\r\n};\n\nvar validate$1 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$1(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaDash).some(function (loc) { return alphaDash[loc].test(value); });\r\n }\r\n return (alphaDash[locale] || alphaDash.en).test(value);\r\n};\r\nvar params$1 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_dash = {\r\n validate: validate$1,\r\n params: params$1\r\n};\n\nvar validate$2 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$2(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphanumeric).some(function (loc) { return alphanumeric[loc].test(value); });\r\n }\r\n return (alphanumeric[locale] || alphanumeric.en).test(value);\r\n};\r\nvar params$2 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_num = {\r\n validate: validate$2,\r\n params: params$2\r\n};\n\nvar validate$3 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$3(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaSpaces).some(function (loc) { return alphaSpaces[loc].test(value); });\r\n }\r\n return (alphaSpaces[locale] || alphaSpaces.en).test(value);\r\n};\r\nvar params$3 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_spaces = {\r\n validate: validate$3,\r\n params: params$3\r\n};\n\nvar validate$4 = function (value, _a) {\r\n var _b = _a === void 0 ? {} : _a, min = _b.min, max = _b.max;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return !!validate$4(val, { min: min, max: max }); });\r\n }\r\n return Number(min) <= value && Number(max) >= value;\r\n};\r\nvar params$4 = [\r\n {\r\n name: 'min'\r\n },\r\n {\r\n name: 'max'\r\n }\r\n];\r\nvar between = {\r\n validate: validate$4,\r\n params: params$4\r\n};\n\nvar validate$5 = function (value, _a) {\r\n var target = _a.target;\r\n return String(value) === String(target);\r\n};\r\nvar params$5 = [\r\n {\r\n name: 'target',\r\n isTarget: true\r\n }\r\n];\r\nvar confirmed = {\r\n validate: validate$5,\r\n params: params$5\r\n};\n\nvar validate$6 = function (value, _a) {\r\n var length = _a.length;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$6(val, { length: length }); });\r\n }\r\n var strVal = String(value);\r\n return /^[0-9]*$/.test(strVal) && strVal.length === length;\r\n};\r\nvar params$6 = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar digits = {\r\n validate: validate$6,\r\n params: params$6\r\n};\n\nvar validateImage = function (file, width, height) {\r\n var URL = window.URL || window.webkitURL;\r\n return new Promise(function (resolve) {\r\n var image = new Image();\r\n image.onerror = function () { return resolve(false); };\r\n image.onload = function () { return resolve(image.width === width && image.height === height); };\r\n image.src = URL.createObjectURL(file);\r\n });\r\n};\r\nvar validate$7 = function (files, _a) {\r\n var width = _a.width, height = _a.height;\r\n var list = [];\r\n files = Array.isArray(files) ? files : [files];\r\n for (var i = 0; i < files.length; i++) {\r\n // if file is not an image, reject.\r\n if (!/\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(files[i].name)) {\r\n return Promise.resolve(false);\r\n }\r\n list.push(files[i]);\r\n }\r\n return Promise.all(list.map(function (file) { return validateImage(file, width, height); })).then(function (values) {\r\n return values.every(function (v) { return v; });\r\n });\r\n};\r\nvar params$7 = [\r\n {\r\n name: 'width',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n },\r\n {\r\n name: 'height',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar dimensions = {\r\n validate: validate$7,\r\n params: params$7\r\n};\n\nvar validate$8 = function (value, _a) {\r\n var multiple = (_a === void 0 ? {} : _a).multiple;\r\n // eslint-disable-next-line\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (multiple && !Array.isArray(value)) {\r\n value = String(value)\r\n .split(',')\r\n .map(function (emailStr) { return emailStr.trim(); });\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return re.test(String(val)); });\r\n }\r\n return re.test(String(value));\r\n};\r\nvar params$8 = [\r\n {\r\n name: 'multiple',\r\n default: false\r\n }\r\n];\r\nvar email = {\r\n validate: validate$8,\r\n params: params$8\r\n};\n\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n return Array.isArray(arr) && arr.length === 0;\r\n}\r\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\n\nfunction includes(collection, item) {\r\n return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n if (isCallable(Array.from)) {\r\n return Array.from(arrayLike);\r\n }\r\n /* istanbul ignore next */\r\n return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n var array = [];\r\n var length = arrayLike.length;\r\n for (var i = 0; i < length; i++) {\r\n array.push(arrayLike[i]);\r\n }\r\n return array;\r\n}\n\nvar validate$9 = function (value, options) {\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$9(val, options); });\r\n }\r\n return toArray(options).some(function (item) {\r\n // eslint-disable-next-line\r\n return item == value;\r\n });\r\n};\r\nvar oneOf = {\r\n validate: validate$9\r\n};\n\nvar validate$a = function (value, args) {\r\n return !validate$9(value, args);\r\n};\r\nvar excluded = {\r\n validate: validate$a\r\n};\n\nvar validate$b = function (files, extensions) {\r\n var regex = new RegExp(\".(\" + extensions.join('|') + \")$\", 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.name); });\r\n }\r\n return regex.test(files.name);\r\n};\r\nvar ext = {\r\n validate: validate$b\r\n};\n\nvar validate$c = function (files) {\r\n var regex = /\\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.name); });\r\n }\r\n return regex.test(files.name);\r\n};\r\nvar image = {\r\n validate: validate$c\r\n};\n\nvar validate$d = function (value) {\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });\r\n }\r\n return /^-?[0-9]+$/.test(String(value));\r\n};\r\nvar integer = {\r\n validate: validate$d\r\n};\n\nvar validate$e = function (value, _a) {\r\n var other = _a.other;\r\n return value === other;\r\n};\r\nvar params$9 = [\r\n {\r\n name: 'other'\r\n }\r\n];\r\nvar is = {\r\n validate: validate$e,\r\n params: params$9\r\n};\n\nvar validate$f = function (value, _a) {\r\n var other = _a.other;\r\n return value !== other;\r\n};\r\nvar params$a = [\r\n {\r\n name: 'other'\r\n }\r\n];\r\nvar is_not = {\r\n validate: validate$f,\r\n params: params$a\r\n};\n\nvar validate$g = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (typeof value === 'string') {\r\n value = toArray(value);\r\n }\r\n if (typeof value === 'number') {\r\n value = String(value);\r\n }\r\n if (!value.length) {\r\n value = toArray(value);\r\n }\r\n return value.length === length;\r\n};\r\nvar params$b = [\r\n {\r\n name: 'length',\r\n cast: function (value) { return Number(value); }\r\n }\r\n];\r\nvar length = {\r\n validate: validate$g,\r\n params: params$b\r\n};\n\nvar validate$h = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return length >= 0;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$h(val, { length: length }); });\r\n }\r\n return String(value).length <= length;\r\n};\r\nvar params$c = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar max = {\r\n validate: validate$h,\r\n params: params$c\r\n};\n\nvar validate$i = function (value, _a) {\r\n var max = _a.max;\r\n if (isNullOrUndefined(value) || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(function (val) { return validate$i(val, { max: max }); });\r\n }\r\n return Number(value) <= max;\r\n};\r\nvar params$d = [\r\n {\r\n name: 'max',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar max_value = {\r\n validate: validate$i,\r\n params: params$d\r\n};\n\nvar validate$j = function (files, mimes) {\r\n var regex = new RegExp(mimes.join('|').replace('*', '.+') + \"$\", 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.type); });\r\n }\r\n return regex.test(files.type);\r\n};\r\nvar mimes = {\r\n validate: validate$j\r\n};\n\nvar validate$k = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$k(val, { length: length }); });\r\n }\r\n return String(value).length >= length;\r\n};\r\nvar params$e = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar min = {\r\n validate: validate$k,\r\n params: params$e\r\n};\n\nvar validate$l = function (value, _a) {\r\n var min = _a.min;\r\n if (isNullOrUndefined(value) || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(function (val) { return validate$l(val, { min: min }); });\r\n }\r\n return Number(value) >= min;\r\n};\r\nvar params$f = [\r\n {\r\n name: 'min',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar min_value = {\r\n validate: validate$l,\r\n params: params$f\r\n};\n\nvar ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\r\nvar en = /^[0-9]+$/;\r\nvar validate$m = function (value) {\r\n var testValue = function (val) {\r\n var strValue = String(val);\r\n return en.test(strValue) || ar.test(strValue);\r\n };\r\n if (Array.isArray(value)) {\r\n return value.every(testValue);\r\n }\r\n return testValue(value);\r\n};\r\nvar numeric = {\r\n validate: validate$m\r\n};\n\nvar validate$n = function (value, _a) {\r\n var regex = _a.regex;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$n(val, { regex: regex }); });\r\n }\r\n return regex.test(String(value));\r\n};\r\nvar params$g = [\r\n {\r\n name: 'regex',\r\n cast: function (value) {\r\n if (typeof value === 'string') {\r\n return new RegExp(value);\r\n }\r\n return value;\r\n }\r\n }\r\n];\r\nvar regex = {\r\n validate: validate$n,\r\n params: params$g\r\n};\n\nvar validate$o = function (value, _a) {\r\n var allowFalse = (_a === void 0 ? { allowFalse: true } : _a).allowFalse;\r\n var result = {\r\n valid: false,\r\n required: true\r\n };\r\n if (isNullOrUndefined(value) || isEmptyArray(value)) {\r\n return result;\r\n }\r\n // incase a field considers `false` as an empty value like checkboxes.\r\n if (value === false && !allowFalse) {\r\n return result;\r\n }\r\n result.valid = !!String(value).trim().length;\r\n return result;\r\n};\r\nvar computesRequired = true;\r\nvar params$h = [\r\n {\r\n name: 'allowFalse',\r\n default: true\r\n }\r\n];\r\nvar required = {\r\n validate: validate$o,\r\n params: params$h,\r\n computesRequired: computesRequired\r\n};\n\nvar testEmpty = function (value) {\r\n return isEmptyArray(value) || includes([false, null, undefined], value) || !String(value).trim().length;\r\n};\r\nvar validate$p = function (value, _a) {\r\n var target = _a.target, values = _a.values;\r\n var required;\r\n if (values && values.length) {\r\n if (!Array.isArray(values) && typeof values === 'string') {\r\n values = [values];\r\n }\r\n // eslint-disable-next-line\r\n required = values.some(function (val) { return val == String(target).trim(); });\r\n }\r\n else {\r\n required = !testEmpty(target);\r\n }\r\n if (!required) {\r\n return {\r\n valid: true,\r\n required: required\r\n };\r\n }\r\n return {\r\n valid: !testEmpty(value),\r\n required: required\r\n };\r\n};\r\nvar params$i = [\r\n {\r\n name: 'target',\r\n isTarget: true\r\n },\r\n {\r\n name: 'values'\r\n }\r\n];\r\nvar computesRequired$1 = true;\r\nvar required_if = {\r\n validate: validate$p,\r\n params: params$i,\r\n computesRequired: computesRequired$1\r\n};\n\nvar validate$q = function (files, _a) {\r\n var size = _a.size;\r\n if (isNaN(size)) {\r\n return false;\r\n }\r\n var nSize = size * 1024;\r\n if (!Array.isArray(files)) {\r\n return files.size <= nSize;\r\n }\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].size > nSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\nvar params$j = [\r\n {\r\n name: 'size',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar size = {\r\n validate: validate$q,\r\n params: params$j\r\n};\n\nvar validate$r = function (value, params) {\r\n var _a = params || {}, _b = _a.decimals, decimals = _b === void 0 ? 0 : _b, _c = _a.separator, separator = _c === void 0 ? 'dot' : _c;\r\n var separators = {\r\n dot: '.',\r\n comma: ','\r\n };\r\n var regexPart = +decimals === 0 ? '+' : \"{\" + decimals + \"}\";\r\n var regex = new RegExp(\"^-?\\\\d+\\\\\" + (separators[separator] || '.') + \"\\\\d\" + regexPart + \"$\");\r\n return Array.isArray(value) ? value.every(function (val) { return regex.test(String(val)); }) : regex.test(String(value));\r\n};\r\nvar params$k = [\r\n {\r\n name: 'decimals',\r\n default: 0\r\n },\r\n {\r\n name: 'separator',\r\n default: 'dot'\r\n }\r\n];\r\nvar double = {\r\n validate: validate$r,\r\n params: params$k\r\n};\n\nexport { alpha$1 as alpha, alpha_dash, alpha_num, alpha_spaces, between, confirmed, digits, dimensions, double, email, excluded, ext, image, integer, is, is_not, length, max, max_value, mimes, min, min_value, numeric, oneOf, regex, required, required_if, size };\n","export const validatorPositive = value => {\r\n if (value >= 0) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nexport const validatorPassword = password => {\r\n /* eslint-disable no-useless-escape */\r\n const regExp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*()]).{8,}/\r\n /* eslint-enable no-useless-escape */\r\n const validPassword = regExp.test(password)\r\n return validPassword\r\n}\r\n\r\nexport const validatorCreditCard = creditnum => {\r\n /* eslint-disable no-useless-escape */\r\n const cRegExp = /^(?:3[47][0-9]{13})$/\r\n /* eslint-enable no-useless-escape */\r\n const validCreditCard = cRegExp.test(creditnum)\r\n return validCreditCard\r\n}\r\n\r\nexport const validatorUrlValidator = val => {\r\n if (val === undefined || val === null || val.length === 0) {\r\n return true\r\n }\r\n /* eslint-disable no-useless-escape */\r\n const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\r\n /* eslint-enable no-useless-escape */\r\n return re.test(val)\r\n}\r\n","import { extend, localize } from 'vee-validate'\r\nimport {\r\n required as rule_required,\r\n email as rule_email,\r\n min as rule_min,\r\n confirmed as rule_confirmed,\r\n regex as rule_regex,\r\n between as rule_between,\r\n alpha as rule_alpha,\r\n integer as rule_integer,\r\n digits as rule_digits,\r\n alpha_dash as rule_alpha_dash,\r\n alpha_num as rule_alpha_num,\r\n length as rule_length,\r\n} from 'vee-validate/dist/rules'\r\nimport ar from 'vee-validate/dist/locale/ar.json'\r\nimport en from 'vee-validate/dist/locale/en.json'\r\n\r\n// eslint-disable-next-line object-curly-newline\r\nimport { validatorPositive, validatorUrlValidator, validatorPassword, validatorCreditCard } from './validators'\r\n\r\n// ////////////////////////////////////////////////////////\r\n// General\r\n// ////////////////////////////////////////////////////////\r\n\r\nexport const required = extend('required', rule_required)\r\n\r\nexport const email = extend('email', rule_email)\r\n\r\nexport const min = extend('min', rule_min)\r\n\r\nexport const confirmed = extend('confirmed', rule_confirmed)\r\n\r\nexport const regex = extend('regex', rule_regex)\r\n\r\nexport const between = extend('between', rule_between)\r\n\r\nexport const alpha = extend('alpha', rule_alpha)\r\n\r\nexport const integer = extend('integer', rule_integer)\r\n\r\nexport const digits = extend('digits', rule_digits)\r\n\r\nexport const alphaDash = extend('alpha-dash', rule_alpha_dash)\r\n\r\nexport const alphaNum = extend('alpha-num', rule_alpha_num)\r\n\r\nexport const length = extend('length', rule_length)\r\n\r\nexport const positive = extend('positive', {\r\n validate: validatorPositive,\r\n message: 'Please enter positive number!',\r\n})\r\n\r\nexport const credit = extend('credit-card', {\r\n validate: validatorCreditCard,\r\n message: 'It is not valid credit card!',\r\n})\r\n\r\nexport const password = extend('password', {\r\n validate: validatorPassword,\r\n message: 'Your {_field_} must contain at least one uppercase, one lowercase, one special character and one digit',\r\n})\r\n\r\nexport const url = extend('url', {\r\n validate: validatorUrlValidator,\r\n message: 'URL is invalid',\r\n})\r\n\r\n// Install English and Arabic localizations.\r\nlocalize({\r\n en: {\r\n messages: en.messages,\r\n names: {\r\n email: 'Email',\r\n password: 'Password',\r\n },\r\n fields: {\r\n password: {\r\n min: '{_field_} is too short, you want to get hacked?',\r\n },\r\n },\r\n },\r\n ar: {\r\n messages: ar.messages,\r\n names: {\r\n email: 'البريد الإلكتروني',\r\n password: 'كلمة السر',\r\n },\r\n fields: {\r\n password: {\r\n min: 'كلمة السر قصيرة جداً سيتم اختراقك',\r\n },\r\n },\r\n },\r\n})\r\n// ////////////////////////////////////////////////////////\r\n// NOTE:\r\n// Quasar validation for reference only\r\n// Remove this note once development is finished and make sure to\r\n// to convert all of them in veevalidate version\r\n// ////////////////////////////////////////////////////////\r\n\r\n// export const required = (val) => {\r\n// return (val && val.length > 0) || '*Field is required'\r\n// }\r\n\r\n// export const required_obj = (obj) => {\r\n// if (obj === null || obj === undefined) return '*Field is required'\r\n// return (Object.entries(obj).length > 0 && obj.constructor === Object) || '*Field is required'\r\n// }\r\n\r\n// export const no_blank_spaces_arr = (arr) => {\r\n// return arr.every(val => (val.trim() && val.trim().length > 0)) || 'Blank Spaces are not allowed'\r\n// }\r\n\r\n// export const url = val => {\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// // Used\r\n// // https://stackoverflow.com/questions/4314741/url-regex-validation\r\n\r\n// // Other\r\n// // https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\r\n// // https://www.w3resource.com/javascript-exercises/javascript-regexp-exercise-9.php\r\n// // https://www.geeksforgeeks.org/how-to-validate-url-using-regular-expression-in-javascript/\r\n\r\n// /* eslint-disable no-useless-escape */\r\n// const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\r\n// /* eslint-enable no-useless-escape */\r\n// return re.test(val) || 'URL is invalid'\r\n// }\r\n\r\n// export const date = val => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// // https://github.com/quasarframework/quasar/blob/dev/ui/src/utils/patterns.js\r\n// return /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(val) || 'Date is invalid'\r\n// }\r\n\r\n// export const max = (val, max) => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null) return true\r\n\r\n// return val.length <= max || `More than ${max} characters are not allowed`\r\n// }\r\n\r\n// export const max_arr = (val, max) => {\r\n// return val.length <= max || `More than ${max} values are not allowed`\r\n// }\r\n\r\n// export const min = (val, min) => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// return val.length >= min || `Minimum ${min} characters are required`\r\n// }\r\n\r\n// export const num_range = (val, min, max) => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// const msg = 'Value is invalid'\r\n// if (min === null) return val <= max || msg\r\n// else if (max === null) return val >= min || msg\r\n// else return (val >= min && val <= max) || msg\r\n// }\r\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\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[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : 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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\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 return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\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 = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\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 }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && 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 (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.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\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && 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 } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.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\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.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 }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.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 diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\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\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\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 = _parchment2.default.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(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.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 this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, 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 _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\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 if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = 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 if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = 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 if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\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 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 _this3 = 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\n return modify.call(this, function () {\n return _this3.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: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\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 _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\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\n return modify.call(this, function () {\n return _this5.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 _this6 = this;\n\n var formats = void 0;\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\n return modify.call(this, function () {\n return _this6.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\n var bounds = void 0;\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 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\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 } else {\n return this.editor.getFormat(index.index, index.length);\n }\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 } else {\n return this.scroll.lines(index, length);\n }\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\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\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 _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\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 _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.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 _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\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 _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\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.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] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().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] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, 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/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\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 userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, 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 return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\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, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _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 }\n // Handle optional source\n source = source || _emitter4.default.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 = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.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 === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).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 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\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 if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\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(undefined, [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 this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\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\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\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\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 = 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\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = 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 delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.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 if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\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 delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().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\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\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\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\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 _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\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 _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\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 _quillDelta2.default().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\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 _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().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 cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\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 return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('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 = 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 = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.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 });\n this.update(_emitter4.default.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 this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\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 _this3.update(_emitter4.default.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 if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\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 this.cursor.attach();\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\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 = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\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\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\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\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\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 rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\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 }, {\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;\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 if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\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 = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\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 var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\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 offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, 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 var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\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 _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\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\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\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 on IE11+Travis+SauceLabs (but not local VMs)\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] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\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 this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_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;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\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}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\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 &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, 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\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\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 } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\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\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\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\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\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 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, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\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\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(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 return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.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 _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\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 (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\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: Keyboard.keys.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', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.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', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.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', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction 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 nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.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 === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 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._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\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(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\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\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', 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}(_inline2.default);\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\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\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 }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\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 AttributorStore.prototype.values = function () {\n var _this = this;\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 return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction 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}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\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 StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\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 return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (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\nvar Theme = 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/' + 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\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_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 _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\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(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\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(_parchment2.default.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 _text2.default) {\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(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\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 if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\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 this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\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 = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\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.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: 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 this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\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 LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // 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 while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\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 remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\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 EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\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 TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\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 }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\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 TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\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 TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\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} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\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);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\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 = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\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 (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\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 (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\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 (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\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 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 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 (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\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(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n 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 [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\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,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n 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 */\nfunction diff_cleanupMerge(diffs) {\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 switch (diffs[pointer][0]) {\n case DIFF_INSERT:\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 // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n 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 suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else 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);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\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 * @api 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 {Mixed} 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 * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api 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 * @api 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 * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\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 * @api 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 {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\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 {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\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 {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api 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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 * @api 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]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\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// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\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 ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\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 if (!options.matchVisual && matcher === matchSpacing) return;\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(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\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] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n 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 Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\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 var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\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 if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\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 if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\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 return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\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(Bold.__proto__ || Object.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}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (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\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\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 if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _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}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\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}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _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 _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\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 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 }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.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}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\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 _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\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 ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\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 FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"quill\")):\"function\"==typeof define&&define.amd?define([\"quill\"],e):\"object\"==typeof exports?exports.VueQuillEditor=e(require(\"quill\")):t.VueQuillEditor=e(t.Quill)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var l=n[i]={i:i,l:!1,exports:{}};return t[i].call(l.exports,l,l.exports,e),l.l=!0,l.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=2)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(4),l=n.n(i),o=n(6),r=n(5),u=r(l.a,o.a,!1,null,null,null);e.default=u.exports},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.install=e.quillEditor=e.Quill=void 0;var l=n(0),o=i(l),r=n(1),u=i(r),s=window.Quill||o.default,a=function(t,e){e&&(u.default.props.globalOptions.default=function(){return e}),t.component(u.default.name,u.default)},c={Quill:s,quillEditor:u.default,install:a};e.default=c,e.Quill=s,e.quillEditor=u.default,e.install=a},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={theme:\"snow\",boundary:document.body,modules:{toolbar:[[\"bold\",\"italic\",\"underline\",\"strike\"],[\"blockquote\",\"code-block\"],[{header:1},{header:2}],[{list:\"ordered\"},{list:\"bullet\"}],[{script:\"sub\"},{script:\"super\"}],[{indent:\"-1\"},{indent:\"+1\"}],[{direction:\"rtl\"}],[{size:[\"small\",!1,\"large\",\"huge\"]}],[{header:[1,2,3,4,5,6,!1]}],[{color:[]},{background:[]}],[{font:[]}],[{align:[]}],[\"clean\"],[\"link\",\"image\",\"video\"]]},placeholder:\"Insert text here ...\",readOnly:!1}},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var l=n(0),o=i(l),r=n(3),u=i(r),s=window.Quill||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),i=1;i

\"===l&&(l=\"\"),t._content=l,t.$emit(\"input\",t._content),t.$emit(\"change\",{html:l,text:r,quill:o})}),this.$emit(\"ready\",this.quill))}},watch:{content:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},value:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},disabled:function(t,e){this.quill&&this.quill.enable(!t)}}}},function(t,e){t.exports=function(t,e,n,i,l,o){var r,u=t=t||{},s=typeof t.default;\"object\"!==s&&\"function\"!==s||(r=t,u=t.default);var a=\"function\"==typeof u?u.options:u;e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0),n&&(a.functional=!0),l&&(a._scopeId=l);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},a._ssrRegister=c):i&&(c=i),c){var d=a.functional,f=d?a.render:a.beforeCreate;d?(a._injectStyles=c,a.render=function(t,e){return c.call(e),f(t,e)}):a.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:u,options:a}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"quill-editor\"},[t._t(\"toolbar\"),t._v(\" \"),n(\"div\",{ref:\"editor\"})],2)},l=[],o={render:i,staticRenderFns:l};e.a=o}])});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function 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\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","module.exports=function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,i){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,\"a\",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/dist/\",e(e.s=2)}([function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px}.ps__thumb-x,.ps__thumb-y{background-color:#aaa;border-radius:6px;position:absolute}.ps__thumb-y{transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}\",\"\"])},function(t,e,r){e=t.exports=r(0)(),e.i(r(4),\"\"),e.push([t.i,\".ps-container{position:relative}\",\"\"])},function(t,e,r){\"use strict\";/*!\n * perfect-scrollbar v1.4.0\n * (c) 2018 Hyunje Jun\n * @license MIT\n */\nfunction i(t){return getComputedStyle(t)}function n(t,e){for(var r in e){var i=e[r];\"number\"==typeof i&&(i+=\"px\"),t.style[r]=i}return t}function o(t){var e=document.createElement(\"div\");return e.className=t,e}function l(t,e){if(!w)throw new Error(\"No element matching method supported\");return w.call(t,e)}function s(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function a(t,e){return Array.prototype.filter.call(t.children,function(t){return l(t,e)})}function c(t,e){var r=t.element.classList,i=Y.state.scrolling(e);r.contains(i)?clearTimeout(_[e]):r.add(i)}function h(t,e){_[e]=setTimeout(function(){return t.isAlive&&t.element.classList.remove(Y.state.scrolling(e))},t.settings.scrollingThreshold)}function u(t,e){c(t,e),h(t,e)}function p(t){if(\"function\"==typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent(\"CustomEvent\");return e.initCustomEvent(t,!1,!1,void 0),e}function d(t,e,r,i,n){var o=r[0],l=r[1],s=r[2],a=r[3],c=r[4],h=r[5];void 0===i&&(i=!0),void 0===n&&(n=!1);var d=t.element;t.reach[a]=null,d[s]<1&&(t.reach[a]=\"start\"),d[s]>t[o]-t[l]-1&&(t.reach[a]=\"end\"),e&&(d.dispatchEvent(p(\"ps-scroll-\"+a)),e<0?d.dispatchEvent(p(\"ps-scroll-\"+c)):e>0&&d.dispatchEvent(p(\"ps-scroll-\"+h)),i&&u(t,a)),t.reach[a]&&(e||n)&&d.dispatchEvent(p(\"ps-\"+a+\"-reach-\"+t.reach[a]))}function f(t){return parseInt(t,10)||0}function b(t){return l(t,\"input,[contenteditable]\")||l(t,\"select,[contenteditable]\")||l(t,\"textarea,[contenteditable]\")||l(t,\"button,[contenteditable]\")}function v(t){var e=i(t);return f(e.width)+f(e.paddingLeft)+f(e.paddingRight)+f(e.borderLeftWidth)+f(e.borderRightWidth)}function g(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function m(t,e){var r={width:e.railXWidth},i=Math.floor(t.scrollTop);e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:r.left=t.scrollLeft,e.isScrollbarXUsingBottom?r.bottom=e.scrollbarXBottom-i:r.top=e.scrollbarXTop+i,n(e.scrollbarXRail,r);var o={top:i,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?o.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:o.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?o.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:o.left=e.scrollbarYLeft+t.scrollLeft,n(e.scrollbarYRail,o),n(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),n(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}function y(t,e){function r(e){b[p]=v+m*(e[l]-g),c(t,d),T(t),e.stopPropagation(),e.preventDefault()}function i(){h(t,d),t[f].classList.remove(Y.state.clicking),t.event.unbind(t.ownerDocument,\"mousemove\",r)}var n=e[0],o=e[1],l=e[2],s=e[3],a=e[4],u=e[5],p=e[6],d=e[7],f=e[8],b=t.element,v=null,g=null,m=null;t.event.bind(t[a],\"mousedown\",function(e){v=b[p],g=e[l],m=(t[o]-t[n])/(t[s]-t[u]),t.event.bind(t.ownerDocument,\"mousemove\",r),t.event.once(t.ownerDocument,\"mouseup\",i),t[f].classList.add(Y.state.clicking),e.stopPropagation(),e.preventDefault()})}var w=\"undefined\"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector),Y={main:\"ps\",element:{thumb:function(t){return\"ps__thumb-\"+t},rail:function(t){return\"ps__rail-\"+t},consuming:\"ps__child--consume\"},state:{focus:\"ps--focus\",clicking:\"ps--clicking\",active:function(t){return\"ps--active-\"+t},scrolling:function(t){return\"ps--scrolling-\"+t}}},_={x:null,y:null},X=function(t){this.element=t,this.handlers={}},W={isEmpty:{configurable:!0}};X.prototype.bind=function(t,e){void 0===this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},X.prototype.unbind=function(t,e){var r=this;this.handlers[t]=this.handlers[t].filter(function(i){return!(!e||i===e)||(r.element.removeEventListener(t,i,!1),!1)})},X.prototype.unbindAll=function(){var t=this;for(var e in t.handlers)t.unbind(e)},W.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every(function(e){return 0===t.handlers[e].length})},Object.defineProperties(X.prototype,W);var x=function(){this.eventElements=[]};x.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return e||(e=new X(t),this.eventElements.push(e)),e},x.prototype.bind=function(t,e,r){this.eventElement(t).bind(e,r)},x.prototype.unbind=function(t,e,r){var i=this.eventElement(t);i.unbind(e,r),i.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(i),1)},x.prototype.unbindAll=function(){this.eventElements.forEach(function(t){return t.unbindAll()}),this.eventElements=[]},x.prototype.once=function(t,e,r){var i=this.eventElement(t),n=function(t){i.unbind(e,n),r(t)};i.bind(e,n)};var L=function(t,e,r,i,n){void 0===i&&(i=!0),void 0===n&&(n=!1);var o;if(\"top\"===e)o=[\"contentHeight\",\"containerHeight\",\"scrollTop\",\"y\",\"up\",\"down\"];else{if(\"left\"!==e)throw new Error(\"A proper axis should be provided\");o=[\"contentWidth\",\"containerWidth\",\"scrollLeft\",\"x\",\"left\",\"right\"]}d(t,r,o,i,n)},R={isWebKit:\"undefined\"!=typeof document&&\"WebkitAppearance\"in document.documentElement.style,supportsTouch:\"undefined\"!=typeof window&&(\"ontouchstart\"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:\"undefined\"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:\"undefined\"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)},T=function(t){var e=t.element,r=Math.floor(e.scrollTop);t.containerWidth=e.clientWidth,t.containerHeight=e.clientHeight,t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight,e.contains(t.scrollbarXRail)||(a(e,Y.element.rail(\"x\")).forEach(function(t){return s(t)}),e.appendChild(t.scrollbarXRail)),e.contains(t.scrollbarYRail)||(a(e,Y.element.rail(\"y\")).forEach(function(t){return s(t)}),e.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),m(e,t),t.scrollbarXActive?e.classList.add(Y.state.active(\"x\")):(e.classList.remove(Y.state.active(\"x\")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,e.scrollLeft=0),t.scrollbarYActive?e.classList.add(Y.state.active(\"y\")):(e.classList.remove(Y.state.active(\"y\")),t.scrollbarYHeight=0,t.scrollbarYTop=0,e.scrollTop=0)},S=function(t){t.event.bind(t.scrollbarY,\"mousedown\",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarYRail,\"mousedown\",function(e){var r=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top,i=r>t.scrollbarYTop?1:-1;t.element.scrollTop+=i*t.containerHeight,T(t),e.stopPropagation()}),t.event.bind(t.scrollbarX,\"mousedown\",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarXRail,\"mousedown\",function(e){var r=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left,i=r>t.scrollbarXLeft?1:-1;t.element.scrollLeft+=i*t.containerWidth,T(t),e.stopPropagation()})},H=function(t){y(t,[\"containerWidth\",\"contentWidth\",\"pageX\",\"railXWidth\",\"scrollbarX\",\"scrollbarXWidth\",\"scrollLeft\",\"x\",\"scrollbarXRail\"]),y(t,[\"containerHeight\",\"contentHeight\",\"pageY\",\"railYHeight\",\"scrollbarY\",\"scrollbarYHeight\",\"scrollTop\",\"y\",\"scrollbarYRail\"])},E=function(t){function e(e,i){var n=Math.floor(r.scrollTop);if(0===e){if(!t.scrollbarYActive)return!1;if(0===n&&i>0||n>=t.contentHeight-t.containerHeight&&i<0)return!t.settings.wheelPropagation}var o=r.scrollLeft;if(0===i){if(!t.scrollbarXActive)return!1;if(0===o&&e<0||o>=t.contentWidth-t.containerWidth&&e>0)return!t.settings.wheelPropagation}return!0}var r=t.element,i=function(){return l(r,\":hover\")},n=function(){return l(t.scrollbarX,\":focus\")||l(t.scrollbarY,\":focus\")};t.event.bind(t.ownerDocument,\"keydown\",function(o){if(!(o.isDefaultPrevented&&o.isDefaultPrevented()||o.defaultPrevented)&&(i()||n())){var l=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(l){if(\"IFRAME\"===l.tagName)l=l.contentDocument.activeElement;else for(;l.shadowRoot;)l=l.shadowRoot.activeElement;if(b(l))return}var s=0,a=0;switch(o.which){case 37:s=o.metaKey?-t.contentWidth:o.altKey?-t.containerWidth:-30;break;case 38:a=o.metaKey?t.contentHeight:o.altKey?t.containerHeight:30;break;case 39:s=o.metaKey?t.contentWidth:o.altKey?t.containerWidth:30;break;case 40:a=o.metaKey?-t.contentHeight:o.altKey?-t.containerHeight:-30;break;case 32:a=o.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:a=t.containerHeight;break;case 34:a=-t.containerHeight;break;case 36:a=t.contentHeight;break;case 35:a=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==s||t.settings.suppressScrollY&&0!==a||(r.scrollTop-=a,r.scrollLeft+=s,T(t),e(s,a)&&o.preventDefault())}})},M=function(t){function e(e,r){var i=Math.floor(l.scrollTop),n=0===l.scrollTop,o=i+l.offsetHeight===l.scrollHeight,s=0===l.scrollLeft,a=l.scrollLeft+l.offsetWidth===l.scrollWidth;return!(Math.abs(r)>Math.abs(e)?n||o:s||a)||!t.settings.wheelPropagation}function r(t){var e=t.deltaX,r=-1*t.deltaY;return void 0!==e&&void 0!==r||(e=-1*t.wheelDeltaX/6,r=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,r*=10),e!==e&&r!==r&&(e=0,r=t.wheelDelta),t.shiftKey?[-r,-e]:[e,r]}function n(t,e,r){if(!R.isWebKit&&l.querySelector(\"select:focus\"))return!0;if(!l.contains(t))return!1;for(var n=t;n&&n!==l;){if(n.classList.contains(Y.element.consuming))return!0;var o=i(n);if([o.overflow,o.overflowX,o.overflowY].join(\"\").match(/(scroll|auto)/)){var s=n.scrollHeight-n.clientHeight;if(s>0&&!(0===n.scrollTop&&r>0||n.scrollTop===s&&r<0))return!0;var a=n.scrollWidth-n.clientWidth;if(a>0&&!(0===n.scrollLeft&&e<0||n.scrollLeft===a&&e>0))return!0}n=n.parentNode}return!1}function o(i){var o=r(i),s=o[0],a=o[1];if(!n(i.target,s,a)){var c=!1;t.settings.useBothWheelAxes?t.scrollbarYActive&&!t.scrollbarXActive?(a?l.scrollTop-=a*t.settings.wheelSpeed:l.scrollTop+=s*t.settings.wheelSpeed,c=!0):t.scrollbarXActive&&!t.scrollbarYActive&&(s?l.scrollLeft+=s*t.settings.wheelSpeed:l.scrollLeft-=a*t.settings.wheelSpeed,c=!0):(l.scrollTop-=a*t.settings.wheelSpeed,l.scrollLeft+=s*t.settings.wheelSpeed),T(t),c=c||e(s,a),c&&!i.ctrlKey&&(i.stopPropagation(),i.preventDefault())}}var l=t.element;void 0!==window.onwheel?t.event.bind(l,\"wheel\",o):void 0!==window.onmousewheel&&t.event.bind(l,\"mousewheel\",o)},k=function(t){function e(e,r){var i=Math.floor(h.scrollTop),n=h.scrollLeft,o=Math.abs(e),l=Math.abs(r);if(l>o){if(r<0&&i===t.contentHeight-t.containerHeight||r>0&&0===i)return 0===window.scrollY&&r>0&&R.isChrome}else if(o>l&&(e<0&&n===t.contentWidth-t.containerWidth||e>0&&0===n))return!0;return!0}function r(e,r){h.scrollTop-=r,h.scrollLeft-=e,T(t)}function n(t){return t.targetTouches?t.targetTouches[0]:t}function o(t){return(!t.pointerType||\"pen\"!==t.pointerType||0!==t.buttons)&&(!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||\"mouse\"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function l(t){if(o(t)){var e=n(t);u.pageX=e.pageX,u.pageY=e.pageY,p=(new Date).getTime(),null!==f&&clearInterval(f)}}function s(t,e,r){if(!h.contains(t))return!1;for(var n=t;n&&n!==h;){if(n.classList.contains(Y.element.consuming))return!0;var o=i(n);if([o.overflow,o.overflowX,o.overflowY].join(\"\").match(/(scroll|auto)/)){var l=n.scrollHeight-n.clientHeight;if(l>0&&!(0===n.scrollTop&&r>0||n.scrollTop===l&&r<0))return!0;var s=n.scrollLeft-n.clientWidth;if(s>0&&!(0===n.scrollLeft&&e<0||n.scrollLeft===s&&e>0))return!0}n=n.parentNode}return!1}function a(t){if(o(t)){var i=n(t),l={pageX:i.pageX,pageY:i.pageY},a=l.pageX-u.pageX,c=l.pageY-u.pageY;if(s(t.target,a,c))return;r(a,c),u=l;var h=(new Date).getTime(),f=h-p;f>0&&(d.x=a/f,d.y=c/f,p=h),e(a,c)&&t.preventDefault()}}function c(){t.settings.swipeEasing&&(clearInterval(f),f=setInterval(function(){return t.isInitialized?void clearInterval(f):d.x||d.y?Math.abs(d.x)<.01&&Math.abs(d.y)<.01?void clearInterval(f):(r(30*d.x,30*d.y),d.x*=.8,void(d.y*=.8)):void clearInterval(f)},10))}if(R.supportsTouch||R.supportsIePointer){var h=t.element,u={},p=0,d={},f=null;R.supportsTouch?(t.event.bind(h,\"touchstart\",l),t.event.bind(h,\"touchmove\",a),t.event.bind(h,\"touchend\",c)):R.supportsIePointer&&(window.PointerEvent?(t.event.bind(h,\"pointerdown\",l),t.event.bind(h,\"pointermove\",a),t.event.bind(h,\"pointerup\",c)):window.MSPointerEvent&&(t.event.bind(h,\"MSPointerDown\",l),t.event.bind(h,\"MSPointerMove\",a),t.event.bind(h,\"MSPointerUp\",c)))}},A=function(){return{handlers:[\"click-rail\",\"drag-thumb\",\"keyboard\",\"wheel\",\"touch\"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1}},P={\"click-rail\":S,\"drag-thumb\":H,keyboard:E,wheel:M,touch:k},C=function(t,e){var r=this;if(void 0===e&&(e={}),\"string\"==typeof t&&(t=document.querySelector(t)),!t||!t.nodeName)throw new Error(\"no element is specified to initialize PerfectScrollbar\");this.element=t,t.classList.add(Y.main),this.settings=A();for(var l in e)r.settings[l]=e[l];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var s=function(){return t.classList.add(Y.state.focus)},a=function(){return t.classList.remove(Y.state.focus)};this.isRtl=\"rtl\"===i(t).direction,this.isNegativeScroll=function(){var e=t.scrollLeft,r=null;return t.scrollLeft=-1,r=t.scrollLeft<0,t.scrollLeft=e,r}(),this.negativeScrollAdjustment=this.isNegativeScroll?t.scrollWidth-t.clientWidth:0,this.event=new x,this.ownerDocument=t.ownerDocument||document,this.scrollbarXRail=o(Y.element.rail(\"x\")),t.appendChild(this.scrollbarXRail),this.scrollbarX=o(Y.element.thumb(\"x\")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute(\"tabindex\",0),this.event.bind(this.scrollbarX,\"focus\",s),this.event.bind(this.scrollbarX,\"blur\",a),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var c=i(this.scrollbarXRail);this.scrollbarXBottom=parseInt(c.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=f(c.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=f(c.borderLeftWidth)+f(c.borderRightWidth),n(this.scrollbarXRail,{display:\"block\"}),this.railXMarginWidth=f(c.marginLeft)+f(c.marginRight),n(this.scrollbarXRail,{display:\"\"}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=o(Y.element.rail(\"y\")),t.appendChild(this.scrollbarYRail),this.scrollbarY=o(Y.element.thumb(\"y\")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute(\"tabindex\",0),this.event.bind(this.scrollbarY,\"focus\",s),this.event.bind(this.scrollbarY,\"blur\",a),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var h=i(this.scrollbarYRail);this.scrollbarYRight=parseInt(h.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=f(h.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?v(this.scrollbarY):null,this.railBorderYWidth=f(h.borderTopWidth)+f(h.borderBottomWidth),n(this.scrollbarYRail,{display:\"block\"}),this.railYMarginHeight=f(h.marginTop)+f(h.marginBottom),n(this.scrollbarYRail,{display:\"\"}),this.railYHeight=null,this.railYRatio=null,this.reach={x:t.scrollLeft<=0?\"start\":t.scrollLeft>=this.contentWidth-this.containerWidth?\"end\":null,y:t.scrollTop<=0?\"start\":t.scrollTop>=this.contentHeight-this.containerHeight?\"end\":null},this.isAlive=!0,this.settings.handlers.forEach(function(t){return P[t](r)}),this.lastScrollTop=Math.floor(t.scrollTop),this.lastScrollLeft=t.scrollLeft,this.event.bind(this.element,\"scroll\",function(t){return r.onScroll(t)}),T(this)};C.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,n(this.scrollbarXRail,{display:\"block\"}),n(this.scrollbarYRail,{display:\"block\"}),this.railXMarginWidth=f(i(this.scrollbarXRail).marginLeft)+f(i(this.scrollbarXRail).marginRight),this.railYMarginHeight=f(i(this.scrollbarYRail).marginTop)+f(i(this.scrollbarYRail).marginBottom),n(this.scrollbarXRail,{display:\"none\"}),n(this.scrollbarYRail,{display:\"none\"}),T(this),L(this,\"top\",0,!1,!0),L(this,\"left\",0,!1,!0),n(this.scrollbarXRail,{display:\"\"}),n(this.scrollbarYRail,{display:\"\"}))},C.prototype.onScroll=function(t){this.isAlive&&(T(this),L(this,\"top\",this.element.scrollTop-this.lastScrollTop),L(this,\"left\",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},C.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),s(this.scrollbarX),s(this.scrollbarY),s(this.scrollbarXRail),s(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},C.prototype.removePsClasses=function(){this.element.className=this.element.className.split(\" \").filter(function(t){return!t.match(/^ps([-_].+|)$/)}).join(\" \")},e.a=C},function(t,e){t.exports=function(t,e,r,i){var n,o=t=t||{},l=typeof t.default;\"object\"!==l&&\"function\"!==l||(n=t,o=t.default);var s=\"function\"==typeof o?o.options:o;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),r&&(s._scopeId=r),i){var a=s.computed||(s.computed={});Object.keys(i).forEach(function(t){var e=i[t];a[t]=function(){return e}})}return{esModule:n,exports:o,options:s}}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(t.$props.tagname,t._g({tag:\"section\",staticClass:\"ps-container\",on:{\"~mouseover\":function(e){return t.update(e)}}},t.$listeners),[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){function r(t,e){for(var r=0;r=0&&v.splice(e,1)}function l(t){var e=document.createElement(\"style\");return e.type=\"text/css\",n(t,e),e}function s(t,e){var r,i,n;if(e.singleton){var s=b++;r=f||(f=l(e)),i=a.bind(null,r,s,!1),n=a.bind(null,r,s,!0)}else r=l(e),i=c.bind(null,r),n=function(){o(r)};return i(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;i(t=e)}else n()}}function a(t,e,r,i){var n=r?\"\":i.css;if(t.styleSheet)t.styleSheet.cssText=g(e,n);else{var o=document.createTextNode(n),l=t.childNodes;l[e]&&t.removeChild(l[e]),l.length?t.insertBefore(o,l[e]):t.appendChild(o)}}function c(t,e){var r=e.css,i=e.media,n=e.sourceMap;if(i&&t.setAttribute(\"media\",i),n&&(r+=\"\\n/*# sourceURL=\"+n.sources[0]+\" */\",r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\"),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var h={},u=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},p=u(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),d=u(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),f=null,b=0,v=[];t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},void 0===e.singleton&&(e.singleton=p()),void 0===e.insertAt&&(e.insertAt=\"bottom\");var n=i(t);return r(n,e),function(t){for(var o=[],l=0;l time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"inherit\"}},[_c('div',{staticClass:\"body-content-overlay\",class:{'show': _vm.mqShallShowLeftSidebar},on:{\"click\":function($event){_vm.mqShallShowLeftSidebar = false}}}),_c('div',{staticClass:\"todo-app-list\"},[_c('div',{staticClass:\"app-fixed-search d-flex align-items-center\"},[_c('div',{staticClass:\"sidebar-toggle d-block d-lg-none ml-1\"},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"MenuIcon\",\"size\":\"21\"},on:{\"click\":function($event){_vm.mqShallShowLeftSidebar = true}}})],1),_c('div',{staticClass:\"d-flex align-content-center justify-content-between w-100\"},[_c('b-input-group',{staticClass:\"input-group-merge\"},[_c('b-input-group-prepend',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"text-muted\",attrs:{\"icon\":\"SearchIcon\"}})],1),_c('b-form-input',{attrs:{\"value\":_vm.searchQuery,\"placeholder\":\"Search task\"},on:{\"input\":_vm.updateRouteQuery}})],1)],1),_c('div',{staticClass:\"dropdown\"},[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"no-caret\":\"\",\"toggle-class\":\"p-0 mr-1\",\"right\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('feather-icon',{staticClass:\"align-middle text-body\",attrs:{\"icon\":\"MoreVerticalIcon\",\"size\":\"16\"}})]},proxy:true}])},[_c('b-dropdown-item',{on:{\"click\":_vm.resetSortAndNavigate}},[_vm._v(\" Reset Sort \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'title-asc'}) }}},[_vm._v(\" Sort A-Z \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'title-desc'}) }}},[_vm._v(\" Sort Z-A \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'assignee'}) }}},[_vm._v(\" Sort Assignee \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'due-date'}) }}},[_vm._v(\" Sort Due Date \")])],1)],1)]),_c('vue-perfect-scrollbar',{staticClass:\"todo-task-list-wrapper list-group scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[_c('draggable',{staticClass:\"todo-task-list media-list\",attrs:{\"handle\":\".draggable-task-handle\",\"tag\":\"ul\"},model:{value:(_vm.tasks),callback:function ($$v) {_vm.tasks=$$v},expression:\"tasks\"}},_vm._l((_vm.tasks),function(task){return _c('li',{key:task.id,staticClass:\"todo-item\",class:{ 'completed': task.isCompleted },on:{\"click\":function($event){return _vm.handleTaskClick(task)}}},[_c('feather-icon',{staticClass:\"draggable-task-handle d-inline\",attrs:{\"icon\":\"MoreVerticalIcon\"}}),_c('div',{staticClass:\"todo-title-wrapper\"},[_c('div',{staticClass:\"todo-title-area\"},[_c('div',{staticClass:\"title-wrapper\"},[_c('b-form-checkbox',{attrs:{\"checked\":task.isCompleted},on:{\"change\":function($event){return _vm.updateTaskIsCompleted(task)}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}}),_c('span',{staticClass:\"todo-title\"},[_vm._v(_vm._s(task.title))])],1)]),_c('div',{staticClass:\"todo-item-action\"},[_c('div',{staticClass:\"badge-wrapper mr-1\"},_vm._l((task.tags),function(tag){return _c('b-badge',{key:tag,staticClass:\"text-capitalize\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveTagVariant(tag)))}},[_vm._v(\" \"+_vm._s(tag)+\" \")])}),1),_c('small',{staticClass:\"text-nowrap text-muted mr-1\"},[_vm._v(_vm._s(_vm.formatDate(task.dueDate, { month: 'short', day: 'numeric'})))]),(task.assignee)?_c('b-avatar',{attrs:{\"size\":\"32\",\"src\":task.assignee.avatar,\"variant\":(\"light-\" + (_vm.resolveAvatarVariant(task.tags))),\"text\":_vm.avatarText(task.assignee.fullName)}}):_c('b-avatar',{attrs:{\"size\":\"32\",\"variant\":\"light-secondary\"}},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"size\":\"16\"}})],1)],1)])],1)}),0),_c('div',{staticClass:\"no-results\",class:{'show': !_vm.tasks.length}},[_c('h5',[_vm._v(\"No Items Found\")])])],1)],1),_c('todo-task-handler-sidebar',{attrs:{\"task\":_vm.task,\"clear-task-data\":_vm.clearTaskData},on:{\"remove-task\":_vm.removeTask,\"add-task\":_vm.addTask,\"update-task\":_vm.updateTask},model:{value:(_vm.isTaskHandlerSidebarActive),callback:function ($$v) {_vm.isTaskHandlerSidebarActive=$$v},expression:\"isTaskHandlerSidebarActive\"}}),_c('portal',{attrs:{\"to\":\"content-renderer-sidebar-left\"}},[_c('todo-left-sidebar',{class:{'show': _vm.mqShallShowLeftSidebar},attrs:{\"task-tags\":_vm.taskTags,\"is-task-handler-sidebar-active\":_vm.isTaskHandlerSidebarActive},on:{\"update:isTaskHandlerSidebarActive\":function($event){_vm.isTaskHandlerSidebarActive=$event},\"update:is-task-handler-sidebar-active\":function($event){_vm.isTaskHandlerSidebarActive=$event},\"close-left-sidebar\":function($event){_vm.mqShallShowLeftSidebar = false}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar-left\"},[_c('div',{staticClass:\"sidebar\"},[_c('div',{staticClass:\"sidebar-content todo-sidebar\"},[_c('div',{staticClass:\"todo-app-menu\"},[_c('div',{staticClass:\"add-task\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"primary\",\"block\":\"\"},on:{\"click\":function($event){_vm.$emit('update:is-task-handler-sidebar-active', true); _vm.$emit('close-left-sidebar')}}},[_vm._v(\" Add Task \")])],1),_c('vue-perfect-scrollbar',{staticClass:\"sidebar-menu-list scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[_c('b-list-group',{staticClass:\"list-group-filters\"},_vm._l((_vm.taskFilters),function(filter){return _c('b-list-group-item',{key:filter.title + _vm.$route.path,attrs:{\"to\":filter.route,\"active\":_vm.isDynamicRouteActive(filter.route)},on:{\"click\":function($event){return _vm.$emit('close-left-sidebar')}}},[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":filter.icon,\"size\":\"18\"}}),_c('span',{staticClass:\"align-text-bottom line-height-1\"},[_vm._v(_vm._s(filter.title))])],1)}),1),_c('div',{staticClass:\"mt-3 px-2 d-flex justify-content-between\"},[_c('h6',{staticClass:\"section-label mb-1\"},[_vm._v(\" Tags \")]),_c('feather-icon',{attrs:{\"icon\":\"PlusIcon\"}})],1),_c('b-list-group',{staticClass:\"list-group-labels\"},_vm._l((_vm.taskTags),function(tag){return _c('b-list-group-item',{key:tag.title + _vm.$route.path,attrs:{\"to\":tag.route,\"active\":_vm.isDynamicRouteActive(tag.route)},on:{\"click\":function($event){return _vm.$emit('close-left-sidebar')}}},[_c('span',{staticClass:\"bullet bullet-sm mr-1\",class:(\"bullet-\" + (tag.color))}),_c('span',[_vm._v(_vm._s(tag.title))])])}),1)],1)],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoLeftSidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoLeftSidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TodoLeftSidebar.vue?vue&type=template&id=288a3f66&\"\nimport script from \"./TodoLeftSidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./TodoLeftSidebar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import axios from '@axios'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {},\r\n getters: {},\r\n mutations: {},\r\n actions: {\r\n fetchTasks(ctx, payload) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get('/apps/todo/tasks', { params: payload })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n addTask(ctx, taskData) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post('/apps/todo/tasks', { task: taskData })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n updateTask(ctx, { task }) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(`/apps/todo/tasks/${task.id}`, { task })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n removeTask(ctx, { id }) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .delete(`/apps/todo/tasks/${id}`)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n },\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-sidebar',{attrs:{\"id\":\"sidebar-task-handler\",\"sidebar-class\":\"sidebar-lg\",\"visible\":_vm.isTaskHandlerSidebarActive,\"bg-variant\":\"white\",\"shadow\":\"\",\"backdrop\":\"\",\"no-header\":\"\",\"right\":\"\"},on:{\"change\":function (val) { return _vm.$emit('update:is-task-handler-sidebar-active', val); },\"hidden\":_vm.clearForm},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hide = ref.hide;\nreturn [_c('div',{staticClass:\"d-flex justify-content-between align-items-center content-sidebar-header px-2 py-1\"},[(_vm.taskLocal.id)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":_vm.taskLocal.isCompleted ? 'outline-success' : 'outline-secondary'},on:{\"click\":function($event){_vm.taskLocal.isCompleted = !_vm.taskLocal.isCompleted}}},[_vm._v(\" \"+_vm._s(_vm.taskLocal.isCompleted ? 'Completed' : 'Mark Complete')+\" \")]):_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Add Task \")]),_c('div',[_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.taskLocal.id),expression:\"taskLocal.id\"}],staticClass:\"cursor-pointer\",attrs:{\"icon\":\"TrashIcon\"},on:{\"click\":function($event){_vm.$emit('remove-task'); hide();}}}),_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",class:{ 'text-warning': _vm.taskLocal.isImportant },attrs:{\"icon\":\"StarIcon\",\"size\":\"16\"},on:{\"click\":function($event){_vm.taskLocal.isImportant = !_vm.taskLocal.isImportant}}}),_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",attrs:{\"icon\":\"XIcon\",\"size\":\"16\"},on:{\"click\":hide}})],1)],1),_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)},\"reset\":function($event){$event.preventDefault();return _vm.resetForm($event)}}},[_c('validation-provider',{attrs:{\"name\":\"Title\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Title\",\"label-for\":\"task-title\"}},[_c('b-form-input',{attrs:{\"id\":\"task-title\",\"autofocus\":\"\",\"state\":_vm.getValidationState(validationContext),\"trim\":\"\",\"placeholder\":\"Task Title\"},model:{value:(_vm.taskLocal.title),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"title\", $$v)},expression:\"taskLocal.title\"}}),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)}),_c('b-form-group',{attrs:{\"label\":\"Assignee\",\"label-for\":\"assignee\"}},[_c('v-select',{staticClass:\"assignee-selector\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.assigneeOptions,\"label\":\"fullName\",\"input-id\":\"assignee\"},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar avatar = ref.avatar;\nvar fullName = ref.fullName;\nreturn [_c('b-avatar',{attrs:{\"size\":\"26\",\"src\":avatar}}),_c('span',{staticClass:\"ml-50 d-inline-block align-middle\"},[_vm._v(\" \"+_vm._s(fullName))])]}},{key:\"selected-option\",fn:function(ref){\nvar avatar = ref.avatar;\nvar fullName = ref.fullName;\nreturn [_c('b-avatar',{attrs:{\"size\":\"26\",\"src\":avatar,\"variant\":(\"light-\" + (_vm.resolveAvatarVariant(_vm.taskLocal.tags))),\"text\":_vm.avatarText(fullName)}}),_c('span',{staticClass:\"ml-50 d-inline-block align-middle\"},[_vm._v(\" \"+_vm._s(fullName))])]}}],null,true),model:{value:(_vm.taskLocal.assignee),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"assignee\", $$v)},expression:\"taskLocal.assignee\"}})],1),_c('validation-provider',{attrs:{\"name\":\"Due Date\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Due Date\",\"label-for\":\"due-date\"}},[_c('flat-pickr',{staticClass:\"form-control\",model:{value:(_vm.taskLocal.dueDate),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"dueDate\", $$v)},expression:\"taskLocal.dueDate\"}}),_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.getValidationState(validationContext)}},[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)}),_c('b-form-group',{attrs:{\"label\":\"Tag\",\"label-for\":\"tag\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"multiple\":\"\",\"close-on-select\":false,\"options\":_vm.tagOptions,\"reduce\":function (option) { return option.value; },\"input-id\":\"tags\"},model:{value:(_vm.taskLocal.tags),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"tags\", $$v)},expression:\"taskLocal.tags\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Description\",\"label-for\":\"task-description\"}},[_c('quill-editor',{staticClass:\"border-bottom-0\",attrs:{\"id\":\"quil-content\",\"options\":_vm.editorOption},model:{value:(_vm.taskLocal.description),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"description\", $$v)},expression:\"taskLocal.description\"}}),_c('div',{staticClass:\"d-flex justify-content-end border-top-0\",attrs:{\"id\":\"quill-toolbar\"}},[_c('button',{staticClass:\"ql-bold\"}),_c('button',{staticClass:\"ql-italic\"}),_c('button',{staticClass:\"ql-underline\"}),_c('button',{staticClass:\"ql-align\"}),_c('button',{staticClass:\"ql-link\"})])],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mr-2\",attrs:{\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\" \"+_vm._s(_vm.taskLocal.id ? 'Update' : 'Add ')+\" \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(186, 191, 199, 0.15)'),expression:\"'rgba(186, 191, 199, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"type\":\"reset\",\"variant\":\"outline-secondary\"}},[_vm._v(\" Reset \")])],1)],1)]}}],null,true)})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, watch } from '@vue/composition-api'\r\n// import store from '@/store'\r\n\r\nexport default function useTaskHandler(props, emit) {\r\n // ------------------------------------------------\r\n // taskLocal\r\n // ------------------------------------------------\r\n const taskLocal = ref(JSON.parse(JSON.stringify(props.task.value)))\r\n const resetTaskLocal = () => {\r\n taskLocal.value = JSON.parse(JSON.stringify(props.task.value))\r\n }\r\n watch(props.task, () => {\r\n resetTaskLocal()\r\n })\r\n\r\n // ------------------------------------------------\r\n // isEventHandlerSidebarActive\r\n // * Clear form if sidebar is closed\r\n // ! We can hide it using @hidden event\r\n // ------------------------------------------------\r\n // watch(props.isEventHandlerSidebarActive, val => {\r\n // // ? Don't reset event till transition is finished\r\n // if (!val) {\r\n // setTimeout(() => {\r\n // clearForm.value()\r\n // }, 350)\r\n // }\r\n // })\r\n\r\n const onSubmit = () => {\r\n const taskData = JSON.parse(JSON.stringify(taskLocal))\r\n\r\n // * If event has id => Edit Event\r\n // Emit event for add/update event\r\n if (props.task.value.id) emit('update-task', taskData.value)\r\n else emit('add-task', taskData.value)\r\n\r\n // Close sidebar\r\n emit('update:is-task-handler-sidebar-active', false)\r\n }\r\n\r\n // *===============================================---*\r\n // *--------- UI ---------------------------------------*\r\n // *===============================================---*\r\n\r\n // ------------------------------------------------\r\n // guestOptions\r\n // ------------------------------------------------\r\n\r\n /* eslint-disable global-require */\r\n const assigneeOptions = [\r\n { avatar: require('@/assets/images/avatars/1-small.png'), fullName: 'Jane Foster' },\r\n { avatar: require('@/assets/images/avatars/3-small.png'), fullName: 'Donna Frank' },\r\n { avatar: require('@/assets/images/avatars/5-small.png'), fullName: 'Gabrielle Robertson' },\r\n { avatar: require('@/assets/images/avatars/7-small.png'), fullName: 'Lori Spears' },\r\n { avatar: require('@/assets/images/avatars/9-small.png'), fullName: 'Sandy Vega' },\r\n { avatar: require('@/assets/images/avatars/11-small.png'), fullName: 'Cheryl May' },\r\n ]\r\n /* eslint-enable global-require */\r\n\r\n const resolveAvatarVariant = tags => {\r\n if (tags.includes('high')) return 'primary'\r\n if (tags.includes('medium')) return 'warning'\r\n if (tags.includes('low')) return 'success'\r\n if (tags.includes('update')) return 'danger'\r\n if (tags.includes('team')) return 'info'\r\n return 'primary'\r\n }\r\n\r\n const tagOptions = [\r\n { label: 'Team', value: 'team' },\r\n { label: 'Low', value: 'low' },\r\n { label: 'Medium', value: 'medium' },\r\n { label: 'High', value: 'high' },\r\n { label: 'Update', value: 'update' },\r\n ]\r\n\r\n return {\r\n taskLocal,\r\n resetTaskLocal,\r\n\r\n // UI\r\n assigneeOptions,\r\n resolveAvatarVariant,\r\n tagOptions,\r\n onSubmit,\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TodoTaskHandlerSidebar.vue?vue&type=template&id=6b93e4ba&scoped=true&\"\nimport script from \"./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TodoTaskHandlerSidebar.vue?vue&type=style&index=0&id=6b93e4ba&prod&lang=scss&\"\nimport style1 from \"./TodoTaskHandlerSidebar.vue?vue&type=style&index=1&id=6b93e4ba&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b93e4ba\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Todo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Todo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Todo.vue?vue&type=template&id=53380294&scoped=true&\"\nimport script from \"./Todo.vue?vue&type=script&lang=js&\"\nexport * from \"./Todo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Todo.vue?vue&type=style&index=0&id=53380294&prod&lang=scss&scoped=true&\"\nimport style1 from \"./Todo.vue?vue&type=style&index=1&id=53380294&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53380294\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\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 = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(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 (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\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\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = 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 ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\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\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* 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\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\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\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($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\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\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\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) 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 ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n 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}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n 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}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_SIDEBAR } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER, SLOT_NAME_HEADER_CLOSE, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { attemptFocus, contains, getActiveElement, getTabables } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconX } from '../../icons/icons';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar CLASS_NAME = 'b-sidebar';\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // If `true`, shows a basic backdrop\n backdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n backdropVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n bgVariant: makeProp(PROP_TYPE_STRING, 'light'),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // `aria-label` for close button\n closeLabel: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnRouteChange: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n noSlide: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n shadow: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sidebarClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n title: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING)\n})), NAME_SIDEBAR); // --- Render methods ---\n\nvar renderHeaderTitle = function renderHeaderTitle(h, ctx) {\n // Render a empty `` when to title was provided\n var title = ctx.normalizeSlot(SLOT_NAME_TITLE, ctx.slotScope) || ctx.title;\n\n if (!title) {\n return h('span');\n }\n\n return h('strong', {\n attrs: {\n id: ctx.safeId('__title__')\n }\n }, [title]);\n};\n\nvar renderHeaderClose = function renderHeaderClose(h, ctx) {\n if (ctx.noHeaderClose) {\n return h();\n }\n\n var closeLabel = ctx.closeLabel,\n textVariant = ctx.textVariant,\n hide = ctx.hide;\n return h(BButtonClose, {\n props: {\n ariaLabel: closeLabel,\n textVariant: textVariant\n },\n on: {\n click: hide\n },\n ref: 'close-button'\n }, [ctx.normalizeSlot(SLOT_NAME_HEADER_CLOSE) || h(BIconX)]);\n};\n\nvar renderHeader = function renderHeader(h, ctx) {\n if (ctx.noHeader) {\n return h();\n }\n\n var $content = ctx.normalizeSlot(SLOT_NAME_HEADER, ctx.slotScope);\n\n if (!$content) {\n var $title = renderHeaderTitle(h, ctx);\n var $close = renderHeaderClose(h, ctx);\n $content = ctx.right ? [$close, $title] : [$title, $close];\n }\n\n return h('header', {\n staticClass: \"\".concat(CLASS_NAME, \"-header\"),\n class: ctx.headerClass,\n key: 'header'\n }, $content);\n};\n\nvar renderBody = function renderBody(h, ctx) {\n return h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-body\"),\n class: ctx.bodyClass,\n key: 'body'\n }, [ctx.normalizeSlot(SLOT_NAME_DEFAULT, ctx.slotScope)]);\n};\n\nvar renderFooter = function renderFooter(h, ctx) {\n var $footer = ctx.normalizeSlot(SLOT_NAME_FOOTER, ctx.slotScope);\n\n if (!$footer) {\n return h();\n }\n\n return h('footer', {\n staticClass: \"\".concat(CLASS_NAME, \"-footer\"),\n class: ctx.footerClass,\n key: 'footer'\n }, [$footer]);\n};\n\nvar renderContent = function renderContent(h, ctx) {\n // We render the header even if `lazy` is enabled as it\n // acts as the accessible label for the sidebar\n var $header = renderHeader(h, ctx);\n\n if (ctx.lazy && !ctx.isOpen) {\n return $header;\n }\n\n return [$header, renderBody(h, ctx), renderFooter(h, ctx)];\n};\n\nvar renderBackdrop = function renderBackdrop(h, ctx) {\n if (!ctx.backdrop) {\n return h();\n }\n\n var backdropVariant = ctx.backdropVariant;\n return h('div', {\n directives: [{\n name: 'show',\n value: ctx.localShow\n }],\n staticClass: 'b-sidebar-backdrop',\n class: _defineProperty({}, \"bg-\".concat(backdropVariant), backdropVariant),\n on: {\n click: ctx.onBackdropClick\n }\n });\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BSidebar = /*#__PURE__*/Vue.extend({\n name: NAME_SIDEBAR,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n var visible = !!this[MODEL_PROP_NAME];\n return {\n // Internal `v-model` state\n localShow: visible,\n // For lazy render triggering\n isOpen: visible\n };\n },\n computed: {\n transitionProps: function transitionProps() {\n return this.noSlide ?\n /* istanbul ignore next */\n {\n css: true\n } : {\n css: true,\n enterClass: '',\n enterActiveClass: 'slide',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: 'slide',\n leaveToClass: ''\n };\n },\n slotScope: function slotScope() {\n var hide = this.hide,\n right = this.right,\n visible = this.localShow;\n return {\n hide: hide,\n right: right,\n visible: visible\n };\n },\n hasTitle: function hasTitle() {\n var $scopedSlots = this.$scopedSlots,\n $slots = this.$slots;\n return !this.noHeader && !this.hasNormalizedSlot(SLOT_NAME_HEADER) && !!(this.normalizeSlot(SLOT_NAME_TITLE, this.slotScope, $scopedSlots, $slots) || this.title);\n },\n titleId: function titleId() {\n return this.hasTitle ? this.safeId('__title__') : null;\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n tabindex: '-1',\n role: 'dialog',\n 'aria-modal': this.backdrop ? 'true' : 'false',\n 'aria-hidden': this.localShow ? null : 'true',\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || this.titleId || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localShow = newValue;\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState(newValue);\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"$route\", function $route() {\n var newValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var oldValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.noCloseOnRouteChange && newValue.fullPath !== oldValue.fullPath) {\n this.hide();\n }\n }), _watch),\n created: function created() {\n // Define non-reactive properties\n this.$_returnFocusEl = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n // Add `$root` listeners\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggle);\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, this.handleSync); // Send out a gratuitous state event to ensure toggle button is synced\n\n this.$nextTick(function () {\n _this.emitState(_this.localShow);\n });\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n this.localShow = false;\n this.$_returnFocusEl = null;\n },\n methods: {\n hide: function hide() {\n this.localShow = false;\n },\n emitState: function emitState() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, this.safeId(), state);\n },\n emitSync: function emitSync() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), state);\n },\n handleToggle: function handleToggle(id) {\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.localShow = !this.localShow;\n }\n },\n handleSync: function handleSync(id) {\n var _this2 = this;\n\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.$nextTick(function () {\n _this2.emitSync(_this2.localShow);\n });\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (!this.noCloseOnEsc && keyCode === CODE_ESC && this.localShow) {\n this.hide();\n }\n },\n onBackdropClick: function onBackdropClick() {\n if (this.localShow && !this.noCloseOnBackdrop) {\n this.hide();\n }\n },\n\n /* istanbul ignore next */\n onTopTrapFocus: function onTopTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables.reverse()[0]);\n },\n\n /* istanbul ignore next */\n onBottomTrapFocus: function onBottomTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables[0]);\n },\n onBeforeEnter: function onBeforeEnter() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n this.$_returnFocusEl = getActiveElement(IS_BROWSER ? [document.body] : []); // Trigger lazy render\n\n this.isOpen = true;\n },\n onAfterEnter: function onAfterEnter(el) {\n if (!contains(el, getActiveElement())) {\n this.enforceFocus(el);\n }\n\n this.$emit(EVENT_NAME_SHOWN);\n },\n onAfterLeave: function onAfterLeave() {\n this.enforceFocus(this.$_returnFocusEl);\n this.$_returnFocusEl = null; // Trigger lazy render\n\n this.isOpen = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n enforceFocus: function enforceFocus(el) {\n if (!this.noEnforceFocus) {\n attemptFocus(el);\n }\n }\n },\n render: function render(h) {\n var _ref;\n\n var bgVariant = this.bgVariant,\n width = this.width,\n textVariant = this.textVariant,\n localShow = this.localShow;\n var shadow = this.shadow === '' ? true : this.shadow;\n var $sidebar = h(this.tag, {\n staticClass: CLASS_NAME,\n class: [(_ref = {\n shadow: shadow === true\n }, _defineProperty(_ref, \"shadow-\".concat(shadow), shadow && shadow !== true), _defineProperty(_ref, \"\".concat(CLASS_NAME, \"-right\"), this.right), _defineProperty(_ref, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_ref, \"text-\".concat(textVariant), textVariant), _ref), this.sidebarClass],\n style: {\n width: width\n },\n attrs: this.computedAttrs,\n directives: [{\n name: 'show',\n value: localShow\n }],\n ref: 'content'\n }, [renderContent(h, this)]);\n $sidebar = h('transition', {\n props: this.transitionProps,\n on: {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n afterLeave: this.onAfterLeave\n }\n }, [$sidebar]);\n var $backdrop = h(BVTransition, {\n props: {\n noFade: this.noSlide\n }\n }, [renderBackdrop(h, this)]);\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.backdrop && localShow) {\n $tabTrapTop = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onTopTrapFocus\n }\n });\n $tabTrapBottom = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onBottomTrapFocus\n }\n });\n }\n\n return h('div', {\n staticClass: 'b-sidebar-outer',\n style: {\n zIndex: this.zIndex\n },\n attrs: {\n tabindex: '-1'\n },\n on: {\n keydown: this.onKeydown\n }\n }, [$tabTrapTop, $sidebar, $tabTrapBottom, $backdrop]);\n }\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e),n.d(e,\"Component\",(function(){return c})),n.d(e,\"Plugin\",(function(){return p}));var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","import router from '@/router'\r\n// eslint-disable-next-line object-curly-newline\r\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\r\n\r\nexport const isObject = obj => typeof obj === 'object' && obj !== null\r\n\r\nexport const isToday = date => {\r\n const today = new Date()\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n date.getDate() === today.getDate() &&\r\n date.getMonth() === today.getMonth() &&\r\n date.getFullYear() === today.getFullYear()\r\n /* eslint-enable */\r\n )\r\n}\r\n\r\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\r\n\r\n// ? Light and Dark variant is not included\r\n// prettier-ignore\r\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info','darkBlue'])\r\n\r\nexport const isDynamicRouteActive = route => {\r\n const { route: resolvedRoute } = router.resolve(route)\r\n return resolvedRoute.path === router.currentRoute.path\r\n}\r\n\r\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\r\nexport const useRouter = () => {\r\n const vm = getCurrentInstance().proxy\r\n const state = reactive({\r\n route: vm.$route,\r\n })\r\n\r\n watch(\r\n () => vm.$route,\r\n r => {\r\n state.route = r\r\n },\r\n )\r\n\r\n return { ...toRefs(state), router: vm.$router }\r\n}\r\n\r\n/**\r\n * This is just enhancement over Object.extend [Gives deep extend]\r\n * @param {target} a Object which contains values to be overridden\r\n * @param {source} b Object which contains values to override\r\n */\r\n// export const objectExtend = (a, b) => {\r\n// // Don't touch 'null' or 'undefined' objects.\r\n// if (a == null || b == null) {\r\n// return a\r\n// }\r\n\r\n// Object.keys(b).forEach(key => {\r\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\r\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = objectExtend(a[key], b[key])\r\n// }\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// }\r\n// })\r\n\r\n// return a\r\n// }\r\n","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_LIST_GROUP_ITEM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { isTag } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar actionTags = ['a', 'router-link', 'button', 'b-link']; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n action: makeProp(PROP_TYPE_BOOLEAN, false),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_LIST_GROUP_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BListGroupItem = /*#__PURE__*/Vue.extend({\n name: NAME_LIST_GROUP_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var button = props.button,\n variant = props.variant,\n active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = button ? 'button' : !link ? props.tag : BLink;\n var action = !!(props.action || link || button || arrayIncludes(actionTags, props.tag));\n var attrs = {};\n var itemProps = {};\n\n if (isTag(tag, 'button')) {\n if (!data.attrs || !data.attrs.type) {\n // Add a type for button is one not provided in passed attributes\n attrs.type = 'button';\n }\n\n if (props.disabled) {\n // Set disabled attribute if button and disabled\n attrs.disabled = true;\n }\n } else {\n itemProps = pluckProps(linkProps, props);\n }\n\n return h(tag, mergeData(data, {\n attrs: attrs,\n props: itemProps,\n staticClass: 'list-group-item',\n class: (_class = {}, _defineProperty(_class, \"list-group-item-\".concat(variant), variant), _defineProperty(_class, 'list-group-item-action', action), _defineProperty(_class, \"active\", active), _defineProperty(_class, \"disabled\", disabled), _class)\n }), children);\n }\n});","var _watch, _methods;\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\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Todo.vue?vue&type=style&index=0&id=53380294&prod&lang=scss&scoped=true&\""],"sourceRoot":""}