{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./src/views/pages/authentication/Login.vue?c5f1","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack:///./src/views/pages/authentication/LoginSessions.vue?d347","webpack:///src/views/pages/authentication/LoginSessions.vue","webpack:///./src/views/pages/authentication/LoginSessions.vue?771c","webpack:///./src/views/pages/authentication/LoginSessions.vue","webpack:///src/views/pages/authentication/Login.vue","webpack:///./src/views/pages/authentication/Login.vue?3614","webpack:///./src/views/pages/authentication/Login.vue","webpack:///./src/@core/layouts/components/Logo.vue?5d71","webpack:///src/@core/layouts/components/Logo.vue","webpack:///./src/@core/layouts/components/Logo.vue?3844","webpack:///./src/@core/layouts/components/Logo.vue","webpack:///./src/@core/components/statistics-cards/StatisticCardHorizontal.vue?ee3a","webpack:///src/@core/components/statistics-cards/StatisticCardHorizontal.vue","webpack:///./src/@core/components/statistics-cards/StatisticCardHorizontal.vue?ae80","webpack:///./src/@core/components/statistics-cards/StatisticCardHorizontal.vue","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?7559","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?512b","webpack:///./src/@core/components/toastification/ToastificationContent.vue","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./src/views/pages/authentication/Login.vue?ed39","webpack:///./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tr.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table.js","webpack:///./src/assets/images/pages/login-trantor.png","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./src/@core/components/toastification/ToastificationContent.vue?bb93","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./src/assets/images/logo/logo.png","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./src/@core/mixins/ui/forms.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:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.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/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","_vm","this","_h","$createElement","_c","_self","_v","staticStyle","ref","_u","fn","invalid","on","$event","preventDefault","login","apply","arguments","errors","length","model","callback","$$v","userEmail","expression","_s","path","params","email","passwordFieldType","password","passwordToggleIcon","togglePasswordVisibility","status","isLoading","_e","modalShow","userSession","staticRenderFns","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread","target","i","source","forEach","getOwnPropertyDescriptors","defineProperties","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","bindings","vnode","config","title","undefined","trigger","placement","fallbackPlacement","container","animation","offset","id","html","interactive","disabled","delay","boundary","String","boundaryPadding","customClass","show","hide","arg","modifiers","mod","test","slice","selectedTriggers","identity","join","trim","toLowerCase","split","el","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","bind","componentUpdated","$nextTick","unbind","userData","message","totalRows","directives","rawName","confirmDelete","items","fields","index","item","components","BRow","BCol","BCard","BButton","BTable","BOverlay","StatisticCardHorizontal","Ripple","default","sortable","created","search","methods","_this","$http","get","idusuario","then","response","catch","error","console","log","_this2","text","$swal","showCancelButton","confirmButtonText","confirmButton","cancelButton","buttonsStyling","result","delete","_this3","post","icon","showToast","$toast","component","ToastificationContent","computed","BForm","BFormInput","BFormGroup","BCardTitle","BLink","VuexyLogo","BCardText","BInputGroup","BInputGroupAppend","BFormCheckbox","BAlert","ValidationProvider","ValidationObserver","BModal","VBModal","BImg","LoginSessions","mixins","device_name","sideImg","require","required","imgUrl","store","state","appConfig","layout","skin","mounted","$route","$refs","loginForm","validate","success","consultarDevice","msn","msm","session","addTrack","useJwt","setToken","accessToken","setRefreshToken","refreshToken","localStorage","setItem","JSON","stringify","$ability","update","ability","$router","browser","browserVersion","navigator","userAgent","Number","RegExp","$1","parseFloat","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","$gtag","event","event_category","event_label","stop","statistic","statisticTitle","color","BCardBody","BAvatar","global","setToStringTag","module","exports","is","x","y","$","setPrototypeOf","stat","asyncGeneratorStep","n","t","e","r","o","a","c","u","done","Promise","resolve","_next","_throw","domProps","$emit","hideClose","Boolean","Math","hasListenerMixin","hasListener","$listeners","$events","_events","LIGHT","DARK","BTr","listeners","provide","bvTableTr","inject","bvTableRowGroup","inheritAttrs","inTbody","isTbody","inThead","isThead","inTfoot","isTfoot","isDark","isStacked","isResponsive","isStickyHeader","hasStickyHeader","tableVariant","headVariant","footVariant","isRowDark","trClasses","trAttrs","bvAttrs","bvListeners","normalizeSlot","bottomRowMixin","renderBottomRow","computedFields","stacked","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","columns","colspan","rowspan","stackedHeading","stickyColumn","BTd","isStackedCell","isStickyColumn","rowVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","scope","$content","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","stopIfBusy","renderBusy","caption","captionHtml","captionMixin","captionId","safeId","renderCaption","$caption","hasCaptionSlot","colgroupMixin","renderColgroup","$colgroup","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","computedItems","$empty","isFiltered","stringifyObjectValues","sort","map","k","v","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","reduce","EVENT_FILTER","row","ignoreFields","includeFields","fieldsObj","formattedRow","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","minLen","_arrayLikeToArray","prototype","toString","call","constructor","Array","from","iter","Symbol","iterator","isArray","len","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","timeout","setTimeout","beforeDestroy","clearTimeout","regExp","pattern","replace","lastIndex","computedFieldsObj","origFields","f","sample","memo","_makeModelMixin","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","primaryKey","itemsMixin","paginatedItems","sortedItems","sortBy","localSortBy","sortDesc","localSortDesc","perPage","math","currentPage","apiUrl","getFieldFormatter","paginationMixin","localPaging","noProviderPaging","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","noProviderSorting","providerMixin","providerTriggerContext","ctx","_providerUpdate","listenOnRoot","refresh","$off","clearSelected","_providerSetLocal","emitOnRoot","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","dark","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","stackedMixin","isStackedAlways","stackedTableClasses","bordered","borderless","captionTop","fixed","noBorderCollapse","outlined","responsive","stickyHeader","striped","tableClass","tableRendererMixin","bvTable","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","border","tableAttrs","adb","ariaAttrs","rowCount","renderThead","renderTbody","renderTfoot","$table","style","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","TABLE_TAG_NAMES","indexOf","tagName","labelFor","input","document","sel","containsNode","BTh","extends","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","slotScope","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","rowShowDetails","hasRowClickHandler","$rows","detailsId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","tbody","$el","trs","tr","children","getTbodyTrIndex","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTopRow","$busy","cache","defaultSlotName","lowercaseSlotName","handlers","auxclick","contextmenu","dblclick","keydown","$tbody","$props","BTfoot","tfootClasses","tfootAttrs","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","BThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","noop","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$cells","$trs","topRowMixin","DESCRIPTORS","UNSUPPORTED_Y","getInternalState","RegExpPrototype","sticky","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","forced","sham","getPrototypeOf","it","BInputGroupPrepend","append","isText","BInputGroupAddon","isForced","inheritIfRequired","getOwnPropertyNames","isRegExp","getFlags","stickyHelpers","redefine","setInternalState","set","setSpecies","wellKnownSymbol","MATCH","NativeRegExp","re1","re2","CORRECT_NEW","FORCED","RegExpWrapper","flags","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","appendHtml","prepend","prependHtml","size","$prepend","hasPrependSlot","$append","hasAppendSlot","parseCountDown","parseShow","dismissLabel","dismissible","fade","countDown","localShow","clearCountDownInterval","$_countDownTimeout","dismiss","$alert","$dismissButton","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","res","rx","S","previousLastIndex","stableSort","compareFn","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","BVPopper","attachment","getAttachment","templateType","popperConfig","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","$_popper","popperCreate","handleDestroy","$once","updated","updatePopper","destroyPopper","destroyed","parentNode","removeChild","toUpperCase","arrowOffset","width","destroy","scheduleUpdate","renderTemplate","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","content","templateClasses","noninteractive","templateAttributes","$attrs","scopedStyleAttrs","templateListeners","focusin","focusout","$title","innerHTML","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","BVTooltip","activeTrigger","computedId","computedDelay","computedTriggers","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","getTarget","body","scopeId","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","propsData","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","defaultPrevented","addAriaDescribedby","force","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearInterval","desc","_this5","d","options","relatedTarget","componentId","vueTarget","bvEvent","_this6","setRootListener","_this7","events","$root","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","_this11","defineWellKnownSymbol","POSITION_COVER","top","left","bottom","right","bgColor","noCenter","noWrap","opacity","number","overlayTag","rounded","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","$overlay","$background","backgroundColor","backdropFilter","transform","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","alignContent","alignH","alignV","noGutters","_classList$push","classList","plain","formCustomMixin","custom","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","bvGroup","isChecked","checked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","hasOwnProperty","asyncIterator","toStringTag","define","Generator","create","Context","makeInvokeMethod","tryCatch","l","s","GeneratorFunction","GeneratorFunctionPrototype","p","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","Error","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","__proto__","awrap","async","reverse","pop","charAt","rval","handle","complete","finish","delegateYield","BInputGroupText","_methods","ariaLabelledby","button","buttonVariant","inline","formRadioCheckMixin","hasFocus","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","computedAttrs","_ref2","stateClass","change","handleFocus","$button","for","textTag","isBrowser","window","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","debounce","isFunction","functionToCheck","getType","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","parseInt","getWindowSizes","height","classCallCheck","instance","Constructor","createClass","descriptor","protoProps","staticProps","_extends","assign","getClientRect","offsets","getBoundingClientRect","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","check","findIndex","cur","match","runModifiers","ends","modifiersToRun","enabled","isDestroyed","arrowStyles","attributes","flipped","positionFixed","position","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","prefix","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","isFinite","setStyles","unit","setAttributes","setAttribute","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","floor","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","querySelector","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","PopperUtils"],"mappings":"kHAAA,mIAASA,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EASpM,IAAIQ,EAAQ,eAAsB,CACvCC,MAAO,eAAS,QAChBC,KAAM,eAAS,OAAkB,UACjCC,MAAO,eAAS,QAAmB,GACnCC,IAAK,eAAS,OAAkB,QAChCC,KAAM,eAAS,OAAkB,UACjCC,QAAS,eAAS,SACjB,SAGQC,EAAwB,aAAIC,OAAO,CAC5CC,KAAM,QACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIC,EAEAd,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZC,EAAQH,EAAKG,MACbC,EAAcJ,EAAKI,YACnBC,EAASF,IACTG,EAAeF,GAAe,GAC9BG,EAAS,eAAc,OAAiB,GAAID,EAAcD,IAAWlB,EAAMC,MAQ/E,OANImB,IACFA,EAASR,EAAE,OAAQ,CACjBS,YAAa,WACZD,IAGER,EAAEZ,EAAMI,IAAK,eAAUW,EAAM,CAClCO,MAAO,CACLpB,KAAMkB,EAASpB,EAAME,MAAQ,SAAW,KACxC,cAAekB,EAAS,KAAO,QAEjCG,OAAQT,EAAS,GAAIvB,EAAgBuB,EAAQ,WAAWU,OAAOxB,EAAMK,MAAOL,EAAMK,MAAOd,EAAgBuB,EAAQ,WAAWU,OAAOxB,EAAMK,KAAM,OAAQL,EAAMG,OAAQZ,EAAgBuB,EAAQ,QAAQU,OAAOxB,EAAMM,SAAUN,EAAMM,SAAUQ,KAC1O,CAACM,GAAUR,U,2CC9CnB,IAAID,EAAS,WAAa,IAAIc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACR,YAAY,6BAA6B,CAACQ,EAAG,MAAM,CAACR,YAAY,mBAAmB,CAACQ,EAAG,SAAS,CAACR,YAAY,QAAQ,CAACQ,EAAG,SAAS,CAACR,YAAY,aAAaC,MAAM,CAAC,GAAK,CAAEb,KAAM,aAAc,CAACoB,EAAG,eAAe,GAAGA,EAAG,eAAe,CAACR,YAAY,OAAOC,MAAM,CAAC,MAAQ,WAAW,CAACG,EAAIM,GAAG,sBAAsBF,EAAG,MAAM,CAACA,EAAG,UAAU,CAACP,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,CAACO,EAAG,MAAM,CAACR,YAAY,aAAaW,YAAY,CAAC,MAAQ,QAAQ,UAAY,YAAY,CAACP,EAAIM,GAAG,6DAA6D,GAAGF,EAAG,sBAAsB,CAACI,IAAI,YAAYhB,YAAYQ,EAAIS,GAAG,CAAC,CAACzC,IAAI,UAAU0C,GAAG,SAASF,GACrtB,IAAIG,EAAUH,EAAIG,QAClB,MAAO,CAACP,EAAG,SAAS,CAACR,YAAY,uBAAuBgB,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBd,EAAIe,MAAMC,MAAM,KAAMC,cAAc,CAACb,EAAG,eAAe,CAACP,MAAM,CAAC,YAAY,QAAQ,MAAQ,UAAU,CAACO,EAAG,sBAAsB,CAACP,MAAM,CAAC,KAAO,QAAQ,MAAQ,kBAAkBL,YAAYQ,EAAIS,GAAG,CAAC,CAACzC,IAAI,UAAU0C,GAAG,SAASF,GACpV,IAAIU,EAASV,EAAIU,OACjB,MAAO,CAACd,EAAG,eAAe,CAACR,YAAY,aAAaC,MAAM,CAAC,GAAK,QAAQ,KAAO,cAAc,QAAQqB,EAAOC,OAAS,IAAY,KAAK,YAAc,GAAG,UAAY,GAAG,KAAO,IAAIC,MAAM,CAACnD,MAAO+B,EAAa,UAAEqB,SAAS,SAAUC,GAAMtB,EAAIuB,UAAUD,GAAKE,WAAW,eAAepB,EAAG,QAAQ,CAACR,YAAY,eAAe,CAACI,EAAIM,GAAGN,EAAIyB,GAAGP,EAAO,WAAW,MAAK,MAAS,GAAGd,EAAG,eAAe,CAACA,EAAG,MAAM,CAACR,YAAY,kCAAkC,CAACQ,EAAG,QAAQ,CAACP,MAAM,CAAC,IAAM,aAAa,CAACG,EAAIM,GAAG,cAAcF,EAAG,SAAS,CAACP,MAAM,CAAC,GAAK,CAC1e6B,KAAO,oBAAsB1B,EAAIuB,UACjCI,OAAQ,CAAEC,MAAO5B,EAAIuB,cACrB,CAACnB,EAAG,QAAQ,CAACR,YAAY,eAAeW,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIM,GAAG,8BAA8B,GAAGF,EAAG,sBAAsB,CAACP,MAAM,CAAC,KAAO,WAAW,MAAQ,YAAYL,YAAYQ,EAAIS,GAAG,CAAC,CAACzC,IAAI,UAAU0C,GAAG,SAASF,GAC7O,IAAIU,EAASV,EAAIU,OACjD,MAAO,CAACd,EAAG,gBAAgB,CAACR,YAAY,oBAAoBE,MAAMoB,EAAOC,OAAS,EAAI,aAAe,MAAM,CAACf,EAAG,eAAe,CAACR,YAAY,gCAAgCC,MAAM,CAAC,GAAK,WAAW,KAAOG,EAAI6B,kBAAkB,QAAQX,EAAOC,OAAS,IAAY,KAAK,KAAO,iBAAiB,YAAc,YAAYC,MAAM,CAACnD,MAAO+B,EAAY,SAAEqB,SAAS,SAAUC,GAAMtB,EAAI8B,SAASR,GAAKE,WAAW,cAAcpB,EAAG,uBAAuB,CAACP,MAAM,CAAC,UAAU,KAAK,CAACO,EAAG,eAAe,CAACR,YAAY,iBAAiBC,MAAM,CAAC,KAAOG,EAAI+B,oBAAoBnB,GAAG,CAAC,MAAQZ,EAAIgC,6BAA6B,IAAI,GAAG5B,EAAG,QAAQ,CAACR,YAAY,eAAe,CAACI,EAAIM,GAAGN,EAAIyB,GAAGP,EAAO,WAAW,MAAK,MAAS,GAAGd,EAAG,eAAe,CAACA,EAAG,kBAAkB,CAACP,MAAM,CAAC,GAAK,cAAc,KAAO,cAAcuB,MAAM,CAACnD,MAAO+B,EAAU,OAAEqB,SAAS,SAAUC,GAAMtB,EAAIiC,OAAOX,GAAKE,WAAW,WAAW,CAACxB,EAAIM,GAAG,mBAAmB,GAAKN,EAAIkC,UAAqKlC,EAAImC,KAA9J/B,EAAG,WAAW,CAACG,YAAY,CAAC,MAAQ,WAAWV,MAAM,CAAC,QAAU,YAAY,KAAO,SAAS,MAAQ,GAAG,SAAWc,IAAU,CAACX,EAAIM,GAAG,sBAAgCN,EAAa,UAAEI,EAAG,WAAW,CAACP,MAAM,CAAC,QAAU,YAAY,SAAW,GAAG,MAAQ,KAAK,CAACO,EAAG,YAAY,CAACP,MAAM,CAAC,MAAQ,MAAMG,EAAIM,GAAG,kBAAkB,GAAGN,EAAImC,MAAM,UAAU/B,EAAG,cAAc,CAACR,YAAY,+BAA+B,CAACQ,EAAG,OAAO,CAACJ,EAAIM,GAAG,8BAA8BF,EAAG,SAAS,CAACP,MAAM,CAAC,GAAK,CAAEb,KAAM,mBAAoB,CAACoB,EAAG,OAAO,CAACR,YAAY,gBAAgB,CAACI,EAAIM,GAAG,oBAAoB,IAAI,IAAI,GAAGF,EAAG,UAAU,CAACP,MAAM,CAAC,GAAK,sBAAsB,UAAU,GAAG,aAAa,SAAS,WAAW,SAAS,cAAc,eAAe,SAAW,GAAG,KAAO,KAAK,MAAQ,YAAYuB,MAAM,CAACnD,MAAO+B,EAAa,UAAEqB,SAAS,SAAUC,GAAMtB,EAAIoC,UAAUd,GAAKE,WAAW,cAAc,CAACpB,EAAG,iBAAiB,CAACP,MAAM,CAAC,SAAWG,EAAIqC,gBAAgB,IAAI,IACjyDC,EAAkB,G,4PCVtB,SAASC,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAe3M,IAAIyF,EAAa,iBAEbC,EAAiB,cAEjBC,EAAgB,CAClBC,OAAO,EACPC,OAAO,EACPC,OAAO,EACPC,MAAM,EACNC,QAAQ,GAGNC,EAAS,UACTC,EAAmB,oBACnBC,EAAW,YACXC,EAAc,sFACdC,EAAa,oCACbC,EAAU,UACVC,EAAc,WACdC,EAAc,WACdC,EAAW,YACXC,EAAY,UACZC,EAAW,MAGX,EAAgB,SAAuBC,EAAUC,GAInD,IAAIC,EAAS,CACXC,WAAOC,EACPC,QAAS,GAETC,UAAW,MACXC,kBAAmB,OACnBC,WAAW,EAEXC,WAAW,EACXC,OAAQ,EACRC,GAAI,KACJC,MAAM,EACNC,aAAa,EACbC,UAAU,EACVC,MAAO,eAAmB,QAAc,QAAS,IACjDC,SAAUC,OAAO,eAAmB,QAAc,WAAY,iBAC9DC,gBAAiB,eAAU,eAAmB,QAAc,kBAAmB,GAAI,GACnFhH,QAAS,eAAmB,QAAc,WAC1CiH,YAAa,eAAmB,QAAc,gBAehD,GAZI,eAASnB,EAAS1G,QAAU,eAAS0G,EAAS1G,QAGvC,eAAW0G,EAAS1G,OAD7B4G,EAAOC,MAAQH,EAAS1G,MAIf,eAAc0G,EAAS1G,SAEhC4G,EAAS5B,EAAcA,EAAc,GAAI4B,GAASF,EAAS1G,QAIzD,eAAY4G,EAAOC,OAAQ,CAE7B,IAAIxF,EAAOsF,EAAMtF,MAAQ,GACzBuF,EAAOC,MAAQxF,EAAKO,QAAU,eAAkBP,EAAKO,MAAMiF,OAASxF,EAAKO,MAAMiF,WAAQC,EAIpF,eAAcF,EAAOa,SACxBb,EAAOa,MAAQ,CACbK,KAAM,eAAUlB,EAAOa,MAAO,GAC9BM,KAAM,eAAUnB,EAAOa,MAAO,KAK9Bf,EAASsB,MAGXpB,EAAOM,UAAY,IAAIpF,OAAO4E,EAASsB,MAIzC,eAAKtB,EAASuB,WAAW7C,SAAQ,SAAU8C,GACzC,GAAInC,EAAOoC,KAAKD,GAEdtB,EAAOU,MAAO,OACT,GAAItB,EAAiBmC,KAAKD,GAE/BtB,EAAOW,aAAc,OAChB,GAAItB,EAASkC,KAAKD,GAEvBtB,EAAOO,WAAY,OACd,GAAIjB,EAAYiC,KAAKD,GAE1BtB,EAAOI,UAAYkB,OACd,GAAI/B,EAAWgC,KAAKD,GAEzBA,EAAc,iBAARA,EAAyB,eAAiBA,EAChDtB,EAAOc,SAAWQ,OACb,GAAI9B,EAAQ+B,KAAKD,GAAM,CAE5B,IAAIT,EAAQ,eAAUS,EAAIE,MAAM,GAAI,GACpCxB,EAAOa,MAAMK,KAAOL,EACpBb,EAAOa,MAAMM,KAAON,OACXpB,EAAY8B,KAAKD,GAE1BtB,EAAOa,MAAMK,KAAO,eAAUI,EAAIE,MAAM,GAAI,GACnC9B,EAAY6B,KAAKD,GAE1BtB,EAAOa,MAAMM,KAAO,eAAUG,EAAIE,MAAM,GAAI,GACnC7B,EAAS4B,KAAKD,GAEvBtB,EAAOQ,OAAS,eAAUc,EAAIE,MAAM,GAAI,GAC/B5B,EAAU2B,KAAKD,KAExBtB,EAAOhG,QAAUsH,EAAIE,MAAM,IAAM,SAKrC,IAAIC,EAAmB,GA8BvB,OA5BA,eAAOzB,EAAOG,SAAW,IAAInC,OAAO0D,EAAA,MAAUC,KAAK,KAAKC,OAAOC,cAAcC,MAAMjC,GAAUrB,SAAQ,SAAU2B,GACzGtB,EAAcsB,KAChBsB,EAAiBtB,IAAW,MAIhC,eAAKL,EAASuB,WAAW7C,SAAQ,SAAU8C,GACzCA,EAAMA,EAAIO,cAENhD,EAAcyC,KAEhBG,EAAiBH,IAAO,MAI5BtB,EAAOG,QAAU,eAAKsB,GAAkBE,KAAK,KAEtB,SAAnB3B,EAAOG,UAETH,EAAOG,QAAU,SAGdH,EAAOG,UAEVH,EAAOG,QAAUvB,GAIZoB,GAIL,EAAe,SAAsB+B,EAAIjC,EAAUC,GACrD,GAAK,OAAL,CAKA,IAAIC,EAAS,EAAcF,EAAUC,GAErC,IAAKgC,EAAGpD,GAAa,CACnB,IAAIqD,EAAUjC,EAAMkC,QACpBF,EAAGpD,GAAc,IAAI,OAAU,CAC7BuD,OAAQF,EAERG,SAAU,eAAWH,OAAS9B,KAEhC6B,EAAGpD,GAAYyD,iBAAmB,GAClCL,EAAGpD,GAAY0D,IAAI,QAAiB,WAI9B,eAAWrC,EAAOC,QACpB8B,EAAGpD,GAAY2D,WAAW,CACxBrC,MAAOD,EAAOC,MAAM8B,QAM5B,IAAItH,EAAO,CACTwF,MAAOD,EAAOC,MACdsC,SAAUvC,EAAOG,QACjBC,UAAWJ,EAAOI,UAClBC,kBAAmBL,EAAOK,kBAC1BrG,QAASgG,EAAOhG,QAChBiH,YAAajB,EAAOiB,YACpBX,UAAWN,EAAOM,UAClBQ,SAAUd,EAAOc,SACjBD,MAAOb,EAAOa,MACdL,OAAQR,EAAOQ,OACfgC,QAASxC,EAAOO,UAChBE,GAAIT,EAAOS,GACXE,YAAaX,EAAOW,YACpBC,SAAUZ,EAAOY,SACjBF,KAAMV,EAAOU,MAEX+B,EAAUV,EAAGpD,GAAYyD,iBAG7B,GAFAL,EAAGpD,GAAYyD,iBAAmB3H,GAE7B,eAAWA,EAAMgI,GAAU,CAE9B,IAAIC,EAAU,CACZrE,OAAQ0D,GAEV,eAAKtH,GAAM+D,SAAQ,SAAUmE,GAEvBlI,EAAKkI,KAAUF,EAAQE,KAEzBD,EAAQC,GAAiB,UAATA,GAAoB,eAAWlI,EAAKkI,IAASlI,EAAKkI,GAAMZ,GAAMtH,EAAKkI,OAGvFZ,EAAGpD,GAAY2D,WAAWI,MAK1BE,EAAgB,SAAuBb,GACrCA,EAAGpD,KACLoD,EAAGpD,GAAYkE,WACfd,EAAGpD,GAAc,aAGZoD,EAAGpD,IAIDmE,EAAY,CACrBC,KAAM,SAAchB,EAAIjC,EAAUC,GAChC,EAAagC,EAAIjC,EAAUC,IAI7BiD,iBAAkB,SAA0BjB,EAAIjC,EAAUC,GAExDA,EAAMkC,QAAQgB,WAAU,WACtB,EAAalB,EAAIjC,EAAUC,OAG/BmD,OAAQ,SAAgBnB,GACtBa,EAAcb,K,iRCvQd,GAAS,WAAa,IAAI5G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACR,YAAY,OAAO,CAACQ,EAAG,KAAK,CAACR,YAAY,cAAc,CAACI,EAAIM,GAAG,IAAIN,EAAIyB,GAAGzB,EAAIgI,SAASC,SAAS,OAAO7H,EAAG,YAAY,CAACP,MAAM,CAAC,KAAOG,EAAI+F,KAAK,QAAU,OAAO,CAAE/F,EAAIkI,UAAY,EAAG9H,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACP,MAAM,CAAC,GAAK,KAAK,GAAK,OAAO,CAACO,EAAG,4BAA4B,CAACP,MAAM,CAAC,KAAO,cAAc,MAAQ,UAAU,UAAYG,EAAIkI,cAAc,IAAI,GAAGlI,EAAImC,KAAK/B,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACR,YAAY,OAAOC,MAAM,CAAC,GAAK,KAAK,GAAK,OAAO,CAACO,EAAG,WAAW,CAAC+H,WAAW,CAAC,CAACnJ,KAAK,SAASoJ,QAAQ,eAAenK,MAAM,4BAA8BuD,WAAW,8BAA8B0E,UAAU,CAAC,KAAM,KAAQtG,YAAY,uBAAuBC,MAAM,CAAC,QAAU,WAAWe,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOb,EAAIqI,mBAAmB,CAACjI,EAAG,eAAe,CAACP,MAAM,CAAC,KAAO,WAAWG,EAAIM,GAAG,kCAAkC,IAAI,GAAGF,EAAG,QAAQ,CAACR,YAAY,OAAOC,MAAM,CAAC,GAAK,KAAK,GAAK,OAAO,CAACO,EAAG,SAAS,CAACP,MAAM,CAAC,UAAU,KAAK,CAACO,EAAG,UAAU,CAACI,IAAI,mBAAmBZ,YAAY,oBAAoBC,MAAM,CAAC,QAAU,GAAG,MAAQ,GAAG,MAAQG,EAAIsI,MAAM,WAAa,GAAG,OAAStI,EAAIuI,OAAO,aAAa,GAAG,aAAa,oCAAoC,GAAK,YAAY/I,YAAYQ,EAAIS,GAAG,CAAC,CAACzC,IAAI,WAAW0C,GAAG,SAASpB,GAAM,MAAO,CAACU,EAAIM,GAAG,IAAIN,EAAIyB,GAAGnC,EAAKkJ,MAAQ,GAAG,QAAQ,CAACxK,IAAI,eAAe0C,GAAG,SAASpB,GAAM,MAAO,CAACc,EAAG,WAAW,CAAC+H,WAAW,CAAC,CAACnJ,KAAK,SAASoJ,QAAQ,eAAenK,MAAM,4BAA8BuD,WAAW,8BAA8B0E,UAAU,CAAC,KAAM,KAAQtG,YAAY,WAAWC,MAAM,CAAC,QAAU,UAAUe,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOb,EAAIqI,cAAc/I,EAAKmJ,KAAKnD,OAAO,CAAClF,EAAG,eAAe,CAACP,MAAM,CAAC,KAAO,WAAWG,EAAIM,GAAG,eAAe,WAAW,IAAI,IAAI,IAAI,IAAI,IACpvD,GAAkB,G,0FCoEP,IACfoI,WAAA,CACAC,aACAC,aACAC,aACAC,eACAC,eACAC,iBACAC,iCAEAd,WAAA,CACAe,gBAEA3K,MAAA,CACAyJ,SAAA,CACApJ,KAAAV,OACAiL,QAAA,uBAGA7J,KAAA,WACA,OACAyG,MAAA,EACAwC,OAAA,CACA,CAAAvK,IAAA,KAAAQ,MAAA,IAAAsB,MAAA,cACA,CACA9B,IAAA,cACAQ,MAAA,cACA4K,UAAA,EACAtJ,MAAA,cAEA,CACA9B,IAAA,aACAQ,MAAA,QACA4K,UAAA,EACAtJ,MAAA,cAEA,CACA9B,IAAA,UACAQ,MAAA,OACA4K,UAAA,EACAtJ,MAAA,cAEA,CAAA9B,IAAA,SAAAQ,MAAA,aAEA8J,MAAA,KAGAe,QAAA,WACA,KAAAC,UAEAC,QAAA,CACAD,OAAA,eAAAE,EAAA,KACA,KAAAzD,MAAA,EACA,KAAA0D,MACAC,IAAA,qBACA/H,OAAA,CACAgI,UAAA,KAAA3B,SAAA1C,MAGAsE,MAAA,SAAAC,GACAL,EAAAzD,MAAA,EACAyD,EAAAlB,MAAAuB,EAAAvK,aAEAwK,OAAA,SAAAC,GACAP,EAAAzD,MAAA,EACAiE,QAAAC,IAAAF,OAGA1B,cAAA,SAAA/C,GAAA,IAAA4E,EAAA,KACAC,EAAA,GAGAA,OADApF,GAAAO,EACA,qCAEA,8CAGA,KAAA8E,MAAA,CACAtF,MAAAqF,EACAE,kBAAA,EACAC,kBAAA,gBACAxE,YAAA,CACAhB,MAAA,iBACAyF,cAAA,oBACAC,aAAA,kCAEAC,gBAAA,IACAb,MAAA,SAAAc,GACAA,EAAAzM,OACAiM,EAAAS,OAAArF,OAIAqF,OAAA,SAAArF,GAAA,IAAAsF,EAAA,KACA,KAAA7E,MAAA,EACA,KAAA0D,MACAoB,KAAA,4BACAlB,UAAA,KAAA3B,SAAA1C,GACAA,OAEAsE,MAAA,SAAAC,GACAe,EAAA7E,MAAA,EACA6E,EAAAtB,YAEAQ,OAAA,SAAAC,GACAa,EAAA7E,MAAA,EACAiE,QAAAC,IAAAF,GACAa,EAAAR,MAAA,CACAtF,MAAA,QACAqF,KAAAJ,EAAAF,SAAAvK,KAAAyK,MACAe,KAAA,QACAhF,YAAA,CACAyE,cAAA,mBAEAE,gBAAA,QAIAM,UAAA,SAAA9C,EAAApJ,EAAAiM,GACA,KAAAE,OAAA,CACAC,UAAAC,sBACA3M,MAAA,CACAuG,MAAAmD,EACApJ,UACAiM,YAKAK,SAAA,CACAjD,UAAA,WACA,YAAAI,MAAAnH,UCxMoX,M,aCOhX8J,GAAY,gBACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,GAAAA,G,QCoLA,IACf9C,WAAA,CACA,YAAAR,GAEAe,WAAA,CACAI,eACAsC,aACAC,kBACAC,kBACAzC,aACA0C,kBACAC,aACAC,kBACAC,iBACAC,mBACA7M,gBACA8M,yBACAC,qBACAC,cACAC,0BACAC,0BACAd,8BACAe,eACAC,gBACAC,aACAC,kBAEAC,OAAA,CAAArK,SACA1C,KAAA,WACA,OACA2C,OAAA,GACAH,SAAA,GACAP,UAAA,GACA+K,YAAA,GACAC,QAAAC,EAAA,QACAC,iBACA7K,cACAM,WAAA,EACAG,YAAA,GACAD,WAAA,IAGA+I,SAAA,CACApJ,mBAAA,WACA,wBAAAF,kBACA,UACA,cAEA6K,OAAA,WACA,eAAAC,QAAAC,MAAAC,UAAAC,OAAAC,MAEA,KAAAR,QAAAC,EAAA,QACA,KAAAD,SAEA,KAAAA,UAGAS,QAAA,WACA,KAAAzL,UACA,kBAAA0L,OAAAtL,OAAAC,MACA,KAAAqL,OAAAtL,OAAAC,MACA,MAEA2H,QAAA,CACAxI,MAAA,eAAAyI,EAAA,KACA,KAAA0D,MAAAC,UAAAC,WAAAxD,MAAA,SAAAyD,GACAA,IACA7D,EAAAtH,WAAA,EACAsH,EAAA8C,YAAA9C,EAAA8D,kBACA9D,EAAAC,MACAoB,KAAA,mBACAjJ,MAAA4H,EAAAjI,UACAO,SAAA0H,EAAA1H,SACAwK,YAAA9C,EAAA8C,cAEA1C,MAAA,SAAAC,GACA,IAAA0D,EAAA1D,EAAAvK,KAAAkO,IACAC,EAAA5D,EAAAvK,KAAAmO,QAEA,GAAAA,EAIA,OAHAjE,EAAAnH,YAAAwH,EAAAvK,KAAA0I,SACAwB,EAAAtH,WAAA,EACAsH,EAAApH,WAAA,GACA,EAGA,MAAAmL,GACA/D,EAAAkE,WAEAC,QAAAC,SAAA/D,EAAAvK,KAAAuO,aAEAF,QAAAG,gBACAjE,EAAAvK,KAAAyO,cAGAC,aAAAC,QACA,WACAC,KAAAC,UAAAtE,EAAAvK,KAAA0I,WAGAwB,EAAA4E,SAAAC,OACAxE,EAAAvK,KAAA0I,SAAAsG,SAGA9E,EAAAtH,WAAA,EAEAsH,EAAA+E,QAAAvL,KAAA,WAGAwG,EAAAtH,WAAA,EACAsH,EAAAY,MAAA,CACAtF,MAAA,QACAgB,YAAA,CACAhB,MAAA,iBACAyF,cAAA,2BAKAT,OAAA,SAAAC,GACAP,EAAAtH,WAAA,EACAsH,EAAAY,MAAA,CACAtF,MAAA,eACAqF,KAAAJ,EAAAF,SAAAvK,KAAAyK,MACAA,EAAAF,SAAAvK,KAAAyK,MACAA,EAAA9B,QACAnC,YAAA,CACAhB,MAAA,iBACAyF,cAAA,+BAOAQ,UAAA,SAAA9C,EAAApJ,EAAAiM,GACA,KAAAE,OAAA,CACAC,UAAAC,QACA3M,MAAA,CACAuG,MAAAmD,EACApJ,UACAiM,WAIAwC,gBAAA,WACA,IAAAkB,EAAA,GACAC,EAAA,EAmBA,MAlBA,wBAAArI,KAAAsI,UAAAC,WACAH,EAAA,QACA,mBAAApI,KAAAsI,UAAAC,WACAH,EAAA,OACA,4BAAApI,KAAAsI,UAAAC,WACAH,EAAA,WACA,yBAAApI,KAAAsI,UAAAC,WACAH,EAAA,SACA,yBAAApI,KAAAsI,UAAAC,YACAH,EAAA,SACA,0BAAApI,KAAAsI,UAAAC,WACAF,EAAA,IAAAG,OAAAC,OAAAC,KACA,0BAAA1I,KAAAsI,UAAAC,aACAH,EAAA,WAEA,IAAAC,IACAA,EAAAM,WAAA,IAAAH,OAAAC,OAAAC,MAEAN,EAAA,IAAAC,GAEAf,SAAA,eAAAxD,EAAA,YAAA8E,eAAAC,iBAAAC,MAAA,SAAAC,IAAA,OAAAF,iBAAAG,MAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACArF,EAAAsF,MAAAC,MAAA,SACAC,eAAA,iBACAC,YAAA,uBACA1R,MAAA,IACA,wBAAAoR,EAAAO,UAAAT,MALAH,MC9W4W,MCQxW,I,UAAY,gBACd,GACA9P,EACAoD,GACA,EACA,KACA,KACA,OAIa,gB,6CCnBf,IAAIpD,EAAS,WAAa,IAAIc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACP,MAAM,CAAC,IAAMG,EAAI0M,OAAO,IAAM,WAAW,IAC3JpK,EAAkB,G,YCQP,GACfoG,WAAA,CACAyD,aAEA7M,KAAA,WACA,OACAoN,OAAAF,EAAA,WCf2W,I,YCOvWvB,EAAY,eACd,EACA/L,EACAoD,GACA,EACA,KACA,KACA,MAIa,OAAA2I,E,6CClBf,IAAI/L,EAAS,WAAa,IAAIc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACP,MAAM,CAAC,UAAU,KAAK,CAACO,EAAG,cAAc,CAACR,YAAY,qDAAqD,CAACQ,EAAG,MAAM,CAACR,YAAY,YAAY,CAACQ,EAAG,KAAK,CAACR,YAAY,4BAA4B,CAACI,EAAIM,GAAG,IAAIN,EAAIyB,GAAGzB,EAAI6P,WAAW,OAAOzP,EAAG,OAAO,CAACJ,EAAIM,GAAGN,EAAIyB,GAAGzB,EAAI8P,qBAAqB1P,EAAG,WAAW,CAACP,MAAM,CAAC,QAAW,SAAWG,EAAI+P,MAAO,KAAO,OAAO,CAAC3P,EAAG,eAAe,CAACP,MAAM,CAAC,KAAO,KAAK,KAAOG,EAAI8K,SAAS,IAAI,IAAI,IAC3gBxI,EAAkB,G,gDCwBP,GACfoG,WAAA,CACAG,aACAmH,iBACAC,gBAEA1R,MAAA,CACAuM,KAAA,CACAlM,KAAAgH,OACA6G,UAAA,GAEAoD,UAAA,CACAjR,KAAA,CAAAgQ,OAAAhJ,QACA6G,UAAA,GAEAqD,eAAA,CACAlR,KAAAgH,OACAuD,QAAA,IAEA4G,MAAA,CACAnR,KAAAgH,OACAuD,QAAA,aC9C8X,I,YCO1X8B,EAAY,eACd,EACA/L,EACAoD,GACA,EACA,KACA,KACA,MAIa,OAAA2I,E,gCClBf,IAAIiF,EAAS,EAAQ,QACjBC,EAAiB,EAAQ,QAI7BA,EAAeD,EAAOhC,KAAM,QAAQ,I,qBCHpCkC,EAAOC,QAAUnS,OAAOoS,IAAM,SAAYC,EAAGC,GAE3C,OAAOD,IAAMC,EAAU,IAAND,GAAW,EAAIA,IAAM,EAAIC,EAAID,GAAKA,GAAKC,GAAKA,I,uBCJ/D,IAAIC,EAAI,EAAQ,QACZC,EAAiB,EAAQ,QAI7BD,EAAE,CAAEvN,OAAQ,SAAUyN,MAAM,GAAQ,CAClCD,eAAgBA,K,gFCNlB,SAASE,EAAmBC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,GAC5C,IACE,IAAIhO,EAAI0N,EAAEK,GAAGC,GACXC,EAAIjO,EAAElF,MACR,MAAO4S,GACP,YAAYE,EAAEF,GAEhB1N,EAAEkO,KAAOP,EAAEM,GAAKE,QAAQC,QAAQH,GAAGxH,KAAKoH,EAAGC,GAE7C,SAASjC,EAAkB6B,GACzB,OAAO,WACL,IAAIC,EAAI7Q,KACN8Q,EAAI9P,UACN,OAAO,IAAIqQ,SAAQ,SAAUN,EAAGC,GAC9B,IAAIC,EAAIL,EAAE7P,MAAM8P,EAAGC,GACnB,SAASS,EAAMX,GACbD,EAAmBM,EAAGF,EAAGC,EAAGO,EAAOC,EAAQ,OAAQZ,GAErD,SAASY,EAAOZ,GACdD,EAAmBM,EAAGF,EAAGC,EAAGO,EAAOC,EAAQ,QAASZ,GAEtDW,OAAM,S,6DCrBZ,IAAItS,EAAS,WAAa,IAAIc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACR,YAAY,kBAAkB,CAACQ,EAAG,MAAM,CAACR,YAAY,4BAA4B,CAACQ,EAAG,WAAW,CAACR,YAAY,sBAAsBC,MAAM,CAAC,QAAUG,EAAInB,QAAQ,KAAO,WAAW,CAACuB,EAAG,eAAe,CAACP,MAAM,CAAC,KAAOG,EAAI8K,KAAK,KAAO,SAAS,GAAG1K,EAAG,MAAM,CAACR,YAAY,sBAAsB,CAACQ,EAAG,MAAM,CAAEJ,EAAS,MAAEI,EAAG,KAAK,CAACR,YAAY,+CAA+CE,MAAO,QAAUE,EAAInB,QAAS6S,SAAS,CAAC,YAAc1R,EAAIyB,GAAGzB,EAAI8E,UAAU9E,EAAImC,KAAMnC,EAAQ,KAAEI,EAAG,QAAQ,CAACR,YAAY,2BAA2B8R,SAAS,CAAC,YAAc1R,EAAIyB,GAAGzB,EAAImK,SAASnK,EAAImC,OAAO/B,EAAG,OAAO,CAACR,YAAY,oDAAoDgB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOb,EAAI2R,MAAM,kBAAkB,CAAG3R,EAAI4R,UAA+E5R,EAAImC,KAAxE/B,EAAG,eAAe,CAACR,YAAY,YAAYC,MAAM,CAAC,KAAO,YAAqB,MAAM,MACv5ByC,EAAkB,G,YC4CP,GACfoG,WAAA,CACAuH,gBAEA1R,MAAA,CACAM,QAAA,CACAD,KAAAgH,OACAuD,QAAA,WAEA2B,KAAA,CACAlM,KAAAgH,OACAuD,QAAA,MAEArE,MAAA,CACAlG,KAAAgH,OACAuD,QAAA,MAEAgB,KAAA,CACAvL,KAAAgH,OACAuD,QAAA,MAEAyI,UAAA,CACAhT,KAAAiT,QACA1I,SAAA,KCpE4X,I,wBCQxX8B,EAAY,eACd,EACA/L,EACAoD,GACA,EACA,KACA,WACA,MAIa,OAAA2I,E,gCCnBf,IAAIkF,EAAiB,EAAQ,QAI7BA,EAAe2B,KAAM,QAAQ,I,oCCJ7B,W,mJCOWC,EAAmB,aAAIhT,OAAO,CACvCwK,QAAS,CACPyI,YAAa,SAAqBhT,GAEhC,IAAIiT,EAAahS,KAAKgS,YAAc,GAIhCC,EAAUjS,KAAKkS,SAAW,GAG9B,OAAQ,eAAYF,EAAWjT,KAAU,eAAQkT,EAAQlT,KAAUkT,EAAQlT,GAAMmC,OAAS,M,4DClBhG,SAASoB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAU3M,IAAIqU,EAAQ,QACRC,EAAO,OAEA,EAAQ,eAAsB,CACvCxT,QAAS,eAAS,SACjB,SAMQyT,EAAmB,aAAIvT,OAAO,CACvCC,KAAM,QACNqN,OAAQ,CAACxM,EAAA,KAAY0S,EAAA,KAAgB,QACrCC,QAAS,WACP,MAAO,CACLC,UAAWxS,OAGfyS,OAAQ,CACNC,gBAAiB,CACfxJ,QAEA,WACE,MAAO,MAIbyJ,cAAc,EACdrU,MAAO,EACP4M,SAAU,CAER0H,QAAS,WACP,OAAO5S,KAAK0S,gBAAgBG,SAG9BC,QAAS,WACP,OAAO9S,KAAK0S,gBAAgBK,SAG9BC,QAAS,WACP,OAAOhT,KAAK0S,gBAAgBO,SAG9BC,OAAQ,WACN,OAAOlT,KAAK0S,gBAAgBQ,QAG9BC,UAAW,WACT,OAAOnT,KAAK0S,gBAAgBS,WAG9BC,aAAc,WACZ,OAAOpT,KAAK0S,gBAAgBU,cAI9BC,eAAgB,WACd,OAAOrT,KAAK0S,gBAAgBW,gBAK9BC,gBAAiB,WACf,OAAQtT,KAAKmT,WAAanT,KAAK0S,gBAAgBY,iBAGjDC,aAAc,WACZ,OAAOvT,KAAK0S,gBAAgBa,cAG9BC,YAAa,WACX,OAAOxT,KAAK8S,QAAU9S,KAAK0S,gBAAgBc,YAAc,MAG3DC,YAAa,WACX,OAAOzT,KAAKgT,QAAUhT,KAAK0S,gBAAgBe,YAAc,MAE3DC,UAAW,WACT,OAAO1T,KAAKwT,cAAgBrB,GAASnS,KAAKyT,cAAgBtB,IAElDnS,KAAKwT,cAAgBpB,GAAQpS,KAAKyT,cAAgBrB,GAEnDpS,KAAKkT,SAEdS,UAAW,WACT,IAAI/U,EAAUoB,KAAKpB,QACnB,MAAO,CAACA,EAAU,GAAGkB,OAAOE,KAAK0T,UAAY,KAAO,QAAS,KAAK5T,OAAOlB,GAAW,OAEtFgV,QAAS,WACP,OAAO5Q,EAAc,CACnBxE,KAAM,OACLwB,KAAK6T,WAGZ5U,OAAQ,SAAgBC,GACtB,OAAOA,EAAE,KAAM,CACbW,MAAOG,KAAK2T,UACZ/T,MAAOI,KAAK4T,QAEZjT,GAAIX,KAAK8T,aACR9T,KAAK+T,oBC9GD,EAAQ,GAGRC,EAAiB,aAAIlV,OAAO,CACrCR,MAAO,EACPgL,QAAS,CACP2K,gBAAiB,WACf,IAAI3L,EAAStI,KAAKkU,eACdC,EAAUnU,KAAKmU,QACfC,EAAepU,KAAKoU,aACpBC,EAAcrU,KAAKqU,YACnBnV,EAAIc,KAAKE,eAGb,OAAKF,KAAKsU,kBAAkB,UAAqC,IAAZH,GAAgC,KAAZA,EAIlEjV,EAAEmT,EAAK,CACZ1S,YAAa,qBACbE,MAAO,CAAC,eAAWuU,GAEnBA,EAAa,KAAM,cAAgBA,GACnCxU,MAAO,eAAWyU,GAElBA,EAAY,KAAM,cAAgBA,EAClCtW,IAAK,gBACJiC,KAAK+T,cAAc,OAAsB,CAC1CQ,QAASjM,EAAOpH,OAChBoH,OAAQA,KAdDpJ,Q,4DCpBf,SAAS,EAAQqD,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,EAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,EAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,EAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,EAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,EAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAe3M,IAAI,EAAY,SAAmBE,GAEjC,OADAA,EAAQ,eAAUA,EAAO,GAClBA,EAAQ,EAAIA,EAAQ,MAKzB,EAAgB,SAAuBA,GACzC,OAAO,eAAkBA,IAAU,EAAUA,GAAS,GAI7C,EAAQ,eAAsB,CACvCwW,QAAS,eAAS,OAAyB,KAAM,GACjDC,QAAS,eAAS,OAAyB,KAAM,GACjDC,eAAgB,eAAS,QACzBC,aAAc,eAAS,QAAmB,GAC1C/V,QAAS,eAAS,SACjB,SAMQgW,EAAmB,aAAI9V,OAAO,CACvCC,KAAM,QAENqN,OAAQ,CAACxM,EAAA,KAAY0S,EAAA,KAAgB,QACrCG,OAAQ,CACND,UAAW,CACTtJ,QAEA,WACE,MAAO,MAIbyJ,cAAc,EACdrU,MAAO,EACP4M,SAAU,CAERxM,IAAK,WACH,MAAO,MAETkU,QAAS,WACP,OAAO5S,KAAKwS,UAAUI,SAExBE,QAAS,WACP,OAAO9S,KAAKwS,UAAUM,SAExBE,QAAS,WACP,OAAOhT,KAAKwS,UAAUQ,SAExBE,OAAQ,WACN,OAAOlT,KAAKwS,UAAUU,QAExBC,UAAW,WACT,OAAOnT,KAAKwS,UAAUW,WAGxB0B,cAAe,WACb,OAAO7U,KAAK4S,SAAW5S,KAAKmT,WAE9BC,aAAc,WACZ,OAAOpT,KAAKwS,UAAUY,cAKxBC,eAAgB,WACd,OAAOrT,KAAKwS,UAAUa,gBAIxBC,gBAAiB,WACf,OAAOtT,KAAKwS,UAAUc,iBAOxBwB,eAAgB,WACd,OAAQ9U,KAAKmT,YAAcnT,KAAKoT,cAAgBpT,KAAKsT,kBAAoBtT,KAAK2U,cAEhFI,WAAY,WACV,OAAO/U,KAAKwS,UAAU5T,SAExB4U,YAAa,WACX,OAAOxT,KAAKwS,UAAUgB,aAExBC,YAAa,WACX,OAAOzT,KAAKwS,UAAUiB,aAExBF,aAAc,WACZ,OAAOvT,KAAKwS,UAAUe,cAExByB,gBAAiB,WACf,OAAO,EAAUhV,KAAKwU,UAExBS,gBAAiB,WACf,OAAO,EAAUjV,KAAKyU,UAIxBS,YAAa,WACX,IAAItW,EAAUoB,KAAKpB,QACf4U,EAAcxT,KAAKwT,YACnBsB,EAAiB9U,KAAK8U,eAQ1B,QANKlW,GAAWoB,KAAKqT,iBAAmBG,IAAgB5U,GAAWkW,GAAkB9U,KAAKgT,UAAYhT,KAAKyT,cAAgB7U,GAAWkW,GAAkB9U,KAAK8S,UAAYU,IAAgB5U,GAAWkW,GAAkB9U,KAAK4S,WAGzNhU,EAAUoB,KAAK+U,YAAc/U,KAAKuT,cAAgB,mBAG7C,CAAC3U,EAAU,GAAGkB,OAAOE,KAAKkT,OAAS,KAAO,QAAS,KAAKpT,OAAOlB,GAAW,KAAMkW,EAAiB,wBAA0B,OAEpIK,UAAW,WACT,IAAIT,EAAiB1U,KAAK0U,eAGtBU,EAAapV,KAAK8S,SAAW9S,KAAKgT,QAElCwB,EAAUxU,KAAKgV,gBACfP,EAAUzU,KAAKiV,gBAEfzW,EAAO,OACP6W,EAAQ,KAaZ,OAVID,GAEF5W,EAAO,eACP6W,EAAQb,EAAU,EAAI,UAAY,OACzB,eAAMxU,KAAKtB,IAAK,QAEzBF,EAAO,YACP6W,EAAQZ,EAAU,EAAI,WAAa,OAG9B,EAAc,EAAc,CACjCD,QAASA,EACTC,QAASA,EACTjW,KAAMA,EACN6W,MAAOA,GACNrV,KAAK6T,SAAU,GAAI,CAGpB,aAAc7T,KAAK6U,gBAAkB,eAAkBH,GAEvD,eAASA,GAAkB,SAIjCzV,OAAQ,SAAgBC,GACtB,IAAIoW,EAAW,CAACtV,KAAK+T,iBACrB,OAAO7U,EAAEc,KAAKtB,IAAK,CACjBmB,MAAOG,KAAKkV,YACZtV,MAAOI,KAAKmV,UAEZxU,GAAIX,KAAK8T,aACR,CAAC9T,KAAK6U,cAAgB3V,EAAE,MAAO,CAACoW,IAAaA,OCrLpD,SAAS,EAAgBxX,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAY3M,IAAIyX,EAAuB,OACvBC,EAAwB,QAA0BD,EAE3C,EAAQ,EAAgB,GAAIA,EAAsB,eAAS,QAAmB,IAG9EE,EAAY,aAAI3W,OAAO,CAChCR,MAAO,EACPe,KAAM,WACJ,MAAO,CACLqW,WAAW,IAGfxK,SAAU,CACRyK,aAAc,WACZ,OAAO3V,KAAKuV,IAAyBvV,KAAK0V,YAG9CE,MAAO,CACLF,UAAW,SAAmBG,EAAUC,GAClCD,IAAaC,GACf9V,KAAK0R,MAAM8D,EAAuBK,KAIxCvM,QAAS,CAEPyM,WAAY,SAAoBvG,GAE9B,QAAIxP,KAAK2V,eACP,eAAUnG,IACH,IAMXwG,WAAY,WACV,IAAI5B,EAAepU,KAAKoU,aACpBC,EAAcrU,KAAKqU,YACnBnV,EAAIc,KAAKE,eAEb,OAAIF,KAAK2V,cAAgB3V,KAAKsU,kBAAkB,QACvCpV,EAAEmT,EAAK,CACZ1S,YAAa,oBACbE,MAAO,CAAC,eAAWuU,GAEnBA,EAAa,KAAM,QAAwBA,GAC3CxU,MAAO,eAAWyU,GAElBA,EAAY,KAAM,QAAwBA,EAC1CtW,IAAK,mBACJ,CAACmB,EAAE0V,EAAK,CACTtW,MAAO,CACLkW,QAASxU,KAAKkU,eAAehT,QAAU,OAExC,CAAClB,KAAK+T,cAAc,YAKlB,S,YCnEF,EAAQ,CACjBkC,QAAS,eAAS,QAClBC,YAAa,eAAS,SAMbC,EAAe,aAAIrX,OAAO,CACnCR,MAAO,EACP4M,SAAU,CACRkL,UAAW,WAGT,OAAOpW,KAAKmT,UAAYnT,KAAKqW,OAAO,aAAe,OAGvD/M,QAAS,CACPgN,cAAe,WACb,IAAIL,EAAUjW,KAAKiW,QACfC,EAAclW,KAAKkW,YACnBhX,EAAIc,KAAKE,eACTqW,EAAWrX,IACXsX,EAAiBxW,KAAKsU,kBAAkB,QAY5C,OAVIkC,GAAkBP,GAAWC,KAC/BK,EAAWrX,EAAE,UAAW,CACtBU,MAAO,CACLyF,GAAIrF,KAAKoW,WAEX3E,SAAU+E,EAAiB,GAAK,OAAAlR,EAAA,MAAW4Q,EAAaD,GACxDlY,IAAK,WACJiC,KAAK+T,cAAc,UAGjBwC,MCtCF,EAAQ,GAGRE,EAAgB,aAAI3X,OAAO,CACpCwK,QAAS,CACPoN,eAAgB,WACd,IAAIpO,EAAStI,KAAKkU,eACdhV,EAAIc,KAAKE,eACTyW,EAAYzX,IAWhB,OATIc,KAAKsU,kBAAkB,UACzBqC,EAAYzX,EAAE,WAAY,CACxBnB,IAAK,YACJ,CAACiC,KAAK+T,cAAc,OAA0B,CAC/CQ,QAASjM,EAAOpH,OAChBoH,OAAQA,OAILqO,MCbF,EAAQ,CACjBC,kBAAmB,eAAS,QAC5BC,kBAAmB,eAAS,OAAkB,8CAC9CC,UAAW,eAAS,QACpBC,UAAW,eAAS,OAAkB,gCACtCC,UAAW,eAAS,QAAmB,IAI9BC,EAAa,aAAInY,OAAO,CACjCR,MAAO,EACPgL,QAAS,CACP4N,YAAa,WACX,IAAI7O,EAAQrI,KAAKmX,cACbjY,EAAIc,KAAKE,eACTkX,EAASlY,IAEb,GAAIc,KAAKgX,aAAe3O,GAA0B,IAAjBA,EAAMnH,WAAmBlB,KAAK2V,eAAgB3V,KAAKsU,kBAAkB,SAAwB,CAC5H,IAAIhM,EAAStI,KAAKkU,eACdmD,EAAarX,KAAKqX,WAClBN,EAAY/W,KAAK+W,UACjBD,EAAY9W,KAAK8W,UACjBD,EAAoB7W,KAAK6W,kBACzBD,EAAoB5W,KAAK4W,kBACzBxC,EAAepU,KAAKoU,aACpBC,EAAcrU,KAAKqU,YACvB+C,EAASpX,KAAK+T,cAAcsD,EAAa,OAA0B,OAAiB,CAClFT,kBAAmBA,EACnBC,kBAAmBA,EACnBC,UAAWA,EACXC,UAAWA,EACXzO,OAAQA,EAERD,MAAOA,IAGJ+O,IACHA,EAASlY,EAAE,MAAO,CAChBW,MAAO,CAAC,cAAe,QACvB4R,SAAU4F,EAAa,OAAA/R,EAAA,MAAWsR,EAAmBC,GAAqB,OAAAvR,EAAA,MAAWwR,EAAWC,MAIpGK,EAASlY,EAAE0V,EAAK,CACdtW,MAAO,CACLkW,QAASlM,EAAOpH,QAAU,OAE3B,CAAChC,EAAE,MAAO,CACXU,MAAO,CACLpB,KAAM,QACN,YAAa,WAEd,CAAC4Y,MACJA,EAASlY,EAAEmT,EAAK,CACd1S,YAAa,oBACbE,MAAO,CAAC,eAAWuU,GAEnBA,EAAa,KAAM,aAAeA,GAClCxU,MAAO,eAAWyU,GAElBA,EAAY,KAAM,aAAeA,EACjCtW,IAAKsZ,EAAa,uBAAyB,eAC1C,CAACD,IAGN,OAAOA,M,wEC3DF,GAAwB,SAASE,EAAsBtZ,GAChE,OAAI,eAAkBA,GACb,GAKL,eAASA,KAAW,eAAOA,GACtB,eAAKA,GAAOuZ,OAClBC,KAAI,SAAUC,GACb,OAAOH,EAAsBtZ,EAAMyZ,OAClC7U,QAAO,SAAU8U,GAClB,QAASA,KAEVnR,KAAK,KAGD,eAASvI,IChClB,SAAS,GAAQuE,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAGpM,IAAI6Z,GAAyB,gBACzBC,GAAwB,cACxBC,GAAyB,eAGzBC,GAAqB,CAACH,GAAwBC,GAAuBC,IAAwBE,QAAO,SAAUtN,EAAQ1M,GAC/H,OAAO,GAAc,GAAc,GAAI0M,GAAS,GAAI,GAAgB,GAAI1M,GAAK,MAC5E,IAGQia,GAAe,CAAC,IAAK,MAChC,SAAU,WACV,uCAAwC,wCAAyC,0CAA2C,gBAAiB,kBAAmB,kBAAmB,oBAAqB,6CAA6CzR,KAAK,KCd/O,GAAc,SAAqB0R,EAAKC,EAAcC,GAC/D,IAAIC,EAAYpX,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,GAIhFqX,EAAe,eAAKD,GAAWL,QAAO,SAAUtN,EAAQ1M,GAC1D,IAAIua,EAAQF,EAAUra,GAClBwa,EAAoBD,EAAMC,kBAC1BC,EAAY,eAAWD,GAE3BA,EAAoBA,EAEpBD,EAAME,UAAY,KAMlB,OAJI,eAAWA,KACb/N,EAAO1M,GAAOya,EAAUP,EAAIla,GAAMA,EAAKka,IAGlCxN,IACN,eAAMwN,IAKLQ,EAAc,eAAKJ,GAAczV,QAAO,SAAU7E,GACpD,OAAQ+Z,GAAmB/Z,MAAU,eAAQma,IAAiBA,EAAahX,OAAS,GAAK,OAAAwX,EAAA,MAAcR,EAAcna,OAAW,eAAQoa,IAAkBA,EAAcjX,OAAS,IAAM,OAAAwX,EAAA,MAAcP,EAAepa,OAEtN,OAAO,eAAKsa,EAAcI,IC3BjB,GAAwB,SAA+BR,EAAKC,EAAcC,EAAeC,GAClG,OAAO,eAASH,GAAO,GAAsB,GAAYA,EAAKC,EAAcC,EAAeC,IAE3F,ICRF,SAASO,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,KAElI,SAASA,KAAuB,MAAM,IAAIC,UAAU,wIAEpD,SAASF,GAA4B/H,EAAGkI,GAAU,GAAKlI,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOmI,GAAkBnI,EAAGkI,GAAS,IAAItI,EAAI3S,OAAOmb,UAAUC,SAASC,KAAKtI,GAAG5K,MAAM,GAAI,GAAiE,MAAnD,WAANwK,GAAkBI,EAAEuI,cAAa3I,EAAII,EAAEuI,YAAYxa,MAAgB,QAAN6R,GAAqB,QAANA,EAAoB4I,MAAMC,KAAKzI,GAAc,cAANJ,GAAqB,2CAA2CzK,KAAKyK,GAAWuI,GAAkBnI,EAAGkI,QAAzG,GAE7S,SAASJ,GAAiBY,GAAQ,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAY3b,OAAOyb,GAAO,OAAOF,MAAMC,KAAKC,GAE1H,SAASb,GAAmBD,GAAO,GAAIY,MAAMK,QAAQjB,GAAM,OAAOO,GAAkBP,GAEpF,SAASO,GAAkBP,EAAKkB,IAAkB,MAAPA,GAAeA,EAAMlB,EAAI1X,UAAQ4Y,EAAMlB,EAAI1X,QAAQ,IAAK,IAAIgC,EAAI,EAAG6W,EAAO,IAAIP,MAAMM,GAAM5W,EAAI4W,EAAK5W,IAAO6W,EAAK7W,GAAK0V,EAAI1V,GAAM,OAAO6W,EAkBhL,IAAIC,GAA0B,8FAEnB,GAAQ,CACjBpX,OAAQ,eAAS,GAAG9C,OAAO6Y,GAAmB,QAAgC,CAAC,UAC/EsB,eAAgB,eAAS,OAAyB,GAAG,SAAUjc,GAC7D,OAAO,OAAUmI,KAAKR,OAAO3H,OAE/Bkc,eAAgB,eAAS,QACzBC,oBAAqB,eAAS,OAAiB,IAC/CC,qBAAsB,eAAS,OAAiB,KAIvCC,GAAiB,aAAIvb,OAAO,CACrCR,MAAO,GACPe,KAAM,WACJ,MAAO,CAELgY,YAAY,EAGZiD,YAAata,KAAKua,eAAeva,KAAK4C,UAG1CsI,SAAU,CACRsP,sBAAuB,WACrB,OAAO,eAAOxa,KAAKma,qBAAuB,IAAIvX,OAAO0D,EAAA,OAEvDmU,uBAAwB,WACtB,OAAO,eAAOza,KAAKoa,sBAAwB,IAAIxX,OAAO0D,EAAA,OAExDoU,uBAAwB,WACtB,IAAIC,EAAK,eAAU3a,KAAKia,eAAgB,GAOxC,OAJIU,EAAK,GACP,OAAAC,EAAA,MAAKZ,GAAyB,SAGzBW,GAETE,eAAgB,WACd,OAAO7a,KAAK8a,eAAgB9a,KAAK+a,qBAGnCC,cAAe,WACb,IAAIC,EAAgBjb,KAAKib,cACrBC,EAAalb,KAAKkb,WAClBZ,EAActa,KAAKsa,YACvB,MAAO,CACLW,cAAeA,EACfC,WAAYA,EACZZ,YAAaA,IAIjBa,cAAe,WAEb,IAAIjB,EAAiBla,KAAKka,eAC1B,OAAO,eAAgBA,GAAkBA,EAAiB,MAI5De,cAAe,WAEb,IAAI5S,EAAQrI,KAAKkb,WACbE,EAAWpb,KAAKsa,YAIhBe,EAAWrb,KAAK6a,eAAiB7a,KAAKsb,gBAAgBtb,KAAKmb,cAAeC,IAAapb,KAAKub,uBAAuBH,GAAY,KAEnI,OAAOC,GAAYhT,EAAMnH,OAAS,EAAImH,EAAMzF,OAAOyY,GAAYhT,IAGnEuN,MAAO,CAEL8E,uBAAwB,SAAgC7E,IACjDA,GAAY7V,KAAKwb,gBACpBxb,KAAKyb,mBACLzb,KAAKsa,YAActa,KAAKua,eAAeva,KAAK4C,UAIhDA,OAAQ,CAGN8Y,MAAM,EACNC,QAAS,SAAiBC,GACxB,IAAIrS,EAAQvJ,KAER6b,EAAU7b,KAAK0a,uBACnB1a,KAAKyb,mBAEDI,GAAWA,EAAU,EAEvB7b,KAAKwb,cAAgBM,YAAW,WAC9BvS,EAAM+Q,YAAc/Q,EAAMgR,eAAeqB,KACxCC,GAGH7b,KAAKsa,YAActa,KAAKua,eAAeqB,KAM7CZ,cAAe,SAAuB7b,GACpC,IAAI8b,EAAgB9b,EAAK8b,cACrBX,EAAcnb,EAAKmb,YAEnBjD,GAAa,EAEZiD,EAGM,eAAWA,EAAa,KAAO,eAAWA,EAAa,IAEhEjD,GAAa,EACJiD,IAETjD,GAAa,GANbA,GAAa,EASXA,GACFrX,KAAK0R,MAAM,OAAqBuJ,EAAeA,EAAc/Z,QAG/DlB,KAAKqX,WAAaA,GAEpBA,WAAY,SAAoBxB,EAAUC,GACxC,IAAiB,IAAbD,IAAmC,IAAbC,EAAmB,CAG3C,IAAIoF,EAAalb,KAAKkb,WACtBlb,KAAK0R,MAAM,OAAqBwJ,EAAYA,EAAWha,WAI7DkI,QAAS,WACP,IAAIa,EAASjK,KAGbA,KAAKwb,cAAgB,KAMrBxb,KAAK6H,WAAU,WACboC,EAAOoN,WAAazF,QAAQ3H,EAAOqQ,iBAGvCyB,cAAe,WACb/b,KAAKyb,oBAEPnS,QAAS,CACPmS,iBAAkB,WAChBO,aAAahc,KAAKwb,eAClBxb,KAAKwb,cAAgB,MAEvBjB,eAAgB,SAAwBa,GAEtC,OAAIpb,KAAK6a,gBAAmB7a,KAAKmb,eAAmB,eAASC,IAAa,eAASA,GAS5E,eAAUA,GANR,IASXE,gBAAiB,SAAyBD,EAAUD,GAOlD,IAAKC,IAAa,eAAWA,KAAcD,GAAY,eAAWA,EAAU,KAAO,eAAWA,EAAU,IACtG,OAAO,KAIT,IAAI3a,EAAK,SAAY+H,GAGnB,OAAO6S,EAAS7S,EAAM4S,IAIxB,OAAO3a,GAET8a,uBAAwB,SAAgCH,GACtD,IAAIzQ,EAAS3K,KAIb,IAAKob,IAAc,eAASA,KAAa,eAASA,GAEhD,OAAO,KAIT,IAAIa,EAASb,EAEb,GAAI,eAASa,GAAS,CAGpB,IAAIC,EAAU,eAAad,GAAUe,QAAQ,OAAW,QAGxDF,EAAS,IAAIrN,OAAO,KAAK9O,OAAOoc,EAAS,MAAO,KAIlD,IAAIzb,EAAK,SAAY+H,GAenB,OADAyT,EAAOG,UAAY,EACZH,EAAO9V,KAAK,GAAsBqC,EAAMmC,EAAO6P,sBAAuB7P,EAAO8P,uBAAwB9P,EAAO0R,qBAIrH,OAAO5b,M,0BCpQT,GAAe,SAAsB1C,EAAKC,GAC5C,IAAIsa,EAAQ,KA0BZ,OAxBI,eAASta,GAEXsa,EAAQ,CACNva,IAAKA,EACLQ,MAAOP,GAEA,eAAWA,GAEpBsa,EAAQ,CACNva,IAAKA,EACLya,UAAWxa,GAEJ,eAASA,IAClBsa,EAAQ,eAAMta,GACdsa,EAAMva,IAAMua,EAAMva,KAAOA,IACN,IAAVC,IAITsa,EAAQ,CACNva,IAAKA,IAIFua,GAKE,GAAkB,SAAyBgE,EAAYjU,GAChE,IAAIC,EAAS,GA0Bb,GAxBI,eAAQgU,IAEVA,EAAW1Z,OAAO0D,EAAA,MAAUlD,SAAQ,SAAUmZ,GAC5C,GAAI,eAASA,GACXjU,EAAOvF,KAAK,CACVhF,IAAKwe,EACLhe,MAAO,eAAUge,UAEd,GAAI,eAASA,IAAMA,EAAExe,KAAO,eAASwe,EAAExe,KAE5CuK,EAAOvF,KAAK,eAAMwZ,SACb,GAAI,eAASA,IAAyB,IAAnB,eAAKA,GAAGrb,OAAc,CAE9C,IAAInD,EAAM,eAAKwe,GAAG,GACdjE,EAAQ,GAAava,EAAKwe,EAAExe,IAE5Bua,GACFhQ,EAAOvF,KAAKuV,OAOE,IAAlBhQ,EAAOpH,QAAgB,eAAQmH,IAAUA,EAAMnH,OAAS,EAAG,CAC7D,IAAIsb,EAASnU,EAAM,GACnB,eAAKmU,GAAQpZ,SAAQ,SAAUqU,GACxBK,GAAmBL,IACtBnP,EAAOvF,KAAK,CACVhF,IAAK0Z,EACLlZ,MAAO,eAAUkZ,QAOzB,IAAIgF,EAAO,GACX,OAAOnU,EAAO1F,QAAO,SAAU2Z,GAC7B,OAAKE,EAAKF,EAAExe,OACV0e,EAAKF,EAAExe,MAAO,EACdwe,EAAEhe,MAAQ,eAASge,EAAEhe,OAASge,EAAEhe,MAAQ,eAAUge,EAAExe,MAC7C,OCnFb,SAAS,GAAQwE,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAc3M,IAAI4e,GAAkB,gBAAe,QAAS,CAC5C/d,KAAM,OACNge,aAAc,KAEZC,GAAaF,GAAgBG,MAC7BC,GAAaJ,GAAgBpe,MAC7Bye,GAAkBL,GAAgBnV,KAClCyV,GAAmBN,GAAgBlN,MAI5B,GAAQ,eAAS,GAAc,GAAc,GAAIsN,IAAa,GAAI,GAAgB,CAC3FxU,OAAQ,eAAS,OAAiB,MAElCD,MAAO,eAAS,OAAiB,IAGjC4U,WAAY,eAAS,SACpBF,GAAiB,eAAS,OAAiB,OAGnCG,GAAa,aAAIpe,OAAO,CACjCsN,OAAQ,CAACwQ,IACTte,MAAO,GACPe,KAAM,WACJ,IAAIgJ,EAAQrI,KAAKqI,MACjB,MAAO,CAGL6S,WAAY,eAAQ7S,GAASA,EAAMjC,QAAU,KAGjD8E,SAAU,CACRgJ,eAAgB,WAGd,OAAO,GAAgBlU,KAAKsI,OAAQtI,KAAKkb,aAE3CmB,kBAAmB,WAKjB,IAAIzV,EAAU5G,KAAK4G,QACnB,OAAO5G,KAAKkU,eAAe6D,QAAO,SAAUja,EAAKye,GAI/C,GAFAze,EAAIye,EAAExe,KAAO,eAAMwe,GAEfA,EAAE/D,UAAW,CAEf,IAAIA,EAAY+D,EAAE/D,UAEd,eAASA,IAAc,eAAW5R,EAAQ4R,IAC5CA,EAAY5R,EAAQ4R,GACV,eAAWA,KAErBA,OAAY1T,GAIdhH,EAAIye,EAAExe,KAAKya,UAAYA,EAGzB,OAAO1a,IACN,KAELqZ,cAAe,WAEb,OAAQnX,KAAKmd,gBAAkBnd,KAAKod,aAAepd,KAAKib,eAAiBjb,KAAKkb,YAE9E,IAAI9U,SAENS,QAAS,WAEP,MAAO,CACLjE,OAAQ5C,KAAKsa,YACb+C,OAAQrd,KAAKsd,YACbC,SAAUvd,KAAKwd,cACfC,QAAS,OAAAC,GAAA,MAAQ,eAAU1d,KAAKyd,QAAS,GAAI,GAC7CE,YAAa,OAAAD,GAAA,MAAQ,eAAU1d,KAAK2d,YAAa,GAAI,GACrDC,OAAQ5d,KAAK4d,UAInBhI,MAAO,CACLvN,MAAO,SAAewN,GAEpB7V,KAAKkb,WAAa,eAAQrF,GAAYA,EAASzP,QAAU,IAG3D+Q,cAAe,SAAuBtB,EAAUC,GACzC,eAAWD,EAAUC,IACxB9V,KAAK0R,MAAMsL,GAAkBnH,IAIjChP,QAAS,SAAiBgP,EAAUC,GAE7B,eAAWD,EAAUC,IACxB9V,KAAK0R,MAAM,OAA4BmE,KAI7C9I,QAAS,WAEP/M,KAAK0R,MAAMsL,GAAkBhd,KAAKmX,gBAEpC7N,QAAS,CAEPuU,kBAAmB,SAA2B9f,GAC5C,IAAIua,EAAQtY,KAAKqc,kBAAkBte,GAGnC,OAAOua,EAAQA,EAAME,eAAY1T,MC7H5B,GAAQ,CACjB6Y,YAAa,eAAS,OAAyB,GAC/CF,QAAS,eAAS,OAAyB,IAIlCK,GAAkB,aAAIhf,OAAO,CACtCR,MAAO,GACP4M,SAAU,CACR6S,YAAa,WACX,OAAO/d,KAAK8a,eAAgB9a,KAAKge,kBAEnCb,eAAgB,WACd,IAAI9U,EAAQrI,KAAKod,aAAepd,KAAKib,eAAiBjb,KAAKkb,YAAc,GACrEyC,EAAc,OAAAD,GAAA,MAAQ,eAAU1d,KAAK2d,YAAa,GAAI,GACtDF,EAAU,OAAAC,GAAA,MAAQ,eAAU1d,KAAKyd,QAAS,GAAI,GAQlD,OANIzd,KAAK+d,aAAeN,IAEtBpV,EAAQA,EAAMjC,OAAOuX,EAAc,GAAKF,EAASE,EAAcF,IAI1DpV,M,aCjBT4V,GAA4B,eAAiB,QAAY,QACzDC,GAAiC,eAAuB,QAAY,QAE7D,GAAQ,CAGjBN,OAAQ,eAAS,QAEjBvV,MAAO,eAAS,OAA0B,IAC1C0S,oBAAqB,eAAS,QAAmB,GACjDiD,iBAAkB,eAAS,QAAmB,GAC9CG,kBAAmB,eAAS,QAAmB,IAItCC,GAAgB,aAAItf,OAAO,CACpCsN,OAAQ,CAAC,SACT9N,MAAO,GACP4M,SAAU,CACR4P,YAAa,WACX,OAAO,eAAW9a,KAAKqI,QAEzBgW,uBAAwB,WAKtB,IAAIC,EAAM,CACRV,OAAQ5d,KAAK4d,OACbhb,OAAQ,KACRya,OAAQ,KACRE,SAAU,KACVE,QAAS,KACTE,YAAa,MAkBf,OAfK3d,KAAK+a,sBAERuD,EAAI1b,OAAS5C,KAAKsa,aAGfta,KAAKme,oBACRG,EAAIjB,OAASrd,KAAKsd,YAClBgB,EAAIf,SAAWvd,KAAKwd,eAGjBxd,KAAKge,mBACRM,EAAIb,QAAUzd,KAAKyd,QACnBa,EAAIX,YAAc3d,KAAK2d,aAGlB,eAAMW,KAGjB1I,MAAO,CAELvN,MAAO,SAAewN,IAEhB7V,KAAK8a,aAAe,eAAWjF,KACjC7V,KAAK6H,UAAU7H,KAAKue,kBAGxBF,uBAAwB,SAAgCxI,EAAUC,GAE3D,eAAWD,EAAUC,IACxB9V,KAAK6H,UAAU7H,KAAKue,mBAI1BxR,QAAS,WACP,IAAIxD,EAAQvJ,MAGRA,KAAK8a,aAAiB9a,KAAKkb,YAAyC,IAA3Blb,KAAKkb,WAAWha,QAE3DlB,KAAKue,kBAIPve,KAAKwe,aAAaN,IAAgC,SAAU7Y,GACtDA,IAAOkE,EAAMlE,IAAMA,IAAOkE,GAC5BA,EAAMkV,cAIZnV,QAAS,CACPmV,QAAS,WACP,IAAIpW,EAAQrI,KAAKqI,MACboW,EAAUze,KAAKye,QAEnBze,KAAK0e,KAAK,OAAsBD,GAE5Bze,KAAK2V,aAEH3V,KAAK0V,WAAa1V,KAAK8a,aAEzB9a,KAAKiH,IAAI,OAAsBwX,IAGjCze,KAAK2e,gBAED3e,KAAK8a,YACP9a,KAAK6H,UAAU7H,KAAKue,iBAGpBve,KAAKkb,WAAa,eAAQ7S,GAASA,EAAMjC,QAAU,KAKzDwY,kBAAmB,SAA2BvW,GAC5CrI,KAAKkb,WAAa,eAAQ7S,GAASA,EAAMjC,QAAU,GACnDpG,KAAK0V,WAAY,EACjB1V,KAAK0R,MAAM,QAEP1R,KAAKqF,IACPrF,KAAK6e,WAAWZ,GAA2Bje,KAAKqF,KAGpDkZ,gBAAiB,WACf,IAAItU,EAASjK,KAGRA,KAAK8a,cAMN9a,KAAK2V,aAEP3V,KAAK6H,UAAU7H,KAAKye,UAKtBze,KAAK0V,WAAY,EAEjB1V,KAAK6H,WAAU,WACb,IAEE,IAAIxI,EAAO4K,EAAO5B,MAAM4B,EAAOpD,QAASoD,EAAO2U,mBAE3C,eAAUvf,GAEZA,EAAKsK,MAAK,SAAUtB,GAElB4B,EAAO2U,kBAAkBvW,MAElB,eAAQhJ,GAEjB4K,EAAO2U,kBAAkBvf,GAGG,IAAxB4K,EAAO5B,MAAMnH,SAMf,OAAA0Z,EAAA,MAAK,kFAAmF,SACxF3Q,EAAOyL,WAAY,GAGvB,MAAO5E,GAKP,OAAA8J,EAAA,MAAK,4BAA4B9a,OAAOgR,EAAE/R,KAAM,MAAMe,OAAOgR,EAAE9I,QAAS,KAAM,SAC9EiC,EAAOyL,WAAY,EAEnBzL,EAAOyU,KAAK,OAAsBzU,EAAOwU,mBCxLnD,SAAS,GAAgB3gB,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAa3M,ICbIghB,GAAQC,GDaRC,GAAe,CAAC,QAAS,QAAS,UAE3B,GAAQ,CAEjBC,gBAAiB,eAAS,QAAmB,GAC7CC,WAAY,eAAS,OAAkB,SAAS,SAAUlhB,GACxD,OAAO,OAAA0a,EAAA,MAAcsG,GAAchhB,MAErCmhB,WAAY,eAAS,QAAmB,GACxCC,gBAAiB,eAAS,OAAkB,WAInCC,GAAkB,aAAIvgB,OAAO,CACtCR,MAAO,GACPe,KAAM,WACJ,MAAO,CACLigB,aAAc,GACdC,iBAAkB,IAGtBrU,SAAU,CACRsU,aAAc,WACZ,OAAOxf,KAAKmf,YAAcnf,KAAKkf,YAEjCO,sBAAuB,WACrB,OAAOzf,KAAKwf,eAAiBxf,KAAKif,iBAEpCS,uBAAwB,WACtB,OAAO,GAETC,uBAAwB,WACtB,IAAIL,EAAetf,KAAKsf,aACxB,OAAOtf,KAAKwf,cAAgBF,GAAgBA,EAAape,OAAS,GAAKoe,EAAaM,KAAKtZ,EAAA,OAE3FuZ,wBAAyB,WACvB,OAAO7f,KAAKwf,cAAgB,OAAA9G,EAAA,MAAc,CAAC,QAAS,SAAU1Y,KAAKkf,aAErEY,uBAAwB,WACtB,IAAI3gB,EAEAqgB,EAAexf,KAAKwf,aACxB,OAAOrgB,EAAO,CACZ,qBAAsBqgB,GACrB,GAAgBrgB,EAAM,kBAAkBW,OAAOE,KAAKkf,YAAaM,GAAe,GAAgBrgB,EAAM,oBAAqBa,KAAK2f,wBAAyB,GAAgBxgB,EAAM,8BAA+BqgB,IAAiBxf,KAAKyf,uBAAwBtgB,GAEjQ4gB,qBAAsB,WACpB,MAAO,CAIL,uBAAyB/f,KAAKwf,aAAsBxf,KAAK6f,wBAA0B,OAAS,QAA/C,QAInDjK,MAAO,CACLuB,cAAe,SAAuBtB,EAAUC,GAE9C,IAAIkK,GAAQ,EAEZ,GAAIhgB,KAAKwf,cAAgBxf,KAAKsf,aAAape,OAAS,EAAG,CAErD8e,EAAQ,eAAQnK,IAAa,eAAQC,IAAaD,EAAS3U,SAAW4U,EAAS5U,OAE/E,IAAK,IAAIgC,EAAI,EAAG8c,GAAS9c,EAAI2S,EAAS3U,OAAQgC,IAE5C8c,EAAQ,eAAW,GAAYnK,EAAS3S,IAAK,GAAY4S,EAAS5S,KAIjE8c,GACHhgB,KAAK2e,iBAGTQ,WAAY,SAAoBtJ,GAC9B7V,KAAK2e,gBACL3e,KAAKigB,qBAAqBpK,IAE5BqJ,WAAY,WACVlf,KAAK2e,iBAEPc,sBAAuB,SAA+B5J,GACpD7V,KAAK2e,gBACL3e,KAAKigB,sBAAsBpK,IAE7ByJ,aAAc,SAAsBY,EAAepK,GACjD,IAAIvM,EAAQvJ,KAEZ,GAAIA,KAAKwf,eAAiB,eAAWU,EAAepK,GAAW,CAC7D,IAAIzN,EAAQ,GAEZ6X,EAAc9c,SAAQ,SAAUsU,EAAGyI,GAC7BzI,GACFrP,EAAMtF,KAAKwG,EAAM4N,cAAcgJ,OAInCngB,KAAK0R,MAAM,OAAyBrJ,MAI1C+X,YAAa,WAEPpgB,KAAKwf,cACPxf,KAAKigB,sBAAqB,IAG9B3W,QAAS,CAEP+W,UAAW,SAAmB9X,GAE5B,GAAIvI,KAAKwf,cAAgB,eAASjX,IAAUA,GAAS,GAAKA,EAAQvI,KAAKmX,cAAcjW,SAAWlB,KAAKsgB,cAAc/X,GAAQ,CACzH,IAAI+W,EAAetf,KAAK6f,wBAA0B7f,KAAKsf,aAAalZ,QAAU,GAC9EkZ,EAAa/W,IAAS,EACtBvI,KAAKugB,qBAAuB,EAC5BvgB,KAAKsf,aAAeA,IAGxBkB,YAAa,SAAqBjY,GAEhC,GAAIvI,KAAKwf,cAAgB,eAASjX,IAAUvI,KAAKsgB,cAAc/X,GAAQ,CACrE,IAAI+W,EAAetf,KAAKsf,aAAalZ,QACrCkZ,EAAa/W,IAAS,EACtBvI,KAAKugB,qBAAuB,EAC5BvgB,KAAKsf,aAAeA,IAGxBmB,cAAe,WACb,IAAIvf,EAASlB,KAAKmX,cAAcjW,OAE5BlB,KAAKwf,cAAgBte,EAAS,IAChClB,KAAKugB,qBAAuB,EAC5BvgB,KAAKsf,aAAetf,KAAK6f,wBAA0B,eAAY3e,GAAQ,GAAQ,EAAC,KAGpFof,cAAe,SAAuB/X,GAEpC,SAAU,eAASA,KAAUvI,KAAKsf,aAAa/W,KAEjDoW,cAAe,WAEb3e,KAAKugB,qBAAuB,EAC5BvgB,KAAKsf,aAAe,IAGtBoB,qBAAsB,SAA8BnY,GAClD,GAAIvI,KAAKwf,cAAgBxf,KAAKsgB,cAAc/X,GAAQ,CAClD,IAAI3J,EAAUoB,KAAKof,gBACnB,OAAO,GAAgB,CACrB,wBAAwB,GACvB,GAAGtf,OAAOE,KAAK2gB,KAAO,KAAO,QAAS,KAAK7gB,OAAOlB,GAAUA,GAGjE,MAAO,IAETgiB,mBAAoB,SAA4BrY,GAC9C,MAAO,CACL,gBAAkBvI,KAAKwf,aAAsBxf,KAAKsgB,cAAc/X,GAAS,OAAS,QAA5C,OAG1C0X,qBAAsB,SAA8Btf,GAClD,IAAIkgB,EAASlgB,IAAOX,KAAKif,gBAAkB,MAAQ,OAEnDjf,KAAK6gB,GAAQ,OAAwB7gB,KAAK8gB,kBAE1C9gB,KAAK6gB,GAAQ,OAAqB7gB,KAAK2e,eACvC3e,KAAK6gB,GAAQ,OAA4B7gB,KAAK2e,gBAEhDmC,iBAAkB,SAA0BtY,EAAMD,EAAOiH,GAEvD,GAAKxP,KAAKwf,eAAgBxf,KAAKif,gBAA/B,CAMA,IAAIC,EAAalf,KAAKkf,WAClBK,EAAkBvf,KAAKuf,gBACvBD,EAAetf,KAAKsf,aAAalZ,QACjC2a,GAAYzB,EAAa/W,GAE7B,GAAmB,WAAf2W,EACFI,EAAe,QACV,GAAmB,UAAfJ,EACT,GAAIK,GAAmB,GAAK/P,EAAMwR,SAAU,CAE1C,IAAK,IAAIb,EAAM,OAAAzC,GAAA,MAAQ6B,EAAiBhX,GAAQ4X,GAAO,OAAAzC,GAAA,MAAQ6B,EAAiBhX,GAAQ4X,IACtFb,EAAaa,IAAO,EAGtBY,GAAW,OAELvR,EAAMyR,SAAWzR,EAAM0R,UAE3B5B,EAAe,GACfyB,GAAW,GAGb/gB,KAAKuf,gBAAkBwB,EAAWxY,GAAS,EAI/C+W,EAAa/W,GAASwY,EACtB/gB,KAAKsf,aAAeA,OA/BlBtf,KAAK2e,oB,0BEpLT,GAAiB,SAAwB3gB,GAC3C,OAAI,eAAkBA,GACb,GAGL,eAAUA,GACL,eAAQA,EAAOA,GAGjBA,GAYE,GAAqB,SAA4BiT,EAAGkQ,GAC7D,IAAIhiB,EAAO6B,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,GAC3EogB,EAAcjiB,EAAKke,OACnBA,OAAyB,IAAhB+D,EAAyB,KAAOA,EACzCC,EAAiBliB,EAAKqZ,UACtBA,OAA+B,IAAnB6I,EAA4B,KAAOA,EAC/CC,EAAcniB,EAAKoiB,OACnBA,OAAyB,IAAhBD,OAAyBxc,EAAYwc,EAC9CE,EAAqBriB,EAAKsiB,cAC1BA,OAAuC,IAAvBD,EAAgC,GAAKA,EACrDE,EAAgBviB,EAAKwiB,SACrBA,OAA6B,IAAlBD,GAAmCA,EAG9CE,EAAK,OAAAnY,GAAA,MAAIwH,EAAGoM,EAAQ,MACpBwE,EAAK,OAAApY,GAAA,MAAI0X,EAAG9D,EAAQ,MAaxB,OAXI,eAAW7E,KACboJ,EAAKpJ,EAAUoJ,EAAIvE,EAAQpM,GAC3B4Q,EAAKrJ,EAAUqJ,EAAIxE,EAAQ8D,IAM7BS,EAAK,GAAeA,GACpBC,EAAK,GAAeA,GAEhB,eAAOD,IAAO,eAAOC,IAAO,eAASD,IAAO,eAASC,GAGhDD,EAAKC,GAAM,EAAID,EAAKC,EAAK,EAAI,EAC3BF,GAAmB,KAAPC,GAAoB,KAAPC,EAE3B,EACEF,GAAmB,KAAPC,GAAoB,KAAPC,GAE1B,EAIH,GAAsBD,GAAIE,cAAc,GAAsBD,GAAKN,EAAQE,IDjEpF,SAAS,GAAQlf,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAY3M,IAAIikB,GAA0B,SAC1BC,GAA2B,QAA0BD,GACrDE,GAA4B,WAC5BC,GAA6B,QAA0BD,GACvDE,GAAqB,MACrBC,GAAsB,OACtBC,GAAsB,OACtBC,GAAkB,CAACH,GAAoBC,GAAqBC,IAErD,IAASvD,GAAS,CAC3ByD,aAAc,eAAS,OAAkB,2BACzCC,eAAgB,eAAS,OAAkB,0BAC3CC,cAAe,eAAS,OAAkB,4BAC1CC,gBAAiB,eAAS,QAAmB,GAC7CC,eAAgB,eAAS,QAAmB,GAK5CC,YAAa,eAAS,QAAmB,IACxC,GAAgB9D,GAAQiD,GAAyB,eAAS,SAAoB,GAAgBjD,GAAQ,cAAe,eAAS,SAAsB,GAAgBA,GAAQ,oBAAqB,eAAS,SAA0B,GAAgBA,GAAQ,qBAAsB,eAAS,OAAkB,CAC9S+D,SAAS,KACN,GAAgB/D,GAAQmD,GAA2B,eAAS,QAAmB,IAAS,GAAgBnD,GAAQ,gBAAiB,eAAS,OAAkBqD,IAAoB,SAAUnkB,GAC7L,OAAO,OAAA0a,EAAA,MAAc4J,GAAiBtkB,OACnC,GAAgB8gB,GAAQ,eAAgB,eAAS,QAAmB,IAAS,GAAgBA,GAAQ,eAAgB,eAAS,QAAmB,IAASA,IAGpJgE,GAAe,aAAIhkB,OAAO,CACnCR,MAAO,GACPe,KAAM,WACJ,MAAO,CACLie,YAAatd,KAAK+hB,KAA4B,GAC9CvE,cAAexd,KAAKiiB,MAA8B,IAGtD/W,SAAU,CACR6X,aAAc,WACZ,OAAO/iB,KAAK8a,cAAgB9a,KAAKme,mBAAqBne,KAAK2iB,gBAE7DK,WAAY,WACV,OAAOhjB,KAAKkU,eAAe0L,MAAK,SAAUrD,GACxC,OAAOA,EAAEpT,aAKbiU,YAAa,WACX,IAAIC,EAASrd,KAAKsd,YACdC,EAAWvd,KAAKwd,cAChB+D,EAASvhB,KAAKijB,kBACdtB,EAAW3hB,KAAKkjB,aAChBC,EAAcnjB,KAAKmjB,YACnBJ,EAAe/iB,KAAK+iB,aACpB1a,GAASrI,KAAKib,eAAiBjb,KAAKkb,YAAc,IAAI9U,QAEtDqb,EAAgB,GAAc,GAAc,GAAIzhB,KAAKojB,oBAAqB,GAAI,CAChFC,MAAO,SAGT,GAAIhG,GAAU0F,EAAc,CAC1B,IAAIzK,EAAQtY,KAAKqc,kBAAkBgB,IAAW,GAC1CiG,EAAkBhL,EAAMgL,gBACxB9K,EAAY,eAAW8K,GAE3BA,EAAkBA,EAAkBtjB,KAAK6d,kBAAkBR,QAAUvY,EAErE,OAAO,gBAAWuD,GAAO,SAAU4I,EAAGkQ,GACpC,IAAI1W,EAAS,KAsBb,OApBI,eAAW0Y,KAIb1Y,EAAS0Y,EAAYlS,EAAGkQ,EAAG9D,EAAQE,EAAU/E,EAAWiJ,EAAeF,KAKrE,eAAkB9W,KAAsB,IAAXA,KAC/BA,EAAS,GAAmBwG,EAAGkQ,EAAG,CAChC9D,OAAQA,EACR7E,UAAWA,EACX+I,OAAQA,EACRE,cAAeA,EACfE,SAAUA,MAKNlX,GAAU,IAAM8S,GAAY,EAAI,MAI5C,OAAOlV,IAGXuN,OAAQmJ,GAAS,CAEfiE,WAAY,SAAoBnN,GAC1BA,EACE7V,KAAKgjB,YACPhjB,KAAKiH,IAAI,OAAyBjH,KAAKujB,YAGzCvjB,KAAK0e,KAAK,OAAyB1e,KAAKujB,cAG3C,GAAgBxE,GAAQkD,IAA2B,SAAUpM,GAE1DA,IAAa7V,KAAKwd,gBAItBxd,KAAKwd,cAAgB3H,IAAY,MAC/B,GAAgBkJ,GAAQgD,IAAyB,SAAUlM,GAEzDA,IAAa7V,KAAKsd,cAItBtd,KAAKsd,YAAczH,GAAY,OAC7B,GAAgBkJ,GAAQ,iBAAiB,SAAuBlJ,EAAUC,GAExED,IAAaC,GACf9V,KAAK0R,MAAMwQ,GAA4BrM,MAEvC,GAAgBkJ,GAAQ,eAAe,SAAqBlJ,EAAUC,GACpED,IAAaC,GACf9V,KAAK0R,MAAMsQ,GAA0BnM,MAErCkJ,IACJ3V,QAAS,WACHpJ,KAAKgjB,YACPhjB,KAAKiH,IAAI,OAAyBjH,KAAKujB,aAG3Cja,QAAS,CAGPia,WAAY,SAAoBxlB,EAAKua,EAAO9I,EAAOgU,GACjD,IAAIja,EAAQvJ,KAEZ,GAAKA,KAAKgjB,cAKNQ,IAAUxjB,KAAK0iB,iBAAnB,CAMA,IAAIe,GAAc,EAEdC,EAAsB,WACxB,IAAIC,EAAgBrL,EAAMqL,eAAiBpa,EAAMoa,cAE7CA,IAAkBxB,GACpB5Y,EAAMiU,eAAgB,EACbmG,IAAkBvB,KAC3B7Y,EAAMiU,eAAgB,IAM1B,GAAIlF,EAAMnP,SAAU,CAClB,IAAIya,GAAW5jB,KAAK+iB,cAAgBzK,EAAMsL,QAAUtL,EAAMsL,QAAU7lB,EAEhEiC,KAAKsd,cAAgBsG,EAEvB5jB,KAAKwd,eAAiBxd,KAAKwd,eAG3Bxd,KAAKsd,YAAcsG,EAEnBF,KAGFD,GAAc,OACLzjB,KAAKsd,cAAgBtd,KAAK4iB,cACnC5iB,KAAKsd,YAAc,GACnBoG,IACAD,GAAc,GAGZA,GAEFzjB,KAAK0R,MAAM,OAAyB1R,KAAK6G,WAI7Cgd,mBAAoB,SAA4B9lB,EAAKua,EAAOkL,GAC1D,MAAO,CAEL,yBAA0BlL,EAAMnP,UAAYnJ,KAAK8jB,gBAAkBN,GAAUxjB,KAAK0iB,mBAGtFqB,iBAAkB,SAA0BhmB,EAAKua,EAAOkL,GACtD,IAAKxjB,KAAKgjB,YAAcQ,GAAUxjB,KAAK0iB,gBAErC,MAAO,GAGT,IAAIvZ,EAAWmP,EAAMnP,SAEjB6a,EAAW7a,GAAYnJ,KAAKsd,cAAgBvf,EAAMiC,KAAKwd,cAAgB,aAAe,YAAcrU,EAAW,OAAS,KAE5H,MAAO,CACL,YAAa6a,IAGjBC,iBAAkB,SAA0BlmB,EAAKua,EAAOkL,GAEtD,IAAKxjB,KAAKgjB,YAAcQ,GAAUxjB,KAAK0iB,gBAErC,OAAO,KAGT,IAAIvZ,EAAWmP,EAAMnP,SAEjB+a,EAAe,GAEnB,GAAI/a,EACF,GAAInJ,KAAKsd,cAAgBvf,EAEvBmmB,EAAelkB,KAAKwd,cAAgBxd,KAAKuiB,aAAeviB,KAAKyiB,kBACxD,CAILyB,EAAelkB,KAAKwd,cAAgBxd,KAAKyiB,cAAgBziB,KAAKuiB,aAE9D,IAAIoB,EAAgB3jB,KAAK2jB,eAAiBrL,EAAMqL,cAE5CA,IAAkBxB,GACpB+B,EAAelkB,KAAKuiB,aACXoB,IAAkBvB,KAC3B8B,EAAelkB,KAAKyiB,oBAGdziB,KAAK4iB,cAEfsB,EAAelkB,KAAKsd,YAActd,KAAKwiB,eAAiB,IAI1D,OAAO,eAAK0B,IAAiB,SE1QnC,SAAS,GAAgBpmB,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAMpM,IAAI,GAAQ,CACjBqW,QAAS,eAAS,QAA0B,IAInCgQ,GAAe,aAAIrlB,OAAO,CACnCR,MAAO,GACP4M,SAAU,CACRiI,UAAW,WACT,IAAIgB,EAAUnU,KAAKmU,QAEnB,MAAmB,KAAZA,GAAwBA,GAEjCiQ,gBAAiB,WACf,OAA0B,IAAnBpkB,KAAKmT,WAEdkR,oBAAqB,WACnB,IAAID,EAAkBpkB,KAAKokB,gBAC3B,OAAO,GAAgB,CACrB,kBAAmBA,GAClB,mBAAmBtkB,OAAOE,KAAKmU,UAAWiQ,GAAmBpkB,KAAKmT,eC1B3E,SAAS,GAAQ5Q,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAYpM,IAAI,GAAQ,CACjBwmB,SAAU,eAAS,QAAmB,GACtCC,WAAY,eAAS,QAAmB,GACxCC,WAAY,eAAS,QAAmB,GACxC7D,KAAM,eAAS,QAAmB,GAClC8D,MAAO,eAAS,QAAmB,GACnC9gB,MAAO,eAAS,QAAmB,GACnC+gB,iBAAkB,eAAS,QAAmB,GAC9CC,SAAU,eAAS,QAAmB,GACtCC,WAAY,eAAS,QAA0B,GAC/CnmB,MAAO,eAAS,QAAmB,GAEnComB,aAAc,eAAS,QAA0B,GACjDC,QAAS,eAAS,QAAmB,GACrCC,WAAY,eAAS,QACrBxR,aAAc,eAAS,SAIdyR,GAAqB,aAAIlmB,OAAO,CACzCsN,OAAQ,CAACxM,EAAA,MACT2S,QAAS,WACP,MAAO,CACL0S,QAASjlB,OAKb2S,cAAc,EACdrU,MAAO,GACP4M,SAAU,CAERkI,aAAc,WACZ,IAAIwR,EAAa5kB,KAAK4kB,WAEtB,OADAA,EAA4B,KAAfA,GAA2BA,GACjC5kB,KAAKmT,WAAoByR,GAElCvR,eAAgB,WACd,IAAIwR,EAAe7kB,KAAK6kB,aAExB,OADAA,EAAgC,KAAjBA,GAA6BA,GACrC7kB,KAAKmT,WAAoB0R,GAElCK,eAAgB,WACd,IAAI9R,EAAepT,KAAKoT,aACxB,MAAO,CAACpT,KAAKqT,eAAiB,wBAA0B,IAAqB,IAAjBD,EAAwB,mBAAqBA,EAAe,oBAAoBtT,OAAOE,KAAK4kB,YAAc,IAAIhiB,OAAO0D,EAAA,OAEnL6e,cAAe,WACb,IAAI9R,EAAiBrT,KAAKqT,eAC1B,OAAOA,IAAmB,eAAUA,GAAkB,CACpD+R,UAAW/R,GACT,IAENgS,aAAc,WACZ,IAAI1hB,EAAQ3D,KAAK2D,MACb4P,EAAevT,KAAKuT,aAExB,OADA5P,EAAQ3D,KAAKslB,cAAgB3hB,EAAQA,GAAS3D,KAAKmX,cAAcjW,OAAS,IAAMlB,KAAK2V,aAC9E,CACP3V,KAAK+kB,WACL,CACE,gBAAiB/kB,KAAK8kB,QACtB,cAAenhB,EACf,aAAc3D,KAAK2gB,KACnB,iBAAkB3gB,KAAKskB,SACvB,mBAAoBtkB,KAAKukB,WACzB,WAAYvkB,KAAKvB,MAEjB8mB,OAAQvlB,KAAK2kB,SACb,gBAAiB3kB,KAAKykB,MACtB,sBAAuBzkB,KAAKwkB,WAC5B,6BAA8BxkB,KAAK0kB,kBAClCnR,EAAe,GAAGzT,OAAOE,KAAK2gB,KAAO,KAAO,QAAS,KAAK7gB,OAAOyT,GAAgB,GACpFvT,KAAKqkB,oBACLrkB,KAAK8f,yBAEP0F,WAAY,WACV,IAAInd,EAAQrI,KAAKmX,cACb8D,EAAgBjb,KAAKib,cACrB3S,EAAStI,KAAKkU,eACd6L,EAAuB/f,KAAK+f,qBAE5B0F,EAAM,EAAEzlB,KAAK6T,SAAW,IAAI,oBAAqB7T,KAAKoW,WAAWxT,OAAO0D,EAAA,MAAUC,KAAK,MAAQ,KAC/Fmf,EAAY1lB,KAAKslB,cAAgB,GAAK,CACxC,YAAatlB,KAAK2V,aAAe,OAAS,QAC1C,gBAAiB,eAASrN,EAAOpH,QACjC,mBAAoBukB,GAElBE,EAAWtd,GAAS4S,GAAiBA,EAAc/Z,OAASmH,EAAMnH,OAAS,eAAS+Z,EAAc/Z,QAAU,KAChH,OAAO,GAAc,GAAc,GAAc,CAG/C,gBAAiBykB,GAChB3lB,KAAK6T,SAAU,GAAI,CAEpBxO,GAAIrF,KAAKqW,SACT7X,KAAM,SACLknB,GAAY3F,KAGnB9gB,OAAQ,SAAgBC,GACtB,IAAIgmB,EAAiBllB,KAAKklB,eACtB5O,EAAgBtW,KAAKsW,cACrBI,EAAiB1W,KAAK0W,eACtBkP,EAAc5lB,KAAK4lB,YACnBC,EAAc7lB,KAAK6lB,YACnBC,EAAc9lB,KAAK8lB,YACnBxQ,EAAW,GAEXtV,KAAKslB,cACPhQ,EAASvS,KAAK/C,KAAK+T,kBAGnBuB,EAASvS,KAAKuT,EAAgBA,IAAkB,MAEhDhB,EAASvS,KAAK2T,EAAiBA,IAAmB,MAElDpB,EAASvS,KAAK6iB,EAAcA,IAAgB,MAE5CtQ,EAASvS,KAAK8iB,EAAcA,IAAgB,MAE5CvQ,EAASvS,KAAK+iB,EAAcA,IAAgB,OAI9C,IAAIC,EAAS7mB,EAAE,QAAS,CACtBS,YAAa,gBACbE,MAAOG,KAAKqlB,aACZzlB,MAAOI,KAAKwlB,WACZznB,IAAK,WACJuX,EAAS1S,OAAO0D,EAAA,OAEnB,OAAO4e,EAAehkB,OAAS,EAAIhC,EAAE,MAAO,CAC1CW,MAAOqlB,EACPc,MAAOhmB,KAAKmlB,cACZpnB,IAAK,QACJ,CAACgoB,IAAWA,K,aCtJnB,SAAS,GAAQxjB,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAUpM,IAAI,GAAQ,eAAsB,CACvCmoB,wBAAyB,eAAS,QAClCC,qBAAsB,eAAS,SAC9B,SAMQC,GAAsB,aAAIrnB,OAAO,CAC1CC,KAAM,QACNqN,OAAQ,CAACxM,EAAA,KAAY0S,EAAA,KAAgB,QACrCC,QAAS,WACP,MAAO,CACLG,gBAAiB1S,OAGrByS,OAAQ,CAENwS,QAAS,CACP/b,QAEA,WACE,MAAO,MAIbyJ,cAAc,EACdrU,MAAO,GACP4M,SAAU,CAER2H,QAAS,WACP,OAAO,GAGTK,OAAQ,WACN,OAAOlT,KAAKilB,QAAQtE,MAGtBxN,UAAW,WACT,OAAOnT,KAAKilB,QAAQ9R,WAGtBC,aAAc,WACZ,OAAOpT,KAAKilB,QAAQ7R,cAItBC,eAAgB,WACd,OAAO,GAKTC,gBAAiB,WACf,OAAQtT,KAAKmT,WAAanT,KAAKilB,QAAQJ,cAGzCtR,aAAc,WACZ,OAAOvT,KAAKilB,QAAQ1R,cAEtB6S,kBAAmB,WACjB,OAAOpmB,KAAKkmB,sBAAwBlmB,KAAKimB,yBAE3CI,WAAY,WACV,OAAO,GAAc,CACnB7nB,KAAM,YACLwB,KAAK6T,UAEVyS,WAAY,WACV,IAAIJ,EAAuBlmB,KAAKkmB,qBAChC,OAAOA,EAAuB,GAAc,GAAc,GAAIA,GAAuB,GAAI,CACvFxnB,IAAK,UACF,KAGTO,OAAQ,SAAgBC,GACtB,IAAIG,EAAO,CACTf,MAAO0B,KAAKsmB,WACZ1mB,MAAOI,KAAKqmB,YAYd,OATIrmB,KAAKomB,mBAEP/mB,EAAKsB,GAAKX,KAAKimB,yBAA2B,GAC1C5mB,EAAKknB,SAAWvmB,KAAK8T,aAGrBzU,EAAKsB,GAAKX,KAAK8T,YAGV5U,EAAEc,KAAKomB,kBAAoB,mBAAqB,QAAS/mB,EAAMW,KAAK+T,oBCvG3EyS,GAAkB,CAAC,KAAM,KAAM,MAGxB,GAAc,SAAqBhX,GAE5C,IAAKA,IAAUA,EAAMvM,OAEnB,OAAO,EAGT,IAAI0D,EAAK6I,EAAMvM,OAEf,GAAI0D,EAAGnB,WAAqD,IAAzCghB,GAAgBC,QAAQ9f,EAAG+f,SAC5C,OAAO,EAIT,GAAI,eAAQ,iBAAkB/f,GAC5B,OAAO,EAGT,IAAIpI,EAAuB,UAAfoI,EAAG+f,QAAsB/f,EAAK,eAAQ,QAASA,GAI3D,GAAIpI,EAAO,CACT,IAAIooB,EAAW,eAAQpoB,EAAO,OAC1BqoB,EAAQD,EAAW,eAAQA,GAAY,eAAO,0BAA2BpoB,GAE7E,GAAIqoB,IAAUA,EAAMphB,SAClB,OAAO,EAOX,OAAO,eAAQmB,EAAIqR,KCjCV,GAAsB,WAC/B,IAAIrR,EAAK3F,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK6lB,SACzEC,EAAM,iBACV,SAAOA,GAAiC,KAA1BA,EAAIzN,WAAW7S,QAAiBsgB,EAAIC,cAAgB,eAAUpgB,KAE5EmgB,EAAIC,aAAapgB,GAAI,ICNZ,GAAQ,eAAsB,EAAU,SAMxCqgB,GAAmB,aAAIloB,OAAO,CACvCC,KAAM,QACNkoB,QAASrS,EACTtW,MAAO,GACP4M,SAAU,CACRxM,IAAK,WACH,MAAO,SCjBb,SAAS,GAAQ6D,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAE3M,SAAS,GAAmB8a,GAAO,OAAO,GAAmBA,IAAQ,GAAiBA,IAAQ,GAA4BA,IAAQ,KAElI,SAAS,KAAuB,MAAM,IAAIK,UAAU,wIAEpD,SAAS,GAA4BjI,EAAGkI,GAAU,GAAKlI,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO,GAAkBA,EAAGkI,GAAS,IAAItI,EAAI3S,OAAOmb,UAAUC,SAASC,KAAKtI,GAAG5K,MAAM,GAAI,GAAiE,MAAnD,WAANwK,GAAkBI,EAAEuI,cAAa3I,EAAII,EAAEuI,YAAYxa,MAAgB,QAAN6R,GAAqB,QAANA,EAAoB4I,MAAMC,KAAKzI,GAAc,cAANJ,GAAqB,2CAA2CzK,KAAKyK,GAAW,GAAkBI,EAAGkI,QAAzG,GAE7S,SAAS,GAAiBQ,GAAQ,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAY3b,OAAOyb,GAAO,OAAOF,MAAMC,KAAKC,GAE1H,SAAS,GAAmBd,GAAO,GAAIY,MAAMK,QAAQjB,GAAM,OAAO,GAAkBA,GAEpF,SAAS,GAAkBA,EAAKkB,IAAkB,MAAPA,GAAeA,EAAMlB,EAAI1X,UAAQ4Y,EAAMlB,EAAI1X,QAAQ,IAAK,IAAIgC,EAAI,EAAG6W,EAAO,IAAIP,MAAMM,GAAM5W,EAAI4W,EAAK5W,IAAO6W,EAAK7W,GAAK0V,EAAI1V,GAAM,OAAO6W,EAezK,IAAI,GAAQ,CACjBmN,eAAgB,eAAS,QACzB7S,YAAa,eAAS,QACtBD,aAAc,eAAS,GAAGtU,OAAO,GAAmB,QAAgC,CAAC,WAI5EqnB,GAAgB,aAAIroB,OAAO,CACpCR,MAAO,GACPgL,QAAS,CAEP8d,YAAa,SAAqB5e,EAAMzK,EAAKspB,EAAS1K,GACpD,IAAI/V,EAAU5G,KAAK4G,QAEnB,GAAIygB,EAAS,CACX,IAAIrpB,EAAQ,OAAAyL,GAAA,MAAIjB,EAAMzK,EAAK,IAE3B,OAAI,eAAWspB,GACNA,EAAQrpB,EAAOD,EAAKyK,GAClB,eAAS6e,IAAY,eAAWzgB,EAAQygB,IAC1CzgB,EAAQygB,GAASrpB,EAAOD,EAAKyK,GAG/B6e,EAGT,OAAO1K,GAET2K,YAAa,SAAqB9e,EAAMzK,EAAKwpB,EAAS5oB,EAAMge,GAC1D,IAAI/V,EAAU5G,KAAK4G,QAEnB,GAAI2gB,EAAS,CACX,IAAIvpB,EAAQ,OAAAyL,GAAA,MAAIjB,EAAMzK,EAAK,IAE3B,OAAI,eAAWwpB,GACNA,EAAQvpB,EAAOD,EAAKyK,EAAM7J,GACxB,eAAS4oB,IAAY,eAAW3gB,EAAQ2gB,IAC1C3gB,EAAQ2gB,GAASvpB,EAAOD,EAAKyK,EAAM7J,GAGrC4oB,EAGT,OAAO5K,GAGT6K,kBAAmB,SAA2Bhf,EAAM8P,GAClD,IAAIva,EAAMua,EAAMva,IACZya,EAAYxY,KAAK6d,kBAAkB9f,GACnCC,EAAQ,OAAAyL,GAAA,MAAIjB,EAAMzK,EAAK,MAM3B,OAJI,eAAWya,KACbxa,EAAQwa,EAAUxa,EAAOD,EAAKyK,IAGzB,eAAkBxK,GAAS,GAAKA,GAGzCypB,qBAAsB,SAA8BC,EAAgBlf,GAClE,IAAIe,EAAQvJ,KAGZ,OAAO,WACD0nB,GACFne,EAAMoe,KAAKnf,EAAMqP,IAAyBrP,EAAKqP,OAKrD+P,WAAY,SAAoBpY,GAGzBxP,KAAK6nB,mBAAmBrY,IAE3BxP,KAAK8nB,kBAAkB,OAAwBtY,IAGnDuY,aAAc,SAAsBvY,GAG7BxP,KAAK6nB,mBAAmBrY,IAE3BxP,KAAK8nB,kBAAkB,OAA0BtY,IAIrDwY,mBAAoB,SAA4B1P,EAAO2P,EAAUzf,EAAM0f,GACrE,IAAIje,EAASjK,KAETmT,EAAYnT,KAAKmT,UACjBpV,EAAMua,EAAMva,IACZQ,EAAQ+Z,EAAM/Z,MACd4pB,EAAc7P,EAAM6P,YACpBjpB,EAAIc,KAAKE,eACTwnB,EAAiB1nB,KAAKsU,kBAAkB,QACxC8T,EAAYpoB,KAAKwnB,kBAAkBhf,EAAM8P,GACzC3D,GAAgBxB,IAAcnT,KAAKoT,cAAgBpT,KAAK6kB,eAAiBvM,EAAM3D,aAI/E0T,EAAU1T,EAAewT,EAAcnB,GAAMpS,EAAMuT,EAAc,KAAO,KACxEG,EAAc9f,EAAKmP,KAA2BnP,EAAKmP,IAAwB5Z,GAAOyK,EAAKmP,IAAwB5Z,GAAOua,EAAM1Z,SAAW,KACvIS,EAAO,CAKTQ,MAAO,CAACyY,EAAMzY,MAAQyY,EAAMzY,MAAQ,GAAIG,KAAKonB,YAAY5e,EAAMzK,EAAKua,EAAMiQ,QAAS,KACnFjqB,MAAO,GACPsB,MAAO,GAAc,CACnB,gBAAiB+F,OAAOsiB,EAAW,IAClCE,EAAcnoB,KAAKsnB,YAAY9e,EAAMzK,EAAKua,EAAMkQ,OAAQ,MAAO,IAAMxoB,KAAKonB,YAAY5e,EAAMzK,EAAKua,EAAMmQ,OAAQ,KAClH1qB,IAAK,OAAO+B,OAAOooB,EAAU,UAAUpoB,OAAOmoB,EAAU,KAAKnoB,OAAO/B,IAGlE4W,EAEFtV,EAAKf,MAAQ,CACXoW,eAAgBvB,EAAY5U,EAAQ,KACpCoW,cAAc,EACd/V,QAAS0pB,IAKXjpB,EAAKO,MAAM,cAAgBuT,IAAc,eAAkB5U,GAAS,eAASA,GAAS,KACtFc,EAAKO,MAAMpB,KAAO2pB,EAAc,YAAc,OAC9C9oB,EAAKO,MAAMyV,MAAQ8S,EAAc,MAAQ,KAErCG,GACFjpB,EAAKQ,MAAMkD,KAAK,GAAGjD,OAAOE,KAAK2gB,KAAO,KAAO,QAAS,KAAK7gB,OAAOwoB,KAItE,IAAII,EAAY,CACdlgB,KAAMA,EACND,MAAO2f,EACP5P,MAAOA,EACPqQ,YAAa,OAAAlf,GAAA,MAAIjB,EAAMzK,EAAK,IAC5BC,MAAOoqB,EACPQ,cAAe5oB,KAAKynB,qBAAqBC,EAAgBlf,GACzDqgB,eAAgBjX,QAAQpJ,EAAKqP,MAI3B7X,KAAK0f,yBACPgJ,EAAUI,YAAc9oB,KAAKsgB,cAAc4H,GAE3CQ,EAAUrI,UAAY,WACpB,OAAOpW,EAAOoW,UAAU6H,IAG1BQ,EAAUlI,YAAc,WACtB,OAAOvW,EAAOuW,YAAY0H,KAY9B,IAAIa,EAAW/oB,KAAKgpB,yBAAyBjrB,GACzCkrB,EAAcF,EAAW/oB,KAAK+T,cAAcgV,EAAUL,GAAa,eAASN,GAQhF,OANIpoB,KAAKmT,YAEP8V,EAAc,CAAC/pB,EAAE,MAAO,CAAC+pB,MAIpB/pB,EAAEmpB,EAAShpB,EAAM,CAAC4pB,KAG3BC,eAAgB,SAAwB1gB,EAAM0f,GAC5C,IAAIvd,EAAS3K,KAETsI,EAAStI,KAAKkU,eACd4Q,EAAU9kB,KAAK8kB,QACf7H,EAAajd,KAAKid,WAClBU,EAAc3d,KAAK2d,YACnBF,EAAUzd,KAAKyd,QACfrJ,EAAepU,KAAKoU,aACpBC,EAAcrU,KAAKqU,YACnBnV,EAAIc,KAAKE,eACTwnB,EAAiB1nB,KAAKsU,kBAAkB,QACxC6U,EAAiB3gB,EAAKqP,KAA2B6P,EACjD0B,EAAqBppB,KAAKgS,WAAW,SAA2BhS,KAAKyf,sBAErE4J,EAAQ,GAIRC,EAAYH,EAAiBnpB,KAAKqW,OAAO,YAAYvW,OAAOooB,EAAU,MAAQ,KAE9EqB,EAAOjhB,EAAOkP,KAAI,SAAUc,EAAO2P,GACrC,OAAOtd,EAAOqd,mBAAmB1P,EAAO2P,EAAUzf,EAAM0f,MAGtDsB,EAAe,KAEf7L,GAAeF,GAAWA,EAAU,IACtC+L,EAAe7jB,QAAQgY,EAAc,GAAKF,EAAUyK,EAAW,IAOjE,IAAIuB,EAAkB,eAAS,OAAAhgB,GAAA,MAAIjB,EAAMyU,KAAgB,KACrDyM,EAASD,GAAmB,eAASvB,GAGrCyB,EAAQF,EAAkBzpB,KAAKqW,OAAO,QAAQvW,OAAO2pB,IAAoB,KAEzEG,EAAoB5pB,KAAK0gB,qBAAuB1gB,KAAK0gB,qBAAqBwH,GAAY,GACtF2B,EAAkB7pB,KAAK4gB,mBAAqB5gB,KAAK4gB,mBAAmBsH,GAAY,GAEhF4B,EAAgB,eAAW1V,GAAgBA,EAAa5L,EAAM,OAAS4L,EACvE2V,EAAc,eAAW1V,GAE7BA,EAAY7L,EAAM,OAAS6L,EA2B3B,GAzBAgV,EAAMtmB,KAAK7D,EAAEmT,EAAK,CAChBxS,MAAO,CAACiqB,EAAeF,EAAmBT,EAAiB,sBAAwB,IACnF7qB,MAAO,CACLM,QAAS4J,EAAKoP,KAA0B,MAE1ChY,MAAO,GAAc,GAAc,CACjCyF,GAAIskB,GACHI,GAAc,GAAI,CAEnBC,SAAUZ,EAAqB,IAAM,KACrC,UAAWK,GAAmB,KAC9B,eAAgBH,EAChB,YAAaA,EACb,gBAAiBE,GAChBK,GACHlpB,GAAI,CAEFspB,WAAYjqB,KAAK4nB,WACjBsC,WAAYlqB,KAAK+nB,cAEnBhqB,IAAK,iBAAiB+B,OAAO4pB,EAAQ,MACrCnpB,IAAK,YACL4pB,UAAU,GACTZ,IAECJ,EAAgB,CAClB,IAAIiB,EAAe,CACjB5hB,KAAMA,EACND,MAAO2f,EACP5f,OAAQA,EACRsgB,cAAe5oB,KAAKynB,qBAAqBC,EAAgBlf,IAIvDxI,KAAK0f,yBACP0K,EAAatB,YAAc9oB,KAAKsgB,cAAc4H,GAE9CkC,EAAa/J,UAAY,WACvB,OAAO1V,EAAO0V,UAAU6H,IAG1BkC,EAAa5J,YAAc,WACzB,OAAO7V,EAAO6V,YAAY0H,KAK9B,IAAImC,EAAWnrB,EAAE0V,EAAK,CACpBtW,MAAO,CACLkW,QAASlM,EAAOpH,QAElBrB,MAAOG,KAAKknB,gBACX,CAAClnB,KAAK+T,cAAc,OAAuBqW,KAG1CtF,GACFuE,EAAMtmB,KACN7D,EAAE,KAAM,CACNS,YAAa,SACbC,MAAO,CACL,cAAe,OACfpB,KAAM,gBAERT,IAAK,6BAA6B+B,OAAO4pB,MAK7C,IAAIY,EAAuB,eAAWtqB,KAAKoU,cAE3CpU,KAAKoU,aAAa5L,EAAM,QAAyBxI,KAAKoU,aAClDmW,EAAqB,eAAWvqB,KAAKqU,aAEzCrU,KAAKqU,YAAY7L,EAAM,QAAyBxI,KAAKqU,YACrDgV,EAAMtmB,KAAK7D,EAAEmT,EAAK,CAChB1S,YAAa,kBACbE,MAAO,CAACyqB,GACRhsB,MAAO,CACLM,QAAS4J,EAAKoP,KAA0B,MAE1ChY,MAAO,GAAc,GAAc,GAAI2qB,GAAqB,GAAI,CAE9DllB,GAAIikB,EACJU,SAAU,OAEZjsB,IAAK,sBAAsB+B,OAAO4pB,IACjC,CAACW,UACK3C,IAET2B,EAAMtmB,KAAK7D,KAEP4lB,GAEFuE,EAAMtmB,KAAK7D,MAKf,OAAOmqB,MCnWb,SAAS,GAAQ9mB,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAgB3M,IAAI0sB,GAAkB,SAAyBxsB,GAC7C,MAAO,QAAQ8B,OAAO9B,GAAS,GAAI,MAI1B,GAAQ,eAAS,GAAc,GAAc,GAAc,GAAI,IAAc,IAAgB,GAAI,CAC1GysB,WAAY,eAAS,WAIZC,GAAa,aAAI5rB,OAAO,CACjCsN,OAAQ,CAAC+a,IACT7oB,MAAO,GACPyd,cAAe,WACb/b,KAAKgpB,yBAA2B,MAElC1f,QAAS,CAKPqhB,YAAa,WACX,IAAI1d,EAAQjN,KAAKiN,MACb2d,EAAQ3d,EAAM2d,MAAQ3d,EAAM2d,MAAMC,KAAO5d,EAAM2d,MAAQ,KACvDE,GAAO7d,EAAM,cAAgB,IAAIuK,KAAI,SAAUuT,GACjD,OAAOA,EAAGF,KAAOE,KAEnB,OAAOH,GAASA,EAAMI,UAAYJ,EAAMI,SAAS9pB,OAAS,GAAK4pB,GAAOA,EAAI5pB,OAAS,EAAI,OAAAwX,EAAA,MAAUkS,EAAMI,UAAUpoB,QAAO,SAAUmoB,GAChI,OAAO,OAAArS,EAAA,MAAcoS,EAAKC,MAG5B,IAIFE,gBAAiB,SAAyBtkB,GAExC,IAAK,eAAUA,GACb,OAAQ,EAGV,IAAIokB,EAAoB,OAAfpkB,EAAG+f,QAAmB/f,EAAK,eAAQ,KAAMA,GAAI,GACtD,OAAOokB,EAAK/qB,KAAK2qB,cAAclE,QAAQsE,IAAO,GAGhDjD,kBAAmB,SAA2BnpB,EAAM6Q,GAClD,GAAI7Q,GAAQqB,KAAK+R,YAAYpT,IAAS6Q,GAASA,EAAMvM,OAAQ,CAC3D,IAAIilB,EAAWloB,KAAKirB,gBAAgBzb,EAAMvM,QAE1C,GAAIilB,GAAY,EAAG,CAEjB,IAAI1f,EAAOxI,KAAKmX,cAAc+Q,GAC9BloB,KAAK0R,MAAM/S,EAAM6J,EAAM0f,EAAU1Y,MAIvCqY,mBAAoB,SAA4BrY,GAC9C,OAAOxP,KAAK+V,YAAc/V,KAAK+V,WAAWvG,IAG5C0b,kBAAmB,SAA2B1b,GAE5C,IAAIvM,EAASuM,EAAMvM,OACfkoB,EAAU3b,EAAM2b,QAEpB,IAAInrB,KAAK6nB,mBAAmBrY,IAA6B,OAAnBvM,EAAOyjB,SAAqB,eAAgBzjB,IAA+B,IAApBA,EAAOmoB,SAKpG,GAAI,OAAA1S,EAAA,MAAc,CAAC,QAAY,SAAayS,GAE1C,eAAU3b,GACVxP,KAAKqrB,kBAAkB7b,QAClB,GAAI,OAAAkJ,EAAA,MAAc,CAAC,QAAS,QAAW,QAAW,SAAWyS,GAAU,CAE5E,IAAIjD,EAAWloB,KAAKirB,gBAAgBhoB,GAEpC,GAAIilB,GAAY,EAAG,CACjB,eAAU1Y,GACV,IAAIsb,EAAM9qB,KAAK2qB,cACXW,EAAQ9b,EAAMwR,SAEdmK,IAAY,SAAaG,GAASH,IAAY,QAEhD,eAAaL,EAAI,IACRK,IAAY,SAAYG,GAASH,IAAY,QAEtD,eAAaL,EAAIA,EAAI5pB,OAAS,IACrBiqB,IAAY,SAAWjD,EAAW,EAE3C,eAAa4C,EAAI5C,EAAW,IACnBiD,IAAY,SAAajD,EAAW4C,EAAI5pB,OAAS,GAE1D,eAAa4pB,EAAI5C,EAAW,OAKpCmD,kBAAmB,SAA2B7b,GAGxCxP,KAAK6nB,mBAAmBrY,IAAU,GAAYA,IAAU,GAAoBxP,KAAK6qB,MAIrF7qB,KAAK8nB,kBAAkB,OAAwBtY,IAEjD+b,gCAAiC,SAAyC/b,GACnExP,KAAK6nB,mBAAmBrY,IAA0B,IAAhBA,EAAMgc,OAC3CxrB,KAAK8nB,kBAAkB,OAA+BtY,IAG1Dic,sBAAuB,SAA+Bjc,GAC/CxP,KAAK6nB,mBAAmBrY,IAC3BxP,KAAK8nB,kBAAkB,OAA4BtY,IAGvDkc,qBAAsB,SAA8Blc,GAC7CxP,KAAK6nB,mBAAmBrY,IAAW,GAAYA,IAClDxP,KAAK8nB,kBAAkB,OAA2BtY,IAOtDqW,YAAa,WACX,IAAItc,EAAQvJ,KAERqI,EAAQrI,KAAKmX,cACbnB,EAAahW,KAAKgW,WAClB2V,EAAe3rB,KAAK2rB,aACpBzU,EAAclX,KAAKkX,YACnBjD,EAAkBjU,KAAKiU,gBACvB/U,EAAIc,KAAKE,eACTkpB,EAAqBppB,KAAK+R,YAAY,SAA2B/R,KAAKyf,sBAEtE4J,EAAQ,GAERuC,EAAQ5V,EAAaA,IAAe,KAExC,GAAI4V,EAEFvC,EAAMtmB,KAAK6oB,OACN,CAML,IAAIC,EAAQ,GACRC,EAAkBtB,KACtBsB,EAAkB9rB,KAAKsU,kBAAkBwX,GAAmBA,EAAkB,KAC9E9rB,KAAKkU,eAAe9Q,SAAQ,SAAUkV,GACpC,IAAIva,EAAMua,EAAMva,IACZgrB,EAAWyB,GAAgBzsB,GAC3BguB,EAAoBvB,GAAgBzsB,EAAI0I,eAC5ColB,EAAM9tB,GAAOwL,EAAM+K,kBAAkByU,GAAYA,EAAWxf,EAAM+K,kBAAkByX,GAEpFA,EAAoBD,KAItB9rB,KAAKgpB,yBAA2B6C,EAGhCxC,EAAMtmB,KAAK4oB,EAAeA,IAAiBzsB,KAE3CmJ,EAAMjF,SAAQ,SAAUoF,EAAM0f,GAE5BmB,EAAMtmB,KAAKwG,EAAM2f,eAAe1gB,EAAM0f,OAGxCmB,EAAMtmB,KAAKmU,EAAcA,IAAgBhY,KAGzCmqB,EAAMtmB,KAAKkR,EAAkBA,IAAoB/U,KAInD,IAAI8sB,EAAW,CACbC,SAAUjsB,KAAKurB,gCAKfW,YAAalsB,KAAKyrB,sBAElBU,SAAUnsB,KAAK0rB,sBAIbtC,IACF4C,EAASpoB,MAAQ5D,KAAKqrB,kBACtBW,EAASI,QAAUpsB,KAAKkrB,mBAI1B,IAAImB,EAASntB,EAAEinB,GAAQ,CACrBtmB,MAAOG,KAAKyqB,YAAc,KAC1BnsB,MAAO,eAAW,GAAa0B,KAAKssB,QAGpC3rB,GAAIqrB,EACJzrB,IAAK,SACJ8oB,GAEH,OAAOgD,MCpOb,SAAS,GAAQ9pB,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAUpM,IAAI,GAAQ,eAAsB,CAEvC2V,YAAa,eAAS,SACrB,SAMQ8Y,GAAsB,aAAIztB,OAAO,CAC1CC,KAAM,QACNqN,OAAQ,CAACxM,EAAA,KAAY0S,EAAA,KAAgB,QACrCC,QAAS,WACP,MAAO,CACLG,gBAAiB1S,OAGrByS,OAAQ,CAENwS,QAAS,CACP/b,QAEA,WACE,MAAO,MAIbyJ,cAAc,EACdrU,MAAO,GACP4M,SAAU,CAER+H,QAAS,WACP,OAAO,GAGTC,OAAQ,WACN,OAAOlT,KAAKilB,QAAQtE,MAGtBxN,UAAW,WACT,OAAOnT,KAAKilB,QAAQ9R,WAGtBC,aAAc,WACZ,OAAOpT,KAAKilB,QAAQ7R,cAItBC,eAAgB,WACd,OAAO,GAKTC,gBAAiB,WACf,OAAQtT,KAAKmT,WAAanT,KAAKilB,QAAQJ,cAGzCtR,aAAc,WACZ,OAAOvT,KAAKilB,QAAQ1R,cAEtBiZ,aAAc,WACZ,MAAO,CAACxsB,KAAKyT,YAAc,SAAS3T,OAAOE,KAAKyT,aAAe,OAEjEgZ,WAAY,WACV,OAAO,GAAc,GAAc,GAAIzsB,KAAK6T,SAAU,GAAI,CACxDrV,KAAM,eAIZS,OAAQ,SAAgBC,GACtB,OAAOA,EAAE,QAAS,CAChBW,MAAOG,KAAKwsB,aACZ5sB,MAAOI,KAAKysB,WAEZ9rB,GAAIX,KAAK8T,aACR9T,KAAK+T,oBCpFD,GAAQ,CACjB2Y,UAAW,eAAS,QAAmB,GAGvCC,eAAgB,eAAS,QAEzBlZ,YAAa,eAAS,QACtBmZ,WAAY,eAAS,QACrBC,aAAc,eAAS,SAIdC,GAAa,aAAIhuB,OAAO,CACjCR,MAAO,GACPgL,QAAS,CACPyjB,kBAAmB,WACjB,IAAI7tB,EAAIc,KAAKE,eAEb,OAAIF,KAAKsU,kBAAkB,QAClBpV,EAAEqtB,GAAQ,CACf1sB,MAAOG,KAAK4sB,YAAc,KAC1BtuB,MAAO,CACLmV,YAAazT,KAAKyT,aAAezT,KAAKwT,aAAe,MAEvDzV,IAAK,mBACJiC,KAAK+T,cAAc,OAAuB,CAC3C1L,MAAOrI,KAAKmX,cAAc/Q,QAC1BkC,OAAQtI,KAAKkU,eAAe9N,QAC5BmO,QAASvU,KAAKkU,eAAehT,UAI1BhC,KAET4mB,YAAa,WAEX,OAAO9lB,KAAK0sB,UAAY1sB,KAAK4lB,aAAY,GAAQ5lB,KAAK+sB,wB,aC1C5D,SAAS,GAAQxqB,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAUpM,IAAI,GAAQ,eAAsB,CAGvC0V,YAAa,eAAS,SACrB,SAMQwZ,GAAsB,aAAIluB,OAAO,CAC1CC,KAAM,QACNqN,OAAQ,CAACxM,EAAA,KAAY0S,EAAA,KAAgB,QACrCC,QAAS,WACP,MAAO,CACLG,gBAAiB1S,OAGrByS,OAAQ,CAENwS,QAAS,CACP/b,QAEA,WACE,MAAO,MAIbyJ,cAAc,EACdrU,MAAO,GACP4M,SAAU,CAER6H,QAAS,WACP,OAAO,GAGTG,OAAQ,WACN,OAAOlT,KAAKilB,QAAQtE,MAGtBxN,UAAW,WACT,OAAOnT,KAAKilB,QAAQ9R,WAGtBC,aAAc,WACZ,OAAOpT,KAAKilB,QAAQ7R,cAMtBC,eAAgB,WACd,OAAQrT,KAAKmT,WAAanT,KAAKilB,QAAQJ,cAKzCvR,gBAAiB,WACf,OAAQtT,KAAKmT,WAAanT,KAAKilB,QAAQJ,cAGzCtR,aAAc,WACZ,OAAOvT,KAAKilB,QAAQ1R,cAEtB0Z,aAAc,WACZ,MAAO,CAACjtB,KAAKwT,YAAc,SAAS1T,OAAOE,KAAKwT,aAAe,OAEjE0Z,WAAY,WACV,OAAO,GAAc,CACnB1uB,KAAM,YACLwB,KAAK6T,WAGZ5U,OAAQ,SAAgBC,GACtB,OAAOA,EAAE,QAAS,CAChBW,MAAOG,KAAKitB,aACZrtB,MAAOI,KAAKktB,WAEZvsB,GAAIX,KAAK8T,aACR9T,KAAK+T,oBC7FZ,SAAS,GAAmB6E,GAAO,OAAO,GAAmBA,IAAQ,GAAiBA,IAAQ,GAA4BA,IAAQ,KAElI,SAAS,KAAuB,MAAM,IAAIK,UAAU,wIAEpD,SAAS,GAA4BjI,EAAGkI,GAAU,GAAKlI,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO,GAAkBA,EAAGkI,GAAS,IAAItI,EAAI3S,OAAOmb,UAAUC,SAASC,KAAKtI,GAAG5K,MAAM,GAAI,GAAiE,MAAnD,WAANwK,GAAkBI,EAAEuI,cAAa3I,EAAII,EAAEuI,YAAYxa,MAAgB,QAAN6R,GAAqB,QAANA,EAAoB4I,MAAMC,KAAKzI,GAAc,cAANJ,GAAqB,2CAA2CzK,KAAKyK,GAAW,GAAkBI,EAAGkI,QAAzG,GAE7S,SAAS,GAAiBQ,GAAQ,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAY3b,OAAOyb,GAAO,OAAOF,MAAMC,KAAKC,GAE1H,SAAS,GAAmBd,GAAO,GAAIY,MAAMK,QAAQjB,GAAM,OAAO,GAAkBA,GAEpF,SAAS,GAAkBA,EAAKkB,IAAkB,MAAPA,GAAeA,EAAMlB,EAAI1X,UAAQ4Y,EAAMlB,EAAI1X,QAAQ,IAAK,IAAIgC,EAAI,EAAG6W,EAAO,IAAIP,MAAMM,GAAM5W,EAAI4W,EAAK5W,IAAO6W,EAAK7W,GAAK0V,EAAI1V,GAAM,OAAO6W,EAEhL,SAAS,GAAQxX,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAqB3M,IAAIqvB,GAAkB,SAAyBnvB,GAC7C,MAAO,QAAQ8B,OAAO9B,GAAS,GAAI,MAGjCovB,GAAkB,SAAyBpvB,GAC7C,MAAO,QAAQ8B,OAAO9B,GAAS,GAAI,MAI1B,GAAQ,CAEjBqvB,eAAgB,eAAS,QAEzB7Z,YAAa,eAAS,QACtB8Z,WAAY,eAAS,QACrBC,aAAc,eAAS,SAIdC,GAAa,aAAI1uB,OAAO,CACjCR,MAAO,GACPgL,QAAS,CACPmkB,aAAc,SAAsBnV,GAElC,MAAO,CAACA,EAAMzY,MAAQyY,EAAMzY,MAAQ,GAAIyY,EAAMoV,QAAUpV,EAAMoV,QAAU,KAE1EC,YAAa,SAAqBne,EAAO8I,EAAOkL,GAC1CxjB,KAAK+V,YAAc/V,KAAK+V,WAAWvG,IAG5B,GAAYA,IAGZ,GAAoBxP,KAAK6qB,OAOpC,eAAUrb,GACVxP,KAAK0R,MAAM,OAAyB4G,EAAMva,IAAKua,EAAO9I,EAAOgU,KAE/DoC,YAAa,WACX,IAAIrc,EAAQvJ,KAERwjB,EAASxiB,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GACxEsH,EAAStI,KAAKkU,eACd8O,EAAahjB,KAAKgjB,WAClBxD,EAAexf,KAAKwf,aACpBhM,EAAcxT,KAAKwT,YACnBC,EAAczT,KAAKyT,YACnB4Z,EAAiBrtB,KAAKqtB,eACtBV,EAAiB3sB,KAAK2sB,eACtBztB,EAAIc,KAAKE,eAGb,GAAIF,KAAKokB,iBAAqC,IAAlB9b,EAAOpH,OACjC,OAAOhC,IAGT,IAAI0uB,EAAuB5K,GAAchjB,KAAK+R,YAAY,QAEtD0O,EAAgBjB,EAAexf,KAAKygB,cAAgBoN,GAAA,KACpDlP,EAAgBa,EAAexf,KAAK2e,cAAgBkP,GAAA,KAEpDC,EAAW,SAAkBxV,EAAO2P,GACtC,IAAI1pB,EAAQ+Z,EAAM/Z,MACdwvB,EAAYzV,EAAMyV,UAClBnvB,EAAU0Z,EAAM1Z,QAChB+V,EAAe2D,EAAM3D,aACrB5W,EAAMua,EAAMva,IACZiwB,EAAY,KAEX1V,EAAM/Z,MAAMiI,QAAW8R,EAAM2V,cAKhCD,EAAY,eAAU1V,EAAMva,MAG9B,IAAI4C,EAAK,GAELitB,IACFjtB,EAAGiD,MAAQ,SAAU4L,GACnBjG,EAAMokB,YAAYne,EAAO8I,EAAOkL,IAGlC7iB,EAAGyrB,QAAU,SAAU5c,GACrB,IAAI2b,EAAU3b,EAAM2b,QAEhBA,IAAY,SAAcA,IAAY,SACxC5hB,EAAMokB,YAAYne,EAAO8I,EAAOkL,KAKtC,IAAI0K,EAAYlL,EAAazZ,EAAMwa,iBAAiBhmB,EAAKua,EAAOkL,GAAU,GACtE2K,EAAYnL,EAAazZ,EAAMsa,mBAAmB9lB,EAAKua,EAAOkL,GAAU,KACxE4K,EAAYpL,EAAazZ,EAAM0a,iBAAiBlmB,EAAKua,EAAOkL,GAAU,KACtEnkB,EAAO,CACTQ,MAAO,CAAC0J,EAAMkkB,aAAanV,GAAQ6V,GACnC7vB,MAAO,CACLM,QAASA,EACT+V,aAAcA,GAEhBqR,MAAO1N,EAAM+V,SAAW,GACxBzuB,MAAO,GAAc,GAAc,CAGjCoqB,SAAU4D,GAAwBtV,EAAMnP,SAAW,IAAM,KACzDmlB,KAAMhW,EAAMiW,YAAc,KAC1B1pB,MAAOyT,EAAM2V,aAAe,KAC5B,gBAAiBhG,EAAW,EAC5B,aAAc+F,GACbzkB,EAAM+d,YAAY,KAAMvpB,EAAKua,EAAMkQ,OAAQhF,EAAS,OAAS,OAAQ,KAAM0K,GAC9EvtB,GAAIA,EACJ5C,IAAKA,GAOHywB,EAAY,CAACrB,GAAgBpvB,GAAMovB,GAAgBpvB,EAAI0I,eAAgB0mB,MAEvE3J,IACFgL,EAAY,CAACpB,GAAgBrvB,GAAMqvB,GAAgBrvB,EAAI0I,eAAgB2mB,MAAmBttB,OAAO,GAAmB0uB,KAGtH,IAAInZ,EAAQ,CACV9W,MAAOA,EACPkwB,OAAQ1wB,EACRua,MAAOA,EACPkL,OAAQA,EAER/C,cAAeA,EACf9B,cAAeA,GAEbrJ,EAAW/L,EAAMwK,cAAcya,EAAWnZ,IAAUnW,EAAE,MAAO,CAC/DuS,SAAU,OAAAnM,EAAA,MAAWyoB,EAAWxvB,KAE9BmwB,EAAWN,EAAYlvB,EAAE,OAAQ,CACnCS,YAAa,WACZ,KAAKG,OAAOsuB,EAAW,MAAQ,KAElC,OAAOlvB,EAAE8nB,GAAK3nB,EAAM,CAACiW,EAAUoZ,GAAU9rB,OAAO0D,EAAA,QAI9CqoB,EAASrmB,EAAOkP,IAAIsW,GAAUlrB,OAAO0D,EAAA,MAErCsoB,EAAO,GAEX,GAAIpL,EACFoL,EAAK7rB,KAAK7D,EAAEmT,EAAK,CACfxS,MAAOG,KAAK6sB,aACZvuB,MAAO,CACLM,QAAS,eAAkB+tB,GAAkBU,EAE7CV,IAEDgC,QACE,CACL,IAAItZ,EAAQ,CACVd,QAASjM,EAAOpH,OAChBoH,OAAQA,EAERmY,cAAeA,EACf9B,cAAeA,GAEjBiQ,EAAK7rB,KAAK/C,KAAK+T,cAAc,OAAqBsB,IAAUnW,KAC5D0vB,EAAK7rB,KAAK7D,EAAEmT,EAAK,CACfxS,MAAOG,KAAKutB,aACZjvB,MAAO,CACLM,QAASyuB,IAEVsB,IAGL,OAAOzvB,EAAEskB,EAAS+I,GAASS,GAAQ,CACjCntB,OAAQ2jB,EAASxjB,KAAK4sB,WAAa5sB,KAAKstB,aAAe,KACvDhvB,MAAOklB,EAAS,CACd/P,YAAaA,GAAeD,GAAe,MACzC,CACFA,YAAaA,GAAe,MAE9BzV,IAAKylB,EAAS,WAAa,YAC1BoL,OC7NE,GAAQ,GAGRC,GAAc,aAAI/vB,OAAO,CAClCwK,QAAS,CACPqiB,aAAc,WACZ,IAAIrjB,EAAStI,KAAKkU,eACdC,EAAUnU,KAAKmU,QACfC,EAAepU,KAAKoU,aACpBC,EAAcrU,KAAKqU,YACnBnV,EAAIc,KAAKE,eAGb,OAAKF,KAAKsU,kBAAkB,UAAkC,IAAZH,GAAgC,KAAZA,EAI/DjV,EAAEmT,EAAK,CACZ1S,YAAa,kBACbE,MAAO,CAAC,eAAWuU,GAAgBA,EAAa,KAAM,WAAaA,GACnExU,MAAO,eAAWyU,GAAeA,EAAY,KAAM,WAAaA,EAChEtW,IAAK,aACJ,CAACiC,KAAK+T,cAAc,OAAmB,CACxCQ,QAASjM,EAAOpH,OAChBoH,OAAQA,MAVDpJ,QCnBf,SAAS,GAAQqD,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,GAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,GAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,GAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,GAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EA4BpM,IAAI,GAAQ,eAAsB,eAAS,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAIuH,EAAA,MAAU,GAAiB,GAAY,GAAe,GAAgB,GAAa,IAAiB,IAAa,IAAkB,IAAgB,IAAkB,IAAe,IAAe,IAAqB,IAAa,IAAa,IAAa,KAAe,SAGrjByD,GAAsB,aAAIhK,OAAO,CAC1CC,KAAM,QAGNqN,OAAQ,CACRxM,EAAA,KAAYkS,EAAkBzM,EAAA,KAAS,OACvC6X,GAAY8H,GAAoBb,GAAcqJ,GAAYV,GAAYpC,GACtEvG,GAAc9J,GAAgByI,GAAchF,GAAiB3H,EAAcM,EAAe4I,GAAiBpI,EAAY4X,GAAa7a,EAAgByB,EAAW2I,IAC/J9f,MAAO,M,uBC3CT6R,EAAOC,QAAU,IAA0B,kC,uBCA3C,IAAI0e,EAAc,EAAQ,QACtBC,EAAgB,EAAQ,QAAsCA,cAC9D7wB,EAAiB,EAAQ,QAAuCqe,EAChEyS,EAAmB,EAAQ,QAA+BvlB,IAC1DwlB,EAAkBrgB,OAAOwK,UAGzB0V,GAAeC,GACjB7wB,EAAe0Q,OAAOwK,UAAW,SAAU,CACzChb,cAAc,EACdqL,IAAK,WACH,GAAIzJ,OAASivB,EAAb,CAGA,GAAIjvB,gBAAgB4O,OAClB,QAASogB,EAAiBhvB,MAAMkvB,OAElC,MAAMjW,UAAU,+C,oCCjBtB,W,qBCAA,IAAIzI,EAAI,EAAQ,QACZ2e,EAAQ,EAAQ,QAChBC,EAAW,EAAQ,QACnBC,EAAuB,EAAQ,QAC/BC,EAA2B,EAAQ,QAEnCC,EAAsBJ,GAAM,WAAcE,EAAqB,MAInE7e,EAAE,CAAEvN,OAAQ,SAAUyN,MAAM,EAAM8e,OAAQD,EAAqBE,MAAOH,GAA4B,CAChGI,eAAgB,SAAwBC,GACtC,OAAON,EAAqBD,EAASO,Q,kCCZzC,uHAASrtB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAQpM,IAAIQ,EAAQ,eAAsB,eAAK,OAAuB,CAAC,WAAY,QAGvEsxB,EAAkC,aAAI9wB,OAAO,CACtDC,KAAM,OACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIb,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZ2rB,EAAW7rB,EAAK6rB,SAEpB,OAAO9rB,EAAE,OAAkB,eAAUG,EAAM,CACzCf,MAAO0E,EAAcA,EAAc,GAAI1E,GAAQ,GAAI,CACjDuxB,QAAQ,MAER7E,O,oCC5BR,gJAMW1sB,EAAQ,eAAsB,CACvCuxB,OAAQ,eAAS,QAAmB,GACpCxqB,GAAI,eAAS,QACbyqB,OAAQ,eAAS,QAAmB,GACpCpxB,IAAK,eAAS,OAAkB,QAC/B,QAGQqxB,EAAgC,aAAIjxB,OAAO,CACpDC,KAAM,OACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIb,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZ2rB,EAAW7rB,EAAK6rB,SAChB6E,EAASvxB,EAAMuxB,OACnB,OAAO3wB,EAAEZ,EAAMI,IAAK,eAAUW,EAAM,CAClCQ,MAAO,CACL,qBAAsBgwB,EACtB,uBAAwBA,GAE1BjwB,MAAO,CACLyF,GAAI/G,EAAM+G,MAEV/G,EAAMwxB,OAAS,CAAC5wB,EAAE,OAAiB8rB,IAAaA,O,uBC/BxD,IAAI8D,EAAc,EAAQ,QACtB7e,EAAS,EAAQ,QACjB+f,EAAW,EAAQ,QACnBC,EAAoB,EAAQ,QAC5B/xB,EAAiB,EAAQ,QAAuCqe,EAChE2T,EAAsB,EAAQ,QAA8C3T,EAC5E4T,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAgB,EAAQ,QACxBC,EAAW,EAAQ,QACnBnB,EAAQ,EAAQ,QAChBoB,EAAmB,EAAQ,QAA+BC,IAC1DC,EAAa,EAAQ,QACrBC,EAAkB,EAAQ,QAE1BC,EAAQD,EAAgB,SACxBE,EAAe3gB,EAAOrB,OACtBqgB,EAAkB2B,EAAaxX,UAC/ByX,EAAM,KACNC,EAAM,KAGNC,EAAc,IAAIH,EAAaC,KAASA,EAExC9B,EAAgBsB,EAActB,cAE9BiC,EAASlC,GAAekB,EAAS,UAAYe,GAAehC,GAAiBI,GAAM,WAGrF,OAFA2B,EAAIH,IAAS,EAENC,EAAaC,IAAQA,GAAOD,EAAaE,IAAQA,GAAiC,QAA1BF,EAAaC,EAAK,SAKnF,GAAIG,EAAQ,CACV,IAAIC,EAAgB,SAAgB/U,EAASgV,GAC3C,IAGIhC,EAHAiC,EAAenxB,gBAAgBixB,EAC/BG,EAAkBjB,EAASjU,GAC3BmV,OAA8BvsB,IAAVosB,EAGxB,IAAKC,GAAgBC,GAAmBlV,EAAQ3C,cAAgB0X,GAAiBI,EAC/E,OAAOnV,EAGL6U,EACEK,IAAoBC,IAAmBnV,EAAUA,EAAQ/Y,QACpD+Y,aAAmB+U,IACxBI,IAAmBH,EAAQd,EAAS9W,KAAK4C,IAC7CA,EAAUA,EAAQ/Y,QAGhB4rB,IACFG,IAAWgC,GAASA,EAAMzK,QAAQ,MAAQ,EACtCyI,IAAQgC,EAAQA,EAAM/U,QAAQ,KAAM,MAG1C,IAAI1R,EAASwlB,EACXc,EAAc,IAAIH,EAAa1U,EAASgV,GAASN,EAAa1U,EAASgV,GACvEC,EAAenxB,KAAOivB,EACtBgC,GAKF,OAFIlC,GAAiBG,GAAQqB,EAAiB9lB,EAAQ,CAAEykB,OAAQA,IAEzDzkB,GAEL6mB,EAAQ,SAAUvzB,GACpBA,KAAOkzB,GAAiB/yB,EAAe+yB,EAAelzB,EAAK,CACzDK,cAAc,EACdqL,IAAK,WAAc,OAAOmnB,EAAa7yB,IACvCyyB,IAAK,SAAUb,GAAMiB,EAAa7yB,GAAO4xB,MAGzCltB,EAAOytB,EAAoBU,GAC3BroB,EAAQ,EACZ,MAAO9F,EAAKvB,OAASqH,EAAO+oB,EAAM7uB,EAAK8F,MACvC0mB,EAAgB1V,YAAc0X,EAC9BA,EAAc7X,UAAY6V,EAC1BqB,EAASrgB,EAAQ,SAAUghB,GAI7BR,EAAW,W,oCCnFX,mLAAS5yB,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAapM,IAAIQ,EAAQ,eAAsB,CACvCuxB,OAAQ,eAAS,QACjB0B,WAAY,eAAS,QACrBlsB,GAAI,eAAS,QACbmsB,QAAS,eAAS,QAClBC,YAAa,eAAS,QACtBC,KAAM,eAAS,QACfhzB,IAAK,eAAS,OAAkB,QAC/B,QAGQgN,EAA2B,aAAI5M,OAAO,CAC/CC,KAAM,OACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIb,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZC,EAAQH,EAAKG,MACbC,EAAcJ,EAAKI,YACnBiyB,EAAUlzB,EAAMkzB,QAChBC,EAAcnzB,EAAMmzB,YACpB5B,EAASvxB,EAAMuxB,OACf0B,EAAajzB,EAAMizB,WACnBG,EAAOpzB,EAAMozB,KACbjyB,EAAeF,GAAe,GAC9BC,EAASF,IACTopB,EAAY,GACZiJ,EAAWzyB,IACX0yB,EAAiB,eAAkB,OAAmBnyB,EAAcD,IAEpEoyB,GAAkBJ,GAAWC,KAC/BE,EAAWzyB,EAAE,OAAoB,CAAC0yB,EAAiB,eAAc,OAAmBlJ,EAAWjpB,EAAcD,GAAUN,EAAE,OAAiB,CACxIuS,SAAU,eAAWggB,EAAaD,QAItC,IAAIK,EAAU3yB,IACV4yB,EAAgB,eAAkB,OAAkBryB,EAAcD,GAQtE,OANIsyB,GAAiBjC,GAAU0B,KAC7BM,EAAU3yB,EAAE,OAAmB,CAAC4yB,EAAgB,eAAc,OAAkBpJ,EAAWjpB,EAAcD,GAAUN,EAAE,OAAiB,CACpIuS,SAAU,eAAW8f,EAAY1B,QAI9B3wB,EAAEZ,EAAMI,IAAK,eAAUW,EAAM,CAClCM,YAAa,cACbE,MAAOhC,EAAgB,GAAI,eAAeiC,OAAO4xB,GAAOA,GACxD9xB,MAAO,CACLyF,GAAI/G,EAAM+G,IAAM,KAChB7G,KAAM,WAEN,CAACmzB,EAAU,eAAc,OAAmBjJ,EAAWjpB,EAAcD,GAASqyB,Q,oCClEtF,sCAAI9S,EAAJ,oLAEA,SAASzc,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAiB3M,IAAI4e,EAAkB,eAAe,OAAQ,CAC3C/d,KAAM,OACNge,cAAc,IAEZC,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBpe,MAC7Bye,EAAkBL,EAAgBnV,KAClCyV,EAAmBN,EAAgBlN,MAInCuiB,EAAiB,SAAwBjsB,GAC3C,MAAa,KAATA,GAAe,eAAUA,GACpB,GAGTA,EAAO,eAAUA,EAAM,GAChBA,EAAO,EAAIA,EAAO,IAIvBksB,EAAY,SAAmBlsB,GACjC,MAAa,KAATA,IAAwB,IAATA,KAIf,eAAUA,EAAM,GAAK,MAKhBA,GAIAxH,EAAQ,eAAsB,eAAS0E,EAAcA,EAAc,GAAI8Z,GAAa,GAAI,CACjGmV,aAAc,eAAS,OAAkB,SACzCC,YAAa,eAAS,QAAmB,GACzCC,KAAM,eAAS,QAAmB,GAClCvzB,QAAS,eAAS,OAAkB,WACjC,QAGMiN,EAAsB,aAAI/M,OAAO,CAC1CC,KAAM,OACNqN,OAAQ,CAACwQ,EAAY,QACrBte,MAAOA,EACPe,KAAM,WACJ,MAAO,CACL+yB,UAAW,EAEXC,UAAWL,EAAUhyB,KAAK+c,MAG9BnH,OAAQmJ,EAAS,GAAIlhB,EAAgBkhB,EAAQhC,GAAiB,SAAUlH,GACtE7V,KAAKoyB,UAAYL,EAAelc,GAChC7V,KAAKqyB,UAAYL,EAAUnc,MACzBhY,EAAgBkhB,EAAQ,aAAa,SAAmBlJ,GAC1D,IAAItM,EAAQvJ,KAEZA,KAAKsyB,yBACL,IAAIxsB,EAAO9F,KAAK+c,GAEZ,eAAUjX,KACZ9F,KAAK0R,MAAM,OAA+BmE,GAEtC/P,IAAS+P,GACX7V,KAAK0R,MAAMsL,EAAkBnH,GAG3BA,EAAW,GACb7V,KAAKqyB,WAAY,EACjBryB,KAAKuyB,mBAAqBzW,YAAW,WACnCvS,EAAM6oB,cACL,MAGHpyB,KAAK6H,WAAU,WACb,gBAAU,WACR0B,EAAM8oB,WAAY,YAKxBx0B,EAAgBkhB,EAAQ,aAAa,SAAmBlJ,GAC1D,IAAI/P,EAAO9F,KAAK+c,GAEXlH,IAAa7V,KAAKkyB,cAAe,eAAUpsB,IAC9C9F,KAAK0R,MAAM,QAIR,eAAU5L,IAASA,IAAS+P,GAC/B7V,KAAK0R,MAAMsL,EAAkBnH,MAE7BkJ,GACJ3V,QAAS,WAEPpJ,KAAKwb,cAAgB,KACrB,IAAI1V,EAAO9F,KAAK+c,GAChB/c,KAAKoyB,UAAYL,EAAejsB,GAChC9F,KAAKqyB,UAAYL,EAAUlsB,IAE7BiW,cAAe,WACb/b,KAAKsyB,0BAEPhpB,QAAS,CACPkpB,QAAS,WACPxyB,KAAKsyB,yBACLtyB,KAAKoyB,UAAY,EACjBpyB,KAAKqyB,WAAY,GAEnBC,uBAAwB,WACtBtW,aAAahc,KAAKuyB,oBAClBvyB,KAAKuyB,mBAAqB,OAG9BtzB,OAAQ,SAAgBC,GACtB,IAAIuzB,EAASvzB,IAEb,GAAIc,KAAKqyB,UAAW,CAClB,IAAIH,EAAclyB,KAAKkyB,YACnBtzB,EAAUoB,KAAKpB,QACf8zB,EAAiBxzB,IAEjBgzB,IAEFQ,EAAiBxzB,EAAE,OAAc,CAC/BU,MAAO,CACL,aAAcI,KAAKiyB,cAErBtxB,GAAI,CACFiD,MAAO5D,KAAKwyB,UAEb,CAACxyB,KAAK+T,cAAc,WAGzB0e,EAASvzB,EAAE,MAAO,CAChBS,YAAa,QACbE,MAAOhC,EAAgB,CACrB,oBAAqBq0B,GACpB,SAASpyB,OAAOlB,GAAUA,GAC7BgB,MAAO,CACLpB,KAAM,QACN,YAAa,SACb,eAAe,GAEjBT,IAAKiC,KAAK,SACT,CAAC0yB,EAAgB1yB,KAAK+T,kBAG3B,OAAO7U,EAAE,OAAc,CACrBZ,MAAO,CACL8I,QAASpH,KAAKmyB,OAEf,CAACM,Q,oCCjLR,IAAIE,EAAgC,EAAQ,QACxCC,EAAW,EAAQ,QACnBC,EAAyB,EAAQ,QACjCC,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QAGzBJ,EAA8B,SAAU,GAAG,SAAUK,EAAQC,EAAcC,GACzE,MAAO,CAGL,SAAgBC,GACd,IAAIC,EAAIP,EAAuB7yB,MAC3BqzB,OAAqBvuB,GAAVquB,OAAsBruB,EAAYquB,EAAOH,GACxD,YAAoBluB,IAAbuuB,EAAyBA,EAAS/Z,KAAK6Z,EAAQC,GAAK,IAAIxkB,OAAOukB,GAAQH,GAAQrtB,OAAOytB,KAI/F,SAAUD,GACR,IAAIG,EAAMJ,EAAgBD,EAAcE,EAAQnzB,MAChD,GAAIszB,EAAIliB,KAAM,OAAOkiB,EAAIt1B,MAEzB,IAAIu1B,EAAKX,EAASO,GACdK,EAAI7tB,OAAO3F,MAEXyzB,EAAoBF,EAAGnX,UACtB0W,EAAUW,EAAmB,KAAIF,EAAGnX,UAAY,GACrD,IAAI3R,EAASsoB,EAAWQ,EAAIC,GAE5B,OADKV,EAAUS,EAAGnX,UAAWqX,KAAoBF,EAAGnX,UAAYqX,GAC9C,OAAXhpB,GAAmB,EAAIA,EAAOlC,Y,kCC9B3C,kCAiBO,IAAImrB,EAAa,SAAoBhb,EAAOib,GAKjD,OAAOjb,EAAMlB,KAAI,SAAUvG,EAAG1I,GAC5B,MAAO,CAACA,EAAO0I,MACdsG,KAAK,SAAUtG,EAAGkQ,GACnB,OAAOnhB,KAAKiR,EAAE,GAAIkQ,EAAE,KAAOlQ,EAAE,GAAKkQ,EAAE,IACpCxZ,KAAKgsB,IAAYnc,KAAI,SAAU1G,GAC/B,OAAOA,EAAE,Q,0WCVT8iB,EAAgB,CAClBC,KAAM,OACNC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,KAAM,OACNC,QAAS,MACTC,SAAU,MACVC,SAAU,QACVC,YAAa,QACbC,WAAY,SACZC,YAAa,SACbC,QAAS,OACTC,WAAY,QAEVC,EAAY,CACdb,KAAM,EACNK,SAAU,EACVJ,IAAK,EACLK,SAAU,EACVC,UAAW,EACXL,MAAO,EACPM,YAAa,EACbC,YAAa,EACbN,OAAQ,EACRO,YAAa,EACbC,SAAU,EACVP,KAAM,EACNQ,WAAY,GAGH,EAAQ,CAGjBE,aAAc,eAAS,OAAyB,GAEhDjvB,SAAU,eAAS,CAAC,OAAa,QAAmB,gBAGpDE,gBAAiB,eAAS,OAAyB,GACnDX,kBAAmB,eAAS,OAAwB,QACpDG,OAAQ,eAAS,OAAyB,GAC1CJ,UAAW,eAAS,OAAkB,OAEtC/B,OAAQ,eAAS,CAAC,OAAa,UAItB2xB,EAAwB,aAAI91B,OAAO,CAC5CC,KAAM,QACNT,MAAO,EACPe,KAAM,WACJ,MAAO,CAEL+H,QAAQ,EAERirB,WAAW,EACXwC,WAAY70B,KAAK80B,cAAc90B,KAAKgF,aAGxCkG,SAAU,CAER6pB,aAAc,WAEZ,MAAO,WAETC,aAAc,WACZ,IAAIzrB,EAAQvJ,KAERgF,EAAYhF,KAAKgF,UACrB,MAAO,CACLA,UAAWhF,KAAK80B,cAAc9vB,GAC9BiB,UAAW,CACTb,OAAQ,CACNA,OAAQpF,KAAKi1B,UAAUjwB,IAEzBkwB,KAAM,CACJC,SAAUn1B,KAAKiF,mBAIjBmwB,MAAO,CACLC,QAAS,UAEXC,gBAAiB,CACfC,QAASv1B,KAAK4F,gBACd4vB,kBAAmBx1B,KAAK0F,WAG5B+vB,SAAU,SAAkBp2B,GAEtBA,EAAKq2B,oBAAsBr2B,EAAK2F,WAElCuE,EAAMosB,sBAAsBt2B,IAGhCu2B,SAAU,SAAkBv2B,GAE1BkK,EAAMosB,sBAAsBt2B,OAKpC+J,QAAS,WACP,IAAIa,EAASjK,KAIbA,KAAK61B,SAAW,KAEhB71B,KAAKqyB,WAAY,EAEjBryB,KAAKiH,IAAI,QAAiB,SAAUN,GAClCsD,EAAO6rB,aAAanvB,MAGtB,IAAIovB,EAAgB,WAClB9rB,EAAOpC,WAAU,WAEf,gBAAU,WACRoC,EAAOxC,kBAMbzH,KAAK4G,QAAQovB,MAAM,QAA2BD,GAE9C/1B,KAAKg2B,MAAM,OAAmBD,IAEhC3V,YAAa,WAGXpgB,KAAK60B,WAAa70B,KAAK80B,cAAc90B,KAAKgF,YAE5CixB,QAAS,WAGPj2B,KAAKk2B,gBAEPna,cAAe,WACb/b,KAAKm2B,iBAEPC,UAAW,WAET,IAAIzvB,EAAK3G,KAAK6qB,IACdlkB,GAAMA,EAAG0vB,YAAc1vB,EAAG0vB,WAAWC,YAAY3vB,IAEnD2C,QAAS,CAEPvD,KAAM,WACJ/F,KAAKqyB,WAAY,GAGnByC,cAAe,SAAuB9vB,GACpC,OAAO4uB,EAAcjuB,OAAOX,GAAWuxB,gBAAkB,QAE3DtB,UAAW,SAAmBjwB,GAC5B,IAAKhF,KAAKoF,OAAQ,CAEhB,IAAIgwB,EAAQp1B,KAAKiN,MAAMmoB,OAAS,eAAO,SAAUp1B,KAAK6qB,KAClD2L,EAAc,eAAQ,eAAMpB,GAAOqB,MAAO,GAAK,eAAQz2B,KAAK20B,aAAc,GAE9E,OAAQD,EAAU/uB,OAAOX,GAAWuxB,gBAAkB,GAEpD,KAAK,EAEH,MAAO,WAAWz2B,OAAO02B,EAAa,MAIxC,KAAM,EAEJ,MAAO,WAAW12B,OAAO02B,EAAa,MAExC,QACE,OAAO,GAMb,OAAOx2B,KAAKoF,QAEd0wB,aAAc,SAAsBnvB,GAClC3G,KAAKm2B,gBAGLn2B,KAAK61B,SAAW,IAAI,OAAO71B,KAAKiD,OAAQ0D,EAAI3G,KAAKg1B,eAEnDmB,cAAe,WACbn2B,KAAK61B,UAAY71B,KAAK61B,SAASa,UAC/B12B,KAAK61B,SAAW,MAElBK,aAAc,WACZl2B,KAAK61B,UAAY71B,KAAK61B,SAASc,kBAEjChB,sBAAuB,SAA+Bt2B,GAEpDW,KAAK60B,WAAa70B,KAAK80B,cAAcz1B,EAAK2F,YAI5C4xB,eAAgB,SAAwB13B,GAEtC,OAAOA,EAAE,SAGbD,OAAQ,SAAgBC,GACtB,IAAIyL,EAAS3K,KAEToH,EAASpH,KAAKoH,OAElB,OAAOlI,EAAE,OAAc,CAErBZ,MAAO,CACLu4B,QAAQ,EACRzvB,OAAQA,GAEVzG,GAAI,CAEFm2B,YAAa,SAAqBnwB,GAChC,OAAOgE,EAAO+G,MAAM,OAAiB/K,IAEvCowB,WAAY,SAAoBpwB,GAC9B,OAAOgE,EAAO+G,MAAM,OAAkB/K,IAExCqwB,YAAa,SAAqBrwB,GAChC,OAAOgE,EAAO+G,MAAM,OAAiB/K,IAEvCswB,WAAY,SAAoBtwB,GAC9B,OAAOgE,EAAO+G,MAAM,OAAmB/K,MAG1C,CAAC3G,KAAKqyB,UAAYryB,KAAK42B,eAAe13B,GAAKA,SC3PlD,SAASoD,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAWpM,IAAI,EAAQ,CAEjBwH,KAAM,eAAS,QAAmB,GAElCD,GAAI,eAAS,SAIJ6xB,EAAiC,aAAIp4B,OAAO,CACrDC,KAAM,QACNkoB,QAAS2N,EACTxoB,OAAQ,CAAC,QACT9N,MAAO,EACPe,KAAM,WAGJ,MAAO,CACLwF,MAAO,GACPsyB,QAAS,GACTv4B,QAAS,KACTiH,YAAa,KACbN,aAAa,IAGjB2F,SAAU,CACR6pB,aAAc,WACZ,MAAO,WAETqC,gBAAiB,WACf,IAAIj4B,EAEAP,EAAUoB,KAAKpB,QACfi2B,EAAa70B,KAAK60B,WAClBE,EAAe/0B,KAAK+0B,aACxB,MAAO,EAAE51B,EAAO,CAGdk4B,gBAAiBr3B,KAAKuF,aACrB1H,EAAgBsB,EAAM,KAAKW,OAAOi1B,EAAc,KAAKj1B,OAAOlB,GAAUA,GAAUf,EAAgBsB,EAAM,MAAMW,OAAOi1B,EAAc,KAAKj1B,OAAO+0B,GAAaA,GAAa11B,GAAOa,KAAK6F,cAExLyxB,mBAAoB,WAClB,IAAIjyB,EAAKrF,KAAKqF,GACd,OAAOrC,EAAcA,EAAc,GAAIhD,KAAK4G,QAAQA,QAAQ2wB,QAAS,GAAI,CACvElyB,GAAIA,EACJ7G,KAAM,UACNwrB,SAAU,MACThqB,KAAKw3B,mBAEVC,kBAAmB,WACjB,IAAIluB,EAAQvJ,KAGZ,MAAO,CACLiqB,WAEA,SAAoBza,GAClBjG,EAAMmI,MAAM,OAAuBlC,IAErC0a,WAEA,SAAoB1a,GAClBjG,EAAMmI,MAAM,OAAuBlC,IAErCkoB,QAEA,SAAiBloB,GACfjG,EAAMmI,MAAM,OAAoBlC,IAElCmoB,SAEA,SAAkBnoB,GAChBjG,EAAMmI,MAAM,OAAqBlC,OAKzClG,QAAS,CACPstB,eAAgB,SAAwB13B,GACtC,IAAI2F,EAAQ7E,KAAK6E,MAEb+yB,EAAS,eAAW/yB,GAASA,EAAM,IAAMA,EAEzC4M,EAAWzR,KAAKsF,OAAS,eAAWT,GAAS,CAC/CgzB,UAAWhzB,GACT,GACJ,OAAO3F,EAAE,MAAO,CACdS,YAAa,oBACbE,MAAOG,KAAKo3B,gBACZx3B,MAAOI,KAAKs3B,mBACZ32B,GAAIX,KAAKy3B,mBACR,CAACv4B,EAAE,MAAO,CACXS,YAAa,QACbY,IAAK,UACHrB,EAAE,MAAO,CACXS,YAAa,gBACb8R,SAAUA,GACT,CAACmmB,UC/GV,SAAS,EAAQr1B,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAAS,EAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAK,EAAQjF,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAO,EAAgBkF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmB,EAAQlF,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAAS,EAAgBnF,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EA0B3M,IAAIg6B,EAAiB,iBAEjBC,EAA+B,eAAiB,OAAY,QAE5DC,EAAmB,aAEnBC,EAAqB,CAACH,EAAgBE,GAAkBzxB,KAAK,MAE7D2xB,EAAiB,WACjBC,EAAyB,sBAEzBC,EAAkB,sBAGlBC,EAAe,CAEjBxzB,MAAO,GAEPsyB,QAAS,GAETv4B,QAAS,KAETiH,YAAa,KAEbsB,SAAU,GAEVnC,UAAW,OAEXC,kBAAmB,OAInBhC,OAAQ,KAERiC,UAAW,KAGXkC,QAAQ,EAER1B,SAAU,eAGVE,gBAAiB,EAEjBR,OAAQ,EAERK,MAAO,EAGPkvB,aAAc,EAEdpvB,aAAa,EAEbC,UAAU,EAEVH,GAAI,KAEJC,MAAM,GAIGgzB,EAAyB,aAAIx5B,OAAO,CAC7CC,KAAM,QACNqN,OAAQ,CAAC,QACT/M,KAAM,WACJ,OAAO,EAAc,EAAc,GAAIg5B,GAAe,GAAI,CAExDE,cAAe,CAEb50B,OAAO,EACPC,OAAO,EACPF,OAAO,GAET2uB,WAAW,KAGfnnB,SAAU,CACR6pB,aAAc,WAEZ,MAAO,WAETyD,WAAY,WACV,OAAOx4B,KAAKqF,IAAM,QAAQvF,OAAOE,KAAK+0B,aAAc,KAAKj1B,OAAOE,KAAK,QAAoB,OAE3Fy4B,cAAe,WAEb,IAAIhzB,EAAQ,CACVK,KAAM,EACNC,KAAM,GAUR,OAPI,eAAc/F,KAAKyF,QACrBA,EAAMK,KAAO,OAAA4X,EAAA,MAAQ,eAAU1d,KAAKyF,MAAMK,KAAM,GAAI,GACpDL,EAAMM,KAAO,OAAA2X,EAAA,MAAQ,eAAU1d,KAAKyF,MAAMM,KAAM,GAAI,KAC3C,eAAS/F,KAAKyF,QAAU,eAASzF,KAAKyF,UAC/CA,EAAMK,KAAOL,EAAMM,KAAO,OAAA2X,EAAA,MAAQ,eAAU1d,KAAKyF,MAAO,GAAI,IAGvDA,GAETizB,iBAAkB,WAGhB,OAAO,eAAO14B,KAAKmH,UAAUvE,OAAO0D,EAAA,MAAUC,KAAK,KAAKC,OAAOC,cAAcC,MAAM,OAAO6Q,QAE5FohB,oBAAqB,WACnB,IAAK,IAAI5zB,KAAW/E,KAAKu4B,cACvB,GAAIv4B,KAAKu4B,cAAcxzB,GACrB,OAAO,EAIX,OAAO,GAET6zB,qBAAsB,WACpB,IAAI/zB,EAAQ7E,KAAK6E,MACbsyB,EAAUn3B,KAAKm3B,QACfv4B,EAAUoB,KAAKpB,QACfiH,EAAc7F,KAAK6F,YACnBuB,EAASpH,KAAKoH,OACd7B,EAAcvF,KAAKuF,YACvB,MAAO,CACLV,MAAOA,EACPsyB,QAASA,EACTv4B,QAASA,EACTiH,YAAaA,EACbuB,OAAQA,EACR7B,YAAaA,KAInBqQ,MAAO,CACL8iB,iBAAkB,SAA0BG,EAAaC,GACvD,IAAIvvB,EAAQvJ,KAKP,eAAW64B,EAAaC,IAC3B94B,KAAK6H,WAAU,WAEb0B,EAAMwvB,WAGND,EAAY11B,SAAQ,SAAU2B,GACvB,OAAA2T,EAAA,MAAcmgB,EAAa9zB,IAC1BwE,EAAMgvB,cAAcxzB,KACtBwE,EAAMgvB,cAAcxzB,IAAW,MAKrCwE,EAAMyvB,aAIZJ,qBAAsB,WAGpB54B,KAAKi5B,wBAEPp0B,MAAO,SAAegR,EAAUC,GAE1BD,IAAaC,GAAaD,GAC5B7V,KAAK+F,QAGTP,SAAU,SAAkBqQ,GACtBA,EACF7V,KAAKk5B,UAELl5B,KAAKm5B,WAIX/vB,QAAS,WACP,IAAIa,EAASjK,KAGbA,KAAKo5B,MAAQ,KACbp5B,KAAKq5B,eAAiB,KACtBr5B,KAAKs5B,aAAe,GACpBt5B,KAAKu5B,kBAAoB,KACzBv5B,KAAKw5B,WAAax5B,KAAKwF,SACvBxF,KAAKy5B,OAAS5L,EAAA,KAAKlmB,KAAK3H,MAEpBA,KAAK4G,SACP5G,KAAK4G,QAAQovB,MAAM,SAAgC,WACjD/rB,EAAOpC,WAAU,WAEf,gBAAU,WACRoC,EAAOxC,oBAMfzH,KAAK6H,WAAU,WACb,IAAI5E,EAASgH,EAAOyvB,YAEhBz2B,GAAU,eAAS4jB,SAAS8S,KAAM12B,IAEpCgH,EAAO2vB,QAAU,eAAW3vB,EAAOrD,SAEnCqD,EAAO+uB,UAGP,OAAApe,EAAA,MAAK,eAAS3Q,EAAOhH,QAAU,yCAA0CnD,OAAOmK,EAAOhH,OAAQ,kBAAqB,gDAAiDgH,EAAO8qB,kBAMlLkB,QAAS,WAEPj2B,KAAK6H,UAAU7H,KAAKi5B,uBAItBY,YAAa,WAGX75B,KAAK85B,aAEP/d,cAAe,WAEb/b,KAAK+4B,WACL/4B,KAAK+5B,uBAAsB,GAE3B/5B,KAAKg6B,oBACLh6B,KAAKi6B,0BAELj6B,KAAKk6B,kBAELl6B,KAAKy5B,OAAS,MAEhBnwB,QAAS,CAEP6wB,YAAa,WAEX,OAAOjD,GAEThwB,WAAY,WACV,IAAIyD,EAAS3K,KAETX,EAAO2B,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,GAG3Eo5B,GAAe,EACnB,eAAK/B,GAAcj1B,SAAQ,SAAUmE,GAC9B,eAAYlI,EAAKkI,KAAUoD,EAAOpD,KAAUlI,EAAKkI,KACpDoD,EAAOpD,GAAQlI,EAAKkI,GAEP,UAATA,IACF6yB,GAAe,OAOjBA,GAAgBp6B,KAAKqyB,WACvBryB,KAAKq6B,YAGTC,sBAAuB,WAErB,IAAIp1B,EAAYlF,KAAKu6B,eACjBC,EAAWx6B,KAAKm6B,cAChBM,EAAOz6B,KAAKo5B,MAAQ,IAAIoB,EAAS,CACnC1zB,OAAQ9G,KAER06B,UAAW,CAETr1B,GAAIrF,KAAKw4B,WACTlzB,KAAMtF,KAAKsF,KACXN,UAAWhF,KAAKgF,UAChBC,kBAAmBjF,KAAKiF,kBACxBhC,OAAQjD,KAAK26B,qBACbj1B,SAAU1F,KAAK46B,cAEfx1B,OAAQ,eAAUpF,KAAKoF,OAAQ,GAC/BuvB,aAAc,eAAU30B,KAAK20B,aAAc,GAC3C/uB,gBAAiB,eAAU5F,KAAK4F,gBAAiB,MAIrD5F,KAAKi5B,uBAGLwB,EAAKzE,MAAM,OAAiBh2B,KAAK66B,gBAEjCJ,EAAKzE,MAAM,OAAkBh2B,KAAK86B,iBAElCL,EAAKzE,MAAM,OAAiBh2B,KAAK+6B,gBAEjCN,EAAKzE,MAAM,OAAmBh2B,KAAKg7B,kBAEnCP,EAAKzE,MAAM,QAA2Bh2B,KAAKk6B,iBAI3CO,EAAKxzB,IAAI,OAAoBjH,KAAKi7B,aAClCR,EAAKxzB,IAAI,OAAqBjH,KAAKi7B,aACnCR,EAAKxzB,IAAI,OAAuBjH,KAAKi7B,aACrCR,EAAKxzB,IAAI,OAAuBjH,KAAKi7B,aAErCR,EAAKS,OAAOh2B,EAAUi2B,YAAYtU,SAASuU,cAAc,UAE3DC,aAAc,WAKZr7B,KAAKo5B,OAASp5B,KAAKo5B,MAAMrzB,OAEzB/F,KAAKs7B,sBAELt7B,KAAKs5B,aAAe,IAGtBY,gBAAiB,WACfl6B,KAAK+5B,uBAAsB,GAC3B/5B,KAAKg6B,oBACLh6B,KAAKs5B,aAAe,GACpBt5B,KAAKs7B,sBACLt7B,KAAKu7B,qBAAuB,KAE5B,IACEv7B,KAAKo5B,MAAM3xB,WACX,MAAO+zB,IAETx7B,KAAKo5B,MAAQ,KACbp5B,KAAKy7B,wBACLz7B,KAAK07B,eACL17B,KAAKqyB,WAAY,GAEnBsJ,mBAAoB,WAClB,OAAO37B,KAAKo5B,MAAQp5B,KAAKo5B,MAAMvO,IAAM,MAEvCoO,qBAAsB,WACpB,IAAI2C,EAAS57B,KAITy6B,EAAOz6B,KAAKo5B,MAEhB,GAAIqB,EAAM,CACR,IAAIn8B,EAAQ,CAAC,QAAS,UAAW,UAAW,cAAe,SAAU,eAErEA,EAAM8E,SAAQ,SAAUmE,GAClBkzB,EAAKlzB,KAAUq0B,EAAOr0B,KACxBkzB,EAAKlzB,GAAQq0B,EAAOr0B,SAO5BzB,KAAM,WACJ,IAAI7C,EAASjD,KAAK05B,YAElB,GAAKz2B,GAAW,eAAS4jB,SAAS8S,KAAM12B,IAAY,eAAUA,KAAWjD,KAAK67B,kBAAmB,eAAkB77B,KAAK6E,QAAyB,KAAf7E,KAAK6E,QAAkB,eAAkB7E,KAAKm3B,UAA6B,KAAjBn3B,KAAKm3B,WAQ7Ln3B,KAAKo5B,QAASp5B,KAAKqyB,UAAvB,CAMAryB,KAAKqyB,WAAY,EAEjB,IAAIyJ,EAAU97B,KAAK+7B,WAAW,OAAiB,CAC7CC,YAAY,IAEdh8B,KAAKi8B,UAAUH,GAIXA,EAAQI,iBAEVl8B,KAAKk6B,mBAKPl6B,KAAKq6B,WAELr6B,KAAKm8B,qBAELn8B,KAAKs6B,2BAEPv0B,KAAM,WACJ,IAAIq2B,EAAQp7B,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GAEvEq7B,EAAMr8B,KAAK27B,qBAGf,GAAKU,GAAQr8B,KAAKqyB,UAAlB,CAOA,IAAIiK,EAAUt8B,KAAK+7B,WAAW,OAAiB,CAC7CC,YAAaI,IAEfp8B,KAAKi8B,UAAUK,GAGXA,EAAQJ,kBAMZl8B,KAAKq7B,oBAlBHr7B,KAAK07B,gBAoBT5B,UAAW,WAET,IAAIuC,EAAMr8B,KAAK27B,qBAEVU,GAAQr8B,KAAKqyB,YAOlBryB,KAAK+5B,uBAAsB,GAE3B/5B,KAAKg6B,oBACLh6B,KAAKs5B,aAAe,GACpBt5B,KAAKs7B,sBAEDt7B,KAAKo5B,QACPp5B,KAAKo5B,MAAMhyB,QAAS,GAItBpH,KAAK+F,MAAK,KAEZozB,OAAQ,WACNn5B,KAAKw5B,WAAY,EAEjBx5B,KAAKi8B,UAAUj8B,KAAK+7B,WAAW,UAEjC7C,QAAS,WACPl5B,KAAKw5B,WAAY,EAEjBx5B,KAAKi8B,UAAUj8B,KAAK+7B,WAAW,UAIjClB,eAAgB,WAEd76B,KAAK+5B,uBAAsB,IAG7Be,gBAAiB,WACf,IAAIyB,EAAiBv8B,KAAKs5B,aAC1Bt5B,KAAKs5B,aAAe,GAGG,QAAnBiD,GACFv8B,KAAKw8B,MAAM,MAIbx8B,KAAKi8B,UAAUj8B,KAAK+7B,WAAW,UAGjChB,eAAgB,WAEd/6B,KAAK+5B,uBAAsB,IAG7BiB,iBAAkB,WAEhBh7B,KAAKk6B,kBAELl6B,KAAKi8B,UAAUj8B,KAAK+7B,WAAW,UAGjCrC,UAAW,WACT,IAAIz2B,EAASjD,KAAKiD,OAUlB,OARI,eAASA,GACXA,EAAS,eAAQA,EAAOkZ,QAAQ,KAAM,KAC7B,eAAWlZ,GACpBA,EAASA,IACAA,IACTA,EAASA,EAAO4nB,KAAO5nB,GAGlB,eAAUA,GAAUA,EAAS,MAEtC03B,mBAAoB,WAQlB,OAAO36B,KAAK05B,aAEd+C,YAAa,WAEX,IAAIx5B,EAASjD,KAAK05B,YAClB,OAAOz2B,GAAUA,EAAOoC,GAAKpC,EAAOoC,GAAK,MAE3Ck1B,aAAc,WAEZ,IAAIr1B,IAAYlF,KAAKkF,YAAYlF,KAAKkF,UAAU2lB,KAAO7qB,KAAKkF,WACxDy0B,EAAO9S,SAAS8S,KAChB12B,EAASjD,KAAK05B,YAQlB,OAAqB,IAAdx0B,EAAsB,eAAQ+yB,EAAoBh1B,IAAW02B,EAEpE,eAASz0B,IAET,eAAQA,EAAUiX,QAAQ,KAAM,MAEhCwd,GAEFiB,YAAa,WACX,OAAO56B,KAAK0F,SAAW1F,KAAK0F,SAASmlB,KAAO7qB,KAAK0F,SAAW,gBAE9Dg3B,UAAW,WACT,IAAIz5B,EAASjD,KAAK05B,YAClB,OAAOz2B,GAAU,eAAQ60B,EAAgB70B,IAE3C05B,WAAY,WAEV,IAAI15B,EAASjD,KAAK05B,YAClB,OAAOz2B,GAAU,eAASA,EAAQi1B,IAEpC2D,aAAc,WAEZ,IAAI54B,EAASjD,KAAK05B,YAClB,OAAO15B,KAAK28B,cAAgB15B,GAAU,eAAOk1B,EAAwBl1B,IAEvE+2B,kBAAmB,WACjBhe,aAAahc,KAAKq5B,gBAClBr5B,KAAKq5B,eAAiB,MAExBY,wBAAyB,WACvB2C,cAAc58B,KAAKu5B,mBACnBv5B,KAAKu5B,kBAAoB,MAE3B+B,oBAAqB,WACnB,IAAK,IAAIv2B,KAAW/E,KAAKu4B,cACvBv4B,KAAKu4B,cAAcxzB,IAAW,GAGlCo3B,mBAAoB,WAElB,IAAIl5B,EAASjD,KAAK05B,YACdmD,EAAO,eAAQ55B,EAAQ,qBAAuB,GAClD45B,EAAOA,EAAKn2B,MAAM,OAAO5G,OAAOE,KAAKw4B,YAAYjyB,KAAK,KAAKC,OAE3D,eAAQvD,EAAQ,mBAAoB45B,IAEtCpB,sBAAuB,WACrB,IAAIqB,EAAS98B,KAGTiD,EAASjD,KAAK05B,YACdmD,EAAO,eAAQ55B,EAAQ,qBAAuB,GAClD45B,EAAOA,EAAKn2B,MAAM,OAAO9D,QAAO,SAAUm6B,GACxC,OAAOA,IAAMD,EAAOtE,cACnBjyB,KAAK,KAAKC,OAETq2B,EAEF,eAAQ55B,EAAQ,mBAAoB45B,GAEpC,eAAW55B,EAAQ,qBAGvBo3B,SAAU,WAGR,IAAIp3B,EAASjD,KAAK05B,YAElB,GAAI,eAAQz2B,EAAQ,SAAU,CAE5B,IAAI4B,EAAQ,eAAQ5B,EAAQ,SAC5B,eAAQA,EAAQ,QAAS,IAErB4B,GACF,eAAQ5B,EAAQm1B,EAAiBvzB,KAIvC62B,aAAc,WAGZ,IAAIz4B,EAASjD,KAAK05B,YAElB,GAAI,eAAQz2B,EAAQm1B,GAAkB,CAEpC,IAAIvzB,EAAQ,eAAQ5B,EAAQm1B,GAC5B,eAAWn1B,EAAQm1B,GAEfvzB,GACF,eAAQ5B,EAAQ,QAAS4B,KAK/Bk3B,WAAY,SAAoBp9B,GAC9B,IAAIq+B,EAAUh8B,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,GAElF,OAAO,IAAI,OAAQrC,EAAM,EAAc,CACrCq9B,YAAY,EACZ/4B,OAAQjD,KAAK05B,YACbuD,cAAej9B,KAAK27B,sBAAwB,KAC5CuB,YAAal9B,KAAKw4B,WAClB2E,UAAWn9B,MACVg9B,KAELf,UAAW,SAAmBmB,GAC5B,IAAIz+B,EAAOy+B,EAAQz+B,KACnBqB,KAAK6e,WAAW,eAAiB7e,KAAK+0B,aAAcp2B,GAAOy+B,GAC3Dp9B,KAAK0R,MAAM/S,EAAMy+B,IAGnBpE,OAAQ,WACN,IAAIqE,EAASr9B,KAGT2G,EAAK3G,KAAK05B,YAET/yB,IAML3G,KAAKs9B,iBAAgB,GAErBt9B,KAAK04B,iBAAiBt1B,SAAQ,SAAU2B,GACtB,UAAZA,EACF,eAAQ4B,EAAI,QAAS02B,EAAOpC,YAAa,QACpB,UAAZl2B,GACT,eAAQ4B,EAAI,UAAW02B,EAAOpC,YAAa,QAC3C,eAAQt0B,EAAI,WAAY02B,EAAOpC,YAAa,SACvB,SAAZl2B,EAIT,eAAQ4B,EAAI,WAAY02B,EAAOpC,YAAa,QACvB,UAAZl2B,IACT,eAAQ4B,EAAI,aAAc02B,EAAOpC,YAAa,QAC9C,eAAQt0B,EAAI,aAAc02B,EAAOpC,YAAa,WAE/Cj7B,QAIL+4B,SAAU,WACR,IAAIwE,EAASv9B,KAGTw9B,EAAS,CAAC,QAAS,UAAW,WAAY,aAAc,cACxDv6B,EAASjD,KAAK05B,YAElB15B,KAAKs9B,iBAAgB,GAErBE,EAAOp6B,SAAQ,SAAUoM,GACvBvM,GAAU,eAASA,EAAQuM,EAAO+tB,EAAOtC,YAAa,UACrDj7B,OAELs9B,gBAAiB,SAAyB38B,GAExC,IAAI88B,EAAQz9B,KAAKy9B,MAEjB,GAAIA,EAAO,CACT,IAAI5c,EAASlgB,EAAK,MAAQ,OACtBhC,EAAOqB,KAAK+0B,aAChB0I,EAAM5c,GAAQ,eAAuBliB,EAAM,QAAkBqB,KAAK09B,QAClED,EAAM5c,GAAQ,eAAuBliB,EAAM,QAAkBqB,KAAK29B,QAClEF,EAAM5c,GAAQ,eAAuBliB,EAAM,QAAqBqB,KAAK49B,WACrEH,EAAM5c,GAAQ,eAAuBliB,EAAM,QAAoBqB,KAAK69B,YAGxE9D,sBAAuB,SAA+Bp5B,GAGpDX,KAAK89B,iBAAiBn9B,GAEtBX,KAAK+9B,oBAAoBp9B,GAGzBX,KAAKg+B,aAAar9B,GAElBX,KAAKi+B,wBAAwBt9B,IAG/Bq9B,aAAc,SAAsBr9B,GAClC,IAAIu9B,EAASl+B,KAEbA,KAAKi6B,0BACL,IAAIh3B,EAASjD,KAAK05B,YACd2C,EAAMr8B,KAAK27B,qBAEXh7B,IACFX,KAAKu5B,kBAAoB4E,aAAY,YAC/B9B,IAAO6B,EAAO7L,WAAepvB,EAAOozB,YAAe,eAAUpzB,IAE/Di7B,EAAOpE,cAER,OAGPgE,iBAAkB,SAA0Bn9B,GAEtCX,KAAK08B,aAEP18B,KAAKy9B,MAAM98B,EAAK,MAAQ,QAAQo3B,EAA8B/3B,KAAK85B,YAKvEmE,wBAAyB,SAAiCt9B,GACxD,IAAIy9B,EAASp+B,KAMT,iBAAkB6mB,SAASwX,iBAC7B,OAAA3lB,EAAA,MAAUmO,SAAS8S,KAAK3O,UAAU5nB,SAAQ,SAAUuD,GAClD,eAAWhG,EAAIgG,EAAI,YAAay3B,EAAO3E,YAI7CsE,oBAAqB,SAA6Bp9B,GAChD,IAAIsC,EAASjD,KAAK05B,YAEbz2B,GAAWjD,KAAKy9B,OAAUz9B,KAAK28B,YAWhC15B,EAAOq7B,SACTr7B,EAAOq7B,QAAQ39B,EAAK,MAAQ,QAAQ,OAAkBX,KAAK85B,YAI/DmB,YAAa,SAAqBzrB,GAGhC,IAAIvM,EAASjD,KAAK05B,YAElB,GAAKz2B,IAAU,eAAWA,IAAYjD,KAAKw5B,YAAax5B,KAAK67B,eAA7D,CAOA,IAAIl9B,EAAO6Q,EAAM7Q,KACbwI,EAAWnH,KAAK04B,iBAEpB,GAAa,UAAT/5B,GAAoB,OAAA+Z,EAAA,MAAcvR,EAAU,SAC9CnH,KAAK4D,MAAM4L,QACN,GAAa,eAAT7Q,GAAyB,OAAA+Z,EAAA,MAAcvR,EAAU,SAE1DnH,KAAKu+B,MAAM/uB,QACN,GAAa,YAAT7Q,GAAsB,OAAA+Z,EAAA,MAAcvR,EAAU,SAGvDnH,KAAKu+B,MAAM/uB,QACN,GAAa,aAAT7Q,IAAwB,OAAA+Z,EAAA,MAAcvR,EAAU,UAAY,OAAAuR,EAAA,MAAcvR,EAAU,UAAqB,eAATxI,GAAyB,OAAA+Z,EAAA,MAAcvR,EAAU,SAAU,CAIpK,IAAIk1B,EAAMr8B,KAAK27B,qBAEX6C,EAAchvB,EAAMvM,OAEpBg6B,EAAgBztB,EAAMytB,cAG1B,GACAZ,GAAO,eAASA,EAAKmC,IAAgB,eAASv7B,EAAQg6B,IACtDZ,GAAO,eAASp5B,EAAQu7B,IAAgB,eAASnC,EAAKY,IACtDZ,GAAO,eAASA,EAAKmC,IAAgB,eAASnC,EAAKY,IACnD,eAASh6B,EAAQu7B,IAAgB,eAASv7B,EAAQg6B,GAEhD,OAIFj9B,KAAKw8B,MAAMhtB,MAGfkuB,OAAQ,SAAgBr4B,GAEjBA,GAAMrF,KAAKy8B,gBAAkBp3B,GAAMrF,KAAKw4B,aAAenzB,GAE1DrF,KAAK85B,aAGT6D,OAAQ,SAAgBt4B,GAEjBA,GAAMrF,KAAKy8B,gBAAkBp3B,GAAMrF,KAAKw4B,aAAenzB,GAE1DrF,KAAK8F,QAKT83B,UAAW,SAAmBv4B,GAIvBA,GAAMrF,KAAKy8B,gBAAkBp3B,GAAMrF,KAAKw4B,aAAenzB,GAE1DrF,KAAKk5B,WAKT2E,SAAU,SAAkBx4B,GAIrBA,GAAMrF,KAAKy8B,gBAAkBp3B,GAAMrF,KAAKw4B,aAAenzB,GAE1DrF,KAAKm5B,UAGTv1B,MAAO,SAAe4L,GACfxP,KAAKw5B,YAAax5B,KAAK67B,iBAW5B,eAAarsB,EAAMivB,eACnBz+B,KAAKu4B,cAAc30B,OAAS5D,KAAKu4B,cAAc30B,MAE3C5D,KAAK24B,oBACP34B,KAAKu+B,MAAM,MAGXv+B,KAAKw8B,MAAM,QAKfkC,OAAQ,WAED1+B,KAAKw5B,YAAax5B,KAAK67B,iBAOxB77B,KAAKqyB,UACPryB,KAAKw8B,MAAM,MAEXx8B,KAAKu+B,MAAM,QAGfA,MAAO,WACL,IAAII,EAAU3+B,KAEVwP,EAAQxO,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,KAI5EwO,IACFxP,KAAKu4B,cAA6B,YAAf/oB,EAAM7Q,KAAqB,QAAU,UAAW,GAKjEqB,KAAKqyB,WAAmC,OAAtBryB,KAAKs5B,aACzBt5B,KAAKs5B,aAAe,MAItBt5B,KAAKg6B,oBACLh6B,KAAKs5B,aAAe,KAEft5B,KAAKy4B,cAAc3yB,MAItB9F,KAAKq6B,WACLr6B,KAAKq5B,eAAiBvd,YAAW,WAEF,OAAzB6iB,EAAQrF,aACVqF,EAAQ74B,OACE64B,EAAQtM,WAClBsM,EAAQjD,iBAET17B,KAAKy4B,cAAc3yB,OAXtB9F,KAAK8F,SAcT02B,MAAO,WACL,IAAIoC,EAAU5+B,KAEVwP,EAAQxO,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,KAI5EwO,IACFxP,KAAKu4B,cAA6B,aAAf/oB,EAAM7Q,KAAsB,QAAU,UAAW,EAGjD,aAAf6Q,EAAM7Q,MAAuB,OAAA+Z,EAAA,MAAc1Y,KAAK04B,iBAAkB,UAEpE14B,KAAKu4B,cAAc30B,OAAQ,EAC3B5D,KAAKu4B,cAAc50B,OAAQ,IAM3B3D,KAAK24B,sBAIT34B,KAAKg6B,oBACLh6B,KAAKs5B,aAAe,MAEft5B,KAAKy4B,cAAc1yB,KAGtB/F,KAAKq5B,eAAiBvd,YAAW,WACF,QAAzB8iB,EAAQtF,cACVsF,EAAQ74B,SAET/F,KAAKy4B,cAAc1yB,MANtB/F,KAAK+F,a,uBC59Bb,IAAI84B,EAAwB,EAAQ,QAIpCA,EAAsB,gB,oCCJtB,uKAASv8B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAa3M,IAAIghC,EAAiB,CACnBC,IAAK,EACLC,KAAM,EACNC,OAAQ,EACRC,MAAO,GAGE5gC,EAAQ,eAAsB,CAGvC6gC,QAAS,eAAS,QAClBt7B,KAAM,eAAS,OAAkB,OACjC4gB,MAAO,eAAS,QAAmB,GACnC2a,SAAU,eAAS,QAAmB,GACtCh4B,OAAQ,eAAS,QAAmB,GAGpCi4B,OAAQ,eAAS,QAAmB,GACpCC,QAAS,eAAS,OAAyB,KAAM,SAAUthC,GACzD,IAAIuhC,EAAS,eAAQvhC,EAAO,GAC5B,OAAOuhC,GAAU,GAAKA,GAAU,KAElCC,WAAY,eAAS,OAAkB,OACvCC,QAAS,eAAS,QAA0B,GAC5C35B,KAAM,eAAS,QAAmB,GAClC45B,aAAc,eAAS,QAAmB,GAC1CC,YAAa,eAAS,OAAkB,UACxCC,eAAgB,eAAS,QACzBhhC,QAAS,eAAS,OAAkB,SACpCihC,QAAS,eAAS,OAAkB,OACpCC,OAAQ,eAAS,OAAyB,KACzC,SAGQ/2B,EAAwB,aAAIjK,OAAO,CAC5CC,KAAM,QACNqN,OAAQ,CAAC,QACT9N,MAAOA,EACP4M,SAAU,CACR60B,gBAAiB,WACf,IAAIN,EAAUz/B,KAAKy/B,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,EAAiB,UAAaA,EAAe,WAAW3/B,OAAO2/B,GAAvB,IAErEO,gBAAiB,WACf,IAAIphC,EAAUoB,KAAKpB,QACnB,OAAOA,IAAYoB,KAAKm/B,QAAU,MAAMr/B,OAAOlB,GAAW,IAE5D8pB,UAAW,WACT,MAAO,CACLiX,YAAa3/B,KAAK2/B,aAAe,KACjCC,eAAgB5/B,KAAK4/B,gBAAkB,KACvCF,aAAc1/B,KAAK0/B,gBAIzBp2B,QAAS,CACP22B,iBAAkB,SAA0B9gC,GAC1C,IAAIwgC,EAAcxgC,EAAKwgC,YACnBC,EAAiBzgC,EAAKygC,eACtBF,EAAevgC,EAAKugC,aACxB,OAAO1/B,KAAKE,eAAe,OAAU,CACnC5B,MAAO,CACLK,KAAMghC,EACN/gC,QAASghC,EACTnhC,MAAOihC,OAKfzgC,OAAQ,SAAgBC,GACtB,IAAIqK,EAAQvJ,KAER8F,EAAO9F,KAAK8F,KACZ2e,EAAQzkB,KAAKykB,MACbrd,EAASpH,KAAKoH,OACdi4B,EAASr/B,KAAKq/B,OACd3W,EAAY1oB,KAAK0oB,UACjBwX,EAAWhhC,IAEf,GAAI4G,EAAM,CACR,IAAIq6B,EAAcjhC,EAAE,MAAO,CACzBS,YAAa,oBACbE,MAAO,CAACG,KAAKggC,gBAAiBhgC,KAAK+/B,iBACnC/Z,MAAOhjB,EAAcA,EAAc,GAAI87B,GAAiB,GAAI,CAC1DQ,QAASt/B,KAAKs/B,QACdc,gBAAiBpgC,KAAKm/B,SAAW,KACjCkB,eAAgBrgC,KAAK6D,KAAO,QAAQ/D,OAAOE,KAAK6D,KAAM,KAAO,SAG7DyR,EAAWpW,EAAE,MAAO,CACtBS,YAAa,oBACbqmB,MAAOhmB,KAAKo/B,SAEZp8B,EAAc,GAAI87B,GAAkB,CAClCC,IAAK,MACLC,KAAM,MACNsB,UAAW,sCAEZ,CAACtgC,KAAK+T,cAAc,OAAmB2U,IAAc1oB,KAAKigC,iBAAiBvX,KAC9EwX,EAAWhhC,EAAEc,KAAKw/B,WAAY,CAC5B7/B,YAAa,YACbE,MAAO,CACL,qBAAsBw/B,GAAUA,IAAW5a,EAC3C,iBAAkB4a,GAAU5a,GAE9BuB,MAAOhjB,EAAcA,EAAc,GAAI87B,GAAiB,GAAI,CAC1DgB,OAAQ9/B,KAAK8/B,QAAU,KAEzBn/B,GAAI,CACFiD,MAAO,SAAe4L,GACpB,OAAOjG,EAAMmI,MAAM,OAAkBlC,KAGzCzR,IAAK,WACJ,CAACoiC,EAAa7qB,IAmBnB,OAfA4qB,EAAWhhC,EAAE,OAAc,CACzBZ,MAAO,CACL8I,OAAQA,EACRyvB,QAAQ,GAEVl2B,GAAI,CACF,cAAe,WACb,OAAO4I,EAAMmI,MAAM,SAErB,cAAe,WACb,OAAOnI,EAAMmI,MAAM,WAGtB,CAACwuB,IAEAb,EACKa,EAGFhhC,EAAEc,KAAK6/B,QAAS,CACrBlgC,YAAa,mCACbC,MAAO,CACL,YAAakG,EAAO,OAAS,OAE9Bu5B,EAAS,CAACa,GAAY,CAAClgC,KAAK+T,gBAAiBmsB,Q,kCC/JpD,uKAAS59B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAa3M,IAAIyiC,EAAmB,CAAC,QAAS,MAAO,UAIpCC,EAAsB,gBAAQ,SAAUC,EAAYC,GAEtD,OADAA,EAAO,eAAK,eAASA,IACdA,EAAO,eAAU,CAAC,WAAYD,EAAYC,GAAM99B,OAAO,QAAU2D,KAAK,MAAQ,QAInFo6B,EAA2B,gBAAQ,SAAUp5B,GAC/C,OAAO,eAAUA,EAAK4U,QAAQ,OAAQ,QAIpCykB,EAAkB,GAGXC,EAAgB,WAEzB,IAAIC,EAAe,iBAAyB/oB,QAAO,SAAUzZ,EAAOmiC,GAElE,OADAniC,EAAM,eAAemiC,EAAY,SAAW,eAAS,QAC9CniC,IACN,eAAO,OAIV,OAFAsiC,EAAkB,eAAKE,GAEhB,eAAsB,eAAS99B,EAAcA,EAAc,GAAI89B,GAAe,GAAI,CACvFC,aAAc,eAAS,OAAkB,MAAM,SAAU/iC,GACvD,OAAO,eAAc,eAAOuiC,EAAkB,UAAW,SAAU,WAAYviC,MAEjFgjC,OAAQ,eAAS,OAAkB,MAAM,SAAUhjC,GACjD,OAAO,eAAc,eAAOuiC,EAAkB,UAAW,UAAWviC,MAEtEijC,OAAQ,eAAS,OAAkB,MAAM,SAAUjjC,GACjD,OAAO,eAAc,eAAOuiC,EAAkB,WAAY,WAAYviC,MAExEkjC,UAAW,eAAS,QAAmB,GACvCxiC,IAAK,eAAS,OAAkB,UAC7B,UAMIgK,EAAO,CAChB3J,KAAM,QACNC,YAAY,EAEZ,YAME,cAFOgB,KAAK1B,MACZ0B,KAAK1B,MAAQuiC,IACN7gC,KAAK1B,OAGdW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIgiC,EAEA7iC,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZ2rB,EAAW7rB,EAAK6rB,SAChBiW,EAAS3iC,EAAM2iC,OACfD,EAAS1iC,EAAM0iC,OACfD,EAAeziC,EAAMyiC,aAErBK,EAAY,GAWhB,OAVAR,EAAgBx9B,SAAQ,SAAUmE,GAChC,IAAI2J,EAAIsvB,EAAoBG,EAAyBp5B,GAAOjJ,EAAMiJ,IAE9D2J,GACFkwB,EAAUr+B,KAAKmO,MAGnBkwB,EAAUr+B,MAAMo+B,EAAkB,CAChC,aAAc7iC,EAAM4iC,WACnBrjC,EAAgBsjC,EAAiB,eAAerhC,OAAOmhC,GAASA,GAASpjC,EAAgBsjC,EAAiB,mBAAmBrhC,OAAOkhC,GAASA,GAASnjC,EAAgBsjC,EAAiB,iBAAiBrhC,OAAOihC,GAAeA,GAAeI,IACzOjiC,EAAEZ,EAAMI,IAAK,eAAUW,EAAM,CAClCM,YAAa,MACbE,MAAOuhC,IACLpW,M,qBCnGR7a,EAAOC,QAAU,IAA0B,yB,kCCA3C,4GAIW9R,EAAQ,eAAsB,CACvC+iC,MAAO,eAAS,QAAmB,IAClC,gBAGQC,EAAkB,aAAIxiC,OAAO,CACtCR,MAAOA,EACP4M,SAAU,CACRq2B,OAAQ,WACN,OAAQvhC,KAAKqhC,W,qBCbnB,IAAIxC,EAAwB,EAAQ,QAIpCA,EAAsB,kB,kCCJtB,kCACO,IAAM98B,EAA2B,CACtC1C,KAAI,WACF,MAAO,CACLuC,kBAAmB,aAGvB0H,QAAS,CACPvH,yBAAwB,WACtB/B,KAAK4B,kBAA+C,aAA3B5B,KAAK4B,kBAAmC,OAAS,e,wECT5E4/B,E,wECEO,EAAe,SAAsB9oB,EAAO1a,GACrD,IAAK,IAAIkF,EAAI,EAAGA,EAAIwV,EAAMxX,OAAQgC,IAChC,GAAI,eAAWwV,EAAMxV,GAAIlF,GACvB,OAAOkF,EAIX,OAAQ,G,oCDPV,SAASZ,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAa3M,IAAI2jC,EAAgC,gBAChCC,EAAiC,QAA0BD,EAEpD,EAAQ,eAAsB,eAASz+B,EAAcA,EAAc,GAAI,QAAsB,IAAKw+B,EAAiB,GAAI3jC,EAAgB2jC,EAAgBC,EAA+B,eAAS,QAAmB,IAAS5jC,EAAgB2jC,EAAgB,SAAU,eAAS,QAAmB,IAAS3jC,EAAgB2jC,EAAgB,iBAAkB,eAAS,QAAe,IAAS3jC,EAAgB2jC,EAAgB,QAAS,eAAS,QAAe,IAAQA,KAAmB,QAGzd51B,EAA6B,aAAI9M,OAAO,CACjDC,KAAM,OACNqN,OAAQ,CAAC,QACTqG,OAAQ,CACNkvB,QAAS,CACPloB,KAAM,eACNvQ,QAAS,OAGb5K,MAAO,EACP4M,SAAU,CACR02B,UAAW,WACT,IAAI5jC,EAAQgC,KAAKhC,MACb6jC,EAAU7hC,KAAK8hC,qBACnB,OAAO,eAAQD,GAAW,EAAaA,EAAS7jC,IAAU,EAAI,eAAW6jC,EAAS7jC,IAEpF+jC,QAAS,WACP,OAAO,IAGXnsB,MAAO/X,EAAgB,GAAI4jC,GAA+B,SAAU5rB,EAAUC,GACvE,eAAWD,EAAUC,IACxB9V,KAAKgiC,iBAAiBnsB,MAG1B9I,QAAS,WAEP/M,KAAKgiC,iBAAiBhiC,KAAKyhC,KAE7Bn4B,QAAS,CACP24B,4BAA6B,SAAqCpsB,EAAUC,GAC1E,IAAK,eAAWD,EAAUC,GAAW,CACnC9V,KAAK0R,MAAM,OAAkBmE,GAC7B,IAAIqsB,EAASliC,KAAKiN,MAAM2Z,MAEpBsb,GACFliC,KAAK0R,MAAMgwB,EAAgCQ,EAAOC,iBAIxDC,aAAc,SAAsBjjC,GAClC,IAAIoK,EAAQvJ,KAERqiC,EAAcljC,EAAK8D,OACnB4+B,EAAUQ,EAAYR,QACtBM,EAAgBE,EAAYF,cAC5BnkC,EAAQgC,KAAKhC,MACbskC,EAAiBtiC,KAAKsiC,eAEtBC,EAAeviC,KAAK8hC,qBAExB,GAAI,eAAQS,GAAe,CACzB,IAAIh6B,EAAQ,EAAag6B,EAAcvkC,GAEnC6jC,GAAWt5B,EAAQ,EAErBg6B,EAAeA,EAAaziC,OAAO9B,IACzB6jC,GAAWt5B,GAAS,IAE9Bg6B,EAAeA,EAAan8B,MAAM,EAAGmC,GAAOzI,OAAOyiC,EAAan8B,MAAMmC,EAAQ,UAGhFg6B,EAAeV,EAAU7jC,EAAQskC,EAGnCtiC,KAAK8hC,qBAAuBS,EAE5BviC,KAAK6H,WAAU,WAEb0B,EAAMmI,MAAM,OAAmB6wB,GAG3Bh5B,EAAMi5B,SACRj5B,EAAMo4B,QAAQjwB,MAAM,OAAmB6wB,GAGzCh5B,EAAMmI,MAAMgwB,EAAgCS,OAGhDH,iBAAkB,SAA0Br1B,GAEtC,eAAQ3M,KAAK8hC,wBACfn1B,GAAQ,GAGV,IAAIu1B,EAASliC,KAAKiN,MAAM2Z,MAEpBsb,IACFA,EAAOC,cAAgBx1B,EAEvB3M,KAAK0R,MAAMgwB,EAAgC/0B,S,8PElHnD,SAASqC;;AAEPA,EAAsB,WACpB,OAAO8B,GAET,IAAID,EACFC,EAAI,GACJC,EAAI9S,OAAOmb,UACXxI,EAAIG,EAAE0xB,eACNzxB,EAAI/S,OAAOC,gBAAkB,SAAU2S,EAAGC,EAAGC,GAC3CF,EAAEC,GAAKC,EAAE/S,OAEXkF,EAAI,mBAAqByW,OAASA,OAAS,GAC3C1I,EAAI/N,EAAE0W,UAAY,aAClB1I,EAAIhO,EAAEw/B,eAAiB,kBACvBvxB,EAAIjO,EAAEy/B,aAAe,gBACvB,SAASC,EAAO/xB,EAAGC,EAAGC,GACpB,OAAO9S,OAAOC,eAAe2S,EAAGC,EAAG,CACjC9S,MAAO+S,EACP5S,YAAY,EACZC,cAAc,EACdC,UAAU,IACRwS,EAAEC,GAER,IACE8xB,EAAO,GAAI,IACX,MAAO/xB,GACP+xB,EAAS,SAAgB/xB,EAAGC,EAAGC,GAC7B,OAAOF,EAAEC,GAAKC,GAGlB,SAAS5B,EAAK0B,EAAGC,EAAGC,EAAGH,GACrB,IAAI1N,EAAI4N,GAAKA,EAAEsI,qBAAqBypB,EAAY/xB,EAAI+xB,EAClD5xB,EAAIhT,OAAO6kC,OAAO5/B,EAAEkW,WACpBlI,EAAI,IAAI6xB,EAAQnyB,GAAK,IACvB,OAAOI,EAAEC,EAAG,UAAW,CACrBjT,MAAOglC,EAAiBnyB,EAAGE,EAAGG,KAC5BD,EAEN,SAASgyB,EAASpyB,EAAGC,EAAGC,GACtB,IACE,MAAO,CACLpS,KAAM,SACNqH,IAAK6K,EAAEyI,KAAKxI,EAAGC,IAEjB,MAAOF,GACP,MAAO,CACLlS,KAAM,QACNqH,IAAK6K,IAIXC,EAAE3B,KAAOA,EACT,IAAIjQ,EAAI,iBACNgkC,EAAI,iBACJ3mB,EAAI,YACJ4mB,EAAI,YACJ5yB,EAAI,GACN,SAASsyB,KACT,SAASO,KACT,SAASC,KACT,IAAIC,EAAI,GACRV,EAAOU,EAAGryB,GAAG,WACX,OAAOjR,QAET,IAAI+8B,EAAI9+B,OAAOyxB,eACbhY,EAAIqlB,GAAKA,EAAEA,EAAEwG,EAAO,MACtB7rB,GAAKA,IAAM3G,GAAKH,EAAE0I,KAAK5B,EAAGzG,KAAOqyB,EAAI5rB,GACrC,IAAI8rB,EAAIH,EAA2BjqB,UAAYypB,EAAUzpB,UAAYnb,OAAO6kC,OAAOQ,GACnF,SAASG,EAAsB5yB,GAC7B,CAAC,OAAQ,QAAS,UAAUzN,SAAQ,SAAU0N,GAC5C8xB,EAAO/xB,EAAGC,GAAG,SAAUD,GACrB,OAAO7Q,KAAK0jC,QAAQ5yB,EAAGD,SAI7B,SAAS8yB,EAAc9yB,EAAGC,GACxB,SAAS8yB,EAAO7yB,EAAGC,EAAG9N,EAAG+N,GACvB,IAAIC,EAAI+xB,EAASpyB,EAAEE,GAAIF,EAAGG,GAC1B,GAAI,UAAYE,EAAEvS,KAAM,CACtB,IAAIwS,EAAID,EAAElL,IACR9G,EAAIiS,EAAEnT,MACR,OAAOkB,GAAK,UAAY2kC,eAAQ3kC,IAAM0R,EAAE0I,KAAKpa,EAAG,WAAa4R,EAAEQ,QAAQpS,EAAE4kC,SAASn6B,MAAK,SAAUkH,GAC/F+yB,EAAO,OAAQ/yB,EAAG3N,EAAG+N,MACpB,SAAUJ,GACX+yB,EAAO,QAAS/yB,EAAG3N,EAAG+N,MACnBH,EAAEQ,QAAQpS,GAAGyK,MAAK,SAAUkH,GAC/BM,EAAEnT,MAAQ6S,EAAG3N,EAAEiO,MACd,SAAUN,GACX,OAAO+yB,EAAO,QAAS/yB,EAAG3N,EAAG+N,MAGjCA,EAAEC,EAAElL,KAEN,IAAI+K,EACJC,EAAEhR,KAAM,UAAW,CACjBhC,MAAO,SAAe6S,EAAGD,GACvB,SAASmzB,IACP,OAAO,IAAIjzB,GAAE,SAAUA,EAAGC,GACxB6yB,EAAO/yB,EAAGD,EAAGE,EAAGC,MAGpB,OAAOA,EAAIA,EAAIA,EAAEpH,KAAKo6B,EAA4BA,GAA8BA,OAItF,SAASf,EAAiBlyB,EAAGC,EAAGH,GAC9B,IAAII,EAAI9R,EACR,OAAO,SAAUgE,EAAG+N,GAClB,GAAID,IAAMuL,EAAG,MAAMynB,MAAM,gCACzB,GAAIhzB,IAAMmyB,EAAG,CACX,GAAI,UAAYjgC,EAAG,MAAM+N,EACzB,MAAO,CACLjT,MAAO6S,EACPO,MAAM,GAGV,IAAKR,EAAEiQ,OAAS3d,EAAG0N,EAAE5K,IAAMiL,IAAK,CAC9B,IAAIC,EAAIN,EAAEqzB,SACV,GAAI/yB,EAAG,CACL,IAAIC,EAAI+yB,EAAoBhzB,EAAGN,GAC/B,GAAIO,EAAG,CACL,GAAIA,IAAMZ,EAAG,SACb,OAAOY,GAGX,GAAI,SAAWP,EAAEiQ,OAAQjQ,EAAEuzB,KAAOvzB,EAAEwzB,MAAQxzB,EAAE5K,SAAS,GAAI,UAAY4K,EAAEiQ,OAAQ,CAC/E,GAAI7P,IAAM9R,EAAG,MAAM8R,EAAImyB,EAAGvyB,EAAE5K,IAC5B4K,EAAEyzB,kBAAkBzzB,EAAE5K,SACjB,WAAa4K,EAAEiQ,QAAUjQ,EAAE0zB,OAAO,SAAU1zB,EAAE5K,KACrDgL,EAAIuL,EACJ,IAAI+mB,EAAIL,EAASnyB,EAAGC,EAAGH,GACvB,GAAI,WAAa0yB,EAAE3kC,KAAM,CACvB,GAAIqS,EAAIJ,EAAEQ,KAAO+xB,EAAID,EAAGI,EAAEt9B,MAAQuK,EAAG,SACrC,MAAO,CACLvS,MAAOslC,EAAEt9B,IACToL,KAAMR,EAAEQ,MAGZ,UAAYkyB,EAAE3kC,OAASqS,EAAImyB,EAAGvyB,EAAEiQ,OAAS,QAASjQ,EAAE5K,IAAMs9B,EAAEt9B,OAIlE,SAASk+B,EAAoBpzB,EAAGC,GAC9B,IAAIH,EAAIG,EAAE8P,OACR7P,EAAIF,EAAE8I,SAAShJ,GACjB,GAAII,IAAMH,EAAG,OAAOE,EAAEkzB,SAAW,KAAM,UAAYrzB,GAAKE,EAAE8I,SAAS,YAAc7I,EAAE8P,OAAS,SAAU9P,EAAE/K,IAAM6K,EAAGqzB,EAAoBpzB,EAAGC,GAAI,UAAYA,EAAE8P,SAAW,WAAajQ,IAAMG,EAAE8P,OAAS,QAAS9P,EAAE/K,IAAM,IAAIiT,UAAU,oCAAsCrI,EAAI,aAAcL,EAC1R,IAAIrN,EAAI+/B,EAASjyB,EAAGF,EAAE8I,SAAU7I,EAAE/K,KAClC,GAAI,UAAY9C,EAAEvE,KAAM,OAAOoS,EAAE8P,OAAS,QAAS9P,EAAE/K,IAAM9C,EAAE8C,IAAK+K,EAAEkzB,SAAW,KAAM1zB,EACrF,IAAIU,EAAI/N,EAAE8C,IACV,OAAOiL,EAAIA,EAAEG,MAAQL,EAAED,EAAEyzB,YAActzB,EAAEjT,MAAO+S,EAAEzB,KAAOwB,EAAE0zB,QAAS,WAAazzB,EAAE8P,SAAW9P,EAAE8P,OAAS,OAAQ9P,EAAE/K,IAAM6K,GAAIE,EAAEkzB,SAAW,KAAM1zB,GAAKU,GAAKF,EAAE8P,OAAS,QAAS9P,EAAE/K,IAAM,IAAIiT,UAAU,oCAAqClI,EAAEkzB,SAAW,KAAM1zB,GAE9P,SAASk0B,EAAa5zB,GACpB,IAAIC,EAAI,CACN4zB,OAAQ7zB,EAAE,IAEZ,KAAKA,IAAMC,EAAE6zB,SAAW9zB,EAAE,IAAK,KAAKA,IAAMC,EAAE8zB,WAAa/zB,EAAE,GAAIC,EAAE+zB,SAAWh0B,EAAE,IAAK7Q,KAAK8kC,WAAW/hC,KAAK+N,GAE1G,SAASi0B,EAAcl0B,GACrB,IAAIC,EAAID,EAAEm0B,YAAc,GACxBl0B,EAAEnS,KAAO,gBAAiBmS,EAAE9K,IAAK6K,EAAEm0B,WAAal0B,EAElD,SAASiyB,EAAQlyB,GACf7Q,KAAK8kC,WAAa,CAAC,CACjBJ,OAAQ,SACN7zB,EAAEzN,QAAQqhC,EAAczkC,MAAOA,KAAKilC,OAAM,GAEhD,SAAS1B,EAAOzyB,GACd,GAAIA,GAAK,KAAOA,EAAG,CACjB,IAAIC,EAAID,EAAEG,GACV,GAAIF,EAAG,OAAOA,EAAEuI,KAAKxI,GACrB,GAAI,mBAAqBA,EAAExB,KAAM,OAAOwB,EACxC,IAAKo0B,MAAMp0B,EAAE5P,QAAS,CACpB,IAAI8P,GAAK,EACP9N,EAAI,SAASoM,IACX,OAAS0B,EAAIF,EAAE5P,QAAS,GAAI0P,EAAE0I,KAAKxI,EAAGE,GAAI,OAAO1B,EAAKtR,MAAQ8S,EAAEE,GAAI1B,EAAK8B,MAAO,EAAI9B,EACpF,OAAOA,EAAKtR,MAAQ6S,EAAGvB,EAAK8B,MAAO,EAAI9B,GAE3C,OAAOpM,EAAEoM,KAAOpM,GAGpB,MAAM,IAAI+V,UAAU4qB,eAAQ/yB,GAAK,oBAEnC,OAAOsyB,EAAkBhqB,UAAYiqB,EAA4BryB,EAAEwyB,EAAG,cAAe,CACnFxlC,MAAOqlC,EACPjlC,cAAc,IACZ4S,EAAEqyB,EAA4B,cAAe,CAC/CrlC,MAAOolC,EACPhlC,cAAc,IACZglC,EAAkB+B,YAAcvC,EAAOS,EAA4BlyB,EAAG,qBAAsBL,EAAEs0B,oBAAsB,SAAUv0B,GAChI,IAAIC,EAAI,mBAAqBD,GAAKA,EAAE0I,YACpC,QAASzI,IAAMA,IAAMsyB,GAAqB,uBAAyBtyB,EAAEq0B,aAAer0B,EAAE/R,QACrF+R,EAAE7B,KAAO,SAAU4B,GACpB,OAAO5S,OAAOwS,eAAiBxS,OAAOwS,eAAeI,EAAGwyB,IAA+BxyB,EAAEw0B,UAAYhC,EAA4BT,EAAO/xB,EAAGM,EAAG,sBAAuBN,EAAEuI,UAAYnb,OAAO6kC,OAAOU,GAAI3yB,GACpMC,EAAEw0B,MAAQ,SAAUz0B,GACrB,MAAO,CACLizB,QAASjzB,IAEV4yB,EAAsBE,EAAcvqB,WAAYwpB,EAAOe,EAAcvqB,UAAWlI,GAAG,WACpF,OAAOlR,QACL8Q,EAAE6yB,cAAgBA,EAAe7yB,EAAEy0B,MAAQ,SAAU10B,EAAGE,EAAGH,EAAGI,EAAG9N,QACnE,IAAWA,IAAMA,EAAImO,SACrB,IAAIJ,EAAI,IAAI0yB,EAAcx0B,EAAK0B,EAAGE,EAAGH,EAAGI,GAAI9N,GAC5C,OAAO4N,EAAEs0B,oBAAoBr0B,GAAKE,EAAIA,EAAE3B,OAAO3F,MAAK,SAAUkH,GAC5D,OAAOA,EAAEO,KAAOP,EAAE7S,MAAQiT,EAAE3B,WAE7Bm0B,EAAsBD,GAAIZ,EAAOY,EAAGryB,EAAG,aAAcyxB,EAAOY,EAAGvyB,GAAG,WACnE,OAAOjR,QACL4iC,EAAOY,EAAG,YAAY,WACxB,MAAO,wBACL1yB,EAAErO,KAAO,SAAUoO,GACrB,IAAIC,EAAI7S,OAAO4S,GACbE,EAAI,GACN,IAAK,IAAIH,KAAKE,EAAGC,EAAEhO,KAAK6N,GACxB,OAAOG,EAAEy0B,UAAW,SAASl2B,IAC3B,KAAOyB,EAAE7P,QAAS,CAChB,IAAI2P,EAAIE,EAAE00B,MACV,GAAI50B,KAAKC,EAAG,OAAOxB,EAAKtR,MAAQ6S,EAAGvB,EAAK8B,MAAO,EAAI9B,EAErD,OAAOA,EAAK8B,MAAO,EAAI9B,IAExBwB,EAAEyyB,OAASA,EAAQR,EAAQ3pB,UAAY,CACxCG,YAAawpB,EACbkC,MAAO,SAAen0B,GACpB,GAAI9Q,KAAKqP,KAAO,EAAGrP,KAAKsP,KAAO,EAAGtP,KAAKmkC,KAAOnkC,KAAKokC,MAAQvzB,EAAG7Q,KAAKoR,MAAO,EAAIpR,KAAKikC,SAAW,KAAMjkC,KAAK6gB,OAAS,OAAQ7gB,KAAKgG,IAAM6K,EAAG7Q,KAAK8kC,WAAW1hC,QAAQ2hC,IAAiBj0B,EAAG,IAAK,IAAIC,KAAK/Q,KAAM,MAAQ+Q,EAAE20B,OAAO,IAAM90B,EAAE0I,KAAKtZ,KAAM+Q,KAAOm0B,OAAOn0B,EAAE3K,MAAM,MAAQpG,KAAK+Q,GAAKF,IAEtRlB,KAAM,WACJ3P,KAAKoR,MAAO,EACZ,IAAIP,EAAI7Q,KAAK8kC,WAAW,GAAGE,WAC3B,GAAI,UAAYn0B,EAAElS,KAAM,MAAMkS,EAAE7K,IAChC,OAAOhG,KAAK2lC,MAEdtB,kBAAmB,SAA2BvzB,GAC5C,GAAI9Q,KAAKoR,KAAM,MAAMN,EACrB,IAAIC,EAAI/Q,KACR,SAAS4lC,EAAOh1B,EAAGI,GACjB,OAAOC,EAAEtS,KAAO,QAASsS,EAAEjL,IAAM8K,EAAGC,EAAEzB,KAAOsB,EAAGI,IAAMD,EAAE8P,OAAS,OAAQ9P,EAAE/K,IAAM6K,KAAMG,EAEzF,IAAK,IAAIA,EAAIhR,KAAK8kC,WAAW5jC,OAAS,EAAG8P,GAAK,IAAKA,EAAG,CACpD,IAAI9N,EAAIlD,KAAK8kC,WAAW9zB,GACtBC,EAAI/N,EAAE8hC,WACR,GAAI,SAAW9hC,EAAEwhC,OAAQ,OAAOkB,EAAO,OACvC,GAAI1iC,EAAEwhC,QAAU1kC,KAAKqP,KAAM,CACzB,IAAI6B,EAAIN,EAAE0I,KAAKpW,EAAG,YAChBiO,EAAIP,EAAE0I,KAAKpW,EAAG,cAChB,GAAIgO,GAAKC,EAAG,CACV,GAAInR,KAAKqP,KAAOnM,EAAEyhC,SAAU,OAAOiB,EAAO1iC,EAAEyhC,UAAU,GACtD,GAAI3kC,KAAKqP,KAAOnM,EAAE0hC,WAAY,OAAOgB,EAAO1iC,EAAE0hC,iBACzC,GAAI1zB,GACT,GAAIlR,KAAKqP,KAAOnM,EAAEyhC,SAAU,OAAOiB,EAAO1iC,EAAEyhC,UAAU,OACjD,CACL,IAAKxzB,EAAG,MAAM6yB,MAAM,0CACpB,GAAIhkC,KAAKqP,KAAOnM,EAAE0hC,WAAY,OAAOgB,EAAO1iC,EAAE0hC,gBAKtDN,OAAQ,SAAgBzzB,EAAGC,GACzB,IAAK,IAAIC,EAAI/Q,KAAK8kC,WAAW5jC,OAAS,EAAG6P,GAAK,IAAKA,EAAG,CACpD,IAAIC,EAAIhR,KAAK8kC,WAAW/zB,GACxB,GAAIC,EAAE0zB,QAAU1kC,KAAKqP,MAAQuB,EAAE0I,KAAKtI,EAAG,eAAiBhR,KAAKqP,KAAO2B,EAAE4zB,WAAY,CAChF,IAAI1hC,EAAI8N,EACR,OAGJ9N,IAAM,UAAY2N,GAAK,aAAeA,IAAM3N,EAAEwhC,QAAU5zB,GAAKA,GAAK5N,EAAE0hC,aAAe1hC,EAAI,MACvF,IAAI+N,EAAI/N,EAAIA,EAAE8hC,WAAa,GAC3B,OAAO/zB,EAAEtS,KAAOkS,EAAGI,EAAEjL,IAAM8K,EAAG5N,GAAKlD,KAAK6gB,OAAS,OAAQ7gB,KAAKsP,KAAOpM,EAAE0hC,WAAYr0B,GAAKvQ,KAAK6lC,SAAS50B,IAExG40B,SAAU,SAAkBh1B,EAAGC,GAC7B,GAAI,UAAYD,EAAElS,KAAM,MAAMkS,EAAE7K,IAChC,MAAO,UAAY6K,EAAElS,MAAQ,aAAekS,EAAElS,KAAOqB,KAAKsP,KAAOuB,EAAE7K,IAAM,WAAa6K,EAAElS,MAAQqB,KAAK2lC,KAAO3lC,KAAKgG,IAAM6K,EAAE7K,IAAKhG,KAAK6gB,OAAS,SAAU7gB,KAAKsP,KAAO,OAAS,WAAauB,EAAElS,MAAQmS,IAAM9Q,KAAKsP,KAAOwB,GAAIP,GAE1Nu1B,OAAQ,SAAgBj1B,GACtB,IAAK,IAAIC,EAAI9Q,KAAK8kC,WAAW5jC,OAAS,EAAG4P,GAAK,IAAKA,EAAG,CACpD,IAAIC,EAAI/Q,KAAK8kC,WAAWh0B,GACxB,GAAIC,EAAE6zB,aAAe/zB,EAAG,OAAO7Q,KAAK6lC,SAAS90B,EAAEi0B,WAAYj0B,EAAE8zB,UAAWE,EAAch0B,GAAIR,IAG9F,MAAS,SAAgBM,GACvB,IAAK,IAAIC,EAAI9Q,KAAK8kC,WAAW5jC,OAAS,EAAG4P,GAAK,IAAKA,EAAG,CACpD,IAAIC,EAAI/Q,KAAK8kC,WAAWh0B,GACxB,GAAIC,EAAE2zB,SAAW7zB,EAAG,CAClB,IAAID,EAAIG,EAAEi0B,WACV,GAAI,UAAYp0B,EAAEjS,KAAM,CACtB,IAAIqS,EAAIJ,EAAE5K,IACV++B,EAAch0B,GAEhB,OAAOC,GAGX,MAAMgzB,MAAM,0BAEd+B,cAAe,SAAuBj1B,EAAGC,EAAGH,GAC1C,OAAO5Q,KAAKikC,SAAW,CACrBrqB,SAAU2pB,EAAOzyB,GACjByzB,WAAYxzB,EACZyzB,QAAS5zB,GACR,SAAW5Q,KAAK6gB,SAAW7gB,KAAKgG,IAAM6K,GAAIN,IAE9CO,I,kCC7SL,uHAASxO,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAQpM,IAAIQ,EAAQ,eAAsB,eAAK,OAAuB,CAAC,WAAY,QAGvEqN,EAAiC,aAAI7M,OAAO,CACrDC,KAAM,OACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIb,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZ2rB,EAAW7rB,EAAK6rB,SAEpB,OAAO9rB,EAAE,OAAkB,eAAUG,EAAM,CACzCf,MAAO0E,EAAcA,EAAc,GAAI1E,GAAQ,GAAI,CACjDuxB,QAAQ,MAER7E,O,kCC5BR,kGAKW1sB,EAAQ,eAAsB,CACvCI,IAAK,eAAS,OAAkB,QAC/B,QAGQsnC,EAA+B,aAAIlnC,OAAO,CACnDC,KAAM,OACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIb,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZ2rB,EAAW7rB,EAAK6rB,SACpB,OAAO9rB,EAAEZ,EAAMI,IAAK,eAAUW,EAAM,CAClCM,YAAa,qBACXqrB,O,kCCpBR,0GAAIjM,EAAQknB,EAAZ,gMAEA,SAAS3jC,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5E,OAAO6E,yBAAyBP,EAAQM,GAAK1E,eAAgBsE,EAAKM,KAAKhC,MAAM0B,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CAAE,IAAIC,EAAyB,MAAhBnC,UAAUkC,GAAalC,UAAUkC,GAAK,GAAQA,EAAI,EAAKZ,EAAQrE,OAAOkF,IAAS,GAAMC,SAAQ,SAAUrF,GAAOF,EAAgBoF,EAAQlF,EAAKoF,EAAOpF,OAAsBE,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBL,EAAQhF,OAAOoF,0BAA0BF,IAAmBb,EAAQrE,OAAOkF,IAASC,SAAQ,SAAUrF,GAAOE,OAAOC,eAAe+E,EAAQlF,EAAKE,OAAO6E,yBAAyBK,EAAQpF,OAAe,OAAOkF,EAE7gB,SAASpF,EAAgBC,EAAKC,EAAKC,GAAiK,OAApJD,KAAOD,EAAOG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBP,EAAIC,GAAOC,EAAgBF,EAmB3M,IAAI4e,EAAkB,eAAe,UAAW,CAC9CC,aAAc,OAEZC,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBpe,MAC7Bye,EAAkBL,EAAgBnV,KAClCyV,EAAmBN,EAAgBlN,MAI5BlR,EAAQ,eAAsB,eAAS0E,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU8Z,GAAa,QAAmB,QAAgB,QAAiB,QAAkB,GAAI,CACvPkR,UAAW,eAAS,QACpBkY,eAAgB,eAAS,QAEzBC,OAAQ,eAAS,QAAmB,GAEpCC,cAAe,eAAS,QACxBC,OAAQ,eAAS,QAAmB,GACpCroC,MAAO,eAAS,WACb,0BAGMsoC,EAAsB,aAAIxnC,OAAO,CAC1CsN,OAAQ,CAAC,OAAY,OAASwQ,EAAY,OAAoB,OAAkB,OAAe,OAAgB,QAC/GjK,cAAc,EACdrU,MAAOA,EACPe,KAAM,WACJ,MAAO,CACLkjC,aAAcviC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQ5kB,GAAmB/c,KAAK+c,GAClEwpB,UAAU,IAGdr7B,SAAU,CACR42B,qBAAsB,CACpBr4B,IAAK,WACH,OAAOzJ,KAAKwiC,QAAUxiC,KAAK2hC,QAAQY,aAAeviC,KAAKuiC,cAEzD/R,IAAK,SAAaxyB,GACZgC,KAAKwiC,QACPxiC,KAAK2hC,QAAQY,aAAevkC,EAE5BgC,KAAKuiC,aAAevkC,IAI1B4jC,UAAW,WACT,OAAO,eAAW5hC,KAAKhC,MAAOgC,KAAK8hC,uBAErCC,QAAS,WACP,OAAO,GAETS,QAAS,WAEP,QAASxiC,KAAK2hC,SAEhB6E,UAAW,WAET,OAAOxmC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQ8E,QAAUzmC,KAAKmmC,QAEpDO,QAAS,WACP,OAAO1mC,KAAKwmC,YAAoBxmC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQN,MAAQrhC,KAAKqhC,QAE3EsF,SAAU,WACR,OAAO3mC,KAAKwmC,YAAqBxmC,KAAK0mC,SAExCE,SAAU,WAER,QAAO5mC,KAAKwmC,WAAaxmC,KAAK+hC,SAAW/hC,KAAK0mC,WAAkB1mC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQkF,SAAW7mC,KAAK8mC,SAE9GC,SAAU,WACR,OAAO/mC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQ0E,OAASrmC,KAAKqmC,QAEnDW,WAAY,WAEV,OAAOhnC,KAAKwiC,SAAUxiC,KAAK2hC,QAAQn8B,UAA4BxF,KAAKwF,UAEtEyhC,WAAY,WAIV,OAAOjnC,KAAKknC,eAAiBlnC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQn1B,SAAWxM,KAAKwM,WAE3E06B,aAAc,WAEZ,OAAQlnC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQwF,UAAYnnC,KAAKjB,OAAS,MAEhEqoC,aAAc,WACZ,OAAQpnC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQ0F,KAAOrnC,KAAKqnC,OAAS,MAE3DC,aAAc,WACZ,OAAQtnC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQjQ,KAAO1xB,KAAK0xB,OAAS,IAE3D6V,cAAe,WACb,OAAOvnC,KAAKwiC,QAAUxiC,KAAK2hC,QAAQ4F,cAAgB,eAAUvnC,KAAK2M,OAAS3M,KAAK2M,MAAQ,MAE1F66B,sBAAuB,WAErB,IAAIpB,EAAgBpmC,KAAKomC,cAEzB,OAAIA,IAIApmC,KAAKwiC,SAAWxiC,KAAK2hC,QAAQyE,cACxBpmC,KAAK2hC,QAAQyE,cAGf,cAETqB,cAAe,WACb,IAAItoC,EAEAmoC,EAAetnC,KAAKsnC,aACxB,MAAO,CAAC,MAAO,OAAOxnC,OAAOE,KAAKwnC,wBAAyBroC,EAAO,GAAItB,EAAgBsB,EAAM,OAAOW,OAAOwnC,GAAeA,GAAezpC,EAAgBsB,EAAM,WAAYa,KAAKgnC,YAAanpC,EAAgBsB,EAAM,SAAUa,KAAK4hC,WAAY/jC,EAAgBsB,EAAM,QAASa,KAAKumC,UAAWpnC,KAE9RuoC,cAAe,WACb,IAAIliC,EAAWxF,KAAKgnC,WAChBx6B,EAAWxM,KAAKinC,WACpB,OAAOjkC,EAAcA,EAAc,GAAIhD,KAAK6T,SAAU,GAAI,CACxDxO,GAAIrF,KAAKqW,SACT1X,KAAMqB,KAAK+hC,QAAU,QAAU,WAC/BhjC,KAAMiB,KAAKknC,aACXG,KAAMrnC,KAAKonC,aACX5hC,SAAUA,EACVgH,SAAUA,EACV,gBAAiBA,GAAY,KAC7B,aAAcxM,KAAKguB,WAAa,KAChC,kBAAmBhuB,KAAKkmC,gBAAkB,SAIhDtwB,OAAQmJ,EAAS,GAAIlhB,EAAgBkhB,EAAQhC,GAAiB,WAC5D/c,KAAK,GAAGF,OAAOid,EAAiB,YAAYhc,MAAMf,KAAMgB,cACtDnD,EAAgBkhB,EAAQ,wBAAwB,WAClD/e,KAAKiiC,4BAA4BlhC,MAAMf,KAAMgB,cAC3C+d,GACJzV,SAAU28B,EAAW,GAAIpoC,EAAgBooC,EAAU,GAAGnmC,OAAOid,EAAiB,YAAY,SAAiBlH,GACpG,eAAWA,EAAU7V,KAAK8hC,wBAC7B9hC,KAAK8hC,qBAAuBjsB,MAE5BhY,EAAgBooC,EAAU,+BAA+B,SAAqCpwB,EAAUC,GACrG,eAAWD,EAAUC,IACxB9V,KAAK0R,MAAMsL,EAAkBnH,MAE7BhY,EAAgBooC,EAAU,gBAAgB,SAAsB0B,GAClE,IAAIp+B,EAAQvJ,KAER6hC,EAAU8F,EAAM1kC,OAAO4+B,QACvB7jC,EAAQgC,KAAKhC,MACbukC,EAAeV,EAAU7jC,EAAQ,KACrCgC,KAAK8hC,qBAAuB9jC,EAE5BgC,KAAK6H,WAAU,WAEb0B,EAAMmI,MAAM,OAAmB6wB,GAG3Bh5B,EAAMi5B,SACRj5B,EAAMo4B,QAAQjwB,MAAM,OAAmB6wB,SAGzC1kC,EAAgBooC,EAAU,eAAe,SAAqBz2B,GAG5DA,EAAMvM,SACW,UAAfuM,EAAM7Q,KACRqB,KAAKumC,UAAW,EACQ,SAAf/2B,EAAM7Q,OACfqB,KAAKumC,UAAW,OAGlB1oC,EAAgBooC,EAAU,SAAS,WAChCjmC,KAAKgnC,YACR,eAAahnC,KAAKiN,MAAM2Z,UAExB/oB,EAAgBooC,EAAU,QAAQ,WAC/BjmC,KAAKgnC,YACR,eAAYhnC,KAAKiN,MAAM2Z,UAEvBqf,GACJhnC,OAAQ,SAAgBC,GACtB,IAAI6iC,EAAU/hC,KAAK+hC,QACfyE,EAAYxmC,KAAKwmC,UACjBE,EAAU1mC,KAAK0mC,QACfC,EAAW3mC,KAAK2mC,SAChBI,EAAW/mC,KAAK+mC,SAChBH,EAAW5mC,KAAK4mC,SAChBU,EAAetnC,KAAKsnC,aACpBzzB,EAAU7T,KAAK6T,QACfyB,EAAWtV,KAAK+T,gBAChBmuB,EAAShjC,EAAE,QAAS,CACtBW,MAAO,CAAC,CACN,mBAAoB6mC,EACpB,uBAAwBC,EAExB,kBAAmBD,IAAYpxB,GAC9BkxB,EAAY,GAAKxmC,KAAK4nC,YACzB1/B,WAAY,CAAC,CACXnJ,KAAM,QACNf,MAAOgC,KAAK8hC,uBAEdliC,MAAOI,KAAK0nC,cACZj2B,SAAU,CACRzT,MAAOgC,KAAKhC,MACZ6jC,QAAS7hC,KAAK4hC,WAEhBjhC,GAAIqC,EAAc,CAChB6kC,OAAQ7nC,KAAKoiC,cACZoE,EAAY,CACb9iC,MAAO1D,KAAK8nC,YACZjkC,KAAM7D,KAAK8nC,aACT,IACJ/pC,IAAK,QACLwC,IAAK,UAGP,GAAIimC,EAAW,CACb,IAAIuB,EAAU7oC,EAAE,QAAS,CACvBW,MAAOG,KAAKynC,eACX,CAACvF,EAAQ5sB,IAUZ,OARKtV,KAAKwiC,UAGRuF,EAAU7oC,EAAE,MAAO,CACjBW,MAAO,CAAC,mBAAoB,mBAC3B,CAACkoC,KAGCA,EAKT,IAAIroC,EAASR,IAcb,OAZMwnC,IAAYpxB,IAChB5V,EAASR,EAAE,QAAS,CAClBW,MAAO,CACL,mBAAoB6mC,EACpB,uBAAwBC,GAE1B/mC,MAAO,CACLooC,IAAKhoC,KAAKqW,WAEXf,IAGEpW,EAAE,MAAO,CACdW,MAAO,CAAChC,EAAgB,CACtB,aAAc6oC,EACd,oBAAqBA,GAAWK,EAChC,iBAAkBJ,EAClB,wBAAyBA,GAAYI,EACrC,kBAAmBJ,IAAa5E,IAAY6E,EAC5C,gBAAiBA,EACjB,eAAgBD,GAAY5E,GAC3B,oBAAoBjiC,OAAOwnC,GAAeA,IAAiBd,GAAY3yB,EAAQhU,OAClFmmB,MAAOnS,EAAQmS,OACd,CAACkc,EAAQxiC,Q,yDC5RhB,kGAKWpB,EAAQ,eAAsB,CACvC2pC,QAAS,eAAS,OAAkB,MACnC,QAGQx8B,EAAyB,aAAI3M,OAAO,CAC7CC,KAAM,OACNC,YAAY,EACZV,MAAOA,EACPW,OAAQ,SAAgBC,EAAGC,GACzB,IAAIb,EAAQa,EAAKb,MACbe,EAAOF,EAAKE,KACZ2rB,EAAW7rB,EAAK6rB,SACpB,OAAO9rB,EAAEZ,EAAM2pC,QAAS,eAAU5oC,EAAM,CACtCM,YAAa,cACXqrB,O,kCCpBR,kCAAO,IAAI6C,EAAO,c,mCCAlB;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAIqa,EAA8B,qBAAXC,QAA8C,qBAAbthB,UAAiD,qBAAdpY,UAEvF25B,EAAkB,WAEpB,IADA,IAAIC,EAAwB,CAAC,OAAQ,UAAW,WACvCnlC,EAAI,EAAGA,EAAImlC,EAAsBnnC,OAAQgC,GAAK,EACrD,GAAIglC,GAAaz5B,UAAUC,UAAU+X,QAAQ4hB,EAAsBnlC,KAAO,EACxE,OAAO,EAGX,OAAO,EAPa,GAUtB,SAASolC,EAAkB7nC,GACzB,IAAI8nC,GAAS,EACb,OAAO,WACDA,IAGJA,GAAS,EACTJ,OAAO92B,QAAQC,UAAU3H,MAAK,WAC5B4+B,GAAS,EACT9nC,SAKN,SAAS+nC,EAAa/nC,GACpB,IAAIgoC,GAAY,EAChB,OAAO,WACAA,IACHA,GAAY,EACZ3sB,YAAW,WACT2sB,GAAY,EACZhoC,MACC2nC,KAKT,IAAIM,EAAqBR,GAAaC,OAAO92B,QAWzCs3B,EAAWD,EAAqBJ,EAAoBE,EASxD,SAASI,EAAWC,GAClB,IAAIC,EAAU,GACd,OAAOD,GAA8D,sBAA3CC,EAAQzvB,SAASC,KAAKuvB,GAUlD,SAASE,EAAyB1T,EAAS2T,GACzC,GAAyB,IAArB3T,EAAQ4T,SACV,MAAO,GAGT,IAAId,EAAS9S,EAAQ6T,cAAcC,YAC/BC,EAAMjB,EAAOkB,iBAAiBhU,EAAS,MAC3C,OAAO2T,EAAWI,EAAIJ,GAAYI,EAUpC,SAASE,EAAcjU,GACrB,MAAyB,SAArBA,EAAQkU,SACHlU,EAEFA,EAAQgB,YAAchB,EAAQmU,KAUvC,SAASC,EAAgBpU,GAEvB,IAAKA,EACH,OAAOxO,SAAS8S,KAGlB,OAAQtE,EAAQkU,UACd,IAAK,OACL,IAAK,OACH,OAAOlU,EAAQ6T,cAAcvP,KAC/B,IAAK,YACH,OAAOtE,EAAQsE,KAKnB,IAAI+P,EAAwBX,EAAyB1T,GACjDsU,EAAWD,EAAsBC,SACjCC,EAAYF,EAAsBE,UAClCC,EAAYH,EAAsBG,UAEtC,MAAI,wBAAwB1jC,KAAKwjC,EAAWE,EAAYD,GAC/CvU,EAGFoU,EAAgBH,EAAcjU,IAUvC,SAASyU,EAAiBC,GACxB,OAAOA,GAAaA,EAAUC,cAAgBD,EAAUC,cAAgBD,EAG1E,IAAIE,EAAS/B,MAAgBC,OAAO+B,uBAAwBrjB,SAASsjB,cACjEC,EAASlC,GAAa,UAAU/hC,KAAKsI,UAAUC,WASnD,SAAS27B,EAAKC,GACZ,OAAgB,KAAZA,EACKL,EAEO,KAAZK,EACKF,EAEFH,GAAUG,EAUnB,SAASG,EAAgBlV,GACvB,IAAKA,EACH,OAAOxO,SAASwX,gBAGlB,IAAImM,EAAiBH,EAAK,IAAMxjB,SAAS8S,KAAO,KAG5C8Q,EAAepV,EAAQoV,cAAgB,KAE3C,MAAOA,IAAiBD,GAAkBnV,EAAQqV,mBAChDD,GAAgBpV,EAAUA,EAAQqV,oBAAoBD,aAGxD,IAAIlB,EAAWkB,GAAgBA,EAAalB,SAE5C,OAAKA,GAAyB,SAAbA,GAAoC,SAAbA,GAMsB,IAA1D,CAAC,KAAM,KAAM,SAAS9iB,QAAQgkB,EAAalB,WAA2E,WAAvDR,EAAyB0B,EAAc,YACjGF,EAAgBE,GAGlBA,EATEpV,EAAUA,EAAQ6T,cAAc7K,gBAAkBxX,SAASwX,gBAYtE,SAASsM,EAAkBtV,GACzB,IAAIkU,EAAWlU,EAAQkU,SAEvB,MAAiB,SAAbA,IAGgB,SAAbA,GAAuBgB,EAAgBlV,EAAQuV,qBAAuBvV,GAU/E,SAASwV,EAAQC,GACf,OAAwB,OAApBA,EAAKzU,WACAwU,EAAQC,EAAKzU,YAGfyU,EAWT,SAASC,EAAuBC,EAAUC,GAExC,IAAKD,IAAaA,EAAS/B,WAAagC,IAAaA,EAAShC,SAC5D,OAAOpiB,SAASwX,gBAIlB,IAAI6M,EAAQF,EAASG,wBAAwBF,GAAYG,KAAKC,4BAC1DC,EAAQJ,EAAQF,EAAWC,EAC3BM,EAAML,EAAQD,EAAWD,EAGzBQ,EAAQ3kB,SAAS4kB,cACrBD,EAAME,SAASJ,EAAO,GACtBE,EAAMG,OAAOJ,EAAK,GAClB,IAAIK,EAA0BJ,EAAMI,wBAIpC,GAAIZ,IAAaY,GAA2BX,IAAaW,GAA2BN,EAAMO,SAASN,GACjG,OAAIZ,EAAkBiB,GACbA,EAGFrB,EAAgBqB,GAIzB,IAAIE,EAAejB,EAAQG,GAC3B,OAAIc,EAAatC,KACRuB,EAAuBe,EAAatC,KAAMyB,GAE1CF,EAAuBC,EAAUH,EAAQI,GAAUzB,MAY9D,SAASuC,EAAU1W,GACjB,IAAI2W,EAAOhrC,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,MAE3EirC,EAAqB,QAATD,EAAiB,YAAc,aAC3CzC,EAAWlU,EAAQkU,SAEvB,GAAiB,SAAbA,GAAoC,SAAbA,EAAqB,CAC9C,IAAIjkC,EAAO+vB,EAAQ6T,cAAc7K,gBAC7B6N,EAAmB7W,EAAQ6T,cAAcgD,kBAAoB5mC,EACjE,OAAO4mC,EAAiBD,GAG1B,OAAO5W,EAAQ4W,GAYjB,SAASE,EAAcC,EAAM/W,GAC3B,IAAIgX,EAAWrrC,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GAE1EsrC,EAAYP,EAAU1W,EAAS,OAC/BkX,EAAaR,EAAU1W,EAAS,QAChCmX,EAAWH,GAAY,EAAI,EAK/B,OAJAD,EAAKrN,KAAOuN,EAAYE,EACxBJ,EAAKnN,QAAUqN,EAAYE,EAC3BJ,EAAKpN,MAAQuN,EAAaC,EAC1BJ,EAAKlN,OAASqN,EAAaC,EACpBJ,EAaT,SAASK,EAAeC,EAAQC,GAC9B,IAAIC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,SAEzC,OAAO99B,WAAW49B,EAAO,SAAWE,EAAQ,UAAY99B,WAAW49B,EAAO,SAAWG,EAAQ,UAG/F,SAASC,EAAQH,EAAMhT,EAAMr0B,EAAMynC,GACjC,OAAOl7B,KAAKm7B,IAAIrT,EAAK,SAAWgT,GAAOhT,EAAK,SAAWgT,GAAOrnC,EAAK,SAAWqnC,GAAOrnC,EAAK,SAAWqnC,GAAOrnC,EAAK,SAAWqnC,GAAOtC,EAAK,IAAM4C,SAAS3nC,EAAK,SAAWqnC,IAASM,SAASF,EAAc,UAAqB,WAATJ,EAAoB,MAAQ,UAAYM,SAASF,EAAc,UAAqB,WAATJ,EAAoB,SAAW,WAAa,GAG5U,SAASO,EAAermB,GACtB,IAAI8S,EAAO9S,EAAS8S,KAChBr0B,EAAOuhB,EAASwX,gBAChB0O,EAAgB1C,EAAK,KAAOhB,iBAAiB/jC,GAEjD,MAAO,CACL6nC,OAAQL,EAAQ,SAAUnT,EAAMr0B,EAAMynC,GACtCtW,MAAOqW,EAAQ,QAASnT,EAAMr0B,EAAMynC,IAIxC,IAAIK,EAAiB,SAAUC,EAAUC,GACvC,KAAMD,aAAoBC,GACxB,MAAM,IAAIr0B,UAAU,sCAIpBs0B,EAAc,WAChB,SAASjqC,EAAiBL,EAAQ3E,GAChC,IAAK,IAAI4E,EAAI,EAAGA,EAAI5E,EAAM4C,OAAQgC,IAAK,CACrC,IAAIsqC,EAAalvC,EAAM4E,GACvBsqC,EAAWrvC,WAAaqvC,EAAWrvC,aAAc,EACjDqvC,EAAWpvC,cAAe,EACtB,UAAWovC,IAAYA,EAAWnvC,UAAW,GACjDJ,OAAOC,eAAe+E,EAAQuqC,EAAWzvC,IAAKyvC,IAIlD,OAAO,SAAUF,EAAaG,EAAYC,GAGxC,OAFID,GAAYnqC,EAAiBgqC,EAAYl0B,UAAWq0B,GACpDC,GAAapqC,EAAiBgqC,EAAaI,GACxCJ,GAdO,GAsBdpvC,EAAiB,SAAUJ,EAAKC,EAAKC,GAYvC,OAXID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAGNF,GAGL6vC,EAAW1vC,OAAO2vC,QAAU,SAAU3qC,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIlC,UAAUE,OAAQgC,IAAK,CACzC,IAAIC,EAASnC,UAAUkC,GAEvB,IAAK,IAAInF,KAAOoF,EACVlF,OAAOmb,UAAUqpB,eAAenpB,KAAKnW,EAAQpF,KAC/CkF,EAAOlF,GAAOoF,EAAOpF,IAK3B,OAAOkF,GAUT,SAAS4qC,EAAcC,GACrB,OAAOH,EAAS,GAAIG,EAAS,CAC3B5O,MAAO4O,EAAQ9O,KAAO8O,EAAQrX,MAC9BwI,OAAQ6O,EAAQ/O,IAAM+O,EAAQX,SAWlC,SAASY,EAAsB1Y,GAC7B,IAAI+W,EAAO,GAKX,IACE,GAAI/B,EAAK,IAAK,CACZ+B,EAAO/W,EAAQ0Y,wBACf,IAAIzB,EAAYP,EAAU1W,EAAS,OAC/BkX,EAAaR,EAAU1W,EAAS,QACpC+W,EAAKrN,KAAOuN,EACZF,EAAKpN,MAAQuN,EACbH,EAAKnN,QAAUqN,EACfF,EAAKlN,OAASqN,OAEdH,EAAO/W,EAAQ0Y,wBAEjB,MAAOj9B,IAET,IAAIrG,EAAS,CACXu0B,KAAMoN,EAAKpN,KACXD,IAAKqN,EAAKrN,IACVtI,MAAO2V,EAAKlN,MAAQkN,EAAKpN,KACzBmO,OAAQf,EAAKnN,OAASmN,EAAKrN,KAIzBiP,EAA6B,SAArB3Y,EAAQkU,SAAsB2D,EAAe7X,EAAQ6T,eAAiB,GAC9EzS,EAAQuX,EAAMvX,OAASpB,EAAQ4Y,aAAexjC,EAAOgsB,MACrD0W,EAASa,EAAMb,QAAU9X,EAAQ6Y,cAAgBzjC,EAAO0iC,OAExDgB,EAAiB9Y,EAAQ+Y,YAAc3X,EACvC4X,EAAgBhZ,EAAQiZ,aAAenB,EAI3C,GAAIgB,GAAkBE,EAAe,CACnC,IAAI3B,EAAS3D,EAAyB1T,GACtC8Y,GAAkB1B,EAAeC,EAAQ,KACzC2B,GAAiB5B,EAAeC,EAAQ,KAExCjiC,EAAOgsB,OAAS0X,EAChB1jC,EAAO0iC,QAAUkB,EAGnB,OAAOR,EAAcpjC,GAGvB,SAAS8jC,EAAqCvjB,EAAUlkB,GACtD,IAAI0nC,EAAgBxtC,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GAE/EopC,EAASC,EAAK,IACdoE,EAA6B,SAApB3nC,EAAOyiC,SAChBmF,EAAeX,EAAsB/iB,GACrC2jB,EAAaZ,EAAsBjnC,GACnC8nC,EAAenF,EAAgBze,GAE/B0hB,EAAS3D,EAAyBjiC,GAClC+nC,EAAiB//B,WAAW49B,EAAOmC,gBACnCC,EAAkBhgC,WAAW49B,EAAOoC,iBAGpCN,GAAiBC,IACnBE,EAAW5P,IAAMltB,KAAKm7B,IAAI2B,EAAW5P,IAAK,GAC1C4P,EAAW3P,KAAOntB,KAAKm7B,IAAI2B,EAAW3P,KAAM,IAE9C,IAAI8O,EAAUD,EAAc,CAC1B9O,IAAK2P,EAAa3P,IAAM4P,EAAW5P,IAAM8P,EACzC7P,KAAM0P,EAAa1P,KAAO2P,EAAW3P,KAAO8P,EAC5CrY,MAAOiY,EAAajY,MACpB0W,OAAQuB,EAAavB,SASvB,GAPAW,EAAQiB,UAAY,EACpBjB,EAAQkB,WAAa,GAMhB5E,GAAUqE,EAAQ,CACrB,IAAIM,EAAYjgC,WAAW49B,EAAOqC,WAC9BC,EAAalgC,WAAW49B,EAAOsC,YAEnClB,EAAQ/O,KAAO8P,EAAiBE,EAChCjB,EAAQ7O,QAAU4P,EAAiBE,EACnCjB,EAAQ9O,MAAQ8P,EAAkBE,EAClClB,EAAQ5O,OAAS4P,EAAkBE,EAGnClB,EAAQiB,UAAYA,EACpBjB,EAAQkB,WAAaA,EAOvB,OAJI5E,IAAWoE,EAAgB1nC,EAAO+kC,SAAS+C,GAAgB9nC,IAAW8nC,GAA0C,SAA1BA,EAAarF,YACrGuE,EAAU3B,EAAc2B,EAAShnC,IAG5BgnC,EAGT,SAASmB,EAA8C5Z,GACrD,IAAI6Z,EAAgBluC,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GAE/EsE,EAAO+vB,EAAQ6T,cAAc7K,gBAC7B8Q,EAAiBZ,EAAqClZ,EAAS/vB,GAC/DmxB,EAAQ5kB,KAAKm7B,IAAI1nC,EAAK2oC,YAAa9F,OAAOiH,YAAc,GACxDjC,EAASt7B,KAAKm7B,IAAI1nC,EAAK4oC,aAAc/F,OAAOkH,aAAe,GAE3D/C,EAAa4C,EAAkC,EAAlBnD,EAAUzmC,GACvCinC,EAAc2C,EAA0C,EAA1BnD,EAAUzmC,EAAM,QAE9CF,EAAS,CACX25B,IAAKuN,EAAY6C,EAAepQ,IAAMoQ,EAAeJ,UACrD/P,KAAMuN,EAAa4C,EAAenQ,KAAOmQ,EAAeH,WACxDvY,MAAOA,EACP0W,OAAQA,GAGV,OAAOU,EAAczoC,GAWvB,SAASkqC,EAAQja,GACf,IAAIkU,EAAWlU,EAAQkU,SACvB,GAAiB,SAAbA,GAAoC,SAAbA,EACzB,OAAO,EAET,GAAsD,UAAlDR,EAAyB1T,EAAS,YACpC,OAAO,EAET,IAAIgB,EAAaiT,EAAcjU,GAC/B,QAAKgB,GAGEiZ,EAAQjZ,GAWjB,SAASkZ,EAA6Bla,GAEpC,IAAKA,IAAYA,EAAQma,eAAiBnF,IACxC,OAAOxjB,SAASwX,gBAElB,IAAI13B,EAAK0uB,EAAQma,cACjB,MAAO7oC,GAAoD,SAA9CoiC,EAAyBpiC,EAAI,aACxCA,EAAKA,EAAG6oC,cAEV,OAAO7oC,GAAMkgB,SAASwX,gBAcxB,SAASoR,EAAcC,EAAQ3F,EAAWxU,EAASC,GACjD,IAAIgZ,EAAgBxtC,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GAI/E2uC,EAAa,CAAE5Q,IAAK,EAAGC,KAAM,GAC7ByL,EAAe+D,EAAgBe,EAA6BG,GAAU3E,EAAuB2E,EAAQ5F,EAAiBC,IAG1H,GAA0B,aAAtBvU,EACFma,EAAaV,EAA8CxE,EAAc+D,OACpE,CAEL,IAAIoB,OAAiB,EACK,iBAAtBpa,GACFoa,EAAiBnG,EAAgBH,EAAcS,IACf,SAA5B6F,EAAerG,WACjBqG,EAAiBF,EAAOxG,cAAc7K,kBAGxCuR,EAD+B,WAAtBpa,EACQka,EAAOxG,cAAc7K,gBAErB7I,EAGnB,IAAIsY,EAAUS,EAAqCqB,EAAgBnF,EAAc+D,GAGjF,GAAgC,SAA5BoB,EAAerG,UAAwB+F,EAAQ7E,GAWjDkF,EAAa7B,MAXmD,CAChE,IAAI+B,EAAkB3C,EAAewC,EAAOxG,eACxCiE,EAAS0C,EAAgB1C,OACzB1W,EAAQoZ,EAAgBpZ,MAE5BkZ,EAAW5Q,KAAO+O,EAAQ/O,IAAM+O,EAAQiB,UACxCY,EAAW1Q,OAASkO,EAASW,EAAQ/O,IACrC4Q,EAAW3Q,MAAQ8O,EAAQ9O,KAAO8O,EAAQkB,WAC1CW,EAAWzQ,MAAQzI,EAAQqX,EAAQ9O,MAQvCzJ,EAAUA,GAAW,EACrB,IAAIua,EAAqC,kBAAZva,EAM7B,OALAoa,EAAW3Q,MAAQ8Q,EAAkBva,EAAUA,EAAQyJ,MAAQ,EAC/D2Q,EAAW5Q,KAAO+Q,EAAkBva,EAAUA,EAAQwJ,KAAO,EAC7D4Q,EAAWzQ,OAAS4Q,EAAkBva,EAAUA,EAAQ2J,OAAS,EACjEyQ,EAAW1Q,QAAU6Q,EAAkBva,EAAUA,EAAQ0J,QAAU,EAE5D0Q,EAGT,SAASI,EAAQ5wC,GACf,IAAIs3B,EAAQt3B,EAAKs3B,MACb0W,EAAShuC,EAAKguC,OAElB,OAAO1W,EAAQ0W,EAYjB,SAAS6C,EAAqBhrC,EAAWirC,EAASP,EAAQ3F,EAAWvU,GACnE,IAAID,EAAUv0B,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,EAElF,IAAmC,IAA/BgE,EAAUyhB,QAAQ,QACpB,OAAOzhB,EAGT,IAAI2qC,EAAaF,EAAcC,EAAQ3F,EAAWxU,EAASC,GAEvD0a,EAAQ,CACVnR,IAAK,CACHtI,MAAOkZ,EAAWlZ,MAClB0W,OAAQ8C,EAAQlR,IAAM4Q,EAAW5Q,KAEnCG,MAAO,CACLzI,MAAOkZ,EAAWzQ,MAAQ+Q,EAAQ/Q,MAClCiO,OAAQwC,EAAWxC,QAErBlO,OAAQ,CACNxI,MAAOkZ,EAAWlZ,MAClB0W,OAAQwC,EAAW1Q,OAASgR,EAAQhR,QAEtCD,KAAM,CACJvI,MAAOwZ,EAAQjR,KAAO2Q,EAAW3Q,KACjCmO,OAAQwC,EAAWxC,SAInBgD,EAAclyC,OAAOwE,KAAKytC,GAAO14B,KAAI,SAAUzZ,GACjD,OAAO4vC,EAAS,CACd5vC,IAAKA,GACJmyC,EAAMnyC,GAAM,CACbqyC,KAAML,EAAQG,EAAMnyC,SAErBwZ,MAAK,SAAUtG,EAAGkQ,GACnB,OAAOA,EAAEivB,KAAOn/B,EAAEm/B,QAGhBC,EAAgBF,EAAYvtC,QAAO,SAAU+kC,GAC/C,IAAIlR,EAAQkR,EAAMlR,MACd0W,EAASxF,EAAMwF,OACnB,OAAO1W,GAASiZ,EAAOzB,aAAed,GAAUuC,EAAOxB,gBAGrDoC,EAAoBD,EAAcnvC,OAAS,EAAImvC,EAAc,GAAGtyC,IAAMoyC,EAAY,GAAGpyC,IAErFwyC,EAAYvrC,EAAU0B,MAAM,KAAK,GAErC,OAAO4pC,GAAqBC,EAAY,IAAMA,EAAY,IAa5D,SAASC,EAAoB7jC,EAAO+iC,EAAQ3F,GAC1C,IAAIyE,EAAgBxtC,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,KAEpFyvC,EAAqBjC,EAAgBe,EAA6BG,GAAU3E,EAAuB2E,EAAQ5F,EAAiBC,IAChI,OAAOwE,EAAqCxE,EAAW0G,EAAoBjC,GAU7E,SAASkC,EAAcrb,GACrB,IAAI8S,EAAS9S,EAAQ6T,cAAcC,YAC/BuD,EAASvE,EAAOkB,iBAAiBhU,GACjC/kB,EAAIxB,WAAW49B,EAAOqC,WAAa,GAAKjgC,WAAW49B,EAAOiE,cAAgB,GAC1EpgC,EAAIzB,WAAW49B,EAAOsC,YAAc,GAAKlgC,WAAW49B,EAAOkE,aAAe,GAC1EnmC,EAAS,CACXgsB,MAAOpB,EAAQ+Y,YAAc79B,EAC7B48B,OAAQ9X,EAAQiZ,aAAeh+B,GAEjC,OAAO7F,EAUT,SAASomC,EAAqB7rC,GAC5B,IAAI8rC,EAAO,CAAE9R,KAAM,QAASE,MAAO,OAAQD,OAAQ,MAAOF,IAAK,UAC/D,OAAO/5B,EAAUmX,QAAQ,0BAA0B,SAAU40B,GAC3D,OAAOD,EAAKC,MAchB,SAASC,EAAiBtB,EAAQuB,EAAkBjsC,GAClDA,EAAYA,EAAU0B,MAAM,KAAK,GAGjC,IAAIwqC,EAAaR,EAAchB,GAG3ByB,EAAgB,CAClB1a,MAAOya,EAAWza,MAClB0W,OAAQ+D,EAAW/D,QAIjBiE,GAAoD,IAA1C,CAAC,QAAS,QAAQ3qB,QAAQzhB,GACpCqsC,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,SAStC,OAPAD,EAAcE,GAAYJ,EAAiBI,GAAYJ,EAAiBM,GAAe,EAAIL,EAAWK,GAAe,EAEnHJ,EAAcG,GADZtsC,IAAcssC,EACeL,EAAiBK,GAAiBJ,EAAWM,GAE7CP,EAAiBJ,EAAqBS,IAGhEH,EAYT,SAASM,EAAK74B,EAAK84B,GAEjB,OAAIl4B,MAAMJ,UAAUq4B,KACX74B,EAAI64B,KAAKC,GAIX94B,EAAIhW,OAAO8uC,GAAO,GAY3B,SAASC,EAAU/4B,EAAKrR,EAAMvJ,GAE5B,GAAIwb,MAAMJ,UAAUu4B,UAClB,OAAO/4B,EAAI+4B,WAAU,SAAUC,GAC7B,OAAOA,EAAIrqC,KAAUvJ,KAKzB,IAAI6zC,EAAQJ,EAAK74B,GAAK,SAAU9a,GAC9B,OAAOA,EAAIyJ,KAAUvJ,KAEvB,OAAO4a,EAAI6N,QAAQorB,GAarB,SAASC,EAAa7rC,EAAW5G,EAAM0yC,GACrC,IAAIC,OAA0BltC,IAATitC,EAAqB9rC,EAAYA,EAAUG,MAAM,EAAGurC,EAAU1rC,EAAW,OAAQ8rC,IAmBtG,OAjBAC,EAAe5uC,SAAQ,SAAUopC,GAC3BA,EAAS,aAEXziC,QAAQ6Q,KAAK,yDAEf,IAAIna,EAAK+rC,EAAS,aAAeA,EAAS/rC,GACtC+rC,EAASyF,SAAWrJ,EAAWnoC,KAIjCpB,EAAKyuC,QAAQ4B,OAAS7B,EAAcxuC,EAAKyuC,QAAQ4B,QACjDrwC,EAAKyuC,QAAQ/D,UAAY8D,EAAcxuC,EAAKyuC,QAAQ/D,WAEpD1qC,EAAOoB,EAAGpB,EAAMmtC,OAIbntC,EAUT,SAAS+O,IAEP,IAAIpO,KAAK2M,MAAMulC,YAAf,CAIA,IAAI7yC,EAAO,CACTguC,SAAUrtC,KACV0sC,OAAQ,GACRyF,YAAa,GACbC,WAAY,GACZC,SAAS,EACTvE,QAAS,IAIXzuC,EAAKyuC,QAAQ/D,UAAYyG,EAAoBxwC,KAAK2M,MAAO3M,KAAK0vC,OAAQ1vC,KAAK+pC,UAAW/pC,KAAKg9B,QAAQsV,eAKnGjzC,EAAK2F,UAAYgrC,EAAqBhwC,KAAKg9B,QAAQh4B,UAAW3F,EAAKyuC,QAAQ/D,UAAW/pC,KAAK0vC,OAAQ1vC,KAAK+pC,UAAW/pC,KAAKg9B,QAAQ/2B,UAAUivB,KAAKM,kBAAmBx1B,KAAKg9B,QAAQ/2B,UAAUivB,KAAKK,SAG9Ll2B,EAAKq2B,kBAAoBr2B,EAAK2F,UAE9B3F,EAAKizC,cAAgBtyC,KAAKg9B,QAAQsV,cAGlCjzC,EAAKyuC,QAAQ4B,OAASsB,EAAiBhxC,KAAK0vC,OAAQrwC,EAAKyuC,QAAQ/D,UAAW1qC,EAAK2F,WAEjF3F,EAAKyuC,QAAQ4B,OAAO6C,SAAWvyC,KAAKg9B,QAAQsV,cAAgB,QAAU,WAGtEjzC,EAAOyyC,EAAa9xC,KAAKiG,UAAW5G,GAI/BW,KAAK2M,MAAM6lC,UAIdxyC,KAAKg9B,QAAQpH,SAASv2B,IAHtBW,KAAK2M,MAAM6lC,WAAY,EACvBxyC,KAAKg9B,QAAQvH,SAASp2B,KAY1B,SAASozC,EAAkBxsC,EAAWysC,GACpC,OAAOzsC,EAAU2Z,MAAK,SAAUzgB,GAC9B,IAAIJ,EAAOI,EAAKJ,KACZkzC,EAAU9yC,EAAK8yC,QACnB,OAAOA,GAAWlzC,IAAS2zC,KAW/B,SAASC,EAAyB3J,GAIhC,IAHA,IAAI4J,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAY7J,EAAStD,OAAO,GAAGnP,cAAgByS,EAAS5iC,MAAM,GAEzDlD,EAAI,EAAGA,EAAI0vC,EAAS1xC,OAAQgC,IAAK,CACxC,IAAI4vC,EAASF,EAAS1vC,GAClB6vC,EAAUD,EAAS,GAAKA,EAASD,EAAY7J,EACjD,GAA4C,qBAAjCniB,SAAS8S,KAAK3T,MAAM+sB,GAC7B,OAAOA,EAGX,OAAO,KAQT,SAASrc,IAsBP,OArBA12B,KAAK2M,MAAMulC,aAAc,EAGrBO,EAAkBzyC,KAAKiG,UAAW,gBACpCjG,KAAK0vC,OAAOsD,gBAAgB,eAC5BhzC,KAAK0vC,OAAO1pB,MAAMusB,SAAW,GAC7BvyC,KAAK0vC,OAAO1pB,MAAM+Y,IAAM,GACxB/+B,KAAK0vC,OAAO1pB,MAAMgZ,KAAO,GACzBh/B,KAAK0vC,OAAO1pB,MAAMkZ,MAAQ,GAC1Bl/B,KAAK0vC,OAAO1pB,MAAMiZ,OAAS,GAC3Bj/B,KAAK0vC,OAAO1pB,MAAMitB,WAAa,GAC/BjzC,KAAK0vC,OAAO1pB,MAAM2sB,EAAyB,cAAgB,IAG7D3yC,KAAKkzC,wBAIDlzC,KAAKg9B,QAAQmW,iBACfnzC,KAAK0vC,OAAOrZ,WAAWC,YAAYt2B,KAAK0vC,QAEnC1vC,KAQT,SAASozC,EAAU/d,GACjB,IAAI6T,EAAgB7T,EAAQ6T,cAC5B,OAAOA,EAAgBA,EAAcC,YAAchB,OAGrD,SAASkL,EAAsBzE,EAAcp/B,EAAOpO,EAAUkyC,GAC5D,IAAIC,EAAmC,SAA1B3E,EAAarF,SACtBtmC,EAASswC,EAAS3E,EAAa1F,cAAcC,YAAcyF,EAC/D3rC,EAAOuwC,iBAAiBhkC,EAAOpO,EAAU,CAAEqyC,SAAS,IAE/CF,GACHF,EAAsB5J,EAAgBxmC,EAAOozB,YAAa7mB,EAAOpO,EAAUkyC,GAE7EA,EAAcvwC,KAAKE,GASrB,SAASywC,EAAoB3J,EAAW/M,EAASrwB,EAAOgnC,GAEtDhnC,EAAMgnC,YAAcA,EACpBP,EAAUrJ,GAAWyJ,iBAAiB,SAAU7mC,EAAMgnC,YAAa,CAAEF,SAAS,IAG9E,IAAIG,EAAgBnK,EAAgBM,GAKpC,OAJAsJ,EAAsBO,EAAe,SAAUjnC,EAAMgnC,YAAahnC,EAAM2mC,eACxE3mC,EAAMinC,cAAgBA,EACtBjnC,EAAMknC,eAAgB,EAEflnC,EAST,SAASmnC,IACF9zC,KAAK2M,MAAMknC,gBACd7zC,KAAK2M,MAAQ+mC,EAAoB1zC,KAAK+pC,UAAW/pC,KAAKg9B,QAASh9B,KAAK2M,MAAO3M,KAAK22B,iBAUpF,SAASod,EAAqBhK,EAAWp9B,GAcvC,OAZAymC,EAAUrJ,GAAWiK,oBAAoB,SAAUrnC,EAAMgnC,aAGzDhnC,EAAM2mC,cAAclwC,SAAQ,SAAUH,GACpCA,EAAO+wC,oBAAoB,SAAUrnC,EAAMgnC,gBAI7ChnC,EAAMgnC,YAAc,KACpBhnC,EAAM2mC,cAAgB,GACtB3mC,EAAMinC,cAAgB,KACtBjnC,EAAMknC,eAAgB,EACflnC,EAUT,SAASumC,KACHlzC,KAAK2M,MAAMknC,gBACbI,qBAAqBj0C,KAAK22B,gBAC1B32B,KAAK2M,MAAQonC,EAAqB/zC,KAAK+pC,UAAW/pC,KAAK2M,QAW3D,SAASunC,GAAUtjC,GACjB,MAAa,KAANA,IAAas0B,MAAMp2B,WAAW8B,KAAOujC,SAASvjC,GAWvD,SAASwjC,GAAU/e,EAASqX,GAC1BzuC,OAAOwE,KAAKiqC,GAAQtpC,SAAQ,SAAUmE,GACpC,IAAI8sC,EAAO,IAEkE,IAAzE,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQ5tB,QAAQlf,IAAgB2sC,GAAUxH,EAAOnlC,MACjG8sC,EAAO,MAEThf,EAAQrP,MAAMze,GAAQmlC,EAAOnlC,GAAQ8sC,KAYzC,SAASC,GAAcjf,EAAS+c,GAC9Bn0C,OAAOwE,KAAK2vC,GAAYhvC,SAAQ,SAAUmE,GACxC,IAAIvJ,EAAQo0C,EAAW7qC,IACT,IAAVvJ,EACFq3B,EAAQkf,aAAahtC,EAAM6qC,EAAW7qC,IAEtC8tB,EAAQ2d,gBAAgBzrC,MAc9B,SAASitC,GAAWn1C,GAgBlB,OAXA+0C,GAAU/0C,EAAKguC,SAASqC,OAAQrwC,EAAKqtC,QAIrC4H,GAAcj1C,EAAKguC,SAASqC,OAAQrwC,EAAK+yC,YAGrC/yC,EAAKo1C,cAAgBx2C,OAAOwE,KAAKpD,EAAK8yC,aAAajxC,QACrDkzC,GAAU/0C,EAAKo1C,aAAcp1C,EAAK8yC,aAG7B9yC,EAaT,SAASq1C,GAAiB3K,EAAW2F,EAAQ1S,EAAS2X,EAAiBhoC,GAErE,IAAIskC,EAAmBT,EAAoB7jC,EAAO+iC,EAAQ3F,EAAW/M,EAAQsV,eAKzEttC,EAAYgrC,EAAqBhT,EAAQh4B,UAAWisC,EAAkBvB,EAAQ3F,EAAW/M,EAAQ/2B,UAAUivB,KAAKM,kBAAmBwH,EAAQ/2B,UAAUivB,KAAKK,SAQ9J,OANAma,EAAO6E,aAAa,cAAevvC,GAInCovC,GAAU1E,EAAQ,CAAE6C,SAAUvV,EAAQsV,cAAgB,QAAU,aAEzDtV,EAsBT,SAAS4X,GAAkBv1C,EAAMw1C,GAC/B,IAAIC,EAAgBz1C,EAAKyuC,QACrB4B,EAASoF,EAAcpF,OACvB3F,EAAY+K,EAAc/K,UAC1BgL,EAAQljC,KAAKkjC,MACbC,EAAQnjC,KAAKmjC,MAEbC,EAAU,SAAiBv9B,GAC7B,OAAOA,GAGLw9B,EAAiBH,EAAMhL,EAAUtT,OACjC0e,EAAcJ,EAAMrF,EAAOjZ,OAE3B2e,GAA4D,IAA/C,CAAC,OAAQ,SAAS3uB,QAAQpnB,EAAK2F,WAC5CqwC,GAA+C,IAAjCh2C,EAAK2F,UAAUyhB,QAAQ,KACrC6uB,EAAkBJ,EAAiB,IAAMC,EAAc,EACvDI,EAAeL,EAAiB,IAAM,GAAKC,EAAc,IAAM,EAE/DK,EAAuBX,EAAwBO,GAAcC,GAAeC,EAAkBP,EAAQC,EAAjEC,EACrCQ,EAAqBZ,EAAwBE,EAAVE,EAEvC,MAAO,CACLjW,KAAMwW,EAAoBD,IAAiBF,GAAeR,EAAcnF,EAAO1Q,KAAO,EAAI0Q,EAAO1Q,MACjGD,IAAK0W,EAAkB/F,EAAO3Q,KAC9BE,OAAQwW,EAAkB/F,EAAOzQ,QACjCC,MAAOsW,EAAoB9F,EAAOxQ,QAItC,IAAIwW,GAAYxN,GAAa,WAAW/hC,KAAKsI,UAAUC,WASvD,SAASinC,GAAat2C,EAAM29B,GAC1B,IAAI1sB,EAAI0sB,EAAQ1sB,EACZC,EAAIysB,EAAQzsB,EACZm/B,EAASrwC,EAAKyuC,QAAQ4B,OAItBkG,EAA8BnE,EAAKpyC,EAAKguC,SAASpnC,WAAW,SAAUumC,GACxE,MAAyB,eAAlBA,EAASztC,QACf82C,qBACiC/wC,IAAhC8wC,GACF7rC,QAAQ6Q,KAAK,iIAEf,IAAIi7B,OAAkD/wC,IAAhC8wC,EAA4CA,EAA8B5Y,EAAQ6Y,gBAEpGpL,EAAeF,EAAgBlrC,EAAKguC,SAASqC,QAC7CoG,EAAmB/H,EAAsBtD,GAGzCiC,EAAS,CACX6F,SAAU7C,EAAO6C,UAGfzE,EAAU8G,GAAkBv1C,EAAM8oC,OAAO4N,iBAAmB,IAAML,IAElE9I,EAAc,WAANt8B,EAAiB,MAAQ,SACjCu8B,EAAc,UAANt8B,EAAgB,OAAS,QAKjCylC,EAAmBrD,EAAyB,aAW5C3T,OAAO,EACPD,OAAM,EAqBV,GAhBIA,EAJU,WAAV6N,EAG4B,SAA1BnC,EAAalB,UACRkB,EAAayD,aAAeJ,EAAQ7O,QAEpC6W,EAAiB3I,OAASW,EAAQ7O,OAGrC6O,EAAQ/O,IAIZC,EAFU,UAAV6N,EAC4B,SAA1BpC,EAAalB,UACPkB,EAAawD,YAAcH,EAAQ5O,OAEnC4W,EAAiBrf,MAAQqX,EAAQ5O,MAGpC4O,EAAQ9O,KAEb6W,GAAmBG,EACrBtJ,EAAOsJ,GAAoB,eAAiBhX,EAAO,OAASD,EAAM,SAClE2N,EAAOE,GAAS,EAChBF,EAAOG,GAAS,EAChBH,EAAOuG,WAAa,gBACf,CAEL,IAAIgD,EAAsB,WAAVrJ,GAAsB,EAAI,EACtCsJ,EAAuB,UAAVrJ,GAAqB,EAAI,EAC1CH,EAAOE,GAAS7N,EAAMkX,EACtBvJ,EAAOG,GAAS7N,EAAOkX,EACvBxJ,EAAOuG,WAAarG,EAAQ,KAAOC,EAIrC,IAAIuF,EAAa,CACf,cAAe/yC,EAAK2F,WAQtB,OAJA3F,EAAK+yC,WAAazE,EAAS,GAAIyE,EAAY/yC,EAAK+yC,YAChD/yC,EAAKqtC,OAASiB,EAAS,GAAIjB,EAAQrtC,EAAKqtC,QACxCrtC,EAAK8yC,YAAcxE,EAAS,GAAItuC,EAAKyuC,QAAQ1Y,MAAO/1B,EAAK8yC,aAElD9yC,EAaT,SAAS82C,GAAmBlwC,EAAWmwC,EAAgBC,GACrD,IAAIC,EAAa7E,EAAKxrC,GAAW,SAAU9G,GACzC,IAAIJ,EAAOI,EAAKJ,KAChB,OAAOA,IAASq3C,KAGdnP,IAAeqP,GAAcrwC,EAAU2Z,MAAK,SAAU4sB,GACxD,OAAOA,EAASztC,OAASs3C,GAAiB7J,EAASyF,SAAWzF,EAAStB,MAAQoL,EAAWpL,SAG5F,IAAKjE,EAAY,CACf,IAAIsP,EAAc,IAAMH,EAAiB,IACrCI,EAAY,IAAMH,EAAgB,IACtCtsC,QAAQ6Q,KAAK47B,EAAY,4BAA8BD,EAAc,4DAA8DA,EAAc,KAEnJ,OAAOtP,EAUT,SAAS7R,GAAM/1B,EAAM29B,GACnB,IAAIyZ,EAGJ,IAAKN,GAAmB92C,EAAKguC,SAASpnC,UAAW,QAAS,gBACxD,OAAO5G,EAGT,IAAIo1C,EAAezX,EAAQ3H,QAG3B,GAA4B,kBAAjBof,GAIT,GAHAA,EAAep1C,EAAKguC,SAASqC,OAAOgH,cAAcjC,IAG7CA,EACH,OAAOp1C,OAKT,IAAKA,EAAKguC,SAASqC,OAAO7D,SAAS4I,GAEjC,OADA1qC,QAAQ6Q,KAAK,iEACNvb,EAIX,IAAI2F,EAAY3F,EAAK2F,UAAU0B,MAAM,KAAK,GACtCouC,EAAgBz1C,EAAKyuC,QACrB4B,EAASoF,EAAcpF,OACvB3F,EAAY+K,EAAc/K,UAE1BqL,GAAuD,IAA1C,CAAC,OAAQ,SAAS3uB,QAAQzhB,GAEvC8U,EAAMs7B,EAAa,SAAW,QAC9BuB,EAAkBvB,EAAa,MAAQ,OACvCpJ,EAAO2K,EAAgBlwC,cACvBmwC,EAAUxB,EAAa,OAAS,MAChCyB,EAASzB,EAAa,SAAW,QACjC0B,EAAmBpG,EAAc+D,GAAc36B,GAQ/CiwB,EAAU8M,GAAUC,EAAmBpH,EAAO1D,KAChD3sC,EAAKyuC,QAAQ4B,OAAO1D,IAAS0D,EAAO1D,IAASjC,EAAU8M,GAAUC,IAG/D/M,EAAUiC,GAAQ8K,EAAmBpH,EAAOmH,KAC9Cx3C,EAAKyuC,QAAQ4B,OAAO1D,IAASjC,EAAUiC,GAAQ8K,EAAmBpH,EAAOmH,IAE3Ex3C,EAAKyuC,QAAQ4B,OAAS7B,EAAcxuC,EAAKyuC,QAAQ4B,QAGjD,IAAIqH,EAAShN,EAAUiC,GAAQjC,EAAUjwB,GAAO,EAAIg9B,EAAmB,EAInE1N,EAAML,EAAyB1pC,EAAKguC,SAASqC,QAC7CsH,EAAmBloC,WAAWs6B,EAAI,SAAWuN,IAC7CM,EAAmBnoC,WAAWs6B,EAAI,SAAWuN,EAAkB,UAC/DO,EAAYH,EAAS13C,EAAKyuC,QAAQ4B,OAAO1D,GAAQgL,EAAmBC,EAQxE,OALAC,EAAYrlC,KAAKm7B,IAAIn7B,KAAKslC,IAAIzH,EAAO51B,GAAOg9B,EAAkBI,GAAY,GAE1E73C,EAAKo1C,aAAeA,EACpBp1C,EAAKyuC,QAAQ1Y,OAASqhB,EAAsB,GAAIv4C,EAAeu4C,EAAqBzK,EAAMn6B,KAAKkjC,MAAMmC,IAAah5C,EAAeu4C,EAAqBG,EAAS,IAAKH,GAE7Jp3C,EAUT,SAAS+3C,GAAqB7G,GAC5B,MAAkB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,EAkCT,IAAI8G,GAAa,CAAC,aAAc,OAAQ,WAAY,YAAa,MAAO,UAAW,cAAe,QAAS,YAAa,aAAc,SAAU,eAAgB,WAAY,OAAQ,cAGhLC,GAAkBD,GAAWjxC,MAAM,GAYvC,SAASmxC,GAAUvyC,GACjB,IAAIwyC,EAAUx2C,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,IAAmBA,UAAU,GAEzEuH,EAAQ+uC,GAAgB7wB,QAAQzhB,GAChC4T,EAAM0+B,GAAgBlxC,MAAMmC,EAAQ,GAAGzI,OAAOw3C,GAAgBlxC,MAAM,EAAGmC,IAC3E,OAAOivC,EAAU5+B,EAAI4sB,UAAY5sB,EAGnC,IAAI6+B,GAAY,CACdC,KAAM,OACNC,UAAW,YACXC,iBAAkB,oBAUpB,SAAS1iB,GAAK71B,EAAM29B,GAElB,GAAIyV,EAAkBpzC,EAAKguC,SAASpnC,UAAW,SAC7C,OAAO5G,EAGT,GAAIA,EAAKgzC,SAAWhzC,EAAK2F,YAAc3F,EAAKq2B,kBAE1C,OAAOr2B,EAGT,IAAIswC,EAAaF,EAAcpwC,EAAKguC,SAASqC,OAAQrwC,EAAKguC,SAAStD,UAAW/M,EAAQzH,QAASyH,EAAQxH,kBAAmBn2B,EAAKizC,eAE3HttC,EAAY3F,EAAK2F,UAAU0B,MAAM,KAAK,GACtCmxC,EAAoBhH,EAAqB7rC,GACzCurC,EAAYlxC,EAAK2F,UAAU0B,MAAM,KAAK,IAAM,GAE5CoxC,EAAY,GAEhB,OAAQ9a,EAAQ7H,UACd,KAAKsiB,GAAUC,KACbI,EAAY,CAAC9yC,EAAW6yC,GACxB,MACF,KAAKJ,GAAUE,UACbG,EAAYP,GAAUvyC,GACtB,MACF,KAAKyyC,GAAUG,iBACbE,EAAYP,GAAUvyC,GAAW,GACjC,MACF,QACE8yC,EAAY9a,EAAQ7H,SAyDxB,OAtDA2iB,EAAU10C,SAAQ,SAAU20C,EAAMxvC,GAChC,GAAIvD,IAAc+yC,GAAQD,EAAU52C,SAAWqH,EAAQ,EACrD,OAAOlJ,EAGT2F,EAAY3F,EAAK2F,UAAU0B,MAAM,KAAK,GACtCmxC,EAAoBhH,EAAqB7rC,GAEzC,IAAImsC,EAAgB9xC,EAAKyuC,QAAQ4B,OAC7BsI,EAAa34C,EAAKyuC,QAAQ/D,UAG1BiL,EAAQnjC,KAAKmjC,MACbiD,EAA4B,SAAdjzC,GAAwBgwC,EAAM7D,EAAcjS,OAAS8V,EAAMgD,EAAWhZ,OAAuB,UAAdh6B,GAAyBgwC,EAAM7D,EAAcnS,MAAQgW,EAAMgD,EAAW9Y,QAAwB,QAAdl6B,GAAuBgwC,EAAM7D,EAAclS,QAAU+V,EAAMgD,EAAWjZ,MAAsB,WAAd/5B,GAA0BgwC,EAAM7D,EAAcpS,KAAOiW,EAAMgD,EAAW/Y,QAEjUiZ,EAAgBlD,EAAM7D,EAAcnS,MAAQgW,EAAMrF,EAAW3Q,MAC7DmZ,EAAiBnD,EAAM7D,EAAcjS,OAAS8V,EAAMrF,EAAWzQ,OAC/DkZ,EAAepD,EAAM7D,EAAcpS,KAAOiW,EAAMrF,EAAW5Q,KAC3DsZ,EAAkBrD,EAAM7D,EAAclS,QAAU+V,EAAMrF,EAAW1Q,QAEjEqZ,EAAoC,SAAdtzC,GAAwBkzC,GAA+B,UAAdlzC,GAAyBmzC,GAAgC,QAAdnzC,GAAuBozC,GAA8B,WAAdpzC,GAA0BqzC,EAG3KjD,GAAuD,IAA1C,CAAC,MAAO,UAAU3uB,QAAQzhB,GAGvCuzC,IAA0Bvb,EAAQwb,iBAAmBpD,GAA4B,UAAd7E,GAAyB2H,GAAiB9C,GAA4B,QAAd7E,GAAuB4H,IAAmB/C,GAA4B,UAAd7E,GAAyB6H,IAAiBhD,GAA4B,QAAd7E,GAAuB8H,GAGlQI,IAA8Bzb,EAAQ0b,0BAA4BtD,GAA4B,UAAd7E,GAAyB4H,GAAkB/C,GAA4B,QAAd7E,GAAuB2H,IAAkB9C,GAA4B,UAAd7E,GAAyB8H,IAAoBjD,GAA4B,QAAd7E,GAAuB6H,GAElRO,EAAmBJ,GAAyBE,GAE5CR,GAAeK,GAAuBK,KAExCt5C,EAAKgzC,SAAU,GAEX4F,GAAeK,KACjBtzC,EAAY8yC,EAAUvvC,EAAQ,IAG5BowC,IACFpI,EAAY6G,GAAqB7G,IAGnClxC,EAAK2F,UAAYA,GAAaurC,EAAY,IAAMA,EAAY,IAI5DlxC,EAAKyuC,QAAQ4B,OAAS/B,EAAS,GAAItuC,EAAKyuC,QAAQ4B,OAAQsB,EAAiB3xC,EAAKguC,SAASqC,OAAQrwC,EAAKyuC,QAAQ/D,UAAW1qC,EAAK2F,YAE5H3F,EAAOyyC,EAAazyC,EAAKguC,SAASpnC,UAAW5G,EAAM,YAGhDA,EAUT,SAASu5C,GAAav5C,GACpB,IAAIy1C,EAAgBz1C,EAAKyuC,QACrB4B,EAASoF,EAAcpF,OACvB3F,EAAY+K,EAAc/K,UAE1B/kC,EAAY3F,EAAK2F,UAAU0B,MAAM,KAAK,GACtCsuC,EAAQnjC,KAAKmjC,MACbI,GAAuD,IAA1C,CAAC,MAAO,UAAU3uB,QAAQzhB,GACvCgnC,EAAOoJ,EAAa,QAAU,SAC9ByB,EAASzB,EAAa,OAAS,MAC/B7D,EAAc6D,EAAa,QAAU,SASzC,OAPI1F,EAAO1D,GAAQgJ,EAAMjL,EAAU8M,MACjCx3C,EAAKyuC,QAAQ4B,OAAOmH,GAAU7B,EAAMjL,EAAU8M,IAAWnH,EAAO6B,IAE9D7B,EAAOmH,GAAU7B,EAAMjL,EAAUiC,MACnC3sC,EAAKyuC,QAAQ4B,OAAOmH,GAAU7B,EAAMjL,EAAUiC,KAGzC3sC,EAeT,SAASw5C,GAAQC,EAAKvH,EAAaJ,EAAeF,GAEhD,IAAIvqC,EAAQoyC,EAAIjH,MAAM,6BAClB7zC,GAAS0I,EAAM,GACf2tC,EAAO3tC,EAAM,GAGjB,IAAK1I,EACH,OAAO86C,EAGT,GAA0B,IAAtBzE,EAAK5tB,QAAQ,KAAY,CAC3B,IAAI4O,OAAU,EACd,OAAQgf,GACN,IAAK,KACHhf,EAAU8b,EACV,MACF,IAAK,IACL,IAAK,KACL,QACE9b,EAAU4b,EAGd,IAAI7E,EAAOyB,EAAcxY,GACzB,OAAO+W,EAAKmF,GAAe,IAAMvzC,EAC5B,GAAa,OAATq2C,GAA0B,OAATA,EAAe,CAEzC,IAAI3iB,OAAO,EAMX,OAJEA,EADW,OAAT2iB,EACKxiC,KAAKm7B,IAAInmB,SAASwX,gBAAgB6P,aAAc/F,OAAOkH,aAAe,GAEtEx9B,KAAKm7B,IAAInmB,SAASwX,gBAAgB4P,YAAa9F,OAAOiH,YAAc,GAEtE1d,EAAO,IAAM1zB,EAIpB,OAAOA,EAeX,SAAS+6C,GAAY3zC,EAAQ+rC,EAAeF,EAAkB+H,GAC5D,IAAIlL,EAAU,CAAC,EAAG,GAKdmL,GAA0D,IAA9C,CAAC,QAAS,QAAQxyB,QAAQuyB,GAItCE,EAAY9zC,EAAOsB,MAAM,WAAW8Q,KAAI,SAAU2hC,GACpD,OAAOA,EAAK3yC,UAKV4yC,EAAUF,EAAUzyB,QAAQgrB,EAAKyH,GAAW,SAAUC,GACxD,OAAgC,IAAzBA,EAAK9vC,OAAO,YAGjB6vC,EAAUE,KAAiD,IAArCF,EAAUE,GAAS3yB,QAAQ,MACnD1c,QAAQ6Q,KAAK,gFAKf,IAAIy+B,EAAa,cACbC,GAAmB,IAAbF,EAAiB,CAACF,EAAU9yC,MAAM,EAAGgzC,GAASt5C,OAAO,CAACo5C,EAAUE,GAAS1yC,MAAM2yC,GAAY,KAAM,CAACH,EAAUE,GAAS1yC,MAAM2yC,GAAY,IAAIv5C,OAAOo5C,EAAU9yC,MAAMgzC,EAAU,KAAO,CAACF,GAqC9L,OAlCAI,EAAMA,EAAI9hC,KAAI,SAAU+hC,EAAIhxC,GAE1B,IAAIgpC,GAAyB,IAAVhpC,GAAe0wC,EAAYA,GAAa,SAAW,QAClEO,GAAoB,EACxB,OAAOD,EAGNxhC,QAAO,SAAU9G,EAAGkQ,GACnB,MAAwB,KAApBlQ,EAAEA,EAAE/P,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKulB,QAAQtF,IAC/ClQ,EAAEA,EAAE/P,OAAS,GAAKigB,EAClBq4B,GAAoB,EACbvoC,GACEuoC,GACTvoC,EAAEA,EAAE/P,OAAS,IAAMigB,EACnBq4B,GAAoB,EACbvoC,GAEAA,EAAEnR,OAAOqhB,KAEjB,IAEF3J,KAAI,SAAUshC,GACb,OAAOD,GAAQC,EAAKvH,EAAaJ,EAAeF,SAKpDqI,EAAIl2C,SAAQ,SAAUm2C,EAAIhxC,GACxBgxC,EAAGn2C,SAAQ,SAAU+1C,EAAMM,GACrBvF,GAAUiF,KACZrL,EAAQvlC,IAAU4wC,GAA2B,MAAnBI,EAAGE,EAAS,IAAc,EAAI,UAIvD3L,EAYT,SAAS1oC,GAAO/F,EAAMF,GACpB,IAAIiG,EAASjG,EAAKiG,OACdJ,EAAY3F,EAAK2F,UACjB8vC,EAAgBz1C,EAAKyuC,QACrB4B,EAASoF,EAAcpF,OACvB3F,EAAY+K,EAAc/K,UAE1BiP,EAAgBh0C,EAAU0B,MAAM,KAAK,GAErConC,OAAU,EAsBd,OApBEA,EADEoG,IAAW9uC,GACH,EAAEA,EAAQ,GAEV2zC,GAAY3zC,EAAQsqC,EAAQ3F,EAAWiP,GAG7B,SAAlBA,GACFtJ,EAAO3Q,KAAO+O,EAAQ,GACtB4B,EAAO1Q,MAAQ8O,EAAQ,IACI,UAAlBkL,GACTtJ,EAAO3Q,KAAO+O,EAAQ,GACtB4B,EAAO1Q,MAAQ8O,EAAQ,IACI,QAAlBkL,GACTtJ,EAAO1Q,MAAQ8O,EAAQ,GACvB4B,EAAO3Q,KAAO+O,EAAQ,IACK,WAAlBkL,IACTtJ,EAAO1Q,MAAQ8O,EAAQ,GACvB4B,EAAO3Q,KAAO+O,EAAQ,IAGxBzuC,EAAKqwC,OAASA,EACPrwC,EAUT,SAASi2B,GAAgBj2B,EAAM29B,GAC7B,IAAIxH,EAAoBwH,EAAQxH,mBAAqB+U,EAAgBlrC,EAAKguC,SAASqC,QAK/ErwC,EAAKguC,SAAStD,YAAcvU,IAC9BA,EAAoB+U,EAAgB/U,IAMtC,IAAIkkB,EAAgB/G,EAAyB,aACzCgH,EAAet6C,EAAKguC,SAASqC,OAAO1pB,MACpC+Y,EAAM4a,EAAa5a,IACnBC,EAAO2a,EAAa3a,KACpBsB,EAAYqZ,EAAaD,GAE7BC,EAAa5a,IAAM,GACnB4a,EAAa3a,KAAO,GACpB2a,EAAaD,GAAiB,GAE9B,IAAI/J,EAAaF,EAAcpwC,EAAKguC,SAASqC,OAAQrwC,EAAKguC,SAAStD,UAAW/M,EAAQzH,QAASC,EAAmBn2B,EAAKizC,eAIvHqH,EAAa5a,IAAMA,EACnB4a,EAAa3a,KAAOA,EACpB2a,EAAaD,GAAiBpZ,EAE9BtD,EAAQ2S,WAAaA,EAErB,IAAIzE,EAAQlO,EAAQ4c,SAChBlK,EAASrwC,EAAKyuC,QAAQ4B,OAEtBgC,EAAQ,CACVmI,QAAS,SAAiB70C,GACxB,IAAIhH,EAAQ0xC,EAAO1qC,GAInB,OAHI0qC,EAAO1qC,GAAa2qC,EAAW3qC,KAAeg4B,EAAQ8c,sBACxD97C,EAAQ6T,KAAKm7B,IAAI0C,EAAO1qC,GAAY2qC,EAAW3qC,KAE1C9G,EAAe,GAAI8G,EAAWhH,IAEvC+7C,UAAW,SAAmB/0C,GAC5B,IAAIqsC,EAAyB,UAAdrsC,EAAwB,OAAS,MAC5ChH,EAAQ0xC,EAAO2B,GAInB,OAHI3B,EAAO1qC,GAAa2qC,EAAW3qC,KAAeg4B,EAAQ8c,sBACxD97C,EAAQ6T,KAAKslC,IAAIzH,EAAO2B,GAAW1B,EAAW3qC,IAA4B,UAAdA,EAAwB0qC,EAAOjZ,MAAQiZ,EAAOvC,UAErGjvC,EAAe,GAAImzC,EAAUrzC,KAWxC,OAPAktC,EAAM9nC,SAAQ,SAAU4B,GACtB,IAAIgnC,GAA+C,IAAxC,CAAC,OAAQ,OAAOvlB,QAAQzhB,GAAoB,UAAY,YACnE0qC,EAAS/B,EAAS,GAAI+B,EAAQgC,EAAM1F,GAAMhnC,OAG5C3F,EAAKyuC,QAAQ4B,OAASA,EAEfrwC,EAUT,SAASisB,GAAMjsB,GACb,IAAI2F,EAAY3F,EAAK2F,UACjBg0C,EAAgBh0C,EAAU0B,MAAM,KAAK,GACrCszC,EAAiBh1C,EAAU0B,MAAM,KAAK,GAG1C,GAAIszC,EAAgB,CAClB,IAAIlF,EAAgBz1C,EAAKyuC,QACrB/D,EAAY+K,EAAc/K,UAC1B2F,EAASoF,EAAcpF,OAEvB0F,GAA2D,IAA9C,CAAC,SAAU,OAAO3uB,QAAQuyB,GACvChN,EAAOoJ,EAAa,OAAS,MAC7B7D,EAAc6D,EAAa,QAAU,SAErC6E,EAAe,CACjB3O,MAAOptC,EAAe,GAAI8tC,EAAMjC,EAAUiC,IAC1CT,IAAKrtC,EAAe,GAAI8tC,EAAMjC,EAAUiC,GAAQjC,EAAUwH,GAAe7B,EAAO6B,KAGlFlyC,EAAKyuC,QAAQ4B,OAAS/B,EAAS,GAAI+B,EAAQuK,EAAaD,IAG1D,OAAO36C,EAUT,SAAS0G,GAAK1G,GACZ,IAAK82C,GAAmB92C,EAAKguC,SAASpnC,UAAW,OAAQ,mBACvD,OAAO5G,EAGT,IAAI4wC,EAAU5wC,EAAKyuC,QAAQ/D,UACvBmQ,EAAQzI,EAAKpyC,EAAKguC,SAASpnC,WAAW,SAAUumC,GAClD,MAAyB,oBAAlBA,EAASztC,QACf4wC,WAEH,GAAIM,EAAQhR,OAASib,EAAMnb,KAAOkR,EAAQjR,KAAOkb,EAAMhb,OAAS+Q,EAAQlR,IAAMmb,EAAMjb,QAAUgR,EAAQ/Q,MAAQgb,EAAMlb,KAAM,CAExH,IAAkB,IAAd3/B,EAAK0G,KACP,OAAO1G,EAGTA,EAAK0G,MAAO,EACZ1G,EAAK+yC,WAAW,uBAAyB,OACpC,CAEL,IAAkB,IAAd/yC,EAAK0G,KACP,OAAO1G,EAGTA,EAAK0G,MAAO,EACZ1G,EAAK+yC,WAAW,wBAAyB,EAG3C,OAAO/yC,EAUT,SAAS86C,GAAM96C,GACb,IAAI2F,EAAY3F,EAAK2F,UACjBg0C,EAAgBh0C,EAAU0B,MAAM,KAAK,GACrCouC,EAAgBz1C,EAAKyuC,QACrB4B,EAASoF,EAAcpF,OACvB3F,EAAY+K,EAAc/K,UAE1BqH,GAAwD,IAA9C,CAAC,OAAQ,SAAS3qB,QAAQuyB,GAEpCoB,GAA6D,IAA5C,CAAC,MAAO,QAAQ3zB,QAAQuyB,GAO7C,OALAtJ,EAAO0B,EAAU,OAAS,OAASrH,EAAUiP,IAAkBoB,EAAiB1K,EAAO0B,EAAU,QAAU,UAAY,GAEvH/xC,EAAK2F,UAAY6rC,EAAqB7rC,GACtC3F,EAAKyuC,QAAQ4B,OAAS7B,EAAc6B,GAE7BrwC,EAwBT,IAAI4G,GAAY,CASdqlB,MAAO,CAEL4f,MAAO,IAEP+G,SAAS,EAETxxC,GAAI6qB,IAyCNlmB,OAAQ,CAEN8lC,MAAO,IAEP+G,SAAS,EAETxxC,GAAI2E,GAIJA,OAAQ,GAoBVkwB,gBAAiB,CAEf4V,MAAO,IAEP+G,SAAS,EAETxxC,GAAI60B,GAMJskB,SAAU,CAAC,OAAQ,QAAS,MAAO,UAOnCrkB,QAAS,EAMTC,kBAAmB,gBAYrBojB,aAAc,CAEZ1N,MAAO,IAEP+G,SAAS,EAETxxC,GAAIm4C,IAaNxjB,MAAO,CAEL8V,MAAO,IAEP+G,SAAS,EAETxxC,GAAI20B,GAEJC,QAAS,aAcXH,KAAM,CAEJgW,MAAO,IAEP+G,SAAS,EAETxxC,GAAIy0B,GAOJC,SAAU,OAKVI,QAAS,EAOTC,kBAAmB,WAQnBgjB,gBAAgB,EAQhBE,yBAAyB,GAU3ByB,MAAO,CAELjP,MAAO,IAEP+G,SAAS,EAETxxC,GAAI05C,IAaNp0C,KAAM,CAEJmlC,MAAO,IAEP+G,SAAS,EAETxxC,GAAIsF,IAkBN4vC,aAAc,CAEZzK,MAAO,IAEP+G,SAAS,EAETxxC,GAAIk1C,GAMJE,iBAAiB,EAMjBvlC,EAAG,SAMHC,EAAG,SAkBLikC,WAAY,CAEVtJ,MAAO,IAEP+G,SAAS,EAETxxC,GAAI+zC,GAEJ6F,OAAQ3F,GAORmB,qBAAiB/wC,IAuCjBw1C,GAAW,CAKbt1C,UAAW,SAMXstC,eAAe,EAMfuB,eAAe,EAOfV,iBAAiB,EAQjB1d,SAAU,aAUVG,SAAU,aAOV3vB,UAAWA,IAeTs0C,GAAS,WASX,SAASA,EAAOxQ,EAAW2F,GACzB,IAAInmC,EAAQvJ,KAERg9B,EAAUh8B,UAAUE,OAAS,QAAsB4D,IAAjB9D,UAAU,GAAmBA,UAAU,GAAK,GAClFosC,EAAeptC,KAAMu6C,GAErBv6C,KAAK22B,eAAiB,WACpB,OAAO6jB,sBAAsBjxC,EAAM6E,SAIrCpO,KAAKoO,OAASu6B,EAAS3oC,KAAKoO,OAAOzG,KAAK3H,OAGxCA,KAAKg9B,QAAU2Q,EAAS,GAAI4M,EAAOD,SAAUtd,GAG7Ch9B,KAAK2M,MAAQ,CACXulC,aAAa,EACbM,WAAW,EACXc,cAAe,IAIjBtzC,KAAK+pC,UAAYA,GAAaA,EAAU0Q,OAAS1Q,EAAU,GAAKA,EAChE/pC,KAAK0vC,OAASA,GAAUA,EAAO+K,OAAS/K,EAAO,GAAKA,EAGpD1vC,KAAKg9B,QAAQ/2B,UAAY,GACzBhI,OAAOwE,KAAKkrC,EAAS,GAAI4M,EAAOD,SAASr0C,UAAW+2B,EAAQ/2B,YAAY7C,SAAQ,SAAUrE,GACxFwK,EAAMyzB,QAAQ/2B,UAAUlH,GAAQ4uC,EAAS,GAAI4M,EAAOD,SAASr0C,UAAUlH,IAAS,GAAIi+B,EAAQ/2B,UAAY+2B,EAAQ/2B,UAAUlH,GAAQ,OAIpIiB,KAAKiG,UAAYhI,OAAOwE,KAAKzC,KAAKg9B,QAAQ/2B,WAAWuR,KAAI,SAAUzY,GACjE,OAAO4uC,EAAS,CACd5uC,KAAMA,GACLwK,EAAMyzB,QAAQ/2B,UAAUlH,OAG5BwY,MAAK,SAAUtG,EAAGkQ,GACjB,OAAOlQ,EAAEi6B,MAAQ/pB,EAAE+pB,SAOrBlrC,KAAKiG,UAAU7C,SAAQ,SAAUuxC,GAC3BA,EAAgB1C,SAAWrJ,EAAW+L,EAAgB0F,SACxD1F,EAAgB0F,OAAO9wC,EAAMwgC,UAAWxgC,EAAMmmC,OAAQnmC,EAAMyzB,QAAS2X,EAAiBprC,EAAMoD,UAKhG3M,KAAKoO,SAEL,IAAIylC,EAAgB7zC,KAAKg9B,QAAQ6W,cAC7BA,GAEF7zC,KAAK8zC,uBAGP9zC,KAAK2M,MAAMknC,cAAgBA,EAqD7B,OA9CAtG,EAAYgN,EAAQ,CAAC,CACnBx8C,IAAK,SACLC,MAAO,WACL,OAAOoQ,EAAOkL,KAAKtZ,QAEpB,CACDjC,IAAK,UACLC,MAAO,WACL,OAAO04B,EAAQpd,KAAKtZ,QAErB,CACDjC,IAAK,uBACLC,MAAO,WACL,OAAO81C,EAAqBx6B,KAAKtZ,QAElC,CACDjC,IAAK,wBACLC,MAAO,WACL,OAAOk1C,GAAsB55B,KAAKtZ,UA4B/Bu6C,EA7HI,GAqJbA,GAAOG,OAA2B,qBAAXvS,OAAyBA,OAASl4B,GAAQ0qC,YACjEJ,GAAOlD,WAAaA,GACpBkD,GAAOD,SAAWA,GAEH,Y","file":"js/chunk-b6c44e42.fd0547c5.js","sourcesContent":["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_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\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 slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"auth-wrapper auth-v1 px-2\"},[_c('div',{staticClass:\"auth-inner py-2\"},[_c('b-card',{staticClass:\"mb-0\"},[_c('b-link',{staticClass:\"brand-logo\",attrs:{\"to\":{ name: 'welcome' }}},[_c('vuexy-logo')],1),_c('b-card-title',{staticClass:\"mb-1\",attrs:{\"align\":\"center\"}},[_vm._v(\" Bienvenido! 👋 \")]),_c('div',[_c('b-alert',{attrs:{\"variant\":\"warning\",\"show\":\"\"}},[_c('div',{staticClass:\"alert-body\",staticStyle:{\"color\":\"white\",\"textAlign\":\"justify\"}},[_vm._v(\" Con LukiPlay disfrutarás del mejor entretenimiento \")])])],1),_c('validation-observer',{ref:\"loginForm\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar invalid = ref.invalid;\nreturn [_c('b-form',{staticClass:\"auth-login-form mt-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.login.apply(null, arguments)}}},[_c('b-form-group',{attrs:{\"label-for\":\"email\",\"label\":\"Email\"}},[_c('validation-provider',{attrs:{\"name\":\"Email\",\"rules\":\"required|email\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-input',{staticClass:\"text-white\",attrs:{\"id\":\"email\",\"name\":\"login-email\",\"state\":errors.length > 0 ? false : null,\"placeholder\":\"\",\"autofocus\":\"\",\"trim\":\"\"},model:{value:(_vm.userEmail),callback:function ($$v) {_vm.userEmail=$$v},expression:\"userEmail\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('b-form-group',[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(\"Password\")]),_c('b-link',{attrs:{\"to\":{\n path: (\"/forgot-password/\" + _vm.userEmail),\n params: { email: _vm.userEmail }\n }}},[_c('small',{staticClass:\"text-warning\",staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\"Olvido su contraseña?\")])])],1),_c('validation-provider',{attrs:{\"name\":\"Password\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\nreturn [_c('b-input-group',{staticClass:\"input-group-merge\",class:errors.length > 0 ? 'is-invalid' : null},[_c('b-form-input',{staticClass:\"form-control-merge text-white\",attrs:{\"id\":\"password\",\"type\":_vm.passwordFieldType,\"state\":errors.length > 0 ? false : null,\"name\":\"login-password\",\"placeholder\":\"Password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIcon},on:{\"click\":_vm.togglePasswordVisibility}})],1)],1),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"remember-me\",\"name\":\"checkbox-1\"},model:{value:(_vm.status),callback:function ($$v) {_vm.status=$$v},expression:\"status\"}},[_vm._v(\" Recuerdame \")])],1),(!_vm.isLoading)?_c('b-button',{staticStyle:{\"color\":\"#004e7c\"},attrs:{\"variant\":\"secondary\",\"type\":\"submit\",\"block\":\"\",\"disabled\":invalid}},[_vm._v(\" INICIAR SESIÓN \")]):_vm._e(),(_vm.isLoading)?_c('b-button',{attrs:{\"variant\":\"secondary\",\"disabled\":\"\",\"block\":\"\"}},[_c('b-spinner',{attrs:{\"small\":\"\"}}),_vm._v(\" Cargando... \")],1):_vm._e()],1)]}}])}),_c('b-card-text',{staticClass:\"text-center mt-2 text-white\"},[_c('span',[_vm._v(\"Nuevo en la plataforma? \")]),_c('b-link',{attrs:{\"to\":{ name: 'auth-register' }}},[_c('span',{staticClass:\"text-warning\"},[_vm._v(\" REGISTRATE\")])])],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"modal-login-session\",\"ok-only\":\"\",\"ok-variant\":\"danger\",\"ok-title\":\"Cerrar\",\"modal-class\":\"modal-danger\",\"centered\":\"\",\"size\":\"xl\",\"title\":\"Sesiones\"},model:{value:(_vm.modalShow),callback:function ($$v) {_vm.modalShow=$$v},expression:\"modalShow\"}},[_c('login-sessions',{attrs:{\"userData\":_vm.userSession}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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 { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-2\"},[_c('h4',{staticClass:\"text-white\"},[_vm._v(\" \"+_vm._s(_vm.userData.message)+\" \")]),_c('b-overlay',{attrs:{\"show\":_vm.show,\"rounded\":\"sm\"}},[(_vm.totalRows > 0)?_c('b-row',[_c('b-col',{attrs:{\"lg\":\"12\",\"sm\":\"12\"}},[_c('statistic-card-horizontal',{attrs:{\"icon\":\"AirplayIcon\",\"color\":\"success\",\"statistic\":_vm.totalRows}})],1)],1):_vm._e(),_c('b-row',[_c('b-col',{staticClass:\"mt-1\",attrs:{\"lg\":\"12\",\"sm\":\"12\"}},[_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:\"btn-icon float-right\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.confirmDelete()}}},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}}),_vm._v(\" Eliminar todas las sesiones \")],1)],1),_c('b-col',{staticClass:\"mt-1\",attrs:{\"lg\":\"12\",\"sm\":\"12\"}},[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-table',{ref:\"refUserListTable\",staticClass:\"position-relative\",attrs:{\"striped\":\"\",\"hover\":\"\",\"items\":_vm.items,\"responsive\":\"\",\"fields\":_vm.fields,\"show-empty\":\"\",\"empty-text\":\"No existen registros para mostrar\",\"id\":\"my-table\"},scopedSlots:_vm._u([{key:\"cell(id)\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.index + 1)+\" \")]}},{key:\"cell(delete)\",fn:function(data){return [_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:\"btn-icon\",attrs:{\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.confirmDelete(data.item.id)}}},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}}),_vm._v(\" Eliminar \")],1)]}}])})],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./LoginSessions.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!./LoginSessions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoginSessions.vue?vue&type=template&id=fb96cee8\"\nimport script from \"./LoginSessions.vue?vue&type=script&lang=js\"\nexport * from \"./LoginSessions.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","\n\n\n\n\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!./Login.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!./Login.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=3c3ced12\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=3c3ced12&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-img',{attrs:{\"src\":_vm.imgUrl,\"alt\":\"Icon\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./Logo.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!./Logo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=10a0f566\"\nimport script from \"./Logo.vue?vue&type=script&lang=js\"\nexport * from \"./Logo.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-card-body',{staticClass:\"d-flex justify-content-between align-items-center\"},[_c('div',{staticClass:\"truncate\"},[_c('h2',{staticClass:\"mb-25 font-weight-bolder\"},[_vm._v(\" \"+_vm._s(_vm.statistic)+\" \")]),_c('span',[_vm._v(_vm._s(_vm.statisticTitle))])]),_c('b-avatar',{attrs:{\"variant\":(\"light-\" + _vm.color),\"size\":\"45\"}},[_c('feather-icon',{attrs:{\"size\":\"21\",\"icon\":_vm.icon}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./StatisticCardHorizontal.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!./StatisticCardHorizontal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StatisticCardHorizontal.vue?vue&type=template&id=5602feb7\"\nimport script from \"./StatisticCardHorizontal.vue?vue&type=script&lang=js\"\nexport * from \"./StatisticCardHorizontal.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","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto \",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ToastificationContent.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!./ToastificationContent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=55dd3057&scoped=true\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&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 \"55dd3057\",\n null\n \n)\n\nexport default component.exports","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\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!./Login.vue?vue&type=style&index=0&id=3c3ced12&prod&lang=scss\"","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\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 { Vue } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar LIGHT = 'light';\nvar DARK = 'dark'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTr = /*#__PURE__*/Vue.extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTableRowGroup: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / ``\n inTbody: function inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `` / ``\n inThead: function inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `` / ``\n inTfoot: function inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `` / ``\n isDark: function isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `` / ``\n isStacked: function isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `` / ``\n isResponsive: function isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `` / ``\n tableVariant: function tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `` / ``\n headVariant: function headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `` / ``\n footVariant: function footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark: function isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ?\n /* istanbul ignore next */\n false : this.headVariant === DARK || this.footVariant === DARK ?\n /* istanbul ignore next */\n true : this.isDark;\n },\n trClasses: function trClasses() {\n var variant = this.variant;\n return [variant ? \"\".concat(this.isRowDark ? 'bg' : 'table', \"-\").concat(variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var bottomRowMixin = Vue.extend({\n props: props,\n methods: {\n renderBottomRow: function renderBottomRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields: fields\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 { Vue } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper methods ---\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\n\nvar parseSpan = function parseSpan(value) {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(value) {\n return isUndefinedOrNull(value) || parseSpan(value) > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTd = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n bvTableTr: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Overridden by ``\n tag: function tag() {\n return 'td';\n },\n inTbody: function inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead: function inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot: function inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark: function isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked: function isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell: function isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive: function isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn: function isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant: function rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant: function headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant: function footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant: function tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses: function cellClasses() {\n var variant = this.variant,\n headVariant = this.headVariant,\n isStickyColumn = this.isStickyColumn;\n\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs: function cellAttrs() {\n var stackedHeading = this.stackedHeading; // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n\n var headOrFoot = this.inThead || this.inTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread(_objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.bvAttrs), {}, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ?\n /* istanbul ignore next */\n toString(stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\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 } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Constants ---\n\nvar MODEL_PROP_NAME_BUSY = 'busy';\nvar MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY; // --- Props ---\n\nexport var props = _defineProperty({}, MODEL_PROP_NAME_BUSY, makeProp(PROP_TYPE_BOOLEAN, false)); // --- Mixin ---\n// @vue/component\n\nexport var busyMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n } // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n\n\n return null;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING) // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n\n}; // --- Mixin ---\n// @vue/component\n\nexport var captionMixin = Vue.extend({\n props: props,\n computed: {\n captionId: function captionId() {\n // Even though `this.safeId` looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var caption = this.caption,\n captionHtml = this.captionHtml;\n var h = this.$createElement;\n var $caption = h();\n var hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n\n return $caption;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Props ---\n\nexport var props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var emptyMixin = Vue.extend({\n props: props,\n methods: {\n renderEmpty: function renderEmpty() {\n var items = this.computedItems;\n var h = this.$createElement;\n var $empty = h();\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n var fields = this.computedFields,\n isFiltered = this.isFiltered,\n emptyText = this.emptyText,\n emptyHtml = this.emptyHtml,\n emptyFilteredText = this.emptyFilteredText,\n emptyFilteredHtml = this.emptyFilteredHtml,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml: emptyFilteredHtml,\n emptyFilteredText: emptyFilteredText,\n emptyHtml: emptyHtml,\n emptyText: emptyText,\n fields: fields,\n // Not sure why this is included, as it will always be an empty array\n items: items\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n\n return $empty;\n }\n }\n});","import { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\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\n// Constants used by table helpers\nexport var FIELD_KEY_CELL_VARIANT = '_cellVariants';\nexport var FIELD_KEY_ROW_VARIANT = '_rowVariant';\nexport var FIELD_KEY_SHOW_DETAILS = '_showDetails'; // Object of item keys that should be ignored for headers and\n// stringification and filter events\n\nexport var IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, true));\n}, {}); // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","import { arrayIncludes } from '../../../utils/array';\nimport { isArray, isFunction } from '../../../utils/inspect';\nimport { clone, keys, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nexport var sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n var formattedRow = keys(fieldsObj).reduce(function (result, key) {\n var field = fieldsObj[key];\n var filterByFormatted = field.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ?\n /* istanbul ignore next */\n filterByFormatted : filterByFormatted ?\n /* istanbul ignore next */\n field.formatter : null;\n\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n\n return result;\n }, clone(row)); // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n\n var allowedKeys = keys(formattedRow).filter(function (key) {\n return !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key));\n });\n return pick(formattedRow, allowedKeys);\n};","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nexport var stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) :\n /* istanbul ignore next */\n '';\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_REG_EXP, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { hasPropFunction, makeProp } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values'; // --- Constants ---\n\nvar DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"\" instead.'; // --- Props ---\n\nexport var props = {\n filter: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_REG_EXP])),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, function (value) {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n}; // --- Mixin ---\n// @vue/component\n\nexport var filteringMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce: function computedFilterDebounce() {\n var ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n\n return ms;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n var filteredItems = this.filteredItems,\n localItems = this.localItems,\n localFilter = this.localFilter;\n return {\n filteredItems: filteredItems,\n localItems: localItems,\n localFilter: localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n var filterFunction = this.filterFunction;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n // Note the criteria is debounced and sanitized\n var items = this.localItems,\n criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newCriteria) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.localFilter = _this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n var localItems = this.localItems;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create private non-reactive props\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer: function clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the RegExp needed for filtering\n\n\n var regExp = criteria;\n\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n var pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+'); // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n\n regExp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n});","import { identity } from '../../../utils/identity';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nexport var normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\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 { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isArray, isFunction, isString } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { makeModelMixin } from '../../../utils/model';\nimport { toInteger } from '../../../utils/number';\nimport { clone, sortKeys } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { normalizeFields } from './normalize-fields'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\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 = sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, _defineProperty({\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING)\n}, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])))); // --- Mixin ---\n// @vue/component\n\nexport var itemsMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var items = this.items;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var $parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction($parent[formatter])) {\n formatter = $parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems ||\n /* istanbul ignore next */\n []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(this.perPage, 0), 0),\n currentPage: mathMax(toInteger(this.currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context: function context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n}; // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n props: props,\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n var perPage = mathMax(toInteger(this.perPage, 0), 0); // Apply local pagination\n\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nvar ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH); // --- Props ---\n\nexport var props = {\n // Passed to the context object\n // Not used by `` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var providerMixin = Vue.extend({\n mixins: [listenOnRootMixin],\n props: props,\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n var items = this.items,\n refresh = this.refresh; // Public Method: Force a refresh of the provider function\n\n this.$off(EVENT_NAME_REFRESHED, refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED); // New root emit\n\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"Provider function error [\".concat(e.name, \"] \").concat(e.message, \".\"), NAME_TABLE);\n _this2.localBusy = false;\n\n _this2.$off(EVENT_NAME_REFRESHED, _this2.refresh);\n }\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 } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED, EVENT_NAME_FILTERED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_SELECTED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax, mathMin } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { sanitizeRow } from './sanitize-row'; // --- Constants ---\n\nvar SELECT_MODES = ['range', 'multi', 'single']; // --- Props ---\n\nexport var props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', function (value) {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n}; // --- Mixin ---\n// @vue/component\n\nexport var selectableMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick: function hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows: function supportsSelectableRows() {\n return true;\n },\n selectableHasSelection: function selectableHasSelection() {\n var selectedRows = this.selectedRows;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n var isSelectable = this.isSelectable;\n return _ref = {\n 'b-table-selectable': isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _defineProperty(_ref, 'b-table-selectable-no-click', isSelectable && !this.hasSelectableRowClick), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n return {\n // TODO:\n // Should this attribute not be included when no-select-on-click is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': !this.isSelectable ? null : this.selectableIsMultiSelect ? 'true' : 'false'\n };\n }\n },\n watch: {\n computedItems: function computedItems(newValue, oldValue) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n\n for (var i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode: function selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick: function hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows: function selectedRows(_selectedRows, oldValue) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldValue)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n }\n\n return {};\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on && !this.noSelectOnClick ? '$on' : '$off'; // Handle row-clicked event\n\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n\n var selectMode = this.selectMode,\n selectedLastRow = this.selectedLastRow;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (var idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n this.selectedLastRow = selected ? index : -1;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});","var _props, _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 { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SORT_BY = 'sortBy';\nvar MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nvar MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nvar MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nvar SORT_DIRECTION_ASC = 'asc';\nvar SORT_DIRECTION_DESC = 'desc';\nvar SORT_DIRECTION_LAST = 'last';\nvar SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST]; // --- Props ---\n\nexport var props = (_props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort Ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort Descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false)\n}, _defineProperty(_props, MODEL_PROP_NAME_SORT_BY, makeProp(PROP_TYPE_STRING)), _defineProperty(_props, \"sortCompare\", makeProp(PROP_TYPE_FUNCTION)), _defineProperty(_props, \"sortCompareLocale\", makeProp(PROP_TYPE_ARRAY_STRING)), _defineProperty(_props, \"sortCompareOptions\", makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n})), _defineProperty(_props, MODEL_PROP_NAME_SORT_DESC, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortDirection\", makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, function (value) {\n return arrayIncludes(SORT_DIRECTIONS, value);\n})), _defineProperty(_props, \"sortIconLeft\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortNullLast\", makeProp(PROP_TYPE_BOOLEAN, false)), _props); // --- Mixin ---\n// @vue/component\n\nexport var sortingMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems: function sortedItems() {\n var sortBy = this.localSortBy,\n sortDesc = this.localSortDesc,\n locale = this.sortCompareLocale,\n nullLast = this.sortNullLast,\n sortCompare = this.sortCompare,\n localSorting = this.localSorting;\n var items = (this.filteredItems || this.localItems || []).slice();\n\n var localeOptions = _objectSpread(_objectSpread({}, this.sortCompareOptions), {}, {\n usage: 'sort'\n });\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ?\n /* istanbul ignore next */\n sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null; // Call user provided `sortCompare` routine first\n\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n } // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n\n\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy: sortBy,\n formatter: formatter,\n locale: locale,\n localeOptions: localeOptions,\n nullLast: nullLast\n });\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: (_watch = {\n /* istanbul ignore next: pain in the butt to test */\n isSortable: function isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n }\n }, _defineProperty(_watch, MODEL_PROP_NAME_SORT_DESC, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n\n this.localSortDesc = newValue || false;\n }), _defineProperty(_watch, MODEL_PROP_NAME_SORT_BY, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n\n this.localSortBy = newValue || '';\n }), _defineProperty(_watch, \"localSortDesc\", function localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n }), _defineProperty(_watch, \"localSortBy\", function localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }), _watch),\n created: function created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, event, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n _this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n var sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable; // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && this.localSortBy === key ? this.localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attribute\n\n return {\n 'aria-sort': ariaSort\n };\n },\n sortTheadThLabel: function sortTheadThLabel(key, field, isFoot) {\n // A label to be placed in an `.sr-only` element in the header cell\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No label if not a sortable table\n return null;\n }\n\n var sortable = field.sortable; // The correctness of these labels is very important for screen-reader users.\n\n var labelSorting = '';\n\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n labelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc;\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n labelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc; // Handle sortDirection setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = this.labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = this.labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = this.localSortBy ? this.labelSortClear : '';\n } // Return the sr-only sort label or null if no label\n\n\n return trim(labelSorting) || null;\n }\n }\n});","import { get } from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isNumeric, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nvar normalizeValue = function normalizeValue(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n\n return value;\n}; // Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\n\n\nexport var defaultSortCompare = function defaultSortCompare(a, b) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? null : _ref$sortBy,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? null : _ref$formatter,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? undefined : _ref$locale,\n _ref$localeOptions = _ref.localeOptions,\n localeOptions = _ref$localeOptions === void 0 ? {} : _ref$localeOptions,\n _ref$nullLast = _ref.nullLast,\n nullLast = _ref$nullLast === void 0 ? false : _ref$nullLast;\n\n // Get the value by `sortBy`\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null); // Apply user-provided formatter\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n } // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n\n\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\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 } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var stackedMixin = Vue.extend({\n props: props,\n computed: {\n isStacked: function isStacked() {\n var stacked = this.stacked; // `true` when always stacked, or returns breakpoint specified\n\n return stacked === '' ? true : stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n var isStackedAlways = this.isStackedAlways;\n return _defineProperty({\n 'b-table-stacked': isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !isStackedAlways && this.isStacked);\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 { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs'; // Main `` render mixin\n// Includes all main table styling options\n// --- Props ---\n\nexport var props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tableRendererMixin = Vue.extend({\n mixins: [attrsMixin],\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `
`\n inheritAttrs: false,\n props: props,\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive;\n responsive = responsive === '' ? true : responsive;\n return this.isStacked ? false : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n var isResponsive = this.isResponsive;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(identity);\n },\n wrapperStyles: function wrapperStyles() {\n var isStickyHeader = this.isStickyHeader;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.hover,\n tableVariant = this.tableVariant;\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n var items = this.computedItems,\n filteredItems = this.filteredItems,\n fields = this.computedFields,\n selectableTableAttrs = this.selectableTableAttrs; // Preserve user supplied aria-describedby, if provided in `$attrs`\n\n var adb = [(this.bvAttrs || {})['aria-describedby'], this.captionId].filter(identity).join(' ') || null;\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': toString(fields.length),\n 'aria-describedby': adb\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return _objectSpread(_objectSpread(_objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.bvAttrs), {}, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: 'table'\n }, ariaAttrs), selectableTableAttrs);\n }\n },\n render: function render(h) {\n var wrapperClasses = this.wrapperClasses,\n renderCaption = this.renderCaption,\n renderColgroup = this.renderColgroup,\n renderThead = this.renderThead,\n renderTbody = this.renderTbody,\n renderTfoot = this.renderTfoot;\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `
`\n\n $content.push(renderColgroup ? renderColgroup() : null); // Build the ``\n\n $content.push(renderThead ? renderThead() : null); // Build the ``\n\n $content.push(renderTbody ? renderTbody() : null); // Build the ``\n\n $content.push(renderTfoot ? renderTfoot() : null);\n } // Assemble `
` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null); // Build the `
`\n\n\n var $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity)); // Add responsive/sticky wrapper if needed and return table\n\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\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_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","import { Vue } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BTd, props as BTdProps } from './td'; // --- Props ---\n\nexport var props = makePropsConfigurable(BTdProps, NAME_TH); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTh = /*#__PURE__*/Vue.extend({\n name: NAME_TH,\n extends: BTd,\n props: props,\n computed: {\n tag: function tag() {\n return 'th';\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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS } from './constants'; // --- Props ---\n\nexport var props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_FUNCTION]))\n}; // --- Mixin ---\n// @vue/component\n\nexport var tbodyRowMixin = Vue.extend({\n props: props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defaultValue) {\n var $parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction($parent[tdValue])) {\n return $parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defaultValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defaultValue) {\n var $parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction($parent[thValue])) {\n return $parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered: function rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered: function rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n var _this2 = this;\n\n var isStacked = this.isStacked;\n var key = field.key,\n label = field.label,\n isRowHeader = field.isRowHeader;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var formatted = this.getFormattedValue(item, field);\n var stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn; // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n\n var cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n var cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {})),\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key)\n };\n\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null; // Add in the variant class\n\n if (cellVariant) {\n data.class.push(\"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(cellVariant));\n }\n }\n\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n\n slotScope.selectRow = function () {\n return _this2.selectRow(rowIndex);\n };\n\n slotScope.unselectRow = function () {\n return _this2.unselectRow(rowIndex);\n };\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n var fields = this.computedFields,\n striped = this.striped,\n primaryKey = this.primaryKey,\n currentPage = this.currentPage,\n perPage = this.perPage,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n var hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || this.hasSelectableRowClick; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKeyValue = toString(get(item, primaryKey)) || null;\n var rowKey = primaryKeyValue || toString(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = primaryKeyValue ? this.safeId(\"_row_\".concat(primaryKeyValue)) : null; // Selectable classes and attributes\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Additional classes and attributes\n\n var userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n var userTrAttrs = isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(item, 'row') : tbodyTrAttr; // Add the item row\n\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({\n id: rowId\n }, userTrAttrs), {}, {\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'item-rows',\n refInFor: true\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n\n detailsScope.selectRow = function () {\n return _this3.selectRow(rowIndex);\n };\n\n detailsScope.unselectRow = function () {\n return _this3.unselectRow(rowIndex);\n };\n } // Render the details slot in a TD\n\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n\n if (striped) {\n $rows.push( // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: \"__b-table-details-stripe__\".concat(rowKey)\n }));\n } // Add the actual details row\n\n\n var userDetailsTrClasses = isFunction(this.tbodyTrClass) ?\n /* istanbul ignore next */\n this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n var userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ?\n /* istanbul ignore next */\n this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({}, userDetailsTrAttrs), {}, {\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n }),\n key: \"__b-table-details__\".concat(rowKey)\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\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 { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED } from '../../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_SPACE, CODE_UP } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { arrayIncludes, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, isActiveElement, isElement } from '../../../utils/dom';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { BTbody, props as BTbodyProps } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { tbodyRowMixin, props as tbodyRowProps } from './mixin-tbody-row'; // --- Helper methods ---\n\nvar getCellSlotName = function getCellSlotName(value) {\n return \"cell(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread({}, BTbodyProps), tbodyRowProps), {}, {\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})); // --- Mixin ---\n// @vue/component\n\nexport var tbodyMixin = Vue.extend({\n mixins: [tbodyRowMixin],\n props: props,\n beforeDestroy: function beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs: function getTbodyTrs() {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n var trs = ($refs['item-rows'] || []).map(function (tr) {\n return tr.$el || tr;\n });\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? arrayFrom(tbody.children).filter(function (tr) {\n return arrayIncludes(trs, tr);\n }) :\n /* istanbul ignore next */\n [];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex: function getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n\n var tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent: function emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n var rowIndex = this.getTbodyTrIndex(event.target);\n\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n var item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEvtStopped: function tbodyRowEvtStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown: function onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n var target = event.target,\n keyCode = event.keyCode;\n\n if (this.tbodyRowEvtStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n var rowIndex = this.getTbodyTrIndex(target);\n\n if (rowIndex > -1) {\n stopEvent(event);\n var trs = this.getTbodyTrs();\n var shift = event.shiftKey;\n\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked: function onTBodyRowClicked(event) {\n // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n if (this.tbodyRowEvtStopped(event) || filterEvent(event) || textSelectionActive(this.$el)) {\n return;\n }\n\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked: function onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu: function onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEvtStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked: function onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody: function renderTbody() {\n var _this = this;\n\n var items = this.computedItems,\n renderBusy = this.renderBusy,\n renderTopRow = this.renderTopRow,\n renderEmpty = this.renderEmpty,\n renderBottomRow = this.renderBottomRow;\n var h = this.$createElement;\n var hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || this.hasSelectableRowClick; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = renderBusy ? renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n var cache = {};\n var defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var slotName = getCellSlotName(key);\n var lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = _this.hasNormalizedSlot(slotName) ? slotName : _this.hasNormalizedSlot(lowercaseSlotName) ?\n /* istanbul ignore next */\n lowercaseSlotName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n\n this.$_bodyFieldSlotNameCache = cache; // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderTopRow ? renderTopRow() : h()); // Render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n\n $rows.push(renderEmpty ? renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n } // Note: these events will only emit if a listener is registered\n\n\n var handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n\n }; // Add in click/keydown listeners if needed\n\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(BTbodyProps, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows); // Return the assembled tbody\n\n return $tbody;\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 { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\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 { Vue } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction 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 { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field (
) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var topRowMixin = Vue.extend({\n methods: {\n renderTopRow: function renderTopRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields: fields\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 { Vue } from '../../vue';\nimport { NAME_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { bottomRowMixin, props as bottomRowProps } from './helpers/mixin-bottom-row';\nimport { busyMixin, props as busyProps } from './helpers/mixin-busy';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { emptyMixin, props as emptyProps } from './helpers/mixin-empty';\nimport { filteringMixin, props as filteringProps } from './helpers/mixin-filtering';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { paginationMixin, props as paginationProps } from './helpers/mixin-pagination';\nimport { providerMixin, props as providerProps } from './helpers/mixin-provider';\nimport { selectableMixin, props as selectableProps } from './helpers/mixin-selectable';\nimport { sortingMixin, props as sortingProps } from './helpers/mixin-sorting';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead';\nimport { topRowMixin, props as topRowProps } from './helpers/mixin-top-row'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), bottomRowProps), busyProps), captionProps), colgroupProps), emptyProps), filteringProps), itemsProps), paginationProps), providerProps), selectableProps), sortingProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps), topRowProps)), NAME_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BTable = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","module.exports = __webpack_public_path__ + \"img/login-trantor.2e5d1f46.png\";","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\nvar RegExpPrototype = RegExp.prototype;\n\n// `RegExp.prototype.sticky` getter\nif (DESCRIPTORS && UNSUPPORTED_Y) {\n defineProperty(RegExp.prototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (this instanceof RegExp) {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\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!./ToastificationContent.vue?vue&type=style&index=0&id=55dd3057&prod&lang=scss&scoped=true\"","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\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 { 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});","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});","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\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});","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 { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\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_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\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\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\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_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\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 { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","module.exports = __webpack_public_path__ + \"img/logo.28a830c7.png\";","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});","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// We haven't added icon's computed property because it makes this mixin coupled with UI\nexport const togglePasswordVisibility = {\n data() {\n return {\n passwordFieldType: 'password',\n }\n },\n methods: {\n togglePasswordVisibility() {\n this.passwordFieldType = this.passwordFieldType === 'password' ? 'text' : 'password'\n },\n },\n}\n\nexport const _ = null\n","var _objectSpread2;\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_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -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 _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","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});","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});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_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.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","export var noop = function noop() {};","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (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\nvar _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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"],"sourceRoot":""}