{"version":3,"sources":["webpack:///./issuable/components/issue_assignees.vue","webpack:///./issuable/components/issue_assignees.vue?abf4","webpack:///issuable/components/issue_assignees.vue","webpack:///./issuable/components/issue_assignees.vue?8a48","webpack:///./issues/list/utils.js","webpack:///./vue_shared/mixins/timeago.js","webpack:///./helpers/event_hub_factory.js","webpack:////home/git/gitlab/node_modules/visibilityjs/index.js","webpack:///./vue_shared/components/local_storage_sync.vue?5d17","webpack:///vue_shared/components/local_storage_sync.vue","webpack:///./vue_shared/components/local_storage_sync.vue","webpack:///./work_items/utils.js","webpack:///./vue_shared/issuable/list/constants.js","webpack:///./work_items/components/work_item_type_icon.vue","webpack:///./work_items/components/work_item_type_icon.vue?a682","webpack:///work_items/components/work_item_type_icon.vue","webpack:///./work_items/components/work_item_type_icon.vue?230f","webpack:////home/git/gitlab/node_modules/visibilityjs/lib/visibility.timers.js","webpack:///./lib/utils/number_utils.js","webpack:///./sortable/constants.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?fb3c","webpack:///vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?0acf","webpack:///./issues/list/constants.js","webpack:///./vue_shared/issuable/list/components/issuable_list_root.vue","webpack:///vue_shared/components/page_size_selector.vue","webpack:///./vue_shared/components/page_size_selector.vue?18ea","webpack:///./vue_shared/components/page_size_selector.vue?49cd","webpack:///./vue_shared/components/page_size_selector.vue","webpack:///vue_shared/issuable/list/components/issuable_bulk_edit_sidebar.vue","webpack:///./vue_shared/issuable/list/components/issuable_bulk_edit_sidebar.vue?08c5","webpack:///./vue_shared/issuable/list/components/issuable_bulk_edit_sidebar.vue?2759","webpack:///./vue_shared/issuable/list/components/issuable_bulk_edit_sidebar.vue","webpack:///./vue_shared/issuable/list/components/issuable_item.vue?2c2c","webpack:///vue_shared/issuable/list/components/issuable_item.vue","webpack:///./vue_shared/issuable/list/components/issuable_item.vue?04db","webpack:///./vue_shared/issuable/list/components/issuable_item.vue","webpack:///./vue_shared/issuable/list/components/issuable_tabs.vue?7828","webpack:///vue_shared/issuable/list/components/issuable_tabs.vue","webpack:///./vue_shared/issuable/list/components/issuable_tabs.vue?21f7","webpack:///./vue_shared/issuable/list/components/issuable_tabs.vue","webpack:///./vue_shared/issuable/list/components/issuable_grid.vue?394b","webpack:///./vue_shared/issuable/list/components/issuable_grid.vue","webpack:///vue_shared/issuable/list/components/issuable_list_root.vue","webpack:///./vue_shared/issuable/list/components/issuable_list_root.vue?7932","webpack:///./vue_shared/issuable/list/components/issuable_list_root.vue?35e0","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/keyset_pagination/keyset_pagination.js","webpack:////home/git/gitlab/node_modules/visibilityjs/lib/visibility.core.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/avatar_link/avatar_link.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/tabs/tabs.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/tabs/tabs/tabs.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/pagination/pagination.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/tabs/tab/tab.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/tabs/constants.js"],"names":["components","UserAvatarLink","directives","GlTooltip","GlTooltipDirective","props","assignees","type","Array","required","iconSize","Number","default","imgCssClasses","String","maxVisible","data","maxAssignees","computed","assigneesToShow","numShownAssignees","length","numHiddenAssignees","slice","assigneesCounterTooltip","sprintf","__","count","assigneeCounterLabel","methods","avatarUrlTitle","assignee","assigneeName","name","webUrl","web_url","avatarUrl","avatar_url","component","_vm","this","_c","_self","_l","key","id","staticClass","attrs","_v","_s","s__","username","_e","rawName","modifiers","getInitialPageParams","pageSize","firstPageSize","DEFAULT_PAGE_SIZE","lastPageSize","afterCursor","beforeCursor","undefined","deriveSortKey","sort","sortMap","state","STATUS_OPEN","defaultSortKey","STATUS_CLOSED","UPDATED_DESC","CREATED_DESC","legacySortKey","urlSortParams","Object","keys","find","getSortKey","graphQLSortKey","includes","isSortKey","toUpperCase","getSortOptions","hasBlockedIssuesFeature","hasIssuableHealthStatusFeature","hasIssueWeightsFeature","hasManualSort","sortOptions","title","sortDirection","ascending","PRIORITY_ASC","descending","PRIORITY_DESC","CREATED_ASC","UPDATED_ASC","CLOSED_AT_ASC","CLOSED_AT_DESC","MILESTONE_DUE_ASC","MILESTONE_DUE_DESC","DUE_DATE_ASC","DUE_DATE_DESC","POPULARITY_ASC","POPULARITY_DESC","LABEL_PRIORITY_ASC","LABEL_PRIORITY_DESC","RELATIVE_POSITION_ASC","TITLE_ASC","TITLE_DESC","push","HEALTH_STATUS_ASC","HEALTH_STATUS_DESC","WEIGHT_ASC","WEIGHT_DESC","BLOCKING_ISSUES_ASC","BLOCKING_ISSUES_DESC","filter","x","tokenTypes","filtersMap","getUrlParams","tokenType","values","URL_PARAM","flatMap","filterObj","urlParamKeys","getFilterTokens","locationSearch","from","URLSearchParams","entries","map","urlParamKey","value","operator","getOperatorFromUrlParamKey","groupMultiSelectFilterTokens","filterTokensToGroup","tokenDefs","groupedTokens","multiSelectTokenTypes","t","multiSelect","forEach","token","OPERATORS_TO_GROUP","existingToken","isNotEmptySearchToken","FILTERED_SEARCH_TERM","isSpecialFilter","isAssigneeIdParam","TOKEN_TYPE_ASSIGNEE","isPositiveInteger","getParameterByName","PARAM_ASSIGNEE_ID","specialFilterValues","getFilterType","isUnionedAuthor","TOKEN_TYPE_AUTHOR","OPERATOR_OR","isUnionedLabel","TOKEN_TYPE_LABEL","isAfter","OPERATOR_AFTER","ALTERNATIVE_FILTER","SPECIAL_FILTER","NORMAL_FILTER","wildcardTokens","TOKEN_TYPE_ITERATION","TOKEN_TYPE_MILESTONE","TOKEN_TYPE_RELEASE","requiresUpperCaseValue","TOKEN_TYPE_TYPE","isWildcardValue","TOKEN_TYPE_HEALTH","isHealthStatusSpecialFilter","convertToApiParams","filterTokens","params","Map","not","or","filterType","apiField","API_PARAM","obj","OPERATOR_NOT","TOKEN_TYPE_CONFIDENTIAL","formatData","set","has","get","flat","size","fromEntries","convertToUrlParams","urlParamsMap","reduce","acc","_filtersMap$token$typ","urlParam","convertToSearchQuery","join","findWidget","workItem","_workItem$widgets","widgets","widget","mapWorkItemWidgetsToIssueFields","issuesList","produce","draftData","activeItem","project","issues","nodes","issue","iid","WORK_ITEM_TO_ISSUE_MAP","currentWidget","property","WIDGET_TYPE_ASSIGNEES","WIDGET_TYPE_LABELS","WIDGET_TYPE_MILESTONE","__persist","node","confidential","updateUpvotesCount","WIDGET_TYPE_AWARD_EMOJI","_currentWidget$proper","_currentWidget$proper2","_currentWidget$proper3","_currentWidget$proper4","upvotesCount","emoji","EMOJI_THUMBSUP","downvotesCount","EMOJI_THUMBSDOWN","upvotes","downvotes","timeFormatted","time","format","getTimeago","timeagoLanguageCode","tooltipTitle","localeDateFormat","asDateTimeFull","EventHub","constructor","$_all","dispose","clear","$on","handler","handlers","$off","newHandlers","delete","$once","_this","wrapHandler","args","$emit","module","exports","storageKey","Boolean","asString","persist","watch","newVal","saveValue","serialize","localStorage","removeItem","mounted","exists","getStorageValue","_isEqual","getItem","deserialize","console","warn","val","setItem","_isString","JSON","stringify","parse","render","_this$$scopedSlots$de","_this$$scopedSlots","$scopedSlots","call","staticRenderFns","isAssigneesWidget","isLabelsWidget","isMilestoneWidget","isNotesWidget","WIDGET_TYPE_NOTES","isStartAndDueDateWidget","WIDGET_TYPE_START_AND_DUE_DATE","findHierarchyWidgets","WIDGET_TYPE_HIERARCHY","findHierarchyWidgetChildren","_findHierarchyWidgets","children","formatAncestors","_findHierarchyWidgets2","ancestors","findHierarchyWidgetAncestors","ancestor","_ancestor$workItemTyp","icon","workItemType","iconName","ISSUABLE_EPIC","WORK_ITEMS_TYPE_MAP","WORK_ITEM_TYPE_ENUM_EPIC","href","findHierarchyWidgetDefinition","widgetDefinitions","widgetDefinition","autocompleteSourcesPath","autocompleteType","fullPath","isGroup","gon","relative_url_root","autocompleteDataSources","labels","members","commands","markdownPreviewPath","isReference","input","test","sortNameAlphabetically","a","b","toLowerCase","localeCompare","issuableListTabs","titleTooltip","STATUS_ALL","mergeRequestListTabs","STATUS_MERGED","DEFAULT_SKELETON_COUNT","PAGE_SIZE_STORAGE_KEY","GlIcon","showText","workItemIconName","showTooltipOnHover","workItemTypeUppercase","split","_WORK_ITEMS_TYPE_MAP$","workItemTypeName","_WORK_ITEMS_TYPE_MAP$2","workItemTooltipTitle","expression","class","window","lastTimer","install","Visibility","every","interval","hiddenInterval","callback","_time","number","_timers","visible","hidden","_run","isSupported","_listen","stop","_stop","_timed","_wasHidden","change","_stopRun","runNow","timer","runner","last","Date","delay","setTimeout","setInterval","clearInterval","clearTimeout","event","isHidden","wasHidden","i","bytesToMiB","BYTES_IN_KIB","bytesToGiB","numberToHumanSizeSplit","digits","locale","abs","Math","digitsOptions","minimumFractionDigits","maximumFractionDigits","formatNumberWithLocaleAndDigits","n","formatNumber","toString","numberToHumanSize","humanSize","label","numberToMetricPrefix","THOUSAND","toFixed","changeInPercent","firstY","lastY","round","isNumeric","isNaN","parseInt","numberRegex","DRAG_CLASS","DRAG_DELAY","defaultSortableOptions","animation","forceFallback","fallbackClass","fallbackOnBody","ghostClass","fallbackTolerance","stableSort","array","compareFn","index","bind","e","UserAvatarImage","GlAvatarLink","lazy","linkHref","imgSrc","imgAlt","imgCssWrapperClasses","imgSize","tooltipText","tooltipPlacement","popoverUserId","popoverUsername","userId","getIdFromGraphQLId","shouldShowUsername","avatarTooltipText","_t","ISSUE_REFERENCE","MAX_LIST_SIZE","PARAM_FIRST_PAGE_SIZE","PARAM_LAST_PAGE_SIZE","PARAM_PAGE_AFTER","PARAM_PAGE_BEFORE","PARAM_SORT","PARAM_STATE","ISSUES_VIEW_TYPE_KEY","ISSUES_LIST_VIEW_KEY","ISSUES_GRID_VIEW_KEY","i18n","actionsLabel","calendarLabel","closed","closedMoved","confidentialNo","confidentialYes","editIssues","errorFetchingCounts","errorFetchingIssues","importIssues","issueRepositioningMessage","jiraIntegrationMessage","jiraIntegrationSecondaryMessage","jiraIntegrationTitle","newIssueLabel","newProjectLabel","noClosedIssuesTitle","noGroupIssuesSignedInDescription","noOpenIssuesDescription","noOpenIssuesTitle","noIssuesDescription","noIssuesTitle","noIssuesSignedOutButtonText","noSearchNoFilterTitle","noSearchResultsDescription","noSearchResultsTitle","relatedMergeRequests","reorderError","deleteError","rssLabel","titles","descriptions","listLabel","gridLabel","FILTER_NONE","FILTER_ANY","FILTER_CURRENT","FILTER_UPCOMING","FILTER_STARTED","defaultWorkItemTypes","WORK_ITEM_TYPE_ENUM_ISSUE","WORK_ITEM_TYPE_ENUM_INCIDENT","WORK_ITEM_TYPE_ENUM_TEST_CASE","WORK_ITEM_TYPE_ENUM_TASK","defaultTypeTokenOptions","OPERATOR_IS","TOKEN_TYPE_SEARCH_WITHIN","TOKEN_TYPE_MY_REACTION","TOKEN_TYPE_EPIC","TOKEN_TYPE_WEIGHT","TOKEN_TYPE_CONTACT","TOKEN_TYPE_ORGANIZATION","TOKEN_TYPE_CREATED","OPERATOR_BEFORE","TOKEN_TYPE_CLOSED","PAGE_SIZES","text","n__","GlCollapsibleListbox","selectedItem","toggleText","emitInput","$options","on","$event","getLayoutPage","document","querySelector","expanded","layoutPageEl","classList","toggle","add","GlBadge","GlLink","GlLabel","GlFormCheckbox","GlSprintf","IssuableAssignees","WorkItemTypeIcon","mixins","timeagoMixin","hasScopedLabelsFeature","issuableSymbol","issuable","labelFilterParam","showCheckbox","checked","showWorkItemTypeIcon","isActive","preventRedirect","issuableId","issuableIid","author","externalAuthor","issuableLinkHref","webPath","gitlabWebUrl","authorId","isIssuableUrlExternal","_this$issuableLinkHre","isExternal","reference","_this$issuable$workIt","_this$issuable$labels","_this$issuable$widget","labelIdsString","_this$issuable$assign","_this$issuable$widget2","createdAt","isNotOpen","STATE_OPEN","isClosed","STATE_CLOSED","timestamp","closedAt","updatedAt","formattedTimestamp","timeago","timeAgo","issuableTitleProps","target","taskStatus","completedCount","taskCompletionStatus","notesCount","_this$issuable$userDi","userDiscussionsCount","userNotesCount","showDiscussions","showIssuableMeta","hasSlotContents","issuableNotesLink","setUrlFragment","statusBadgeVariant","isMergeRequest","__typename","slotName","$slots","scopedLabel","_this$issuable$widget3","allowsScopedLabels","isScopedLabel","labelTitle","labelTarget","encodeURIComponent","getAuthorPopoverTarget","$refs","authorLink","$el","handleIssuableItemClick","metaKey","ctrlKey","preventDefault","_b","scopedSlots","_u","fn","proxy","color","description","status","GlTabs","GlTab","tabs","tabCounts","currentTab","truncateCounts","isTabActive","tabName","isTabCountNumeric","tab","isInteger","VueDraggable","vueDraggableAttributes","tag","delayOnTouchOnly","GlAlert","GlKeysetPagination","GlSkeletonLoader","IssuableTabs","FilteredSearchBar","IssuableItem","IssuableGrid","IssuableBulkEditSidebar","GlPagination","PageSizeSelector","LocalStorageSync","glFeatureFlagMixin","namespace","recentSearchesStorageKey","searchInputPlaceholder","searchTokens","urlParams","initialFilterValue","initialSortBy","issuables","issuablesLoading","showPaginationControls","showBulkEditSidebar","defaultPageSize","totalItems","currentPage","previousPage","nextPage","isManualOrdering","useKeysetPagination","hasNextPage","hasPreviousPage","error","syncFilterAndSort","showFilteredSearchFriendlyText","showPageSizeChangeControls","isGridView","activeIssuable","checkedIssuables","skeletonItemCount","totalPages","ceil","allIssuablesChecked","bulkEditIssuables","issuablesWrapper","gridViewFeatureEnabled","_this$glFeatures","glFeatures","issuesGridView","list","_this2","deep","immediate","updateHistory","url","setUrlParams","location","replace","_uniqueId","issuableChecked","_this$checkedIssuable","handleIssuableCheckedInput","issuableEventHub","handleAllIssuablesCheckedInput","_this3","handleVueDraggableUpdate","newIndex","oldIndex","handlePageSizeChange","newPageSize","isIssuableActive","_this$activeIssuable","__vue_script__","GlButtonGroup","GlButton","inheritAttrs","startCursor","endCursor","prevText","prevButtonLink","navigationLabel","nextText","nextButtonLink","disabled","__vue_component__","_h","$createElement","_g","$attrs","$listeners","global","lastId","self","onVisible","support","listener","unbind","_callbacks","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","_change","_init","apply","arguments","addEventListener","attachEvent","_defineProperty","defineProperty","enumerable","configurable","writable","_watch","align","cardHeader","fill","justified","pills","small","vertical","BNav","functional","h","_ref","_class","concat","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","source","getOwnPropertyDescriptors","defineProperties","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","notDisabled","BVTabButton","inject","getBvTabs","controls","noKeyNav","posInSet","setSize","tabIndex","bvTabs","focus","link","handleEvent","keyCode","shiftKey","indexOf","_this$tab","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","active","activeNavItemClass","role","tabindex","click","keydown","ref","normalizeSlot","navProps","activeTabClass","card","contentClass","end","navClass","navWrapperClass","noFade","noNavStyle","BTabs","provide","registeredTabs","fade","localNavClass","classes","newValue","oldValue","$tab","activateTab","previousTab","nextTab","$nextTick","updateTabs","created","$_observer","setObserver","beforeDestroy","registerTab","unregisterTab","$t","disconnect","content","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","selector","safeId","identity","reverse","getButtonForTab","buttons","$btn","updateButton","$button","$forceUpdate","result","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","deactivateTab","focusButton","_this4","emitTabClick","clickTab","firstTab","currentIndex","math","lastTab","_this5","$activeTab","$fallbackTab","$buttons","_on","controlledBy","$nav","$children","$empty","$content","col","row","validatorHelper","actionPrimary","validator","actionSecondary","actionTertiary","syncActiveTabWithQueryParams","queryParamName","activeTabIndex","some","handleInput","syncActiveTabFromQueryParams","removeEventListener","buttonBinding","queryParamValue","getQueryParamValue","tabIndexToActivate","findIndex","getTabQueryParamValue","bTabs","search","currentQueryParamValue","newQueryParamValue","searchParams","history","pushState","pathname","setQueryParamValueIfNecessary","slot","primary","secondary","tertiary","listeners","model","perPage","limits","xs","sm","md","linkGen","Function","prevPage","ellipsisText","labelFirstPage","labelPrevPage","labelNextPage","labelLastPage","labelPage","page","left","breakpoint","getBreakpointSize","minTotalPagesToCollapse","isCompactPagination","max","paginationLimit","center","right","isFillAlign","diff","maxAdjacentPages","items","firstPage","shouldCollapseLeftSide","min","lastPage","shouldCollapseRightSide","to","getPageItem","splice","getEllipsisItem","pageIsDisabled","prevPageIsDisabled","nextPageIsDisabled","isLinkBased","setBreakpoint","commonAttrs","isActivePage","isDisabled","handleClick","slotData","side","wrapperClasses","prevPageAriaLabel","prevPageHref","handlePrevious","item","nextPageAriaLabel","nextPageHref","handleNext","_objectSpread2","MODEL_EVENT_NAME_ACTIVE","BTab","_isTab","tabClasses","noBody","buttonId","computedNoFade","computedLazy","activate","deactivate","updated","hasNormalizedSlot","mode","isArray","trim","linkClass"],"mappings":"8FAAA,I,wBCA0R,ECK3Q,CACfA,WAAA,CACAC,e,UAAAA,GAEAC,WAAA,CACAC,UAAAC,KAEAC,MAAA,CACAC,UAAA,CACAC,KAAAC,MACAC,UAAA,GAEAC,SAAA,CACAH,KAAAI,OACAF,UAAA,EACAG,QAAA,IAEAC,cAAA,CACAN,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAG,WAAA,CACAR,KAAAI,OACAF,UAAA,EACAG,QAAA,IAGAI,UACA,CACAC,aAAA,KAGAC,SAAA,CACAC,kBACA,MAAAC,EAAA,KAAAd,UAAAe,OAAA,KAAAC,mBACA,YAAAhB,UAAAiB,MAAA,EAAAH,IAEAI,0BACA,OAAAC,YAAAC,YAAA,4BAAAC,MAAA,KAAAL,sBAEAA,qBACA,YAAAhB,UAAAe,OAAA,KAAAN,WACA,KAAAT,UAAAe,OAAA,KAAAN,WAAA,EAEA,GAEAa,uBACA,YAAAN,mBAAA,KAAAL,aACA,KAAAA,aAAA,IAGA,SAAAK,qBAGAO,QAAA,CACAC,eAAAC,GACAN,YAAAC,YAAA,gCACAM,aAAAD,EAAAE,OAMAC,OAAAH,GACAA,EAAAI,SAAAJ,EAAAG,OAEAE,UAAAL,GACAA,EAAAM,YAAAN,EAAAK,Y,YClEIE,EAAY,YACd,GHRW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACF,EAAII,GAAIJ,EAAIpB,iBAAiB,SAASY,GAAU,OAAOU,EAAG,mBAAmB,CAACG,IAAIb,EAASc,GAAGC,YAAY,4BAA4BC,MAAM,CAAC,YAAYR,EAAIL,OAAOH,GAAU,UAAUQ,EAAIT,eAAeC,GAAU,kBAAkBQ,EAAI1B,cAAc,0BAA0B,yBAAyB,UAAU0B,EAAIH,UAAUL,GAAU,WAAWQ,EAAI7B,SAAS,oBAAoB,SAAS,cAAc,kBAAkB,CAAC+B,EAAG,OAAO,CAACK,YAAY,uBAAuB,CAACL,EAAG,OAAO,CAACK,YAAY,gBAAgB,CAACP,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,IAAI,sBAAsBX,EAAIS,GAAG,IAAIT,EAAIU,GAAGlB,EAASE,MAAM,YAAaF,EAASoB,SAAUV,EAAG,OAAO,CAACK,YAAY,iBAAiB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGlB,EAASoB,aAAaZ,EAAIa,YAAWb,EAAIS,GAAG,KAAMT,EAAIjB,mBAAqB,EAAGmB,EAAG,OAAO,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,sBAAsBC,UAAU,CAAC,QAAS,KAAQR,YAAY,iBAAiBC,MAAM,CAAC,MAAQR,EAAIf,wBAAwB,cAAc,2BAA2B,CAACe,EAAIS,GAAGT,EAAIU,GAAGV,EAAIX,yBAAyBW,EAAIa,MAAM,KAEnjC,IGSpB,EACA,KACA,KACA,MAIa,IAAAd,E,q3BCkDR,MAAMiB,EAAuB,SAClCC,EACAC,GAAgBD,UAAYE,KAC5BC,EACAC,EACAC,GAAY,MACR,CACJJ,cAAeE,OAAeG,EAAYL,EAC1CE,eACAC,cACAC,iBAQWE,EAAgB,UAAC,KAAEC,EAAI,QAAEC,EAAO,MAAEC,EAAQC,MACrD,MAAMC,EAAiBF,IAAUG,IAAgBC,IAAeC,IAC1DC,EAPkB,SAACR,EAAMC,EAAUQ,KAAa,OACtDC,OAAOC,KAAKV,GAASW,MAAK,SAAChC,GAAG,OAAKqB,EAAQrB,KAASoB,KAM9Ba,CAAWb,EAAMC,GACjCa,EALiB,SAACd,EAAMC,EAAUQ,KAAa,OAAKC,OAAOC,KAAKV,GAASc,SAASf,GAKjEgB,CAAUhB,aAAI,EAAJA,EAAMiB,cAAehB,IAAYD,EAAKiB,cAEvE,OAAOT,GAAiBM,GAAkBV,GAG/Bc,EAAiB,UAAC,wBAC7BC,EAAuB,+BACvBC,EAA8B,uBAC9BC,EAAsB,cACtBC,GAAgB,GACd,IACF,MAAMC,EAAc,CAClB,CACE1C,GAAI,EACJ2C,MAAO9D,YAAG,YACV+D,cAAe,CACbC,UAAWC,IACXC,WAAYC,MAGhB,CACEhD,GAAI,EACJ2C,MAAO9D,YAAG,gBACV+D,cAAe,CACbC,UAAWI,IACXF,WAAYrB,MAGhB,CACE1B,GAAI,EACJ2C,MAAO9D,YAAG,gBACV+D,cAAe,CACbC,UAAWK,IACXH,WAAYtB,MAGhB,CACEzB,GAAI,EACJ2C,MAAO9D,YAAG,eACV+D,cAAe,CACbC,UAAWM,IACXJ,WAAYK,MAGhB,CACEpD,GAAI,EACJ2C,MAAO9D,YAAG,sBACV+D,cAAe,CACbC,UAAWQ,IACXN,WAAYO,MAGhB,CACEtD,GAAI,EACJ2C,MAAO9D,YAAG,YACV+D,cAAe,CACbC,UAAWU,IACXR,WAAYS,MAGhB,CACExD,GAAI,EACJ2C,MAAO9D,YAAG,cACV+D,cAAe,CACbC,UAAWY,IACXV,WAAYW,MAGhB,CACE1D,GAAI,EACJ2C,MAAO9D,YAAG,kBACV+D,cAAe,CACbC,UAAWc,IACXZ,WAAYa,MAGhBnB,GAAiB,CACfzC,GAAI,EACJ2C,MAAO9D,YAAG,UACV+D,cAAe,CACbC,UAAWgB,IACXd,WAAYc,MAGhB,CACE7D,GAAI,GACJ2C,MAAO9D,YAAG,SACV+D,cAAe,CACbC,UAAWiB,IACXf,WAAYgB,OAsClB,OAjCIxB,GACFG,EAAYsB,KAAK,CACfhE,GAAI0C,EAAYlE,OAAS,EACzBmE,MAAO9D,YAAG,UACV+D,cAAe,CACbC,UAAWoB,IACXlB,WAAYmB,OAKd1B,GACFE,EAAYsB,KAAK,CACfhE,GAAI0C,EAAYlE,OAAS,EACzBmE,MAAO9D,YAAG,UACV+D,cAAe,CACbC,UAAWsB,IACXpB,WAAYqB,OAKd9B,GACFI,EAAYsB,KAAK,CACfhE,GAAI0C,EAAYlE,OAAS,EACzBmE,MAAO9D,YAAG,YACV+D,cAAe,CACbC,UAAWwB,IACXtB,WAAYuB,OAKX5B,EAAY6B,QAAO,SAACC,GAAC,OAAKA,MAG7BC,EAAa5C,OAAOC,KAAK4C,KAEzBC,EAAe,SAACC,GAAS,OAC7B/C,OAAOgD,OAAOH,IAAWE,GAAWE,MAAYC,SAAQ,SAACC,GAAS,OAAKnD,OAAOgD,OAAOG,OAEjFC,EAAeR,EAAWM,QAAQJ,GAU3BO,EAAkB,SAACC,GAAc,OAC5CxH,MAAMyH,KAAK,IAAIC,gBAAgBF,GAAgBG,WAC5Cf,QAAO,UAAExE,IAAI,OAAKkF,EAAa/C,SAASnC,MACxCwF,KAAI,UAAExF,EAAK5B,IACV,MAAMT,GAZyB8H,EAYUzF,EAX7C0E,EAAW1C,MAAK,SAAC6C,GAAS,OAAKD,EAAaC,GAAW1C,SAASsD,OAD9B,IAACA,EAc/B,MAAO,CACL9H,OACA+H,MAAO,CAAEtH,OAAMuH,SAbY,SAACd,EAAWY,GAAW,OACxD3D,OAAOyD,QAAQZ,IAAWE,GAAWE,MAAY/C,MAAK,UAAE,CAAEiD,IAAU,OAClEnD,OAAOgD,OAAOG,GAAW9C,SAASsD,MAClC,GAOmBG,CAA2BjI,EAAMqC,SAOjD,SAAS6F,EAA6BC,EAAqBC,GAChE,MAAMC,EAAgB,GAEhBC,EAAwBF,EAAUvB,QAAO,SAAC0B,GAAC,OAAKA,EAAEC,eAAaX,KAAI,SAACU,GAAC,OAAKA,EAAEvI,QA6BlF,OA3BAmI,EAAoBM,SAAQ,SAACC,GAK3B,KAHEC,IAAmBnE,SAASkE,EAAMX,MAAMC,WACxCM,EAAsB9D,SAASkE,EAAM1I,OAIrC,YADAqI,EAAc/B,KAAKoC,GAIrB,MAEME,EAAgBP,EAAchE,MAFR,SAACkE,GAAC,OAC5BA,EAAEvI,OAAS0I,EAAM1I,MAAQuI,EAAER,MAAMC,WAAaU,EAAMX,MAAMC,YAGvDY,EAQOA,EAAcb,MAAMtH,KAAK+D,SAASkE,EAAMX,MAAMtH,OACxDmI,EAAcb,MAAMtH,KAAK6F,KAAKoC,EAAMX,MAAMtH,MAR1C4H,EAAc/B,KAAK,IACdoC,EACHX,MAAO,IACFW,EAAMX,MACTtH,KAAM,CAACiI,EAAMX,MAAMtH,YAQpB4H,EAGF,MAAMQ,EAAwB,SAACH,GAAK,QACvCA,EAAM1I,OAAS8I,MAAyBJ,EAAMX,MAAMtH,OAE3CsI,EAAkB,SAAC/I,EAAMS,GACpC,MAAMuI,EACJhJ,IAASiJ,KACTC,YAAkBzI,IAClB0I,YAAmBC,OAAuB3I,EAC5C,OAAO4I,IAAoB7E,SAAS/D,IAASuI,GAGzCM,EAAgB,UAAC,KAAEtJ,EAAM+H,OAAO,KAAEtH,EAAI,SAAEuH,KAC5C,MAAMuB,EAAkBvJ,IAASwJ,KAAqBxB,IAAayB,IAC7DC,EAAiB1J,IAAS2J,MAAoB3B,IAAayB,IAC3DG,EAAU5B,IAAa6B,IAE7B,OAAIN,GAAmBG,GAAkBE,EAChCE,IAELf,EAAgB/I,EAAMS,GACjBsJ,IAEFC,KAGHC,EAAiB,CAACC,IAAsBC,KAAsBC,MAQ9DC,EAAyB,SAACnD,EAAWa,GAAK,OAC9Cb,IAAcoD,MAPQ,SAACpD,EAAWa,GAAK,OACvCkC,EAAezF,SAAS0C,IAAcmC,IAAoB7E,SAASuD,GAOnEwC,CAAgBrD,EAAWa,IALO,SAACb,EAAWa,GAAK,OACnDb,IAAcsD,KAAqBnB,IAAoB7E,SAASuD,GAKhE0C,CAA4BvD,EAAWa,IAY5B2C,EAAqB,SAACC,GACjC,MAAMC,EAAS,IAAIC,IACbC,EAAM,IAAID,IACVE,EAAK,IAAIF,IAyBf,OAvBAF,EAAa9D,OAAOgC,GAAuBJ,SAAQ,SAACC,GAClD,MAAMsC,EAAa1B,EAAcZ,GAC3BuC,EAAWjE,IAAW0B,EAAM1I,MAAMkL,KAAWF,GACnD,IAAIG,EAEFA,EADEzC,EAAMX,MAAMC,WAAaoD,IACrBN,EACGpC,EAAMX,MAAMC,WAAayB,IAC5BsB,EAEAH,EAER,MAAMnK,EA1BS,SAACiI,GAClB,OAAI2B,EAAuB3B,EAAM1I,KAAM0I,EAAMX,MAAMtH,MAC1CiI,EAAMX,MAAMtH,KAAKiE,cAEtBgE,EAAM1I,OAASqL,IACW,QAArB3C,EAAMX,MAAMtH,KAEdiI,EAAMX,MAAMtH,KAmBJ6K,CAAW5C,GACxByC,EAAII,IAAIN,EAAUE,EAAIK,IAAIP,GAAY,CAACE,EAAIM,IAAIR,GAAWxK,GAAMiL,OAASjL,MAGvEqK,EAAIa,MACNf,EAAOW,IAAI,MAAOpH,OAAOyH,YAAYd,IAGnCC,EAAGY,MACLf,EAAOW,IAAI,KAAMpH,OAAOyH,YAAYb,IAG/B5G,OAAOyH,YAAYhB,IAGfiB,EAAqB,SAAClB,GACjC,MAAMmB,EAAenB,EAAa9D,OAAOgC,GAAuBkD,QAAO,SAACC,EAAKtD,GAAU,IAAAuD,EACrF,MAAMjB,EAAa1B,EAAcZ,GAC3BwD,EAAkE,QAA1DD,EAAGjF,IAAW0B,EAAM1I,MAAMoH,KAAWsB,EAAMX,MAAMC,iBAAS,IAAAiE,OAAA,EAAvDA,EAA0DjB,GAC3E,OAAOgB,EAAIT,IACTW,EACAF,EAAIR,IAAIU,GAAY,CAACF,EAAIP,IAAIS,GAAWxD,EAAMX,MAAMtH,MAAMiL,OAAShD,EAAMX,MAAMtH,QAEhF,IAAIoK,KAEP,OAAO1G,OAAOyH,YAAYE,IAGfK,EAAuB,SAACxB,GAAY,OAC/CA,EACG9D,QAAO,SAAC6B,GAAK,OAAKA,EAAM1I,OAAS8I,KAAwBJ,EAAMX,MAAMtH,QACrEoH,KAAI,SAACa,GAAK,OAAKA,EAAMX,MAAMtH,QAC3B2L,KAAK,WAAQ7I,GAElB,SAAS8I,EAAWrM,EAAMsM,GAAU,IAAAC,EAClC,OAAOD,SAAiB,QAATC,EAARD,EAAUE,eAAO,IAAAD,OAAA,EAAjBA,EAAmBlI,MAAK,SAACoI,GAAM,OAAKA,EAAOzM,OAASA,KAGtD,SAAS0M,EAAgCC,EAAYL,GAC1D,OAAOM,YAAQD,GAAY,SAACE,GAC1B,MAAMC,EAAaD,EAAUE,QAAQC,OAAOC,MAAM5I,MAAK,SAAC6I,GAAK,OAAKA,EAAMC,MAAQb,EAASa,OAEzFhJ,OAAOC,KAAKgJ,MAAwB3E,SAAQ,SAACzI,GAC3C,MAAMqN,EAAgBhB,EAAWrM,EAAMsM,GACvC,IAAKe,EACH,OAEF,MAAMC,EAAWF,KAAuBpN,GAItCsN,IAAaF,KAAuBG,OACpCD,IAAaF,KAAuBI,MAalCF,IAAaF,KAAuBK,OAA0BJ,EAAcC,GAC9ER,EAAWQ,GAAY,CAAEI,WAAW,KAASL,EAAcC,IAG7DR,EAAWQ,GAAYD,EAAcC,GAfnCR,EAAWQ,GAAY,IAClBD,EAAcC,GACjBL,MAAOI,EAAcC,GAAUL,MAAMpF,KAAI,SAAC8F,GAAI,MAAM,CAClDD,WAAW,KACRC,UAcXb,EAAW7H,MAAQqH,EAASrH,MAC5B6H,EAAWc,aAAetB,EAASsB,gBAIhC,SAASC,EAAmBlB,EAAYL,GAC7C,MAAMtM,EAAO8N,KACPR,EAAWF,KAAuBpN,GAExC,OAAO4M,YAAQD,GAAY,SAACE,GAAc,IAAAkB,EAAAC,EAAAC,EAAAC,EACxC,MAAMpB,EAAaD,EAAUE,QAAQC,OAAOC,MAAM5I,MAAK,SAAC6I,GAAK,OAAKA,EAAMC,MAAQb,EAASa,OAEnFE,EAAgBhB,EAAWrM,EAAMsM,GACvC,IAAKe,EACH,OAGF,MAAMc,EACkF,QADtEJ,EAC8D,QAD9DC,EAChBX,EAAcC,GAAUL,MAAMpG,QAAO,SAACuH,GAAK,OAAKA,EAAM1M,OAAS2M,cAAe,IAAAL,OAAA,EAA9EA,EAAgFlN,cAAM,IAAAiN,IAAI,EACtFO,EACoF,QADtEL,EAC8D,QAD9DC,EAClBb,EAAcC,GAAUL,MAAMpG,QAAO,SAACuH,GAAK,OAAKA,EAAM1M,OAAS6M,cAAiB,IAAAL,OAAA,EAAhFA,EAAkFpN,cAAM,IAAAmN,IAAI,EAC9FnB,EAAW0B,QAAUL,EACrBrB,EAAW2B,UAAYH,O,oCCvb3B,gBAKe,KACbhN,QAAS,CACPoN,cAAaA,CAACC,EAAMC,IACFC,YAAWD,GAEZA,OAAOD,EAAMG,KAG9BC,aAAaJ,GACJK,IAAiBC,eAAeL,OAAOD,M,4OCJpD,MAAMO,EACJC,cACElN,KAAKmN,MAAQ,IAAIvE,IAGnBwE,UACEpN,KAAKmN,MAAME,QASbC,IAAIvP,EAAMwP,GACR,MAAMC,EAAWxN,KAAKmN,MAAM3D,IAAIzL,GAClByP,GAAYA,EAASnJ,KAAKkJ,IAGtCvN,KAAKmN,MAAM7D,IAAIvL,EAAM,CAACwP,IAU1BE,KAAK1P,EAAMwP,GACT,MAAMC,EAAWxN,KAAKmN,MAAM3D,IAAIzL,IAAS,GAEnC2P,EAAcH,EAAUC,EAAS5I,QAAO,SAACC,GAAC,OAAKA,IAAM0I,KAAW,GAElEG,EAAY7O,OACdmB,KAAKmN,MAAM7D,IAAIvL,EAAM2P,GAErB1N,KAAKmN,MAAMQ,OAAO5P,GAUtB6P,MAAM7P,EAAMwP,GAAS,IAAAM,EAAA,KACnB,MAAMC,EAAc,YAAIC,GACtBF,EAAKJ,KAAK1P,EAAM+P,GAChBP,KAAWQ,IAEb/N,KAAKsN,IAAIvP,EAAM+P,GASjBE,MAAMjQ,KAASgQ,IACI/N,KAAKmN,MAAM3D,IAAIzL,IAAS,IAEhCyI,SAAQ,SAAC+G,GAChBA,KAAWQ,OAeF,eACb,OAAO,IAAId,I,uBC5FbgB,EAAOC,QAAU,EAAQ,S,gFCAoQ,G,UCe9Q,CACfrQ,MAAA,CACAsQ,WAAA,CACApQ,KAAAO,OACAL,UAAA,GAEA6H,MAAA,CACA/H,KAAA,CAAAO,OAAAH,OAAAiQ,QAAApQ,MAAAkE,QACAjE,UAAA,EACAG,QAAA,IAEAiQ,SAAA,CACAtQ,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAkQ,QAAA,CACAvQ,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAiP,MAAA,CACAtP,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,IAGAmQ,MAAA,CACAzI,MAAA0I,GACA,KAAAF,SAEA,KAAAG,UAAA,KAAAC,UAAAF,KAEAnB,MAAAmB,GACAA,GACAG,aAAAC,WAAA,KAAAT,cAIAU,UAEA,aAAAC,EAAA,MAAAhJ,GAAA,KAAAiJ,kBAEAD,IAAAE,IAAAlJ,EAAA,KAAAA,QACA,KAAAkI,MAAA,QAAAlI,IAGAzG,QAAA,CACA0P,kBACA,MAAAjJ,EAAA6I,aAAAM,QAAA,KAAAd,YAEA,UAAArI,EACA,OAAAgJ,QAAA,GAGA,IACA,OAAAA,QAAA,EAAAhJ,MAAA,KAAAoJ,YAAApJ,IACA,MAOA,OALAqJ,QAAAC,KACA,oEAAAjB,cACArI,GAGA,CAAAgJ,QAAA,KAGAL,UAAAY,GACAV,aAAAW,QAAA,KAAAnB,WAAAkB,IAEAX,UAAAW,GAUA,OATAE,IAAAF,IAAA,KAAAhB,UAEAc,QAAAC,KACA,sCACAC,EACA,oBAAAlB,qOAIA,KAAAE,SAAAgB,EAAAG,KAAAC,UAAAJ,IAEAH,YAAAG,GACA,YAAAhB,SAAAgB,EAAAG,KAAAE,MAAAL,KAGAM,SAAA,IAAAC,EAAAC,EACA,eAAAD,GAAAC,EAAA,KAAAC,cAAA1R,eAAA,IAAAwR,OAAA,EAAAA,EAAAG,KAAAF,M,YC/FI/P,EAAY,YACd,OARE6P,OAAQK,GAWV,EACA,KACA,KACA,MAIa,IAAAlQ,E,uiBCJR,MAAMmQ,EAAoB,SAACzF,GAAM,OAAKA,EAAOzM,OAASuN,MAIhD4E,EAAiB,SAAC1F,GAAM,OAAKA,EAAOzM,OAASwN,MAE7C4E,EAAoB,SAAC3F,GAAM,OAAKA,EAAOzM,OAASyN,MAEhD4E,EAAgB,SAAC5F,GAAM,OAAKA,EAAOzM,OAASsS,MAE5CC,EAA0B,SAAC9F,GAAM,OAAKA,EAAOzM,OAASwS,MAItDC,EAAuB,SAACjG,GAAO,OAC1CA,aAAO,EAAPA,EAASnI,MAAK,SAACoI,GAAM,OAAKA,EAAOzM,OAAS0S,SAE/BC,EAA8B,SAACrG,GAAQ,IAAAsG,EAAA,OACX,QAAvCA,EAAAH,EAAqBnG,aAAQ,EAARA,EAAUE,gBAAQ,IAAAoG,GAAU,QAAVA,EAAvCA,EAAyCC,gBAAQ,IAAAD,OAAA,EAAjDA,EAAmD3F,QAAS,IAUjD6F,EAAkB,SAACxG,GAAQ,OARI,SAACA,GAAQ,IAAAyG,EAAA,OACZ,QAAvCA,EAAAN,EAAqBnG,aAAQ,EAARA,EAAUE,gBAAQ,IAAAuG,GAAW,QAAXA,EAAvCA,EAAyCC,iBAAS,IAAAD,OAAA,EAAlDA,EAAoD9F,QAAS,GAQ7DgG,CAA6B3G,GAAUzE,KAAI,SAACqL,GAAQ,IAAAC,EANtBC,EAMsB,MAAM,IACrDF,EACHE,MAR4BA,EAQe,QAAtBD,EAACD,EAASG,oBAAY,IAAAF,OAAA,EAArBA,EAAuBG,SAP3CF,IAASG,IAAsBC,KAAoBC,MAA0BL,KAC1EA,GAOLM,KAAMR,EAASvR,YAGNgS,EAAgC,SAACC,GAAiB,OAC7DA,aAAiB,EAAjBA,EAAmBvP,MAAK,SAACwP,GAAgB,OAAKA,EAAiB7T,OAAS0S,SAEpEoB,EAA0B,UAAC,iBAAEC,EAAgB,SAAEC,EAAQ,IAAE7G,EAAG,QAAE8G,IAGlE,MAAQ,GAFOC,IAAIC,mBAAqB,MACvBF,EAAW,UAASD,EAAaA,4BACKD,2BAA0C5G,KAGtFiH,EAA0B,UAAC,SAAEJ,EAAQ,IAAE7G,EAAG,QAAE8G,GAAU,IAAO,MAAM,CAC9EI,OAAQP,EAAwB,CAAEC,iBAAkB,SAAUC,WAAU7G,MAAK8G,YAC7EK,QAASR,EAAwB,CAAEC,iBAAkB,UAAWC,WAAU7G,MAAK8G,YAC/EM,SAAUT,EAAwB,CAAEC,iBAAkB,WAAYC,WAAU7G,MAAK8G,cAGtEO,EAAsB,UAAC,SAAER,EAAQ,IAAE7G,EAAG,QAAE8G,GAAU,IAG7D,MAAQ,GAFOC,IAAIC,mBAAqB,MACvBF,EAAW,UAASD,EAAaA,qDAC8B7G,KAGrEsH,EAAc,SAACC,GAQ1B,MAAO,oCAAoCC,KAAKD,IAGrCE,EAAyB,SAACC,EAAGC,GACxC,OAAOD,EAAEnT,KAAKqT,cAAcC,cAAcF,EAAEpT,KAAKqT,iB,kCClFnD,sMAGO,MAAME,EAAmB,CAC9B,CACE3S,GAAI,eACJZ,KAAMkC,IACNqB,MAAO9D,YAAG,QACV+T,aAAc/T,YAAG,gDAEnB,CACEmB,GAAI,eACJZ,KAAMoC,IACNmB,MAAO9D,YAAG,UACV+T,aAAc/T,YAAG,gDAEnB,CACEmB,GAAI,YACJZ,KAAMyT,IACNlQ,MAAO9D,YAAG,OACV+T,aAAc/T,YAAG,sBAIRiU,EAAuB,CAClC,CACE9S,GAAI,eACJZ,KAAMkC,IACNqB,MAAO9D,YAAG,QACV+T,aAAc/T,YAAG,wDAEnB,CACEmB,GAAI,eACJZ,KAAM2T,IACNpQ,MAAO9D,YAAG,UACV+T,aAAc/T,YAAG,8CAEnB,CACEmB,GAAI,eACJZ,KAAMoC,IACNmB,MAAO9D,YAAG,UACV+T,aAAc/T,YAAG,wDAEnB,CACEmB,GAAI,YACJZ,KAAMyT,IACNlQ,MAAO9D,YAAG,OACV+T,aAAc/T,YAAG,8BAuBRgC,GAhBFhC,YAAG,gBAQHA,YAAG,gBAQmB,IAEpBmU,EAAyB,EAEzBC,EAAwB,2B,kCC1ErC,I,oCCA8R,ECI/Q,CACf9V,WAAA,CACA+V,YAEA7V,WAAA,CACAC,UAAAC,KAEAC,MAAA,CACAuT,aAAA,CACArT,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAoV,SAAA,CACAzV,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAqV,iBAAA,CACA1V,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAsV,mBAAA,CACA3V,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,IAGAM,SAAA,CACAiV,wBACA,YAAAvC,aAAA3O,cAAAmR,MAAA,KAAAzJ,KAAA,MAEAkH,WAAA,IAAAwC,EAEA,+BAAAJ,iBACA,OAIA,KAAAA,mBACA,QADAI,EACAtC,KAAA,KAAAoC,8BAAA,IAAAE,OAAA,EAAAA,EAAA1C,OACA,oBAGA2C,mBAAA,IAAAC,EACA,eAAAA,EAAAxC,KAAA,KAAAoC,8BAAA,IAAAI,OAAA,EAAAA,EAAAtU,MAEAuU,uBACA,YAAAN,mBAAA,KAAAI,iBAAA,M,YC9CIhU,EAAY,YACd,GHRW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAO,CAACA,EAAG,UAAU,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,qBAAqBiF,MAAO/F,EAAI2T,mBAAoBO,WAAW,qBAAqBnT,UAAU,CAAC,OAAQ,KAAQR,YAAY,oBAAoBC,MAAM,CAAC,KAAOR,EAAIsR,SAAS,MAAQtR,EAAIiU,wBAAwBjU,EAAIS,GAAG,KAAMT,EAAI+T,iBAAkB7T,EAAG,OAAO,CAACiU,MAAM,CAAE,cAAenU,EAAIyT,WAAY,CAACzT,EAAIS,GAAGT,EAAIU,GAAGV,EAAI+T,qBAAqB/T,EAAIa,MAAM,KAElc,IGSpB,EACA,KACA,KACA,MAIa,IAAAd,E,+BClBd,SAAWqU,GACR,aAEA,IAAIC,GAAa,EAEbC,EAAU,SAAUC,GAoJpB,OA3HAA,EAAWC,MAAQ,SAAUC,EAAUC,EAAgBC,GACnDJ,EAAWK,QAELD,IACFA,EAAWD,EACXA,EAAiB,MAIrB,IAAIG,EADJR,GAAa,EAab,OAVAE,EAAWO,QAAQD,GAAU,CACzBE,QAAUN,EACVO,OAAUN,EACVC,SAAUA,GAEdJ,EAAWU,KAAKJ,GAAQ,GAEnBN,EAAWW,eACZX,EAAWY,UAERN,GAWXN,EAAWa,KAAO,SAAS9U,GACvB,QAAMiU,EAAWO,QAAQxU,KAGzBiU,EAAWc,MAAM/U,UACViU,EAAWO,QAAQxU,IACnB,IAIXiU,EAAWO,QAAU,GAGrBP,EAAWK,MAAQ,WACVL,EAAWe,SAGhBf,EAAWe,QAAa,EACxBf,EAAWgB,WAAahB,EAAWS,SAEnCT,EAAWiB,QAAO,WACdjB,EAAWkB,WACXlB,EAAWgB,WAAahB,EAAWS,cAU3CT,EAAWU,KAAO,SAAU3U,EAAIoV,GAC5B,IAAIjB,EACAkB,EAAQpB,EAAWO,QAAQxU,GAE/B,GAAKiU,EAAWS,SAAW,CACvB,GAAK,OAASW,EAAMX,OAChB,OAEJP,EAAWkB,EAAMX,YAEjBP,EAAWkB,EAAMZ,QAGrB,IAAIa,EAAS,WACTD,EAAME,KAAO,IAAIC,KACjBH,EAAMhB,SAAS3E,KAAKoE,IAGxB,GAAKsB,EAAS,CACV,IACIG,EADO,IAAIC,KACEH,EAAME,KAElBpB,EAAWoB,EACZF,EAAMI,MAAQC,YAAW,WACrBL,EAAMrV,GAAK2V,YAAYL,EAAQnB,GAC/BmB,MACDnB,EAAWoB,IAEdF,EAAMrV,GAAK2V,YAAYL,EAAQnB,GAC/BmB,UAIND,EAAMrV,GAAK2V,YAAYL,EAAQnB,IAKrCF,EAAWc,MAAQ,SAAU/U,GACzB,IAAIqV,EAAQpB,EAAWO,QAAQxU,GAC/B4V,cAAcP,EAAMrV,IACpB6V,aAAaR,EAAMI,cACZJ,EAAMrV,UACNqV,EAAMI,OAIjBxB,EAAWkB,SAAW,SAAUW,GAC5B,IAAIC,EAAY9B,EAAWS,SACvBsB,EAAY/B,EAAWgB,WAE3B,GAAMc,IAAaC,IAAgBD,GAAYC,EAC3C,IAAM,IAAIC,KAAKhC,EAAWO,QACtBP,EAAWc,MAAMkB,GACjBhC,EAAWU,KAAKsB,GAAIF,IAKzB9B,GAG2BrG,EAAOC,QACzCD,EAAOC,QAAUmG,EAAQ,EAAQ,SAEjCA,EAAQF,EAAOG,YA/JtB,CAkKEH,S,kCClKH,0QAoDO,SAASoC,EAAW3B,GACzB,OAAOA,GAAU4B,IAAeA,KAQ3B,SAASC,EAAW7B,GACzB,OAAOA,GAAU4B,IAAeA,IAAeA,KAa1C,SAASE,GAAuB,KAAEhN,EAAI,OAAEiN,EAAS,EAAC,OAAEC,GAAW,IACpE,MAAMC,EAAMC,KAAKD,IAAInN,GACfqN,EAAgB,CAAEC,sBAAuBL,EAAQM,sBAAuBN,GACxEO,EAAkC,SAACC,GAAC,OAAKC,YAAaD,EAAGJ,EAAeH,IAE9E,OAAIC,EAAML,IACD,CAAC9M,EAAK2N,WAAYnY,YAAG,MAE1B2X,EAAML,KAAgB,EACjB,CAACU,GA1CetC,EA0C4BlL,EAzC9CkL,EAAS4B,MAyC6CtX,YAAG,QAE5D2X,EAAML,KAAgB,EACjB,CAACU,EAAgCX,EAAW7M,IAAQxK,YAAG,QAEzD,CAACgY,EAAgCT,EAAW/M,IAAQxK,YAAG,QA/CzD,IAAoB0V,EA4DpB,SAAS0C,EAAkB5N,EAAMiN,EAAS,EAAGC,GAClD,MAAOW,EAAWC,GAASd,EAAuB,CAAEhN,OAAMiN,SAAQC,WAElE,OAAQY,GACN,KAAKtY,YAAG,KACN,OAAOD,YAAQC,YAAG,aAAc,CAAEwK,KAAM6N,IAC1C,KAAKrY,YAAG,OACN,OAAOD,YAAQC,YAAG,eAAgB,CAAEwK,KAAM6N,IAC5C,KAAKrY,YAAG,OACN,OAAOD,YAAQC,YAAG,eAAgB,CAAEwK,KAAM6N,IAC5C,KAAKrY,YAAG,OACN,OAAOD,YAAQC,YAAG,eAAgB,CAAEwK,KAAM6N,IAC5C,QACE,MAAO,IAgBN,SAASE,EAAqB7C,EAAQ+B,EAAS,GACpD,OAAI/B,EAAS8C,IACJ9C,EAAOyC,WAEZzC,EAAS8C,KAAY,EACbvZ,QAAQyW,EAAS8C,KAAUC,QAAQhB,IAArC,IAEAxY,QAAQyW,EAAS8C,KAAY,GAAGC,QAAQhB,IAA1C,IAmBH,MAyBMiB,EAAkB,SAACC,EAAQC,GACtC,OAAID,IAAWC,EACN,EAGFhB,KAAKiB,OAAQD,EAAQD,GAAUf,KAAKD,IAAIgB,GAAW,MAuC/CG,EAAY,SAAClS,GACxB,OAAQ3H,OAAO8Z,MAAMC,SAASpS,EAAO,MAGjCqS,EAAc,WAQPlR,EAAoB,SAACnB,GAAK,OAAKqS,EAAYzF,KAAK5M,K,kCC9O7D,sGAAO,MAAMsS,EAAa,cACbC,EAAa,IAabC,EAAyB,CACpCC,UAAW,IACXC,eAAe,EACfC,cAAeL,EACfM,gBAAgB,EAChBC,WAAY,WACZC,kBAAmB,I,kCCpBrB,kCAiBO,IAAIC,EAAa,SAAoBC,EAAOC,GAKjD,OAAOD,EAAMlT,KAAI,SAAUgN,EAAGoG,GAC5B,MAAO,CAACA,EAAOpG,MACdpR,KAAK,SAAUoR,EAAGC,GACnB,OAAO7S,KAAK4S,EAAE,GAAIC,EAAE,KAAOD,EAAE,GAAKC,EAAE,IACpCoG,KAAKF,IAAYnT,KAAI,SAAUsT,GAC/B,OAAOA,EAAE,Q,kCC3Bb,I,oCCAoS,ECuBrR,CACfzZ,KAAA,oBACAjC,WAAA,CACA2b,gB,UAAAA,EACAC,kBAEA1b,WAAA,CACAC,UAAAC,KAEAC,MAAA,CACAwb,KAAA,CACAtb,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAkb,SAAA,CACAvb,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAmb,OAAA,CACAxb,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAob,OAAA,CACAzb,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAC,cAAA,CACAN,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAqb,qBAAA,CACA1b,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAsb,QAAA,CACA3b,KAAA,CAAAI,OAAA+D,QACAjE,UAAA,GAEA0b,YAAA,CACA5b,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAwb,iBAAA,CACA7b,KAAAO,OACAL,UAAA,EACAG,QAAA,OAEAyb,cAAA,CACA9b,KAAA,CAAAO,OAAAH,QACAF,UAAA,EACAG,QAAA,IAEA0b,gBAAA,CACA/b,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEAuC,SAAA,CACA5C,KAAAO,OACAL,UAAA,EACAG,QAAA,KAGAM,SAAA,CACAqb,SACA,OAAAC,YAAA,KAAAH,gBAEAI,qBACA,YAAAtZ,SAAA9B,OAAA,GAEAqb,oBAEA,YAAAL,eAGA,KAAAI,mBAFA,GAEA,KAAAN,e,YClGI7Z,EAAY,YACd,GHRW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,iBAAiB,CAACK,YAAY,gCAAgCC,MAAM,CAAC,KAAOR,EAAIuZ,SAAS,eAAevZ,EAAIga,OAAO,gBAAgBha,EAAI+Z,kBAAkB,CAAC7Z,EAAG,oBAAoB,CAACiU,MAAMnU,EAAI0Z,qBAAqBlZ,MAAM,CAAC,UAAUR,EAAIwZ,OAAO,UAAUxZ,EAAIyZ,OAAO,cAAczZ,EAAI1B,cAAc,KAAO0B,EAAI2Z,QAAQ,eAAe3Z,EAAIma,kBAAkB,oBAAoBna,EAAI6Z,iBAAiB,KAAO7Z,EAAIsZ,OAAO,CAACtZ,EAAIoa,GAAG,YAAY,GAAGpa,EAAIS,GAAG,KAAMT,EAAIka,mBAAoBha,EAAG,OAAO,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,iBAAiBP,YAAY,UAAUC,MAAM,CAAC,MAAQR,EAAI4Z,YAAY,oBAAoB5Z,EAAI6Z,iBAAiB,cAAc,8BAA8B,CAAC7Z,EAAIS,GAAG,SAAST,EAAIU,GAAGV,EAAIY,UAAU,UAAUZ,EAAIa,KAAKb,EAAIS,GAAG,KAAKT,EAAIoa,GAAG,iBAAiB,KAE3yB,IGSpB,EACA,KACA,KACA,MAIa,IAAAra,E,2CClBf,woDAsCO,MAAMsa,EAAkB,SAClBC,EAAgB,GAChBlT,EAAoB,cACpBmT,EAAwB,kBACxBC,EAAuB,iBACvBC,EAAmB,aACnBC,EAAoB,cACpBC,EAAa,OACbC,EAAc,QAGdjW,EAAsB,sBACtBC,EAAuB,uBACvBnB,EAAgB,gBAChBC,EAAiB,iBACjBH,EAAc,cACdvB,EAAe,eACf6B,EAAe,eACfC,EAAgB,gBAChBS,EAAoB,oBACpBC,EAAqB,qBACrBP,EAAqB,qBACrBC,EAAsB,sBACtBP,EAAoB,oBACpBC,EAAqB,qBACrBG,EAAiB,iBACjBC,EAAkB,kBAClBZ,EAAe,eACfE,EAAgB,gBAChBa,EAAwB,wBACxBC,EAAY,YACZC,EAAa,aACbb,EAAc,cACdzB,EAAe,eACf0C,EAAa,aACbC,EAAc,cAEdwE,EAAY,WACZ9D,EAAY,WACZ4C,EAAgB,eAChBD,EAAiB,gBACjBD,EAAqB,oBAErB+S,EAAuB,iBACvBC,EAAuB,OACvBC,EAAuB,OAEvBC,EAAO,CAClBC,aAAc9b,YAAG,WACjB+b,cAAe/b,YAAG,yBAClBgc,OAAQhc,YAAG,UACXic,YAAajc,YAAG,kBAChBkc,eAAgBlc,YAAG,MACnBmc,gBAAiBnc,YAAG,OACpBsN,UAAWtN,YAAG,aACdoc,WAAYpc,YAAG,aACfqc,oBAAqBrc,YAAG,gDACxBsc,oBAAqBtc,YAAG,0CACxBuc,aAAcvc,YAAG,iBACjBwc,0BAA2Bxc,YACzB,gFAEFyc,uBAAwBjb,YACtB,qHAEFkb,gCAAiClb,YAAI,qDACrCmb,qBAAsBnb,YAAI,8CAC1Bob,cAAe5c,YAAG,aAClB6c,gBAAiB7c,YAAG,eACpB8c,oBAAqB9c,YAAG,8BACxB+c,iCAAkC/c,YAChC,4EAEFgd,wBAAyBhd,YAAG,kDAC5Bid,kBAAmBjd,YAAG,4BACtBkd,oBAAqBld,YAAG,4BACxBmd,cAAend,YAAG,qEAClBod,4BAA6Bpd,YAAG,sBAChCqd,sBAAuBrd,YAAG,oDAC1Bsd,2BAA4Btd,YAAG,wDAC/Bud,qBAAsBvd,YAAG,0CACzBwd,qBAAsBxd,YAAG,0BACzByd,aAAczd,YAAG,8CACjB0d,YAAa1d,YAAG,iDAChB2d,SAAU3d,YAAG,yBACbqN,QAASrN,YAAG,WACZ4d,OAAQ5d,YAAG,UACX6d,aAAc7d,YAAG,gBACjB8d,UAAW9d,YAAG,QACd+d,UAAW/d,YAAG,SAGH+C,EAAgB,CAC3B,CAACkB,GAAe,WAChB,CAACE,GAAgB,gBACjB,CAACC,GAAc,cACf,CAACvB,GAAe,eAChB,CAACwB,GAAc,cACf,CAACzB,GAAe,eAChB,CAAC0B,GAAgB,YACjB,CAACC,GAAiB,iBAClB,CAACC,GAAoB,YACrB,CAACC,GAAqB,qBACtB,CAACC,GAAe,WAChB,CAACC,GAAgB,gBACjB,CAACC,GAAiB,iBAClB,CAACC,GAAkB,aACnB,CAACC,GAAqB,iBACtB,CAACC,GAAsB,sBACvB,CAACC,GApG8B,oBAqG/B,CAACC,GAAY,YACb,CAACC,GAAa,aACd,CAACE,GAAoB,oBACrB,CAACC,GAAqB,qBACtB,CAACC,GAAa,SACd,CAACC,GAAc,cACf,CAACC,GAAsB,sBACvB,CAACC,GAAuB,wBAGbyC,EAAsB,CACjC8V,IACAC,IACAC,IACAC,IACAC,KAuBWC,GAlBJre,YAAG,QAMHwB,YAAI,sBAMJA,YAAI,uBAMuB,CAClC8c,KACAC,KACAC,KACAC,OAGWC,EAA0B,CACrC,CAAEzM,KAAM,mBAAoBnO,MAAOtC,YAAI,kBAAmBoF,MAAO,SACjE,CAAEqL,KAAM,sBAAuBnO,MAAOtC,YAAI,qBAAsBoF,MAAO,YACvE,CAAEqL,KAAM,uBAAwBnO,MAAOtC,YAAI,sBAAuBoF,MAAO,aACzE,CAAEqL,KAAM,kBAAmBnO,MAAOtC,YAAI,iBAAkBoF,MAAO,SAGpDf,EAAa,CACxB,CAAC8B,KAAuB,CACtB,CAACoC,GAAY,CACX,CAAClB,GAAgB,UAEnB,CAAC5C,GAAY,CACX,MAAC7D,GAAY,CACX,CAACyG,GAAgB,YAIvB,CAACR,KAAoB,CACnB,CAAC0B,GAAY,CACX,CAAClB,GAAgB,iBACjB,CAACF,GAAqB,mBAExB,CAAC1C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,mBAEnB,CAACoB,KAAe,CACd,CAACpB,GAAgB,wBAEnB,CAACP,KAAc,CACb,CAACK,GAAqB,yBAI5B,CAACiW,MAA2B,CAC1B,CAAC7U,GAAY,CACX,CAAClB,GAAgB,MAEnB,CAAC5C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,QAIvB,CAACf,KAAsB,CACrB,CAACiC,GAAY,CACX,CAAClB,GAAgB,oBACjB,CAACD,GAAiB,cAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,sBACjB,CAACD,GAAiB,cAClB,CAACD,GAAqB,qBAExB,CAACsB,KAAe,CACd,CAACpB,GAAgB,4BAEnB,CAACP,KAAc,CACb,CAACO,GAAgB,6BAIvB,CAACG,MAAuB,CACtB,CAACe,GAAY,CACX,CAAClB,GAAgB,iBACjB,CAACD,GAAiB,uBAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,kBACjB,CAACD,GAAiB,mBAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,uBACjB,CAACD,GAAiB,0BAIxB,CAACJ,MAAmB,CAClB,CAACuB,GAAY,CACX,CAAClB,GAAgB,YACjB,CAACD,GAAiB,YAClB,CAACD,GAAqB,cAExB,CAAC1C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,eACjB,CAACD,GAAiB,eAClB,CAACD,GAAqB,cAExB,CAACsB,KAAe,CACd,CAACpB,GAAgB,qBAEnB,CAACP,KAAc,CACb,CAACK,GAAqB,sBAI5B,CAACQ,MAAkB,CACjB,CAACY,GAAY,CACX,CAAClB,GAAgB,SAEnB,CAAC5C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,UAEnB,CAACoB,KAAe,CACd,CAACpB,GAAgB,iBAIvB,CAACI,MAAqB,CACpB,CAACc,GAAY,CACX,CAAClB,GAAgB,aACjB,CAACD,GAAiB,wBAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,cACjB,CAACD,GAAiB,eAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,sBAIvB,CAACgW,MAAyB,CACxB,CAAC9U,GAAY,CACX,CAAClB,GAAgB,kBACjB,CAACD,GAAiB,mBAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,oBACjB,CAACD,GAAiB,qBAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,4BAIvB,CAACqB,KAA0B,CACzB,CAACH,GAAY,CACX,CAAClB,GAAgB,gBAEnB,CAAC5C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,kBAIvB,CAACE,KAAuB,CACtB,CAACgB,GAAY,CACX,CAAClB,GAAgB,cACjB,CAACD,GAAiB,uBAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,eACjB,CAACD,GAAiB,gBAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,oBACjB,CAACD,GAAiB,uBAIxB,CAACkW,KAAkB,CACjB,CAAC/U,GAAY,CACX,CAAClB,GAAgB,SACjB,CAACD,GAAiB,UAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,UACjB,CAACD,GAAiB,WAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,kBAIvB,CAACkW,MAAoB,CACnB,CAAChV,GAAY,CACX,CAAClB,GAAgB,SACjB,CAACD,GAAiB,UAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,SACjB,CAACD,GAAiB,UAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,iBAIvB,CAACQ,KAAoB,CACnB,CAACU,GAAY,CACX,CAAClB,GAAgB,qBACjB,CAACD,GAAiB,sBAEpB,CAAC3C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,gBACjB,CAACD,GAAiB,iBAEpB,CAACqB,KAAe,CACd,CAACpB,GAAgB,wBAIvB,CAACmW,KAAqB,CACpB,CAACjV,GAAY,CACX,CAAClB,GAAgB,gBAEnB,CAAC5C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,oBAIvB,CAACoW,MAA0B,CACzB,CAAClV,GAAY,CACX,CAAClB,GAAgB,qBAEnB,CAAC5C,GAAY,CACX,CAAC0Y,KAAc,CACb,CAAC9V,GAAgB,yBAIvB,CAACqW,KAAqB,CACpB,CAACnV,GAAY,CACX,CAAClB,GAAgB,gBACjB,CAACF,GAAqB,gBAExB,CAAC1C,GAAY,CACX,CAACyC,KAAiB,CAChB,CAACC,GAAqB,iBAExB,CAACwW,KAAkB,CACjB,CAACtW,GAAgB,oBAIvB,CAACuW,KAAoB,CACnB,CAACrV,GAAY,CACX,CAAClB,GAAgB,eACjB,CAACF,GAAqB,eAExB,CAAC1C,GAAY,CACX,CAACyC,KAAiB,CAChB,CAACC,GAAqB,gBAExB,CAACwW,KAAkB,CACjB,CAACtW,GAAgB,qB,kCCnczB,I,yMCIO,MAAPwW,EAAA,YAAA3Y,KAAA,SAAAE,GAAA,OACAA,QACA0Y,KAAAC,YAAA,+DAAA3Y,OAGe,ICT8Q,EDS9Q,CACftI,WAAA,CAAAkhB,0BACA7gB,MAAA,CACAiI,MAAA,CACA/H,KAAAI,OACAF,UAAA,IAGAS,SAAA,CACAigB,eAAA,IAAA9Q,EAAA,KACA,OAAA0Q,EAAAnc,MAAA,gBAAA0D,IAAA,OAAAA,IAAA+H,EAAA/H,UAEA8Y,aACA,YAAAD,aAAAH,OAGAnf,QAAA,CACAwf,UAAA7d,GACA,KAAAgN,MAAA,QAAAhN,KAGAud,c,YEZe,EAXC,YACd,GCRW,WAAkB,IAAIxe,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyB,CAACM,MAAM,CAAC,cAAcR,EAAI6e,WAAW,MAAQ7e,EAAI+e,SAASP,WAAW,SAAWxe,EAAI+F,OAAOiZ,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOjf,EAAI8e,UAAUG,SAEvN,IDSpB,EACA,KACA,KACA,M,4FEbF,MAAAC,EAAA,kBAAAC,SAAAC,cAAA,iBAEe,ICHwS,EDGxS,CACfthB,MAAA,CACAuhB,SAAA,CACArhB,KAAAqQ,QACAnQ,UAAA,IAGAsQ,MAAA,CACA6Q,SAAAtZ,GACA,MAAAuZ,EAAAJ,IAEAI,IACAA,EAAAC,UAAAC,OAAA,yBAAAzZ,GACAuZ,EAAAC,UAAAC,OAAA,2BAAAzZ,MAIA+I,UACA,MAAAwQ,EAAAJ,IAEAI,GACAA,EAAAC,UAAAE,IAAA,kCENe,EAXC,YACd,GCRW,WAAkB,IAAavf,EAALD,KAAYE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACK,YAAY,mCAAmC4T,MAAM,CAAE,yBAA/FlU,KAA6Hof,SAAU,2BAAvIpf,KAAuKof,UAAW7e,MAAM,CAAC,YAAY,WAAW,CAACN,EAAG,MAAM,CAACK,YAAY,8GAA8G,CAArVN,KAA0Vma,GAAG,sBAAsB,GAAnXna,KAA0XQ,GAAG,KAA7XR,KAAsYma,GAAG,kBAAkB,KAE5a,IDSpB,EACA,KACA,KACA,M,oMEdwS,ECqB3R,CACf3c,WAAA,CACAiiB,YACAC,WACAnM,WACAoM,YACAC,mBACAC,cACAC,sBACAC,sBAEAriB,WAAA,CACAC,UAAAC,KAEAoiB,OAAA,CAAAC,KACApiB,MAAA,CACAqiB,uBAAA,CACAniB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEA+hB,eAAA,CACApiB,KAAAO,OACAL,UAAA,GAEAmiB,SAAA,CACAriB,KAAAmE,OACAjE,UAAA,GAEAoiB,iBAAA,CACAtiB,KAAAO,OACAL,UAAA,EACAG,QAAA,cAEAkiB,aAAA,CACAviB,KAAAqQ,QACAnQ,UAAA,GAEAsiB,QAAA,CACAxiB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAoiB,qBAAA,CACAziB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAqiB,SAAA,CACA1iB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAsiB,gBAAA,CACA3iB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,IAGAM,SAAA,CACAiiB,aACA,OAAA3G,YAAA,KAAAoG,SAAA/f,KAEAugB,cACA,YAAAR,SAAAlV,KAEA2V,SACA,YAAAT,SAAAS,QAAA,IAEAC,iBACA,YAAAV,SAAAU,gBAEAC,mBACA,YAAAX,SAAAY,SAAA,KAAAZ,SAAAa,cAAA,KAAAb,SAAA1gB,QAEAwhB,WACA,OAAAlH,YAAA,KAAA6G,OAAAxgB,KAEA8gB,wBAAA,IAAAC,EACA,OAAAC,YAAA,QAAAD,EAAA,KAAAL,wBAAA,IAAAK,IAAA,KAEAE,YACA,YAAAlB,SAAAkB,WAAA,QAAAnB,iBAAA,KAAAC,SAAAlV,OAEAnN,OAAA,IAAAwjB,EACA,YAAAnB,SAAAriB,OAAA,QAAAwjB,EAAA,KAAAnB,SAAAhP,oBAAA,IAAAmQ,OAAA,EAAAA,EAAA9hB,KAAAgD,gBAEA2P,SAAA,IAAAoP,EAAAC,EACA,OACA,QAAAD,EAAA,KAAApB,SAAAhO,cAAA,IAAAoP,OAAA,EAAAA,EAAAxW,QACA,KAAAoV,SAAAhO,SACA,QADAqP,EACA,KAAArB,SAAA7V,eAAA,IAAAkX,GAAA,QAAAA,IAAArf,KAAA8N,YAAA,IAAAuR,OAAA,EAAAA,EAAArP,OAAApH,QACA,IAGA0W,iBACA,OAAAlS,KAAAC,UAAA,KAAA2C,OAAAxM,KAAA,SAAA4R,GAAA,OAAAwC,YAAAxC,EAAAnX,SAEAvC,YAAA,IAAA6jB,EAAAC,EACA,OACA,QAAAD,EAAA,KAAAvB,SAAAtiB,iBAAA,IAAA6jB,OAAA,EAAAA,EAAA3W,QACA,KAAAoV,SAAAtiB,YACA,QADA8jB,EACA,KAAAxB,SAAA7V,eAAA,IAAAqX,GAAA,QAAAA,IAAAxf,KAAA6N,YAAA,IAAA2R,OAAA,EAAAA,EAAA9jB,UAAAkN,QACA,IAGA6W,YACA,YAAApV,cAAA,KAAA2T,SAAAyB,YAEAC,YACA,QAAAngB,IAAAogB,KAAAxf,SAAA,KAAA6d,SAAA1e,QAEAsgB,WACA,OAAAngB,IAAAogB,KAAA1f,SAAA,KAAA6d,SAAA1e,QAEAwgB,YACA,YAAAF,UAAA,KAAA5B,SAAA+B,SACA,KAAA/B,SAAA+B,SACA,KAAA/B,SAAAgC,WAEAC,qBACA,YAAAL,UAAA,KAAA5B,SAAA+B,SACAljB,YAAAC,YAAA,sBACAojB,QAAA,KAAA7V,cAAA,KAAA2T,SAAA+B,YAGA,KAAA/B,SAAAgC,YAAA,KAAAhC,SAAAyB,UACA5iB,YAAAC,YAAA,uBACAqjB,QAAA,KAAA9V,cAAA,KAAA2T,SAAAgC,kBAFA,GAOAI,qBACA,YAAArB,sBACA,CACAsB,OAAA,UAGA,IAEAC,aACA,qBAAAC,EAAA,MAAAxjB,GAAA,KAAAihB,SAAAwC,sBAAA,GACA,GAAAzjB,EAIA,OAAAF,YACAwf,YACA,yDACA,0DACAtf,GAEA,CAAAwjB,iBAAAxjB,WAGA0jB,aAAA,IAAAC,EACA,eAAAA,EAAA,KAAA1C,SAAA2C,4BAAA,IAAAD,IAAA,KAAA1C,SAAA4C,gBAEAC,kBACA,4BAAAJ,YAEAK,mBACA,OAAA9U,QACA,KAAA+U,gBAAA,WACA,KAAAA,gBAAA,eACA,KAAAF,iBACA,KAAA7C,SAAAtiB,YAGAslB,oBACA,OAAAC,YAAA,KAAAtC,iBAAA,UAEAuC,qBACA,YAAAC,gBAAA,KAAAvB,SACA,SAGA,QAEAuB,iBAEA,4BAAAnD,SAAAoD,aAGAnkB,QAAA,CACA8jB,gBAAAM,GAEA,OAAArV,QAAA,KAAAsV,OAAAD,KAEAE,YAAAnM,GAAA,IAAAoM,EAIA,OAFA,KAAA1D,yBACA,QADA0D,EACA,KAAAxD,SAAA7V,eAAA,IAAAqZ,GAAA,QAAAA,IAAAxhB,KAAA8N,YAAA,IAAA0T,OAAA,EAAAA,EAAAC,sBACAC,YAAAtM,IAEAuM,WAAAvM,GACAA,EAAAxU,OAAAwU,EAAA/X,KAEAukB,YAAAxM,GACA,MAAA1R,EAAAme,mBAAA,KAAAF,WAAAvM,IACA,eAAA6I,sBAAAva,KAOAoe,yBACA,YAAAC,MAAAC,WACA,KAAAD,MAAAC,WAAAC,IAEA,IAEAC,wBAAApL,GACAA,EAAAqL,SAAArL,EAAAsL,UAAA,KAAA9D,kBAGAxH,EAAAuL,iBACA,KAAAzW,MAAA,mBAAA9C,IAAA,KAAA0V,YAAAlhB,OAAA,KAAAqhB,uBC9Ne,EAXC,YACd,GCRW,WAAkB,IAAIhhB,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,KAAK,CAACK,YAAY,kCAAkC4T,MAAM,CAAEgH,OAAQnb,EAAIqgB,SAAS+B,SAAU,gBAAiBpiB,EAAI0gB,UAAWlgB,MAAM,CAAC,GAAM,YAAWR,EAAI4gB,WAAa,cAAc5gB,EAAI2hB,eAAe,mBAAmB3hB,EAAI4gB,WAAW,cAAc,0BAA0B,CAAE5gB,EAAIugB,aAAcrgB,EAAG,mBAAmB,CAACK,YAAY,sBAAsBC,MAAM,CAAC,QAAUR,EAAIwgB,QAAQ,UAAUxgB,EAAI4gB,WAAW,WAAW5gB,EAAI6gB,YAAY,YAAY7gB,EAAIhC,MAAMghB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,gBAAiBgR,MAAW,CAAC/e,EAAG,OAAO,CAACK,YAAY,cAAc,CAACP,EAAIS,GAAGT,EAAIU,GAAGV,EAAIqgB,SAASpd,YAAYjD,EAAIa,KAAKb,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACK,YAAY,sBAAsB,CAACL,EAAG,MAAM,CAACK,YAAY,oBAAoBC,MAAM,CAAC,cAAc,mBAAmB,CAAER,EAAIygB,qBAAsBvgB,EAAG,sBAAsB,CAACK,YAAY,UAAUC,MAAM,CAAC,iBAAiBR,EAAIhC,KAAK,wBAAwB,MAAMgC,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAIqgB,SAASzU,aAAc1L,EAAG,UAAU,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,iBAAiBN,MAAM,CAAC,KAAO,YAAY,MAAQR,EAAIb,GAAG,gBAAgB,aAAaa,EAAIb,GAAG,mBAAmBa,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAIqgB,SAASrL,OAAQ9U,EAAG,UAAU,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,iBAAiBN,MAAM,CAAC,KAAO,OAAO,MAAQR,EAAIb,GAAG,4DAA4D,aAAaa,EAAIb,GAAG,aAAaa,EAAIa,KAAKb,EAAIS,GAAG,KAAKP,EAAG,UAAUF,EAAI2kB,GAAG,CAACpkB,YAAY,mBAAmBC,MAAM,CAAC,IAAM,OAAO,KAAOR,EAAIghB,iBAAiB,cAAc,uBAAuBhC,GAAG,CAAC,MAAQhf,EAAIukB,0BAA0B,UAAUvkB,EAAIyiB,oBAAmB,GAAO,CAACziB,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIqgB,SAASpd,OAAO,cAAejD,EAAIohB,sBAAuBlhB,EAAG,UAAU,CAACK,YAAY,UAAUC,MAAM,CAAC,KAAO,mBAAmBR,EAAIa,MAAM,GAAGb,EAAIS,GAAG,KAAMT,EAAI2iB,WAAYziB,EAAG,OAAO,CAACK,YAAY,6EAA6EC,MAAM,CAAC,cAAc,gBAAgB,CAACR,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAI2iB,YAAY,cAAc3iB,EAAIa,MAAM,GAAGb,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAAEP,EAAIojB,gBAAgB,aAAcpjB,EAAIoa,GAAG,aAAala,EAAG,OAAO,CAACK,YAAY,qBAAqBC,MAAM,CAAC,cAAc,uBAAuB,CAACR,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIuhB,WAAW,cAAcvhB,EAAIS,GAAG,KAAKP,EAAG,OAAO,CAACK,YAAY,wCAAwC,CAACL,EAAG,OAAO,CAACM,MAAM,CAAC,cAAc,SAAS,CAACR,EAAIS,GAAG,OAAOT,EAAIS,GAAG,KAAKP,EAAG,OAAO,CAACK,YAAY,6BAA6B,CAAEP,EAAI8gB,OAAOphB,KAAMQ,EAAG,aAAa,CAACM,MAAM,CAAC,QAAUR,EAAIb,GAAG,oCAAoCylB,YAAY5kB,EAAI6kB,GAAG,CAAC,CAACxkB,IAAI,UAAUykB,GAAG,WAAW,MAAO,CAAC5kB,EAAG,OAAO,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,sBAAsBC,UAAU,CAAC,QAAS,KAAQP,MAAM,CAAC,MAAQR,EAAI+M,aAAa/M,EAAIqgB,SAASyB,WAAW,cAAc,wBAAwB,CAAC9hB,EAAIS,GAAG,qBAAqBT,EAAIU,GAAGV,EAAI8hB,WAAW,wBAAwBiD,OAAM,GAAM,CAAC1kB,IAAI,SAASykB,GAAG,WAAW,MAAO,CAAE9kB,EAAI+gB,eAAgB7gB,EAAG,OAAO,CAACM,MAAM,CAAC,cAAc,oBAAoB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAI+gB,gBAAgB,IAAI/gB,EAAIU,GAAGV,EAAIb,GAAG,WAAWa,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAIojB,gBAAgB,UAAWpjB,EAAIoa,GAAG,UAAUla,EAAG,UAAU,CAACK,YAAY,wDAAwDC,MAAM,CAAC,eAAeR,EAAImhB,SAAS,gBAAgBnhB,EAAI8gB,OAAOlgB,SAAS,YAAYZ,EAAI8gB,OAAOphB,KAAK,kBAAkBM,EAAI8gB,OAAOjhB,UAAU,KAAOG,EAAI8gB,OAAOnhB,OAAO,cAAc,oBAAoB,CAACO,EAAG,OAAO,CAACK,YAAY,UAAU,CAACP,EAAIS,GAAGT,EAAIU,GAAGV,EAAI8gB,OAAOphB,aAAaqlB,OAAM,IAAO,MAAK,KAAQ7kB,EAAG,aAAa,CAACM,MAAM,CAAC,QAAUR,EAAIb,GAAG,uBAAuBylB,YAAY5kB,EAAI6kB,GAAG,CAAC,CAACxkB,IAAI,UAAUykB,GAAG,WAAW,MAAO,CAAC5kB,EAAG,OAAO,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,sBAAsBC,UAAU,CAAC,QAAS,KAAQP,MAAM,CAAC,MAAQR,EAAI+M,aAAa/M,EAAIqgB,SAASyB,WAAW,cAAc,wBAAwB,CAAC9hB,EAAIS,GAAG,qBAAqBT,EAAIU,GAAGV,EAAI8hB,WAAW,wBAAwBiD,OAAM,QAAW,GAAG/kB,EAAIS,GAAG,KAAKT,EAAIoa,GAAG,cAAc,GAAGpa,EAAIS,GAAG,KAAMT,EAAIqS,OAAOvT,OAAQoB,EAAG,IAAI,CAACK,YAAY,wDAAwDC,MAAM,CAAC,KAAO,QAAQ,aAAaR,EAAIb,GAAG,YAAYa,EAAII,GAAIJ,EAAIqS,QAAQ,SAASoF,EAAMwB,GAAO,OAAO/Y,EAAG,WAAW,CAACG,IAAI4Y,EAAMzY,MAAM,CAAC,mBAAmBiX,EAAMuN,MAAM,MAAQhlB,EAAIgkB,WAAWvM,GAAO,YAAcA,EAAMwN,YAAY,OAASjlB,EAAI4jB,YAAYnM,GAAO,OAASzX,EAAIikB,YAAYxM,GAAO,KAAO,WAAU,GAAGzX,EAAIa,MAAM,KAAKb,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAAEP,EAAImjB,iBAAkBjjB,EAAG,KAAK,CAACK,YAAY,YAAY,CAAEP,EAAI2jB,OAAOuB,OAAQhlB,EAAG,KAAK,CAACM,MAAM,CAAC,cAAc,oBAAoB,CAAER,EAAI+hB,UAAW7hB,EAAG,WAAW,CAACM,MAAM,CAAC,KAAO,KAAK,QAAUR,EAAIujB,qBAAqB,CAACvjB,EAAIoa,GAAG,WAAW,GAAGpa,EAAIoa,GAAG,WAAW,GAAGpa,EAAIa,KAAKb,EAAIS,GAAG,KAAKT,EAAIoa,GAAG,mBAAmBpa,EAAIS,GAAG,KAAMT,EAAIjC,UAAUe,OAAQoB,EAAG,KAAK,CAACA,EAAG,qBAAqB,CAACK,YAAY,wCAAwCC,MAAM,CAAC,UAAYR,EAAIjC,UAAU,YAAY,GAAG,cAAc,EAAE,kBAAkB,eAAe,GAAGiC,EAAIa,KAAKb,EAAIS,GAAG,KAAKT,EAAIoa,GAAG,cAAcpa,EAAIS,GAAG,KAAMT,EAAIkjB,gBAAiBhjB,EAAG,KAAK,CAACK,YAAY,sCAAsCC,MAAM,CAAC,cAAc,sBAAsB,CAACN,EAAG,UAAU,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,mBAAmBC,UAAU,CAAC,KAAM,KAAQR,YAAY,kBAAkB4T,MAAM,CAAE,eAAgBnU,EAAI8iB,YAAatiB,MAAM,CAAC,MAAQR,EAAIb,GAAG,YAAY,KAAOa,EAAIqjB,oBAAoB,CAACnjB,EAAG,UAAU,CAACM,MAAM,CAAC,KAAO,cAAcR,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAI8iB,YAAY,eAAe,IAAI,GAAG9iB,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACvC,WAAW,CAAC,CAAC+B,KAAK,aAAaoB,QAAQ,sBAAsBC,UAAU,CAAC,QAAS,KAAQR,YAAY,8DAA8DC,MAAM,CAAC,MAAQR,EAAI+M,aAAa/M,EAAImiB,WAAW,cAAc,uBAAuB,CAACniB,EAAIS,GAAG,WAAWT,EAAIU,GAAGV,EAAIsiB,oBAAoB,eAAe,KAE1vL,IDSpB,EACA,KACA,KACA,M,4CEdwS,ECK3R,CACf7kB,WAAA,CACA0nB,WACAC,UACA1F,aAEA5hB,MAAA,CACAunB,KAAA,CACArnB,KAAAC,MACAC,UAAA,GAEAonB,UAAA,CACAtnB,KAAAmE,OACAjE,UAAA,EACAG,QAAA,MAEAknB,WAAA,CACAvnB,KAAAO,OACAL,UAAA,GAEAsnB,eAAA,CACAxnB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,IAGAiB,QAAA,CACAmmB,YAAAC,GACA,OAAAA,IAAA,KAAAH,YAEAI,kBAAAC,GACA,OAAAxnB,OAAAynB,UAAA,KAAAP,UAAAM,EAAAlmB,QAEA2X,aAAAjY,GACA,YAAAomB,eAAA9N,YAAAtY,GAAAiY,YAAAjY,MCrBe,EAXC,YACd,GCRW,WAAkB,IAAIY,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACK,YAAY,YAAY,CAACL,EAAG,UAAU,CAACK,YAAY,uFAAuFC,MAAM,CAAC,YAAY,kBAAkBR,EAAII,GAAIJ,EAAIqlB,MAAM,SAASO,GAAK,OAAO1lB,EAAG,SAAS,CAACG,IAAIulB,EAAItlB,GAAGE,MAAM,CAAC,OAASR,EAAIylB,YAAYG,EAAIlmB,OAAOsf,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,QAAS2X,EAAIlmB,QAAQklB,YAAY5kB,EAAI6kB,GAAG,CAAC,CAACxkB,IAAI,QAAQykB,GAAG,WAAW,MAAO,CAAC5kB,EAAG,OAAO,CAACM,MAAM,CAAC,MAAQolB,EAAI1S,aAAa,cAAiB0S,EAAIlmB,KAAN,mBAA6B,CAACM,EAAIS,GAAG,eAAeT,EAAIU,GAAGklB,EAAI3iB,OAAO,gBAAgBjD,EAAIS,GAAG,KAAMT,EAAIslB,WAAatlB,EAAI2lB,kBAAkBC,GAAM1lB,EAAG,WAAW,CAACK,YAAY,uBAAuBC,MAAM,CAAC,QAAU,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAIqX,aAAarX,EAAIslB,UAAUM,EAAIlmB,QAAQ,gBAAgBM,EAAIa,OAAOkkB,OAAM,IAAO,MAAK,QAAU,GAAG/kB,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACK,YAAY,gBAAgB,CAACP,EAAIoa,GAAG,gBAAgB,IAAI,KAE97B,IDSpB,EACA,KACA,KACA,M,QEGa,EAXC,YALH,ICDA,WAA+C,OAAOla,EAA5BD,KAAYE,MAAMD,IAAa,SAEhD,IDQpB,EACA,KACA,KACA,M,QEMF,MAAA4lB,EAAA,0DAEe,ICrBgS,EDqBhS,CACfC,uBAAA,CACAvN,UAAA,IACAC,eAAA,EACAG,WAAA,uBACAoN,IAAA,KACAjQ,MAAAuC,IACA2N,kBAAA,GAEAxoB,WAAA,CACAyoB,YACAxG,YACAyG,uBACAC,qBACAC,eACAC,sBACAC,eACAC,eACAC,0BACAC,iBACAZ,eACAa,mBACAC,sBAEA3G,OAAA,CAAA4G,eACA/oB,MAAA,CACAgpB,UAAA,CACA9oB,KAAAO,OACAL,UAAA,GAEA6oB,yBAAA,CACA/oB,KAAAO,OACAL,UAAA,GAEA8oB,uBAAA,CACAhpB,KAAAO,OACAL,UAAA,EACAG,QAAAc,YAAA,8BAEA8nB,aAAA,CACAjpB,KAAAC,MACAC,UAAA,GAEA8E,YAAA,CACAhF,KAAAC,MACAC,UAAA,GAEAgpB,UAAA,CACAlpB,KAAAmE,OACAjE,UAAA,EACAG,QAAA,sBAEA8oB,mBAAA,CACAnpB,KAAAC,MACAC,UAAA,EACAG,QAAA,sBAEA+oB,cAAA,CACAppB,KAAAO,OACAL,UAAA,EACAG,QAAA,gBAEAgpB,UAAA,CACArpB,KAAAC,MACAC,UAAA,GAEAmnB,KAAA,CACArnB,KAAAC,MACAC,UAAA,GAEAonB,UAAA,CACAtnB,KAAAmE,OACAjE,UAAA,EACAG,QAAA,MAEAmnB,eAAA,CACAxnB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAknB,WAAA,CACAvnB,KAAAO,OACAL,UAAA,GAEAkiB,eAAA,CACApiB,KAAAO,OACAL,UAAA,EACAG,QAAA,KAEAipB,iBAAA,CACAtpB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAkpB,uBAAA,CACAvpB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAmpB,oBAAA,CACAxpB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAopB,gBAAA,CACAzpB,KAAAI,OACAF,UAAA,EACAG,QAAA,IAEAqpB,WAAA,CACA1pB,KAAAI,OACAF,UAAA,EACAG,QAAA,GAEAspB,YAAA,CACA3pB,KAAAI,OACAF,UAAA,EACAG,QAAA,GAEAupB,aAAA,CACA5pB,KAAAI,OACAF,UAAA,EACAG,QAAA,GAEAwpB,SAAA,CACA7pB,KAAAI,OACAF,UAAA,EACAG,QAAA,GAEA8hB,uBAAA,CACAniB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAiiB,iBAAA,CACAtiB,KAAAO,OACAL,UAAA,EACAG,aAAAkD,GAEAumB,iBAAA,CACA9pB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEA0pB,oBAAA,CACA/pB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEA2pB,YAAA,CACAhqB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEA4pB,gBAAA,CACAjqB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEA6pB,MAAA,CACAlqB,KAAAO,OACAL,UAAA,EACAG,QAAA,IAEA8pB,kBAAA,CACAnqB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEA+pB,+BAAA,CACApqB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAgqB,2BAAA,CACArqB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAoiB,qBAAA,CACAziB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAiqB,WAAA,CACAtqB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,GAEAkqB,eAAA,CACAvqB,KAAAmE,OACAjE,UAAA,EACAG,QAAA,MAEAsiB,gBAAA,CACA3iB,KAAAqQ,QACAnQ,UAAA,EACAG,SAAA,IAGAI,UACA,CACA+pB,iBAAA,KAGA7pB,SAAA,CACA8pB,oBACA,iBAAAf,EAAA,gBAAAD,EAAA,YAAAE,GAAA,KACAe,EAAA3R,KAAA4R,KAAAjB,EAAAD,GAEA,OAAAiB,EACAf,EAAAe,EACAjB,EACAC,EAAAD,KAEAnU,KAEAsV,sBACA,YAAAC,kBAAA/pB,SAAA,KAAAuoB,UAAAvoB,QAKA+pB,oBAAA,IAAA/a,EAAA,KACA,OAAA3L,OAAAC,KAAA,KAAAomB,kBAAAze,QAAA,SAAAC,EAAA4W,GAIA,OAHA9S,EAAA0a,iBAAA5H,GAAAJ,SACAxW,EAAA1F,KAAAwJ,EAAA0a,iBAAA5H,GAAAP,UAEArW,IACA,KAEA8e,mBACA,YAAAhB,iBAAAhC,EAAA,MAEAiD,yBAAA,IAAAC,EACA,OAAA3a,QAAA,QAAA2a,EAAA,KAAAC,kBAAA,IAAAD,OAAA,EAAAA,EAAAE,kBAGA1a,MAAA,CACA6Y,UAAA8B,GAAA,IAAAC,EAAA,KACA,KAAAZ,iBAAAW,EAAApf,QAAA,SAAAC,EAAAqW,GACA,MAAA/f,EAAA8oB,EAAAxI,WAAAP,GAaA,OAZArW,EAAA1J,GAAA,CAIAkgB,QACA,kBAAA4I,EAAAZ,iBAAAloB,IAEA8oB,EAAAZ,iBAAAloB,GAAAkgB,QAGAH,YAEArW,IACA,KAEAkd,UAAA,CACAmC,MAAA,EACAC,WAAA,EACA9b,QAAA5E,GACAzG,OAAAC,KAAAwG,GAAA9J,QACAyqB,YAAA,CACAC,IAAAC,YAAA7gB,EAAAwL,OAAAsV,SAAAhY,MAAA,SACAzO,MAAAkc,SAAAlc,MACA0mB,SAAA,OAMArqB,QAAA,CACAshB,WAAAP,GACApG,YAAAoG,EAAA/f,KAAA+f,EAAAlV,KAAAye,MAEAC,gBAAAxJ,GAAA,IAAAyJ,EACA,eAAAA,EAAA,KAAAtB,iBAAA,KAAA5H,WAAAP,WAAA,IAAAyJ,OAAA,EAAAA,EAAAtJ,SAEAuJ,2BAAA1J,EAAAta,GACA,KAAAyiB,iBAAA,KAAA5H,WAAAP,IAAAG,QAAAza,EACA,KAAAkI,MAAA,2BACA+b,IAAA/b,MAAA,4BAAAoS,EAAAta,IAEAkkB,+BAAAlkB,GAAA,IAAAmkB,EAAA,KACA/nB,OAAAC,KAAA,KAAAomB,kBAAA/hB,SAAA,SAAAma,GACAsJ,EAAA1B,iBAAA5H,GAAAJ,QAAAza,KAEA,KAAAkI,MAAA,4BAEAkc,0BAAA,SAAAC,EAAA,SAAAC,IACA,KAAApc,MAAA,WAAAmc,WAAAC,cAEAC,qBAAAC,GACA,KAAAtc,MAAA,mBAAAsc,IAEAC,iBAAAnK,GAAA,IAAAoK,EACA,OAAApc,QAAAgS,EAAAlV,OAAA,QAAAsf,EAAA,KAAAlC,sBAAA,IAAAkC,OAAA,EAAAA,EAAAtf,QAGAoI,2BEzTI,EAAY,YACd,GrBRW,WAAkB,IAAIvT,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACK,YAAY,2BAA2B,CAACL,EAAG,gBAAgB,CAACM,MAAM,CAAC,KAAOR,EAAIqlB,KAAK,aAAarlB,EAAIslB,UAAU,cAActlB,EAAIulB,WAAW,kBAAkBvlB,EAAIwlB,gBAAgBxG,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,YAAagR,KAAU2F,YAAY5kB,EAAI6kB,GAAG,CAAC,CAACxkB,IAAI,cAAcykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,iBAAiB2K,OAAM,IAAO,MAAK,KAAQ/kB,EAAIS,GAAG,KAAKP,EAAG,sBAAsB,CAACK,YAAY,oDAAoDC,MAAM,CAAC,UAAYR,EAAI8mB,UAAU,8BAA8B9mB,EAAI+mB,yBAAyB,2BAA2B/mB,EAAIgnB,uBAAuB,OAAShnB,EAAIinB,aAAa,eAAejnB,EAAIgD,YAAY,uBAAuBhD,EAAImnB,mBAAmB,kBAAkBnnB,EAAIonB,cAAc,uBAAuBpnB,EAAImoB,kBAAkB,gBAAgBnoB,EAAIwnB,oBAAoB,mBAAmBxnB,EAAI4oB,oBAAoB,qBAAqB5oB,EAAIooB,+BAA+B,kBAAkB,GAAG,cAAc,6BAA6BpJ,GAAG,CAAC,gBAAgBhf,EAAIiqB,+BAA+B,SAAW,SAAShL,GAAQ,OAAOjf,EAAIiO,MAAM,SAAUgR,IAAS,OAAS,SAASA,GAAQ,OAAOjf,EAAIiO,MAAM,OAAQgR,OAAYjf,EAAIS,GAAG,KAAMT,EAAIkoB,MAAOhoB,EAAG,WAAW,CAACM,MAAM,CAAC,QAAU,UAAUwe,GAAG,CAAC,QAAU,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,oBAAoB,CAACjO,EAAIS,GAAGT,EAAIU,GAAGV,EAAIkoB,UAAUloB,EAAIa,KAAKb,EAAIS,GAAG,KAAKP,EAAG,6BAA6B,CAACM,MAAM,CAAC,SAAWR,EAAIwnB,qBAAqB5C,YAAY5kB,EAAI6kB,GAAG,CAAC,CAACxkB,IAAI,oBAAoBykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,oBAAoB,KAAK,CAAC,iBAAmBpa,EAAI6oB,sBAAsB9D,OAAM,GAAM,CAAC1kB,IAAI,gBAAgBykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,gBAAgB,KAAK,CAAC,iBAAmBpa,EAAI6oB,sBAAsB9D,OAAM,IAAO,MAAK,KAAQ/kB,EAAIS,GAAG,KAAKT,EAAIoa,GAAG,aAAapa,EAAIS,GAAG,KAAMT,EAAIsnB,iBAAkBpnB,EAAG,KAAK,CAACK,YAAY,gBAAgBP,EAAII,GAAIJ,EAAIyoB,mBAAmB,SAASrR,GAAG,OAAOlX,EAAG,KAAK,CAACG,IAAI+W,EAAE7W,YAAY,2BAA2B,CAACL,EAAG,uBAAuB,MAAK,GAAG,CAAEF,EAAIqnB,UAAUvoB,OAAS,IAAMkB,EAAIsoB,WAAYpoB,EAAGF,EAAI8oB,iBAAiB9oB,EAAI2kB,GAAG,CAACqB,IAAI,YAAYzlB,YAAY,yCAAyC4T,MAAM,CAAE,kBAAmBnU,EAAI8nB,kBAAmB9I,GAAG,CAAC,OAAShf,EAAImqB,2BAA2B,YAAYnqB,EAAI+e,SAASgH,wBAAuB,GAAO/lB,EAAII,GAAIJ,EAAIqnB,WAAW,SAAShH,GAAU,OAAOngB,EAAG,gBAAgB,CAACG,IAAIL,EAAI4gB,WAAWP,GAAUlM,MAAM,CAAE,iBAAkBnU,EAAI8nB,kBAAmBtnB,MAAM,CAAC,cAAc,qBAAqB,yBAAyB6f,EAASpd,MAAM,4BAA4BjD,EAAImgB,uBAAuB,kBAAkBngB,EAAIogB,eAAe,SAAWC,EAAS,qBAAqBrgB,EAAIsgB,iBAAiB,gBAAgBtgB,EAAIwnB,oBAAoB,QAAUxnB,EAAI6pB,gBAAgBxJ,GAAU,2BAA2BrgB,EAAIygB,qBAAqB,mBAAmBzgB,EAAI2gB,gBAAgB,YAAY3gB,EAAIwqB,iBAAiBnK,IAAWrB,GAAG,CAAC,gBAAgB,SAASC,GAAQ,OAAOjf,EAAI+pB,2BAA2B1J,EAAUpB,IAAS,kBAAkB,SAASA,GAAQ,OAAOjf,EAAIiO,MAAM,kBAAmBgR,KAAU2F,YAAY5kB,EAAI6kB,GAAG,CAAC,CAACxkB,IAAI,YAAYykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,YAAY,KAAK,CAAC,SAAWiG,MAAa0E,OAAM,GAAM,CAAC1kB,IAAI,SAASykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,SAAS,KAAK,CAAC,OAASiG,EAASS,WAAWiE,OAAM,GAAM,CAAC1kB,IAAI,YAAYykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,YAAY,KAAK,CAAC,SAAWiG,MAAa0E,OAAM,GAAM,CAAC1kB,IAAI,SAASykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,SAAS,KAAK,CAAC,SAAWiG,MAAa0E,OAAM,GAAM,CAAC1kB,IAAI,aAAaykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,aAAa,KAAK,CAAC,SAAWiG,MAAa0E,OAAM,GAAM,CAAC1kB,IAAI,kBAAkBykB,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAG,kBAAkB,KAAK,CAAC,SAAWiG,MAAa0E,OAAM,IAAO,MAAK,QAAU,GAAI/kB,EAAIqnB,UAAUvoB,OAAS,GAAKkB,EAAIsoB,WAAYpoB,EAAG,MAAM,CAACA,EAAG,kBAAkB,GAAGF,EAAIoa,GAAG,gBAAgBpa,EAAIS,GAAG,KAAKP,EAAG,MAAM,CAACK,YAAY,sGAAsG,CAAEP,EAAIunB,wBAA0BvnB,EAAI+nB,oBAAqB7nB,EAAG,uBAAuB,CAACM,MAAM,CAAC,gBAAgBR,EAAIgoB,YAAY,oBAAoBhoB,EAAIioB,iBAAiBjJ,GAAG,CAAC,KAAO,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,cAAc,KAAO,SAASgR,GAAQ,OAAOjf,EAAIiO,MAAM,qBAAsBjO,EAAIunB,uBAAwBrnB,EAAG,gBAAgB,CAACK,YAAY,wBAAwBC,MAAM,CAAC,WAAWR,EAAIynB,gBAAgB,cAAcznB,EAAI0nB,WAAW,MAAQ1nB,EAAI2nB,YAAY,YAAY3nB,EAAI4nB,aAAa,YAAY5nB,EAAI6nB,SAAS,MAAQ,UAAU7I,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,cAAegR,OAAYjf,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAIqoB,2BAA4BnoB,EAAG,qBAAqB,CAACM,MAAM,CAAC,MAAQR,EAAIynB,gBAAgB,cAAcznB,EAAI+e,SAASxL,uBAAuByL,GAAG,CAAC,MAAQhf,EAAIsqB,uBAAuB,CAACpqB,EAAG,qBAAqB,CAACK,YAAY,wCAAwCC,MAAM,CAAC,MAAQR,EAAIynB,iBAAiBzI,GAAG,CAAC,MAAQhf,EAAIsqB,yBAAyB,GAAGtqB,EAAIa,MAAM,IAAI,KAEv2J,IqBSpB,EACA,KACA,KACA,MAIa,M,2CClBf,6DAmHA,MAAM6pB,EA9GO,CACXhrB,KAAM,qBACNjC,WAAY,CACVktB,cAAA,IACAC,SAAA,IACApX,OAAA,KAEFqX,cAAc,EACd/sB,MAAO,CASLmqB,gBAAiB,CACfjqB,KAAMqQ,QACNnQ,UAAU,EACVG,SAAS,GAKX2pB,YAAa,CACXhqB,KAAMqQ,QACNnQ,UAAU,EACVG,SAAS,GAMXysB,YAAa,CACX9sB,KAAMO,OACNL,UAAU,EACVG,QAAS,MAMX0sB,UAAW,CACT/sB,KAAMO,OACNL,UAAU,EACVG,QAAS,MAMX2sB,SAAU,CACRhtB,KAAMO,OACNL,UAAU,EACVG,QAAS,QAMX4sB,eAAgB,CACdjtB,KAAMO,OACNL,UAAU,EACVG,QAAS,MAMX6sB,gBAAiB,CACfltB,KAAMO,OACNL,UAAU,EACVG,QAAS,cAMX8sB,SAAU,CACRntB,KAAMO,OACNL,UAAU,EACVG,QAAS,QAMX+sB,eAAgB,CACdptB,KAAMO,OACNL,UAAU,EACVG,QAAS,MAKXgtB,SAAU,CACRrtB,KAAMqQ,QACNnQ,UAAU,EACVG,SAAS,IAGbM,SAAU,CACR,YACE,OAAOsB,KAAKgoB,iBAAmBhoB,KAAK+nB,eAaxC,MAeMsD,EAAoB,IACxB,CAAE1b,OApBe,WAAa,IAAI5P,EAAIC,KAASsrB,EAAGvrB,EAAIwrB,eAAmBtrB,EAAGF,EAAIG,MAAMD,IAAIqrB,EAAG,OAAQvrB,EAAa,UAAEE,EAAG,MAAM,CAACK,YAAY,gBAAgBC,MAAM,CAAC,aAAaR,EAAIkrB,kBAAkB,CAAChrB,EAAG,kBAAkBF,EAAIyrB,GAAGzrB,EAAI2kB,GAAG,CAACpkB,YAAY,wBAAwB,kBAAkBP,EAAI0rB,QAAO,GAAO1rB,EAAI2rB,YAAY,CAACzrB,EAAG,YAAY,CAACM,MAAM,CAAC,KAAOR,EAAIirB,eAAe,SAAWjrB,EAAIqrB,WAAarrB,EAAIioB,gBAAgB,cAAc,cAAcjJ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,OAAQjO,EAAI8qB,gBAAgB,CAAC9qB,EAAIoa,GAAG,2BAA0B,WAAW,MAAO,CAACla,EAAG,MAAM,CAACK,YAAY,mCAAmC,CAACL,EAAG,UAAU,CAACM,MAAM,CAAC,KAAO,kBAAkBR,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAIgrB,UAAU,eAAe,QAAO,GAAGhrB,EAAIS,GAAG,KAAKP,EAAG,YAAY,CAACM,MAAM,CAAC,KAAOR,EAAIorB,eAAe,SAAWprB,EAAIqrB,WAAarrB,EAAIgoB,YAAY,cAAc,cAAchJ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIiO,MAAM,OAAQjO,EAAI+qB,cAAc,CAAC/qB,EAAIoa,GAAG,uBAAsB,WAAW,MAAO,CAACla,EAAG,MAAM,CAACK,YAAY,mCAAmC,CAACP,EAAIS,GAAG,eAAeT,EAAIU,GAAGV,EAAImrB,UAAU,gBAAgBjrB,EAAG,UAAU,CAACM,MAAM,CAAC,KAAO,oBAAoB,QAAO,IAAI,IAAI,GAAGR,EAAIa,MAoBzoCoP,gBAnBA,SAGE1O,EAkB5BmpB,OAhBuBnpB,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW,O,sBCtJd,SAAWqqB,GACR,aAEA,IAAIC,GAAU,EAMVC,EAAO,CAaPC,UAAW,SAAUpX,GACjB,IAAIqX,EAAUF,EAAK5W,cACnB,IAAM8W,IAAYF,EAAK9W,SAEnB,OADAL,IACOqX,EAGX,IAAIC,EAAWH,EAAKtW,QAAO,SAAU2D,EAAGxX,GAC9BmqB,EAAK9W,WACP8W,EAAKI,OAAOD,GACZtX,QAGR,OAAOsX,GAiBXzW,OAAQ,SAAUb,GACd,IAAMmX,EAAK5W,cACP,OAAO,EAGX,IAAIL,EADJgX,GAAU,EAIV,OAFAC,EAAKK,WAAWtX,GAAUF,EAC1BmX,EAAK3W,UACEN,GASXqX,OAAQ,SAAU5rB,UACPwrB,EAAKK,WAAW7rB,IAe3B8rB,kBAAmB,SAAUzX,GACzB,IAAIqX,EAAYF,EAAK5W,cAGrB,IAAM8W,GAFU,aAEcF,EAAKnqB,QAE/B,OADAgT,IACOqX,EAGX,IAAIC,EAAWH,EAAKtW,QAAO,SAAU2D,EAAGxX,GAPxB,aAQMA,IACdmqB,EAAKI,OAAOD,GACZtX,QAGR,OAAOsX,GAUXjX,OAAQ,WACJ,SAAU8W,EAAKO,KAAKrX,SAAU8W,EAAKO,KAAKC,eAe5C3qB,MAAO,WACH,OAAOmqB,EAAKO,KAAKE,iBACVT,EAAKO,KAAKG,uBACV,WAWXtX,YAAa,WACT,SAAU4W,EAAKO,KAAKE,kBACVT,EAAKO,KAAKG,wBAIxBH,KAAMlN,UAAY,GAGlBgN,WAAY,GAGZM,QAAS,SAASrW,GACd,IAAIzU,EAAQmqB,EAAKnqB,QAEjB,IAAM,IAAI4U,KAAKuV,EAAKK,WAChBL,EAAKK,WAAW5V,GAAGvG,KAAK8b,EAAKO,KAAMjW,EAAOzU,IAKlDwT,QAAS,WACL,IAAK2W,EAAKY,MAAV,CAIA,IAAItW,EAAQ,mBACP0V,EAAKO,KAAKG,wBACXpW,EAAQ,SAAWA,GAGvB,IAAI6V,EAAW,WACXH,EAAKW,QAAQE,MAAMb,EAAMc,YAExBd,EAAKO,KAAKQ,iBACXf,EAAKO,KAAKQ,iBAAiBzW,EAAO6V,GAElCH,EAAKO,KAAKS,YAAY1W,EAAO6V,GAEjCH,EAAKY,OAAQ,KAKiBxe,EAAOC,QACzCD,EAAOC,QAAU2d,EAEjBF,EAAOrX,WAAauX,EA3L3B,CA8LE7rB,O,kCC9LH,qCAWA,MAAMyqB,EARO,CACXhrB,KAAM,aACNjC,WAAY,CACVkiB,OAAA,MAYF,MAeM2L,EAAoB,IACxB,CAAE1b,OApBe,WAAa,IAAiB2b,EAATtrB,KAAgBurB,eAAuC,OAAvDvrB,KAA0CE,MAAMD,IAAIqrB,GAAa,UAAjEtrB,KAA+EwrB,GAA/ExrB,KAAsF0kB,GAAG,CAACpkB,YAAY,kBAAkB,UAAxHN,KAAsIyrB,QAAO,GAA7IzrB,KAAwJ0rB,YAAY,CAApK1rB,KAAyKma,GAAG,YAAY,IAoBpMnK,gBAnBA,SAGE1O,EAkB5BmpB,OAhBuBnpB,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW,O,kVC9Cf,SAASwrB,EAAgB5jB,EAAK9I,EAAK0F,GAAiK,OAApJ1F,KAAO8I,EAAOhH,OAAO6qB,eAAe7jB,EAAK9I,EAAK,CAAE0F,MAAOA,EAAOknB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBhkB,EAAI9I,GAAO0F,EAAgBoD,EAO3M,ICPIikB,EDaO,EAAQ,YAAsB,CACvCC,MAAO,YAAS,KAEhBC,WAAY,YAAS,KAAmB,GACxCC,KAAM,YAAS,KAAmB,GAClCC,UAAW,YAAS,KAAmB,GACvCC,MAAO,YAAS,KAAmB,GACnCC,MAAO,YAAS,KAAmB,GACnCrI,KAAM,YAAS,KAAmB,GAClCW,IAAK,YAAS,IAAkB,MAChC2H,SAAU,YAAS,KAAmB,IACrC,KAGQC,EAAoB,YAAO,CACpCluB,KAAM,IACNmuB,YAAY,EACZ/vB,MAAO,EACP8R,OAAQ,SAAgBke,EAAGC,GACzB,IAAIC,EAzBmDjoB,EA2BnDjI,EAAQiwB,EAAKjwB,MACbW,EAAOsvB,EAAKtvB,KACZoS,EAAWkd,EAAKld,SAChBwU,EAAOvnB,EAAMunB,KACboI,EAAQ3vB,EAAM2vB,MACdE,EAAW7vB,EAAM6vB,SACjBN,EAAQvvB,EAAMuvB,MACdC,EAAaxvB,EAAMwvB,WACvB,OAAOQ,EAAEhwB,EAAMkoB,IAAK,YAAUvnB,EAAM,CAClC8B,YAAa,MACb4T,OAAQ6Z,EAAS,CACf,WAAY3I,EACZ,YAAaoI,IAAUpI,EACvB,oBAAqBsI,GAAYL,GAAcjI,EAC/C,qBAAsBsI,GAAYL,GAAcG,IAAUpI,EAC1D,cAAesI,EACf,YAAaA,GAAY7vB,EAAMyvB,KAC/B,iBAAkBI,GAAY7vB,EAAM0vB,WACnCT,EAAgBiB,GA7CkCjoB,EA6CJsnB,EA3C9C,mBAAmBY,OAD1BloB,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,KA4CH4nB,GAAYN,GAAQN,EAAgBiB,EAAQ,QAASlwB,EAAM4vB,OAAQM,KAC3Hnd,MCnDR,SAASqd,EAAQC,EAAQC,GAAkB,IAAIhsB,EAAOD,OAAOC,KAAK+rB,GAAS,GAAIhsB,OAAOksB,sBAAuB,CAAE,IAAIC,EAAUnsB,OAAOksB,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQzpB,QAAO,SAAU0pB,GAAO,OAAOpsB,OAAOqsB,yBAAyBL,EAAQI,GAAKtB,eAAiB7qB,EAAKkC,KAAKqoB,MAAMvqB,EAAMksB,GAAY,OAAOlsB,EAE9U,SAASqsB,EAAc/L,GAAU,IAAK,IAAInM,EAAI,EAAGA,EAAIqW,UAAU9tB,OAAQyX,IAAK,CAAE,IAAImY,EAAS,MAAQ9B,UAAUrW,GAAKqW,UAAUrW,GAAK,GAAIA,EAAI,EAAI2X,EAAQ/rB,OAAOusB,IAAS,GAAIjoB,SAAQ,SAAUpG,GAAO,EAAgBqiB,EAAQriB,EAAKquB,EAAOruB,OAAY8B,OAAOwsB,0BAA4BxsB,OAAOysB,iBAAiBlM,EAAQvgB,OAAOwsB,0BAA0BD,IAAWR,EAAQ/rB,OAAOusB,IAASjoB,SAAQ,SAAUpG,GAAO8B,OAAO6qB,eAAetK,EAAQriB,EAAK8B,OAAOqsB,yBAAyBE,EAAQruB,OAAa,OAAOqiB,EAEjf,SAAS,EAAgBvZ,EAAK9I,EAAK0F,GAAiK,OAApJ1F,KAAO8I,EAAOhH,OAAO6qB,eAAe7jB,EAAK9I,EAAK,CAAE0F,MAAOA,EAAOknB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBhkB,EAAI9I,GAAO0F,EAAgBoD,EA4B3M,IAAI0lB,EAAkB,YAAe,QAAS,CAC5C7wB,KAAM,MAEJ8wB,EAAaD,EAAgBE,MAC7BC,EAAaH,EAAgB/wB,MAC7BmxB,EAAkBJ,EAAgBK,KAClCC,EAAmBN,EAAgBzY,MAInCgZ,EAAc,SAAqBxJ,GACrC,OAAQA,EAAIyF,UAKVgE,EAA2B,YAAO,CACpC3vB,KAAM,KACN4vB,OAAQ,CACNC,UAAW,CACTlxB,QAEA,WACE,OAAO,WACL,MAAO,OAKfP,MAAO,CACL0xB,SAAU,YAAS,KACnBlvB,GAAI,YAAS,KACbmvB,SAAU,YAAS,KAAmB,GACtCC,SAAU,YAAS,KACnBC,QAAS,YAAS,KAElB/J,IAAK,cACLgK,SAAU,YAAS,MAErBjxB,SAAU,CACRkxB,OAAQ,WACN,OAAO5vB,KAAKsvB,cAGhBjwB,QAAS,CACPwwB,MAAO,WACL,YAAa7vB,KAAKmkB,MAAM2L,OAE1BC,YAAa,SAAqB5Z,GAEhC,IAAInW,KAAK2lB,IAAIyF,SAAb,CAIA,IAAIrtB,EAAOoY,EAAMpY,KACbiyB,EAAU7Z,EAAM6Z,QAChBC,EAAW9Z,EAAM8Z,SAER,UAATlyB,GAGgB,YAATA,GAAsBiyB,IAAY,KAF3C,YAAU7Z,GACVnW,KAAKgO,MAAM,IAAkBmI,IAOX,YAATpY,GAAuBiC,KAAKwvB,YAEqB,IAAtD,CAAC,IAAS,IAAW,KAAWU,QAAQF,IAC1C,YAAU7Z,GAEN8Z,GAAYD,IAAY,IAC1BhwB,KAAKgO,MAAM,IAAkBmI,GAE7BnW,KAAKgO,MAAM,IAAiBmI,KAEmC,IAAxD,CAAC,IAAW,IAAY,KAAU+Z,QAAQF,KACnD,YAAU7Z,GAEN8Z,GAAYD,IAAY,IAC1BhwB,KAAKgO,MAAM,IAAiBmI,GAE5BnW,KAAKgO,MAAM,IAAiBmI,QAMtCxG,OAAQ,SAAgBke,GACtB,IAAIxtB,EAAKL,KAAKK,GACVsvB,EAAW3vB,KAAK2vB,SAChBD,EAAU1vB,KAAK0vB,QACfD,EAAWzvB,KAAKyvB,SAChBF,EAAWvvB,KAAKuvB,SAChBQ,EAAc/vB,KAAK+vB,YACnBI,EAAYnwB,KAAK2lB,IACjB3iB,EAAQmtB,EAAUntB,MAClBotB,EAAcD,EAAUC,YACxBhF,EAAW+E,EAAU/E,SACrBiF,EAAiBF,EAAUE,eAC3BC,EAAiBH,EAAUG,eAC3BC,EAAsBJ,EAAUI,oBAChCC,EAAQ3C,EAAE,IAAO,CACnBvtB,YAAa,WACb4T,MAAO,CAAC,CACNuc,OAAQL,IAAgBhF,EACxBA,SAAUA,GACTkF,EACHF,EAAcpwB,KAAK4vB,OAAOc,mBAAqB,MAC/C7yB,MAAO,CACLutB,SAAUA,GAEZ7qB,MAAOiuB,EAAcA,EAAc,GAAI+B,GAAsB,GAAI,CAC/DlwB,GAAIA,EACJswB,KAAM,MAENC,SAAUjB,EACV,gBAAiBS,IAAgBhF,EAAW,OAAS,QACrD,eAAgBsE,EAChB,gBAAiBD,EACjB,gBAAiBF,IAEnBxQ,GAAI,CACF8R,MAAOd,EACPe,QAASf,GAEXgB,IAAK,QACJ,CAAC/wB,KAAK2lB,IAAIqL,cAAc,MAAoBhuB,IAC/C,OAAO6qB,EAAE,KAAM,CACbvtB,YAAa,WACb4T,MAAO,CAACmc,GACR9vB,MAAO,CACLowB,KAAM,iBAEP,CAACH,OAIJS,EAAW,YAAK,EAAW,CAAC,OAAQ,WAAY,eACzC,EAAQ,YAAsB,YAASzC,EAAcA,EAAcA,EAAcA,EAAc,GAAI,KAAUO,GAAakC,GAAW,GAAI,CAElJP,mBAAoB,YAAS,KAG7BQ,eAAgB,YAAS,KACzBC,KAAM,YAAS,KAAmB,GAClCC,aAAc,YAAS,KAEvBC,IAAK,YAAS,KAAmB,GAEjChY,KAAM,YAAS,KAAmB,GAClCiY,SAAU,YAAS,KACnBC,gBAAiB,YAAS,KAC1BC,OAAQ,YAAS,KAAmB,GACpChC,SAAU,YAAS,KAAmB,GACtCiC,WAAY,YAAS,KAAmB,GACxC1L,IAAK,YAAS,IAAkB,UAC7B,KAGM2L,EAAqB,YAAO,CACrCjyB,KAAM,IACNugB,OAAQ,CAAC,IAAS6O,EAAY,KAC9B8C,QAAS,WACP,IAAI9jB,EAAQ7N,KAEZ,MAAO,CACLsvB,UAAW,WACT,OAAOzhB,KAIbhQ,MAAO,EACPW,KAAM,WACJ,MAAO,CAEL8mB,WAAY,YAAUtlB,KAAKgvB,IAAmB,GAE9C5J,KAAM,GAENwM,eAAgB,KAGpBlzB,SAAU,CACRmzB,KAAM,WAEJ,OAAQ7xB,KAAKwxB,QAEfM,cAAe,WACb,IAAIC,EAAU,GAMd,OAJI/xB,KAAKmxB,MAAQnxB,KAAK0tB,UACpBqE,EAAQ1tB,KAAK,cAAe,QAAS,kBAAmB,aAGnD,GAAG2pB,OAAO+D,EAAS,CAAC/xB,KAAKsxB,aAGpC/iB,OAAQ4e,EAAS,GAAI,EAAgBA,EAAQ6B,GAAiB,SAAUgD,EAAUC,GAChF,GAAID,IAAaC,EAAU,CACzBD,EAAW,YAAUA,GAAW,GAChCC,EAAW,YAAUA,EAAU,GAC/B,IAAIC,EAAOlyB,KAAKolB,KAAK4M,GAEjBE,IAASA,EAAK9G,SAChBprB,KAAKmyB,YAAYD,GAGbF,EAAWC,EACbjyB,KAAKoyB,cAELpyB,KAAKqyB,cAIT,EAAgBlF,EAAQ,cAAc,SAAoB6E,GAC5D,IAAIhZ,GAAS,EAEbhZ,KAAKolB,KAAK5e,SAAQ,SAAU0rB,EAAM5b,GAC5BA,IAAM0b,GAAaE,EAAK9G,SAI1B8G,EAAK9B,aAAc,GAHnB8B,EAAK9B,aAAc,EACnBpX,EAAQ1C,MAMZtW,KAAKgO,MAAMkhB,EAAkBlW,MAC3B,EAAgBmU,EAAQ,QAAQ,SAAc6E,EAAUC,GAC1D,IAAI9I,EAASnpB,KAIR,YAAWgyB,EAASpsB,KAAI,SAAUssB,GACrC,OAAOA,EAAK,QACVD,EAASrsB,KAAI,SAAUssB,GACzB,OAAOA,EAAK,UAGZlyB,KAAKsyB,WAAU,WAGbnJ,EAAOnb,MAAM,IAAoBgkB,EAASjzB,QAASkzB,EAASlzB,eAG9D,EAAgBouB,EAAQ,kBAAkB,WAC5CntB,KAAKuyB,gBACHpF,GACJqF,QAAS,WAEPxyB,KAAKyyB,WAAa,MAEpB5jB,QAAS,WACP7O,KAAK0yB,aAAY,IAEnBC,cAAe,WACb3yB,KAAK0yB,aAAY,GAEjB1yB,KAAKolB,KAAO,IAEd/lB,QAAS,CACPuzB,YAAa,SAAqBV,GAC3B,OAAApZ,EAAA,GAAc9Y,KAAK4xB,eAAgBM,IACtClyB,KAAK4xB,eAAevtB,KAAK6tB,IAG7BW,cAAe,SAAuBX,GACpClyB,KAAK4xB,eAAiB5xB,KAAK4xB,eAAe7yB,QAAQ6F,QAAO,SAAUkuB,GACjE,OAAOA,IAAOZ,MAIlBQ,YAAa,WACX,IAAIzI,EAASjqB,KAET+e,IAAK4N,UAAU9tB,OAAS,QAAsByC,IAAjBqrB,UAAU,KAAmBA,UAAU,GAIxE,GAHA3sB,KAAKyyB,YAAczyB,KAAKyyB,WAAWM,aACnC/yB,KAAKyyB,WAAa,KAEd1T,EAAI,CAEN,IAAIxR,EAAU,WACZ0c,EAAOqI,WAAU,WACf,aAAU,WACRrI,EAAOsI,oBAMbvyB,KAAKyyB,WAAa,YAAWzyB,KAAKmkB,MAAM6O,QAASzlB,EAAS,CACxD0lB,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,gBAAiB,CAAC,UAIxBC,QAAS,WACP,IAAIC,EAAQtzB,KAAK4xB,eAMb2B,EAAQ,GAGZ,GAAI,KAAcD,EAAMz0B,OAAS,EAAG,CAIlC,IAAI20B,EAAWF,EAAM1tB,KAAI,SAAUssB,GACjC,MAAO,IAAIlE,OAAOkE,EAAKuB,aACtBtpB,KAAK,MACRopB,EAAQ,YAAUC,EAAUxzB,KAAKqkB,KAAKze,KAAI,SAAUye,GAClD,OAAOA,EAAIhkB,MACVuE,OAAO8uB,EAAA,GAKZ,OAAO,YAAWJ,GAAO,SAAU1gB,EAAGC,GACpC,OAAO0gB,EAAMrD,QAAQtd,EAAE6gB,UAAYF,EAAMrD,QAAQrd,EAAE4gB,cAGvDlB,WAAY,WACV,IAAIe,EAAQtzB,KAAKqzB,UAGb1D,EAAW2D,EAAMpD,QAAQoD,EAAMv0B,QAAQ40B,UAAUvxB,MAAK,SAAU8vB,GAClE,OAAOA,EAAK9B,cAAgB8B,EAAK9G,aAGnC,GAAIuE,EAAW,EAAG,CAChB,IAAIrK,EAAatlB,KAAKslB,WAElBA,GAAcgO,EAAMz0B,OAEtB8wB,EAAW2D,EAAMpD,QAAQoD,EAAMv0B,QAAQ40B,UAAUvxB,KAAK+sB,IAC7CmE,EAAMhO,KAAgBgO,EAAMhO,GAAY8F,WAEjDuE,EAAWrK,GAKXqK,EAAW,IACbA,EAAW2D,EAAMpD,QAAQoD,EAAMlxB,KAAK+sB,KAItCmE,EAAM9sB,SAAQ,SAAU0rB,EAAMlZ,GAC5BkZ,EAAK9B,YAAcpX,IAAU2W,KAE/B3vB,KAAKolB,KAAOkO,EACZtzB,KAAKslB,WAAaqK,GAIpBiE,gBAAiB,SAAyB1B,GACxC,OAAQlyB,KAAKmkB,MAAM0P,SAAW,IAAIzxB,MAAK,SAAU0xB,GAC/C,OAAOA,EAAKnO,MAAQuM,MAKxB6B,aAAc,SAAsB7B,GAClC,IAAI8B,EAAUh0B,KAAK4zB,gBAAgB1B,GAE/B8B,GAAWA,EAAQC,cACrBD,EAAQC,gBAKZ9B,YAAa,SAAqBD,GAChC,IAAI5M,EAAatlB,KAAKslB,WAClBgO,EAAQtzB,KAAKolB,KACb8O,GAAS,EAEb,GAAIhC,EAAM,CACR,IAAIlZ,EAAQsa,EAAMpD,QAAQgC,GAE1B,GAAIlZ,IAAUsM,GAActM,GAAS,IAAMkZ,EAAK9G,SAAU,CACxD,IAAI+I,EAAW,IAAI,IAAQ,IAAyB,CAClDC,YAAY,EACZC,UAAWr0B,KACXs0B,YAAat0B,KAAKyzB,WAEpBzzB,KAAKgO,MAAMmmB,EAASp2B,KAAMib,EAAOsM,EAAY6O,GAExCA,EAASI,mBACZv0B,KAAKslB,WAAatM,EAClBkb,GAAS,IAYf,OAJKA,GAAUl0B,KAAKgvB,KAAqB1J,GACvCtlB,KAAKgO,MAAMkhB,EAAkB5J,GAGxB4O,GAITM,cAAe,SAAuBtC,GACpC,QAAIA,GAGKlyB,KAAKmyB,YAAYnyB,KAAKolB,KAAKxgB,QAAO,SAAUkuB,GACjD,OAAOA,IAAOZ,KACb9vB,KAAK+sB,KAQZsF,YAAa,SAAqBvC,GAChC,IAAIwC,EAAS10B,KAGbA,KAAKsyB,WAAU,WACb,YAAaoC,EAAOd,gBAAgB1B,QAIxCyC,aAAc,SAAsBhP,EAAKxP,GACnC,YAAQA,IAAUwP,GAAOA,EAAI3X,QAAU2X,EAAIyF,UAC7CzF,EAAI3X,MAAM,IAAkBmI,IAIhCye,SAAU,SAAkB1C,EAAM/b,GAChCnW,KAAKmyB,YAAYD,GACjBlyB,KAAK20B,aAAazC,EAAM/b,IAG1B0e,SAAU,SAAkBhF,GAC1B,IAAIqC,EAAOlyB,KAAKolB,KAAKhjB,KAAK+sB,GAEtBnvB,KAAKmyB,YAAYD,IAASrC,IAC5B7vB,KAAKy0B,YAAYvC,GACjBlyB,KAAK20B,aAAazC,EAAMrC,KAI5BuC,YAAa,SAAqBvC,GAChC,IAAIiF,EAAe,OAAAC,EAAA,GAAQ/0B,KAAKslB,WAAY,GACxC4M,EAAOlyB,KAAKolB,KAAKrmB,MAAM,EAAG+1B,GAAcnB,UAAUvxB,KAAK+sB,GAEvDnvB,KAAKmyB,YAAYD,IAASrC,IAC5B7vB,KAAKy0B,YAAYvC,GACjBlyB,KAAK20B,aAAazC,EAAMrC,KAI5BwC,QAAS,SAAiBxC,GACxB,IAAIiF,EAAe,OAAAC,EAAA,GAAQ/0B,KAAKslB,YAAa,GACzC4M,EAAOlyB,KAAKolB,KAAKrmB,MAAM+1B,EAAe,GAAG1yB,KAAK+sB,GAE9CnvB,KAAKmyB,YAAYD,IAASrC,IAC5B7vB,KAAKy0B,YAAYvC,GACjBlyB,KAAK20B,aAAazC,EAAMrC,KAI5BmF,QAAS,SAAiBnF,GACxB,IAAIqC,EAAOlyB,KAAKolB,KAAKrmB,QAAQ40B,UAAUvxB,KAAK+sB,GAExCnvB,KAAKmyB,YAAYD,IAASrC,IAC5B7vB,KAAKy0B,YAAYvC,GACjBlyB,KAAK20B,aAAazC,EAAMrC,MAI9BlgB,OAAQ,SAAgBke,GACtB,IAAIoH,EAASj1B,KAETotB,EAAQptB,KAAKotB,MACb+D,EAAOnxB,KAAKmxB,KACZE,EAAMrxB,KAAKqxB,IACX/D,EAAOttB,KAAKstB,KACZuH,EAAW70B,KAAK60B,SAChBtH,EAAYvtB,KAAKutB,UACjByH,EAAUh1B,KAAKg1B,QACf3C,EAAUryB,KAAKqyB,QACf7C,EAAWxvB,KAAKwvB,SAChBiC,EAAazxB,KAAKyxB,WAClBjE,EAAQxtB,KAAKwtB,MACb4E,EAAcpyB,KAAKoyB,YACnB3E,EAAQztB,KAAKytB,MACb6F,EAAQtzB,KAAKolB,KACbsI,EAAW1tB,KAAK0tB,SAEhBwH,EAAa5B,EAAMlxB,MAAK,SAAU8vB,GACpC,OAAOA,EAAK9B,cAAgB8B,EAAK9G,YAG/B+J,EAAe7B,EAAMlxB,MAAK,SAAU8vB,GACtC,OAAQA,EAAK9G,YAGXgK,EAAW9B,EAAM1tB,KAAI,SAAUssB,EAAMlZ,GACvC,IAAIqc,EAEA5B,EAASvB,EAAKuB,OAEd9D,EAAW,KAYf,OAVKH,IAEHG,GAAY,GAERuC,IAASgD,IAAeA,GAAchD,IAASiD,KAEjDxF,EAAW,OAIR9B,EAAEuB,EAAa,EAAgB,CACpCvxB,MAAO,CACL0xB,SAAUkE,EAASA,IAAW,KAC9BpzB,GAAI6xB,EAAKoD,eAAiB7B,EAASA,EAAO,mBAAqB,MAC/DjE,SAAUA,EACVC,SAAUzW,EAAQ,EAClB0W,QAAS4D,EAAMz0B,OACf8mB,IAAKuM,EACLvC,SAAUA,GAEZ5Q,IAAKsW,EAAM,GAAI,EAAgBA,EAAK,KAAkB,SAAUlf,GAC9D8e,EAAOL,SAAS1C,EAAM/b,MACpB,EAAgBkf,EAAK,IAAkBR,GAAW,EAAgBQ,EAAK,IAAiBjD,GAAc,EAAgBiD,EAAK,IAAiBhD,GAAU,EAAgBgD,EAAK,IAAiBL,GAAUK,GAC1Mj1B,IAAK8xB,EAAK,MAAsBlZ,EAChC+X,IAAK,WACJ,KAAa,OAEdwE,EAAO1H,EAAEF,EAAM,CACjBzZ,MAAOlU,KAAK8xB,cACZvxB,MAAO,CACLowB,KAAM,UACNtwB,GAAIL,KAAKyzB,OAAO,sBAElB51B,MAAO,CACLyvB,KAAMA,EACNC,UAAWA,EACXH,MAAOA,EACPhI,MAAOqM,IAAejE,EACtBA,OAAQiE,GAAcjE,EACtBE,SAAUA,EACVD,MAAOA,EACPJ,WAAY8D,IAASzD,GAEvBqD,IAAK,OACJ,CAAC/wB,KAAKgxB,cAAc,MAAyBnD,IAAKuH,EAAUp1B,KAAKgxB,cAAc,MAAuBnD,MACzG0H,EAAO1H,EAAE,MAAO,CACd3Z,MAAO,CAAC,CACN,cAAeid,IAASzD,IAAa2D,EACrC,cAAeF,IAASzD,GAAY2D,EACpC,WAAY3D,GACX1tB,KAAKuxB,iBACRnxB,IAAK,eACJ,CAACm1B,IACJ,IAAIC,EAAYx1B,KAAKgxB,iBAAmB,GACpCyE,EAAS5H,IAEY,IAArB2H,EAAU32B,SACZ42B,EAAS5H,EAAE,MAAO,CAChB3Z,MAAO,CAAC,WAAY,SAAU,CAC5B,YAAaid,IAEf/wB,IAAK,gBACJJ,KAAKgxB,cAAc,OAGxB,IAAI0E,EAAW7H,EAAE,MAAO,CACtBvtB,YAAa,cACb4T,MAAO,CAAC,CACNyhB,IAAKjI,GACJ1tB,KAAKoxB,cACR7wB,MAAO,CACLF,GAAIL,KAAKyzB,OAAO,uBAElBrzB,IAAK,aACL2wB,IAAK,WACJ,CAACyE,EAAWC,IAEf,OAAO5H,EAAE7tB,KAAK+lB,IAAK,CACjBzlB,YAAa,OACb4T,MAAO,CACL0hB,IAAKlI,EACL,aAAcA,GAAYyD,GAE5B5wB,MAAO,CACLF,GAAIL,KAAKyzB,WAEV,CAACpC,EAAMqE,EAAW7H,IAAK0H,EAAMlE,EAAMxD,IAAM6H,O,6CCvnBhD,MAAMG,EAAkB3sB,GAAOhH,OAAOC,KAAK+G,GAAKqL,MAAMlF,GAAe,SAARA,GAA0B,eAARA,GAsL/E,MAAMob,EArLO,CACXhrB,KAAM,SACNjC,WAAY,CACVk0B,QACA/G,SAAA,KAEFC,cAAc,EACd/sB,MAAO,CACLi4B,cAAe,CACb/3B,KAAMmE,OACNjE,UAAU,EACVG,QAAS,KACT23B,UAAW7sB,GAAO2sB,EAAgB3sB,IAEpC8sB,gBAAiB,CACfj4B,KAAMmE,OACNjE,UAAU,EACVG,QAAS,KACT23B,UAAW7sB,GAAO2sB,EAAgB3sB,IAEpC+sB,eAAgB,CACdl4B,KAAMmE,OACNjE,UAAU,EACVG,QAAS,KACT23B,UAAW7sB,GAAO2sB,EAAgB3sB,IAEpCkoB,aAAc,CACZrzB,KAAM,CAACO,OAAQN,MAAOkE,QACtBjE,UAAU,EACVG,QAAS,MAEXkzB,SAAU,CACRvzB,KAAM,CAACO,OAAQN,MAAOkE,QACtBjE,UAAU,EACVG,QAAS,MAEXmvB,UAAW,CACTxvB,KAAMqQ,QACNnQ,UAAU,EACVG,SAAS,GAKX83B,6BAA8B,CAC5Bn4B,KAAMqQ,QACNnQ,UAAU,EACVG,SAAS,GAKX+3B,eAAgB,CACdp4B,KAAMO,OACNL,UAAU,EACVG,QAAS,OAEX0H,MAAO,CACL/H,KAAMI,OACNF,UAAU,EACVG,QAAS,IAGbI,KAAI,KACK,CACL43B,eAAgB,IAGpB13B,SAAU,CACR,aACE,MAAO,CAACsB,KAAK81B,cAAe91B,KAAKg2B,gBAAiBh2B,KAAKi2B,gBAAgBI,KAAKjoB,UAE9E,YACE,MAAO,IACFpO,KAAK0rB,WACRjZ,MAAOzS,KAAKs2B,eAIlB/nB,MAAO,CACLzI,MAAO,CACL,QAAQksB,GACFhyB,KAAKo2B,iBAAmBpE,IAC1BhyB,KAAKo2B,eAAiBpE,IAG1B3I,WAAW,IAGf,UACMrpB,KAAKk2B,+BACPl2B,KAAKu2B,+BACLpiB,OAAOyY,iBAAiB,WAAY5sB,KAAKu2B,+BAO3Cv2B,KAAKgO,MAAM,QAAShO,KAAKo2B,iBAE3B,YACEjiB,OAAOqiB,oBAAoB,WAAYx2B,KAAKu2B,+BAE9Cl3B,QAAS,CACPo3B,cAAa,CAACxH,EAAMxvB,IACbwvB,EAAKkE,WAGHlE,EAAKkE,WAFH,IAAmB1zB,GAI9B,UACEO,KAAKgO,MAAM,YAEb,YACEhO,KAAKgO,MAAM,cAEb,WACEhO,KAAKgO,MAAM,aAKb,2CACQhO,KAAKsyB,YACX,MAAMoE,EAAkB12B,KAAK22B,qBACvBC,EAAqB52B,KAAKqzB,UAAUwD,UAAU,CAAClR,EAAKgK,IAAa3vB,KAAK82B,sBAAsBnH,KAAc+G,GAChH12B,KAAKo2B,gBAAyC,IAAxBQ,EAA4BA,EAAqB,GAKzE,UACE,OAAO52B,KAAKmkB,MAAM4S,MAAM1D,WAK1B,qBAEE,OADqB,IAAI3tB,gBAAgByO,OAAOsV,SAASuN,QACrCxtB,IAAIxJ,KAAKm2B,iBAM/B,8BAA8BxG,GAC5B,MAAMsH,EAAyBj3B,KAAK22B,qBAC9BO,EAAqBl3B,KAAK82B,sBAAsBnH,GAItD,GAAiB,IAAbA,IAAmBsH,GAAuC,IAAbtH,GAAkBsH,IAA2BC,EAC5F,OAEF,MAAMC,EAAe,IAAIzxB,gBAAgByO,OAAOsV,SAASuN,QACzDG,EAAa7tB,IAAItJ,KAAKm2B,eAAgBe,GACtC/iB,OAAOijB,QAAQC,UAAU,GAAI,GAAI,GAAGljB,OAAOsV,SAAS6N,YAAYH,EAAa9f,eAM/E,sBAAsBsY,GACpB,MAAMhK,EAAM3lB,KAAKqzB,UAAU1D,GAC3B,OAAQhK,aAAiC,EAASA,EAAI8F,OAAO,uBAAyBkE,EAAStY,YAKjG,YAAYsY,GACV3vB,KAAKgO,MAAM,QAAS2hB,GACpB3vB,KAAKo2B,eAAiBzG,EAClB3vB,KAAKk2B,8BACPl2B,KAAKu3B,8BAA8B5H,MAczC,MAeMtE,EAAoB,IACxB,CAAE1b,OApBe,WAAa,IAAI5P,EAAIC,KAASsrB,EAAGvrB,EAAIwrB,eAAmBtrB,EAAGF,EAAIG,MAAMD,IAAIqrB,EAAG,OAAOrrB,EAAG,SAASF,EAAIyrB,GAAGzrB,EAAI2kB,GAAG,CAACqM,IAAI,QAAQzwB,YAAY,UAAUC,MAAM,CAAC,gBAAe,EAAK,WAAU,EAAK,wBAAwB,yBAAyB,gBAAgB,CAACR,EAAIqxB,aAAc,kBAAkB,YAAY,CAACrxB,EAAIuxB,SAAU,eAAe,UAAYvxB,EAAIwtB,UAAU,MAAQxtB,EAAIq2B,gBAAgBzR,YAAY5kB,EAAI6kB,GAAG,CAAC7kB,EAAII,GAAI+B,OAAOC,KAAKpC,EAAI2jB,SAAS,SAAS8T,GAAM,MAAO,CAACp3B,IAAIo3B,EAAK3S,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAGqd,KAAQ1S,OAAM,MAAS/kB,EAAc,WAAE,CAACK,IAAI,aAAaykB,GAAG,WAAW,MAAO,CAAC5kB,EAAG,MAAM,CAACK,YAAY,wBAAwBC,MAAM,CAAC,cAAc,uBAAuB,CAAER,EAAiB,cAAEE,EAAG,YAAYF,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,cAAc,kBAAkBwe,GAAG,CAAC,MAAQhf,EAAI03B,UAAU,YAAY13B,EAAI02B,cAAc12B,EAAI+1B,cAAe,kBAAiB,GAAO,CAAC/1B,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAI+1B,cAActX,MAAM,cAAcze,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAmB,gBAAEE,EAAG,YAAYF,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,cAAc,oBAAoBwe,GAAG,CAAC,MAAQhf,EAAI23B,YAAY,YAAY33B,EAAI02B,cAAc12B,EAAIi2B,gBAAiB,oBAAmB,GAAO,CAACj2B,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIi2B,gBAAgBxX,MAAM,cAAcze,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAkB,eAAEE,EAAG,YAAYF,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,cAAc,mBAAmBwe,GAAG,CAAC,MAAQhf,EAAI43B,WAAW,YAAY53B,EAAI02B,cAAc12B,EAAIk2B,eAAgB,mBAAkB,GAAO,CAACl2B,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIk2B,eAAezX,MAAM,cAAcze,EAAIa,MAAM,KAAKkkB,OAAM,GAAM,KAAM/kB,EAAc,WAAE,CAACK,IAAI,WAAWykB,GAAG,WAAW,MAAO,CAAC5kB,EAAG,MAAM,CAACK,YAAY,sBAAsBC,MAAM,CAAC,cAAc,qBAAqB,CAAER,EAAiB,cAAEE,EAAG,YAAYF,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,cAAc,kBAAkBwe,GAAG,CAAC,MAAQhf,EAAI03B,UAAU,YAAY13B,EAAI02B,cAAc12B,EAAI+1B,cAAe,kBAAiB,GAAO,CAAC/1B,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAI+1B,cAActX,MAAM,cAAcze,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAmB,gBAAEE,EAAG,YAAYF,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,cAAc,oBAAoBwe,GAAG,CAAC,MAAQhf,EAAI23B,YAAY,YAAY33B,EAAI02B,cAAc12B,EAAIi2B,gBAAiB,oBAAmB,GAAO,CAACj2B,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIi2B,gBAAgBxX,MAAM,cAAcze,EAAIa,KAAKb,EAAIS,GAAG,KAAMT,EAAkB,eAAEE,EAAG,YAAYF,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,cAAc,mBAAmBwe,GAAG,CAAC,MAAQhf,EAAI43B,WAAW,YAAY53B,EAAI02B,cAAc12B,EAAIk2B,eAAgB,mBAAkB,GAAO,CAACl2B,EAAIS,GAAG,aAAaT,EAAIU,GAAGV,EAAIk2B,eAAezX,MAAM,cAAcze,EAAIa,MAAM,KAAKkkB,OAAM,GAAM,MAAM,MAAK,IAAO,SAAS/kB,EAAI0rB,QAAO,GAAO1rB,EAAI63B,aAoB/8E5nB,gBAnBA,SAGE1O,EAkB5BmpB,OAhBuBnpB,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW,O,kCC/Nf,wIAkWA,MAAMmpB,EAvVO,CACXhrB,KAAM,aACNjC,WAAY,CACVkiB,OAAA,IACAnM,OAAA,KAEFskB,MAAO,CACL5I,KAAM,QACN9Y,MAAO,SAETtY,MAAO,CACLiI,MAAO,CACL/H,KAAMI,OACNF,UAAU,EACVG,QAAS,EACT23B,UAAWlxB,GAAKA,EAAI,GAKtBizB,QAAS,CACP/5B,KAAMI,OACNF,UAAU,EACVG,QAAS,GACT23B,UAAWlxB,GAAKA,EAAI,GAKtB4iB,WAAY,CACV1pB,KAAMI,OACNF,UAAU,EACVG,QAAS,GAKX25B,OAAQ,CACNh6B,KAAMmE,OACNjE,UAAU,EACVG,QAAS,KAAM,CACb45B,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ95B,QAAS,IAEX23B,UAAWjwB,GAEe,IADH5D,OAAOC,KAAK,KAAayC,OAAO8E,IAAS5D,EAAM4D,IAAO7K,QACxCiH,EAAM1H,SAM7C+5B,QAAS,CACPp6B,KAAMq6B,SACNn6B,UAAU,EACVG,QAAS,MAKXi6B,SAAU,CACRt6B,KAAMI,OACNF,UAAU,EACVG,QAAS,MAKX2sB,SAAU,CACRhtB,KAAMO,OACNL,UAAU,EACVG,QAAS,YAKXwpB,SAAU,CACR7pB,KAAMI,OACNF,UAAU,EACVG,QAAS,MAKX8sB,SAAU,CACRntB,KAAMO,OACNL,UAAU,EACVG,QAAS,QAKXk6B,aAAc,CACZv6B,KAAMO,OACNL,UAAU,EACVG,QAAS,KAKXm6B,eAAgB,CACdx6B,KAAMO,OACNL,UAAU,EACVG,QAAS,oBAKXo6B,cAAe,CACbz6B,KAAMO,OACNL,UAAU,EACVG,QAAS,uBAKXq6B,cAAe,CACb16B,KAAMO,OACNL,UAAU,EACVG,QAAS,mBAKXs6B,cAAe,CACb36B,KAAMO,OACNL,UAAU,EACVG,QAAS,mBAKXu6B,UAAW,CACT56B,KAAMq6B,SACNn6B,UAAU,EACVG,QAASw6B,GAAQ,cAAcA,GAKjCxL,MAAO,CACLrvB,KAAMO,OACNL,UAAU,EACVG,QAAS,IAAay6B,KACtB9C,UAAWjwB,GAAS5D,OAAOC,KAAK,KAAcI,SAASuD,IAEzDslB,SAAU,CACRrtB,KAAMqQ,QACNnQ,UAAU,EACVG,SAAS,IAGbI,KAAI,KACK,CACLs6B,WAAY,IAAqBC,oBAEjCC,wBAAyB,IAG7Bt6B,SAAU,CACR,YACE,OAAOsB,KAAKyoB,WAAa,GAAKzoB,KAAKi5B,qBAErC,cACE,OAAO,IAAWj5B,KAAKm4B,UAEzB,kBACE,YAA+C,IAAjCn4B,KAAK+3B,OAAO/3B,KAAK84B,YAA8B94B,KAAK+3B,OAAO/3B,KAAK84B,YAAc94B,KAAK+3B,OAAO35B,SAE1G,mBACE,OAAO0Y,KAAKoiB,IAAIpiB,KAAK4R,MAAM1oB,KAAKm5B,gBAAkB,GAAK,GAAI,IAE7D,aACE,OAAOriB,KAAK4R,KAAK1oB,KAAKynB,WAAaznB,KAAK83B,UAE1C,cACE,OAAO93B,KAAKotB,QAAU,IAAaE,MAErC,iBACE,MAAMyE,EAAU,GAUhB,OATI/xB,KAAKotB,QAAU,IAAagM,QAC9BrH,EAAQ1tB,KAAK,0BAEXrE,KAAKotB,QAAU,IAAaiM,OAC9BtH,EAAQ1tB,KAAK,uBAEXrE,KAAKs5B,aACPvH,EAAQ1tB,KAAK,eAER0tB,GAET,yBACE,MAAMwH,EAAOv5B,KAAK8F,MAAQ9F,KAAKw5B,iBAG/B,OAAOD,GAAQv5B,KAAKw5B,kBAAoBD,EAAO,GAAKv5B,KAAKyoB,WAAazoB,KAAKg5B,yBAE7E,0BAGE,OADah5B,KAAKyoB,WAAa,EAAIzoB,KAAK8F,MAC1B9F,KAAKw5B,kBAAoBx5B,KAAKyoB,WAAazoB,KAAKg5B,yBAEhE,eACE,IAAIS,EAAQ,GACZ,IAAKz5B,KAAKi5B,oBAAqB,CAC7B,IAAIS,EAAY15B,KAAK25B,uBAAyB35B,KAAK8F,MAAQ9F,KAAKw5B,iBAAmB,EAEnFE,EAAY5iB,KAAK8iB,IAAIF,EAAW15B,KAAKyoB,WAAa,GAClD,IAAIoR,EAAW75B,KAAK85B,wBAA0B95B,KAAK8F,MAAQ9F,KAAKw5B,iBAAmBx5B,KAAKyoB,WAExFoR,EAAW/iB,KAAKoiB,IAAIW,EAAU,GAG9BJ,GAxNWh0B,EAwNOi0B,EAxNDK,EAwNYF,EAxNL,IAAMp0B,EAAMs0B,EAAK,EAAG,IAwNLn0B,IAAIgzB,GAAQ54B,KAAKg6B,YAAYpB,IAChE54B,KAAK25B,wBACPF,EAAMQ,OAAO,EAAG,EAAGj6B,KAAKg6B,YAAY,EAAGh6B,KAAKu4B,gBAAiBv4B,KAAKk6B,gBAAgB,SAEhFl6B,KAAK85B,yBACPL,EAAMp1B,KAAKrE,KAAKk6B,gBAAgB,SAAUl6B,KAAKg6B,YAAYh6B,KAAKyoB,WAAYzoB,KAAK04B,gBA7NzE,IAACjzB,EAAMs0B,EAgOnB,OAAON,GAET,sBACE,OAAOrrB,SAASpO,KAAKynB,aAAeznB,KAAKq4B,UAAYr4B,KAAK4nB,YAE5D,qBACE,OAAO5nB,KAAKm6B,eAAen6B,KAAK8F,MAAQ,IAE1C,qBACE,OAAO9F,KAAKm6B,eAAen6B,KAAK8F,MAAQ,IAE1C,oBACE,OAAO9F,KAAKo6B,qBAA6Bp6B,KAAKw4B,eAAiBx4B,KAAK24B,UAAU34B,KAAK8F,MAAQ,KAE7F,oBACE,OAAO9F,KAAKq6B,qBAA6Br6B,KAAKy4B,eAAiBz4B,KAAK24B,UAAU34B,KAAK8F,MAAQ,KAE7F,eACE,OAAI9F,KAAKo6B,qBACLp6B,KAAKs6B,YAAoBt6B,KAAKm4B,QAAQn4B,KAAK8F,MAAQ,GAChD,MAET,eACE,OAAI9F,KAAKq6B,qBACLr6B,KAAKs6B,YAAoBt6B,KAAKm4B,QAAQn4B,KAAK8F,MAAQ,GAChD,OAGX,UACEqO,OAAOyY,iBAAiB,SAAU,IAAS5sB,KAAKu6B,cAAe,OAEjE,gBACEpmB,OAAOqiB,oBAAoB,SAAU,IAASx2B,KAAKu6B,cAAe,OAEpEl7B,QAAS,CACP,gBACEW,KAAK84B,WAAa,IAAqBC,qBAEzC,eAAeH,GACb,OAAO54B,KAAKorB,UAAYwN,EAAO,GAAK54B,KAAKi5B,qBAAuBL,EAAO54B,KAAK8F,QAAU9F,KAAK4nB,WAAa5nB,KAAKi5B,qBAAuBL,EAAO54B,KAAKyoB,YAElJ,YAAYmQ,GAEV,MAAM4B,EAAc,CAClB,cAFU7N,UAAU9tB,OAAS,QAAsByC,IAAjBqrB,UAAU,GAAmBA,UAAU,GAAK,OAEvD3sB,KAAK24B,UAAUC,GACtCnnB,KAAM,IACNyC,MAAO,IAEHumB,EAAe7B,IAAS54B,KAAK8F,MAC7B40B,EAAa16B,KAAKm6B,eAAevB,GACjCr4B,EAAQ,IACTi6B,GAEC5C,EAAY,GAUlB,OATI6C,IACFl6B,EAAM2T,MAAM7P,KAAK,UACjB9D,EAAM,gBAAkB,QAGtBP,KAAKs6B,cACP/5B,EAAMkR,KAAOzR,KAAKm4B,QAAQS,IAE5BhB,EAAU/G,MAAQ3X,GAAKlZ,KAAK26B,YAAYzhB,EAAG0f,GACpC,CACL5F,QAAS4F,EACT94B,UAAW46B,EAAa,OAAS,IACjCtP,SAAUsP,EACVt6B,IAAK,QAAQw4B,EACbpB,KAAM,cACNoD,SAAU,CACRhC,OACAnI,OAAQgK,EACRrP,SAAUsP,GAEZn6B,QACAq3B,cAGJ,gBAAgBiD,GACd,MAAO,CACL7H,QAAShzB,KAAKs4B,aACdl4B,IAAK,YAAYy6B,EACjBrD,KAAM,YAAYqD,EAClB/6B,UAAW,OACXsrB,UAAU,EACVwP,SAAU,GACVhD,UAAW,KAGf,YAAYzhB,EAAOrQ,GACZ9F,KAAKs6B,cACRnkB,EAAMsO,iBAMNzkB,KAAKgO,MAAM,QAASlI,KAGxB,eAAeqQ,EAAOrQ,GACpB9F,KAAK26B,YAAYxkB,EAAOrQ,GAKxB9F,KAAKgO,MAAM,aAEb,WAAWmI,EAAOrQ,GAChB9F,KAAK26B,YAAYxkB,EAAOrQ,GAKxB9F,KAAKgO,MAAM,WAsBf,MAeMqd,EAAoB,IACxB,CAAE1b,OA7Be,WAAa,IAAI5P,EAAIC,KAASsrB,EAAGvrB,EAAIwrB,eAAmBtrB,EAAGF,EAAIG,MAAMD,IAAIqrB,EAAG,OAAQvrB,EAAa,UAAEE,EAAG,MAAM,CAACK,YAAY,4BAA4BC,MAAM,CAAC,aAAa,eAAe,CAACN,EAAG,KAAK,CAACK,YAAY,aAAa4T,MAAMnU,EAAI+6B,gBAAgB,CAAC76B,EAAG,KAAK,CAACK,YAAY,YAAY4T,MAAM,CAC1SkX,SAAUrrB,EAAIq6B,mBACd,YAAar6B,EAAIu5B,aACjB/4B,MAAM,CAAC,cAAcR,EAAIq6B,qBAAqB,CAACn6B,EAAGF,EAAIq6B,mBAAqB,OAAS,IAAI,CAACrU,IAAI,YAAYzlB,YAAY,mDAAmDC,MAAM,CAAC,aAAaR,EAAIg7B,kBAAkB,KAAOh7B,EAAIi7B,cAAcjc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIk7B,eAAejc,EAAQjf,EAAI+F,MAAQ,MAAM,CAAC/F,EAAIoa,GAAG,YAAW,WAAW,MAAO,CAACla,EAAG,UAAU,CAACM,MAAM,CAAC,KAAO,kBAAkBR,EAAIS,GAAG,KAAKP,EAAG,OAAO,CAACF,EAAIS,GAAGT,EAAIU,GAAGV,EAAIgrB,gBAAe,KAAK,CAAE6N,KAAM74B,EAAI+F,MAAQ,EAAGslB,SAAUrrB,EAAIq6B,sBAAuB,IAAI,GAAGr6B,EAAIS,GAAG,KAAKT,EAAII,GAAIJ,EAAgB,cAAE,SAASm7B,GAAM,OAAOj7B,EAAG,KAAK,CAACG,IAAI86B,EAAK96B,IAAIE,YAAY,YAAY4T,MAAM,CAChoBkX,SAAU8P,EAAK9P,SACf,YAAarrB,EAAIu5B,cAChB,CAACr5B,EAAGi7B,EAAKp7B,UAAUC,EAAIyrB,GAAGzrB,EAAI2kB,GAAG,CAACqB,IAAI,YAAYzlB,YAAY,YAAYC,MAAM,CAAC,KAAO,KAAK,gBAAgB26B,EAAK9P,WAAW,YAAY8P,EAAK36B,OAAM,GAAO26B,EAAKtD,WAAW,CAAC73B,EAAIoa,GAAG+gB,EAAK1D,MAAK,WAAW,MAAO,CAACz3B,EAAIS,GAAGT,EAAIU,GAAGy6B,EAAKlI,aAAY,KAAKkI,EAAKN,WAAW,IAAI,MAAK76B,EAAIS,GAAG,KAAKP,EAAG,KAAK,CAACK,YAAY,YAAY4T,MAAM,CACjUkX,SAAUrrB,EAAIs6B,mBACd,YAAat6B,EAAIu5B,aACjB/4B,MAAM,CAAC,cAAcR,EAAIs6B,qBAAqB,CAACp6B,EAAGF,EAAIs6B,mBAAqB,OAAS,IAAI,CAACtU,IAAI,YAAYzlB,YAAY,mDAAmDC,MAAM,CAAC,aAAaR,EAAIo7B,kBAAkB,KAAOp7B,EAAIq7B,cAAcrc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOjf,EAAIs7B,WAAWrc,EAAQjf,EAAI+F,MAAQ,MAAM,CAAC/F,EAAIoa,GAAG,QAAO,WAAW,MAAO,CAACla,EAAG,OAAO,CAACF,EAAIS,GAAGT,EAAIU,GAAGV,EAAImrB,aAAanrB,EAAIS,GAAG,KAAKP,EAAG,UAAU,CAACM,MAAM,CAAC,KAAO,sBAAqB,KAAK,CAAEq4B,KAAM74B,EAAI+F,MAAQ,EAAGslB,SAAUrrB,EAAIs6B,sBAAuB,IAAI,IAAI,KAAKt6B,EAAIa,MAoB7foP,gBAnBA,SAGE1O,EAkB5BmpB,OAhBuBnpB,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW,O,wCC9YXg6B,EAAgBnO,E,wHAEpB,SAASc,EAAQC,EAAQC,GAAkB,IAAIhsB,EAAOD,OAAOC,KAAK+rB,GAAS,GAAIhsB,OAAOksB,sBAAuB,CAAE,IAAIC,EAAUnsB,OAAOksB,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQzpB,QAAO,SAAU0pB,GAAO,OAAOpsB,OAAOqsB,yBAAyBL,EAAQI,GAAKtB,eAAiB7qB,EAAKkC,KAAKqoB,MAAMvqB,EAAMksB,GAAY,OAAOlsB,EAE9U,SAASqsB,EAAc/L,GAAU,IAAK,IAAInM,EAAI,EAAGA,EAAIqW,UAAU9tB,OAAQyX,IAAK,CAAE,IAAImY,EAAS,MAAQ9B,UAAUrW,GAAKqW,UAAUrW,GAAK,GAAIA,EAAI,EAAI2X,EAAQ/rB,OAAOusB,IAAS,GAAIjoB,SAAQ,SAAUpG,GAAO0sB,EAAgBrK,EAAQriB,EAAKquB,EAAOruB,OAAY8B,OAAOwsB,0BAA4BxsB,OAAOysB,iBAAiBlM,EAAQvgB,OAAOwsB,0BAA0BD,IAAWR,EAAQ/rB,OAAOusB,IAASjoB,SAAQ,SAAUpG,GAAO8B,OAAO6qB,eAAetK,EAAQriB,EAAK8B,OAAOqsB,yBAAyBE,EAAQruB,OAAa,OAAOqiB,EAEjf,SAASqK,EAAgB5jB,EAAK9I,EAAK0F,GAAiK,OAApJ1F,KAAO8I,EAAOhH,OAAO6qB,eAAe7jB,EAAK9I,EAAK,CAAE0F,MAAOA,EAAOknB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBhkB,EAAI9I,GAAO0F,EAAgBoD,EAa3M,IACIqyB,EAA0B,IADD,SAGlB,EAAQ,YAAsB,YAAS/M,EAAcA,EAAc,GAAInuB,EAAA,GAAU,IAA0BysB,EAArBwO,EAAiB,GAHrF,SAGiJ,YAAS,KAAmB,IAASxO,EAAgBwO,EAAgB,WAAY,YAAS,MAAoBxO,EAAgBwO,EAAgB,WAAY,YAAS,KAAmB,IAASxO,EAAgBwO,EAAgB,OAAQ,YAAS,KAAmB,IAASxO,EAAgBwO,EAAgB,SAAU,YAAS,KAAmB,IAASxO,EAAgBwO,EAAgB,MAAO,YAAS,IAAkB,QAASxO,EAAgBwO,EAAgB,QAAS,YAAS,MAAoBxO,EAAgBwO,EAAgB,iBAAkB,YAAS,MAAiCxO,EAAgBwO,EAAgB,sBAAuB,YAAS,MAAoBxO,EAAgBwO,EAAgB,iBAAkB,YAAS,MAAiCA,KAAmB,KAG96BE,EAAoB,YAAO,CACpC/7B,KAAM,IACNugB,OAAQ,CAAC3f,EAAA,EAAS,KAClBgvB,OAAQ,CACNC,UAAW,CACTlxB,QAAS,WACP,OAAO,WACL,MAAO,OAKfP,MAAO,EACPW,KAAM,WACJ,MAAO,CACL4xB,YAAapwB,KAA2B,SAAMA,KAAKorB,WAGvD1sB,SAAU,CACRkxB,OAAQ,WACN,OAAO5vB,KAAKsvB,aAGdmM,OAAQ,WACN,OAAO,GAETC,WAAY,WACV,IAAIjL,EAASzwB,KAAKowB,YAElB,MAAO,CAAC,CACNK,OAAQA,EACRrF,SAHaprB,KAAKorB,SAIlB,YAAaprB,KAAK4vB,OAAOuB,OAASnxB,KAAK27B,QAEzClL,EAASzwB,KAAK4vB,OAAOsB,eAAiB,OAExCoE,aAAc,WACZ,OAAOt1B,KAAK47B,UAAY57B,KAAKyzB,OAAO,sBAEtCoI,eAAgB,WACd,OAAS77B,KAAK4vB,OAAOiC,MAEvBiK,aAAc,WACZ,OAAO97B,KAAK4vB,OAAOvW,MAAQrZ,KAAKqZ,OAGpC9K,OAAQ4e,EAAS,GAAIL,EAAgBK,EApDV,UAoD0C,SAAU6E,EAAUC,GACnFD,IAAaC,IACXD,EAEFhyB,KAAK+7B,WAGA/7B,KAAKg8B,cAGRh8B,KAAKgO,MAAMutB,EAAyBv7B,KAAKowB,iBAI7CtD,EAAgBK,EAAQ,YAAY,SAAkB6E,EAAUC,GAClE,GAAID,IAAaC,EAAU,CACzB,IAAI4C,EAAW70B,KAAK4vB,OAAOiF,SAEvB7C,GAAYhyB,KAAKowB,aAAeyE,IAClC70B,KAAKowB,aAAc,EACnByE,SAGF/H,EAAgBK,EAAQ,eAAe,SAAqB6E,GAE9DhyB,KAAKgO,MAAMutB,EAAyBvJ,MAClC7E,GACJte,QAAS,WAEP7O,KAAK4yB,eAEPqJ,QAAS,WAGP,IAAIlI,EAAe/zB,KAAK4vB,OAAOmE,aAE3BA,GAAgB/zB,KAAKk8B,kBAAkB,MACzCnI,EAAa/zB,OAGjB2yB,cAAe,WAEb3yB,KAAK6yB,iBAEPxzB,QAAS,CAEPuzB,YAAa,WAEX,IAAIA,EAAc5yB,KAAK4vB,OAAOgD,YAE1BA,GACFA,EAAY5yB,OAGhB6yB,cAAe,WAEb,IAAIA,EAAgB7yB,KAAK4vB,OAAOiD,cAE5BA,GACFA,EAAc7yB,OAIlB+7B,SAAU,WAER,IAAI5J,EAAcnyB,KAAK4vB,OAAOuC,YAC9B,SAAOA,GAAgBnyB,KAAKorB,WAAW+G,EAAYnyB,OAErDg8B,WAAY,WAEV,IAAIxH,EAAgBx0B,KAAK4vB,OAAO4E,cAChC,SAAOA,IAAiBx0B,KAAKowB,cAAcoE,EAAcx0B,QAG7D2P,OAAQ,SAAgBke,GACtB,IAAIuC,EAAcpwB,KAAKowB,YACnBsF,EAAW7H,EAAE7tB,KAAK+lB,IAAK,CACzBzlB,YAAa,WACb4T,MAAOlU,KAAK07B,WACZh+B,WAAY,CAAC,CACX+B,KAAM,OACNqG,MAAOsqB,IAET7vB,MAAO,CACLowB,KAAM,WACNtwB,GAAIL,KAAKyzB,SACT,cAAerD,EAAc,QAAU,OACvC,kBAAmBpwB,KAAKs1B,cAAgB,MAE1CvE,IAAK,SAEP,CAACX,IAAgBpwB,KAAK87B,aAAe97B,KAAKgxB,gBAAkBnD,MAC5D,OAAOA,EAAE,IAAc,CACrBhwB,MAAO,CACLs+B,KAAM,SACN3K,OAAQxxB,KAAK67B,iBAEd,CAACnG,O,qCCzHR,MAAMjL,EAzCO,CACXhrB,KAAM,QACNjC,WAAY,CACVg+B,QAEF5Q,cAAc,EACd/sB,MAAO,CACLyyB,eAAgB,CACdvyB,KAAM,CAACO,OAAQN,MAAOkE,QACtBjE,UAAU,EACVG,QAAS,IAKXs4B,gBAAiB,CACf34B,KAAMO,OACNL,UAAU,EACVG,QAAS,OAGbM,SAAU,CACR,YACE,MAAM,eACJ4xB,GACEtwB,KACJ,OAAIhC,MAAMo+B,QAAQ9L,GACT,IAAIA,ECjCkB,mBDmC3B,IAAcA,GACT,IACFA,EACH,mBAAgC,IAG1BA,EAAH,oBAAoD+L,UAa/D,MAeMhR,E,MAAoB,GACxB,CAAE1b,OApBe,WAAa,IAAI5P,EAAIC,KAASsrB,EAAGvrB,EAAIwrB,eAAuC,OAAjBxrB,EAAIG,MAAMD,IAAIqrB,GAAa,QAAQvrB,EAAIyrB,GAAGzrB,EAAI2kB,GAAG,CAACnkB,MAAM,CAAC,mBAAmBR,EAAIu8B,UAAU,oBAAoBv8B,EAAI22B,iBAAiB/R,YAAY5kB,EAAI6kB,GAAG,CAAC7kB,EAAII,GAAI+B,OAAOC,KAAKpC,EAAI2jB,SAAS,SAAS8T,GAAM,MAAO,CAACp3B,IAAIo3B,EAAK3S,GAAG,WAAW,MAAO,CAAC9kB,EAAIoa,GAAGqd,KAAQ1S,OAAM,OAAS,MAAK,IAAO,QAAQ/kB,EAAI0rB,QAAO,GAAO1rB,EAAI2rB,cAoBxW1b,gBAnBA,SAGE1O,EAkB5BmpB,OAhBuBnpB,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW","file":"commons-pages.dashboard.issues-pages.groups.issues-pages.groups.work_items-pages.groups.work_items.s-194b072b.dcf3741d.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._l((_vm.assigneesToShow),function(assignee){return _c('user-avatar-link',{key:assignee.id,staticClass:\"js-no-trigger author-link\",attrs:{\"link-href\":_vm.webUrl(assignee),\"img-alt\":_vm.avatarUrlTitle(assignee),\"img-css-classes\":_vm.imgCssClasses,\"img-css-wrapper-classes\":\"gl-display-inline-flex\",\"img-src\":_vm.avatarUrl(assignee),\"img-size\":_vm.iconSize,\"tooltip-placement\":\"bottom\",\"data-testid\":\"assignee-link\"}},[_c('span',{staticClass:\"js-assignee-tooltip\"},[_c('span',{staticClass:\"bold d-block\"},[_vm._v(_vm._s(_vm.s__('Label|Assignee')))]),_vm._v(\" \"+_vm._s(assignee.name)+\"\\n \"),(assignee.username)?_c('span',{staticClass:\"text-white-50\"},[_vm._v(\"@\"+_vm._s(assignee.username))]):_vm._e()])])}),_vm._v(\" \"),(_vm.numHiddenAssignees > 0)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"avatar-counter\",attrs:{\"title\":_vm.assigneesCounterTooltip,\"data-testid\":\"avatar-counter-content\"}},[_vm._v(_vm._s(_vm.assigneeCounterLabel))]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_assignees.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_assignees.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./issue_assignees.vue?vue&type=template&id=6c375554\"\nimport script from \"./issue_assignees.vue?vue&type=script&lang=js\"\nexport * from \"./issue_assignees.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import produce from 'immer';\nimport { isPositiveInteger } from '~/lib/utils/number_utils';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\nimport {\n FILTERED_SEARCH_TERM,\n OPERATOR_NOT,\n OPERATOR_OR,\n OPERATOR_AFTER,\n OPERATORS_TO_GROUP,\n TOKEN_TYPE_ASSIGNEE,\n TOKEN_TYPE_AUTHOR,\n TOKEN_TYPE_CONFIDENTIAL,\n TOKEN_TYPE_ITERATION,\n TOKEN_TYPE_MILESTONE,\n TOKEN_TYPE_RELEASE,\n TOKEN_TYPE_TYPE,\n TOKEN_TYPE_HEALTH,\n TOKEN_TYPE_LABEL,\n} from '~/vue_shared/components/filtered_search_bar/constants';\nimport { DEFAULT_PAGE_SIZE } from '~/vue_shared/issuable/list/constants';\nimport {\n WORK_ITEM_TO_ISSUE_MAP,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_AWARD_EMOJI,\n EMOJI_THUMBSUP,\n EMOJI_THUMBSDOWN,\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_LABELS,\n} from '~/work_items/constants';\nimport { STATUS_CLOSED, STATUS_OPEN } from '../constants';\nimport {\n ALTERNATIVE_FILTER,\n API_PARAM,\n BLOCKING_ISSUES_ASC,\n BLOCKING_ISSUES_DESC,\n CLOSED_AT_ASC,\n CLOSED_AT_DESC,\n CREATED_ASC,\n CREATED_DESC,\n DUE_DATE_ASC,\n DUE_DATE_DESC,\n filtersMap,\n HEALTH_STATUS_ASC,\n HEALTH_STATUS_DESC,\n LABEL_PRIORITY_ASC,\n LABEL_PRIORITY_DESC,\n MILESTONE_DUE_ASC,\n MILESTONE_DUE_DESC,\n NORMAL_FILTER,\n PARAM_ASSIGNEE_ID,\n POPULARITY_ASC,\n POPULARITY_DESC,\n PRIORITY_ASC,\n PRIORITY_DESC,\n RELATIVE_POSITION_ASC,\n SPECIAL_FILTER,\n specialFilterValues,\n TITLE_ASC,\n TITLE_DESC,\n UPDATED_ASC,\n UPDATED_DESC,\n URL_PARAM,\n urlSortParams,\n WEIGHT_ASC,\n WEIGHT_DESC,\n} from './constants';\n\nexport const getInitialPageParams = (\n pageSize,\n firstPageSize = pageSize ?? DEFAULT_PAGE_SIZE,\n lastPageSize,\n afterCursor,\n beforeCursor,\n) => ({\n firstPageSize: lastPageSize ? undefined : firstPageSize,\n lastPageSize,\n afterCursor,\n beforeCursor,\n});\n\nexport const getSortKey = (sort, sortMap = urlSortParams) =>\n Object.keys(sortMap).find((key) => sortMap[key] === sort);\n\nexport const isSortKey = (sort, sortMap = urlSortParams) => Object.keys(sortMap).includes(sort);\n\nexport const deriveSortKey = ({ sort, sortMap, state = STATUS_OPEN }) => {\n const defaultSortKey = state === STATUS_CLOSED ? UPDATED_DESC : CREATED_DESC;\n const legacySortKey = getSortKey(sort, sortMap);\n const graphQLSortKey = isSortKey(sort?.toUpperCase(), sortMap) && sort.toUpperCase();\n\n return legacySortKey || graphQLSortKey || defaultSortKey;\n};\n\nexport const getSortOptions = ({\n hasBlockedIssuesFeature,\n hasIssuableHealthStatusFeature,\n hasIssueWeightsFeature,\n hasManualSort = true,\n} = {}) => {\n const sortOptions = [\n {\n id: 1,\n title: __('Priority'),\n sortDirection: {\n ascending: PRIORITY_ASC,\n descending: PRIORITY_DESC,\n },\n },\n {\n id: 2,\n title: __('Created date'),\n sortDirection: {\n ascending: CREATED_ASC,\n descending: CREATED_DESC,\n },\n },\n {\n id: 3,\n title: __('Updated date'),\n sortDirection: {\n ascending: UPDATED_ASC,\n descending: UPDATED_DESC,\n },\n },\n {\n id: 4,\n title: __('Closed date'),\n sortDirection: {\n ascending: CLOSED_AT_ASC,\n descending: CLOSED_AT_DESC,\n },\n },\n {\n id: 5,\n title: __('Milestone due date'),\n sortDirection: {\n ascending: MILESTONE_DUE_ASC,\n descending: MILESTONE_DUE_DESC,\n },\n },\n {\n id: 6,\n title: __('Due date'),\n sortDirection: {\n ascending: DUE_DATE_ASC,\n descending: DUE_DATE_DESC,\n },\n },\n {\n id: 7,\n title: __('Popularity'),\n sortDirection: {\n ascending: POPULARITY_ASC,\n descending: POPULARITY_DESC,\n },\n },\n {\n id: 8,\n title: __('Label priority'),\n sortDirection: {\n ascending: LABEL_PRIORITY_ASC,\n descending: LABEL_PRIORITY_DESC,\n },\n },\n hasManualSort && {\n id: 9,\n title: __('Manual'),\n sortDirection: {\n ascending: RELATIVE_POSITION_ASC,\n descending: RELATIVE_POSITION_ASC,\n },\n },\n {\n id: 10,\n title: __('Title'),\n sortDirection: {\n ascending: TITLE_ASC,\n descending: TITLE_DESC,\n },\n },\n ];\n\n if (hasIssuableHealthStatusFeature) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: __('Health'),\n sortDirection: {\n ascending: HEALTH_STATUS_ASC,\n descending: HEALTH_STATUS_DESC,\n },\n });\n }\n\n if (hasIssueWeightsFeature) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: __('Weight'),\n sortDirection: {\n ascending: WEIGHT_ASC,\n descending: WEIGHT_DESC,\n },\n });\n }\n\n if (hasBlockedIssuesFeature) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: __('Blocking'),\n sortDirection: {\n ascending: BLOCKING_ISSUES_ASC,\n descending: BLOCKING_ISSUES_DESC,\n },\n });\n }\n\n return sortOptions.filter((x) => x);\n};\n\nconst tokenTypes = Object.keys(filtersMap);\n\nconst getUrlParams = (tokenType) =>\n Object.values(filtersMap[tokenType][URL_PARAM]).flatMap((filterObj) => Object.values(filterObj));\n\nconst urlParamKeys = tokenTypes.flatMap(getUrlParams);\n\nconst getTokenTypeFromUrlParamKey = (urlParamKey) =>\n tokenTypes.find((tokenType) => getUrlParams(tokenType).includes(urlParamKey));\n\nconst getOperatorFromUrlParamKey = (tokenType, urlParamKey) =>\n Object.entries(filtersMap[tokenType][URL_PARAM]).find(([, filterObj]) =>\n Object.values(filterObj).includes(urlParamKey),\n )[0];\n\nexport const getFilterTokens = (locationSearch) =>\n Array.from(new URLSearchParams(locationSearch).entries())\n .filter(([key]) => urlParamKeys.includes(key))\n .map(([key, data]) => {\n const type = getTokenTypeFromUrlParamKey(key);\n const operator = getOperatorFromUrlParamKey(type, key);\n return {\n type,\n value: { data, operator },\n };\n });\n\nexport function groupMultiSelectFilterTokens(filterTokensToGroup, tokenDefs) {\n const groupedTokens = [];\n\n const multiSelectTokenTypes = tokenDefs.filter((t) => t.multiSelect).map((t) => t.type);\n\n filterTokensToGroup.forEach((token) => {\n const shouldGroup =\n OPERATORS_TO_GROUP.includes(token.value.operator) &&\n multiSelectTokenTypes.includes(token.type);\n\n if (!shouldGroup) {\n groupedTokens.push(token);\n return;\n }\n\n const sameTypeAndOperator = (t) =>\n t.type === token.type && t.value.operator === token.value.operator;\n const existingToken = groupedTokens.find(sameTypeAndOperator);\n\n if (!existingToken) {\n groupedTokens.push({\n ...token,\n value: {\n ...token.value,\n data: [token.value.data],\n },\n });\n } else if (!existingToken.value.data.includes(token.value.data)) {\n existingToken.value.data.push(token.value.data);\n }\n });\n\n return groupedTokens;\n}\n\nexport const isNotEmptySearchToken = (token) =>\n !(token.type === FILTERED_SEARCH_TERM && !token.value.data);\n\nexport const isSpecialFilter = (type, data) => {\n const isAssigneeIdParam =\n type === TOKEN_TYPE_ASSIGNEE &&\n isPositiveInteger(data) &&\n getParameterByName(PARAM_ASSIGNEE_ID) === data;\n return specialFilterValues.includes(data) || isAssigneeIdParam;\n};\n\nconst getFilterType = ({ type, value: { data, operator } }) => {\n const isUnionedAuthor = type === TOKEN_TYPE_AUTHOR && operator === OPERATOR_OR;\n const isUnionedLabel = type === TOKEN_TYPE_LABEL && operator === OPERATOR_OR;\n const isAfter = operator === OPERATOR_AFTER;\n\n if (isUnionedAuthor || isUnionedLabel || isAfter) {\n return ALTERNATIVE_FILTER;\n }\n if (isSpecialFilter(type, data)) {\n return SPECIAL_FILTER;\n }\n return NORMAL_FILTER;\n};\n\nconst wildcardTokens = [TOKEN_TYPE_ITERATION, TOKEN_TYPE_MILESTONE, TOKEN_TYPE_RELEASE];\n\nconst isWildcardValue = (tokenType, value) =>\n wildcardTokens.includes(tokenType) && specialFilterValues.includes(value);\n\nconst isHealthStatusSpecialFilter = (tokenType, value) =>\n tokenType === TOKEN_TYPE_HEALTH && specialFilterValues.includes(value);\n\nconst requiresUpperCaseValue = (tokenType, value) =>\n tokenType === TOKEN_TYPE_TYPE ||\n isWildcardValue(tokenType, value) ||\n isHealthStatusSpecialFilter(tokenType, value);\n\nconst formatData = (token) => {\n if (requiresUpperCaseValue(token.type, token.value.data)) {\n return token.value.data.toUpperCase();\n }\n if (token.type === TOKEN_TYPE_CONFIDENTIAL) {\n return token.value.data === 'yes';\n }\n return token.value.data;\n};\n\nexport const convertToApiParams = (filterTokens) => {\n const params = new Map();\n const not = new Map();\n const or = new Map();\n\n filterTokens.filter(isNotEmptySearchToken).forEach((token) => {\n const filterType = getFilterType(token);\n const apiField = filtersMap[token.type][API_PARAM][filterType];\n let obj;\n if (token.value.operator === OPERATOR_NOT) {\n obj = not;\n } else if (token.value.operator === OPERATOR_OR) {\n obj = or;\n } else {\n obj = params;\n }\n const data = formatData(token);\n obj.set(apiField, obj.has(apiField) ? [obj.get(apiField), data].flat() : data);\n });\n\n if (not.size) {\n params.set('not', Object.fromEntries(not));\n }\n\n if (or.size) {\n params.set('or', Object.fromEntries(or));\n }\n\n return Object.fromEntries(params);\n};\n\nexport const convertToUrlParams = (filterTokens) => {\n const urlParamsMap = filterTokens.filter(isNotEmptySearchToken).reduce((acc, token) => {\n const filterType = getFilterType(token);\n const urlParam = filtersMap[token.type][URL_PARAM][token.value.operator]?.[filterType];\n return acc.set(\n urlParam,\n acc.has(urlParam) ? [acc.get(urlParam), token.value.data].flat() : token.value.data,\n );\n }, new Map());\n\n return Object.fromEntries(urlParamsMap);\n};\n\nexport const convertToSearchQuery = (filterTokens) =>\n filterTokens\n .filter((token) => token.type === FILTERED_SEARCH_TERM && token.value.data)\n .map((token) => token.value.data)\n .join(' ') || undefined;\n\nfunction findWidget(type, workItem) {\n return workItem?.widgets?.find((widget) => widget.type === type);\n}\n\nexport function mapWorkItemWidgetsToIssueFields(issuesList, workItem) {\n return produce(issuesList, (draftData) => {\n const activeItem = draftData.project.issues.nodes.find((issue) => issue.iid === workItem.iid);\n\n Object.keys(WORK_ITEM_TO_ISSUE_MAP).forEach((type) => {\n const currentWidget = findWidget(type, workItem);\n if (!currentWidget) {\n return;\n }\n const property = WORK_ITEM_TO_ISSUE_MAP[type];\n\n // handling the case for assignees and labels\n if (\n property === WORK_ITEM_TO_ISSUE_MAP[WIDGET_TYPE_ASSIGNEES] ||\n property === WORK_ITEM_TO_ISSUE_MAP[WIDGET_TYPE_LABELS]\n ) {\n activeItem[property] = {\n ...currentWidget[property],\n nodes: currentWidget[property].nodes.map((node) => ({\n __persist: true,\n ...node,\n })),\n };\n return;\n }\n\n // handling the case for milestone\n if (property === WORK_ITEM_TO_ISSUE_MAP[WIDGET_TYPE_MILESTONE] && currentWidget[property]) {\n activeItem[property] = { __persist: true, ...currentWidget[property] };\n return;\n }\n activeItem[property] = currentWidget[property];\n });\n\n activeItem.title = workItem.title;\n activeItem.confidential = workItem.confidential;\n });\n}\n\nexport function updateUpvotesCount(issuesList, workItem) {\n const type = WIDGET_TYPE_AWARD_EMOJI;\n const property = WORK_ITEM_TO_ISSUE_MAP[type];\n\n return produce(issuesList, (draftData) => {\n const activeItem = draftData.project.issues.nodes.find((issue) => issue.iid === workItem.iid);\n\n const currentWidget = findWidget(type, workItem);\n if (!currentWidget) {\n return;\n }\n\n const upvotesCount =\n currentWidget[property].nodes.filter((emoji) => emoji.name === EMOJI_THUMBSUP)?.length ?? 0;\n const downvotesCount =\n currentWidget[property].nodes.filter((emoji) => emoji.name === EMOJI_THUMBSDOWN)?.length ?? 0;\n activeItem.upvotes = upvotesCount;\n activeItem.downvotes = downvotesCount;\n });\n}\n","import { getTimeago, localeDateFormat, timeagoLanguageCode } from '~/lib/utils/datetime_utility';\n\n/**\n * Mixin with time ago methods used in some vue components\n */\nexport default {\n methods: {\n timeFormatted(time, format) {\n const timeago = getTimeago(format);\n\n return timeago.format(time, timeagoLanguageCode);\n },\n\n tooltipTitle(time) {\n return localeDateFormat.asDateTimeFull.format(time);\n },\n },\n};\n","/**\n * An event hub with a Vue instance like API\n *\n * NOTE: This is a derivative work from [mitt][1] v1.2.0 which is licensed by\n * [MIT License][2] © [Jason Miller][3]\n *\n * [1]: https://github.com/developit/mitt\n * [2]: https://opensource.org/licenses/MIT\n * [3]: https://jasonformat.com/\n */\nclass EventHub {\n constructor() {\n this.$_all = new Map();\n }\n\n dispose() {\n this.$_all.clear();\n }\n\n /**\n * Register an event handler for the given type.\n *\n * @param {string|symbol} type Type of event to listen for\n * @param {Function} handler Function to call in response to given event\n */\n $on(type, handler) {\n const handlers = this.$_all.get(type);\n const added = handlers && handlers.push(handler);\n\n if (!added) {\n this.$_all.set(type, [handler]);\n }\n }\n\n /**\n * Remove an event handler or all handlers for the given type.\n *\n * @param {string|symbol} type Type of event to unregister `handler`\n * @param {Function} handler Handler function to remove\n */\n $off(type, handler) {\n const handlers = this.$_all.get(type) || [];\n\n const newHandlers = handler ? handlers.filter((x) => x !== handler) : [];\n\n if (newHandlers.length) {\n this.$_all.set(type, newHandlers);\n } else {\n this.$_all.delete(type);\n }\n }\n\n /**\n * Add an event listener to type but only trigger it once\n *\n * @param {string|symbol} type Type of event to listen for\n * @param {Function} handler Handler function to call in response to event\n */\n $once(type, handler) {\n const wrapHandler = (...args) => {\n this.$off(type, wrapHandler);\n handler(...args);\n };\n this.$on(type, wrapHandler);\n }\n\n /**\n * Invoke all handlers for the given type.\n *\n * @param {string|symbol} type The event type to invoke\n * @param {Any} [evt] Any value passed to each handler\n */\n $emit(type, ...args) {\n const handlers = this.$_all.get(type) || [];\n\n handlers.forEach((handler) => {\n handler(...args);\n });\n }\n}\n\n/**\n * Return a Vue like event hub\n *\n * - $on\n * - $off\n * - $once\n * - $emit\n *\n * We'd like to shy away from using a full fledged Vue instance from this in the future.\n */\nexport default () => {\n return new EventHub();\n};\n","module.exports = require('./lib/visibility.timers.js')\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./local_storage_sync.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./local_storage_sync.vue?vue&type=script&lang=js\"","\n","var render, staticRenderFns\nimport script from \"./local_storage_sync.vue?vue&type=script&lang=js\"\nexport * from \"./local_storage_sync.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import {\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_HEALTH_STATUS,\n WIDGET_TYPE_HIERARCHY,\n WIDGET_TYPE_LABELS,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_NOTES,\n WIDGET_TYPE_START_AND_DUE_DATE,\n WIDGET_TYPE_WEIGHT,\n ISSUABLE_EPIC,\n WORK_ITEMS_TYPE_MAP,\n WORK_ITEM_TYPE_ENUM_EPIC,\n} from './constants';\n\nexport const isAssigneesWidget = (widget) => widget.type === WIDGET_TYPE_ASSIGNEES;\n\nexport const isHealthStatusWidget = (widget) => widget.type === WIDGET_TYPE_HEALTH_STATUS;\n\nexport const isLabelsWidget = (widget) => widget.type === WIDGET_TYPE_LABELS;\n\nexport const isMilestoneWidget = (widget) => widget.type === WIDGET_TYPE_MILESTONE;\n\nexport const isNotesWidget = (widget) => widget.type === WIDGET_TYPE_NOTES;\n\nexport const isStartAndDueDateWidget = (widget) => widget.type === WIDGET_TYPE_START_AND_DUE_DATE;\n\nexport const isWeightWidget = (widget) => widget.type === WIDGET_TYPE_WEIGHT;\n\nexport const findHierarchyWidgets = (widgets) =>\n widgets?.find((widget) => widget.type === WIDGET_TYPE_HIERARCHY);\n\nexport const findHierarchyWidgetChildren = (workItem) =>\n findHierarchyWidgets(workItem?.widgets)?.children?.nodes || [];\n\nexport const findHierarchyWidgetAncestors = (workItem) =>\n findHierarchyWidgets(workItem?.widgets)?.ancestors?.nodes || [];\n\nexport const getWorkItemIcon = (icon) => {\n if (icon === ISSUABLE_EPIC) return WORK_ITEMS_TYPE_MAP[WORK_ITEM_TYPE_ENUM_EPIC].icon;\n return icon;\n};\n\nexport const formatAncestors = (workItem) =>\n findHierarchyWidgetAncestors(workItem).map((ancestor) => ({\n ...ancestor,\n icon: getWorkItemIcon(ancestor.workItemType?.iconName),\n href: ancestor.webUrl,\n }));\n\nexport const findHierarchyWidgetDefinition = (widgetDefinitions) =>\n widgetDefinitions?.find((widgetDefinition) => widgetDefinition.type === WIDGET_TYPE_HIERARCHY);\n\nconst autocompleteSourcesPath = ({ autocompleteType, fullPath, iid, isGroup }) => {\n const domain = gon.relative_url_root || '';\n const basePath = isGroup ? `groups/${fullPath}` : fullPath;\n return `${domain}/${basePath}/-/autocomplete_sources/${autocompleteType}?type=WorkItem&type_id=${iid}`;\n};\n\nexport const autocompleteDataSources = ({ fullPath, iid, isGroup = false }) => ({\n labels: autocompleteSourcesPath({ autocompleteType: 'labels', fullPath, iid, isGroup }),\n members: autocompleteSourcesPath({ autocompleteType: 'members', fullPath, iid, isGroup }),\n commands: autocompleteSourcesPath({ autocompleteType: 'commands', fullPath, iid, isGroup }),\n});\n\nexport const markdownPreviewPath = ({ fullPath, iid, isGroup = false }) => {\n const domain = gon.relative_url_root || '';\n const basePath = isGroup ? `groups/${fullPath}` : fullPath;\n return `${domain}/${basePath}/preview_markdown?target_type=WorkItem&target_id=${iid}`;\n};\n\nexport const isReference = (input) => {\n /**\n * The regular expression checks if the `value` is\n * a project work item or group work item.\n * e.g., gitlab-org/project-path#101 or gitlab-org&101\n * or #1234\n */\n\n return /^([\\w-]+(?:\\/[\\w-]+)*)?[#&](\\d+)$/.test(input);\n};\n\nexport const sortNameAlphabetically = (a, b) => {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n};\n","import { STATUS_ALL, STATUS_CLOSED, STATUS_OPEN, STATUS_MERGED } from '~/issues/constants';\nimport { __ } from '~/locale';\n\nexport const issuableListTabs = [\n {\n id: 'state-opened',\n name: STATUS_OPEN,\n title: __('Open'),\n titleTooltip: __('Filter by issues that are currently opened.'),\n },\n {\n id: 'state-closed',\n name: STATUS_CLOSED,\n title: __('Closed'),\n titleTooltip: __('Filter by issues that are currently closed.'),\n },\n {\n id: 'state-all',\n name: STATUS_ALL,\n title: __('All'),\n titleTooltip: __('Show all issues.'),\n },\n];\n\nexport const mergeRequestListTabs = [\n {\n id: 'state-opened',\n name: STATUS_OPEN,\n title: __('Open'),\n titleTooltip: __('Filter by merge requests that are currently opened.'),\n },\n {\n id: 'state-merged',\n name: STATUS_MERGED,\n title: __('Merged'),\n titleTooltip: __('Filter by merge requests that are merged.'),\n },\n {\n id: 'state-closed',\n name: STATUS_CLOSED,\n title: __('Closed'),\n titleTooltip: __('Filter by merge requests that are currently closed.'),\n },\n {\n id: 'state-all',\n name: STATUS_ALL,\n title: __('All'),\n titleTooltip: __('Show all merge requests.'),\n },\n];\n\nexport const availableSortOptions = [\n {\n id: 1,\n title: __('Created date'),\n sortDirection: {\n descending: 'created_desc',\n ascending: 'created_asc',\n },\n },\n {\n id: 2,\n title: __('Updated date'),\n sortDirection: {\n descending: 'updated_desc',\n ascending: 'updated_asc',\n },\n },\n];\n\nexport const DEFAULT_PAGE_SIZE = 20;\n\nexport const DEFAULT_SKELETON_COUNT = 5;\n\nexport const PAGE_SIZE_STORAGE_KEY = 'issuable_list_page_size';\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:(_vm.showTooltipOnHover),expression:\"showTooltipOnHover\",modifiers:{\"hover\":true}}],staticClass:\"gl-text-secondary\",attrs:{\"name\":_vm.iconName,\"title\":_vm.workItemTooltipTitle}}),_vm._v(\" \"),(_vm.workItemTypeName)?_c('span',{class:{ 'gl-sr-only': !_vm.showText }},[_vm._v(_vm._s(_vm.workItemTypeName))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_type_icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_type_icon.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./work_item_type_icon.vue?vue&type=template&id=128612ee\"\nimport script from \"./work_item_type_icon.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_type_icon.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports",";(function (window) {\n \"use strict\";\n\n var lastTimer = -1;\n\n var install = function (Visibility) {\n\n // Run callback every `interval` milliseconds if page is visible and\n // every `hiddenInterval` milliseconds if page is hidden.\n //\n // Visibility.every(60 * 1000, 5 * 60 * 1000, function () {\n // checkNewMails();\n // });\n //\n // You can skip `hiddenInterval` and callback will be called only if\n // page is visible.\n //\n // Visibility.every(1000, function () {\n // updateCountdown();\n // });\n //\n // It is analog of `setInterval(callback, interval)` but use visibility\n // state.\n //\n // It return timer ID, that you can use in `Visibility.stop(id)` to stop\n // timer (`clearInterval` analog).\n // Warning: timer ID is different from interval ID from `setInterval`,\n // so don’t use it in `clearInterval`.\n //\n // On change state from hidden to visible timers will be execute.\n Visibility.every = function (interval, hiddenInterval, callback) {\n Visibility._time();\n\n if ( !callback ) {\n callback = hiddenInterval;\n hiddenInterval = null;\n }\n\n lastTimer += 1;\n var number = lastTimer;\n\n Visibility._timers[number] = {\n visible: interval,\n hidden: hiddenInterval,\n callback: callback\n };\n Visibility._run(number, false);\n\n if ( Visibility.isSupported() ) {\n Visibility._listen();\n }\n return number;\n };\n\n // Stop timer from `every` method by it ID (`every` method return it).\n //\n // slideshow = Visibility.every(5 * 1000, function () {\n // changeSlide();\n // });\n // $('.stopSlideshow').click(function () {\n // Visibility.stop(slideshow);\n // });\n Visibility.stop = function(id) {\n if ( !Visibility._timers[id] ) {\n return false;\n }\n Visibility._stop(id);\n delete Visibility._timers[id];\n return true;\n };\n\n // Callbacks and intervals added by `every` method.\n Visibility._timers = { };\n\n // Initialize variables on page loading.\n Visibility._time = function () {\n if ( Visibility._timed ) {\n return;\n }\n Visibility._timed = true;\n Visibility._wasHidden = Visibility.hidden();\n\n Visibility.change(function () {\n Visibility._stopRun();\n Visibility._wasHidden = Visibility.hidden();\n });\n };\n\n // Try to run timer from every method by it’s ID. It will be use\n // `interval` or `hiddenInterval` depending on visibility state.\n // If page is hidden and `hiddenInterval` is null,\n // it will not run timer.\n //\n // Argument `runNow` say, that timers must be execute now too.\n Visibility._run = function (id, runNow) {\n var interval,\n timer = Visibility._timers[id];\n\n if ( Visibility.hidden() ) {\n if ( null === timer.hidden ) {\n return;\n }\n interval = timer.hidden;\n } else {\n interval = timer.visible;\n }\n\n var runner = function () {\n timer.last = new Date();\n timer.callback.call(window);\n }\n\n if ( runNow ) {\n var now = new Date();\n var last = now - timer.last ;\n\n if ( interval > last ) {\n timer.delay = setTimeout(function () {\n timer.id = setInterval(runner, interval);\n runner();\n }, interval - last);\n } else {\n timer.id = setInterval(runner, interval);\n runner();\n }\n\n } else {\n timer.id = setInterval(runner, interval);\n }\n };\n\n // Stop timer from `every` method by it’s ID.\n Visibility._stop = function (id) {\n var timer = Visibility._timers[id];\n clearInterval(timer.id);\n clearTimeout(timer.delay);\n delete timer.id;\n delete timer.delay;\n };\n\n // Listener for `visibilitychange` event.\n Visibility._stopRun = function (event) {\n var isHidden = Visibility.hidden(),\n wasHidden = Visibility._wasHidden;\n\n if ( (isHidden && !wasHidden) || (!isHidden && wasHidden) ) {\n for ( var i in Visibility._timers ) {\n Visibility._stop(i);\n Visibility._run(i, !isHidden);\n }\n }\n };\n\n return Visibility;\n }\n\n if ( typeof(module) != 'undefined' && module.exports ) {\n module.exports = install(require('./visibility.core'));\n } else {\n install(window.Visibility)\n }\n\n})(window);\n","import { formatNumber, sprintf, __ } from '~/locale';\nimport { BYTES_IN_KIB, THOUSAND } from './constants';\n\n/**\n * Function that allows a number with an X amount of decimals\n * to be formatted in the following fashion:\n * * For 1 digit to the left of the decimal point and X digits to the right of it\n * * * Show 3 digits to the right\n * * For 2 digits to the left of the decimal point and X digits to the right of it\n * * * Show 2 digits to the right\n */\nexport function formatRelevantDigits(number) {\n let digitsLeft = '';\n let relevantDigits = 0;\n let formattedNumber = '';\n if (!Number.isNaN(Number(number))) {\n [digitsLeft] = number.toString().split('.');\n switch (digitsLeft.length) {\n case 1:\n relevantDigits = 3;\n break;\n case 2:\n relevantDigits = 2;\n break;\n case 3:\n relevantDigits = 1;\n break;\n default:\n relevantDigits = 4;\n break;\n }\n formattedNumber = Number(number).toFixed(relevantDigits);\n }\n return formattedNumber;\n}\n\n/**\n * Utility function that calculates KiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} KiB\n */\nexport function bytesToKiB(number) {\n return number / BYTES_IN_KIB;\n}\n\n/**\n * Utility function that calculates MiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} MiB\n */\nexport function bytesToMiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Utility function that calculates GiB of the given bytes.\n * @param {Number} number\n * @returns {Number}\n */\nexport function bytesToGiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Formats the bytes in number into a more understandable\n * representation. Returns an array with the first value being the human size\n * and the second value being the label (e.g., [1.5, 'KiB']).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string[]}\n */\nexport function numberToHumanSizeSplit({ size, digits = 2, locale } = {}) {\n const abs = Math.abs(size);\n const digitsOptions = { minimumFractionDigits: digits, maximumFractionDigits: digits };\n const formatNumberWithLocaleAndDigits = (n) => formatNumber(n, digitsOptions, locale);\n\n if (abs < BYTES_IN_KIB) {\n return [size.toString(), __('B')];\n }\n if (abs < BYTES_IN_KIB ** 2) {\n return [formatNumberWithLocaleAndDigits(bytesToKiB(size)), __('KiB')];\n }\n if (abs < BYTES_IN_KIB ** 3) {\n return [formatNumberWithLocaleAndDigits(bytesToMiB(size)), __('MiB')];\n }\n return [formatNumberWithLocaleAndDigits(bytesToGiB(size)), __('GiB')];\n}\n\n/**\n * Port of rails number_to_human_size\n * Formats the bytes in number into a more understandable\n * representation (e.g., giving it 1536 yields 1.5 KiB).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string}\n */\nexport function numberToHumanSize(size, digits = 2, locale) {\n const [humanSize, label] = numberToHumanSizeSplit({ size, digits, locale });\n\n switch (label) {\n case __('B'):\n return sprintf(__('%{size} B'), { size: humanSize });\n case __('KiB'):\n return sprintf(__('%{size} KiB'), { size: humanSize });\n case __('MiB'):\n return sprintf(__('%{size} MiB'), { size: humanSize });\n case __('GiB'):\n return sprintf(__('%{size} GiB'), { size: humanSize });\n default:\n return '';\n }\n}\n\n/**\n * Converts a number to kilos or megas.\n *\n * For example:\n * - 123 becomes 123\n * - 123456 becomes 123.4k\n * - 123456789 becomes 123.4m\n *\n * @param number Number to format\n * @param digits The number of digits to appear after the decimal point\n * @return {string} Formatted number\n */\nexport function numberToMetricPrefix(number, digits = 1) {\n if (number < THOUSAND) {\n return number.toString();\n }\n if (number < THOUSAND ** 2) {\n return `${Number((number / THOUSAND).toFixed(digits))}k`;\n }\n return `${Number((number / THOUSAND ** 2).toFixed(digits))}m`;\n}\n/**\n * A simple method that returns the value of a + b\n * It seems unessesary, but when combined with a reducer it\n * adds up all the values in an array.\n *\n * e.g. `[1, 2, 3, 4, 5].reduce(sum) // => 15`\n *\n * @param {Float} a\n * @param {Float} b\n * @example\n * // return 15\n * [1, 2, 3, 4, 5].reduce(sum);\n *\n * // returns 6\n * Object.values([{a: 1, b: 2, c: 3].reduce(sum);\n * @returns {Float} The summed value\n */\nexport const sum = (a = 0, b = 0) => a + b;\n\n/**\n * Checks if the provided number is odd\n * @param {Int} number\n */\nexport const isOdd = (number = 0) => number % 2;\n\n/**\n * Computes the median for a given array.\n * @param {Array} arr An array of numbers\n * @returns {Number} The median of the given array\n */\nexport const median = (arr) => {\n const middle = Math.floor(arr.length / 2);\n const sorted = arr.sort((a, b) => a - b);\n return arr.length % 2 !== 0 ? sorted[middle] : (sorted[middle - 1] + sorted[middle]) / 2;\n};\n\n/**\n * Computes the change from one value to the other as a percentage.\n * @param {Number} firstY\n * @param {Number} lastY\n * @returns {Number}\n */\nexport const changeInPercent = (firstY, lastY) => {\n if (firstY === lastY) {\n return 0;\n }\n\n return Math.round(((lastY - firstY) / Math.abs(firstY)) * 100);\n};\n\n/**\n * Computes and formats the change from one value to the other as a percentage.\n * Prepends the computed percentage with either \"+\" or \"-\" to indicate an in- or decrease and\n * returns a given string if the result is not finite (for example, if the first value is \"0\").\n * @param firstY\n * @param lastY\n * @param nonFiniteResult\n * @returns {String}\n */\nexport const formattedChangeInPercent = (firstY, lastY, { nonFiniteResult = '-' } = {}) => {\n const change = changeInPercent(firstY, lastY);\n\n if (!Number.isFinite(change)) {\n return nonFiniteResult;\n }\n\n return `${change >= 0 ? '+' : ''}${change}%`;\n};\n\n/**\n * Checks whether a value is numerical in nature by converting it using parseInt\n *\n * Example outcomes:\n * - isNumeric(100) = true\n * - isNumeric('100') = true\n * - isNumeric(1.0) = true\n * - isNumeric('1.0') = true\n * - isNumeric('abc100') = false\n * - isNumeric('abc') = false\n * - isNumeric(true) = false\n * - isNumeric(undefined) = false\n * - isNumeric(null) = false\n *\n * @param value\n * @returns {boolean}\n */\nexport const isNumeric = (value) => {\n return !Number.isNaN(parseInt(value, 10));\n};\n\nconst numberRegex = /^[0-9]+$/;\n\n/**\n * Checks whether the value is a positive number or 0, or a string with equivalent value\n *\n * @param value\n * @return {boolean}\n */\nexport const isPositiveInteger = (value) => numberRegex.test(value);\n","export const DRAG_CLASS = 'is-dragging';\nexport const DRAG_DELAY = 100;\n\n/**\n * Default config options for sortablejs.\n * @type {object}\n *\n * @example\n * import Sortable from 'sortablejs';\n *\n * const sortable = Sortable.create(el, {\n * ...defaultSortableOptions,\n * });\n */\nexport const defaultSortableOptions = {\n animation: 200,\n forceFallback: true,\n fallbackClass: DRAG_CLASS,\n fallbackOnBody: true,\n ghostClass: 'is-ghost',\n fallbackTolerance: 1,\n};\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar-link',{staticClass:\"user-avatar-link js-user-link\",attrs:{\"href\":_vm.linkHref,\"data-user-id\":_vm.userId,\"data-username\":_vm.popoverUsername}},[_c('user-avatar-image',{class:_vm.imgCssWrapperClasses,attrs:{\"img-src\":_vm.imgSrc,\"img-alt\":_vm.imgAlt,\"css-classes\":_vm.imgCssClasses,\"size\":_vm.imgSize,\"tooltip-text\":_vm.avatarTooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"lazy\":_vm.lazy}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldShowUsername)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-1\",attrs:{\"title\":_vm.tooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"data-testid\":\"user-avatar-link-username\"}},[_vm._v(\"\\n \"+_vm._s(_vm.username)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./user_avatar_link.vue?vue&type=template&id=1d58c6a0\"\nimport script from \"./user_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { __, s__ } from '~/locale';\nimport {\n FILTER_ANY,\n FILTER_CURRENT,\n FILTER_NONE,\n FILTER_STARTED,\n FILTER_UPCOMING,\n FILTERED_SEARCH_TERM,\n OPERATOR_IS,\n OPERATOR_NOT,\n OPERATOR_OR,\n OPERATOR_AFTER,\n OPERATOR_BEFORE,\n TOKEN_TYPE_ASSIGNEE,\n TOKEN_TYPE_AUTHOR,\n TOKEN_TYPE_CONFIDENTIAL,\n TOKEN_TYPE_CONTACT,\n TOKEN_TYPE_EPIC,\n TOKEN_TYPE_HEALTH,\n TOKEN_TYPE_ITERATION,\n TOKEN_TYPE_LABEL,\n TOKEN_TYPE_MILESTONE,\n TOKEN_TYPE_MY_REACTION,\n TOKEN_TYPE_ORGANIZATION,\n TOKEN_TYPE_RELEASE,\n TOKEN_TYPE_TYPE,\n TOKEN_TYPE_WEIGHT,\n TOKEN_TYPE_SEARCH_WITHIN,\n TOKEN_TYPE_CREATED,\n TOKEN_TYPE_CLOSED,\n} from '~/vue_shared/components/filtered_search_bar/constants';\nimport {\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_TEST_CASE,\n WORK_ITEM_TYPE_ENUM_TASK,\n} from '~/work_items/constants';\n\nexport const ISSUE_REFERENCE = /^#\\d+$/;\nexport const MAX_LIST_SIZE = 10;\nexport const PARAM_ASSIGNEE_ID = 'assignee_id';\nexport const PARAM_FIRST_PAGE_SIZE = 'first_page_size';\nexport const PARAM_LAST_PAGE_SIZE = 'last_page_size';\nexport const PARAM_PAGE_AFTER = 'page_after';\nexport const PARAM_PAGE_BEFORE = 'page_before';\nexport const PARAM_SORT = 'sort';\nexport const PARAM_STATE = 'state';\nexport const RELATIVE_POSITION = 'relative_position';\n\nexport const BLOCKING_ISSUES_ASC = 'BLOCKING_ISSUES_ASC';\nexport const BLOCKING_ISSUES_DESC = 'BLOCKING_ISSUES_DESC';\nexport const CLOSED_AT_ASC = 'CLOSED_AT_ASC';\nexport const CLOSED_AT_DESC = 'CLOSED_AT_DESC';\nexport const CREATED_ASC = 'CREATED_ASC';\nexport const CREATED_DESC = 'CREATED_DESC';\nexport const DUE_DATE_ASC = 'DUE_DATE_ASC';\nexport const DUE_DATE_DESC = 'DUE_DATE_DESC';\nexport const HEALTH_STATUS_ASC = 'HEALTH_STATUS_ASC';\nexport const HEALTH_STATUS_DESC = 'HEALTH_STATUS_DESC';\nexport const LABEL_PRIORITY_ASC = 'LABEL_PRIORITY_ASC';\nexport const LABEL_PRIORITY_DESC = 'LABEL_PRIORITY_DESC';\nexport const MILESTONE_DUE_ASC = 'MILESTONE_DUE_ASC';\nexport const MILESTONE_DUE_DESC = 'MILESTONE_DUE_DESC';\nexport const POPULARITY_ASC = 'POPULARITY_ASC';\nexport const POPULARITY_DESC = 'POPULARITY_DESC';\nexport const PRIORITY_ASC = 'PRIORITY_ASC';\nexport const PRIORITY_DESC = 'PRIORITY_DESC';\nexport const RELATIVE_POSITION_ASC = 'RELATIVE_POSITION_ASC';\nexport const TITLE_ASC = 'TITLE_ASC';\nexport const TITLE_DESC = 'TITLE_DESC';\nexport const UPDATED_ASC = 'UPDATED_ASC';\nexport const UPDATED_DESC = 'UPDATED_DESC';\nexport const WEIGHT_ASC = 'WEIGHT_ASC';\nexport const WEIGHT_DESC = 'WEIGHT_DESC';\n\nexport const API_PARAM = 'apiParam';\nexport const URL_PARAM = 'urlParam';\nexport const NORMAL_FILTER = 'normalFilter';\nexport const SPECIAL_FILTER = 'specialFilter';\nexport const ALTERNATIVE_FILTER = 'alternativeFilter';\n\nexport const ISSUES_VIEW_TYPE_KEY = 'issuesViewType';\nexport const ISSUES_LIST_VIEW_KEY = 'List';\nexport const ISSUES_GRID_VIEW_KEY = 'Grid';\n\nexport const i18n = {\n actionsLabel: __('Actions'),\n calendarLabel: __('Subscribe to calendar'),\n closed: __('Closed'),\n closedMoved: __('Closed (moved)'),\n confidentialNo: __('No'),\n confidentialYes: __('Yes'),\n downvotes: __('Downvotes'),\n editIssues: __('Bulk edit'),\n errorFetchingCounts: __('An error occurred while getting issue counts'),\n errorFetchingIssues: __('An error occurred while loading issues'),\n importIssues: __('Import issues'),\n issueRepositioningMessage: __(\n 'Issues are being rebalanced at the moment, so manual reordering is disabled.',\n ),\n jiraIntegrationMessage: s__(\n 'JiraService|%{jiraDocsLinkStart}Enable the Jira integration%{jiraDocsLinkEnd} to view your Jira issues in GitLab.',\n ),\n jiraIntegrationSecondaryMessage: s__('JiraService|This feature requires a Premium plan.'),\n jiraIntegrationTitle: s__('JiraService|Using Jira for issue tracking?'),\n newIssueLabel: __('New issue'),\n newProjectLabel: __('New project'),\n noClosedIssuesTitle: __('There are no closed issues'),\n noGroupIssuesSignedInDescription: __(\n 'Issues exist in projects, so to create an issue, first create a project.',\n ),\n noOpenIssuesDescription: __('To keep this project going, create a new issue'),\n noOpenIssuesTitle: __('There are no open issues'),\n noIssuesDescription: __('Learn more about issues.'),\n noIssuesTitle: __('Use issues to collaborate on ideas, solve problems, and plan work'),\n noIssuesSignedOutButtonText: __('Register / Sign In'),\n noSearchNoFilterTitle: __('Please select at least one filter to see results'),\n noSearchResultsDescription: __('To widen your search, change or remove filters above'),\n noSearchResultsTitle: __('Sorry, your filter produced no results'),\n relatedMergeRequests: __('Related merge requests'),\n reorderError: __('An error occurred while reordering issues.'),\n deleteError: __('An error occurred while deleting an issuable.'),\n rssLabel: __('Subscribe to RSS feed'),\n upvotes: __('Upvotes'),\n titles: __('Titles'),\n descriptions: __('Descriptions'),\n listLabel: __('List'),\n gridLabel: __('Grid'),\n};\n\nexport const urlSortParams = {\n [PRIORITY_ASC]: 'priority',\n [PRIORITY_DESC]: 'priority_desc',\n [CREATED_ASC]: 'created_asc',\n [CREATED_DESC]: 'created_date',\n [UPDATED_ASC]: 'updated_asc',\n [UPDATED_DESC]: 'updated_desc',\n [CLOSED_AT_ASC]: 'closed_at',\n [CLOSED_AT_DESC]: 'closed_at_desc',\n [MILESTONE_DUE_ASC]: 'milestone',\n [MILESTONE_DUE_DESC]: 'milestone_due_desc',\n [DUE_DATE_ASC]: 'due_date',\n [DUE_DATE_DESC]: 'due_date_desc',\n [POPULARITY_ASC]: 'popularity_asc',\n [POPULARITY_DESC]: 'popularity',\n [LABEL_PRIORITY_ASC]: 'label_priority',\n [LABEL_PRIORITY_DESC]: 'label_priority_desc',\n [RELATIVE_POSITION_ASC]: RELATIVE_POSITION,\n [TITLE_ASC]: 'title_asc',\n [TITLE_DESC]: 'title_desc',\n [HEALTH_STATUS_ASC]: 'health_status_asc',\n [HEALTH_STATUS_DESC]: 'health_status_desc',\n [WEIGHT_ASC]: 'weight',\n [WEIGHT_DESC]: 'weight_desc',\n [BLOCKING_ISSUES_ASC]: 'blocking_issues_asc',\n [BLOCKING_ISSUES_DESC]: 'blocking_issues_desc',\n};\n\nexport const specialFilterValues = [\n FILTER_NONE,\n FILTER_ANY,\n FILTER_CURRENT,\n FILTER_UPCOMING,\n FILTER_STARTED,\n];\n\nexport const TYPE_TOKEN_EPIC_OPTION = {\n icon: 'epic',\n title: __('Epic'),\n value: 'epic',\n};\n\nexport const TYPE_TOKEN_OBJECTIVE_OPTION = {\n icon: 'issue-type-objective',\n title: s__('WorkItem|Objective'),\n value: 'objective',\n};\n\nexport const TYPE_TOKEN_KEY_RESULT_OPTION = {\n icon: 'issue-type-keyresult',\n title: s__('WorkItem|Key Result'),\n value: 'key_result',\n};\n\n// This should be consistent with Issue::TYPES_FOR_LIST in the backend\n// https://gitlab.com/gitlab-org/gitlab/-/blob/1379c2d7bffe2a8d809f23ac5ef9b4114f789c07/app/models/issue.rb#L48\nexport const defaultWorkItemTypes = [\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_TEST_CASE,\n WORK_ITEM_TYPE_ENUM_TASK,\n];\n\nexport const defaultTypeTokenOptions = [\n { icon: 'issue-type-issue', title: s__('WorkItem|Issue'), value: 'issue' },\n { icon: 'issue-type-incident', title: s__('WorkItem|Incident'), value: 'incident' },\n { icon: 'issue-type-test-case', title: s__('WorkItem|Test case'), value: 'test_case' },\n { icon: 'issue-type-task', title: s__('WorkItem|Task'), value: 'task' },\n];\n\nexport const filtersMap = {\n [FILTERED_SEARCH_TERM]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'search',\n },\n [URL_PARAM]: {\n [undefined]: {\n [NORMAL_FILTER]: 'search',\n },\n },\n },\n [TOKEN_TYPE_AUTHOR]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'authorUsername',\n [ALTERNATIVE_FILTER]: 'authorUsernames',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'author_username',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[author_username]',\n },\n [OPERATOR_OR]: {\n [ALTERNATIVE_FILTER]: 'or[author_username]',\n },\n },\n },\n [TOKEN_TYPE_SEARCH_WITHIN]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'in',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'in',\n },\n },\n },\n [TOKEN_TYPE_ASSIGNEE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'assigneeUsernames',\n [SPECIAL_FILTER]: 'assigneeId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'assignee_username[]',\n [SPECIAL_FILTER]: 'assignee_id',\n [ALTERNATIVE_FILTER]: 'assignee_username',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[assignee_username][]',\n },\n [OPERATOR_OR]: {\n [NORMAL_FILTER]: 'or[assignee_username][]',\n },\n },\n },\n [TOKEN_TYPE_MILESTONE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'milestoneTitle',\n [SPECIAL_FILTER]: 'milestoneWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'milestone_title',\n [SPECIAL_FILTER]: 'milestone_title',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[milestone_title]',\n [SPECIAL_FILTER]: 'not[milestone_title]',\n },\n },\n },\n [TOKEN_TYPE_LABEL]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'labelName',\n [SPECIAL_FILTER]: 'labelName',\n [ALTERNATIVE_FILTER]: 'labelNames',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'label_name[]',\n [SPECIAL_FILTER]: 'label_name[]',\n [ALTERNATIVE_FILTER]: 'label_name',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[label_name][]',\n },\n [OPERATOR_OR]: {\n [ALTERNATIVE_FILTER]: 'or[label_name][]',\n },\n },\n },\n [TOKEN_TYPE_TYPE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'types',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'type[]',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[type][]',\n },\n },\n },\n [TOKEN_TYPE_RELEASE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'releaseTag',\n [SPECIAL_FILTER]: 'releaseTagWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'release_tag',\n [SPECIAL_FILTER]: 'release_tag',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[release_tag]',\n },\n },\n },\n [TOKEN_TYPE_MY_REACTION]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'myReactionEmoji',\n [SPECIAL_FILTER]: 'myReactionEmoji',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'my_reaction_emoji',\n [SPECIAL_FILTER]: 'my_reaction_emoji',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[my_reaction_emoji]',\n },\n },\n },\n [TOKEN_TYPE_CONFIDENTIAL]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'confidential',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'confidential',\n },\n },\n },\n [TOKEN_TYPE_ITERATION]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'iterationId',\n [SPECIAL_FILTER]: 'iterationWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'iteration_id',\n [SPECIAL_FILTER]: 'iteration_id',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[iteration_id]',\n [SPECIAL_FILTER]: 'not[iteration_id]',\n },\n },\n },\n [TOKEN_TYPE_EPIC]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'epicId',\n [SPECIAL_FILTER]: 'epicId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'epic_id',\n [SPECIAL_FILTER]: 'epic_id',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[epic_id]',\n },\n },\n },\n [TOKEN_TYPE_WEIGHT]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'weight',\n [SPECIAL_FILTER]: 'weight',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'weight',\n [SPECIAL_FILTER]: 'weight',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[weight]',\n },\n },\n },\n [TOKEN_TYPE_HEALTH]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'healthStatusFilter',\n [SPECIAL_FILTER]: 'healthStatusFilter',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'health_status',\n [SPECIAL_FILTER]: 'health_status',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[health_status]',\n },\n },\n },\n [TOKEN_TYPE_CONTACT]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'crmContactId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'crm_contact_id',\n },\n },\n },\n [TOKEN_TYPE_ORGANIZATION]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'crmOrganizationId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'crm_organization_id',\n },\n },\n },\n [TOKEN_TYPE_CREATED]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'createdBefore',\n [ALTERNATIVE_FILTER]: 'createdAfter',\n },\n [URL_PARAM]: {\n [OPERATOR_AFTER]: {\n [ALTERNATIVE_FILTER]: 'created_after',\n },\n [OPERATOR_BEFORE]: {\n [NORMAL_FILTER]: 'created_before',\n },\n },\n },\n [TOKEN_TYPE_CLOSED]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'closedBefore',\n [ALTERNATIVE_FILTER]: 'closedAfter',\n },\n [URL_PARAM]: {\n [OPERATOR_AFTER]: {\n [ALTERNATIVE_FILTER]: 'closed_after',\n },\n [OPERATOR_BEFORE]: {\n [NORMAL_FILTER]: 'closed_before',\n },\n },\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"issuable-list-container\"},[_c('issuable-tabs',{attrs:{\"tabs\":_vm.tabs,\"tab-counts\":_vm.tabCounts,\"current-tab\":_vm.currentTab,\"truncate-counts\":_vm.truncateCounts},on:{\"click\":function($event){return _vm.$emit('click-tab', $event)}},scopedSlots:_vm._u([{key:\"nav-actions\",fn:function(){return [_vm._t(\"nav-actions\")]},proxy:true}],null,true)}),_vm._v(\" \"),_c('filtered-search-bar',{staticClass:\"gl-flex-grow-1 gl-border-t-none row-content-block\",attrs:{\"namespace\":_vm.namespace,\"recent-searches-storage-key\":_vm.recentSearchesStorageKey,\"search-input-placeholder\":_vm.searchInputPlaceholder,\"tokens\":_vm.searchTokens,\"sort-options\":_vm.sortOptions,\"initial-filter-value\":_vm.initialFilterValue,\"initial-sort-by\":_vm.initialSortBy,\"sync-filter-and-sort\":_vm.syncFilterAndSort,\"show-checkbox\":_vm.showBulkEditSidebar,\"checkbox-checked\":_vm.allIssuablesChecked,\"show-friendly-text\":_vm.showFilteredSearchFriendlyText,\"terms-as-tokens\":\"\",\"data-testid\":\"issuable-search-container\"},on:{\"checked-input\":_vm.handleAllIssuablesCheckedInput,\"onFilter\":function($event){return _vm.$emit('filter', $event)},\"onSort\":function($event){return _vm.$emit('sort', $event)}}}),_vm._v(\" \"),(_vm.error)?_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){return _vm.$emit('dismiss-alert')}}},[_vm._v(_vm._s(_vm.error))]):_vm._e(),_vm._v(\" \"),_c('issuable-bulk-edit-sidebar',{attrs:{\"expanded\":_vm.showBulkEditSidebar},scopedSlots:_vm._u([{key:\"bulk-edit-actions\",fn:function(){return [_vm._t(\"bulk-edit-actions\",null,{\"checkedIssuables\":_vm.bulkEditIssuables})]},proxy:true},{key:\"sidebar-items\",fn:function(){return [_vm._t(\"sidebar-items\",null,{\"checkedIssuables\":_vm.bulkEditIssuables})]},proxy:true}],null,true)}),_vm._v(\" \"),_vm._t(\"list-body\"),_vm._v(\" \"),(_vm.issuablesLoading)?_c('ul',{staticClass:\"content-list\"},_vm._l((_vm.skeletonItemCount),function(n){return _c('li',{key:n,staticClass:\"issue gl-px-5! gl-py-5!\"},[_c('gl-skeleton-loader')],1)}),0):[(_vm.issuables.length > 0 && !_vm.isGridView)?_c(_vm.issuablesWrapper,_vm._b({tag:\"component\",staticClass:\"content-list issuable-list issues-list\",class:{ 'manual-ordering': _vm.isManualOrdering },on:{\"update\":_vm.handleVueDraggableUpdate}},'component',_vm.$options.vueDraggableAttributes,false),_vm._l((_vm.issuables),function(issuable){return _c('issuable-item',{key:_vm.issuableId(issuable),class:{ 'gl-cursor-grab': _vm.isManualOrdering },attrs:{\"data-testid\":\"issuable-container\",\"data-qa-issuable-title\":issuable.title,\"has-scoped-labels-feature\":_vm.hasScopedLabelsFeature,\"issuable-symbol\":_vm.issuableSymbol,\"issuable\":issuable,\"label-filter-param\":_vm.labelFilterParam,\"show-checkbox\":_vm.showBulkEditSidebar,\"checked\":_vm.issuableChecked(issuable),\"show-work-item-type-icon\":_vm.showWorkItemTypeIcon,\"prevent-redirect\":_vm.preventRedirect,\"is-active\":_vm.isIssuableActive(issuable)},on:{\"checked-input\":function($event){return _vm.handleIssuableCheckedInput(issuable, $event)},\"select-issuable\":function($event){return _vm.$emit('select-issuable', $event)}},scopedSlots:_vm._u([{key:\"reference\",fn:function(){return [_vm._t(\"reference\",null,{\"issuable\":issuable})]},proxy:true},{key:\"author\",fn:function(){return [_vm._t(\"author\",null,{\"author\":issuable.author})]},proxy:true},{key:\"timeframe\",fn:function(){return [_vm._t(\"timeframe\",null,{\"issuable\":issuable})]},proxy:true},{key:\"status\",fn:function(){return [_vm._t(\"status\",null,{\"issuable\":issuable})]},proxy:true},{key:\"statistics\",fn:function(){return [_vm._t(\"statistics\",null,{\"issuable\":issuable})]},proxy:true},{key:\"pipeline-status\",fn:function(){return [_vm._t(\"pipeline-status\",null,{\"issuable\":issuable})]},proxy:true}],null,true)})}),1):(_vm.issuables.length > 0 && _vm.isGridView)?_c('div',[_c('issuable-grid')],1):_vm._t(\"empty-state\")],_vm._v(\" \"),_c('div',{staticClass:\"gl-display-flex gl-justify-content-space-between gl-md-justify-content-center! gl-mt-6 gl-relative\"},[(_vm.showPaginationControls && _vm.useKeysetPagination)?_c('gl-keyset-pagination',{attrs:{\"has-next-page\":_vm.hasNextPage,\"has-previous-page\":_vm.hasPreviousPage},on:{\"next\":function($event){return _vm.$emit('next-page')},\"prev\":function($event){return _vm.$emit('previous-page')}}}):(_vm.showPaginationControls)?_c('gl-pagination',{staticClass:\"gl-pagination gl-mt-3\",attrs:{\"per-page\":_vm.defaultPageSize,\"total-items\":_vm.totalItems,\"value\":_vm.currentPage,\"prev-page\":_vm.previousPage,\"next-page\":_vm.nextPage,\"align\":\"center\"},on:{\"input\":function($event){return _vm.$emit('page-change', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.showPageSizeChangeControls)?_c('local-storage-sync',{attrs:{\"value\":_vm.defaultPageSize,\"storage-key\":_vm.$options.PAGE_SIZE_STORAGE_KEY},on:{\"input\":_vm.handlePageSizeChange}},[_c('page-size-selector',{staticClass:\"gl-right-0 gl-relative md:gl-absolute\",attrs:{\"value\":_vm.defaultPageSize},on:{\"input\":_vm.handlePageSizeChange}})],1):_vm._e()],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./page_size_selector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./page_size_selector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./page_size_selector.vue?vue&type=template&id=28c3d0ea\"\nimport script from \"./page_size_selector.vue?vue&type=script&lang=js\"\nexport * from \"./page_size_selector.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{attrs:{\"toggle-text\":_vm.toggleText,\"items\":_vm.$options.PAGE_SIZES,\"selected\":_vm.value},on:{\"select\":function($event){return _vm.emitInput($event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_bulk_edit_sidebar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_bulk_edit_sidebar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./issuable_bulk_edit_sidebar.vue?vue&type=template&id=8d129e10\"\nimport script from \"./issuable_bulk_edit_sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_bulk_edit_sidebar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('aside',{staticClass:\"issues-bulk-update right-sidebar\",class:{ 'right-sidebar-expanded': _vm.expanded, 'right-sidebar-collapsed': !_vm.expanded },attrs:{\"aria-live\":\"polite\"}},[_c('div',{staticClass:\"gl-display-flex gl-justify-content-space-between gl-p-4 gl-border-b-1 gl-border-b-solid gl-border-gray-100\"},[_vm._t(\"bulk-edit-actions\")],2),_vm._v(\" \"),_vm._t(\"sidebar-items\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_item.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./issuable_item.vue?vue&type=template&id=42554c0a\"\nimport script from \"./issuable_item.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"issue gl-display-flex! gl-px-5!\",class:{ closed: _vm.issuable.closedAt, 'gl-bg-blue-50': _vm.isActive },attrs:{\"id\":`issuable_${_vm.issuableId}`,\"data-labels\":_vm.labelIdsString,\"data-qa-issue-id\":_vm.issuableId,\"data-testid\":\"issuable-item-wrapper\"}},[(_vm.showCheckbox)?_c('gl-form-checkbox',{staticClass:\"issue-check gl-mr-0\",attrs:{\"checked\":_vm.checked,\"data-id\":_vm.issuableId,\"data-iid\":_vm.issuableIid,\"data-type\":_vm.type},on:{\"input\":function($event){return _vm.$emit('checked-input', $event)}}},[_c('span',{staticClass:\"gl-sr-only\"},[_vm._v(_vm._s(_vm.issuable.title))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"issuable-main-info\"},[_c('div',{staticClass:\"issue-title title\",attrs:{\"data-testid\":\"issuable-title\"}},[(_vm.showWorkItemTypeIcon)?_c('work-item-type-icon',{staticClass:\"gl-mr-2\",attrs:{\"work-item-type\":_vm.type,\"show-tooltip-on-hover\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.issuable.confidential)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"name\":\"eye-slash\",\"title\":_vm.__('Confidential'),\"aria-label\":_vm.__('Confidential')}}):_vm._e(),_vm._v(\" \"),(_vm.issuable.hidden)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"name\":\"spam\",\"title\":_vm.__('This issue is hidden because its author has been banned.'),\"aria-label\":_vm.__('Hidden')}}):_vm._e(),_vm._v(\" \"),_c('gl-link',_vm._b({staticClass:\"issue-title-text\",attrs:{\"dir\":\"auto\",\"href\":_vm.issuableLinkHref,\"data-testid\":\"issuable-title-link\"},on:{\"click\":_vm.handleIssuableItemClick}},'gl-link',_vm.issuableTitleProps,false),[_vm._v(\"\\n \"+_vm._s(_vm.issuable.title)+\"\\n \"),(_vm.isIssuableUrlExternal)?_c('gl-icon',{staticClass:\"gl-ml-2\",attrs:{\"name\":\"external-link\"}}):_vm._e()],1),_vm._v(\" \"),(_vm.taskStatus)?_c('span',{staticClass:\"task-status gl-display-none gl-sm-display-inline-block! gl-ml-2 gl-font-sm\",attrs:{\"data-testid\":\"task-status\"}},[_vm._v(\"\\n \"+_vm._s(_vm.taskStatus)+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"issuable-info\"},[(_vm.hasSlotContents('reference'))?_vm._t(\"reference\"):_c('span',{staticClass:\"issuable-reference\",attrs:{\"data-testid\":\"issuable-reference\"}},[_vm._v(\"\\n \"+_vm._s(_vm.reference)+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-display-none gl-sm-display-inline\"},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"·\")]),_vm._v(\" \"),_c('span',{staticClass:\"issuable-authored gl-mr-3\"},[(_vm.author.name)?_c('gl-sprintf',{attrs:{\"message\":_vm.__('created %{timeAgo} by %{author}')},scopedSlots:_vm._u([{key:\"timeAgo\",fn:function(){return [_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],attrs:{\"title\":_vm.tooltipTitle(_vm.issuable.createdAt),\"data-testid\":\"issuable-created-at\"}},[_vm._v(\"\\n \"+_vm._s(_vm.createdAt)+\"\\n \")])]},proxy:true},{key:\"author\",fn:function(){return [(_vm.externalAuthor)?_c('span',{attrs:{\"data-testid\":\"external-author\"}},[_vm._v(_vm._s(_vm.externalAuthor)+\" \"+_vm._s(_vm.__('via')))]):_vm._e(),_vm._v(\" \"),(_vm.hasSlotContents('author'))?_vm._t(\"author\"):_c('gl-link',{staticClass:\"author-link js-user-link gl-font-sm gl-text-gray-500!\",attrs:{\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username,\"data-name\":_vm.author.name,\"data-avatar-url\":_vm.author.avatarUrl,\"href\":_vm.author.webUrl,\"data-testid\":\"issuable-author\"}},[_c('span',{staticClass:\"author\"},[_vm._v(_vm._s(_vm.author.name))])])]},proxy:true}],null,true)}):_c('gl-sprintf',{attrs:{\"message\":_vm.__('created %{timeAgo}')},scopedSlots:_vm._u([{key:\"timeAgo\",fn:function(){return [_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],attrs:{\"title\":_vm.tooltipTitle(_vm.issuable.createdAt),\"data-testid\":\"issuable-created-at\"}},[_vm._v(\"\\n \"+_vm._s(_vm.createdAt)+\"\\n \")])]},proxy:true}])})],1),_vm._v(\" \"),_vm._t(\"timeframe\")],2),_vm._v(\" \"),(_vm.labels.length)?_c('p',{staticClass:\"gl-mt-1 gl-mb-0 gl-display-flex gl-flex-wrap gl-gap-2\",attrs:{\"role\":\"group\",\"aria-label\":_vm.__('Labels')}},_vm._l((_vm.labels),function(label,index){return _c('gl-label',{key:index,attrs:{\"background-color\":label.color,\"title\":_vm.labelTitle(label),\"description\":label.description,\"scoped\":_vm.scopedLabel(label),\"target\":_vm.labelTarget(label),\"size\":\"sm\"}})}),1):_vm._e()],2)]),_vm._v(\" \"),_c('div',{staticClass:\"issuable-meta\"},[(_vm.showIssuableMeta)?_c('ul',{staticClass:\"controls\"},[(_vm.$slots.status)?_c('li',{attrs:{\"data-testid\":\"issuable-status\"}},[(_vm.isNotOpen)?_c('gl-badge',{attrs:{\"size\":\"sm\",\"variant\":_vm.statusBadgeVariant}},[_vm._t(\"status\")],2):_vm._t(\"status\")],2):_vm._e(),_vm._v(\" \"),_vm._t(\"pipeline-status\"),_vm._v(\" \"),(_vm.assignees.length)?_c('li',[_c('issuable-assignees',{staticClass:\"gl-align-items-center gl-display-flex\",attrs:{\"assignees\":_vm.assignees,\"icon-size\":16,\"max-visible\":4,\"img-css-classes\":\"gl-mr-2!\"}})],1):_vm._e(),_vm._v(\" \"),_vm._t(\"statistics\"),_vm._v(\" \"),(_vm.showDiscussions)?_c('li',{staticClass:\"gl-display-none gl-sm-display-block\",attrs:{\"data-testid\":\"issuable-comments\"}},[_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top\",modifiers:{\"top\":true}}],staticClass:\"gl-reset-color!\",class:{ 'no-comments': !_vm.notesCount },attrs:{\"title\":_vm.__('Comments'),\"href\":_vm.issuableNotesLink}},[_c('gl-icon',{attrs:{\"name\":\"comments\"}}),_vm._v(\"\\n \"+_vm._s(_vm.notesCount)+\"\\n \")],1)],1):_vm._e()],2):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"gl-text-gray-500 gl-display-none gl-sm-display-inline-block\",attrs:{\"title\":_vm.tooltipTitle(_vm.timestamp),\"data-testid\":\"issuable-timestamp\"}},[_vm._v(\"\\n \"+_vm._s(_vm.formattedTimestamp)+\"\\n \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_tabs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_tabs.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./issuable_tabs.vue?vue&type=template&id=dae40bfe\"\nimport script from \"./issuable_tabs.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_tabs.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"top-area\"},[_c('gl-tabs',{staticClass:\"gl-display-flex gl-flex-grow-1 gl-p-0 gl-m-0 mobile-separator issuable-state-filters\",attrs:{\"nav-class\":\"gl-border-b-0\"}},_vm._l((_vm.tabs),function(tab){return _c('gl-tab',{key:tab.id,attrs:{\"active\":_vm.isTabActive(tab.name)},on:{\"click\":function($event){return _vm.$emit('click', tab.name)}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{attrs:{\"title\":tab.titleTooltip,\"data-testid\":`${tab.name}-issuables-tab`}},[_vm._v(\"\\n \"+_vm._s(tab.title)+\"\\n \")]),_vm._v(\" \"),(_vm.tabCounts && _vm.isTabCountNumeric(tab))?_c('gl-badge',{staticClass:\"gl-tab-counter-badge\",attrs:{\"variant\":\"muted\",\"size\":\"sm\"}},[_vm._v(\"\\n \"+_vm._s(_vm.formatNumber(_vm.tabCounts[tab.name]))+\"\\n \")]):_vm._e()]},proxy:true}],null,true)})}),1),_vm._v(\" \"),_c('div',{staticClass:\"nav-controls\"},[_vm._t(\"nav-actions\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./issuable_grid.vue?vue&type=template&id=15ef99f1\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_list_root.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_list_root.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./issuable_list_root.vue?vue&type=template&id=7e438e9c\"\nimport script from \"./issuable_list_root.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_list_root.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import GlButton from '../button/button';\nimport GlButtonGroup from '../button_group/button_group';\nimport GlIcon from '../icon/icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlKeysetPagination',\n components: {\n GlButtonGroup,\n GlButton,\n GlIcon\n },\n inheritAttrs: false,\n props: {\n // The following 4 properties match the default names of the\n // [PageInfo](https://docs.gitlab.com/ee/api/graphql/reference/index.html#pageinfo)\n // GraphQL type, allowing the returned `pageInfo` object to\n // be bound directly to this component:\n // ``\n /**\n * Whether or not the \"Prev\" button should be enabled\n */\n hasPreviousPage: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Whether or not the \"Next\" button should be enabled\n */\n hasNextPage: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * A cursor that points to the first item in the current page.\n * Will be passed as an event parameter when the \"prev\" event is fired.\n */\n startCursor: {\n type: String,\n required: false,\n default: null\n },\n /**\n * A cursor that points to the last item in the current page.\n * Will be passed as an event parameter when the \"next\" event is fired.\n */\n endCursor: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The text that will be rendered inside the \"Prev\" button.\n * It\\'s important to provide this parameter since the default text is not translatable.\n */\n prevText: {\n type: String,\n required: false,\n default: 'Prev'\n },\n /**\n * A link that will be used as the \"Prev\" button\\'s \"href\" attribute.\n * If provided, the \"Prev\" button renders as a link button; otherwise, it is rendered as a regular button.\n */\n prevButtonLink: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The aria-label that needs to be set for the\n * pagination landmark region.\n */\n navigationLabel: {\n type: String,\n required: false,\n default: 'Pagination'\n },\n /**\n * The text that will be rendered inside the \"Next\" button.\n * It\\'s important to provide this parameter since the default text is not translatable.\n */\n nextText: {\n type: String,\n required: false,\n default: 'Next'\n },\n /**\n * A link that will be used as the \"Next\" button\\'s \"href\" attribute.\n * If provided, the \"Next\" button renders as a link button; otherwise, it is rendered as a regular button.\n */\n nextButtonLink: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Whether or not both buttons should be disabled (regardless of the \"hasPreviousPage\" and \"hasNextPage\" values).\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n computed: {\n isVisible() {\n return this.hasPreviousPage || this.hasNextPage;\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('nav',{staticClass:\"gl-pagination\",attrs:{\"aria-label\":_vm.navigationLabel}},[_c('gl-button-group',_vm._g(_vm._b({staticClass:\"gl-keyset-pagination\"},'gl-button-group',_vm.$attrs,false),_vm.$listeners),[_c('gl-button',{attrs:{\"href\":_vm.prevButtonLink,\"disabled\":_vm.disabled || !_vm.hasPreviousPage,\"data-testid\":\"prevButton\"},on:{\"click\":function($event){return _vm.$emit('prev', _vm.startCursor)}}},[_vm._t(\"previous-button-content\",function(){return [_c('div',{staticClass:\"gl-display-flex gl-align-center\"},[_c('gl-icon',{attrs:{\"name\":\"chevron-left\"}}),_vm._v(\"\\n \"+_vm._s(_vm.prevText)+\"\\n \")],1)]})],2),_vm._v(\" \"),_c('gl-button',{attrs:{\"href\":_vm.nextButtonLink,\"disabled\":_vm.disabled || !_vm.hasNextPage,\"data-testid\":\"nextButton\"},on:{\"click\":function($event){return _vm.$emit('next', _vm.endCursor)}}},[_vm._t(\"next-button-content\",function(){return [_c('div',{staticClass:\"gl-display-flex gl-align-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.nextText)+\"\\n \"),_c('gl-icon',{attrs:{\"name\":\"chevron-right\"}})],1)]})],2)],1)],1):_vm._e()};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n",";(function (global) {\n \"use strict\";\n\n var lastId = -1;\n\n // Visibility.js allow you to know, that your web page is in the background\n // tab and thus not visible to the user. This library is wrap under\n // Page Visibility API. It fix problems with different vendor prefixes and\n // add high-level useful functions.\n var self = {\n\n // Call callback only when page become to visible for user or\n // call it now if page is visible now or Page Visibility API\n // doesn’t supported.\n //\n // Return false if API isn’t supported, true if page is already visible\n // or listener ID (you can use it in `unbind` method) if page isn’t\n // visible now.\n //\n // Visibility.onVisible(function () {\n // startIntroAnimation();\n // });\n onVisible: function (callback) {\n var support = self.isSupported();\n if ( !support || !self.hidden() ) {\n callback();\n return support;\n }\n\n var listener = self.change(function (e, state) {\n if ( !self.hidden() ) {\n self.unbind(listener);\n callback();\n }\n });\n return listener;\n },\n\n // Call callback when visibility will be changed. First argument for\n // callback will be original event object, second will be visibility\n // state name.\n //\n // Return listener ID to unbind listener by `unbind` method.\n //\n // If Page Visibility API doesn’t supported method will be return false\n // and callback never will be called.\n //\n // Visibility.change(function(e, state) {\n // Statistics.visibilityChange(state);\n // });\n //\n // It is just proxy to `visibilitychange` event, but use vendor prefix.\n change: function (callback) {\n if ( !self.isSupported() ) {\n return false;\n }\n lastId += 1;\n var number = lastId;\n self._callbacks[number] = callback;\n self._listen();\n return number;\n },\n\n // Remove `change` listener by it ID.\n //\n // var id = Visibility.change(function(e, state) {\n // firstChangeCallback();\n // Visibility.unbind(id);\n // });\n unbind: function (id) {\n delete self._callbacks[id];\n },\n\n // Call `callback` in any state, expect “prerender”. If current state\n // is “prerender” it will wait until state will be changed.\n // If Page Visibility API doesn’t supported, it will call `callback`\n // immediately.\n //\n // Return false if API isn’t supported, true if page is already after\n // prerendering or listener ID (you can use it in `unbind` method)\n // if page is prerended now.\n //\n // Visibility.afterPrerendering(function () {\n // Statistics.countVisitor();\n // });\n afterPrerendering: function (callback) {\n var support = self.isSupported();\n var prerender = 'prerender';\n\n if ( !support || prerender != self.state() ) {\n callback();\n return support;\n }\n\n var listener = self.change(function (e, state) {\n if ( prerender != state ) {\n self.unbind(listener);\n callback();\n }\n });\n return listener;\n },\n\n // Return true if page now isn’t visible to user.\n //\n // if ( !Visibility.hidden() ) {\n // VideoPlayer.play();\n // }\n //\n // It is just proxy to `document.hidden`, but use vendor prefix.\n hidden: function () {\n return !!(self._doc.hidden || self._doc.webkitHidden);\n },\n\n // Return visibility state: 'visible', 'hidden' or 'prerender'.\n //\n // if ( 'prerender' == Visibility.state() ) {\n // Statistics.pageIsPrerendering();\n // }\n //\n // Don’t use `Visibility.state()` to detect, is page visible, because\n // visibility states can extend in next API versions.\n // Use more simpler and general `Visibility.hidden()` for this cases.\n //\n // It is just proxy to `document.visibilityState`, but use\n // vendor prefix.\n state: function () {\n return self._doc.visibilityState ||\n self._doc.webkitVisibilityState ||\n 'visible';\n },\n\n // Return true if browser support Page Visibility API.\n //\n // if ( Visibility.isSupported() ) {\n // Statistics.startTrackingVisibility();\n // Visibility.change(function(e, state)) {\n // Statistics.trackVisibility(state);\n // });\n // }\n isSupported: function () {\n return !!(self._doc.visibilityState ||\n self._doc.webkitVisibilityState);\n },\n\n // Link to document object to change it in tests.\n _doc: document || {},\n\n // Callbacks from `change` method, that wait visibility changes.\n _callbacks: { },\n\n // Listener for `visibilitychange` event.\n _change: function(event) {\n var state = self.state();\n\n for ( var i in self._callbacks ) {\n self._callbacks[i].call(self._doc, event, state);\n }\n },\n\n // Set listener for `visibilitychange` event.\n _listen: function () {\n if ( self._init ) {\n return;\n }\n\n var event = 'visibilitychange';\n if ( self._doc.webkitVisibilityState ) {\n event = 'webkit' + event;\n }\n\n var listener = function () {\n self._change.apply(self, arguments);\n };\n if ( self._doc.addEventListener ) {\n self._doc.addEventListener(event, listener);\n } else {\n self._doc.attachEvent(event, listener);\n }\n self._init = true;\n }\n\n };\n\n if ( typeof(module) != 'undefined' && module.exports ) {\n module.exports = self;\n } else {\n global.Visibility = self;\n }\n\n})(this);\n","import GlLink from '../link/link';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'AvatarLink',\n components: {\n GlLink\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-link',_vm._g(_vm._b({staticClass:\"gl-avatar-link\"},'gl-link',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\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 { extend, 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__*/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});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, REF_FOR_KEY, extend } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n getBvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return function () {\n return {};\n };\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n computed: {\n bvTabs: function bvTabs() {\n return this.getBvTabs();\n }\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvent: function handleEvent(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvent = this.handleEvent;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvent,\n keydown: handleEvent\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n var _this = this;\n\n return {\n getBvTabs: function getBvTabs() {\n return _this;\n }\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this2 = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this2.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this3 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this3.$nextTick(function () {\n requestAF(function () {\n _this3.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs; // Dropped intentionally\n // .filter(\n // $tab => $tab.$children.filter($t => $t && $t._isTab).length === 0\n // )\n // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this4 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this4.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this5 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, _defineProperty({\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this5.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons'\n }, REF_FOR_KEY, true));\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});","import { BTabs } from 'bootstrap-vue/esm/index.js';\nimport { tabsButtonDefaults } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst validatorHelper = obj => Object.keys(obj).every(val => val === 'text' || val === 'attributes');\nvar script = {\n name: 'GlTabs',\n components: {\n BTabs,\n GlButton\n },\n inheritAttrs: false,\n props: {\n actionPrimary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n actionSecondary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n actionTertiary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n contentClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n justified: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Sync active tab with query string parameters. Allows for deep linking into specific tabs.\n */\n syncActiveTabWithQueryParams: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Name to use for query string parameter.\n */\n queryParamName: {\n type: String,\n required: false,\n default: 'tab'\n },\n value: {\n type: Number,\n required: false,\n default: 0\n }\n },\n data() {\n return {\n activeTabIndex: 0\n };\n },\n computed: {\n hasActions() {\n return [this.actionPrimary, this.actionSecondary, this.actionTertiary].some(Boolean);\n },\n listeners() {\n return {\n ...this.$listeners,\n input: this.handleInput\n };\n }\n },\n watch: {\n value: {\n handler(newValue) {\n if (this.activeTabIndex !== newValue) {\n this.activeTabIndex = newValue;\n }\n },\n immediate: true\n }\n },\n mounted() {\n if (this.syncActiveTabWithQueryParams) {\n this.syncActiveTabFromQueryParams();\n window.addEventListener('popstate', this.syncActiveTabFromQueryParams);\n }\n\n // Because we are manually binding `value` attribute to `b-tabs` the `input`\n // event is no longer automatically fired when the component is mounted.\n // To maintain parity with original `b-tabs` functionality\n // we manually fire the `input` event when the component is mounted.\n this.$emit('input', this.activeTabIndex);\n },\n destroyed() {\n window.removeEventListener('popstate', this.syncActiveTabFromQueryParams);\n },\n methods: {\n buttonBinding(prop, name) {\n if (!prop.attributes) {\n return tabsButtonDefaults[name];\n }\n return prop.attributes;\n },\n primary() {\n this.$emit('primary');\n },\n secondary() {\n this.$emit('secondary');\n },\n tertiary() {\n this.$emit('tertiary');\n },\n /**\n * When the query parameter is updated, update the active tab to match.\n */\n async syncActiveTabFromQueryParams() {\n await this.$nextTick();\n const queryParamValue = this.getQueryParamValue();\n const tabIndexToActivate = this.getTabs().findIndex((tab, tabIndex) => this.getTabQueryParamValue(tabIndex) === queryParamValue);\n this.activeTabIndex = tabIndexToActivate !== -1 ? tabIndexToActivate : 0;\n },\n /**\n * Returns a list of all instances associated with this tab control.\n */\n getTabs() {\n return this.$refs.bTabs.getTabs();\n },\n /**\n * Get the value of the query param as defined by the `queryParamName` prop.\n */\n getQueryParamValue() {\n const searchParams = new URLSearchParams(window.location.search);\n return searchParams.get(this.queryParamName);\n },\n /**\n * Set the value of the query param as defined by the `queryParamName` prop.\n * This method does nothing if the query param is already up to date.\n */\n setQueryParamValueIfNecessary(tabIndex) {\n const currentQueryParamValue = this.getQueryParamValue();\n const newQueryParamValue = this.getTabQueryParamValue(tabIndex);\n\n // If the current query parameter is already up-to-date,\n // avoid creating a duplicate history entry.\n if (tabIndex === 0 && !currentQueryParamValue || tabIndex !== 0 && currentQueryParamValue === newQueryParamValue) {\n return;\n }\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.set(this.queryParamName, newQueryParamValue);\n window.history.pushState({}, '', `${window.location.pathname}?${searchParams.toString()}`);\n },\n /**\n * Returns the query param value for a tab.\n * Defaults to the tab index unless the `query-param-value` attribute is set.\n */\n getTabQueryParamValue(tabIndex) {\n const tab = this.getTabs()[tabIndex];\n return (tab === null || tab === void 0 ? void 0 : tab.$attrs['query-param-value']) || tabIndex.toString();\n },\n /**\n * Event handler for `input` event.\n */\n handleInput(tabIndex) {\n this.$emit('input', tabIndex);\n this.activeTabIndex = tabIndex;\n if (this.syncActiveTabWithQueryParams) {\n this.setQueryParamValueIfNecessary(tabIndex);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tabs',_vm._g(_vm._b({ref:\"bTabs\",staticClass:\"gl-tabs\",attrs:{\"no-nav-style\":true,\"no-fade\":true,\"active-nav-item-class\":\"gl-tab-nav-item-active\",\"content-class\":[_vm.contentClass, 'gl-tab-content'],\"nav-class\":[_vm.navClass, 'gl-tabs-nav'],\"justified\":_vm.justified,\"value\":_vm.activeTabIndex},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}}),(_vm.hasActions)?{key:\"tabs-start\",fn:function(){return [_c('div',{staticClass:\"gl-actions-tabs-start\",attrs:{\"data-testid\":\"actions-tabs-start\"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-primary\"},on:{\"click\":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionPrimary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-secondary\"},on:{\"click\":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionSecondary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-tertiary\"},on:{\"click\":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionTertiary.text)+\"\\n \")]):_vm._e()],1)]},proxy:true}:null,(_vm.hasActions)?{key:\"tabs-end\",fn:function(){return [_c('div',{staticClass:\"gl-actions-tabs-end\",attrs:{\"data-testid\":\"actions-tabs-end\"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-primary\"},on:{\"click\":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionPrimary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-secondary\"},on:{\"click\":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionSecondary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-tertiary\"},on:{\"click\":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionTertiary.text)+\"\\n \")]):_vm._e()],1)]},proxy:true}:null],null,true)},'b-tabs',_vm.$attrs,false),_vm.listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import debounce from 'lodash/debounce';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { breakpoints, GlBreakpointInstance } from '../../../utils/breakpoints';\nimport { alignOptions, resizeDebounceTime } from '../../../utils/constants';\nimport GlIcon from '../icon/icon';\nimport GlLink from '../link/link';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst pageRange = (from, to) => range(from, to + 1, 1);\nvar script = {\n name: 'Pagination',\n components: {\n GlLink,\n GlIcon\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n value: {\n type: Number,\n required: false,\n default: 1,\n validator: x => x > 0\n },\n /**\n * Number of items per page\n */\n perPage: {\n type: Number,\n required: false,\n default: 20,\n validator: x => x > 0\n },\n /**\n * Total number of items\n */\n totalItems: {\n type: Number,\n required: false,\n default: 0\n },\n /**\n * The object must contain the xs, sm, md and default keys\n */\n limits: {\n type: Object,\n required: false,\n default: () => ({\n xs: 0,\n sm: 3,\n md: 9,\n default: 9\n }),\n validator: value => {\n const missingSizes = Object.keys(breakpoints).filter(size => !value[size]).length;\n return missingSizes === 0 ? true : value.default;\n }\n },\n /**\n * A function that receives the page number and that returns a string representing the page URL\n */\n linkGen: {\n type: Function,\n required: false,\n default: null\n },\n /**\n * When using the compact pagination, use this prop to pass the previous page number\n */\n prevPage: {\n type: Number,\n required: false,\n default: null\n },\n /**\n * Text for the previous button (overridden by \"previous\" slot)\n */\n prevText: {\n type: String,\n required: false,\n default: 'Previous'\n },\n /**\n * When using the compact pagination, use this prop to pass the next page number\n */\n nextPage: {\n type: Number,\n required: false,\n default: null\n },\n /**\n * Text for the next button (overridden by \"next\" slot)\n */\n nextText: {\n type: String,\n required: false,\n default: 'Next'\n },\n /**\n * Text for the ellipsis (overridden by \"ellipsis-left\" and \"ellipsis-right\" slots)\n */\n ellipsisText: {\n type: String,\n required: false,\n default: '…'\n },\n /**\n * aria-label for the first page item\n */\n labelFirstPage: {\n type: String,\n required: false,\n default: 'Go to first page'\n },\n /**\n * aria-label for the previous page item\n */\n labelPrevPage: {\n type: String,\n required: false,\n default: 'Go to previous page'\n },\n /**\n * aria-label for the next page item\n */\n labelNextPage: {\n type: String,\n required: false,\n default: 'Go to next page'\n },\n /**\n * aria-label for the last page item\n */\n labelLastPage: {\n type: String,\n required: false,\n default: 'Go to last page'\n },\n /**\n * aria-label getter for numbered page items, defaults to \"Go to page \"\n */\n labelPage: {\n type: Function,\n required: false,\n default: page => `Go to page ${page}`\n },\n /**\n * Controls the component\\'s horizontal alignment, value should be one of \"left\", \"center\", \"right\" or \"fill\"\n */\n align: {\n type: String,\n required: false,\n default: alignOptions.left,\n validator: value => Object.keys(alignOptions).includes(value)\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n breakpoint: GlBreakpointInstance.getBreakpointSize(),\n // If total pages count is below or equal to minTotalPagesToCollapse, collapsing is disabled\n minTotalPagesToCollapse: 4\n };\n },\n computed: {\n isVisible() {\n return this.totalPages > 1 || this.isCompactPagination;\n },\n isLinkBased() {\n return isFunction(this.linkGen);\n },\n paginationLimit() {\n return typeof this.limits[this.breakpoint] !== 'undefined' ? this.limits[this.breakpoint] : this.limits.default;\n },\n maxAdjacentPages() {\n return Math.max(Math.ceil((this.paginationLimit - 1) / 2), 0);\n },\n totalPages() {\n return Math.ceil(this.totalItems / this.perPage);\n },\n isFillAlign() {\n return this.align === alignOptions.fill;\n },\n wrapperClasses() {\n const classes = [];\n if (this.align === alignOptions.center) {\n classes.push('justify-content-center');\n }\n if (this.align === alignOptions.right) {\n classes.push('justify-content-end');\n }\n if (this.isFillAlign) {\n classes.push('text-center');\n }\n return classes;\n },\n shouldCollapseLeftSide() {\n const diff = this.value - this.maxAdjacentPages;\n\n // Magic 3: prevents collapsing a single page on the left side\n return diff >= this.maxAdjacentPages && diff > 3 && this.totalPages > this.minTotalPagesToCollapse;\n },\n shouldCollapseRightSide() {\n // Magic 2: prevents collapsing a single page on the right side\n const diff = this.totalPages - 2 - this.value;\n return diff > this.maxAdjacentPages && this.totalPages > this.minTotalPagesToCollapse;\n },\n visibleItems() {\n let items = [];\n if (!this.isCompactPagination) {\n let firstPage = this.shouldCollapseLeftSide ? this.value - this.maxAdjacentPages : 1;\n // If we're on last page, show at least one page to the left\n firstPage = Math.min(firstPage, this.totalPages - 1);\n let lastPage = this.shouldCollapseRightSide ? this.value + this.maxAdjacentPages : this.totalPages;\n // If we're on first page, show at least one page to the right\n lastPage = Math.max(lastPage, 2);\n\n // Default numbered items\n items = pageRange(firstPage, lastPage).map(page => this.getPageItem(page));\n if (this.shouldCollapseLeftSide) {\n items.splice(0, 0, this.getPageItem(1, this.labelFirstPage), this.getEllipsisItem('left'));\n }\n if (this.shouldCollapseRightSide) {\n items.push(this.getEllipsisItem('right'), this.getPageItem(this.totalPages, this.labelLastPage));\n }\n }\n return items;\n },\n isCompactPagination() {\n return Boolean(!this.totalItems && (this.prevPage || this.nextPage));\n },\n prevPageIsDisabled() {\n return this.pageIsDisabled(this.value - 1);\n },\n nextPageIsDisabled() {\n return this.pageIsDisabled(this.value + 1);\n },\n prevPageAriaLabel() {\n return this.prevPageIsDisabled ? false : this.labelPrevPage || this.labelPage(this.value - 1);\n },\n nextPageAriaLabel() {\n return this.nextPageIsDisabled ? false : this.labelNextPage || this.labelPage(this.value + 1);\n },\n prevPageHref() {\n if (this.prevPageIsDisabled) return false;\n if (this.isLinkBased) return this.linkGen(this.value - 1);\n return '#';\n },\n nextPageHref() {\n if (this.nextPageIsDisabled) return false;\n if (this.isLinkBased) return this.linkGen(this.value + 1);\n return '#';\n }\n },\n created() {\n window.addEventListener('resize', debounce(this.setBreakpoint, resizeDebounceTime));\n },\n beforeDestroy() {\n window.removeEventListener('resize', debounce(this.setBreakpoint, resizeDebounceTime));\n },\n methods: {\n setBreakpoint() {\n this.breakpoint = GlBreakpointInstance.getBreakpointSize();\n },\n pageIsDisabled(page) {\n return this.disabled || page < 1 || this.isCompactPagination && page > this.value && !this.nextPage || !this.isCompactPagination && page > this.totalPages;\n },\n getPageItem(page) {\n let label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n const commonAttrs = {\n 'aria-label': label || this.labelPage(page),\n href: '#',\n class: []\n };\n const isActivePage = page === this.value;\n const isDisabled = this.pageIsDisabled(page);\n const attrs = {\n ...commonAttrs\n };\n const listeners = {};\n if (isActivePage) {\n attrs.class.push('active');\n attrs['aria-current'] = 'page';\n }\n // Disable previous and/or next buttons if needed\n if (this.isLinkBased) {\n attrs.href = this.linkGen(page);\n }\n listeners.click = e => this.handleClick(e, page);\n return {\n content: page,\n component: isDisabled ? 'span' : GlLink,\n disabled: isDisabled,\n key: `page_${page}`,\n slot: 'page-number',\n slotData: {\n page,\n active: isActivePage,\n disabled: isDisabled\n },\n attrs,\n listeners\n };\n },\n getEllipsisItem(side) {\n return {\n content: this.ellipsisText,\n key: `ellipsis_${side}`,\n slot: `ellipsis-${side}`,\n component: 'span',\n disabled: true,\n slotData: {},\n listeners: {}\n };\n },\n handleClick(event, value) {\n if (!this.isLinkBased) {\n event.preventDefault();\n /**\n * Emitted when the page changes\n * @event input\n * @arg {number} value The page that just got loaded\n */\n this.$emit('input', value);\n }\n },\n handlePrevious(event, value) {\n this.handleClick(event, value);\n /**\n * Emitted when the \"previous\" button is clicked\n * @event previous\n */\n this.$emit('previous');\n },\n handleNext(event, value) {\n this.handleClick(event, value);\n /**\n * Emitted when the \"next\" button is clicked\n * @event next\n */\n this.$emit('next');\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('nav',{staticClass:\"gl-pagination text-nowrap\",attrs:{\"aria-label\":\"Pagination\"}},[_c('ul',{staticClass:\"pagination\",class:_vm.wrapperClasses},[_c('li',{staticClass:\"page-item\",class:{\n disabled: _vm.prevPageIsDisabled,\n 'flex-fill': _vm.isFillAlign,\n },attrs:{\"aria-hidden\":_vm.prevPageIsDisabled}},[_c(_vm.prevPageIsDisabled ? 'span' : 'a',{tag:\"component\",staticClass:\"gl-link page-link prev-page-item gl-display-flex\",attrs:{\"aria-label\":_vm.prevPageAriaLabel,\"href\":_vm.prevPageHref},on:{\"click\":function($event){return _vm.handlePrevious($event, _vm.value - 1)}}},[_vm._t(\"previous\",function(){return [_c('gl-icon',{attrs:{\"name\":\"chevron-left\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.prevText))])]},null,{ page: _vm.value - 1, disabled: _vm.prevPageIsDisabled })],2)],1),_vm._v(\" \"),_vm._l((_vm.visibleItems),function(item){return _c('li',{key:item.key,staticClass:\"page-item\",class:{\n disabled: item.disabled,\n 'flex-fill': _vm.isFillAlign,\n }},[_c(item.component,_vm._g(_vm._b({tag:\"component\",staticClass:\"page-link\",attrs:{\"size\":\"md\",\"aria-disabled\":item.disabled}},'component',item.attrs,false),item.listeners),[_vm._t(item.slot,function(){return [_vm._v(_vm._s(item.content))]},null,item.slotData)],2)],1)}),_vm._v(\" \"),_c('li',{staticClass:\"page-item\",class:{\n disabled: _vm.nextPageIsDisabled,\n 'flex-fill': _vm.isFillAlign,\n },attrs:{\"aria-hidden\":_vm.nextPageIsDisabled}},[_c(_vm.nextPageIsDisabled ? 'span' : 'a',{tag:\"component\",staticClass:\"gl-link page-link next-page-item gl-display-flex\",attrs:{\"aria-label\":_vm.nextPageAriaLabel,\"href\":_vm.nextPageHref},on:{\"click\":function($event){return _vm.handleNext($event, _vm.value + 1)}}},[_vm._t(\"next\",function(){return [_c('span',[_vm._v(_vm._s(_vm.nextText))]),_vm._v(\" \"),_c('gl-icon',{attrs:{\"name\":\"chevron-right\"}})]},null,{ page: _vm.value + 1, disabled: _vm.nextPageIsDisabled })],2)],1)],2)]):_vm._e()};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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 { extend } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n getBvTabs: {\n default: function _default() {\n return function () {\n return {};\n };\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n bvTabs: function bvTabs() {\n return this.getBvTabs();\n },\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});","import { BTab } from 'bootstrap-vue/esm/index.js';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { DEFAULT_TAB_TITLE_LINK_CLASS } from '../constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlTab',\n components: {\n BTab\n },\n inheritAttrs: false,\n props: {\n titleLinkClass: {\n type: [String, Array, Object],\n required: false,\n default: ''\n },\n /**\n * Query string parameter value to use when `gl-tabs` `sync-active-tab-with-query-params` prop is set to `true`.\n */\n queryParamValue: {\n type: String,\n required: false,\n default: null\n }\n },\n computed: {\n linkClass() {\n const {\n titleLinkClass\n } = this;\n if (Array.isArray(titleLinkClass)) {\n return [...titleLinkClass, DEFAULT_TAB_TITLE_LINK_CLASS];\n }\n if (isPlainObject(titleLinkClass)) {\n return {\n ...titleLinkClass,\n [DEFAULT_TAB_TITLE_LINK_CLASS]: true\n };\n }\n return `${titleLinkClass} ${DEFAULT_TAB_TITLE_LINK_CLASS}`.trim();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',_vm._g(_vm._b({attrs:{\"title-link-class\":_vm.linkClass,\"query-param-value\":_vm.queryParamValue},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}})],null,true)},'b-tab',_vm.$attrs,false),_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","const DEFAULT_TAB_TITLE_LINK_CLASS = 'gl-tab-nav-item';\n\nexport { DEFAULT_TAB_TITLE_LINK_CLASS };\n"],"sourceRoot":""}