{"version":3,"sources":["webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.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/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js"],"names":["title","value","replacer","str","toString","arr","split","capitalizedArray","forEach","word","capitalized","charAt","toUpperCase","slice","push","join","avatarText","nameArray","length","pop","map","toInteger","requireObjectCoercible","module","exports","repeat","count","String","this","result","n","Infinity","RangeError","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","arrayPush","min","Math","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","undefined","call","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","index","apply","test","O","splitter","regexp","res","done","rx","S","C","unicodeMatching","p","q","A","e","z","i","getBuiltIn","definePropertyModule","wellKnownSymbol","DESCRIPTORS","SPECIES","CONSTRUCTOR_NAME","Constructor","defineProperty","f","configurable","get","props","noBody","rightAlign","tag","verticalAlign","BMedia","extend","name","functional","render","h","_ref","data","slots","scopedSlots","children","$children","slotScope","$slots","$scopedSlots","$aside","right","staticClass","classof","TypeError","isObject","MATCH","it","aFunction","defaultConstructor","constructor","global","isForced","inheritIfRequired","getOwnPropertyNames","getFlags","stickyHelpers","redefine","setInternalState","set","setSpecies","NativeRegExp","RegExpPrototype","prototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","FORCED","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","indexOf","replace","proxy","key","keys","_defineProperty","obj","Object","enumerable","writable","computeJustifyContent","concat","align","cardHeader","fill","justified","pills","small","tabs","vertical","BNav","_class","class","BMediaAside","BMediaBody","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","boundary","boundaryPadding","fallbackPlacement","offset","placement","target","BVPopper","noFade","localShow","attachment","getAttachment","computed","templateType","popperConfig","_this","modifiers","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","created","_this2","$_popper","$on","el","popperCreate","handleDestroy","$nextTick","$destroy","$parent","$once","beforeMount","updated","updatePopper","beforeDestroy","destroyPopper","destroyed","$el","parentNode","removeChild","methods","hide","$refs","arrowOffset","width","destroy","scheduleUpdate","renderTemplate","_this3","appear","on","beforeEnter","$emit","afterEnter","beforeLeave","afterLeave","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","arguments","getOwnPropertyDescriptors","defineProperties","html","id","BVTooltipTemplate","extends","mixins","content","variant","customClass","interactive","templateClasses","noninteractive","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","event","mouseleave","focusin","focusout","$title","domProps","innerHTML","attrs","ref","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","triggers","container","delay","disabled","BVTooltip","activeTrigger","hover","click","focus","computedId","computedDelay","show","math","computedTriggers","identity","trim","toLowerCase","sort","isWithActiveTrigger","trigger","computedTemplateData","watch","newTriggers","oldTriggers","unListen","array","listen","handleTemplateUpdate","newValue","oldValue","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","noop","bind","getTarget","document","body","scopeId","warn","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","updateData","titleUpdated","prop","fixTitle","createTemplateAndShow","getContainer","Template","$tip","parent","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","clearTimeout","clearInterval","desc","_this5","d","type","options","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","$root","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","setTimeout","_this11","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","mounted","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","selector","els","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","provide","bvDropdown","inject","bvNavbar","default","visible","visibleChangePrevented","inNavbar","toggler","directionClass","boundaryClass","eventName","menu","safeId","$off","focusToggler","showMenu","hideMenu","$_hideTimeout","whileOpenListen","clearHideTimeout","createPopper","focusMenu","getPopperConfig","enabled","isOpen","rootCloseListener","vm","refocus","_event","keyCode","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","up","items","getItems","focusItem","find","linkClass","BDropdownItem","inheritAttrs","computedAttrs","bvAttrs","closeDropdown","onClick","active","style","$props","normalizeSlot","$","thisNumberValue","nativeToFixed","toFixed","floor","pow","x","acc","log","x2","proto","forced","fractionDigits","j","k","number","fractDigits","sign","multiply","c","c2","divide","dataToString","s","t","_typeof","Symbol","iterator","isToday","date","today","Date","getDate","getMonth","getFullYear","useRouter","getCurrentInstance","state","reactive","route","$route","r","toRefs","router","$router","getCookie","matches","cookie","decodeURIComponent","defineWellKnownSymbol","$map","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","callbackfn","block","lazy","menuClass","noCaret","size","splitButtonType","splitClass","splitHref","splitTo","splitVariant","text","toggleClass","toggleTag","toggleText","BDropdown","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","to","href","$toggle","mousedown","keydown","$menu","has","copyConstructorProperties","NativeSymbol","description","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","symbol","valueOf"],"mappings":"wSAIaA,EAAQ,SAACC,GAA0B,IAAnBC,EAAmB,uDAAR,IACtC,IAAKD,EAAO,MAAO,GACnB,IAAME,EAAMF,EAAMG,WAEZC,EAAMF,EAAIG,MAAMJ,GAChBK,EAAmB,GAKzB,OAJAF,EAAIG,SAAQ,SAAAC,GACV,IAAMC,EAAcD,EAAKE,OAAO,GAAGC,cAAgBH,EAAKI,MAAM,GAC9DN,EAAiBO,KAAKJ,MAEjBH,EAAiBQ,KAAK,MAGlBC,EAAa,SAAAf,GACxB,IAAKA,EAAO,MAAO,GACnB,IAAMgB,EAAYhB,EAAMK,MAAM,KAI9B,OAHIW,EAAUC,OAAS,GACrBD,EAAUE,MAELF,EAAUG,KAAI,SAAAX,GAAI,OAAIA,EAAKE,OAAO,GAAGC,iBAAeG,KAAK,M,kCCtBlE,IAAIM,EAAY,EAAQ,QACpBC,EAAyB,EAAQ,QAIrCC,EAAOC,QAAU,GAAGC,QAAU,SAAgBC,GAC5C,IAAIvB,EAAMwB,OAAOL,EAAuBM,OACpCC,EAAS,GACTC,EAAIT,EAAUK,GAClB,GAAII,EAAI,GAAKA,GAAKC,IAAU,MAAMC,WAAW,+BAC7C,KAAMF,EAAI,GAAIA,KAAO,KAAO3B,GAAOA,GAAc,EAAJ2B,IAAOD,GAAU1B,GAC9D,OAAO0B,I,kCCXT,IAAII,EAAgC,EAAQ,QACxCC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBb,EAAyB,EAAQ,QACjCc,EAAqB,EAAQ,QAC7BC,EAAqB,EAAQ,QAC7BC,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBC,EAAQ,EAAQ,QAEhBC,EAAY,GAAG5B,KACf6B,EAAMC,KAAKD,IACXE,EAAa,WAGbC,GAAcL,GAAM,WAAc,OAAQM,OAAOF,EAAY,QAGjEZ,EAA8B,QAAS,GAAG,SAAUe,EAAOC,EAAaC,GACtE,IAAIC,EAmDJ,OAzCEA,EAR2B,KAA3B,OAAO7C,MAAM,QAAQ,IACc,GAAnC,OAAOA,MAAM,QAAS,GAAGY,QACO,GAAhC,KAAKZ,MAAM,WAAWY,QACU,GAAhC,IAAIZ,MAAM,YAAYY,QACtB,IAAIZ,MAAM,QAAQY,OAAS,GAC3B,GAAGZ,MAAM,MAAMY,OAGC,SAAUkC,EAAWC,GACnC,IAAIC,EAAS3B,OAAOL,EAAuBM,OACvC2B,OAAgBC,IAAVH,EAAsBR,EAAaQ,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,QAAkBC,IAAdJ,EAAyB,MAAO,CAACE,GAErC,IAAKpB,EAASkB,GACZ,OAAOH,EAAYQ,KAAKH,EAAQF,EAAWG,GAE7C,IAQIG,EAAOC,EAAWC,EARlBC,EAAS,GACTC,GAASV,EAAUW,WAAa,IAAM,KAC7BX,EAAUY,UAAY,IAAM,KAC5BZ,EAAUa,QAAU,IAAM,KAC1Bb,EAAUc,OAAS,IAAM,IAClCC,EAAgB,EAEhBC,EAAgB,IAAIrB,OAAOK,EAAUiB,OAAQP,EAAQ,KAEzD,MAAOJ,EAAQlB,EAAWiB,KAAKW,EAAed,GAAS,CAErD,GADAK,EAAYS,EAAcT,UACtBA,EAAYQ,IACdN,EAAO/C,KAAKwC,EAAOzC,MAAMsD,EAAeT,EAAMY,QAC1CZ,EAAMxC,OAAS,GAAKwC,EAAMY,MAAQhB,EAAOpC,QAAQwB,EAAU6B,MAAMV,EAAQH,EAAM7C,MAAM,IACzF+C,EAAaF,EAAM,GAAGxC,OACtBiD,EAAgBR,EACZE,EAAO3C,QAAUqC,GAAK,MAExBa,EAAcT,YAAcD,EAAMY,OAAOF,EAAcT,YAK7D,OAHIQ,IAAkBb,EAAOpC,QACvB0C,GAAeQ,EAAcI,KAAK,KAAKX,EAAO/C,KAAK,IAClD+C,EAAO/C,KAAKwC,EAAOzC,MAAMsD,IACzBN,EAAO3C,OAASqC,EAAMM,EAAOhD,MAAM,EAAG0C,GAAOM,GAG7C,IAAIvD,WAAMkD,EAAW,GAAGtC,OACjB,SAAUkC,EAAWC,GACnC,YAAqBG,IAAdJ,GAAqC,IAAVC,EAAc,GAAKJ,EAAYQ,KAAK7B,KAAMwB,EAAWC,IAEpEJ,EAEhB,CAGL,SAAeG,EAAWC,GACxB,IAAIoB,EAAInD,EAAuBM,MAC3B8C,OAAwBlB,GAAbJ,OAAyBI,EAAYJ,EAAUJ,GAC9D,YAAoBQ,IAAbkB,EACHA,EAASjB,KAAKL,EAAWqB,EAAGpB,GAC5BF,EAAcM,KAAK9B,OAAO8C,GAAIrB,EAAWC,IAO/C,SAAUsB,EAAQtB,GAChB,IAAIuB,EAAM1B,EAAgBC,EAAewB,EAAQ/C,KAAMyB,EAAOF,IAAkBF,GAChF,GAAI2B,EAAIC,KAAM,OAAOD,EAAI3E,MAEzB,IAAI6E,EAAK3C,EAASwC,GACdI,EAAIpD,OAAOC,MACXoD,EAAI5C,EAAmB0C,EAAI/B,QAE3BkC,EAAkBH,EAAGb,QACrBH,GAASgB,EAAGf,WAAa,IAAM,KACtBe,EAAGd,UAAY,IAAM,KACrBc,EAAGb,QAAU,IAAM,KACnBnB,EAAa,IAAM,KAI5B4B,EAAW,IAAIM,EAAElC,EAAagC,EAAK,OAASA,EAAGT,OAAS,IAAKP,GAC7DP,OAAgBC,IAAVH,EAAsBR,EAAaQ,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,GAAiB,IAAbwB,EAAE7D,OAAc,OAAuC,OAAhCqB,EAAemC,EAAUK,GAAc,CAACA,GAAK,GACxE,IAAIG,EAAI,EACJC,EAAI,EACJC,EAAI,GACR,MAAOD,EAAIJ,EAAE7D,OAAQ,CACnBwD,EAASf,UAAYb,EAAaqC,EAAI,EACtC,IACIE,EADAC,EAAI/C,EAAemC,EAAU5B,EAAaiC,EAAIA,EAAElE,MAAMsE,IAE1D,GACQ,OAANG,IACCD,EAAI1C,EAAIL,EAASoC,EAASf,WAAab,EAAa,EAAIqC,IAAKJ,EAAE7D,WAAagE,EAE7EC,EAAI9C,EAAmB0C,EAAGI,EAAGF,OACxB,CAEL,GADAG,EAAEtE,KAAKiE,EAAElE,MAAMqE,EAAGC,IACdC,EAAElE,SAAWqC,EAAK,OAAO6B,EAC7B,IAAK,IAAIG,EAAI,EAAGA,GAAKD,EAAEpE,OAAS,EAAGqE,IAEjC,GADAH,EAAEtE,KAAKwE,EAAEC,IACLH,EAAElE,SAAWqC,EAAK,OAAO6B,EAE/BD,EAAID,EAAIG,GAIZ,OADAD,EAAEtE,KAAKiE,EAAElE,MAAMqE,IACRE,OAGTtC,I,kCCpIJ,IAAI0C,EAAa,EAAQ,QACrBC,EAAuB,EAAQ,QAC/BC,EAAkB,EAAQ,QAC1BC,EAAc,EAAQ,QAEtBC,EAAUF,EAAgB,WAE9BnE,EAAOC,QAAU,SAAUqE,GACzB,IAAIC,EAAcN,EAAWK,GACzBE,EAAiBN,EAAqBO,EAEtCL,GAAeG,IAAgBA,EAAYF,IAC7CG,EAAeD,EAAaF,EAAS,CACnCK,cAAc,EACdC,IAAK,WAAc,OAAOtE,U,oCCfhC,kJASWuE,EAAQ,eAAsB,CACvCC,OAAQ,eAAS,QAAmB,GACpCC,WAAY,eAAS,QAAmB,GACxCC,IAAK,eAAS,OAAkB,OAChCC,cAAe,eAAS,OAAkB,QACzC,QAGQC,EAAsB,aAAIC,OAAO,CAC1CC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZC,EAAQF,EAAKE,MACbC,EAAcH,EAAKG,YACnBC,EAAWJ,EAAKI,SAChBd,EAASD,EAAMC,OACfC,EAAaF,EAAME,WACnBE,EAAgBJ,EAAMI,cACtBY,EAAYf,EAASc,EAAW,GAEpC,IAAKd,EAAQ,CACX,IAAIgB,EAAY,GACZC,EAASL,IACTM,EAAeL,GAAe,GAClCE,EAAUrG,KAAK+F,EAAE,OAAY,eAAc,OAAmBO,EAAWE,EAAcD,KACvF,IAAIE,EAAS,eAAc,OAAiBH,EAAWE,EAAcD,GAEjEE,GACFJ,EAAUd,EAAa,OAAS,WAAWQ,EAAE,OAAa,CACxDV,MAAO,CACLqB,MAAOnB,EACPE,cAAeA,IAEhBgB,IAIP,OAAOV,EAAEV,EAAMG,IAAK,eAAUS,EAAM,CAClCU,YAAa,UACXN,O,uBCnDR,IAAIO,EAAU,EAAQ,QAItBnG,EAAOC,QAAU,SAAUvB,GACzB,GAAoB,iBAATA,GAAuC,UAAlByH,EAAQzH,GACtC,MAAM0H,UAAU,wBAElB,OAAQ1H,I,uBCRV,IAAI2H,EAAW,EAAQ,QACnBF,EAAU,EAAQ,QAClBhC,EAAkB,EAAQ,QAE1BmC,EAAQnC,EAAgB,SAI5BnE,EAAOC,QAAU,SAAUsG,GACzB,IAAI5F,EACJ,OAAO0F,EAASE,UAAmCtE,KAA1BtB,EAAW4F,EAAGD,MAA0B3F,EAA0B,UAAfwF,EAAQI,M,qBCVtF,IAAI3F,EAAW,EAAQ,QACnB4F,EAAY,EAAQ,QACpBrC,EAAkB,EAAQ,QAE1BE,EAAUF,EAAgB,WAI9BnE,EAAOC,QAAU,SAAUiD,EAAGuD,GAC5B,IACIjD,EADAC,EAAI7C,EAASsC,GAAGwD,YAEpB,YAAazE,IAANwB,QAAiDxB,IAA7BuB,EAAI5C,EAAS6C,GAAGY,IAAyBoC,EAAqBD,EAAUhD,K,uBCXrG,IAAIY,EAAc,EAAQ,QACtBuC,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBC,EAAoB,EAAQ,QAC5BrC,EAAiB,EAAQ,QAAuCC,EAChEqC,EAAsB,EAAQ,QAA8CrC,EAC5E9D,EAAW,EAAQ,QACnBoG,EAAW,EAAQ,QACnBC,EAAgB,EAAQ,QACxBC,EAAW,EAAQ,QACnB/F,EAAQ,EAAQ,QAChBgG,EAAmB,EAAQ,QAA+BC,IAC1DC,EAAa,EAAQ,QACrBjD,EAAkB,EAAQ,QAE1BmC,EAAQnC,EAAgB,SACxBkD,EAAeV,EAAOnF,OACtB8F,EAAkBD,EAAaE,UAC/BC,EAAM,KACNC,EAAM,KAGNC,EAAc,IAAIL,EAAaG,KAASA,EAExCG,EAAgBX,EAAcW,cAE9BC,EAASxD,GAAewC,EAAS,UAAYc,GAAeC,GAAiBzG,GAAM,WAGrF,OAFAuG,EAAInB,IAAS,EAENe,EAAaG,IAAQA,GAAOH,EAAaI,IAAQA,GAAiC,QAA1BJ,EAAaG,EAAK,SAKnF,GAAII,EAAQ,CACV,IAAIC,EAAgB,SAAgBC,EAASvF,GAC3C,IAGII,EAHAoF,EAAe1H,gBAAgBwH,EAC/BG,EAAkBrH,EAASmH,GAC3BG,OAA8BhG,IAAVM,EAGxB,IAAKwF,GAAgBC,GAAmBF,EAAQpB,cAAgBmB,GAAiBI,EAC/E,OAAOH,EAGLJ,EACEM,IAAoBC,IAAmBH,EAAUA,EAAQhF,QACpDgF,aAAmBD,IACxBI,IAAmB1F,EAAQwE,EAAS7E,KAAK4F,IAC7CA,EAAUA,EAAQhF,QAGhB6E,IACFhF,IAAWJ,GAASA,EAAM2F,QAAQ,MAAQ,EACtCvF,IAAQJ,EAAQA,EAAM4F,QAAQ,KAAM,MAG1C,IAAI7H,EAASuG,EACXa,EAAc,IAAIL,EAAaS,EAASvF,GAAS8E,EAAaS,EAASvF,GACvEwF,EAAe1H,KAAOiH,EACtBO,GAKF,OAFIF,GAAiBhF,GAAQuE,EAAiB5G,EAAQ,CAAEqC,OAAQA,IAEzDrC,GAEL8H,EAAQ,SAAUC,GACpBA,KAAOR,GAAiBrD,EAAeqD,EAAeQ,EAAK,CACzD3D,cAAc,EACdC,IAAK,WAAc,OAAO0C,EAAagB,IACvClB,IAAK,SAAUZ,GAAMc,EAAagB,GAAO9B,MAGzC+B,EAAOxB,EAAoBO,GAC3BtE,EAAQ,EACZ,MAAOuF,EAAK3I,OAASoD,EAAOqF,EAAME,EAAKvF,MACvCuE,EAAgBZ,YAAcmB,EAC9BA,EAAcN,UAAYD,EAC1BL,EAASN,EAAQ,SAAUkB,GAI7BT,EAAW,W,oCCnFX,6IAASmB,EAAgBC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EAO3M,IAAII,EAAwB,SAA+BlK,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBmK,OAAOnK,IAIxBkG,EAAQ,eAAsB,CACvCkE,MAAO,eAAS,QAEhBC,WAAY,eAAS,QAAmB,GACxCC,KAAM,eAAS,QAAmB,GAClCC,UAAW,eAAS,QAAmB,GACvCC,MAAO,eAAS,QAAmB,GACnCC,MAAO,eAAS,QAAmB,GACnCC,KAAM,eAAS,QAAmB,GAClCrE,IAAK,eAAS,OAAkB,MAChCsE,SAAU,eAAS,QAAmB,IACrC,QAGQC,EAAoB,aAAIpE,OAAO,CACxCC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIgE,EAEA3E,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZG,EAAWJ,EAAKI,SAChByD,EAAOxE,EAAMwE,KACbF,EAAQtE,EAAMsE,MACdG,EAAWzE,EAAMyE,SACjBP,EAAQlE,EAAMkE,MACdC,EAAanE,EAAMmE,WACvB,OAAOzD,EAAEV,EAAMG,IAAK,eAAUS,EAAM,CAClCU,YAAa,MACbsD,OAAQD,EAAS,CACf,WAAYH,EACZ,YAAaF,IAAUE,EACvB,oBAAqBC,GAAYN,GAAcK,EAC/C,qBAAsBC,GAAYN,GAAcG,IAAUE,EAC1D,cAAeC,EACf,YAAaA,GAAYzE,EAAMoE,KAC/B,iBAAkBK,GAAYzE,EAAMqE,WACnCV,EAAgBgB,EAAQX,EAAsBE,IAASO,GAAYP,GAAQP,EAAgBgB,EAAQ,QAAS3E,EAAMuE,OAAQI,KAC3H5D,O,oCCrDR,2GAAS4C,EAAgBC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EAOpM,IAAI5D,EAAQ,eAAsB,CACvCqB,MAAO,eAAS,QAAmB,GACnClB,IAAK,eAAS,OAAkB,OAChCC,cAAe,eAAS,OAAkB,QACzC,QAGQyE,EAA2B,aAAIvE,OAAO,CAC/CC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZG,EAAWJ,EAAKI,SAChBX,EAAgBJ,EAAMI,cACtB8D,EAA0B,QAAlB9D,EAA0B,QAA4B,WAAlBA,EAA6B,MAE7EA,EACA,OAAOM,EAAEV,EAAMG,IAAK,eAAUS,EAAM,CAClCU,YAAa,cACbsD,MAAOjB,EAAgB,CACrB,oBAAqB3D,EAAMqB,OAC1B,cAAc4C,OAAOC,GAAQA,KAC9BnD,O,oCC/BR,kGAKWf,EAAQ,eAAsB,CACvCG,IAAK,eAAS,OAAkB,QAC/B,QAGQ2E,EAA0B,aAAIxE,OAAO,CAC9CC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZG,EAAWJ,EAAKI,SACpB,OAAOL,EAAEV,EAAMG,IAAK,eAAUS,EAAM,CAClCU,YAAa,eACXP,O,0WCHJgE,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,GAEhDC,SAAU,eAAS,CAAC,OAAa,QAAmB,gBAGpDC,gBAAiB,eAAS,OAAyB,GACnDC,kBAAmB,eAAS,OAAwB,QACpDC,OAAQ,eAAS,OAAyB,GAC1CC,UAAW,eAAS,OAAkB,OAEtCC,OAAQ,eAAS,CAAC,OAAa,UAItBC,EAAwB,aAAI/F,OAAO,CAC5CC,KAAM,QACNP,MAAO,EACPY,KAAM,WACJ,MAAO,CAEL0F,QAAQ,EAERC,WAAW,EACXC,WAAY/K,KAAKgL,cAAchL,KAAK0K,aAGxCO,SAAU,CAERC,aAAc,WAEZ,MAAO,WAETC,aAAc,WACZ,IAAIC,EAAQpL,KAER0K,EAAY1K,KAAK0K,UACrB,MAAO,CACLA,UAAW1K,KAAKgL,cAAcN,GAC9BW,UAAW,CACTZ,OAAQ,CACNA,OAAQzK,KAAKsL,UAAUZ,IAEzBa,KAAM,CACJC,SAAUxL,KAAKwK,mBAIjBiB,MAAO,CACLC,QAAS,UAEXC,gBAAiB,CACfC,QAAS5L,KAAKuK,gBACdsB,kBAAmB7L,KAAKsK,WAG5BwB,SAAU,SAAkB3G,GAEtBA,EAAK4G,oBAAsB5G,EAAKuF,WAElCU,EAAMY,sBAAsB7G,IAGhC8G,SAAU,SAAkB9G,GAE1BiG,EAAMY,sBAAsB7G,OAKpC+G,QAAS,WACP,IAAIC,EAASnM,KAIbA,KAAKoM,SAAW,KAEhBpM,KAAK8K,WAAY,EAEjB9K,KAAKqM,IAAI,QAAiB,SAAUC,GAClCH,EAAOI,aAAaD,MAGtB,IAAIE,EAAgB,WAClBL,EAAOM,WAAU,WAEf,gBAAU,WACRN,EAAOO,kBAMb1M,KAAK2M,QAAQC,MAAM,OAA2BJ,GAE9CxM,KAAK4M,MAAM,OAAmBJ,IAEhCK,YAAa,WAGX7M,KAAK+K,WAAa/K,KAAKgL,cAAchL,KAAK0K,YAE5CoC,QAAS,WAGP9M,KAAK+M,gBAEPC,cAAe,WACbhN,KAAKiN,iBAEPC,UAAW,WAET,IAAIZ,EAAKtM,KAAKmN,IACdb,GAAMA,EAAGc,YAAcd,EAAGc,WAAWC,YAAYf,IAEnDgB,QAAS,CAEPC,KAAM,WACJvN,KAAK8K,WAAY,GAGnBE,cAAe,SAAuBN,GACpC,OAAOpB,EAAcvJ,OAAO2K,GAAW1L,gBAAkB,QAE3DsM,UAAW,SAAmBZ,GAC5B,IAAK1K,KAAKyK,OAAQ,CAEhB,IAAIgB,EAAQzL,KAAKwN,MAAM/B,OAAS,eAAO,SAAUzL,KAAKmN,KAClDM,EAAc,eAAQ,eAAMhC,GAAOiC,MAAO,GAAK,eAAQ1N,KAAKqK,aAAc,GAE9E,OAAQD,EAAUrK,OAAO2K,GAAW1L,gBAAkB,GAEpD,KAAK,EAEH,MAAO,WAAWwJ,OAAOiF,EAAa,MAIxC,KAAM,EAEJ,MAAO,WAAWjF,OAAOiF,EAAa,MAExC,QACE,OAAO,GAMb,OAAOzN,KAAKyK,QAEd8B,aAAc,SAAsBD,GAClCtM,KAAKiN,gBAGLjN,KAAKoM,SAAW,IAAI,OAAOpM,KAAK2K,OAAQ2B,EAAItM,KAAKmL,eAEnD8B,cAAe,WACbjN,KAAKoM,UAAYpM,KAAKoM,SAASuB,UAC/B3N,KAAKoM,SAAW,MAElBW,aAAc,WACZ/M,KAAKoM,UAAYpM,KAAKoM,SAASwB,kBAEjC5B,sBAAuB,SAA+B7G,GAEpDnF,KAAK+K,WAAa/K,KAAKgL,cAAc7F,EAAKuF,YAI5CmD,eAAgB,SAAwB5I,GAEtC,OAAOA,EAAE,SAGbD,OAAQ,SAAgBC,GACtB,IAAI6I,EAAS9N,KAET6K,EAAS7K,KAAK6K,OAElB,OAAO5F,EAAE,OAAc,CAErBV,MAAO,CACLwJ,QAAQ,EACRlD,OAAQA,GAEVmD,GAAI,CAEFC,YAAa,SAAqB3B,GAChC,OAAOwB,EAAOI,MAAM,OAAiB5B,IAEvC6B,WAAY,SAAoB7B,GAC9B,OAAOwB,EAAOI,MAAM,OAAkB5B,IAExC8B,YAAa,SAAqB9B,GAChC,OAAOwB,EAAOI,MAAM,OAAiB5B,IAEvC+B,WAAY,SAAoB/B,GAC9B,OAAOwB,EAAOI,MAAM,OAAmB5B,MAG1C,CAACtM,KAAK8K,UAAY9K,KAAK6N,eAAe5I,GAAKA,SC3PlD,SAASqJ,EAAQC,EAAQC,GAAkB,IAAIvG,EAAOG,OAAOH,KAAKsG,GAAS,GAAInG,OAAOqG,sBAAuB,CAAE,IAAIC,EAAUtG,OAAOqG,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxG,OAAOyG,yBAAyBN,EAAQK,GAAKvG,eAAgBJ,EAAK/I,KAAKyD,MAAMsF,EAAMyG,GAAY,OAAOzG,EAE9U,SAAS6G,EAAcnE,GAAU,IAAK,IAAIhH,EAAI,EAAGA,EAAIoL,UAAUzP,OAAQqE,IAAK,CAAE,IAAIlB,EAAyB,MAAhBsM,UAAUpL,GAAaoL,UAAUpL,GAAK,GAAQA,EAAI,EAAK2K,EAAQlG,OAAO3F,IAAS,GAAM7D,SAAQ,SAAUoJ,GAAOE,EAAgByC,EAAQ3C,EAAKvF,EAAOuF,OAAsBI,OAAO4G,0BAA6B5G,OAAO6G,iBAAiBtE,EAAQvC,OAAO4G,0BAA0BvM,IAAmB6L,EAAQlG,OAAO3F,IAAS7D,SAAQ,SAAUoJ,GAAOI,OAAOjE,eAAewG,EAAQ3C,EAAKI,OAAOyG,yBAAyBpM,EAAQuF,OAAe,OAAO2C,EAE7gB,SAASzC,EAAgBC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EAWpM,IAAI,EAAQ,CAEjB+G,KAAM,eAAS,QAAmB,GAElCC,GAAI,eAAS,SAIJC,EAAiC,aAAIvK,OAAO,CACrDC,KAAM,QACNuK,QAASzE,EACT0E,OAAQ,CAAC,QACT/K,MAAO,EACPY,KAAM,WAGJ,MAAO,CACL/G,MAAO,GACPmR,QAAS,GACTC,QAAS,KACTC,YAAa,KACbC,aAAa,IAGjBzE,SAAU,CACRC,aAAc,WACZ,MAAO,WAETyE,gBAAiB,WACf,IAAIzK,EAEAsK,EAAUxP,KAAKwP,QACfzE,EAAa/K,KAAK+K,WAClBG,EAAelL,KAAKkL,aACxB,MAAO,EAAEhG,EAAO,CAGd0K,gBAAiB5P,KAAK0P,aACrBxH,EAAgBhD,EAAM,KAAKsD,OAAO0C,EAAc,KAAK1C,OAAOgH,GAAUA,GAAUtH,EAAgBhD,EAAM,MAAMsD,OAAO0C,EAAc,KAAK1C,OAAOuC,GAAaA,GAAa7F,GAAOlF,KAAKyP,cAExLI,mBAAoB,WAClB,IAAIV,EAAKnP,KAAKmP,GACd,OAAOL,EAAcA,EAAc,GAAI9O,KAAK2M,QAAQA,QAAQmD,QAAS,GAAI,CACvEX,GAAIA,EACJY,KAAM,UACNC,SAAU,MACThQ,KAAKiQ,mBAEVC,kBAAmB,WACjB,IAAI9E,EAAQpL,KAGZ,MAAO,CACLmQ,WAEA,SAAoBC,GAClBhF,EAAM8C,MAAM,OAAuBkC,IAErCC,WAEA,SAAoBD,GAClBhF,EAAM8C,MAAM,OAAuBkC,IAErCE,QAEA,SAAiBF,GACfhF,EAAM8C,MAAM,OAAoBkC,IAElCG,SAEA,SAAkBH,GAChBhF,EAAM8C,MAAM,OAAqBkC,OAKzC9C,QAAS,CACPO,eAAgB,SAAwB5I,GACtC,IAAI7G,EAAQ4B,KAAK5B,MAEboS,EAAS,eAAWpS,GAASA,EAAM,IAAMA,EAEzCqS,EAAWzQ,KAAKkP,OAAS,eAAW9Q,GAAS,CAC/CsS,UAAWtS,GACT,GACJ,OAAO6G,EAAE,MAAO,CACdY,YAAa,oBACbsD,MAAOnJ,KAAK2P,gBACZgB,MAAO3Q,KAAK6P,mBACZ7B,GAAIhO,KAAKkQ,mBACR,CAACjL,EAAE,MAAO,CACXY,YAAa,QACb+K,IAAK,UACH3L,EAAE,MAAO,CACXY,YAAa,gBACb4K,SAAUA,GACT,CAACD,UC/GV,SAAS,EAAQjC,EAAQC,GAAkB,IAAIvG,EAAOG,OAAOH,KAAKsG,GAAS,GAAInG,OAAOqG,sBAAuB,CAAE,IAAIC,EAAUtG,OAAOqG,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxG,OAAOyG,yBAAyBN,EAAQK,GAAKvG,eAAgBJ,EAAK/I,KAAKyD,MAAMsF,EAAMyG,GAAY,OAAOzG,EAE9U,SAAS,EAAc0C,GAAU,IAAK,IAAIhH,EAAI,EAAGA,EAAIoL,UAAUzP,OAAQqE,IAAK,CAAE,IAAIlB,EAAyB,MAAhBsM,UAAUpL,GAAaoL,UAAUpL,GAAK,GAAQA,EAAI,EAAK,EAAQyE,OAAO3F,IAAS,GAAM7D,SAAQ,SAAUoJ,GAAO,EAAgB2C,EAAQ3C,EAAKvF,EAAOuF,OAAsBI,OAAO4G,0BAA6B5G,OAAO6G,iBAAiBtE,EAAQvC,OAAO4G,0BAA0BvM,IAAmB,EAAQ2F,OAAO3F,IAAS7D,SAAQ,SAAUoJ,GAAOI,OAAOjE,eAAewG,EAAQ3C,EAAKI,OAAOyG,yBAAyBpM,EAAQuF,OAAe,OAAO2C,EAE7gB,SAAS,EAAgBxC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EA0B3M,IAAI0I,EAAiB,iBAEjBC,EAA+B,eAAiB,OAAY,QAE5DC,EAAmB,aAEnBC,EAAqB,CAACH,EAAgBE,GAAkB5R,KAAK,MAE7D8R,EAAiB,WACjBC,EAAyB,sBAEzBC,EAAkB,sBAGlBC,EAAe,CAEjBhT,MAAO,GAEPmR,QAAS,GAETC,QAAS,KAETC,YAAa,KAEb4B,SAAU,GAEV3G,UAAW,OAEXF,kBAAmB,OAInBG,OAAQ,KAER2G,UAAW,KAGXzG,QAAQ,EAERP,SAAU,eAGVC,gBAAiB,EAEjBE,OAAQ,EAER8G,MAAO,EAGPlH,aAAc,EAEdqF,aAAa,EAEb8B,UAAU,EAEVrC,GAAI,KAEJD,MAAM,GAIGuC,EAAyB,aAAI5M,OAAO,CAC7CC,KAAM,QACNwK,OAAQ,CAAC,QACTnK,KAAM,WACJ,OAAO,EAAc,EAAc,GAAIiM,GAAe,GAAI,CAExDM,cAAe,CAEbC,OAAO,EACPC,OAAO,EACPC,OAAO,GAET/G,WAAW,KAGfG,SAAU,CACRC,aAAc,WAEZ,MAAO,WAET4G,WAAY,WACV,OAAO9R,KAAKmP,IAAM,QAAQ3G,OAAOxI,KAAKkL,aAAc,KAAK1C,OAAOxI,KAAK,QAAoB,OAE3F+R,cAAe,WAEb,IAAIR,EAAQ,CACVS,KAAM,EACNzE,KAAM,GAUR,OAPI,eAAcvN,KAAKuR,QACrBA,EAAMS,KAAO,OAAAC,EAAA,MAAQ,eAAUjS,KAAKuR,MAAMS,KAAM,GAAI,GACpDT,EAAMhE,KAAO,OAAA0E,EAAA,MAAQ,eAAUjS,KAAKuR,MAAMhE,KAAM,GAAI,KAC3C,eAASvN,KAAKuR,QAAU,eAASvR,KAAKuR,UAC/CA,EAAMS,KAAOT,EAAMhE,KAAO,OAAA0E,EAAA,MAAQ,eAAUjS,KAAKuR,MAAO,GAAI,IAGvDA,GAETW,iBAAkB,WAGhB,OAAO,eAAOlS,KAAKqR,UAAU1C,OAAOwD,EAAA,MAAUhT,KAAK,KAAKiT,OAAOC,cAAc3T,MAAM,OAAO4T,QAE5FC,oBAAqB,WACnB,IAAK,IAAIC,KAAWxS,KAAK0R,cACvB,GAAI1R,KAAK0R,cAAcc,GACrB,OAAO,EAIX,OAAO,GAETC,qBAAsB,WACpB,IAAIrU,EAAQ4B,KAAK5B,MACbmR,EAAUvP,KAAKuP,QACfC,EAAUxP,KAAKwP,QACfC,EAAczP,KAAKyP,YACnB5E,EAAS7K,KAAK6K,OACd6E,EAAc1P,KAAK0P,YACvB,MAAO,CACLtR,MAAOA,EACPmR,QAASA,EACTC,QAASA,EACTC,YAAaA,EACb5E,OAAQA,EACR6E,YAAaA,KAInBgD,MAAO,CACLR,iBAAkB,SAA0BS,EAAaC,GACvD,IAAIxH,EAAQpL,KAKP,eAAW2S,EAAaC,IAC3B5S,KAAKyM,WAAU,WAEbrB,EAAMyH,WAGND,EAAYhU,SAAQ,SAAU4T,GACvB,OAAAM,EAAA,MAAcH,EAAaH,IAC1BpH,EAAMsG,cAAcc,KACtBpH,EAAMsG,cAAcc,IAAW,MAKrCpH,EAAM2H,aAIZN,qBAAsB,WAGpBzS,KAAKgT,wBAEP5U,MAAO,SAAe6U,EAAUC,GAE1BD,IAAaC,GAAaD,GAC5BjT,KAAKuN,QAGTiE,SAAU,SAAkByB,GACtBA,EACFjT,KAAKmT,UAELnT,KAAKoT,WAIXlH,QAAS,WACP,IAAIC,EAASnM,KAGbA,KAAKqT,MAAQ,KACbrT,KAAKsT,eAAiB,KACtBtT,KAAKuT,aAAe,GACpBvT,KAAKwT,kBAAoB,KACzBxT,KAAKyT,WAAazT,KAAKwR,SACvBxR,KAAK0T,OAASC,EAAA,KAAKC,KAAK5T,MAEpBA,KAAK2M,SACP3M,KAAK2M,QAAQC,MAAM,QAAgC,WACjDT,EAAOM,WAAU,WAEf,gBAAU,WACRN,EAAOO,oBAMf1M,KAAKyM,WAAU,WACb,IAAI9B,EAASwB,EAAO0H,YAEhBlJ,GAAU,eAASmJ,SAASC,KAAMpJ,IAEpCwB,EAAO6H,QAAU,eAAW7H,EAAOQ,SAEnCR,EAAO4G,UAGP,OAAAkB,EAAA,MAAK,eAAS9H,EAAOxB,QAAU,yCAA0CnC,OAAO2D,EAAOxB,OAAQ,kBAAqB,gDAAiDwB,EAAOjB,kBAMlL4B,QAAS,WAEP9M,KAAKyM,UAAUzM,KAAKgT,uBAItBkB,YAAa,WAGXlU,KAAKmU,aAEPnH,cAAe,WAEbhN,KAAK6S,WACL7S,KAAKoU,uBAAsB,GAE3BpU,KAAKqU,oBACLrU,KAAKsU,0BAELtU,KAAKuU,kBAELvU,KAAK0T,OAAS,MAEhBpG,QAAS,CAEPkH,YAAa,WAEX,OAAOpF,GAETqF,WAAY,WACV,IAAI3G,EAAS9N,KAETmF,EAAO4J,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,GAAmBA,UAAU,GAAK,GAG3E2F,GAAe,EACnB,eAAKtD,GAAcxS,SAAQ,SAAU+V,GAC9B,eAAYxP,EAAKwP,KAAU7G,EAAO6G,KAAUxP,EAAKwP,KACpD7G,EAAO6G,GAAQxP,EAAKwP,GAEP,UAATA,IACFD,GAAe,OAOjBA,GAAgB1U,KAAK8K,WACvB9K,KAAK4U,YAGTC,sBAAuB,WAErB,IAAIvD,EAAYtR,KAAK8U,eACjBC,EAAW/U,KAAKwU,cAChBQ,EAAOhV,KAAKqT,MAAQ,IAAI0B,EAAS,CACnCE,OAAQjV,KAERkV,UAAW,CAET/F,GAAInP,KAAK8R,WACT5C,KAAMlP,KAAKkP,KACXxE,UAAW1K,KAAK0K,UAChBF,kBAAmBxK,KAAKwK,kBACxBG,OAAQ3K,KAAKmV,qBACb7K,SAAUtK,KAAKoV,cAEf3K,OAAQ,eAAUzK,KAAKyK,OAAQ,GAC/BJ,aAAc,eAAUrK,KAAKqK,aAAc,GAC3CE,gBAAiB,eAAUvK,KAAKuK,gBAAiB,MAIrDvK,KAAKgT,uBAGLgC,EAAKpI,MAAM,OAAiB5M,KAAKqV,gBAEjCL,EAAKpI,MAAM,OAAkB5M,KAAKsV,iBAElCN,EAAKpI,MAAM,OAAiB5M,KAAKuV,gBAEjCP,EAAKpI,MAAM,OAAmB5M,KAAKwV,kBAEnCR,EAAKpI,MAAM,OAA2B5M,KAAKuU,iBAI3CS,EAAK3I,IAAI,OAAoBrM,KAAKyV,aAClCT,EAAK3I,IAAI,OAAqBrM,KAAKyV,aACnCT,EAAK3I,IAAI,OAAuBrM,KAAKyV,aACrCT,EAAK3I,IAAI,OAAuBrM,KAAKyV,aAErCT,EAAKU,OAAOpE,EAAUqE,YAAY7B,SAAS8B,cAAc,UAE3DC,aAAc,WAKZ7V,KAAKqT,OAASrT,KAAKqT,MAAM9F,OAEzBvN,KAAK8V,sBAEL9V,KAAKuT,aAAe,IAGtBgB,gBAAiB,WACfvU,KAAKoU,uBAAsB,GAC3BpU,KAAKqU,oBACLrU,KAAKuT,aAAe,GACpBvT,KAAK8V,sBACL9V,KAAK+V,qBAAuB,KAE5B,IACE/V,KAAKqT,MAAM3G,WACX,MAAOsJ,IAEThW,KAAKqT,MAAQ,KACbrT,KAAKiW,wBACLjW,KAAKkW,eACLlW,KAAK8K,WAAY,GAEnBqL,mBAAoB,WAClB,OAAOnW,KAAKqT,MAAQrT,KAAKqT,MAAMlG,IAAM,MAEvC6F,qBAAsB,WACpB,IAAIoD,EAASpW,KAITgV,EAAOhV,KAAKqT,MAEhB,GAAI2B,EAAM,CACR,IAAIzQ,EAAQ,CAAC,QAAS,UAAW,UAAW,cAAe,SAAU,eAErEA,EAAM3F,SAAQ,SAAU+V,GAClBK,EAAKL,KAAUyB,EAAOzB,KACxBK,EAAKL,GAAQyB,EAAOzB,SAO5B3C,KAAM,WACJ,IAAIrH,EAAS3K,KAAK6T,YAElB,GAAKlJ,GAAW,eAASmJ,SAASC,KAAMpJ,IAAY,eAAUA,KAAW3K,KAAKqW,kBAAmB,eAAkBrW,KAAK5B,QAAyB,KAAf4B,KAAK5B,QAAkB,eAAkB4B,KAAKuP,UAA6B,KAAjBvP,KAAKuP,WAQ7LvP,KAAKqT,QAASrT,KAAK8K,UAAvB,CAMA9K,KAAK8K,WAAY,EAEjB,IAAIwL,EAAUtW,KAAKuW,WAAW,OAAiB,CAC7CC,YAAY,IAEdxW,KAAKyW,UAAUH,GAIXA,EAAQI,iBAEV1W,KAAKuU,mBAKPvU,KAAK4U,WAEL5U,KAAK2W,qBAEL3W,KAAK6U,2BAEPtH,KAAM,WACJ,IAAIqJ,EAAQ7H,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,IAAmBA,UAAU,GAEvE8H,EAAM7W,KAAKmW,qBAGf,GAAKU,GAAQ7W,KAAK8K,UAAlB,CAOA,IAAIgM,EAAU9W,KAAKuW,WAAW,OAAiB,CAC7CC,YAAaI,IAEf5W,KAAKyW,UAAUK,GAGXA,EAAQJ,kBAMZ1W,KAAK6V,oBAlBH7V,KAAKkW,gBAoBT/B,UAAW,WAET,IAAI0C,EAAM7W,KAAKmW,qBAEVU,GAAQ7W,KAAK8K,YAOlB9K,KAAKoU,uBAAsB,GAE3BpU,KAAKqU,oBACLrU,KAAKuT,aAAe,GACpBvT,KAAK8V,sBAED9V,KAAKqT,QACPrT,KAAKqT,MAAMxI,QAAS,GAItB7K,KAAKuN,MAAK,KAEZ6F,OAAQ,WACNpT,KAAKyT,WAAY,EAEjBzT,KAAKyW,UAAUzW,KAAKuW,WAAW,UAEjCpD,QAAS,WACPnT,KAAKyT,WAAY,EAEjBzT,KAAKyW,UAAUzW,KAAKuW,WAAW,UAIjClB,eAAgB,WAEdrV,KAAKoU,uBAAsB,IAG7BkB,gBAAiB,WACf,IAAIyB,EAAiB/W,KAAKuT,aAC1BvT,KAAKuT,aAAe,GAGG,QAAnBwD,GACF/W,KAAKgX,MAAM,MAIbhX,KAAKyW,UAAUzW,KAAKuW,WAAW,UAGjChB,eAAgB,WAEdvV,KAAKoU,uBAAsB,IAG7BoB,iBAAkB,WAEhBxV,KAAKuU,kBAELvU,KAAKyW,UAAUzW,KAAKuW,WAAW,UAGjC1C,UAAW,WACT,IAAIlJ,EAAS3K,KAAK2K,OAUlB,OARI,eAASA,GACXA,EAAS,eAAQA,EAAO7C,QAAQ,KAAM,KAC7B,eAAW6C,GACpBA,EAASA,IACAA,IACTA,EAASA,EAAOwC,KAAOxC,GAGlB,eAAUA,GAAUA,EAAS,MAEtCwK,mBAAoB,WAQlB,OAAOnV,KAAK6T,aAEdoD,YAAa,WAEX,IAAItM,EAAS3K,KAAK6T,YAClB,OAAOlJ,GAAUA,EAAOwE,GAAKxE,EAAOwE,GAAK,MAE3C2F,aAAc,WAEZ,IAAIxD,IAAYtR,KAAKsR,YAAYtR,KAAKsR,UAAUnE,KAAOnN,KAAKsR,WACxDyC,EAAOD,SAASC,KAChBpJ,EAAS3K,KAAK6T,YAQlB,OAAqB,IAAdvC,EAAsB,eAAQN,EAAoBrG,IAAWoJ,EAEpE,eAASzC,IAET,eAAQA,EAAUxJ,QAAQ,KAAM,MAEhCiM,GAEFqB,YAAa,WACX,OAAOpV,KAAKsK,SAAWtK,KAAKsK,SAAS6C,KAAOnN,KAAKsK,SAAW,gBAE9D4M,UAAW,WACT,IAAIvM,EAAS3K,KAAK6T,YAClB,OAAOlJ,GAAU,eAAQkG,EAAgBlG,IAE3CwM,WAAY,WAEV,IAAIxM,EAAS3K,KAAK6T,YAClB,OAAOlJ,GAAU,eAASA,EAAQsG,IAEpCoF,aAAc,WAEZ,IAAI1L,EAAS3K,KAAK6T,YAClB,OAAO7T,KAAKmX,cAAgBxM,GAAU,eAAOuG,EAAwBvG,IAEvE0J,kBAAmB,WACjB+C,aAAapX,KAAKsT,gBAClBtT,KAAKsT,eAAiB,MAExBgB,wBAAyB,WACvB+C,cAAcrX,KAAKwT,mBACnBxT,KAAKwT,kBAAoB,MAE3BsC,oBAAqB,WACnB,IAAK,IAAItD,KAAWxS,KAAK0R,cACvB1R,KAAK0R,cAAcc,IAAW,GAGlCmE,mBAAoB,WAElB,IAAIhM,EAAS3K,KAAK6T,YACdyD,EAAO,eAAQ3M,EAAQ,qBAAuB,GAClD2M,EAAOA,EAAK5Y,MAAM,OAAO8J,OAAOxI,KAAK8R,YAAY3S,KAAK,KAAKiT,OAE3D,eAAQzH,EAAQ,mBAAoB2M,IAEtCrB,sBAAuB,WACrB,IAAIsB,EAASvX,KAGT2K,EAAS3K,KAAK6T,YACdyD,EAAO,eAAQ3M,EAAQ,qBAAuB,GAClD2M,EAAOA,EAAK5Y,MAAM,OAAOiQ,QAAO,SAAU6I,GACxC,OAAOA,IAAMD,EAAOzF,cACnB3S,KAAK,KAAKiT,OAETkF,EAEF,eAAQ3M,EAAQ,mBAAoB2M,GAEpC,eAAW3M,EAAQ,qBAGvBiK,SAAU,WAGR,IAAIjK,EAAS3K,KAAK6T,YAElB,GAAI,eAAQlJ,EAAQ,SAAU,CAE5B,IAAIvM,EAAQ,eAAQuM,EAAQ,SAC5B,eAAQA,EAAQ,QAAS,IAErBvM,GACF,eAAQuM,EAAQwG,EAAiB/S,KAIvC8X,aAAc,WAGZ,IAAIvL,EAAS3K,KAAK6T,YAElB,GAAI,eAAQlJ,EAAQwG,GAAkB,CAEpC,IAAI/S,EAAQ,eAAQuM,EAAQwG,GAC5B,eAAWxG,EAAQwG,GAEf/S,GACF,eAAQuM,EAAQ,QAASvM,KAK/BmY,WAAY,SAAoBkB,GAC9B,IAAIC,EAAU3I,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,GAAmBA,UAAU,GAAK,GAElF,OAAO,IAAI,OAAQ0I,EAAM,EAAc,CACrCjB,YAAY,EACZ7L,OAAQ3K,KAAK6T,YACb8D,cAAe3X,KAAKmW,sBAAwB,KAC5CyB,YAAa5X,KAAK8R,WAClB+F,UAAW7X,MACV0X,KAELjB,UAAW,SAAmBqB,GAC5B,IAAIL,EAAOK,EAAQL,KACnBzX,KAAK+X,WAAW,eAAiB/X,KAAKkL,aAAcuM,GAAOK,GAC3D9X,KAAKkO,MAAMuJ,EAAMK,IAGnB/E,OAAQ,WACN,IAAIiF,EAAShY,KAGTsM,EAAKtM,KAAK6T,YAETvH,IAMLtM,KAAKiY,iBAAgB,GAErBjY,KAAKkS,iBAAiBtT,SAAQ,SAAU4T,GACtB,UAAZA,EACF,eAAQlG,EAAI,QAAS0L,EAAOvC,YAAa,QACpB,UAAZjD,GACT,eAAQlG,EAAI,UAAW0L,EAAOvC,YAAa,QAC3C,eAAQnJ,EAAI,WAAY0L,EAAOvC,YAAa,SACvB,SAAZjD,EAIT,eAAQlG,EAAI,WAAY0L,EAAOvC,YAAa,QACvB,UAAZjD,IACT,eAAQlG,EAAI,aAAc0L,EAAOvC,YAAa,QAC9C,eAAQnJ,EAAI,aAAc0L,EAAOvC,YAAa,WAE/CzV,QAIL6S,SAAU,WACR,IAAIqF,EAASlY,KAGTmY,EAAS,CAAC,QAAS,UAAW,WAAY,aAAc,cACxDxN,EAAS3K,KAAK6T,YAElB7T,KAAKiY,iBAAgB,GAErBE,EAAOvZ,SAAQ,SAAUwR,GACvBzF,GAAU,eAASA,EAAQyF,EAAO8H,EAAOzC,YAAa,UACrDzV,OAELiY,gBAAiB,SAAyBjK,GAExC,IAAIoK,EAAQpY,KAAKoY,MAEjB,GAAIA,EAAO,CACT,IAAIC,EAASrK,EAAK,MAAQ,OACtByJ,EAAOzX,KAAKkL,aAChBkN,EAAMC,GAAQ,eAAuBZ,EAAM,QAAkBzX,KAAKsY,QAClEF,EAAMC,GAAQ,eAAuBZ,EAAM,QAAkBzX,KAAKuY,QAClEH,EAAMC,GAAQ,eAAuBZ,EAAM,QAAqBzX,KAAKwY,WACrEJ,EAAMC,GAAQ,eAAuBZ,EAAM,QAAoBzX,KAAKyY,YAGxErE,sBAAuB,SAA+BpG,GAGpDhO,KAAK0Y,iBAAiB1K,GAEtBhO,KAAK2Y,oBAAoB3K,GAGzBhO,KAAK4Y,aAAa5K,GAElBhO,KAAK6Y,wBAAwB7K,IAG/B4K,aAAc,SAAsB5K,GAClC,IAAI8K,EAAS9Y,KAEbA,KAAKsU,0BACL,IAAI3J,EAAS3K,KAAK6T,YACdgD,EAAM7W,KAAKmW,qBAEXnI,IACFhO,KAAKwT,kBAAoBuF,aAAY,YAC/BlC,IAAOiC,EAAOhO,WAAeH,EAAOyC,YAAe,eAAUzC,IAE/DmO,EAAO3E,cAER,OAGPuE,iBAAkB,SAA0B1K,GAEtChO,KAAKkX,aAEPlX,KAAKoY,MAAMpK,EAAK,MAAQ,QAAQ8C,EAA8B9Q,KAAKmU,YAKvE0E,wBAAyB,SAAiC7K,GACxD,IAAIgL,EAAShZ,KAMT,iBAAkB8T,SAASmF,iBAC7B,OAAAnG,EAAA,MAAUgB,SAASC,KAAKzO,UAAU1G,SAAQ,SAAU0N,GAClD,eAAW0B,EAAI1B,EAAI,YAAa0M,EAAOtF,YAI7CiF,oBAAqB,SAA6B3K,GAChD,IAAIrD,EAAS3K,KAAK6T,YAEblJ,GAAW3K,KAAKoY,OAAUpY,KAAKmX,YAWhCxM,EAAOuO,SACTvO,EAAOuO,QAAQlL,EAAK,MAAQ,QAAQ,OAAkBhO,KAAKmU,YAI/DsB,YAAa,SAAqBrF,GAGhC,IAAIzF,EAAS3K,KAAK6T,YAElB,GAAKlJ,IAAU,eAAWA,IAAY3K,KAAKyT,YAAazT,KAAKqW,eAA7D,CAOA,IAAIoB,EAAOrH,EAAMqH,KACbpG,EAAWrR,KAAKkS,iBAEpB,GAAa,UAATuF,GAAoB,OAAA3E,EAAA,MAAczB,EAAU,SAC9CrR,KAAK4R,MAAMxB,QACN,GAAa,eAATqH,GAAyB,OAAA3E,EAAA,MAAczB,EAAU,SAE1DrR,KAAKmZ,MAAM/I,QACN,GAAa,YAATqH,GAAsB,OAAA3E,EAAA,MAAczB,EAAU,SAGvDrR,KAAKmZ,MAAM/I,QACN,GAAa,aAATqH,IAAwB,OAAA3E,EAAA,MAAczB,EAAU,UAAY,OAAAyB,EAAA,MAAczB,EAAU,UAAqB,eAAToG,GAAyB,OAAA3E,EAAA,MAAczB,EAAU,SAAU,CAIpK,IAAIwF,EAAM7W,KAAKmW,qBAEXiD,EAAchJ,EAAMzF,OAEpBgN,EAAgBvH,EAAMuH,cAG1B,GACAd,GAAO,eAASA,EAAKuC,IAAgB,eAASzO,EAAQgN,IACtDd,GAAO,eAASlM,EAAQyO,IAAgB,eAASvC,EAAKc,IACtDd,GAAO,eAASA,EAAKuC,IAAgB,eAASvC,EAAKc,IACnD,eAAShN,EAAQyO,IAAgB,eAASzO,EAAQgN,GAEhD,OAIF3X,KAAKgX,MAAM5G,MAGfkI,OAAQ,SAAgBnJ,GAEjBA,GAAMnP,KAAKiX,gBAAkB9H,GAAMnP,KAAK8R,aAAe3C,GAE1DnP,KAAKmU,aAGToE,OAAQ,SAAgBpJ,GAEjBA,GAAMnP,KAAKiX,gBAAkB9H,GAAMnP,KAAK8R,aAAe3C,GAE1DnP,KAAKgS,QAKTwG,UAAW,SAAmBrJ,GAIvBA,GAAMnP,KAAKiX,gBAAkB9H,GAAMnP,KAAK8R,aAAe3C,GAE1DnP,KAAKmT,WAKTsF,SAAU,SAAkBtJ,GAIrBA,GAAMnP,KAAKiX,gBAAkB9H,GAAMnP,KAAK8R,aAAe3C,GAE1DnP,KAAKoT,UAGTxB,MAAO,SAAexB,GACfpQ,KAAKyT,YAAazT,KAAKqW,iBAW5B,eAAajG,EAAMiJ,eACnBrZ,KAAK0R,cAAcE,OAAS5R,KAAK0R,cAAcE,MAE3C5R,KAAKuS,oBACPvS,KAAKmZ,MAAM,MAGXnZ,KAAKgX,MAAM,QAKfsC,OAAQ,WAEDtZ,KAAKyT,YAAazT,KAAKqW,iBAOxBrW,KAAK8K,UACP9K,KAAKgX,MAAM,MAEXhX,KAAKmZ,MAAM,QAGfA,MAAO,WACL,IAAII,EAAUvZ,KAEVoQ,EAAQrB,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,GAAmBA,UAAU,GAAK,KAI5EqB,IACFpQ,KAAK0R,cAA6B,YAAftB,EAAMqH,KAAqB,QAAU,UAAW,GAKjEzX,KAAK8K,WAAmC,OAAtB9K,KAAKuT,aACzBvT,KAAKuT,aAAe,MAItBvT,KAAKqU,oBACLrU,KAAKuT,aAAe,KAEfvT,KAAK+R,cAAcC,MAItBhS,KAAK4U,WACL5U,KAAKsT,eAAiBkG,YAAW,WAEF,OAAzBD,EAAQhG,aACVgG,EAAQvH,OACEuH,EAAQzO,WAClByO,EAAQrD,iBAETlW,KAAK+R,cAAcC,OAXtBhS,KAAKgS,SAcTgF,MAAO,WACL,IAAIyC,EAAUzZ,KAEVoQ,EAAQrB,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,GAAmBA,UAAU,GAAK,KAI5EqB,IACFpQ,KAAK0R,cAA6B,aAAftB,EAAMqH,KAAsB,QAAU,UAAW,EAGjD,aAAfrH,EAAMqH,MAAuB,OAAA3E,EAAA,MAAc9S,KAAKkS,iBAAkB,UAEpElS,KAAK0R,cAAcE,OAAQ,EAC3B5R,KAAK0R,cAAcC,OAAQ,IAM3B3R,KAAKuS,sBAITvS,KAAKqU,oBACLrU,KAAKuT,aAAe,MAEfvT,KAAK+R,cAAcxE,KAGtBvN,KAAKsT,eAAiBkG,YAAW,WACF,QAAzBC,EAAQlG,cACVkG,EAAQlM,SAETvN,KAAK+R,cAAcxE,MANtBvN,KAAKuN,a,wKC59BFmM,EAAsB,YACtBC,EAAoB,UACpBC,EAAyB,eACzBC,EAAuB,aACvBC,EAAwB,cAExBC,EAAuB,a,4GCDvBC,EAAgB,aAAInV,OAAO,CACpCM,KAAM,WACJ,MAAO,CACL8U,mBAAmB,IAGvBvH,MAAO,CACLuH,kBAAmB,SAA2BhH,EAAUC,GAClDD,IAAaC,IACf,eAASlT,KAAKka,gBAAiBla,KAAKma,kBAAmBna,KAAKoa,iBAAkB,QAE1EnH,GACF,eAAQjT,KAAKka,gBAAiBla,KAAKma,kBAAmBna,KAAKoa,iBAAkB,WAKrFC,aAAc,WAEZra,KAAKka,gBAAkB,KACvBla,KAAKma,kBAAoB,MAE3BG,QAAS,WACFta,KAAKka,kBACRla,KAAKka,gBAAkBpG,UAGpB9T,KAAKma,oBACRna,KAAKma,kBAAoB,SAGvBna,KAAKia,mBACP,eAAQja,KAAKka,gBAAiBla,KAAKma,kBAAmBna,KAAKoa,iBAAkB,SAGjFpN,cAAe,WACb,eAAShN,KAAKka,gBAAiBla,KAAKma,kBAAmBna,KAAKoa,iBAAkB,SAEhF9M,QAAS,CACPiN,WAAY,SAAoBnK,GAC9B,OAAQ,eAASpQ,KAAKmN,IAAKiD,EAAMzF,SAEnCyP,iBAAkB,SAA0BhK,GACtCpQ,KAAKwa,iBAAmBxa,KAAKua,WAAWnK,IAC1CpQ,KAAKwa,gBAAgBpK,OC7ClBqK,EAAe,aAAI5V,OAAO,CACnCM,KAAM,WACJ,MAAO,CACLuV,kBAAkB,IAGtBhI,MAAO,CACLgI,iBAAkB,SAA0BzH,EAAUC,GAChDD,IAAaC,IACf,eAASlT,KAAK2a,eAAgB,UAAW3a,KAAK4a,gBAAiB,QAE3D3H,GACF,eAAQjT,KAAK2a,eAAgB,UAAW3a,KAAK4a,gBAAiB,WAKtEP,aAAc,WAEZra,KAAK2a,eAAiB,MAExBL,QAAS,WACFta,KAAK2a,iBACR3a,KAAK2a,eAAiB7G,UAGpB9T,KAAK0a,kBACP,eAAQ1a,KAAK2a,eAAgB,UAAW3a,KAAK4a,gBAAiB,SAGlE5N,cAAe,WACb,eAAShN,KAAK2a,eAAgB,UAAW3a,KAAK4a,gBAAiB,SAEjEtN,QAAS,CACPsN,gBAAiB,SAAyBxK,GACpCpQ,KAAK6a,gBACP7a,KAAK6a,eAAezK,O,wBCxC5B,SAAS9B,EAAQC,EAAQC,GAAkB,IAAIvG,EAAOG,OAAOH,KAAKsG,GAAS,GAAInG,OAAOqG,sBAAuB,CAAE,IAAIC,EAAUtG,OAAOqG,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxG,OAAOyG,yBAAyBN,EAAQK,GAAKvG,eAAgBJ,EAAK/I,KAAKyD,MAAMsF,EAAMyG,GAAY,OAAOzG,EAE9U,SAAS6G,EAAcnE,GAAU,IAAK,IAAIhH,EAAI,EAAGA,EAAIoL,UAAUzP,OAAQqE,IAAK,CAAE,IAAIlB,EAAyB,MAAhBsM,UAAUpL,GAAaoL,UAAUpL,GAAK,GAAQA,EAAI,EAAK2K,EAAQlG,OAAO3F,IAAS,GAAM7D,SAAQ,SAAUoJ,GAAOE,EAAgByC,EAAQ3C,EAAKvF,EAAOuF,OAAsBI,OAAO4G,0BAA6B5G,OAAO6G,iBAAiBtE,EAAQvC,OAAO4G,0BAA0BvM,IAAmB6L,EAAQlG,OAAO3F,IAAS7D,SAAQ,SAAUoJ,GAAOI,OAAOjE,eAAewG,EAAQ3C,EAAKI,OAAOyG,yBAAyBpM,EAAQuF,OAAe,OAAO2C,EAE7gB,SAASzC,EAAgBC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EAsB3M,IAAI2S,EAAwB,eAAiB,OAAe,QACxDC,EAAyB,eAAiB,OAAe,QAEzDC,EAAsB,iBACtBC,EAAgB,CAAC,iBAAkB,oBAAoBzb,KAAI,SAAU0b,GACvE,MAAO,GAAG1S,OAAO0S,EAAU,sCAC1B/b,KAAK,MAGJ,EAAiB,SAAwBgc,GAC3C,OAAQA,GAAO,IAAIxM,OAAO,SAIjB,EAAQ,eAAsB,eAASG,EAAcA,EAAc,GAAIK,EAAA,MAAU,GAAI,CAG9F7E,SAAU,eAAS,CAAC,OAAa,QAAmB,gBACpDkH,SAAU,eAAS,QAAmB,GAEtC4J,SAAU,eAAS,QAAmB,GAEtCC,UAAW,eAAS,QAAmB,GAEvCC,OAAQ,eAAS,QAAmB,GAEpCC,OAAQ,eAAS,QAAmB,GAGpC9Q,OAAQ,eAAS,OAAyB,GAC1C+Q,WAAY,eAAS,OAAkB,IAEvC5V,MAAO,eAAS,QAAmB,MAChC,QAGM6V,EAAgB,aAAI5W,OAAO,CACpCyK,OAAQ,CAACH,EAAA,KAAS,OAAmB6K,EAAeS,GACpDiB,QAAS,WACP,MAAO,CACLC,WAAY3b,OAGhB4b,OAAQ,CACNC,SAAU,CACRC,QAAS,OAGbvX,MAAO,EACPY,KAAM,WACJ,MAAO,CACL4W,SAAS,EACTC,wBAAwB,IAG5B/Q,SAAU,CACRgR,SAAU,WACR,OAAQ,eAAOjc,KAAK6b,WAEtBK,QAAS,WACP,IAAI5C,EAAStZ,KAAKwN,MAAM8L,OACxB,OAAOA,EAASA,EAAOnM,KAAOmM,EAAS,MAEzC6C,eAAgB,WACd,OAAInc,KAAKsb,OACA,SACEtb,KAAKqb,UACP,YACErb,KAAKob,SACP,WAGF,IAETgB,cAAe,WAIb,MAAyB,iBAAlBpc,KAAKsK,UAAgCtK,KAAKic,SAA+B,GAApB,oBAGhEvJ,MAAO,CACLqJ,QAAS,SAAiB9I,EAAUC,GAClC,GAAIlT,KAAKgc,uBACPhc,KAAKgc,wBAAyB,OAIhC,GAAI/I,IAAaC,EAAU,CACzB,IAAImJ,EAAYpJ,EAAW,OAAkB,OACzC6E,EAAU,IAAI,OAAQuE,EAAW,CACnC7F,YAAY,EACZqB,UAAW7X,KACX2K,OAAQ3K,KAAKwN,MAAM8O,KACnB3E,cAAe,KACfC,YAAa5X,KAAKuc,OAASvc,KAAKuc,SAAWvc,KAAKmP,IAAM,OAIxD,GAFAnP,KAAKyW,UAAUqB,GAEXA,EAAQpB,iBAMV,OAJA1W,KAAKgc,wBAAyB,EAC9Bhc,KAAK+b,QAAU7I,OAEflT,KAAKwc,KAAK,OAAmBxc,KAAKyc,cAIhCxJ,EACFjT,KAAK0c,WAEL1c,KAAK2c,aAIXnL,SAAU,SAAkByB,EAAUC,GAChCD,IAAaC,GAAYD,GAAYjT,KAAK+b,UAE5C/b,KAAK+b,SAAU,KAIrB7P,QAAS,WAEPlM,KAAKoM,SAAW,KAChBpM,KAAK4c,cAAgB,MAIvB1I,YAAa,WAEXlU,KAAK+b,SAAU,EACf/b,KAAK6c,iBAAgB,GACrB7c,KAAKiN,iBAEPD,cAAe,WACbhN,KAAK+b,SAAU,EACf/b,KAAK6c,iBAAgB,GACrB7c,KAAKiN,gBACLjN,KAAK8c,oBAEPxP,QAAS,CAEPmJ,UAAW,SAAmBqB,GAC5B,IAAIL,EAAOK,EAAQL,KACnBzX,KAAK+X,WAAW,eAAiB,OAAeN,GAAOK,GACvD9X,KAAKkO,MAAMuJ,EAAMK,IAEnB4E,SAAU,WACR,IAAItR,EAAQpL,KAEZ,IAAIA,KAAKwR,SAAT,CAMA,IAAKxR,KAAKic,SACR,GAAsB,qBAAX,OAET,OAAAhI,EAAA,MAAK,uDAAwD,YACxD,CAEL,IAAI3H,EAAKtM,KAAKsb,QAAUtb,KAAK4F,OAAS5F,KAAKtB,MAAQsB,KAAKmN,IAAMnN,KAAKwN,MAAM8L,OAEzEhN,EAAKA,EAAGa,KAAOb,EAEftM,KAAK+c,aAAazQ,GAKtBtM,KAAK+X,WAAW+C,EAAuB9a,MAEvCA,KAAK6c,iBAAgB,GAErB7c,KAAKyM,WAAU,WAEbrB,EAAM4R,YAGN5R,EAAM8C,MAAM,aAGhByO,SAAU,WACR3c,KAAK6c,iBAAgB,GACrB7c,KAAK+X,WAAWgD,EAAwB/a,MACxCA,KAAKkO,MAAM,QACXlO,KAAKiN,iBAEP8P,aAAc,SAAsBrR,GAClC1L,KAAKiN,gBACLjN,KAAKoM,SAAW,IAAI,OAAOV,EAAS1L,KAAKwN,MAAM8O,KAAMtc,KAAKid,oBAG5DhQ,cAAe,WACbjN,KAAKoM,UAAYpM,KAAKoM,SAASuB,UAC/B3N,KAAKoM,SAAW,MAIlBW,aAAc,WACZ,IACE/M,KAAKoM,SAASwB,iBACd,MAAOoI,MAEX8G,iBAAkB,WAChB1F,aAAapX,KAAK4c,eAClB5c,KAAK4c,cAAgB,MAEvBK,gBAAiB,WACf,IAAIvS,EAAYkP,EAEZ5Z,KAAKsb,OACP5Q,EAAY1K,KAAK4F,MAAQ+T,EAAoBD,EACpC1Z,KAAKqb,UACd3Q,EAAYoP,EACH9Z,KAAKob,SACd1Q,EAAYqP,EACH/Z,KAAK4F,QACd8E,EAAYmP,GAGd,IAAI1O,EAAe,CACjBT,UAAWA,EACXW,UAAW,CACTZ,OAAQ,CACNA,OAAQzK,KAAKyK,QAAU,GAEzBc,KAAM,CACJ2R,SAAUld,KAAKub,UAIjB1P,EAAoB7L,KAAKsK,SAQ7B,OANIuB,IACFV,EAAaE,UAAUM,gBAAkB,CACvCE,kBAAmBA,IAIhB,eAAUV,EAAcnL,KAAKwb,YAAc,KAGpDqB,gBAAiB,SAAyBM,GAExCnd,KAAKia,kBAAoBkD,EAEzBnd,KAAK0a,iBAAmByC,EAExB,IAAI9E,EAAS8E,EAAS,MAAQ,OAC9Bnd,KAAKoY,MAAMC,GAAQyC,EAAuB9a,KAAKod,oBAEjDA,kBAAmB,SAA2BC,GACxCA,IAAOrd,OACTA,KAAK+b,SAAU,IAInB/J,KAAM,WACJ,IAAI7F,EAASnM,KAETA,KAAKwR,UAMT,gBAAU,WACRrF,EAAO4P,SAAU,MAIrBxO,KAAM,WACJ,IAAI+P,EAAUvO,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,IAAmBA,UAAU,GAGzE/O,KAAKwR,WAITxR,KAAK+b,SAAU,EAEXuB,GAEFtd,KAAK4M,MAAM,OAAmB5M,KAAKyc,gBAIvCnD,OAAQ,SAAgBlJ,GACtBA,EAAQA,GAAS,GAEjB,IAAImN,EAASnN,EACTqH,EAAO8F,EAAO9F,KACd+F,EAAUD,EAAOC,SAER,UAAT/F,GAA+B,YAATA,IAAgF,IAA1D,CAAC,OAAY,OAAY,QAAW5P,QAAQ2V,MAOxFxd,KAAKwR,SACPxR,KAAK+b,SAAU,GAIjB/b,KAAKkO,MAAM,OAAmBkC,GAC9B,eAAUA,GAENpQ,KAAK+b,QACP/b,KAAKuN,MAAK,GAEVvN,KAAKgS,UAMTyL,YAAa,SAAqBrN,GAShC,eAAUA,EAAO,CACfsN,aAAa,KAIjBC,UAAW,SAAmBvN,GAC5B,IAAIoN,EAAUpN,EAAMoN,QAEhBA,IAAY,OAEdxd,KAAK4d,MAAMxN,GACFoN,IAAY,OAErBxd,KAAK6d,UAAUzN,GAAO,GACboN,IAAY,QAErBxd,KAAK6d,UAAUzN,GAAO,IAI1BwN,MAAO,SAAexN,GAChBpQ,KAAK+b,UACP/b,KAAK+b,SAAU,EACf,eAAU3L,GAEVpQ,KAAK4M,MAAM,OAAmB5M,KAAKyc,gBAIvCqB,aAAc,SAAsB1N,GAE9BpQ,KAAKwR,SACPxR,KAAK+b,SAAU,EAIjB/b,KAAKkO,MAAM,OAAkBkC,IAG/B2N,YAAa,SAAqB3N,GAChC,IAAItC,EAAS9N,KAET2K,EAASyF,EAAMzF,QAEf3K,KAAK+b,SAAY,eAAS/b,KAAKwN,MAAM8O,KAAM3R,IAAY,eAAS3K,KAAKkc,QAASvR,KAChF3K,KAAK8c,mBACL9c,KAAK4c,cAAgBpD,YAAW,WAC9B,OAAO1L,EAAOP,SACbvN,KAAKic,SAAW,IAAM,KAI7BzB,gBAAiB,SAAyBpK,GACxCpQ,KAAK+d,YAAY3N,IAGnByK,eAAgB,SAAwBzK,GACtCpQ,KAAK+d,YAAY3N,IAGnByN,UAAW,SAAmBzN,EAAO4N,GACnC,IAAI5H,EAASpW,KAGT2K,EAASyF,EAAMzF,QAEd3K,KAAK+b,SAAW3L,GAAS,eAAQ4K,EAAqBrQ,KAK3D,eAAUyF,GACVpQ,KAAKyM,WAAU,WACb,IAAIwR,EAAQ7H,EAAO8H,WAEnB,KAAID,EAAM3e,OAAS,GAAnB,CAKA,IAAIoD,EAAQub,EAAMpW,QAAQ8C,GAEtBqT,GAAMtb,EAAQ,EAChBA,KACUsb,GAAMtb,EAAQub,EAAM3e,OAAS,GACvCoD,IAGEA,EAAQ,IAEVA,EAAQ,GAGV0T,EAAO+H,UAAUzb,EAAOub,SAG5BE,UAAW,SAAmBzb,EAAOub,GACnC,IAAI3R,EAAK2R,EAAMG,MAAK,SAAU9R,EAAI3I,GAChC,OAAOA,IAAMjB,KAEf,eAAa4J,IAEf4R,SAAU,WAER,OAAO,EAAe,eAAUjD,EAAejb,KAAKwN,MAAM8O,QAE5DU,UAAW,WACT,eAAahd,KAAKwN,MAAM8O,OAE1BG,aAAc,WACZ,IAAIlF,EAASvX,KAEbA,KAAKyM,WAAU,WACb,eAAa8K,EAAO2E,iB,oCCrd5B,uKAAS5N,EAAQC,EAAQC,GAAkB,IAAIvG,EAAOG,OAAOH,KAAKsG,GAAS,GAAInG,OAAOqG,sBAAuB,CAAE,IAAIC,EAAUtG,OAAOqG,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxG,OAAOyG,yBAAyBN,EAAQK,GAAKvG,eAAgBJ,EAAK/I,KAAKyD,MAAMsF,EAAMyG,GAAY,OAAOzG,EAE9U,SAAS6G,EAAcnE,GAAU,IAAK,IAAIhH,EAAI,EAAGA,EAAIoL,UAAUzP,OAAQqE,IAAK,CAAE,IAAIlB,EAAyB,MAAhBsM,UAAUpL,GAAaoL,UAAUpL,GAAK,GAAQA,EAAI,EAAK2K,EAAQlG,OAAO3F,IAAS,GAAM7D,SAAQ,SAAUoJ,GAAOE,EAAgByC,EAAQ3C,EAAKvF,EAAOuF,OAAsBI,OAAO4G,0BAA6B5G,OAAO6G,iBAAiBtE,EAAQvC,OAAO4G,0BAA0BvM,IAAmB6L,EAAQlG,OAAO3F,IAAS7D,SAAQ,SAAUoJ,GAAOI,OAAOjE,eAAewG,EAAQ3C,EAAKI,OAAOyG,yBAAyBpM,EAAQuF,OAAe,OAAO2C,EAE7gB,SAASzC,EAAgBC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EAapM,IAAI5D,EAAQ,eAAsB,eAASuK,EAAcA,EAAc,GAAI,eAAK,OAAY,CAAC,QAAS,eAAgB,GAAI,CAC/HuP,UAAW,eAAS,QACpB7O,QAAS,eAAS,WACf,QAGM8O,EAA6B,aAAIzZ,OAAO,CACjDC,KAAM,OACNwK,OAAQ,CAAC,OAAY,QACrBsM,OAAQ,CACND,WAAY,CACVG,QAAS,OAGbyC,cAAc,EACdha,MAAOA,EACP0G,SAAU,CACRuT,cAAe,WACb,OAAO1P,EAAcA,EAAc,GAAI9O,KAAKye,SAAU,GAAI,CACxD1O,KAAM,eAIZzC,QAAS,CACPoR,cAAe,WACb,IAAItT,EAAQpL,KAGZ,gBAAU,WACJoL,EAAMuQ,YACRvQ,EAAMuQ,WAAWpO,MAAK,OAI5BoR,QAAS,SAAiBvO,GACxBpQ,KAAKkO,MAAM,OAAkBkC,GAC7BpQ,KAAK0e,kBAGT1Z,OAAQ,SAAgBC,GACtB,IAAIoZ,EAAYre,KAAKqe,UACjB7O,EAAUxP,KAAKwP,QACfoP,EAAS5e,KAAK4e,OACdpN,EAAWxR,KAAKwR,SAChBmN,EAAU3e,KAAK2e,QACfF,EAAUze,KAAKye,QACnB,OAAOxZ,EAAE,KAAM,CACbkE,MAAOsV,EAAQtV,MACf0V,MAAOJ,EAAQI,MACflO,MAAO,CACLZ,KAAM,iBAEP,CAAC9K,EAAE,OAAO,CACXY,YAAa,gBACbsD,MAAO,CAACkV,EAAWnW,EAAgB,GAAI,QAAQM,OAAOgH,GAAUA,KAAaoP,GAAUpN,KACvFjN,MAAOvE,KAAK8e,OACZnO,MAAO3Q,KAAKwe,cACZxQ,GAAI,CACF4D,MAAO+M,GAET/N,IAAK,QACJ5Q,KAAK+e,uB,kCC7EZ,IAAIC,EAAI,EAAQ,QACZvf,EAAY,EAAQ,QACpBwf,EAAkB,EAAQ,QAC1Bpf,EAAS,EAAQ,QACjBgB,EAAQ,EAAQ,QAEhBqe,EAAgB,GAAIC,QACpBC,EAAQpe,KAAKoe,MAEbC,EAAM,SAAUC,EAAGpf,EAAGqf,GACxB,OAAa,IAANrf,EAAUqf,EAAMrf,EAAI,IAAM,EAAImf,EAAIC,EAAGpf,EAAI,EAAGqf,EAAMD,GAAKD,EAAIC,EAAIA,EAAGpf,EAAI,EAAGqf,IAG9EC,EAAM,SAAUF,GAClB,IAAIpf,EAAI,EACJuf,EAAKH,EACT,MAAOG,GAAM,KACXvf,GAAK,GACLuf,GAAM,KAER,MAAOA,GAAM,EACXvf,GAAK,EACLuf,GAAM,EACN,OAAOvf,GAGPqH,EAAS2X,IACY,UAAvB,KAAQC,QAAQ,IACG,MAAnB,GAAIA,QAAQ,IACS,SAArB,MAAMA,QAAQ,IACuB,yBAArC,mBAAsBA,QAAQ,MAC1Bte,GAAM,WAEVqe,EAAcrd,KAAK,OAKrBmd,EAAE,CAAErU,OAAQ,SAAU+U,OAAO,EAAMC,OAAQpY,GAAU,CAEnD4X,QAAS,SAAiBS,GACxB,IAKInc,EAAGC,EAAGmc,EAAGC,EALTC,EAASd,EAAgBjf,MACzBggB,EAAcvgB,EAAUmgB,GACxBza,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB8a,EAAO,GACPhgB,EAAS,IAGTigB,EAAW,SAAUhgB,EAAGigB,GAC1B,IAAIzd,GAAS,EACT0d,EAAKD,EACT,QAASzd,EAAQ,EACf0d,GAAMlgB,EAAIiF,EAAKzC,GACfyC,EAAKzC,GAAS0d,EAAK,IACnBA,EAAKhB,EAAMgB,EAAK,MAIhBC,EAAS,SAAUngB,GACrB,IAAIwC,EAAQ,EACRyd,EAAI,EACR,QAASzd,GAAS,EAChByd,GAAKhb,EAAKzC,GACVyC,EAAKzC,GAAS0c,EAAMe,EAAIjgB,GACxBigB,EAAKA,EAAIjgB,EAAK,KAIdogB,EAAe,WACjB,IAAI5d,EAAQ,EACR6d,EAAI,GACR,QAAS7d,GAAS,EAChB,GAAU,KAAN6d,GAAsB,IAAV7d,GAA+B,IAAhByC,EAAKzC,GAAc,CAChD,IAAI8d,EAAIzgB,OAAOoF,EAAKzC,IACpB6d,EAAU,KAANA,EAAWC,EAAID,EAAI1gB,EAAOgC,KAAK,IAAK,EAAI2e,EAAElhB,QAAUkhB,EAE1D,OAAOD,GAGX,GAAIP,EAAc,GAAKA,EAAc,GAAI,MAAM5f,WAAW,6BAE1D,GAAI2f,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAQA,GAAU,KAAM,OAAOhgB,OAAOggB,GAKrD,GAJIA,EAAS,IACXE,EAAO,IACPF,GAAUA,GAERA,EAAS,MAKX,GAJAtc,EAAI+b,EAAIO,EAASV,EAAI,EAAG,GAAI,IAAM,GAClC3b,EAAID,EAAI,EAAIsc,EAASV,EAAI,GAAI5b,EAAG,GAAKsc,EAASV,EAAI,EAAG5b,EAAG,GACxDC,GAAK,iBACLD,EAAI,GAAKA,EACLA,EAAI,EAAG,CACTyc,EAAS,EAAGxc,GACZmc,EAAIG,EACJ,MAAOH,GAAK,EACVK,EAAS,IAAK,GACdL,GAAK,EAEPK,EAASb,EAAI,GAAIQ,EAAG,GAAI,GACxBA,EAAIpc,EAAI,EACR,MAAOoc,GAAK,GACVQ,EAAO,GAAK,IACZR,GAAK,GAEPQ,EAAO,GAAKR,GACZK,EAAS,EAAG,GACZG,EAAO,GACPpgB,EAASqgB,SAETJ,EAAS,EAAGxc,GACZwc,EAAS,IAAMzc,EAAG,GAClBxD,EAASqgB,IAAiBzgB,EAAOgC,KAAK,IAAKme,GAU7C,OAPEA,EAAc,GAChBF,EAAI7f,EAAOX,OACXW,EAASggB,GAAQH,GAAKE,EAClB,KAAOngB,EAAOgC,KAAK,IAAKme,EAAcF,GAAK7f,EAC3CA,EAAOhB,MAAM,EAAG6gB,EAAIE,GAAe,IAAM/f,EAAOhB,MAAM6gB,EAAIE,KAE9D/f,EAASggB,EAAOhgB,EACTA,M,sPC3HE,SAASwgB,EAAQtY,GAa9B,OATEsY,EADoB,oBAAXC,QAAoD,kBAApBA,OAAOC,SACtC,SAAiBxY,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXuY,QAAyBvY,EAAI9B,cAAgBqa,QAAUvY,IAAQuY,OAAOxZ,UAAY,gBAAkBiB,GAItHsY,EAAQtY,G,4ECPJnC,G,UAAW,SAAAmC,GAAG,MAAmB,WAAf,EAAOA,IAA4B,OAARA,IAE7CyY,EAAU,SAAAC,GACrB,IAAMC,EAAQ,IAAIC,KAClB,OAEEF,EAAKG,YAAcF,EAAME,WACzBH,EAAKI,aAAeH,EAAMG,YAC1BJ,EAAKK,gBAAkBJ,EAAMI,eAiBpBC,EAAY,WACvB,IAAM9D,EAAK+D,kCAAqBrZ,MAC1BsZ,EAAQC,sBAAS,CACrBC,MAAOlE,EAAGmE,SAUZ,OAPA9O,oBACE,kBAAM2K,EAAGmE,UACT,SAAAC,GACEJ,EAAME,MAAQE,KAIlB,iCAAYC,oBAAOL,IAAnB,IAA2BM,OAAQtE,EAAGuE,WA+C3BC,EAAY,SAAC/c,GACxB,IAAIgd,EAAUhO,SAASiO,OAAOjgB,MAAM,IAAIX,OACtC,WAAa2D,EAAKgD,QAAQ,+BAAgC,QAAU,aAEtE,OAAOga,EAAUE,mBAAmBF,EAAQ,SAAMlgB,I,qBC/FpD,IAAIqgB,EAAwB,EAAQ,QAIpCA,EAAsB,a,kCCHtB,IAAIjD,EAAI,EAAQ,QACZkD,EAAO,EAAQ,QAAgC1iB,IAC/C2iB,EAA+B,EAAQ,QACvCC,EAA0B,EAAQ,QAElCC,EAAsBF,EAA6B,OAEnDG,EAAiBF,EAAwB,OAK7CpD,EAAE,CAAErU,OAAQ,QAAS+U,OAAO,EAAMC,QAAS0C,IAAwBC,GAAkB,CACnF9iB,IAAK,SAAa+iB,GAChB,OAAOL,EAAKliB,KAAMuiB,EAAYxT,UAAUzP,OAAS,EAAIyP,UAAU,QAAKnN,O,kCCfxE,6OAAS0M,EAAQC,EAAQC,GAAkB,IAAIvG,EAAOG,OAAOH,KAAKsG,GAAS,GAAInG,OAAOqG,sBAAuB,CAAE,IAAIC,EAAUtG,OAAOqG,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxG,OAAOyG,yBAAyBN,EAAQK,GAAKvG,eAAgBJ,EAAK/I,KAAKyD,MAAMsF,EAAMyG,GAAY,OAAOzG,EAE9U,SAAS6G,EAAcnE,GAAU,IAAK,IAAIhH,EAAI,EAAGA,EAAIoL,UAAUzP,OAAQqE,IAAK,CAAE,IAAIlB,EAAyB,MAAhBsM,UAAUpL,GAAaoL,UAAUpL,GAAK,GAAQA,EAAI,EAAK2K,EAAQlG,OAAO3F,IAAS,GAAM7D,SAAQ,SAAUoJ,GAAOE,EAAgByC,EAAQ3C,EAAKvF,EAAOuF,OAAsBI,OAAO4G,0BAA6B5G,OAAO6G,iBAAiBtE,EAAQvC,OAAO4G,0BAA0BvM,IAAmB6L,EAAQlG,OAAO3F,IAAS7D,SAAQ,SAAUoJ,GAAOI,OAAOjE,eAAewG,EAAQ3C,EAAKI,OAAOyG,yBAAyBpM,EAAQuF,OAAe,OAAO2C,EAE7gB,SAASzC,EAAgBC,EAAKH,EAAK3J,GAAiK,OAApJ2J,KAAOG,EAAOC,OAAOjE,eAAegE,EAAKH,EAAK,CAAE3J,MAAOA,EAAOgK,YAAY,EAAMhE,cAAc,EAAMiE,UAAU,IAAkBH,EAAIH,GAAO3J,EAAgB8J,EAgBpM,IAAI5D,EAAQ,eAAsB,eAASuK,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAgB,GAAI,CAC5H0T,MAAO,eAAS,QAAmB,GACnCtT,KAAM,eAAS,QAEfuT,KAAM,eAAS,QAAmB,GAClCC,UAAW,eAAS,QACpBC,QAAS,eAAS,QAAmB,GACrC5S,KAAM,eAAS,OAAkB,QACjC6S,KAAM,eAAS,QACflkB,MAAO,eAAS,QAAmB,GACnCmkB,gBAAiB,eAAS,OAAkB,UAAU,SAAUxkB,GAC9D,OAAO,eAAc,CAAC,SAAU,SAAU,SAAUA,MAEtDykB,WAAY,eAAS,QACrBC,UAAW,eAAS,QACpBC,QAAS,eAAS,QAClBC,aAAc,eAAS,QACvBC,KAAM,eAAS,QACfC,YAAa,eAAS,QACtBC,UAAW,eAAS,OAAkB,UAEtCC,WAAY,eAAS,OAAkB,mBACvC7T,QAAS,eAAS,OAAkB,gBACjC,QAGM8T,EAAyB,aAAIze,OAAO,CAC7CC,KAAM,OACNwK,OAAQ,CAAC,OAAS,OAAe,QACjC/K,MAAOA,EACP0G,SAAU,CACRsY,gBAAiB,WACf,IAAIf,EAAQxiB,KAAKwiB,MACb9jB,EAAQsB,KAAKtB,MACjB,MAAO,CAACsB,KAAKmc,eAAgBnc,KAAKoc,cAAe,CAC/CpK,KAAMhS,KAAK+b,QAIX,YAAard,IAAU8jB,EAGvB,SAAUA,GAAS9jB,KAGvB8kB,YAAa,WACX,MAAO,CAACxjB,KAAK0iB,UAAW,CACtB,sBAAuB1iB,KAAK4F,MAC5BoM,KAAMhS,KAAK+b,WAGf0H,cAAe,WACb,IAAI/kB,EAAQsB,KAAKtB,MACjB,MAAO,CAACsB,KAAKmjB,YAAa,CACxB,wBAAyBzkB,EACzB,2BAA4BsB,KAAK2iB,UAAYjkB,MAInDsG,OAAQ,SAAgBC,GACtB,IAAI8W,EAAU/b,KAAK+b,QACfvM,EAAUxP,KAAKwP,QACfoT,EAAO5iB,KAAK4iB,KACZJ,EAAQxiB,KAAKwiB,MACbhR,EAAWxR,KAAKwR,SAChB9S,EAAQsB,KAAKtB,MACbqR,EAAO/P,KAAK+P,KACZxC,EAAOvN,KAAKuN,KACZ+L,EAAStZ,KAAKsZ,OACdoK,EAAc,CAChBlU,QAASA,EACToT,KAAMA,EACNJ,MAAOA,EACPhR,SAAUA,GAERmS,EAAkB3jB,KAAK+e,cAAc,QACrC6E,EAAwB5jB,KAAK6jB,kBAAkB,QAA4B,GAAK,eAAW7jB,KAAKkP,KAAMlP,KAAKkjB,MAC3GY,EAAS7e,IAEb,GAAIvG,EAAO,CACT,IAAIskB,EAAUhjB,KAAKgjB,QACfD,EAAY/iB,KAAK+iB,UACjBF,EAAkB7iB,KAAK6iB,gBAEvBkB,EAAWjV,EAAcA,EAAc,GAAI4U,GAAc,GAAI,CAC/DlU,QAASxP,KAAKijB,cAAgBzT,IAK5BwT,EACFe,EAASC,GAAKhB,EACLD,EACTgB,EAASE,KAAOlB,EACPF,IACTkB,EAAStM,KAAOoL,GAGlBiB,EAAS7e,EAAE,OAAS,CAClBkE,MAAOnJ,KAAK8iB,WACZnS,MAAO,CACLxB,GAAInP,KAAKuc,OAAO,gBAElBhY,MAAOwf,EACPtT,SAAUmT,EACV5V,GAAI,CACF4D,MAAO5R,KAAK8d,cAEdlN,IAAK,UACJ+S,GAEHA,EAAkB,CAAC1e,EAAE,OAAQ,CAC3BkE,MAAO,CAAC,YACP,CAACnJ,KAAKqjB,cACTO,EAAwB,GAG1B,IAAIM,EAAUjf,EAAE,OAAS,CACvBY,YAAa,kBACbsD,MAAOnJ,KAAKyjB,cACZ9S,MAAO,CACLxB,GAAInP,KAAKuc,OAAO,eAChB,gBAAiB,OACjB,gBAAiB,eAASR,IAE5BxX,MAAOuK,EAAcA,EAAc,GAAI4U,GAAc,GAAI,CACvDhf,IAAK1E,KAAKojB,UACVZ,MAAOA,IAAU9jB,IAEnB+R,SAAUmT,EACV5V,GAAI,CACFmW,UAAWnkB,KAAKyd,YAChB7L,MAAO0H,EACP8K,QAAS9K,GAGX1I,IAAK,UACJ+S,GACCU,EAAQpf,EAAE,KAAM,CAClBY,YAAa,gBACbsD,MAAOnJ,KAAKwjB,YACZ7S,MAAO,CACLZ,KAAMA,EACNC,SAAU,KACV,kBAAmBhQ,KAAKuc,OAAO7d,EAAQ,cAAgB,gBAEzDsP,GAAI,CACFoW,QAASpkB,KAAK2d,WAGhB/M,IAAK,QACJ,EAAE5Q,KAAKyiB,MAAQ1G,EAAU/b,KAAK+e,cAAc,OAAmB,CAChExR,KAAMA,IACHtI,MACL,OAAOA,EAAE,MAAO,CACdY,YAAa,sBACbsD,MAAOnJ,KAAKujB,gBACZ5S,MAAO,CACLxB,GAAInP,KAAKuc,WAEV,CAACuH,EAAQI,EAASG,Q,kCCjLzB,IAAIrF,EAAI,EAAQ,QACZjb,EAAc,EAAQ,QACtBuC,EAAS,EAAQ,QACjBge,EAAM,EAAQ,QACdte,EAAW,EAAQ,QACnB7B,EAAiB,EAAQ,QAAuCC,EAChEmgB,EAA4B,EAAQ,QAEpCC,EAAele,EAAOoa,OAE1B,GAAI3c,GAAsC,mBAAhBygB,MAAiC,gBAAiBA,EAAatd,iBAExDtF,IAA/B4iB,IAAeC,aACd,CACD,IAAIC,EAA8B,GAE9BC,EAAgB,WAClB,IAAIF,EAAc1V,UAAUzP,OAAS,QAAsBsC,IAAjBmN,UAAU,QAAmBnN,EAAY7B,OAAOgP,UAAU,IAChG9O,EAASD,gBAAgB2kB,EACzB,IAAIH,EAAaC,QAED7iB,IAAhB6iB,EAA4BD,IAAiBA,EAAaC,GAE9D,MADoB,KAAhBA,IAAoBC,EAA4BzkB,IAAU,GACvDA,GAETskB,EAA0BI,EAAeH,GACzC,IAAII,EAAkBD,EAAczd,UAAYsd,EAAatd,UAC7D0d,EAAgBve,YAAcse,EAE9B,IAAIE,EAAiBD,EAAgBpmB,SACjCsmB,EAAyC,gBAAhC/kB,OAAOykB,EAAa,SAC7BzhB,EAAS,wBACboB,EAAeygB,EAAiB,cAAe,CAC7CvgB,cAAc,EACdC,IAAK,WACH,IAAIygB,EAAS/e,EAAShG,MAAQA,KAAKglB,UAAYhlB,KAC3C0B,EAASmjB,EAAehjB,KAAKkjB,GACjC,GAAIT,EAAII,EAA6BK,GAAS,MAAO,GACrD,IAAIzN,EAAOwN,EAASpjB,EAAOzC,MAAM,GAAI,GAAKyC,EAAOoG,QAAQ/E,EAAQ,MACjE,MAAgB,KAATuU,OAAc1V,EAAY0V,KAIrC0H,EAAE,CAAE1Y,QAAQ,EAAMqZ,QAAQ,GAAQ,CAChCe,OAAQiE,M,kCC/CZ,kCAAO,IAAIhR,EAAO","file":"js/chunk-2f01d152.a7312a05.js","sourcesContent":["import { isToday } from './utils'\n\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\n\nexport const title = (value, replacer = ' ') => {\n if (!value) return ''\n const str = value.toString()\n\n const arr = str.split(replacer)\n const capitalizedArray = []\n arr.forEach(word => {\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\n capitalizedArray.push(capitalized)\n })\n return capitalizedArray.join(' ')\n}\n\nexport const avatarText = value => {\n if (!value) return ''\n const nameArray = value.split(' ')\n if (nameArray.length > 2) {\n nameArray.pop()\n }\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\n}\n\n/**\n * Format and return date in Humanize format\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\n * @param {String} value date to format\n * @param {Object} formatting Intl object to format with\n */\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\n if (!value) return value\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n/**\n * Return short human friendly month representation of date\n * Can also convert date to only time if date is of today (Better UX)\n * @param {String} value date to format\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\n */\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\n const date = new Date(value)\n let formatting = { month: 'short', day: 'numeric' }\n\n if (toTimeForCurrentDay && isToday(date)) {\n formatting = { hour: 'numeric', minute: 'numeric' }\n }\n\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n// Strip all the tags from markup and return plain text\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\n\nexport const declension = (forms, val) => {\n const cases = [2, 0, 1, 1, 1, 2]\n return forms[(val % 100 > 4 && val % 100 < 20) ? 2 : cases[(val % 10 < 5) ? val % 10 : 5]]\n}\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\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 children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\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_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\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 verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } 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_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\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: 'media-body'\n }), children);\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});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import {\n reactive, getCurrentInstance, watch, toRefs,\n} from '@vue/composition-api'\nimport router from '@/router'\n// eslint-disable-next-line object-curly-newline\n\nexport const isObject = obj => typeof obj === 'object' && obj !== null\n\nexport const isToday = date => {\n const today = new Date()\n return (\n /* eslint-disable operator-linebreak */\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n /* eslint-enable */\n )\n}\n\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\n\n// ? Light and Dark variant is not included\n// prettier-ignore\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\n\nexport const isDynamicRouteActive = route => {\n const { route: resolvedRoute } = router.resolve(route)\n return resolvedRoute.path === router.currentRoute.path\n}\n\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\nexport const useRouter = () => {\n const vm = getCurrentInstance().proxy\n const state = reactive({\n route: vm.$route,\n })\n\n watch(\n () => vm.$route,\n r => {\n state.route = r\n },\n )\n\n return { ...toRefs(state), router: vm.$router }\n}\n\n/**\n * This is just enhancement over Object.extend [Gives deep extend]\n * @param {target} a Object which contains values to be overridden\n * @param {source} b Object which contains values to override\n */\n// export const objectExtend = (a, b) => {\n// // Don't touch 'null' or 'undefined' objects.\n// if (a == null || b == null) {\n// return a\n// }\n\n// Object.keys(b).forEach(key => {\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = objectExtend(a[key], b[key])\n// }\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// }\n// })\n\n// return a\n// }\n\nexport const setUrlParam = () => {\n let out = ''\n\n return param => {\n if (out) {\n out = `${out}&${param}`\n } else {\n out = param\n }\n\n return out\n }\n}\n\n/* eslint-disable */\nexport const getCookie = (name) => {\n let matches = document.cookie.match(new RegExp(\n '(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)',\n ))\n return matches ? decodeURIComponent(matches[1]) : undefined\n}\n\nexport const setCookie = (name, value, options = {}) => {\n\n options = {\n path: '/',\n // при необходимости добавьте другие значения по умолчанию\n ...options\n }\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString()\n }\n\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\n\n for (let optionKey in options) {\n updatedCookie += '; ' + optionKey\n let optionValue = options[optionKey]\n if (optionValue !== true) {\n updatedCookie += '=' + optionValue\n }\n }\n\n document.cookie = updatedCookie\n}\n/* eslint-enable */\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\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_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","export var noop = function noop() {};"],"sourceRoot":""}