{"version":3,"sources":["webpack:///./src/utils/formatNumber.js","webpack:///./src/mixins/use-action-status.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./src/mixins/use-report.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/naive-ui/es/_internal/icons/Backward.js","webpack:///./src/components/sidebar/adminSidebar.vue","webpack:///./src/components/sidebar/adminSidebar.vue?a2bb","webpack:///./node_modules/naive-ui/es/pagination/styles/_common.js","webpack:///./node_modules/naive-ui/es/pagination/styles/light.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/vueuc/es/shared/finweck-tree.js","webpack:///./node_modules/vueuc/es/virtual-list/src/VirtualList.js","webpack:///./node_modules/naive-ui/es/_internal/focus-detector/src/FocusDetector.js","webpack:///./node_modules/naive-ui/es/_internal/focus-detector/index.js","webpack:///./src/components/connectionError.vue?75b1","webpack:///./src/mixins/use-date-format.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/naive-ui/es/_internal/icons/FastBackward.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/naive-ui/es/_internal/select-menu/styles/_common.js","webpack:///./node_modules/naive-ui/es/_internal/select-menu/styles/light.js","webpack:///./src/components/connectionError.vue","webpack:///./src/components/connectionError.vue?47cc","webpack:///./node_modules/naive-ui/es/tag/styles/_common.js","webpack:///./node_modules/naive-ui/es/tag/styles/light.js","webpack:///./node_modules/naive-ui/es/tag/src/common-props.js","webpack:///./node_modules/naive-ui/es/tag/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/tag/src/Tag.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./src/components/PageSpinner.vue","webpack:///./src/components/PageSpinner.vue?f1ba","webpack:///./node_modules/vueuc/es/overflow/src/index.js","webpack:///./node_modules/naive-ui/es/_utils/naive/attribute.js","webpack:///./node_modules/naive-ui/es/_internal/selection/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/_internal/selection/src/Selection.js","webpack:///./node_modules/naive-ui/es/_internal/icons/Checkmark.js","webpack:///./node_modules/naive-ui/es/_internal/select-menu/src/SelectOption.js","webpack:///./node_modules/naive-ui/es/_internal/select-menu/src/SelectGroupHeader.js","webpack:///./node_modules/naive-ui/es/_internal/select-menu/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/_internal/select-menu/src/SelectMenu.js","webpack:///./node_modules/naive-ui/es/select/src/utils.js","webpack:///./node_modules/naive-ui/es/select/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/select/src/Select.js","webpack:///./node_modules/naive-ui/es/_internal/icons/FastForward.js","webpack:///./node_modules/naive-ui/es/radio/src/use-radio.js","webpack:///./src/utils/formatDateString.js","webpack:///./node_modules/naive-ui/es/data-table/styles/_common.js","webpack:///./node_modules/naive-ui/es/tooltip/styles/_common.js","webpack:///./node_modules/naive-ui/es/tooltip/styles/light.js","webpack:///./node_modules/naive-ui/es/ellipsis/styles/light.js","webpack:///./node_modules/naive-ui/es/checkbox/styles/_common.js","webpack:///./node_modules/naive-ui/es/checkbox/styles/light.js","webpack:///./node_modules/naive-ui/es/data-table/styles/light.js","webpack:///./node_modules/naive-ui/es/checkbox/src/CheckMark.js","webpack:///./node_modules/naive-ui/es/checkbox/src/LineMark.js","webpack:///./node_modules/naive-ui/es/checkbox/src/CheckboxGroup.js","webpack:///./node_modules/naive-ui/es/checkbox/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/checkbox/src/Checkbox.js","webpack:///./node_modules/naive-ui/es/tooltip/src/Tooltip.js","webpack:///./node_modules/naive-ui/es/ellipsis/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/ellipsis/src/Ellipsis.js","webpack:///./node_modules/naive-ui/es/_internal/icons/ArrowDown.js","webpack:///./node_modules/naive-ui/es/data-table/src/HeaderButton/RenderSorter.js","webpack:///./node_modules/naive-ui/es/data-table/src/interface.js","webpack:///./node_modules/naive-ui/es/data-table/src/HeaderButton/SortButton.js","webpack:///./node_modules/naive-ui/es/_internal/icons/Filter.js","webpack:///./node_modules/naive-ui/es/data-table/src/HeaderButton/RenderFilter.js","webpack:///./node_modules/naive-ui/es/radio/src/styles/radio-group.cssr.js","webpack:///./node_modules/naive-ui/es/radio/src/RadioGroup.js","webpack:///./node_modules/naive-ui/es/data-table/src/utils.js","webpack:///./node_modules/naive-ui/es/data-table/src/HeaderButton/FilterMenu.js","webpack:///./node_modules/naive-ui/es/data-table/src/HeaderButton/FilterButton.js","webpack:///./node_modules/naive-ui/es/data-table/src/TableParts/SelectionMenu.js","webpack:///./node_modules/naive-ui/es/data-table/src/TableParts/Header.js","webpack:///./node_modules/naive-ui/es/data-table/src/TableParts/Cell.js","webpack:///./node_modules/naive-ui/es/data-table/src/TableParts/ExpandTrigger.js","webpack:///./node_modules/naive-ui/es/data-table/src/TableParts/BodyCheckbox.js","webpack:///./node_modules/naive-ui/es/data-table/src/TableParts/Body.js","webpack:///./node_modules/naive-ui/es/data-table/src/MainTable.js","webpack:///./node_modules/naive-ui/es/data-table/src/use-check.js","webpack:///./node_modules/naive-ui/es/data-table/src/use-table-data.js","webpack:///./node_modules/naive-ui/es/data-table/src/use-scroll.js","webpack:///./node_modules/naive-ui/es/data-table/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/data-table/src/use-group-header.js","webpack:///./node_modules/naive-ui/es/data-table/src/use-expand.js","webpack:///./node_modules/naive-ui/es/data-table/src/DataTable.js","webpack:///./node_modules/naive-ui/es/select/styles/light.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/naive-ui/es/_internal/icons/More.js","webpack:///./node_modules/naive-ui/es/pagination/src/utils.js","webpack:///./node_modules/naive-ui/es/pagination/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/pagination/src/Pagination.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/naive-ui/es/result/styles/_common.js","webpack:///./node_modules/naive-ui/es/result/styles/light.js","webpack:///./node_modules/naive-ui/es/result/src/404.js","webpack:///./node_modules/naive-ui/es/result/src/500.js","webpack:///./node_modules/naive-ui/es/result/src/418.js","webpack:///./node_modules/naive-ui/es/result/src/403.js","webpack:///./node_modules/naive-ui/es/result/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/result/src/Result.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./src/components/table/reports/admin/transactionHistory.vue?7f0f","webpack:///./node_modules/naive-ui/es/radio/styles/_common.js","webpack:///./node_modules/naive-ui/es/radio/styles/light.js","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/date-fns/esm/getTime/index.js","webpack:///./node_modules/naive-ui/es/_internal/icons/To.js","webpack:///./node_modules/naive-ui/es/_internal/icons/Date.js","webpack:///./node_modules/naive-ui/es/time-picker/styles/_common.js","webpack:///./node_modules/naive-ui/es/time-picker/styles/light.js","webpack:///./node_modules/naive-ui/es/date-picker/styles/_common.js","webpack:///./node_modules/naive-ui/es/date-picker/styles/light.js","webpack:///./node_modules/date-fns/esm/addDays/index.js","webpack:///./node_modules/date-fns/esm/startOfDay/index.js","webpack:///./node_modules/date-fns/esm/isSameDay/index.js","webpack:///./node_modules/date-fns/esm/getDate/index.js","webpack:///./node_modules/date-fns/esm/getMonth/index.js","webpack:///./node_modules/date-fns/esm/getYear/index.js","webpack:///./node_modules/date-fns/esm/isSameMonth/index.js","webpack:///./node_modules/date-fns/esm/startOfMonth/index.js","webpack:///./node_modules/date-fns/esm/getDay/index.js","webpack:///./node_modules/date-fns/esm/_lib/assign/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack:///./node_modules/date-fns/esm/parse/index.js","webpack:///./node_modules/naive-ui/es/date-picker/src/utils.js","webpack:///./node_modules/date-fns/esm/getHours/index.js","webpack:///./node_modules/date-fns/esm/getMinutes/index.js","webpack:///./node_modules/date-fns/esm/getSeconds/index.js","webpack:///./node_modules/naive-ui/es/date-picker/src/validation-utils.js","webpack:///./node_modules/date-fns/esm/setHours/index.js","webpack:///./node_modules/date-fns/esm/startOfHour/index.js","webpack:///./node_modules/date-fns/esm/setMinutes/index.js","webpack:///./node_modules/date-fns/esm/startOfMinute/index.js","webpack:///./node_modules/date-fns/esm/setSeconds/index.js","webpack:///./node_modules/date-fns/esm/startOfSecond/index.js","webpack:///./node_modules/date-fns/esm/getDaysInMonth/index.js","webpack:///./node_modules/date-fns/esm/setMonth/index.js","webpack:///./node_modules/date-fns/esm/set/index.js","webpack:///./node_modules/naive-ui/es/_internal/icons/Time.js","webpack:///./node_modules/naive-ui/es/time-picker/src/utils.js","webpack:///./node_modules/naive-ui/es/time-picker/src/interface.js","webpack:///./node_modules/naive-ui/es/time-picker/src/PanelCol.js","webpack:///./node_modules/naive-ui/es/time-picker/src/Panel.js","webpack:///./node_modules/naive-ui/es/time-picker/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/time-picker/src/TimePicker.js","webpack:///./node_modules/date-fns/esm/addMonths/index.js","webpack:///./node_modules/date-fns/esm/addYears/index.js","webpack:///./node_modules/naive-ui/es/date-picker/src/interface.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/use-panel-common.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/use-calendar.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/datetime.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/use-dual-calendar.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/datetimerange.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/date.js","webpack:///./node_modules/naive-ui/es/date-picker/src/panel/daterange.js","webpack:///./node_modules/naive-ui/es/date-picker/src/styles/index.cssr.js","webpack:///./node_modules/naive-ui/es/date-picker/src/DatePicker.js","webpack:///./src/components/table/global_data_table/globalDataTable.vue","webpack:///./src/components/table/global_data_table/globalDataTable.vue?b4e2","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./src/utils/camelCaseToTitle.js","webpack:///./src/views/dashboard/admin/TransactionHistory.vue?89e1","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/naive-ui/es/_internal/icons/Forward.js","webpack:///./node_modules/naive-ui/es/_internal/selection/styles/_common.js","webpack:///./node_modules/naive-ui/es/_internal/selection/styles/light.js","webpack:///./src/views/dashboard/admin/TransactionHistory.vue","webpack:///./src/components/tabs/transaction_history_tab.vue","webpack:///./src/components/tabs/transaction_history_tab.vue?5643","webpack:///./src/data_table_columns/reports/admin/transactionHistory.js","webpack:///./src/components/table/reports/admin/transactionHistory.vue","webpack:///./src/components/table/reports/admin/transactionHistory.vue?e02c","webpack:///./src/views/dashboard/admin/TransactionHistory.vue?2cdd","webpack:///./node_modules/seemly/es/dom/happens-in.js","webpack:///./node_modules/naive-ui/es/radio/src/styles/radio.cssr.js","webpack:///./node_modules/naive-ui/es/radio/src/Radio.js"],"names":["currencyOptions","style","currencyDisplay","formatNumWithDecimal","num","Number","numberToCurrency","currency","result","toLocaleString","status","msg","store","commit","fails","wellKnownSymbol","IS_PURE","ITERATOR","module","exports","url","URL","searchParams","pathname","forEach","value","key","toJSON","sort","href","get","String","URLSearchParams","username","host","hash","undefined","useConfig","config","useDateFormat","date","ActionStatus","GetSummaryAllTransaction","merchantId","payload","dispatch","then","response","includes","responseCode","data","totalPendingTransactionNumber","totalPendingTransactionAmount","totalFailedTransactionNumber","totalFailedTransactionAmount","totalSuccessfulTransactionNumber","totalSuccessfulTransactionAmount","dateRange","pendingReport","failReport","successfulReport","dateArray","reverse","map","transactionDate","split","totalSummaryTransactionNumber","parseInt","totalSummaryTransactionAmount","pendingReports_","totalTransactionNumber","failedReports_","successfulReports_","catch","DownloadTransaction","transactionName","fundDisbursementId","fileURL","createObjectURL","Blob","fileLink","document","createElement","download","body","appendChild","click","remove","revokeObjectURL","error","errorMessagesObj","errors","serverErrorMessage","message","errorMessages_","Object","prototype","hasOwnProperty","call","errorMessagesObjValue","push","length","join","GetTransactionReportByFilterOption","paginationParams","filterBy","GetAllTransactionByGroup","GetAllTransactionByGroupAknowleged","GetAllTransactionByGroupCompleted","GetAllTransactionByGroupValidated","GetAllTransactionByGroupFailed","totalRecords","GetAllTransactionByGroupDetails","responseMessage","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","toString","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","arrayPush","min","Math","MAX_UINT32","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","exec","apply","this","arguments","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","RegExp","source","slice","index","test","O","splitter","rx","S","res","done","C","unicodeMatching","p","q","A","e","z","i","name","viewBox","fill","xmlns","d","class","src","user","photo","role","to","icon","showMenu","ref","sbUserDropdownActiveLink","showDropdownContent","logout","setup","userData","getters","activeDropdown","sbDropdownLink","sbDepartmentsDropdownActiveLink","sbDropdownContent","lastName","firstName","route","openDropdown","path","dropdownItem","dropdownOpen","splice","indexOf","location","assign","showAction","__exports__","render","itemSize","itemPadding","itemMargin","buttonIconSize","inputWidth","selectWidth","inputMargin","selectMargin","prefixMargin","suffixMargin","jumperFontSize","vars","textColor2","primaryColor","primaryColorHover","primaryColorPressed","inputColorDisabled","textColorDisabled","borderColor","borderRadius","fontSize","buttonColor","buttonColorHover","buttonColorPressed","buttonBorder","buttonBorderHover","buttonBorderPressed","buttonIconColor","buttonIconColorHover","buttonIconColorPressed","itemTextColor","itemTextColorHover","itemTextColorPressed","itemTextColorActive","itemTextColorDisabled","itemColor","itemColorHover","itemColorPressed","itemColorActive","itemColorActiveHover","itemColorDisabled","itemBorder","itemBorderHover","itemBorderPressed","itemBorderActive","itemBorderDisabled","itemBorderRadius","itemFontSize","jumperTextColor","jumperTextColorDisabled","paginationLight","common","peers","Select","Input","self","redefine","$toString","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","rf","f","unsafe","EOF","$","DESCRIPTORS","USE_NATIVE_URL","global","defineProperties","anInstance","has","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","set","getInternalURLState","getterFor","floor","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","charAt","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","pop","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","toLowerCase","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","state","buffer","seenAt","seenBracket","seenPasswordToken","port","query","fragment","replace","codePoint","encodedCodePoints","shift","URLConstructor","baseState","that","urlString","type","TypeError","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","setter","configurable","enumerable","nativeCreateObjectURL","nativeRevokeObjectURL","blob","forced","sham","lowBit","n","FinweckTree","l","ft","Array","sum","Error","ret","threshold","r","m","sumM","styles","maxHeight","height","overflow","minWidth","scrollbarWidth","width","display","inheritAttrs","props","showScrollbar","Boolean","default","items","required","itemResizable","itemsStyle","visibleItemsTag","visibleItemsProps","ignoreItemResize","onScroll","Function","onWheel","onResize","defaultScrollKey","defaultScrollIndex","keyField","paddingTop","paddingBottom","ssrAdapter","mount","id","head","ssr","scrollTo","keyIndexMapRef","Map","item","listElRef","listHeightRef","keyToHeightOffset","finweckTreeRef","heightOffset","add","finweckTreeUpdateTrigger","scrollTopRef","startIndexRef","max","getBound","viewportItemsRef","listHeight","startIndex","endIndex","ceil","viewportItems","options","left","top","position","behavior","debounce","scrollToPosition","scrollToIndex","toIndex","MAX_SAFE_INTEGER","targetTop","scrollTop","offsetHeight","lastScrollAnchorIndex","handleItemResize","entry","_a","target","offset","delete","delta","lastAnchorIndex","scrollBy","handleListScroll","syncViewport","handleListResize","contentRect","listEl","listStyle","keyToIndex","boxSizing","minHeight","visibleItemsStyle","transform","itemsElRef","VResizeObserver","_b","$attrs","itemVNode","$slots","empty","onFocus","onBlur","tabindex","dateStr","Date","toLocaleDateString","time","toLocaleTimeString","dateTime","$trim","trim","forcedStringTrimMethod","proto","version","stroke","whitespaces","whitespace","ltrim","rtrim","createMethod","TYPE","$this","start","end","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","counter","charCodeAt","extra","digitToBasic","digit","adapt","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","t","qMinusT","baseMinusT","label","encoded","labels","paddingSmall","paddingMedium","paddingLarge","paddingHuge","optionPaddingSmall","optionPaddingMedium","optionPaddingLarge","optionPaddingHuge","loadingSize","popoverColor","textColor3","dividerColor","opacityDisabled","hoverColor","fontSizeSmall","fontSizeMedium","fontSizeLarge","fontSizeHuge","heightSmall","heightMedium","heightLarge","heightHuge","optionFontSizeSmall","optionFontSizeMedium","optionFontSizeLarge","optionFontSizeHuge","optionHeightSmall","optionHeightMedium","optionHeightLarge","optionHeightHuge","color","groupHeaderTextColor","actionDividerColor","optionTextColor","optionTextColorPressed","optionTextColorDisabled","optionTextColorActive","optionOpacityDisabled","optionCheckColor","optionColorPending","actionTextColor","loadingColor","internalSelectMenuLight","Scrollbar","Empty","justify","title","description","footer","ghost","refreshPage","components","NButton","NSpace","NResult","window","reload","closeSizeSmall","closeSizeMedium","closeSizeLarge","padding","closeMargin","closeMarginRtl","infoColor","successColor","warningColor","errorColor","baseColor","tagColor","closeColor","closeColorHover","closeColorPressed","borderRadiusSmall","fontSizeTiny","heightTiny","textColorCheckable","textColorHoverCheckable","textColorPressedCheckable","textColorChecked","colorCheckable","colorHoverCheckable","colorPressedCheckable","colorChecked","colorCheckedHover","colorCheckedPressed","border","textColor","borderPrimary","alpha","textColorPrimary","colorPrimary","closeColorPrimary","closeColorHoverPrimary","closeColorPressedPrimary","borderInfo","textColorInfo","colorInfo","closeColorInfo","closeColorHoverInfo","closeColorPressedInfo","borderSuccess","textColorSuccess","colorSuccess","closeColorSuccess","closeColorHoverSuccess","closeColorPressedSuccess","borderWarning","textColorWarning","colorWarning","closeColorWarning","closeColorHoverWarning","closeColorPressedWarning","borderError","textColorError","colorError","closeColorError","closeColorHoverError","closeColorPressedError","tagLight","round","size","closable","disabled","cursor","opacity","backgroundColor","tagProps","bordered","checked","checkable","onClose","onMouseenter","onMouseleave","onUpdateChecked","internalStopClickPropagation","onCheckedChange","validator","contentRef","mergedBorderedRef","mergedClsPrefixRef","NConfigProvider","themeRef","handleClick","_onUpdateChecked","handleCloseClick","stopPropagation","tagPublicMethods","textContent","rtlEnabledRef","mergedRtlRef","rtlEnabled","mergedClsPrefix","mergedBordered","cssVars","cubicBezierEaseInOut","closeSize","typedColor","typeTextColor","onClick","clsPrefix","isObject","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","constructor","onloader","hiddenAttr","getCounter","getTail","updateCounter","onUpdateOverflow","slots","selfRef","counterRef","deriveCounter","hasAttribute","removeAttribute","children","containerWidth","offsetWidth","childWidths","tail","childWidthSum","len","child","setAttribute","childWidth","j","restCount","counterWidth","maxWidth","sync","getTitleAttribute","paddingRight","active","pattern","placeholder","selectedOption","selectedOptions","multiple","filterable","clearable","loading","autofocus","showArrow","focused","renderTag","onKeyup","onKeydown","onDeleteOption","maxTagCount","onClear","onPatternInput","renderLabel","patternInputMirrorRef","patternInputRef","multipleElRef","singleElRef","patternInputWrapperRef","counterWrapperRef","overflowRef","inputTagElRef","showTagsPopoverRef","patternInputFocusedRef","hoverRef","mergedClearableRef","filterablePlaceholderRef","labelRef","option","selectedRef","isArray","syncMirrorWidth","patternInputMirrorEl","patternInputEl","hideInputTag","inputTagEl","showInputTag","doFocus","doBlur","doDeleteOption","doClear","doPatternInput","handleFocusin","relatedTarget","contains","handleFocusout","handleClear","handleMouseEnter","handleMouseLeave","handleMouseDown","preventDefault","handleDeleteOption","handlePatternKeyDown","isCompositingRef","cachedInputEvent","handlePatternInputInput","inputText","handleCompositionStart","handleCompositionEnd","handlePatternInputFocus","handlePatternInputBlur","focus","patternInputWrapperEl","multipleEl","singleEl","focusInput","blurInput","blur","count","setTextContent","enterTimerId","clearEnterTimer","clearTimeout","handleMouseEnterCounter","setTimeout","handleMouseLeaveCounter","onPopoverUpdateShow","show","tabIndex","mergedTheme","mergedClearable","patternInputFocused","filterablePlaceholder","selected","showTagsPanel","isCompositing","placeholderColor","paddingSingle","caretColor","colorDisabled","placeholderColorDisabled","colorActive","boxShadowFocus","boxShadowActive","boxShadowHover","borderFocus","borderHover","borderActive","arrowColor","arrowColorDisabled","colorActiveWarning","boxShadowFocusWarning","boxShadowActiveWarning","boxShadowHoverWarning","borderFocusWarning","borderHoverWarning","borderActiveWarning","colorActiveError","boxShadowFocusError","boxShadowActiveError","boxShadowHoverError","borderFocusError","borderHoverError","borderActiveError","clearColor","clearColorHover","clearColorPressed","clearSize","maxTagCountResponsive","maxTagCountNumeric","useMaxTagCount","suffix","Suffix","showClear","createTag","handleClose","originalTags","onInput","onCompositionstart","onCompositionend","renderCounter","rest","tags","concat","renderPopover","popoverProps","trigger","overlap","placement","onUpdateShow","theme","Popover","themeOverrides","peerOverrides","popoverTrigger","showPlaceholder","readonly","onFocusin","onFocusout","onMousedown","checkMarkIcon","Checkmark","renderCheckMark","tmNode","valueRef","pendingTmNodeRef","multipleRef","valueSetRef","renderLabelRef","renderOptionRef","handleOptionClick","handleOptionMouseEnter","isPendingRef","pendingTmNode","handleMouseMove","isPending","isGrouped","parent","rawNode","isSelected","optionValue","valueSet","renderOption","showCheckMark","checkmark","node","onMousemove","paddingLeft","enterScale","scrollable","treeMate","autoPending","virtualScroll","focusable","onTabOut","onToggle","virtualListRef","scrollbarRef","flattenedNodesRef","getFlattenedNodes","fIndexGetterRef","pendingNodeRef","initPendingNode","setPendingTmNode","getFirstAvailableNode","getNode","scrollToPendingNode","itemSizeRef","paddingRef","Set","emptyRef","tmNodes","styleRef","cssVarsRef","doToggle","doScroll","handleVirtualListScroll","handleVirtualListResize","getPendingTmNode","handleKeyUp","handleKeyDown","next","getNext","loop","prev","getPrev","fIndex","elSize","optionHeight","optionPadding","exposedProps","flattenedNodes","strokeWidth","container","virtualListContainer","content","virtualListContent","VirtualList","bottom","isGroup","ignored","action","getKey","getIsGroup","getIgnored","tmOptions","patternMatched","err","filterOptions","originalOpts","filter","traverse","filteredOptions","createValOptMap","valOptMap","SelectGroupOption","defaultFilter","selectProps","propTo","defaultValue","remote","widthMode","tag","onCreate","fallbackOption","consistentMenuWidth","onUpdateValue","onSearch","onChange","displayDirective","namespaceRef","uncontrolledValueRef","controlledValueRef","mergedValueRef","focusedRef","patternRef","treeMateRef","create","filteredOptionsRef","valOptMapRef","uncontrolledShowRef","mergedShowRef","triggerRef","followerRef","menuRef","localeRef","localizedPlaceholderRef","compitableOptionsRef","createdOptionsRef","beingCreatedOptionsRef","memoValOptMapRef","wrappedFallbackOptionRef","localOptionsRef","localOptions","selectedOptionsRef","values","memoValOptMap","wrappedFallbackOption","selectedOptionRef","mergedValue","formItem","mergedSizeRef","mergedDisabledRef","doUpdateValue","_onUpdateValue","nTriggerFormChange","nTriggerFormInput","nTriggerFormBlur","nTriggerFormFocus","doSearch","updateMemorizedOptions","openMenu","focusSelectionInput","closeMenu","handleMenuLeave","handleTriggerClick","handleTriggerBlur","handleTriggerFocus","handleMenuFocus","handleMenuBlur","$el","handleMenuTabOut","handleMenuClickOutside","createClearedMultipleSelectValue","from","v","handleToggleByTmNode","handleToggleByOption","beingCreatedOptions","beingCreatedOption","changedValue","findIndex","createdOptionIndex","getCreatedOptionIndex","focusSelection","createdOptions","createdOption","handlePatternInput","optionBeingCreated","some","handleMenuMousedown","handleMenuScroll","_c","menu","pendingOptionData","syncPosition","namespace","isMounted","uncontrolledShow","mergedShow","adjustedTo","uncontrolledValue","localizedPlaceholder","mergedSize","mergedDisabled","handleToggle","handleMenuKeyup","handleMenuKeydown","menuBoxShadow","InternalSelection","teleportDisabled","tdkey","containerClass","appear","onLeave","InternalSelectMenu","clickoutside","radioProps","defaultChecked","checkedValue","radioGroupInjectionKey","Symbol","NFormItem","NRadioGroup","disabledRef","inputRef","uncontrolledCheckedRef","controlledCheckedRef","mergedCheckedRef","renderSafeCheckedRef","mergedNameRef","nameRef","focusRef","doUpdateChecked","updateChecked","toggle","handleRadioInputChange","handleRadioInputBlur","handleRadioInputFocus","activeElement","mergedName","uncontrolledChecked","renderSafeChecked","formatDate","dateArr","formatDateTime","thPaddingSmall","thPaddingMedium","thPaddingLarge","tdPaddingSmall","tdPaddingMedium","tdPaddingLarge","sorterSize","filterSize","paginationMargin","emptyPadding","actionPadding","actionButtonMargin","boxShadow2","boxShadow","tooltipLight","ellipsisLight","Tooltip","sizeSmall","sizeMedium","sizeLarge","labelPadding","cardColor","modalColor","colorDisabledChecked","colorTableHeader","colorTableHeaderModal","colorTableHeaderPopover","checkMarkColor","checkMarkColorDisabled","checkMarkColorDisabledChecked","borderDisabled","borderDisabledChecked","borderChecked","checkboxLight","textColor1","tableHeaderColor","tableColorHover","iconColor","fontWeightStrong","lineHeight","tdColorHover","thColor","thColorHover","tdColor","tdTextColor","thTextColor","thFontWeight","thButtonColorHover","thIconColor","thIconColorActive","borderColorModal","tdColorHoverModal","thColorModal","thColorHoverModal","tdColorModal","borderColorPopover","tdColorHoverPopover","thColorPopover","thColorHoverPopover","tdColorPopover","boxShadowBefore","boxShadowAfter","opacityLoading","dataTableLight","Button","Checkbox","Radio","Pagination","Ellipsis","checkboxGroupInjectionKey","checkboxGroupProps","checkedCount","toggleCheckbox","checkboxValue","groupValue","checkedCountRef","maxRef","minRef","checkboxProps","indeterminate","privateTableHeader","warn","NCheckboxGroup","renderedCheckedRef","groupValueSet","_onUpdateCheck","nextChecked","renderedChecked","addEventListener","removeEventListener","LineMark","CheckMark","tooltipProps","popoverRef","tooltipExposedMethod","setShow","popoverThemeOverrides","internalExtraClass","$props","builtinThemeOverrides","createLineClampClass","ellipsisProps","expandTrigger","lineClamp","tooltip","attrs","tooltipRef","expandedRef","ellipsisStyleRef","expanded","textOverflow","getTooltipDisabled","syncEllipsisStyle","scrollHeight","scrollWidth","handleClickRef","renderTrigger","latestStyle","lineClampClass","classList","getDisabled","order","dataTableInjectionKey","column","mergedSortStateRef","sortStateRef","activeRef","columnKey","mergedSortOrderRef","mergedRenderSorterRef","mergedComponentPropsRef","DataTable","renderSorter","mergedSortOrder","mergedRenderSorter","RenderSorter","ArrowDown","mapSlot","defaultSlot","isButtonGroup","wrappedInstance","instanceProps","lastInstanceProps","lastInstanceChecked","lastInstanceDisabled","currentInstanceChecked","currentInstanceDisabled","lastInstancePriority","currentInstancePriority","lastInstanceClass","currentInstanceClass","splitorClass","radioGroupProps","selfElRef","selfEl","buttonBorderColor","buttonBorderColorActive","buttonBorderRadius","buttonBoxShadow","buttonBoxShadowFocus","buttonBoxShadowHover","buttonColorActive","buttonTextColor","buttonTextColorActive","buttonTextColorHover","flatten","selectionColWidth","expandColWidth","getColWidth","col","getColKey","createShallowClonedObject","object","getFlagOfOrder","createCustomWidthStyle","createRowClassName","row","rowClassName","shouldUseArrayInSingleMode","filterOptionValues","filterOptionValue","defaultFilterOptionValues","isColumnSortable","sorter","isColumnFilterable","renderFilterMenu","getNextOrderOf","createNextSorter","currentSortState","radioGroupName","onConfirm","mergedThemeRef","temporalValueRef","checkboxGroupValueRef","temporalValue","radioGroupValueRef","doChange","handleChange","handleConfirmClick","handleClearClick","locale","checkboxGroupValue","radioGroupValue","clear","confirm","createFilterState","currentFilterState","mergedFilterValue","nextFilterState","mergedFilterStateRef","filterMenuCssVarsRef","doUpdateFilters","showPopoverRef","filterStateRef","filterMultipleRef","filterMultiple","mergedFilterValueRef","filterValue","mergedRenderFilterRef","renderFilter","handleFilterChange","handleFilterMenuCancel","handleFilterMenuConfirm","showPopover","mergedRenderFilter","filterMenuCssVars","RenderFilter","renderFilterIcon","Filter","hide","allKey","noneKey","createSelectHandler","rawPaginatedDataRef","doCheckAll","doUncheckAll","onSelect","createDropdownOptions","checkTableAll","uncheckTableAll","checkOptionsRef","handleSelect","ChevronDown","renderTitle","discrete","scrollXRef","fixedColumnLeftMapRef","fixedColumnRightMapRef","mergedCurrentPageRef","allRowsCheckedRef","someRowsCheckedRef","rowsRef","colsRef","componentId","scrollPartRef","mergedTableLayoutRef","headerCheckboxDisabledRef","handleTableHeaderScroll","doUpdateSorter","handleCheckboxUpdateChecked","handleColHeaderClick","activeSorter","nextSorter","handleMouseenter","mergedSortState","scrollX","fixedColumnLeftMap","fixedColumnRightMap","currentPage","allRowsChecked","someRowsChecked","rows","cols","checkOptions","mergedTableLayout","headerCheckboxDisabled","hasEllipsis","theadVNode","colSpan","rowSpan","isLast","ellipsis","textAlign","align","right","colspan","rowspan","fixed","className","SelectionMenu","SortButton","FilterButton","tableLayout","isSummary","cell","ChevronRight","rowKey","mergedCheckedRowKeySetRef","mergedInderminateRowKeySetRef","expandedRowKeys","fRows","rs","VirtualListItemWrapper","showHeader","flexHeight","mergedExpandedRowKeysRef","paginatedDataRef","rowClassNameRef","leftActiveFixedColKeyRef","rightActiveFixedColKeyRef","renderExpandRef","hoverKeyRef","summaryRef","virtualScrollRef","hasChildrenRef","firstContentfulColIndexRef","indentRef","rowPropsRef","maxHeightRef","setHeaderScrollLeft","doUpdateExpandedRowKeys","handleTableBodyScroll","doCheck","doUncheck","scrollbarInstRef","lastSelectedKey","shiftKey","currentIndex","rowKeysToCheck","getScrollContainer","containerRef","handleUpdateExpanded","mergedExpandedRowKeys","nextExpandedKeys","handleMouseleaveTable","handleMouseenterTable","exposedMethods","cProps","leftActiveFixedColKey","rightActiveFixedColKey","fixedStyleMounted","force","unmount","summary","paginatedData","rawPaginatedData","renderExpand","hoverKey","hasChildren","firstContentfulColIndex","indent","rowProps","isBasicAutoLayout","xScrollable","contentStyle","horizontalRailStyle","zIndex","verticalRailStyle","internalOnUpdateScrollLeft","cordToPass","cordKey","colCount","rowIndexToKey","rowIndex","sorterKey","mergedData","mergedPaginationData","summaryRows","rowCount","indentStyle","rowInfo","rowData","showExpandContent","colNodes","colIndex","cordOfRowToPass","indexInCordOfRowToPass","colKey","mergedColSpan","mergedRowSpan","isLastCol","isLastRow","isCrossRowTd","level","ExpandTrigger","expandable","Cell","mergedRowClassName","rightFixedColumnsRef","leftFixedColumnsRef","bodyWidthRef","minHeightRef","flexHeightRef","syncScrollState","headerInstRef","bodyInstRef","fixedStateInitializedRef","bodyStyleRef","handleBodyResize","getHeaderElement","getBodyElement","transitionDisabledClass","bodyStyle","headerInBody","useCheck","selectionColumnRef","uncontrolledCheckedRowKeysRef","defaultCheckedRowKeys","mergedCheckState","checkedRowKeys","getCheckedKeys","cascade","mergedCheckedRowKeysRef","checkedKeys","mergedInderminateRowKeysRef","indeterminateKeys","countOfCurrentPageCheckedRowsRef","mergedCheckedRowKeySet","reduce","total","countOfCurrentPageDisabledRowsRef","mergedInderminateRowKeySet","doUpdateCheckedRowKeys","keys","_onUpdateCheckedRowKeys","onUpdateCheckedRowKeys","onCheckedRowKeysChange","check","uncheck","checkWholeTable","treeNodes","rowKeysToUncheck","useTableData","dataRelatedColsRef","columns","find","childrenKey","getChildren","uncontrolledFilterStateRef","uncontrolledSortStateRef","uncontrolledCurrentPageRef","uncontrolledPageSizeRef","defaultSortOrder","defaultFilterOptionValue","controlledCurrentPageRef","pagination","page","controlledPageSizeRef","pageSize","mergedPageSizeRef","mergedPageCountRef","pageCount","columnsWithControlledSortOrder","sortOrder","columnToSort","columnsWithControlledFilter","controlledFilterState","activeFilters","filteredDataRef","mergedFilterState","createDefaultFilter","columnEntries","activeFilterOptionValues","filterMode","sortedDataRef","filteredData","row1","row2","value1","value2","localeCompare","tmNode1","tmNode2","mergedOnUpdatePage","_onUpdatePage","onUpdatePage","doUpdatePage","mergedOnUpdatePageSize","onPageSizeChange","onUpdatePageSize","doUpdatePageSize","mergedItemCountRef","itemCount","mergedPaginationRef","onPageChange","_onUpdatePageSize","sortState","_onUpdateSorter","onUpdateSorter","onSorterChange","filters","sourceColumn","onUpdateFilters","_onUpdateFilters","onFiltersChange","clearSorter","clearFilter","clearFilters","useScroll","mainTableInstRef","scrollLeft","styleScrollXRef","deriveActiveLeftFixedColumn","leftFixedColumns","leftWidth","deriveActiveRightFixedColumn","rightFixedColumns","tableWidth","rightWidth","getScrollElements","header","scrollMainTableBodyToTop","scrollPart","fixedColumnStyle","createFixedColumnStyle","originalTransform","transition","backgroundClip","borderBottom","borderRight","borderBottomLeftRadius","borderBottomRightRadius","flexDirection","marginBottom","marginRight","margin","getRowsAndCols","dataRelatedCols","rowItemMap","WeakMap","maxDepth","totalRowSpan","hasEllpisis","ensureMaxDepth","currentDepth","ensureColLayout","parentIsLast","currentLeafIndex","hideUntilIndex","rowItem","childColumn","titleColSpan","useGroupHeader","rowsAndCols","hasEllpisisRef","useExpand","uncontrolledExpandedRowKeysRef","defaultExpandedRowKeys","controlledExpandedRowKeysRef","expandedKeys","onUpdateExpandedRowKeys","_onUpdateExpandedRowKeys","dataTableProps","bottomBordered","singleLine","singleColumn","alias","mergedBottomBorderedRef","loadingRef","rowKeyRef","selectionColumn","maxLevel","mergedBottomBordered","mergedPagination","thPadding","tdPadding","MainTable","selectLight","getBuiltIn","redefineAll","createIteratorConstructor","hasOwn","bind","classof","createPropertyDescriptor","getIterator","getIteratorMethod","nativeFetch","NativeRequest","RequestPrototype","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","it","replacer","serialize","parseSearchParams","attribute","attributes","entries","validateArgumentsLength","passed","URLSearchParamsIterator","params","kind","iterator","step","URLSearchParamsConstructor","iteratorMethod","entryIterator","entryNext","first","init","URLSearchParamsPrototype","append","getAll","found","val","entriesIndex","sliceIndex","callback","boundFunction","wrapRequestOptions","headers","fetch","RequestConstructor","Request","pagesToShow","pageSlot","firstPage","lastPage","middleStart","middleEnd","middleDelta","leftSplit","rightSplit","mapPagesToPageItems","pages","background","paginationProps","defaultPage","defaultPageCount","showSizePicker","defaultPageSize","pageSizes","showQuickJumper","prefix","jumperRef","jumperValueRef","uncontrolledPageRef","mergedPageRef","showFastForwardRef","showFastBackwardRef","pageSizeOptionsRef","selectionSuffix","inputSizeRef","inputSize","selectSizeRef","selectSize","endIndexRef","disableTransitionOneTick","forward","backward","fastForward","fastBackward","handleSizePickerChange","handleQuickJumperKeyUp","isNaN","handlePageItemClick","pageItem","handlePageItemMouseEnter","handlePageItemMouseLeave","handleJumperInput","mergedPage","showFastBackward","showFastForward","pageItems","jumperValue","pageSizeOptions","mergedPageSize","mergedPageCount","handleBackwardClick","handleForwardClick","renderPrev","renderNext","Backward","FastBackward","More","FastForward","Forward","goto","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","titleFontSizeSmall","titleFontSizeMedium","titleFontSizeLarge","titleFontSizeHuge","iconSizeSmall","iconSizeMedium","iconSizeLarge","iconSizeHuge","iconColor418","iconColor404","iconColor403","iconColor500","titleFontWeight","titleTextColor","iconColorError","iconColorSuccess","iconColorInfo","iconColorWarning","resultLight","cx","cy","ry","marginTop","imgMap","403","404","418","500","iconMap","info","Info","success","Success","warning","Warning","resultProps","titleFontSize","iconSize","isForced","inheritIfRequired","isSymbol","toPrimitive","getOwnPropertyNames","getOwnPropertyDescriptor","defineProperty","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","maxCode","digits","NaN","NumberWrapper","valueOf","radioSizeSmall","radioSizeMedium","radioSizeLarge","buttonHeightSmall","buttonHeightMedium","buttonHeightLarge","boxShadowDisabled","dotColorActive","dotColorDisabled","buttonBorderColorHover","radioLight","requiredArgs","args","toDate","argStr","getTime","console","stack","isValid","dirtyDate","toInteger","dirtyNumber","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","addLeadingZeros","targetLength","sign","abs","formatters","y","token","signedYear","getUTCFullYear","year","M","month","getUTCMonth","getUTCDate","a","dayPeriodEnumValue","getUTCHours","toUpperCase","h","H","getUTCMinutes","s","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","weekStartsOn","day","getUTCDay","diff","setUTCDate","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","dirtyOptions","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","dayPeriodEnum","am","pm","midnight","noon","morning","afternoon","evening","night","G","localize","era","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","u","Q","quarter","context","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","c","isoDayOfWeek","hours","dayPeriod","b","B","K","X","_localize","originalDate","_originalDate","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","formatTimezoneShort","T","dirtyDelimiter","absOffset","minutes","dateLongFormatter","formatLong","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","matchResult","datePattern","timePattern","longFormatters","P","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","format","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","replaceable","itemHeight","itemWidth","panelActionPadding","iconColorDisabled","panelColor","panelBoxShadow","panelDividerColor","itemOpacityDisabled","timePickerLight","itemCellWidth","itemCellHeight","panelExtraFooterPadding","calendarTitlePadding","calendarTitleHeight","arrowSize","panelHeaderPadding","calendarDaysHeight","calendarTitleGridTempateColumns","calendarLeftPaddingDate","calendarLeftPaddingDatetime","calendarLeftPaddingDaterange","calendarLeftPaddingDatetimerange","calendarRightPaddingDate","calendarRightPaddingDatetime","calendarRightPaddingDaterange","calendarRightPaddingDatetimerange","calendarDaysFontSize","calendarTitleFontSize","itemTextColorCurrent","itemColorIncluded","panelTextColor","calendarTitleTextColor","calendarDaysTextColor","panelHeaderDividerColor","calendarDaysDividerColor","calendarDividerColor","panelActionDividerColor","panelBorderRadius","calendarTitleFontWeight","datePickerLight","TimePicker","addDays","setDate","startOfDay","setHours","isSameDay","dirtyDateLeft","dirtyDateRight","dateLeftStartOfDay","dateRightStartOfDay","dayOfMonth","getYear","isSameMonth","dateLeft","dateRight","startOfMonth","getDay","dirtyObject","property","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","setUTCISODay","setUTCISOWeek","dirtyISOWeek","setUTCWeek","dirtyWeek","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","MILLISECONDS_IN_SECOND","numericPatterns","hour23h","hour24h","hour11h","hour12h","minute","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","parseNumericPattern","valueCallback","parseTimezonePattern","seconds","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","priority","parse","_options","incompatibleTokens","isTwoDigitYear","validate","_date","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","subPriority","isLeapYear","wholeWeekDays","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","TIMEZONE_UNIT_PRIORITY","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","subFnOptions","setters","dateToSystemTimezone","tokens","usedTokens","parser","incompatibleToken","_i","usedToken","fullToken","parseResult","uniquePrioritySetters","array","setterArray","convertedDate","setFullYear","matchDate","sourceTime","patternTime","monthTs","valueTs","currentTs","inSpan","startOfSpan","endOfSpan","dateObject","inCurrentMonth","isCurrentDate","ts","startDay","strip","displayMonth","displayMonthIterator","lastMonthIterator","calendarDays","protectLastMonthDateIsShownFlag","strictParse","backup","uniCalendarValidation","timePickerValidatorRef","isTimeDisabled","isHourDisabledRef","isHourDisabled","isMinuteDisabledRef","isMinuteDisabled","isSecondDisabledRef","isSecondDisabled","isDateInvalidRef","isDateDisabled","isTimeInvalidRef","hour","isDateTimeInvalidRef","isValueInvalidRef","dualCalendarValidation","timeValidator","isStartHourDisabledRef","isEndHourDisabledRef","isStartMinuteDisabledRef","isEndMinuteDisabledRef","isStartSecondDisabledRef","isEndSecondDisabledRef","isStartDateInvalidRef","isEndDateInvalidRef","isStartTimeInvalidRef","startHours","startMinutes","startSeconds","startTimeInvalid","isEndTimeInvalidRef","endHours","endMinutes","endSeconds","endTimeInvalid","isStartValueInvalidRef","isEndValueInvalidRef","isRangeInvalidRef","dirtyHours","startOfHour","setMinutes","dirtyMinutes","startOfMinute","setSeconds","dirtySeconds","startOfSecond","setMilliseconds","getDaysInMonth","monthIndex","lastDayOfMonth","setMonth","dirtyMonth","dateWithDesiredMonth","daysInMonth","points","period","getFixValue","getTimeUnits","stepOrList","isTimeInStep","findSimilarTime","list","lowerBound","upperBound","timePickerInjectionKey","activeValue","onItemClick","numValue","timePickerPanelProps","actions","showHour","showMinute","showSecond","showPeriod","isHourInvalid","isMinuteInvalid","isSecondInvalid","isValueInvalid","hourValue","minuteValue","secondValue","onHourClick","onMinuteClick","onSecondClick","onNowClick","nowText","confirmText","transitionDisabled","onConfirmClick","onFocusDetectorFocus","hoursRef","minutesRef","secondsRef","hourScrollRef","minuteScrollRef","secondScrollRef","PanelCol","validateUnits","every","timePickerProps","stateful","showIcon","dateLocaleRef","keyboardState","inputInstRef","panelInstRef","dateFnsOptionsRef","displayTimeStringRef","memorizedValueRef","transitionDisabledRef","localizedNowRef","now","localizedNegativeTextRef","negativeText","localizedPositiveTextRef","positiveText","hourInFormatRef","minuteInFormatRef","secondInFormatRef","isHourInvalidRef","hourValueRef","isMinuteInvalidRef","minuteValueRef","isSecondInvalidRef","secondValueRef","mergedAttrSizeRef","handleTimeInputClear","deriveInputValue","handleFocusDetectorFocus","closePanel","returnFocus","handleMenuKeyDown","openPanel","handleHourClick","handleMinuteClick","handleSecondClick","handleTimeInputFocus","isInternalFocusSwitch","handleTimeInputBlur","panelEl","handleTimeInputActivate","handleTimeInputDeactivate","scrollTimer","querySelector","offsetTop","wrapperElRef","handleClickOutside","handleTimeInputUpdateValue","newTime","handleCancelClick","handleNowClick","getNowTime","mergeHours","mergeMinutes","mergeSeconds","newValue","handleMenuFocusOut","localizedNow","localizedNegativeText","localizedPositiveText","hourInFormat","minuteInFormat","secondInFormat","mergedAttrSize","displayTimeString","triggerCssVars","passivelyActivated","attrSize","textDecoration","onActivate","onDeactivate","internalDeactivateOnEnter","internalForceFocus","Time","Panel","addMonths","endOfDesiredMonth","addYears","datePickerInjectionKey","DATE_FORMAT","TIME_FORMAT","usePanelCommonProps","dateFormat","timeFormat","shortcuts","usePanelCommon","timePickerSizeRef","doConfirm","doUpdate","doClose","disableUpdateOnClose","doTabOut","dateEls","querySelectorAll","el","handlePanelKeyDown","handlePanelFocus","tab","cachedValue","cached","cachePendingValue","clearPendingValue","restorePendingValue","dateFnsOptions","timePickerSize","useCalendarProps","useCalendar","panelCommon","isDateDisabledRef","datePickerSlots","validation","isDateInvalid","isTimeInvalid","isDateTimeInvalid","dateInputValueRef","calendarValueRef","nowRef","dateArrayRef","firstDayOfWeek","weekdaysRef","dateItem","dayFormat","calendarMonthRef","monthFormat","calendarYearRef","yearFormat","sanitizeValue","mergedIsDateDisabled","handleDateInput","newDateTime","handleDateInputBlur","deriveDateInputValue","clearSelectedDateTime","handleDateClick","closeCalendar","nextYear","prevYear","nextMonth","prevMonth","handleTimePickerChange","oldValue","calendarYear","calendarMonth","weekdays","dateInputValue","_d","selectDate","selectTime","monthBeforeYear","weekday","shortcut","useDualCalendarProps","useDualCalendar","rangesRef","closeOnSelectRef","updateValueOnCloseRef","isStartHourDisabled","isEndHourDisabled","isStartMinuteDisabled","isEndMinuteDisabled","isStartSecondDisabled","isEndSecondDisabled","isStartDateInvalid","isEndDateInvalid","isStartTimeInvalid","isEndTimeInvalid","isStartValueInvalid","isEndValueInvalid","isRangeInvalid","startDatesElRef","endDatesElRef","startCalendarDateTimeRef","endCalendarDateTimeRef","isSelectingRef","memorizedStartDateTimeRef","startDateInput","endDateInputRef","syncCalendarTimeWithValue","selectingPhaseRef","startDateArrayRef","endDateArrayRef","startCalendarMonthRef","endCalendarMonthRef","startCalendarYearRef","endCalendarYearRef","startTimeValueRef","endTimeValueRef","shortcutsRef","handleCalendarChange","adjustCalendarTimes","byStartCalendarTime","startTime","endTime","startCalendarNextYear","startCalendarPrevYear","startCalendarNextMonth","startCalendarPrevMonth","endCalendarNextYear","endCalendarPrevYear","endCalendarNextMonth","endCalendarPrevMonth","memorizedStartDateTime","resetSelectingStatus","startMoment","endMoment","changeStartEndTime","handleDateMouseEnter","changeStartDateTime","changeEndDateTime","datetime","handleStartDateInput","handleEndDateInput","handleStartDateInputBlur","refreshDisplayDateString","handleEndDateInputBlur","times","handleStartTimePickerChange","handleEndTimePickerChange","ranges","startCalendarMonth","startCalendarYear","endCalendarMonth","endCalendarYear","startDateArray","endDateArray","startDateDisplayString","endDateInput","startTimeValue","endTimeValue","gridTemplateColumns","gridArea","gridTemplateAreas","flex","borderTopLeftRadius","borderTopRightRadius","borderTop","daterange","datetimerange","datePickerProps","updateValueOnClose","startPlaceholder","endPlaceholder","closeOnSelect","triggerElRef","controlledShowRef","pendingValueRef","singleInputValueRef","rangeStartInputValueRef","rangeEndInputValueRef","DatePicker","isRangeRef","localizedPlacehoderRef","datePlaceholder","datetimePlaceholder","localizedStartPlaceholderRef","startDatePlaceholder","startDatetimePlaceholder","localizedEndPlaceholderRef","endDatePlaceholder","endDatetimePlaceholder","mergedFormatRef","doUpdatePendingValue","doUpdateShow","_onUpdateShow","deactivate","handlePanelTabOut","handlePanelClose","handlePanelUpdateValue","handlePanelConfirm","deriveInputState","deriveRangeInputState","deriveSingleInputState","handleInputActivate","openCalendar","handleInputBlur","handleInputDeactivate","handleSingleUpdateValue","newSelectedDateTime","handleRangeUpdateValue","newStartTime","newEndTime","handleInputFocus","uniVaidation","dualValidation","pendingValue","displayTime","displayStartTime","displayEndTime","isRange","localizedStartPlaceholder","localizedEndPlaceholder","localizedPlacehoder","calendarLeftPadding","calendarRightPadding","commonInputProps","commonPanelProps","pair","To","getCurrentPage","emit","getCurrentPageSize","non","METHOD_NAME","camelCaseToTitle","str","titleCaseString","stringToSentence","capitalizedString","_classCallCheck","instance","Constructor","inputColor","warningColorHover","errorColorHover","caretColorWarning","caretColorError","internalSelectionLight","sidebarActive","isSidebarActive","sidebarToggled","$event","hasConnectionError","transactionHistory","updatePaginationParams","isPaginating","handlePagination","startDate","endDate","searchValue","hasEmptyDateFields","transactionHistoryRecord","handleSearchRecordBtnClick","NDatePicker","NInput","emits","refreshButtonClicked","TransactionHistoryRecord","dateInMilliSeconds","toDateStr","isRefreshButtonClicked","emitFetchTransactionReportOrHistory","requiredColumns","transactionHistoryDataTableColumns","tableColumns","columnItem","dateCreated","merchantName","merchantTransactionAuthorizerGroupName","totalAmount","batchNumber","fundDisbursementStatusName","dataSourceTransactionHistory","searchQuery","filterCB","record","debitAccountBankName","debitAccount","beneficiaryBankName","beneficiaryAccount","beneficiaryName","transactionAmount","narration","processorReference","processorResponseMessage","filteredDataSource","searchText","dataTable","Sidebar","MainFooter","AdminSidebar","Navbar","TransactionHistoryTab","TransactionHistoryTable","NModal","PageSpinner","ConnectionError","_globalLoading","_hasConnectionError","isToggled","TransactionHistory","finally","getTransactionHistoryByFilterOption","pageParams","merchant","authorizerGroupId","happensIn","dataSetPropName","dataset","parentElement","radio","radioSize"],"mappings":"oKAAMA,G,UAAkB,CACtBC,MAAO,WACPC,gBAAiB,SAGNC,EAAuB,SAAAC,GAClC,OAAOC,OAAOD,IAGHE,EAAmB,SAACF,EAAKG,GAAa,QAC3CC,EAASD,EAAQ,UACnBJ,EAAqBC,UADF,aACnB,EAA2BK,eAAe,QAA1C,iCACGT,GADH,IAEAO,cAHmB,UAKnBJ,EAAqBC,UALF,aAKnB,EAA2BK,eAAe,SAE9C,OAAOD,I,4ECfM,kBACb,IAAME,EAAM,yDAAG,WAAOA,EAAQC,GAAf,iFACbC,OAAMC,OAAO,gBAAiBH,GAC9BE,OAAMC,OAAO,iBAAkBF,GAFlB,2CAAH,wDAKZ,MAAO,CACLD,Y,uBCTJ,IAAII,EAAQ,EAAQ,QAChBC,EAAkB,EAAQ,QAC1BC,EAAU,EAAQ,QAElBC,EAAWF,EAAgB,YAE/BG,EAAOC,SAAWL,GAAM,WACtB,IAAIM,EAAM,IAAIC,IAAI,gBAAiB,YAC/BC,EAAeF,EAAIE,aACnBd,EAAS,GAMb,OALAY,EAAIG,SAAW,QACfD,EAAaE,SAAQ,SAAUC,EAAOC,GACpCJ,EAAa,UAAU,KACvBd,GAAUkB,EAAMD,KAEVT,IAAYI,EAAIO,SAClBL,EAAaM,MACD,2BAAbR,EAAIS,MACsB,MAA1BP,EAAaQ,IAAI,MACuB,QAAxCC,OAAO,IAAIC,gBAAgB,WAC1BV,EAAaL,IAEsB,MAApC,IAAII,IAAI,eAAeY,UACsC,MAA7D,IAAID,gBAAgB,IAAIA,gBAAgB,QAAQF,IAAI,MAEpB,eAAhC,IAAIT,IAAI,eAAea,MAEQ,YAA/B,IAAIb,IAAI,cAAcc,MAEX,SAAX3B,GAEwC,MAAxC,IAAIa,IAAI,gBAAYe,GAAWF,S,kVCzBtC,EAAmBG,iBAAXC,EAAR,EAAQA,OACR,EAAiBC,iBAATC,EAAR,EAAQA,KACR,EAAmBC,iBAAX/B,EAAR,EAAQA,OAIKgC,EAAwB,yDAAG,WAAMC,GAAN,8FAChCC,EAAU,CAAED,aAAYL,UADQ,kBAG/B1B,OAAMiC,SAAS,kCAAmCD,GACtDE,MAAK,SAAAC,GAKJ,GAHAnC,OAAMC,OAAO,wBAAwB,GAGjC,CAAC,EAAG,IAAK,MAAMmC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,eAEhCF,EAASG,KAAM,CACjB,aAYIH,QAZJ,IAYIA,OAZJ,EAYIA,EAAUG,KAXZC,EADF,EACEA,8BACAC,EAFF,EAEEA,8BACAC,EAHF,EAGEA,6BACAC,EAJF,EAIEA,6BACAC,EALF,EAKEA,iCACAC,EANF,EAMEA,iCACAC,EAPF,EAOEA,UAEAC,EATF,EASEA,cACAC,EAVF,EAUEA,WACAC,EAXF,EAWEA,iBAIFhD,OAAMC,OAAO,0CAA2CsC,GAExDvC,OAAMC,OAAO,0CAA2CuC,GAGxDxC,OAAMC,OAAO,yCAA0CwC,GAEvDzC,OAAMC,OAAO,yCAA0CyC,GAGvD1C,OAAMC,OAAO,6CAA8C0C,GAE3D3C,OAAMC,OAAO,6CAA8C2C,GAG3D5C,OAAMC,OAAO,oBAAqB4C,GAGlC,IAAMI,EAAS,OAAGH,QAAH,IAAGA,OAAH,EAAGA,EAAeI,UAAUC,KAAI,SAAAtC,GAAK,OAAIe,EAAKf,EAAMuC,iBAAiBC,MAAM,KAAK,MAE/FrD,OAAMC,OAAO,oBAAqBgD,GAIlC,IAAMK,EAAgCC,SAAShB,GAAiCgB,SAASd,GAAgCc,SAASZ,GAC5Ha,EAAgCD,SAASf,GAAiCe,SAASb,GAAgCa,SAASX,GAGlI5C,OAAMC,OAAO,kCAAmCqD,GAEhDtD,OAAMC,OAAO,kCAAmCuD,GAIhD,IAAMC,EAAe,OAAGX,QAAH,IAAGA,OAAH,EAAGA,EAAeI,UAAUC,KAAI,SAAAtC,GAAK,OAAIA,EAAM6C,0BAC9DC,EAAc,OAAGZ,QAAH,IAAGA,OAAH,EAAGA,EAAYG,UAAUC,KAAI,SAAAtC,GAAK,OAAIA,EAAM6C,0BAC1DE,EAAkB,OAAGZ,QAAH,IAAGA,OAAH,EAAGA,EAAkBE,UAAUC,KAAI,SAAAtC,GAAK,OAAIA,EAAM6C,0BAG1E1D,OAAMC,OAAO,yBAA0BwD,GAEvCzD,OAAMC,OAAO,wBAAyB0D,GAEtC3D,OAAMC,OAAO,4BAA6B2D,OAI/CC,OAAM,WACL7D,OAAMC,OAAO,wBAAwB,OA3EH,2CAAH,sDAmLxB6D,EAAmB,yDAAG,gHAASC,EAAT,EAASA,gBAAiBC,EAA1B,EAA0BA,mBACrDhC,EAAU,CAAEgC,qBAAoBtC,UADL,SAGpB1B,OAAMiC,SAAS,6BAA8BD,GACvDE,MAAK,SAAAC,GACJ,GAAgB,MAAZA,EAAkB,CAIpB,IAAM8B,EAAUxD,IAAIyD,gBAAgB,IAAIC,KAAK,CAAChC,KAExCiC,EAAWC,SAASC,cAAc,KAaxC,OAZAF,EAASnD,KAAOgD,EAChBG,EAASG,SAAT,UAAuBR,EAAvB,4BAEAM,SAASG,KAAKC,YAAYL,GAE1BA,EAASM,QACTN,EAASO,SACTlE,IAAImE,gBAAgBX,GAGpBnE,EAAO,UAAW,2BAEXqC,MAGV0B,OAAM,SAACgB,GAAU,MACVC,EAAgB,OAAGD,QAAH,IAAGA,GAAH,UAAGA,EAAO1C,SAASG,YAAnB,aAAG,EAAsByC,OACzCC,EAAqBH,EAAMI,QAE3BC,EAAiB,GAEvB,IAAK,IAAMpE,KAAOgE,EAChB,GAAIK,OAAOC,UAAUC,eAAeC,KAAKR,EAAkBhE,GAAM,CAC/D,IAAMyE,EAAwBT,EAAiBhE,GAE/CoE,EAAeM,KAAKD,EAAsB,IAO9C,OAFAzF,EAAO,QAASoF,EAAeO,OAASP,EAAeQ,KAAK,MAAQV,GAE7DH,KA5CsB,mFAAH,sDA+CnBc,EAAkC,yDAAG,WAAMC,GAAN,6FACxCA,QADwC,IACxCA,OADwC,EACxCA,EAAkBC,SADsB,OAEzC,QAFyC,OAKzC,iBALyC,OAQzC,cARyC,OAWzC,cAXyC,QAczC,WAdyC,wCAGtCC,EAAyBF,GAHa,0DAMtCG,EAAmCH,GANG,2DAStCI,EAAkCJ,GATI,6DAYtCK,EAAkCL,GAZI,6DAetCM,EAA+BN,GAfO,gFAAH,sDAmBlCE,EAAwB,yDAAG,WAAMF,GAAN,8FAChC5D,EAAU,CAAE4D,mBAAkBlE,UADE,kBAG/B1B,OAAMiC,SAAS,kCAAmCD,GACtDE,MAAK,SAAAC,GAWJ,MAVI,CAAC,EAAG,IAAK,MAAMC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,eAEhCF,EAASG,MACXtC,OAAMC,OAAO,6BAA8B,CACzCkG,aAAY,OAAEhE,QAAF,IAAEA,OAAF,EAAEA,EAAUgE,aACxB7D,KAAI,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAUG,OAKfH,KAER0B,OAAM,SAAAgB,GAAK,OAAI/E,EAAO,QAAS+E,EAAMI,aAjBF,2CAAH,sDAmBxBc,EAAkC,yDAAG,WAAMH,GAAN,8FAC1C5D,EAAU,CAAE4D,mBAAkBlE,UADY,kBAGzC1B,OAAMiC,SAAS,4CAA6CD,GAChEE,MAAK,SAAAC,GAWJ,MAVI,CAAC,EAAG,IAAK,MAAMC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,eAEhCF,EAASG,MACXtC,OAAMC,OAAO,6BAA8B,CACzCkG,aAAY,OAAEhE,QAAF,IAAEA,OAAF,EAAEA,EAAUgE,aACxB7D,KAAI,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAUG,OAKfH,KAER0B,OAAM,SAAAgB,GAAK,OAAI/E,EAAO,QAAS+E,EAAMI,aAjBQ,2CAAH,sDAmBlCe,EAAiC,yDAAG,WAAMJ,GAAN,8FACzC5D,EAAU,CAAE4D,mBAAkBlE,UADW,kBAGxC1B,OAAMiC,SAAS,2CAA4CD,GAC/DE,MAAK,SAAAC,GAWJ,MAVI,CAAC,EAAG,IAAK,MAAMC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,eAEhCF,EAASG,MACXtC,OAAMC,OAAO,6BAA8B,CACzCkG,aAAY,OAAEhE,QAAF,IAAEA,OAAF,EAAEA,EAAUgE,aACxB7D,KAAI,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAUG,OAKfH,KAER0B,OAAM,SAAAgB,GAAK,OAAI/E,EAAO,QAAS+E,EAAMI,aAjBO,2CAAH,sDAsCjCgB,EAAiC,yDAAG,WAAML,GAAN,8FACzC5D,EAAU,CAAE4D,mBAAkBlE,UADW,kBAGxC1B,OAAMiC,SAAS,2CAA4CD,GAC/DE,MAAK,SAAAC,GAWJ,MAVI,CAAC,EAAG,IAAK,MAAMC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,eAEhCF,EAASG,MACXtC,OAAMC,OAAO,6BAA8B,CACzCkG,aAAY,OAAEhE,QAAF,IAAEA,OAAF,EAAEA,EAAUgE,aACxB7D,KAAI,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAUG,OAKfH,KAER0B,OAAM,SAAAgB,GAAK,OAAI/E,EAAO,QAAS+E,EAAMI,aAjBO,2CAAH,sDAmBjCiB,EAA8B,yDAAG,WAAMN,GAAN,8FACtC5D,EAAU,CAAE4D,mBAAkBlE,UADQ,kBAGrC1B,OAAMiC,SAAS,wCAAyCD,GAC5DE,MAAK,SAAAC,GAWJ,MAVI,CAAC,EAAG,IAAK,MAAMC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,eAEhCF,EAASG,MACXtC,OAAMC,OAAO,6BAA8B,CACzCkG,aAAY,OAAEhE,QAAF,IAAEA,OAAF,EAAEA,EAAUgE,aACxB7D,KAAI,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAUG,OAKfH,KAER0B,OAAM,SAAAgB,GAAK,OAAI/E,EAAO,QAAS+E,EAAMI,aAjBI,2CAAH,sDAoB9BmB,EAA+B,yDAAG,WAAMR,GAAN,8FACvC5D,EAAU,CAAE4D,mBAAkBlE,UADS,kBAGtC1B,OAAMiC,SAAS,yCAA0CD,GAC7DE,MAAK,SAAAC,GAaJ,MAZI,CAAC,EAAG,IAAK,MAAMC,SAAf,OAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUE,cAEhCF,EAASG,MACXtC,OAAMC,OAAO,uCAAwC,CACnDkG,aAAY,OAAEhE,QAAF,IAAEA,OAAF,EAAEA,EAAUgE,aACxB7D,KAAI,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAUG,OAIpBxC,EAAO,QAAD,OAAUqC,QAAV,IAAUA,OAAV,EAAUA,EAAUkE,iBAGrBlE,KAER0B,OAAM,SAAAgB,GAAK,OAAI/E,EAAO,QAAS+E,EAAMI,aAnBK,2CAAH,uD,kCCnX5C,IAAIqB,EAAgC,EAAQ,QACxCC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAyB,EAAQ,QACjCC,EAAqB,EAAQ,QAC7BC,EAAqB,EAAQ,QAC7BC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBC,EAAgB,EAAQ,QACxB9G,EAAQ,EAAQ,QAEhB+G,EAAgBD,EAAcC,cAC9BC,EAAY,GAAG1B,KACf2B,EAAMC,KAAKD,IACXE,EAAa,WAIbC,GAAqCpH,GAAM,WAE7C,IAAIqH,EAAK,OACLC,EAAeD,EAAGE,KACtBF,EAAGE,KAAO,WAAc,OAAOD,EAAaE,MAAMC,KAAMC,YACxD,IAAIhI,EAAS,KAAKyD,MAAMkE,GACxB,OAAyB,IAAlB3H,EAAO6F,QAA8B,MAAd7F,EAAO,IAA4B,MAAdA,EAAO,MAI5D0G,EAA8B,SAAS,SAAUuB,EAAOC,EAAaC,GACnE,IAAIC,EAqDJ,OAzCEA,EAV2B,KAA3B,OAAO3E,MAAM,QAAQ,IAEc,GAAnC,OAAOA,MAAM,QAAS,GAAGoC,QACO,GAAhC,KAAKpC,MAAM,WAAWoC,QACU,GAAhC,IAAIpC,MAAM,YAAYoC,QAEtB,IAAIpC,MAAM,QAAQoC,OAAS,GAC3B,GAAGpC,MAAM,MAAMoC,OAGC,SAAUwC,EAAWC,GACnC,IAAIC,EAAStB,EAASJ,EAAuBkB,OACzCS,OAAgB5G,IAAV0G,EAAsBb,EAAaa,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,QAAkB5G,IAAdyG,EAAyB,MAAO,CAACE,GAErC,IAAK5B,EAAS0B,GACZ,OAAOH,EAAYxC,KAAK6C,EAAQF,EAAWG,GAE7C,IAQIC,EAAOC,EAAWC,EARlBC,EAAS,GACTC,GAASR,EAAUS,WAAa,IAAM,KAC7BT,EAAUU,UAAY,IAAM,KAC5BV,EAAUW,QAAU,IAAM,KAC1BX,EAAUY,OAAS,IAAM,IAClCC,EAAgB,EAEhBC,EAAgB,IAAIC,OAAOf,EAAUgB,OAAQR,EAAQ,KAEzD,MAAOJ,EAAQtB,EAAWzB,KAAKyD,EAAeZ,GAAS,CAErD,GADAG,EAAYS,EAAcT,UACtBA,EAAYQ,IACdN,EAAOhD,KAAK2C,EAAOe,MAAMJ,EAAeT,EAAMc,QAC1Cd,EAAM5C,OAAS,GAAK4C,EAAMc,MAAQhB,EAAO1C,QAAQyB,EAAUQ,MAAMc,EAAQH,EAAMa,MAAM,IACzFX,EAAaF,EAAM,GAAG5C,OACtBqD,EAAgBR,EACZE,EAAO/C,QAAU2C,GAAK,MAExBW,EAAcT,YAAcD,EAAMc,OAAOJ,EAAcT,YAK7D,OAHIQ,IAAkBX,EAAO1C,QACvB8C,GAAeQ,EAAcK,KAAK,KAAKZ,EAAOhD,KAAK,IAClDgD,EAAOhD,KAAK2C,EAAOe,MAAMJ,IACzBN,EAAO/C,OAAS2C,EAAMI,EAAOU,MAAM,EAAGd,GAAOI,GAG7C,IAAInF,WAAM7B,EAAW,GAAGiE,OACjB,SAAUwC,EAAWC,GACnC,YAAqB1G,IAAdyG,GAAqC,IAAVC,EAAc,GAAKJ,EAAYxC,KAAKqC,KAAMM,EAAWC,IAEpEJ,EAEhB,CAGL,SAAeG,EAAWC,GACxB,IAAImB,EAAI5C,EAAuBkB,MAC3B2B,OAAwB9H,GAAbyG,OAAyBzG,EAAYyG,EAAUJ,GAC9D,YAAoBrG,IAAb8H,EACHA,EAAShE,KAAK2C,EAAWoB,EAAGnB,GAC5BF,EAAc1C,KAAKuB,EAASwC,GAAIpB,EAAWC,IAOjD,SAAUC,EAAQD,GAChB,IAAIqB,EAAK/C,EAASmB,MACd6B,EAAI3C,EAASsB,GACbsB,EAAM1B,EAAgBC,EAAeuB,EAAIC,EAAGtB,EAAOF,IAAkBF,GAEzE,GAAI2B,EAAIC,KAAM,OAAOD,EAAI5I,MAEzB,IAAI8I,EAAIjD,EAAmB6C,EAAIP,QAE3BY,EAAkBL,EAAGX,QACrBH,GAASc,EAAGb,WAAa,IAAM,KACtBa,EAAGZ,UAAY,IAAM,KACrBY,EAAGX,QAAU,IAAM,KACnB3B,EAAgB,IAAM,KAI/BqC,EAAW,IAAIK,EAAE1C,EAAgB,OAASsC,EAAGN,OAAS,IAAMM,EAAId,GAChEL,OAAgB5G,IAAV0G,EAAsBb,EAAaa,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,GAAiB,IAAboB,EAAE/D,OAAc,OAAuC,OAAhCqB,EAAewC,EAAUE,GAAc,CAACA,GAAK,GACxE,IAAIK,EAAI,EACJC,EAAI,EACJC,EAAI,GACR,MAAOD,EAAIN,EAAE/D,OAAQ,CACnB6D,EAAShB,UAAYrB,EAAgB,EAAI6C,EACzC,IACIE,EADAC,EAAInD,EAAewC,EAAUrC,EAAgBuC,EAAEN,MAAMY,GAAKN,GAE9D,GACQ,OAANS,IACCD,EAAI7C,EAAIP,EAAS0C,EAAShB,WAAarB,EAAgB6C,EAAI,IAAKN,EAAE/D,WAAaoE,EAEhFC,EAAInD,EAAmB6C,EAAGM,EAAGF,OACxB,CAEL,GADAG,EAAEvE,KAAKgE,EAAEN,MAAMW,EAAGC,IACdC,EAAEtE,SAAW2C,EAAK,OAAO2B,EAC7B,IAAK,IAAIG,EAAI,EAAGA,GAAKD,EAAExE,OAAS,EAAGyE,IAEjC,GADAH,EAAEvE,KAAKyE,EAAEC,IACLH,EAAEtE,SAAW2C,EAAK,OAAO2B,EAE/BD,EAAID,EAAIG,GAIZ,OADAD,EAAEvE,KAAKgE,EAAEN,MAAMW,IACRE,OAGTzC,EAAmCL,I,oCCnJvC,gBACe,sBAAgB,CAC3BkD,KAAM,WACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaC,KAAM,OAAQC,MAAO,8BAC1D,eAAE,OAAQ,CAAEC,EAAG,6TAA8TF,KAAM,sB,qFCJpVG,MAAM,qB,GAERA,MAAM,e,GACDA,MAAM,c,GAGTA,MAAM,e,GACHA,MAAM,a,GACNA,MAAM,a,GAUNA,MAAM,Q,EAGZ,eAA0C,QAApCA,MAAM,eAAc,aAAS,G,GAsB7BA,MAAM,Q,EAGZ,eAAsC,QAAhCA,MAAM,eAAc,SAAK,G,GACzBA,MAAM,S,GAKTA,MAAM,uB,2BAI8B,e,2BAKW,0B,2BAKD,yB,aAW3CA,MAAM,Q,EAGZ,eAA0C,QAApCA,MAAM,eAAc,aAAS,G,aAS7BA,MAAM,Q,EAGZ,eAAiD,QAA3CA,MAAM,eAAc,oBAAgB,G,GAsBpCA,MAAM,Q,EAGZ,eAA6C,QAAvCA,MAAM,eAAc,gBAAY,G,GAChCA,MAAM,S,GAKTA,MAAM,uB,2BAI6C,uB,2BAKA,uB,2BAKQ,0B,aAWxDA,MAAM,Q,EAGZ,eAA4C,QAAtCA,MAAM,eAAc,eAAW,G,GAsB/BA,MAAM,Q,EAGZ,eAAyC,QAAnCA,MAAM,eAAc,YAAQ,G,GAC5BA,MAAM,S,GAKTA,MAAM,uB,2BAU6C,2B,2BAKI,2B,2BAKV,qB,2BAKY,2B,4BAKG,yB,IAQzDA,MAAM,Q,GAGZ,eAAuC,QAAjCA,MAAM,eAAc,UAAM,G,mHA/NtC,eAkOU,UAlOV,EAkOU,CAhOR,eAQM,MARN,EAQM,CAPJ,eAES,SAFT,EAES,CADP,eAAuB,OAAjBC,IAAK,GAAAC,KAAKC,O,kBAElB,eAGM,MAHN,EAGM,CAFJ,eAA4C,OAA5C,EAA4C,eAAlB,GAAAD,KAAKE,MAAI,GACnC,eAA4C,OAA5C,EAA4C,eAAlB,GAAAF,KAAKP,MAAI,OAQvC,eAOM,YANJ,eAKc,IALDK,MAAM,sBAAsBK,GAAG,c,yBAC1C,iBAEO,CAFP,eAEO,OAFP,EAEO,CADL,eAA4B,IAAtBC,KAAK,mBAEb,M,QAMI,GAAAC,SAAQ,sB,iBADhB,eA2CM,O,MAzCHP,MAAK,C,cAAqC,qBAAkB,SAAQ,oC,CAMrE,eAgBM,OAfJQ,IAAI,iBACHR,MAAK,C,sCAAiE,qBAAkB,SAAQ,kCAIhGnL,MAAO,GAAA4L,yBACP,QAAK,+BAAE,GAAAC,oBAAmB,Y,CAE3B,eAEO,OAFP,EAEO,CADL,eAAoC,IAA9BJ,KAAK,2BAEb,EACA,eAEO,OAFP,EAEO,CADL,eAA4C,IAAtCA,KAAK,oC,GAIf,eAgBM,MAhBN,EAgBM,CAdI,GAAAC,SAAQ,U,iBADhB,eAIM,SADJ,eAA8D,IAAjDF,GAAG,sBAAoB,C,wBAAC,iBAAW,C,qCAG1C,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAAoF,IAAvEF,GAAG,iCAA+B,C,wBAAC,iBAAsB,C,qCAGhE,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAAkF,IAArEF,GAAG,gCAA8B,C,wBAAC,iBAAqB,C,kEAQlE,GAAAE,SAAQ,4B,iBADhB,eASM,SANJ,eAKc,IALDP,MAAM,sBAAsBK,GAAG,c,yBAC1C,iBAEO,CAFP,eAEO,OAFP,EAEO,CADL,eAAmC,IAA7BC,KAAK,0BAEb,M,+BAMI,GAAAC,SAAQ,U,iBADhB,eASM,SANJ,eAKc,IALDP,MAAM,sBAAsBK,GAAG,qB,yBAC1C,iBAEO,CAFP,eAEO,OAFP,EAEO,CADL,eAAmC,IAA7BC,KAAK,0BAEb,M,+BAMI,GAAAC,SAAQ,sB,iBADhB,eA2CM,O,MAzCHP,MAAK,C,cAAqC,qBAAkB,SAAQ,2C,CAMrE,eAgBM,OAfJQ,IAAI,iBACHR,MAAK,C,sCAAiE,qBAAkB,SAAQ,yCAIhGnL,MAAO,GAAA4L,yBACP,QAAK,+BAAE,GAAAC,oBAAmB,mB,CAE3B,eAEO,OAFP,EAEO,CADL,eAAkC,IAA5BJ,KAAK,yBAEb,EACA,eAEO,OAFP,EAEO,CADL,eAA4C,IAAtCA,KAAK,oC,GAIf,eAgBM,MAhBN,EAgBM,CAdI,GAAAC,SAAQ,U,iBADhB,eAIM,SADJ,eAAqF,IAAxEF,GAAG,qCAAmC,C,wBAAC,iBAAmB,C,qCAGjE,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAAqF,IAAxEF,GAAG,qCAAmC,C,wBAAC,iBAAmB,C,qCAGjE,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAAgG,IAAnFF,GAAG,6CAA2C,C,wBAAC,iBAAsB,C,kEAQhF,GAAAE,SAAQ,U,iBADhB,eASM,SANJ,eAKc,IALDP,MAAM,sBAAsBK,GAAG,gB,yBAC1C,iBAEO,CAFP,eAEO,OAFP,EAEO,CADL,eAAyC,IAAnCC,KAAK,gCAEb,M,+BAMI,GAAAC,SAAQ,kC,iBADhB,eA2DM,O,MAzDHP,MAAK,C,cAAqC,qBAAkB,SAAQ,0C,CAMrE,eAgBM,OAfJQ,IAAI,iBACHR,MAAK,C,sCAAiE,qBAAkB,SAAQ,qCAIhGnL,MAAO,GAAA4L,yBACP,QAAK,+BAAE,GAAAC,oBAAmB,e,CAE3B,eAEO,OAFP,EAEO,CADL,eAA+B,IAAzBJ,KAAK,sBAEb,EACA,eAEO,OAFP,EAEO,CADL,eAA4C,IAAtCA,KAAK,oC,GAIf,eAgCM,MAhCN,EAgCM,CAxBI,GAAAC,SAAQ,U,iBADhB,eAIM,SADJ,eAAyF,IAA5EF,GAAG,qCAAmC,C,wBAAC,iBAAuB,C,qCAGrE,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAA6F,IAAhFF,GAAG,yCAAuC,C,wBAAC,iBAAuB,C,qCAGzE,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAA6E,IAAhEF,GAAG,+BAA6B,C,wBAAC,iBAAiB,C,qCAGzD,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAA+F,IAAlFF,GAAG,2CAAyC,C,wBAAC,iBAAuB,C,qCAG3E,GAAAE,SAAQ,U,iBADhB,eAIM,SADJ,eAAgG,IAAnFF,GAAG,8CAA4C,C,wBAAC,iBAAqB,C,mEAMxF,eAOM,YANJ,eAKI,KALA,QAAK,8CAAU,GAAAM,QAAA,GAAAA,OAAA,sBAAM,cAAElK,KAAK,UAAUuJ,MAAM,uB,CAC9C,eAEO,OAFP,GAEO,CADL,eAA0B,IAApBM,KAAK,iBAEb,S,2FAkBO,IACbX,KAAM,wBACNiB,MAFa,WAEJ,QACDpL,EAAQ,kBACd,EAAmB,kBAAX0B,EAAR,EAAQA,OAEF2J,EAAW,gBAAS,kBAAMrL,EAAMsL,QAAQ,kBAExCC,EAAiB,eAAI,IACrBC,EAAiB,eAAI,MACrBP,EAA2B,eAAS,IACpCQ,EAAkC,eAAS,IAC3CC,EAAoB,eAAI,IAExBhB,EAAG,iBACPC,MAAO,EAAQ,QACfR,KAAM,GAAF,cAAKkB,QAAL,IAAKA,GAAL,UAAKA,EAAUxK,aAAf,aAAK,EAAiB8K,SAAtB,mBAAkCN,QAAlC,IAAkCA,GAAlC,UAAkCA,EAAUxK,aAA5C,aAAkC,EAAiB+K,YACpDP,EAASxK,OAGRgL,EAAQ,kBAGRC,EAAe,WACfD,EAAME,KAAK3J,SAAS,WACtB8I,EAAoB,SAElBW,EAAME,KAAK3J,SAAS,kBACtB8I,EAAoB,gBAElBW,EAAME,KAAK3J,SAAS,cACtB8I,EAAoB,aAIlBA,EAAsB,SAAAc,GAC1B,IAAMC,EAAeP,EAAkB7K,MAAMuB,SAAS4J,GACjDC,EACAP,EAAkB7K,MAAMqL,OAAOR,EAAkB7K,MAAMsL,QAAQH,GAAe,GADhEN,EAAkB7K,MAAM2E,KAAKwG,IAI5Cb,EAAS,WACbnL,EAAMiC,SAAS,eAAgBP,GAC5BQ,MAAK,WAEJkK,SAASC,OAAO,SAMtB,OAFA,gBAAc,kBAAMP,OAEb,CACLpB,OACAa,iBACAR,SAAA,QACAuB,WAAA,QACAR,eACAZ,sBACAC,SACAK,iBACAP,2BACAQ,kCACAC,uB,wBC3SN,MAAMa,GAA2B,KAAgB,GAAQ,CAAC,CAAC,SAASC,MAErD,W,4ECPA,GACXC,SAAU,OACVC,YAAa,QACbC,WAAY,YACZC,eAAgB,OAChBC,WAAY,OACZC,YAAa,QACbC,YAAa,YACbC,aAAc,YACdC,aAAc,YACdC,aAAc,YACdC,eAAgB,Q,YCNb,MAAM,EAAQC,IACjB,MAAM,WAAEC,EAAU,aAAEC,EAAY,kBAAEC,EAAiB,oBAAEC,EAAmB,mBAAEC,EAAkB,kBAAEC,EAAiB,YAAEC,EAAW,aAAEC,EAAY,SAAEC,GAAaT,EACzJ,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAEyB,YAAa,QAASC,iBAAkB,QAASC,mBAAoB,QAASC,aAAc,aAAaN,EAAeO,kBAAmB,aAAaP,EAAeQ,oBAAqB,aAAaR,EAAeS,gBAAiBf,EAAYgB,qBAAsBhB,EAAYiB,uBAAwBjB,EAAYkB,cAAelB,EAAYmB,mBAAoBjB,EAAmBkB,qBAAsBjB,EAAqBkB,oBAAqBpB,EAAcqB,sBAAuBjB,EAAmBkB,UAAW,QAASC,eAAgB,QAASC,iBAAkB,QAASC,gBAAiB,QAASC,qBAAsB,QAASC,kBAAmBxB,EAAoByB,WAAY,kBAAmBC,gBAAiB,kBAAmBC,kBAAmB,kBAAmBC,iBAAkB,aAAa/B,EAAgBgC,mBAAoB,aAAa3B,EAAe4B,iBAAkB3B,EAAc4B,aAAc3B,EAAU4B,gBAAiBpC,EAAYqC,wBAAyBhC,KAE5gCiC,EAAkB,eAAY,CAChCxF,KAAM,aACNyF,OAAQ,OACRC,MAAO,CACHC,OAAQ,OACRC,MAAO,QAEXC,KAAI,IAEO,U,oCCjBf,IAAIC,EAAW,EAAQ,QACnBzJ,EAAW,EAAQ,QACnB0J,EAAY,EAAQ,QACpBhQ,EAAQ,EAAQ,QAChBuI,EAAQ,EAAQ,QAEhB0H,EAAY,WACZC,EAAkBpH,OAAO5D,UACzBiL,EAAiBD,EAAgBD,GAEjCG,EAAcpQ,GAAM,WAAc,MAA2D,QAApDmQ,EAAe/K,KAAK,CAAE2D,OAAQ,IAAKR,MAAO,SAEnF8H,EAAiBF,EAAelG,MAAQgG,GAIxCG,GAAeC,IACjBN,EAASjH,OAAO5D,UAAW+K,GAAW,WACpC,IAAIK,EAAIhK,EAASmB,MACbkC,EAAIqG,EAAUM,EAAEvH,QAChBwH,EAAKD,EAAE/H,MACPiI,EAAIR,OAAiB1O,IAAPiP,GAAoBD,aAAaxH,UAAY,UAAWoH,GAAmB3H,EAAMnD,KAAKkL,GAAKC,GAC7G,MAAO,IAAM5G,EAAI,IAAM6G,IACtB,CAAEC,QAAQ,K,oCCtBf,EAAQ,QACR,IA4CIC,EA5CAC,EAAI,EAAQ,QACZC,EAAc,EAAQ,QACtBC,EAAiB,EAAQ,QACzBC,EAAS,EAAQ,QACjBC,EAAmB,EAAQ,QAC3BhB,EAAW,EAAQ,QACnBiB,EAAa,EAAQ,QACrBC,EAAM,EAAQ,QACd9E,EAAS,EAAQ,QACjB+E,EAAY,EAAQ,QACpBC,EAAS,EAAQ,QAAiCA,OAClDC,EAAU,EAAQ,QAClBpB,EAAY,EAAQ,QACpBqB,EAAiB,EAAQ,QACzBC,EAAwB,EAAQ,QAChCC,EAAsB,EAAQ,QAE9BC,EAAYV,EAAOvQ,IACnBW,EAAkBoQ,EAAsBpQ,gBACxCuQ,EAA+BH,EAAsBI,SACrDC,EAAmBJ,EAAoBK,IACvCC,EAAsBN,EAAoBO,UAAU,OACpDC,EAAQ7K,KAAK6K,MACbC,EAAM9K,KAAK8K,IAEXC,EAAoB,oBACpBC,EAAiB,iBACjBC,EAAe,eACfC,EAAe,eAEfC,EAAQ,WAERC,EAAe,gBACfC,EAAQ,KACRC,EAAY,OACZC,EAAM,WACNC,EAAM,QACNC,EAAM,gBAENC,EAA4B,6BAC5BC,EAA8C,4BAC9CC,EAA2C,uCAC3CC,EAAmB,YAInBC,EAAY,SAAU1S,EAAK2S,GAC7B,IAAIvT,EAAQwT,EAAYjK,EACxB,GAAuB,KAAnBgK,EAAME,OAAO,GAAW,CAC1B,GAAsC,KAAlCF,EAAME,OAAOF,EAAM1N,OAAS,GAAW,OAAO4M,EAElD,GADAzS,EAAS0T,EAAUH,EAAMjK,MAAM,GAAI,KAC9BtJ,EAAQ,OAAOyS,EACpB7R,EAAIc,KAAO1B,OAEN,GAAK2T,EAAU/S,GAQf,CAEL,GADA2S,EAAQ7B,EAAQ6B,GACZL,EAA0B1J,KAAK+J,GAAQ,OAAOd,EAElD,GADAzS,EAAS4T,EAAUL,GACJ,OAAXvT,EAAiB,OAAOyS,EAC5B7R,EAAIc,KAAO1B,MAbe,CAC1B,GAAImT,EAA4C3J,KAAK+J,GAAQ,OAAOd,EAGpE,IAFAzS,EAAS,GACTwT,EAAahC,EAAU+B,GAClBhK,EAAQ,EAAGA,EAAQiK,EAAW3N,OAAQ0D,IACzCvJ,GAAU6T,EAAcL,EAAWjK,GAAQuK,GAE7ClT,EAAIc,KAAO1B,IAUX4T,EAAY,SAAUL,GACxB,IACIQ,EAAaC,EAASzK,EAAO0K,EAAMC,EAAOC,EAAQC,EADlDC,EAAQd,EAAM9P,MAAM,KAMxB,GAJI4Q,EAAMxO,QAAqC,IAA3BwO,EAAMA,EAAMxO,OAAS,IACvCwO,EAAMC,MAERP,EAAcM,EAAMxO,OAChBkO,EAAc,EAAG,OAAOR,EAE5B,IADAS,EAAU,GACLzK,EAAQ,EAAGA,EAAQwK,EAAaxK,IAAS,CAE5C,GADA0K,EAAOI,EAAM9K,GACD,IAAR0K,EAAY,OAAOV,EAMvB,GALAW,EAAQ,GACJD,EAAKpO,OAAS,GAAuB,KAAlBoO,EAAKR,OAAO,KACjCS,EAAQpB,EAAUtJ,KAAKyK,GAAQ,GAAK,EACpCA,EAAOA,EAAK3K,MAAe,GAAT4K,EAAa,EAAI,IAExB,KAATD,EACFE,EAAS,MACJ,CACL,KAAe,IAATD,EAAclB,EAAe,GAATkB,EAAanB,EAAME,GAAKzJ,KAAKyK,GAAO,OAAOV,EACrEY,EAASxQ,SAASsQ,EAAMC,GAE1BF,EAAQpO,KAAKuO,GAEf,IAAK5K,EAAQ,EAAGA,EAAQwK,EAAaxK,IAEnC,GADA4K,EAASH,EAAQzK,GACbA,GAASwK,EAAc,GACzB,GAAII,GAAU7B,EAAI,IAAK,EAAIyB,GAAc,OAAO,UAC3C,GAAII,EAAS,IAAK,OAAO,KAGlC,IADAC,EAAOJ,EAAQM,MACV/K,EAAQ,EAAGA,EAAQyK,EAAQnO,OAAQ0D,IACtC6K,GAAQJ,EAAQzK,GAAS+I,EAAI,IAAK,EAAI/I,GAExC,OAAO6K,GAILV,EAAY,SAAUH,GACxB,IAIItS,EAAO4E,EAAQ0O,EAAaC,EAAWL,EAAQM,EAAOC,EAJtDC,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAa,EACbC,EAAW,KACXC,EAAU,EAGVC,EAAO,WACT,OAAOxB,EAAME,OAAOqB,IAGtB,GAAc,KAAVC,IAAe,CACjB,GAAuB,KAAnBxB,EAAME,OAAO,GAAW,OAC5BqB,GAAW,EACXF,IACAC,EAAWD,EAEb,MAAOG,IAAQ,CACb,GAAkB,GAAdH,EAAiB,OACrB,GAAc,KAAVG,IAAJ,CAOA9T,EAAQ4E,EAAS,EACjB,MAAOA,EAAS,GAAKoN,EAAIzJ,KAAKuL,KAC5B9T,EAAgB,GAARA,EAAa0C,SAASoR,IAAQ,IACtCD,IACAjP,IAEF,GAAc,KAAVkP,IAAe,CACjB,GAAc,GAAVlP,EAAa,OAEjB,GADAiP,GAAWjP,EACP+O,EAAa,EAAG,OACpBL,EAAc,EACd,MAAOQ,IAAQ,CAEb,GADAP,EAAY,KACRD,EAAc,EAAG,CACnB,KAAc,KAAVQ,KAAiBR,EAAc,GAC9B,OADiCO,IAGxC,IAAKjC,EAAMrJ,KAAKuL,KAAS,OACzB,MAAOlC,EAAMrJ,KAAKuL,KAAS,CAEzB,GADAZ,EAASxQ,SAASoR,IAAQ,IACR,OAAdP,EAAoBA,EAAYL,MAC/B,IAAiB,GAAbK,EAAgB,OACpBA,EAAwB,GAAZA,EAAiBL,EAClC,GAAIK,EAAY,IAAK,OACrBM,IAEFH,EAAQC,GAAoC,IAAtBD,EAAQC,GAAoBJ,EAClDD,IACmB,GAAfA,GAAmC,GAAfA,GAAkBK,IAE5C,GAAmB,GAAfL,EAAkB,OACtB,MACK,GAAc,KAAVQ,KAET,GADAD,KACKC,IAAQ,YACR,GAAIA,IAAQ,OACnBJ,EAAQC,KAAgB3T,MA3CxB,CACE,GAAiB,OAAb4T,EAAmB,OACvBC,IACAF,IACAC,EAAWD,GAyCf,GAAiB,OAAbC,EAAmB,CACrBJ,EAAQG,EAAaC,EACrBD,EAAa,EACb,MAAqB,GAAdA,GAAmBH,EAAQ,EAChCC,EAAOC,EAAQC,GACfD,EAAQC,KAAgBD,EAAQE,EAAWJ,EAAQ,GACnDE,EAAQE,IAAaJ,GAASC,OAE3B,GAAkB,GAAdE,EAAiB,OAC5B,OAAOD,GAGLK,EAA0B,SAAUC,GAMtC,IALA,IAAIC,EAAW,KACXC,EAAY,EACZC,EAAY,KACZC,EAAa,EACb9L,EAAQ,EACLA,EAAQ,EAAGA,IACI,IAAhB0L,EAAK1L,IACH8L,EAAaF,IACfD,EAAWE,EACXD,EAAYE,GAEdD,EAAY,KACZC,EAAa,IAEK,OAAdD,IAAoBA,EAAY7L,KAClC8L,GAON,OAJIA,EAAaF,IACfD,EAAWE,EACXD,EAAYE,GAEPH,GAGLI,EAAgB,SAAU5T,GAC5B,IAAI1B,EAAQuJ,EAAOsL,EAAUU,EAE7B,GAAmB,iBAAR7T,EAAkB,CAE3B,IADA1B,EAAS,GACJuJ,EAAQ,EAAGA,EAAQ,EAAGA,IACzBvJ,EAAOwV,QAAQ9T,EAAO,KACtBA,EAAO2Q,EAAM3Q,EAAO,KACpB,OAAO1B,EAAO8F,KAAK,KAEhB,GAAmB,iBAARpE,EAAkB,CAGlC,IAFA1B,EAAS,GACT6U,EAAWG,EAAwBtT,GAC9B6H,EAAQ,EAAGA,EAAQ,EAAGA,IACrBgM,GAA2B,IAAhB7T,EAAK6H,KAChBgM,IAASA,GAAU,GACnBV,IAAatL,GACfvJ,GAAUuJ,EAAQ,IAAM,KACxBgM,GAAU,IAEVvV,GAAU0B,EAAK6H,GAAOtC,SAAS,IAC3BsC,EAAQ,IAAGvJ,GAAU,OAG7B,MAAO,IAAMA,EAAS,IACtB,OAAO0B,GAGPoS,EAA4B,GAC5B2B,EAA2BhJ,EAAO,GAAIqH,EAA2B,CACnE,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAEnC4B,EAAuBjJ,EAAO,GAAIgJ,EAA0B,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAE3BE,EAA2BlJ,EAAO,GAAIiJ,EAAsB,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAG5E7B,EAAgB,SAAUkB,EAAM7C,GAClC,IAAI0D,EAAOnE,EAAOsD,EAAM,GACxB,OAAOa,EAAO,IAAQA,EAAO,MAASrE,EAAIW,EAAK6C,GAAQA,EAAOc,mBAAmBd,IAG/Ee,EAAiB,CACnBC,IAAK,GACLC,KAAM,KACNC,KAAM,GACNC,MAAO,IACPC,GAAI,GACJC,IAAK,KAGHzC,EAAY,SAAU/S,GACxB,OAAO2Q,EAAIuE,EAAgBlV,EAAIyV,SAG7BC,GAAsB,SAAU1V,GAClC,MAAuB,IAAhBA,EAAIa,UAAkC,IAAhBb,EAAI2V,UAG/BC,GAAiC,SAAU5V,GAC7C,OAAQA,EAAIc,MAAQd,EAAI6V,kBAAkC,QAAd7V,EAAIyV,QAG9CK,GAAuB,SAAUnO,EAAQoO,GAC3C,IAAIC,EACJ,OAAwB,GAAjBrO,EAAO1C,QAAe8M,EAAMnJ,KAAKjB,EAAOkL,OAAO,MACjB,MAA9BmD,EAASrO,EAAOkL,OAAO,MAAgBkD,GAAwB,KAAVC,IAG1DC,GAA+B,SAAUtO,GAC3C,IAAIuO,EACJ,OAAOvO,EAAO1C,OAAS,GAAK6Q,GAAqBnO,EAAOe,MAAM,EAAG,MAC9C,GAAjBf,EAAO1C,QACyB,OAA9BiR,EAAQvO,EAAOkL,OAAO,KAAyB,OAAVqD,GAA4B,MAAVA,GAA2B,MAAVA,IAI1EC,GAAkB,SAAUnW,GAC9B,IAAIuL,EAAOvL,EAAIuL,KACX6K,EAAW7K,EAAKtG,QAChBmR,GAA2B,QAAdpW,EAAIyV,QAAgC,GAAZW,GAAkBN,GAAqBvK,EAAK,IAAI,IACvFA,EAAKmI,OAIL2C,GAAc,SAAUC,GAC1B,MAAmB,MAAZA,GAA6C,QAA1BA,EAAQC,eAGhCC,GAAc,SAAUF,GAE1B,OADAA,EAAUA,EAAQC,cACC,OAAZD,GAAgC,SAAZA,GAAkC,SAAZA,GAAkC,WAAZA,GAIrEG,GAAe,GACfC,GAAS,GACTC,GAAY,GACZC,GAAgC,GAChCC,GAAoB,GACpBC,GAAW,GACXC,GAAiB,GACjBC,GAA4B,GAC5BC,GAAmC,GACnCC,GAAY,GACZC,GAAO,GACPC,GAAW,GACXC,GAAO,GACPC,GAAO,GACPC,GAAa,GACbC,GAAY,GACZC,GAAa,GACbC,GAAO,GACPC,GAA4B,GAC5BC,GAAQ,GACRC,GAAW,GAGXC,GAAW,SAAU9X,EAAK2S,EAAOoF,EAAeC,GAClD,IAMIpF,EAAYuB,EAAM8D,EAAkBC,EANpCC,EAAQJ,GAAiBtB,GACzBvC,EAAU,EACVkE,EAAS,GACTC,GAAS,EACTC,GAAc,EACdC,GAAoB,EAGnBR,IACH/X,EAAIyV,OAAS,GACbzV,EAAIa,SAAW,GACfb,EAAI2V,SAAW,GACf3V,EAAIc,KAAO,KACXd,EAAIwY,KAAO,KACXxY,EAAIuL,KAAO,GACXvL,EAAIyY,MAAQ,KACZzY,EAAI0Y,SAAW,KACf1Y,EAAI6V,kBAAmB,EACvBlD,EAAQA,EAAMgG,QAAQnG,EAA0C,KAGlEG,EAAQA,EAAMgG,QAAQlG,EAAkB,IAExCG,EAAahC,EAAU+B,GAEvB,MAAOuB,GAAWtB,EAAW3N,OAAQ,CAEnC,OADAkP,EAAOvB,EAAWsB,GACViE,GACN,KAAK1B,GACH,IAAItC,IAAQpC,EAAMnJ,KAAKuL,GAGhB,IAAK4D,EAGL,OAAOnG,EAFZuG,EAAQxB,GACR,SAJAyB,GAAUjE,EAAKoC,cACf4B,EAAQzB,GAKV,MAEF,KAAKA,GACH,GAAIvC,IAASnC,EAAapJ,KAAKuL,IAAiB,KAARA,GAAuB,KAARA,GAAuB,KAARA,GACpEiE,GAAUjE,EAAKoC,kBACV,IAAY,KAARpC,EA0BJ,IAAK4D,EAKL,OAAOnG,EAJZwG,EAAS,GACTD,EAAQxB,GACRzC,EAAU,EACV,SA7BA,GAAI6D,IACDhF,EAAU/S,IAAQ2Q,EAAIuE,EAAgBkD,IAC5B,QAAVA,IAAqB1C,GAAoB1V,IAAqB,OAAbA,EAAIwY,OACvC,QAAdxY,EAAIyV,SAAqBzV,EAAIc,MAC7B,OAEH,GADAd,EAAIyV,OAAS2C,EACTL,EAEF,YADIhF,EAAU/S,IAAQkV,EAAelV,EAAIyV,SAAWzV,EAAIwY,OAAMxY,EAAIwY,KAAO,OAG3EJ,EAAS,GACS,QAAdpY,EAAIyV,OACN0C,EAAQb,GACCvE,EAAU/S,IAAQgY,GAAQA,EAAKvC,QAAUzV,EAAIyV,OACtD0C,EAAQvB,GACC7D,EAAU/S,GACnBmY,EAAQnB,GAC4B,KAA3BpE,EAAWsB,EAAU,IAC9BiE,EAAQtB,GACR3C,MAEAlU,EAAI6V,kBAAmB,EACvB7V,EAAIuL,KAAKvG,KAAK,IACdmT,EAAQR,IAQZ,MAEF,KAAKhB,GACH,IAAKqB,GAASA,EAAKnC,kBAA4B,KAAR1B,EAAc,OAAOvC,EAC5D,GAAIoG,EAAKnC,kBAA4B,KAAR1B,EAAa,CACxCnU,EAAIyV,OAASuC,EAAKvC,OAClBzV,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQT,EAAKS,MACjBzY,EAAI0Y,SAAW,GACf1Y,EAAI6V,kBAAmB,EACvBsC,EAAQN,GACR,MAEFM,EAAuB,QAAfH,EAAKvC,OAAmB6B,GAAOR,GACvC,SAEF,KAAKF,GACH,GAAY,KAARzC,GAA0C,KAA3BvB,EAAWsB,EAAU,GAGjC,CACLiE,EAAQrB,GACR,SAJAqB,EAAQlB,GACR/C,IAIA,MAEJ,KAAK2C,GACH,GAAY,KAAR1C,EAAa,CACfgE,EAAQjB,GACR,MAEAiB,EAAQT,GACR,SAGJ,KAAKZ,GAEH,GADA9W,EAAIyV,OAASuC,EAAKvC,OACdtB,GAAQ/D,EACVpQ,EAAIa,SAAWmX,EAAKnX,SACpBb,EAAI2V,SAAWqC,EAAKrC,SACpB3V,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIwY,KAAOR,EAAKQ,KAChBxY,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQT,EAAKS,WACZ,GAAY,KAARtE,GAAwB,MAARA,GAAgBpB,EAAU/S,GACnDmY,EAAQpB,QACH,GAAY,KAAR5C,EACTnU,EAAIa,SAAWmX,EAAKnX,SACpBb,EAAI2V,SAAWqC,EAAKrC,SACpB3V,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIwY,KAAOR,EAAKQ,KAChBxY,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQ,GACZN,EAAQP,OACH,IAAY,KAARzD,EASJ,CACLnU,EAAIa,SAAWmX,EAAKnX,SACpBb,EAAI2V,SAAWqC,EAAKrC,SACpB3V,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIwY,KAAOR,EAAKQ,KAChBxY,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIuL,KAAKmI,MACTyE,EAAQT,GACR,SAhBA1X,EAAIa,SAAWmX,EAAKnX,SACpBb,EAAI2V,SAAWqC,EAAKrC,SACpB3V,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIwY,KAAOR,EAAKQ,KAChBxY,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQT,EAAKS,MACjBzY,EAAI0Y,SAAW,GACfP,EAAQN,GAUR,MAEJ,KAAKd,GACH,IAAIhE,EAAU/S,IAAiB,KAARmU,GAAuB,MAARA,EAE/B,IAAY,KAARA,EAEJ,CACLnU,EAAIa,SAAWmX,EAAKnX,SACpBb,EAAI2V,SAAWqC,EAAKrC,SACpB3V,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIwY,KAAOR,EAAKQ,KAChBL,EAAQT,GACR,SAPAS,EAAQjB,QAFRiB,EAAQlB,GAUR,MAEJ,KAAKD,GAEH,GADAmB,EAAQlB,GACI,KAAR9C,GAA6C,KAA9BiE,EAAOvF,OAAOqB,EAAU,GAAW,SACtDA,IACA,MAEF,KAAK+C,GACH,GAAY,KAAR9C,GAAuB,MAARA,EAAc,CAC/BgE,EAAQjB,GACR,SACA,MAEJ,KAAKA,GACH,GAAY,KAAR/C,EAAa,CACXkE,IAAQD,EAAS,MAAQA,GAC7BC,GAAS,EACTJ,EAAmBrH,EAAUwH,GAC7B,IAAK,IAAI1O,EAAI,EAAGA,EAAIuO,EAAiBhT,OAAQyE,IAAK,CAChD,IAAIkP,EAAYX,EAAiBvO,GACjC,GAAiB,KAAbkP,GAAqBL,EAAzB,CAIA,IAAIM,EAAoB5F,EAAc2F,EAAW7D,GAC7CwD,EAAmBvY,EAAI2V,UAAYkD,EAClC7Y,EAAIa,UAAYgY,OALnBN,GAAoB,EAOxBH,EAAS,QACJ,GACLjE,GAAQ/D,GAAe,KAAR+D,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBpB,EAAU/S,GAC3B,CACA,GAAIqY,GAAoB,IAAVD,EAAc,OAAOzG,EACnCuC,GAAWtD,EAAUwH,GAAQnT,OAAS,EACtCmT,EAAS,GACTD,EAAQhB,QACHiB,GAAUjE,EACjB,MAEF,KAAKgD,GACL,KAAKC,GACH,GAAIW,GAA+B,QAAd/X,EAAIyV,OAAkB,CACzC0C,EAAQX,GACR,SACK,GAAY,KAARrD,GAAgBmE,EAOpB,IACLnE,GAAQ/D,GAAe,KAAR+D,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBpB,EAAU/S,GAC3B,CACA,GAAI+S,EAAU/S,IAAkB,IAAVoY,EAAc,OAAOvG,EAC3C,GAAIkG,GAA2B,IAAVK,IAAiB1C,GAAoB1V,IAAqB,OAAbA,EAAIwY,MAAgB,OAEtF,GADAN,EAAUxF,EAAU1S,EAAKoY,GACrBF,EAAS,OAAOA,EAGpB,GAFAE,EAAS,GACTD,EAAQV,GACJM,EAAe,OACnB,SAEY,KAAR5D,EAAamE,GAAc,EACd,KAARnE,IAAamE,GAAc,GACpCF,GAAUjE,MAtB4B,CACtC,GAAc,IAAViE,EAAc,OAAOvG,EAEzB,GADAqG,EAAUxF,EAAU1S,EAAKoY,GACrBF,EAAS,OAAOA,EAGpB,GAFAE,EAAS,GACTD,EAAQd,GACJU,GAAiBX,GAAU,OAiB/B,MAEJ,KAAKC,GACH,IAAIpF,EAAMrJ,KAAKuL,GAER,IACLA,GAAQ/D,GAAe,KAAR+D,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBpB,EAAU/S,IAC3B+X,EACA,CACA,GAAc,IAAVK,EAAc,CAChB,IAAII,EAAOzV,SAASqV,EAAQ,IAC5B,GAAII,EAAO,MAAQ,OAAO1G,EAC1B9R,EAAIwY,KAAQzF,EAAU/S,IAAQwY,IAAStD,EAAelV,EAAIyV,QAAW,KAAO+C,EAC5EJ,EAAS,GAEX,GAAIL,EAAe,OACnBI,EAAQV,GACR,SACK,OAAO3F,EAfZsG,GAAUjE,EAgBZ,MAEF,KAAKmD,GAEH,GADAtX,EAAIyV,OAAS,OACD,KAARtB,GAAuB,MAARA,EAAcgE,EAAQZ,OACpC,KAAIS,GAAuB,QAAfA,EAAKvC,OAyBf,CACL0C,EAAQT,GACR,SA1BA,GAAIvD,GAAQ/D,EACVpQ,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQT,EAAKS,WACZ,GAAY,KAARtE,EACTnU,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQ,GACZN,EAAQP,OACH,IAAY,KAARzD,EAMJ,CACA8B,GAA6BrD,EAAWlK,MAAMwL,GAAShP,KAAK,OAC/DlF,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrByN,GAAgBnW,IAElBmY,EAAQT,GACR,SAZA1X,EAAIc,KAAOkX,EAAKlX,KAChBd,EAAIuL,KAAOyM,EAAKzM,KAAK7C,QACrB1I,EAAIyY,MAAQT,EAAKS,MACjBzY,EAAI0Y,SAAW,GACfP,EAAQN,IAaV,MAEJ,KAAKN,GACH,GAAY,KAARpD,GAAuB,MAARA,EAAc,CAC/BgE,EAAQX,GACR,MAEEQ,GAAuB,QAAfA,EAAKvC,SAAqBQ,GAA6BrD,EAAWlK,MAAMwL,GAAShP,KAAK,OAC5F4Q,GAAqBkC,EAAKzM,KAAK,IAAI,GAAOvL,EAAIuL,KAAKvG,KAAKgT,EAAKzM,KAAK,IACjEvL,EAAIc,KAAOkX,EAAKlX,MAEvBqX,EAAQT,GACR,SAEF,KAAKF,GACH,GAAIrD,GAAQ/D,GAAe,KAAR+D,GAAuB,MAARA,GAAwB,KAARA,GAAuB,KAARA,EAAa,CAC5E,IAAK4D,GAAiBjC,GAAqBsC,GACzCD,EAAQT,QACH,GAAc,IAAVU,EAAc,CAEvB,GADApY,EAAIc,KAAO,GACPiX,EAAe,OACnBI,EAAQV,OACH,CAEL,GADAS,EAAUxF,EAAU1S,EAAKoY,GACrBF,EAAS,OAAOA,EAEpB,GADgB,aAAZlY,EAAIc,OAAqBd,EAAIc,KAAO,IACpCiX,EAAe,OACnBK,EAAS,GACTD,EAAQV,GACR,SACGW,GAAUjE,EACjB,MAEF,KAAKsD,GACH,GAAI1E,EAAU/S,IAEZ,GADAmY,EAAQT,GACI,KAARvD,GAAuB,MAARA,EAAc,cAC5B,GAAK4D,GAAyB,KAAR5D,EAGtB,GAAK4D,GAAyB,KAAR5D,GAGtB,GAAIA,GAAQ/D,IACjB+H,EAAQT,GACI,KAARvD,GAAa,cAJjBnU,EAAI0Y,SAAW,GACfP,EAAQN,QAJR7X,EAAIyY,MAAQ,GACZN,EAAQP,GAOR,MAEJ,KAAKF,GACH,GACEvD,GAAQ/D,GAAe,KAAR+D,GACN,MAARA,GAAgBpB,EAAU/S,KACzB+X,IAA0B,KAAR5D,GAAuB,KAARA,GACnC,CAkBA,GAjBIqC,GAAY4B,IACdjC,GAAgBnW,GACJ,KAARmU,GAAyB,MAARA,GAAgBpB,EAAU/S,IAC7CA,EAAIuL,KAAKvG,KAAK,KAEPqR,GAAY+B,GACT,KAARjE,GAAyB,MAARA,GAAgBpB,EAAU/S,IAC7CA,EAAIuL,KAAKvG,KAAK,KAGE,QAAdhF,EAAIyV,SAAqBzV,EAAIuL,KAAKtG,QAAU6Q,GAAqBsC,KAC/DpY,EAAIc,OAAMd,EAAIc,KAAO,IACzBsX,EAASA,EAAOvF,OAAO,GAAK,KAE9B7S,EAAIuL,KAAKvG,KAAKoT,IAEhBA,EAAS,GACS,QAAdpY,EAAIyV,SAAqBtB,GAAQ/D,GAAe,KAAR+D,GAAuB,KAARA,GACzD,MAAOnU,EAAIuL,KAAKtG,OAAS,GAAqB,KAAhBjF,EAAIuL,KAAK,GACrCvL,EAAIuL,KAAKuN,QAGD,KAAR3E,GACFnU,EAAIyY,MAAQ,GACZN,EAAQP,IACS,KAARzD,IACTnU,EAAI0Y,SAAW,GACfP,EAAQN,SAGVO,GAAUnF,EAAckB,EAAMW,GAC9B,MAEJ,KAAK6C,GACS,KAARxD,GACFnU,EAAIyY,MAAQ,GACZN,EAAQP,IACS,KAARzD,GACTnU,EAAI0Y,SAAW,GACfP,EAAQN,IACC1D,GAAQ/D,IACjBpQ,EAAIuL,KAAK,IAAM0H,EAAckB,EAAMjB,IACnC,MAEJ,KAAK0E,GACEG,GAAyB,KAAR5D,EAGXA,GAAQ/D,IACL,KAAR+D,GAAepB,EAAU/S,GAAMA,EAAIyY,OAAS,MAC1BzY,EAAIyY,OAAT,KAARtE,EAA0B,MACjBlB,EAAckB,EAAMjB,KALtClT,EAAI0Y,SAAW,GACfP,EAAQN,IAKR,MAEJ,KAAKA,GACC1D,GAAQ/D,IAAKpQ,EAAI0Y,UAAYzF,EAAckB,EAAMU,IACrD,MAGJX,MAMA6E,GAAiB,SAAa/Y,GAChC,IAIIgZ,EAAWd,EAJXe,EAAOvI,EAAWvJ,KAAM4R,GAAgB,OACxCf,EAAO5Q,UAAUnC,OAAS,EAAImC,UAAU,QAAKpG,EAC7CkY,EAAYxJ,EAAU1P,GACtBmY,EAAQ9G,EAAiB4H,EAAM,CAAEE,KAAM,QAE3C,QAAanY,IAATgX,EACF,GAAIA,aAAgBe,GAAgBC,EAAYzH,EAAoByG,QAGlE,GADAE,EAAUJ,GAASkB,EAAY,GAAItJ,EAAUsI,IACzCE,EAAS,MAAMkB,UAAUlB,GAIjC,GADAA,EAAUJ,GAASK,EAAOe,EAAW,KAAMF,GACvCd,EAAS,MAAMkB,UAAUlB,GAC7B,IAAIhY,EAAeiY,EAAMjY,aAAe,IAAIU,EACxCyY,EAAoBlI,EAA6BjR,GACrDmZ,EAAkBC,mBAAmBnB,EAAMM,OAC3CY,EAAkBE,UAAY,WAC5BpB,EAAMM,MAAQ9X,OAAOT,IAAiB,MAEnCoQ,IACH2I,EAAKxY,KAAO+Y,GAAa1U,KAAKmU,GAC9BA,EAAKQ,OAASC,GAAU5U,KAAKmU,GAC7BA,EAAKU,SAAWC,GAAY9U,KAAKmU,GACjCA,EAAKpY,SAAWgZ,GAAY/U,KAAKmU,GACjCA,EAAKtD,SAAWmE,GAAYhV,KAAKmU,GACjCA,EAAKnY,KAAOiZ,GAAQjV,KAAKmU,GACzBA,EAAKe,SAAWC,GAAYnV,KAAKmU,GACjCA,EAAKT,KAAO0B,GAAQpV,KAAKmU,GACzBA,EAAK9Y,SAAWga,GAAYrV,KAAKmU,GACjCA,EAAKmB,OAASC,GAAUvV,KAAKmU,GAC7BA,EAAK/Y,aAAeoa,GAAgBxV,KAAKmU,GACzCA,EAAKlY,KAAOwZ,GAAQzV,KAAKmU,KAIzBuB,GAAezB,GAAenU,UAE9B4U,GAAe,WACjB,IAAIxZ,EAAMuR,EAAoBpK,MAC1BsO,EAASzV,EAAIyV,OACb5U,EAAWb,EAAIa,SACf8U,EAAW3V,EAAI2V,SACf7U,EAAOd,EAAIc,KACX0X,EAAOxY,EAAIwY,KACXjN,EAAOvL,EAAIuL,KACXkN,EAAQzY,EAAIyY,MACZC,EAAW1Y,EAAI0Y,SACf1Q,EAASyN,EAAS,IAYtB,OAXa,OAAT3U,GACFkH,GAAU,KACN0N,GAAoB1V,KACtBgI,GAAUnH,GAAY8U,EAAW,IAAMA,EAAW,IAAM,KAE1D3N,GAAU0M,EAAc5T,GACX,OAAT0X,IAAexQ,GAAU,IAAMwQ,IAChB,QAAV/C,IAAkBzN,GAAU,MACvCA,GAAUhI,EAAI6V,iBAAmBtK,EAAK,GAAKA,EAAKtG,OAAS,IAAMsG,EAAKrG,KAAK,KAAO,GAClE,OAAVuT,IAAgBzQ,GAAU,IAAMyQ,GACnB,OAAbC,IAAmB1Q,GAAU,IAAM0Q,GAChC1Q,GAGL0R,GAAY,WACd,IAAI1Z,EAAMuR,EAAoBpK,MAC1BsO,EAASzV,EAAIyV,OACb+C,EAAOxY,EAAIwY,KACf,GAAc,QAAV/C,EAAkB,IACpB,OAAO,IAAIsD,GAAetD,EAAOlK,KAAK,IAAIkO,OAC1C,MAAOpV,GACP,MAAO,OAET,MAAc,QAAVoR,GAAqB1C,EAAU/S,GAC5ByV,EAAS,MAAQf,EAAc1U,EAAIc,OAAkB,OAAT0X,EAAgB,IAAMA,EAAO,IADhC,QAI9CoB,GAAc,WAChB,OAAOrI,EAAoBpK,MAAMsO,OAAS,KAGxCoE,GAAc,WAChB,OAAOtI,EAAoBpK,MAAMtG,UAG/BiZ,GAAc,WAChB,OAAOvI,EAAoBpK,MAAMwO,UAG/BoE,GAAU,WACZ,IAAI/Z,EAAMuR,EAAoBpK,MAC1BrG,EAAOd,EAAIc,KACX0X,EAAOxY,EAAIwY,KACf,OAAgB,OAAT1X,EAAgB,GACV,OAAT0X,EAAgB9D,EAAc5T,GAC9B4T,EAAc5T,GAAQ,IAAM0X,GAG9ByB,GAAc,WAChB,IAAInZ,EAAOyQ,EAAoBpK,MAAMrG,KACrC,OAAgB,OAATA,EAAgB,GAAK4T,EAAc5T,IAGxCoZ,GAAU,WACZ,IAAI1B,EAAOjH,EAAoBpK,MAAMqR,KACrC,OAAgB,OAATA,EAAgB,GAAK7X,OAAO6X,IAGjC2B,GAAc,WAChB,IAAIna,EAAMuR,EAAoBpK,MAC1BoE,EAAOvL,EAAIuL,KACf,OAAOvL,EAAI6V,iBAAmBtK,EAAK,GAAKA,EAAKtG,OAAS,IAAMsG,EAAKrG,KAAK,KAAO,IAG3EmV,GAAY,WACd,IAAI5B,EAAQlH,EAAoBpK,MAAMsR,MACtC,OAAOA,EAAQ,IAAMA,EAAQ,IAG3B6B,GAAkB,WACpB,OAAO/I,EAAoBpK,MAAMjH,cAG/Bqa,GAAU,WACZ,IAAI7B,EAAWnH,EAAoBpK,MAAMuR,SACzC,OAAOA,EAAW,IAAMA,EAAW,IAGjC+B,GAAqB,SAAUC,EAAQC,GACzC,MAAO,CAAEja,IAAKga,EAAQpJ,IAAKqJ,EAAQC,cAAc,EAAMC,YAAY,IAyHrE,GAtHIvK,GACFG,EAAiB+J,GAAc,CAG7B/Z,KAAMga,GAAmBjB,IAAc,SAAU/Y,GAC/C,IAAIT,EAAMuR,EAAoBpK,MAC1B+R,EAAYxJ,EAAUjP,GACtByX,EAAUJ,GAAS9X,EAAKkZ,GAC5B,GAAIhB,EAAS,MAAMkB,UAAUlB,GAC7B/G,EAA6BnR,EAAIE,cAAcoZ,mBAAmBtZ,EAAIyY,UAIxEgB,OAAQgB,GAAmBf,IAG3BC,SAAUc,GAAmBb,IAAa,SAAUD,GAClD,IAAI3Z,EAAMuR,EAAoBpK,MAC9B2Q,GAAS9X,EAAK0P,EAAUiK,GAAY,IAAKlD,OAI3C5V,SAAU4Z,GAAmBZ,IAAa,SAAUhZ,GAClD,IAAIb,EAAMuR,EAAoBpK,MAC1ByL,EAAahC,EAAUlB,EAAU7O,IACrC,IAAI+U,GAA+B5V,GAAnC,CACAA,EAAIa,SAAW,GACf,IAAK,IAAI6I,EAAI,EAAGA,EAAIkJ,EAAW3N,OAAQyE,IACrC1J,EAAIa,UAAYoS,EAAcL,EAAWlJ,GAAIqL,OAKjDY,SAAU8E,GAAmBX,IAAa,SAAUnE,GAClD,IAAI3V,EAAMuR,EAAoBpK,MAC1ByL,EAAahC,EAAUlB,EAAUiG,IACrC,IAAIC,GAA+B5V,GAAnC,CACAA,EAAI2V,SAAW,GACf,IAAK,IAAIjM,EAAI,EAAGA,EAAIkJ,EAAW3N,OAAQyE,IACrC1J,EAAI2V,UAAY1C,EAAcL,EAAWlJ,GAAIqL,OAKjDjU,KAAM2Z,GAAmBV,IAAS,SAAUjZ,GAC1C,IAAId,EAAMuR,EAAoBpK,MAC1BnH,EAAI6V,kBACRiC,GAAS9X,EAAK0P,EAAU5O,GAAOqW,OAIjC6C,SAAUS,GAAmBR,IAAa,SAAUD,GAClD,IAAIha,EAAMuR,EAAoBpK,MAC1BnH,EAAI6V,kBACRiC,GAAS9X,EAAK0P,EAAUsK,GAAW5C,OAIrCoB,KAAMiC,GAAmBP,IAAS,SAAU1B,GAC1C,IAAIxY,EAAMuR,EAAoBpK,MAC1ByO,GAA+B5V,KACnCwY,EAAO9I,EAAU8I,GACL,IAARA,EAAYxY,EAAIwY,KAAO,KACtBV,GAAS9X,EAAKwY,EAAMnB,QAI3BlX,SAAUsa,GAAmBN,IAAa,SAAUha,GAClD,IAAIH,EAAMuR,EAAoBpK,MAC1BnH,EAAI6V,mBACR7V,EAAIuL,KAAO,GACXuM,GAAS9X,EAAK0P,EAAUvP,GAAWsX,QAIrC2C,OAAQK,GAAmBJ,IAAW,SAAUD,GAC9C,IAAIpa,EAAMuR,EAAoBpK,MAC9BiT,EAAS1K,EAAU0K,GACL,IAAVA,EACFpa,EAAIyY,MAAQ,MAER,KAAO2B,EAAOvH,OAAO,KAAIuH,EAASA,EAAO1R,MAAM,IACnD1I,EAAIyY,MAAQ,GACZX,GAAS9X,EAAKoa,EAAQxC,KAExBzG,EAA6BnR,EAAIE,cAAcoZ,mBAAmBtZ,EAAIyY,UAIxEvY,aAAcua,GAAmBH,IAGjCvZ,KAAM0Z,GAAmBF,IAAS,SAAUxZ,GAC1C,IAAIf,EAAMuR,EAAoBpK,MAC9BpG,EAAO2O,EAAU3O,GACL,IAARA,GAIA,KAAOA,EAAK8R,OAAO,KAAI9R,EAAOA,EAAK2H,MAAM,IAC7C1I,EAAI0Y,SAAW,GACfZ,GAAS9X,EAAKe,EAAM8W,KALlB7X,EAAI0Y,SAAW,UAYvBjJ,EAAS+K,GAAc,UAAU,WAC/B,OAAOhB,GAAa1U,KAAKqC,QACxB,CAAE0T,YAAY,IAIjBpL,EAAS+K,GAAc,YAAY,WACjC,OAAOhB,GAAa1U,KAAKqC,QACxB,CAAE0T,YAAY,IAEb3J,EAAW,CACb,IAAI4J,GAAwB5J,EAAUxN,gBAClCqX,GAAwB7J,EAAU9M,gBAIlC0W,IAAuBrL,EAASsJ,GAAgB,mBAAmB,SAAyBiC,GAC9F,OAAOF,GAAsB5T,MAAMgK,EAAW9J,cAK5C2T,IAAuBtL,EAASsJ,GAAgB,mBAAmB,SAAyB/Y,GAC9F,OAAO+a,GAAsB7T,MAAMgK,EAAW9J,cAIlD2J,EAAegI,GAAgB,OAE/B1I,EAAE,CAAEG,QAAQ,EAAMyK,QAAS1K,EAAgB2K,MAAO5K,GAAe,CAC/DrQ,IAAK8Y,M,oGC7+BP,SAASoC,EAAOC,GACZ,OAAOA,GAAKA,EAET,MAAMC,EAKT,YAAYC,EAAG3U,GACXQ,KAAKmU,EAAIA,EACTnU,KAAKR,IAAMA,EACX,MAAM4U,EAAK,IAAIC,MAAMF,EAAI,GACzB,IAAK,IAAI5R,EAAI,EAAGA,EAAI4R,EAAI,IAAK5R,EACzB6R,EAAG7R,GAAK,EAEZvC,KAAKoU,GAAKA,EAOd,IAAI7R,EAAG0R,GACH,GAAU,IAANA,EACA,OACJ,MAAM,EAAEE,EAAC,GAAEC,GAAOpU,KAClBuC,GAAK,EACL,MAAOA,GAAK4R,EACRC,EAAG7R,IAAM0R,EACT1R,GAAKyR,EAAOzR,GAQpB,IAAIA,GACA,OAAOvC,KAAKsU,IAAI/R,EAAI,GAAKvC,KAAKsU,IAAI/R,GAOtC,IAAIA,GACA,GAAU,IAANA,EACA,OAAO,EACX,MAAM,GAAE6R,EAAE,IAAE5U,EAAG,EAAE2U,GAAMnU,KAGvB,QAFUnG,IAAN0I,IACAA,EAAI4R,GACJ5R,EAAI4R,EACJ,MAAM,IAAII,MAAM,iDACpB,IAAIC,EAAMjS,EAAI/C,EACd,MAAO+C,EAAI,EACPiS,GAAOJ,EAAG7R,GACVA,GAAKyR,EAAOzR,GAEhB,OAAOiS,EAOX,SAASC,GACL,IAAIN,EAAI,EACJO,EAAI1U,KAAKmU,EACb,MAAOO,EAAIP,EAAG,CACV,MAAMQ,EAAIlV,KAAK6K,OAAO6J,EAAIO,GAAK,GACzBE,EAAO5U,KAAKsU,IAAIK,GACtB,GAAIC,EAAOH,EACPC,EAAIC,MADR,CAIK,KAAIC,EAAOH,GASZ,OAAOE,EARP,GAAIR,IAAMQ,EACN,OAAI3U,KAAKsU,IAAIH,EAAI,IAAMM,EACZN,EAAI,EACRQ,EAEXR,EAAIQ,GAMZ,OAAOR,G,4BC/Ef,MAAMU,EAAS,eAAE,QAAS,CACtBC,UAAW,UACXC,OAAQ,OACRC,SAAU,OACVC,SAAU,OACX,CACC,eAAE,+BAAgC,CAC9BC,eAAgB,QACjB,CACC,eAAE,qFAAsF,CACpFC,MAAO,EACPJ,OAAQ,EACRK,QAAS,aAIN,sBAAgB,CAC3B5S,KAAM,cACN6S,cAAc,EACdC,MAAO,CACHC,cAAe,CACXvD,KAAMwD,QACNC,SAAS,GAEbC,MAAO,CACH1D,KAAMqC,MACNoB,QAAS,IAAM,IAGnB3Q,SAAU,CACNkN,KAAMla,OACN6d,UAAU,GAEdC,cAAeJ,QACfK,WAAY,CAACrc,OAAQgE,QACrBsY,gBAAiB,CACb9D,KAAM,CAACxY,OAAQgE,QACfiY,QAAS,OAEbM,kBAAmBvY,OACnBwY,iBAAkBR,QAClBS,SAAUC,SACVC,QAASD,SACTE,SAAUF,SACVG,iBAAkB,CAACve,OAAQ0B,QAC3B8c,mBAAoBxe,OACpBye,SAAU,CACNvE,KAAMxY,OACNic,QAAS,OAKbe,WAAY,CACRxE,KAAM,CAACla,OAAQ0B,QACfic,QAAS,GAEbgB,cAAe,CACXzE,KAAM,CAACla,OAAQ0B,QACfic,QAAS,IAGjB,MAAMH,GACF,MAAMoB,EAAa,iBACnB7B,EAAO8B,MAAM,CACTC,GAAI,qBACJC,MAAM,EACNC,IAAKJ,IAET,eAAU,KACN,MAAM,mBAAEJ,EAAkB,iBAAED,GAAqBf,OACtBzb,IAAvByc,GAA2D,OAAvBA,EACpCS,EAAS,CAAEvV,MAAO8U,SAEQzc,IAArBwc,GAAuD,OAArBA,GACvCU,EAAS,CAAE5d,IAAKkd,MAGxB,MAAMW,EAAiB,eAAS,KAC5B,MAAMxb,EAAM,IAAIyb,KACV,SAAEV,GAAajB,EAIrB,OAHAA,EAAMI,MAAMzc,QAAQ,CAACie,EAAM1V,KACvBhG,EAAI2O,IAAI+M,EAAKX,GAAW/U,KAErBhG,IAEL2b,EAAY,eAAI,MAChBC,EAAgB,oBAAIvd,GACpBwd,EAAoB,IAAIJ,IACxBK,EAAiB,eAAS,KAC5B,MAAM,MAAE5B,EAAK,SAAE5Q,EAAQ,SAAEyR,GAAajB,EAChClB,EAAK,IAAIF,EAAYwB,EAAM5X,OAAQgH,GAQzC,OAPA4Q,EAAMzc,QAAQ,CAACie,EAAM1V,KACjB,MAAMrI,EAAM+d,EAAKX,GACXgB,EAAeF,EAAkB9d,IAAIJ,QACtBU,IAAjB0d,GACAnD,EAAGoD,IAAIhW,EAAO+V,KAGfnD,IAELqD,EAA2B,eAAI,GAC/BC,EAAe,eAAI,GACnBC,EAAgB,eAAQ,IACnBlY,KAAKmY,IAAIN,EAAepe,MAAM2e,SAASH,EAAaxe,MAAQ,eAAKoc,EAAMkB,aAAe,EAAG,IAE9FsB,EAAmB,eAAS,KAC9B,MAAQ5e,MAAO6e,GAAeX,EAC9B,QAAmBvd,IAAfke,EACA,MAAO,GACX,MAAM,MAAErC,EAAK,SAAE5Q,GAAawQ,EACtB0C,EAAaL,EAAcze,MAC3B+e,EAAWxY,KAAKD,IAAIwY,EAAavY,KAAKyY,KAAKH,EAAajT,EAAW,GAAI4Q,EAAM5X,OAAS,GACtFqa,EAAgB,GACtB,IAAK,IAAI5V,EAAIyV,EAAYzV,GAAK0V,IAAY1V,EACtC4V,EAActa,KAAK6X,EAAMnT,IAE7B,OAAO4V,IAELpB,EAAYqB,IACd,MAAM,KAAEC,EAAI,IAAEC,EAAG,MAAE9W,EAAK,IAAErI,EAAG,SAAEof,EAAQ,SAAEC,EAAQ,SAAEC,GAAW,GAASL,EACvE,QAAave,IAATwe,QAA8Bxe,IAARye,EACtBI,EAAiBL,EAAMC,EAAKE,QAE3B,QAAc3e,IAAV2H,EACLmX,EAAcnX,EAAOgX,EAAUC,QAE9B,QAAY5e,IAARV,EAAmB,CACxB,MAAMyf,EAAU5B,EAAe9d,MAAMK,IAAIJ,QACzBU,IAAZ+e,GACAD,EAAcC,EAASJ,EAAUC,OAEnB,WAAbF,EACLG,EAAiB,EAAG5gB,OAAO+gB,iBAAkBL,GAE3B,QAAbD,GACLG,EAAiB,EAAG,EAAGF,IAG/B,SAASG,EAAcnX,EAAOgX,EAAUC,GACpC,MAAQvf,MAAOkb,GAAOkD,EAChBwB,EAAY1E,EAAGE,IAAI9S,GAAS,eAAK8T,EAAMkB,YAC7C,GAAKiC,EAOA,CACD,MAAM,UAAEM,EAAS,aAAEC,GAAiB7B,EAAUje,MAC9C,GAAI4f,EAAYC,EAAW,CACvB,MAAMjU,EAAWsP,EAAG7a,IAAIiI,GACpBsX,EAAYhU,GAAYiU,EAAYC,GAIpC7B,EAAUje,MAAM6d,SAAS,CACrBsB,KAAM,EACNC,IAAKQ,EAAYhU,EAAWkU,EAC5BR,kBAKRrB,EAAUje,MAAM6d,SAAS,CACrBsB,KAAM,EACNC,IAAKQ,EACLN,kBAzBRrB,EAAUje,MAAM6d,SAAS,CACrBsB,KAAM,EACNC,IAAKQ,EACLN,aA0BRS,EAAwBzX,EAE5B,SAASkX,EAAiBL,EAAMC,EAAKE,GACjCrB,EAAUje,MAAM6d,SAAS,CACrBsB,OACAC,MACAE,aAGR,SAASU,EAAiB/f,EAAKggB,GAC3B,IAAIC,EACJ,GAAI9D,EAAMU,iBACN,OACJ,MAAQ9c,MAAOkb,GAAOkD,EAChB9V,EAAQwV,EAAe9d,MAAMK,IAAIJ,GACjC4b,EAASoE,EAAME,OAAOL,aAGtBM,EAASvE,EAASO,EAAMxQ,SACf,IAAXwU,EACAjC,EAAkBkC,OAAOpgB,GAGzBke,EAAkBlN,IAAIhR,EAAK4b,EAASO,EAAMxQ,UAG9C,MAAM0U,EAAQzE,EAASX,EAAG7a,IAAIiI,GAChB,IAAVgY,SAEoB3f,IAApB4f,GAAiCjY,GAASiY,IACf,QAA1BL,EAAKjC,EAAUje,aAA0B,IAAPkgB,GAAyBA,EAAGM,SAAS,EAAGF,IAE/EpF,EAAGoD,IAAIhW,EAAOgY,GACd/B,EAAyBve,SAE7B,SAASygB,EAAiBtX,GACtB,eAAoBuX,GACpB,MAAM,SAAE3D,GAAaX,OACJzb,IAAboc,GACAA,EAAS5T,GAEjB,SAASwX,EAAiBV,GACtB/B,EAAcle,MAAQigB,EAAMW,YAAY/E,OACxC,MAAM,SAAEqB,GAAad,OACJzb,IAAbuc,GACAA,EAAS+C,GAEjB,IAAIF,EACAQ,EACJ,SAASG,IACL,MAAQ1gB,MAAO6gB,GAAW5C,EAGZ,MAAV4C,IAEJN,EAA4C,OAA1BR,QAA4D,IAA1BA,EAAmCA,EAAwBtB,EAAcze,MAC7H+f,OAAwBpf,EACxB6d,EAAaxe,MAAQie,EAAUje,MAAM6f,WAEzC,MAAO,CACHhB,WAAYX,EACZ4C,UAAW,CACPhF,SAAU,QAEdiF,WAAYjD,EACZnB,WAAY,eAAS,KACjB,MAAM,cAAED,GAAkBN,EACpBP,EAAS,eAAKuC,EAAepe,MAAMob,OAGzC,OADAmD,EAAyBve,MAClB,CACHoc,EAAMO,WACN,CACIqE,UAAW,cACXnF,OAAQa,EAAgB,GAAKb,EAC7BoF,UAAWvE,EAAgBb,EAAS,GACpCyB,WAAY,eAAKlB,EAAMkB,YACvBC,cAAe,eAAKnB,EAAMmB,mBAItC2D,kBAAmB,eAAS,KAExB3C,EAAyBve,MAClB,CACHmhB,UAAW,kBAAkB,eAAK/C,EAAepe,MAAMob,IAAIqD,EAAcze,iBAGjFif,cAAeL,EACfX,YACAmD,WAAY,eAAI,MAChBvD,WACA8C,mBACAF,mBACAT,qBAGR,SACI,MAAM,cAAEtD,EAAa,SAAEW,EAAQ,WAAE0D,EAAU,gBAAEnE,GAAoB9V,KACjE,OAAO,eAAEua,EAAA,KAAiB,CACtBnE,SAAUpW,KAAK6Z,kBAChB,CACCpE,QAAS,KACL,IAAI2D,EAAIoB,EACR,OAAO,eAAE,MAAO,eAAWxa,KAAKya,OAAQ,CACpC5X,MAAO,CACH,OACA7C,KAAKuV,eAAiB,wBAE1BU,SAAUjW,KAAK2Z,iBACfxD,QAASnW,KAAKmW,QACd9S,IAAK,cACL,CACsB,IAAtBrD,KAAK0V,MAAM5X,OACL,eAAE,MAAO,CACPuF,IAAK,aACLR,MAAO,aACPnL,MAAOsI,KAAK6V,YACb,CACC,eAAEC,EAAiBtY,OAAOkH,OAAO,CAC7B7B,MAAO,qBACPnL,MAAOsI,KAAKoa,mBACbpa,KAAK+V,mBAAoB,CACxBN,QAAS,IAAMzV,KAAKmY,cAAc3c,IAAI0b,IAClC,MAAM/d,EAAM+d,EAAKX,GACX/U,EAAQyY,EAAW1gB,IAAIJ,GACvBuhB,EAAY1a,KAAK2a,OAAOlF,QAAQ,CAAEyB,OAAM1V,UAAS,GACvD,OAAIoU,EACO,eAAE2E,EAAA,KAAiB,CACtBphB,MACAid,SAAW+C,GAAUnZ,KAAKkZ,iBAAiB/f,EAAKggB,IACjD,CACC1D,QAAS,IAAMiF,KAGvBA,EAAUvhB,IAAMA,EACTuhB,SAImB,QAAnCF,GAAMpB,EAAKpZ,KAAK2a,QAAQC,aAA0B,IAAPJ,OAAgB,EAASA,EAAG7c,KAAKyb,Y,oDC/TxF,iBAAgB,CAC3B9D,MAAO,CACHuF,QAAS3E,SACT4E,OAAQ5E,UAEZ,MAAMZ,GACF,MAAO,IAAO,cAAD,CAAG,MAAO,CAAE5d,MAAO,sBAAuBqjB,SAAU,EAAGF,QAASvF,EAAMuF,QAASC,OAAQxF,EAAMwF,YCNnG,U,oCCDf,W,0ECAe,kBAkBb,IAAM7gB,EAAO,SAAA+gB,GACX,IAAM/gB,EAAO,IAAIghB,KAAKD,GAASE,qBAAqBxf,MAAM,KAAKqC,KAAK,KAC9Dod,EAAO,IAAIF,KAAKD,GAASI,qBAGzBC,EAAW,GAAH,OAAMphB,EAAN,YAAckhB,GAE5B,OAAOE,GAGT,MAAO,CACLphB,U,oCC5BJ,IAAIiP,EAAI,EAAQ,QACZoS,EAAQ,EAAQ,QAA4BC,KAC5CC,EAAyB,EAAQ,QAIrCtS,EAAE,CAAEmQ,OAAQ,SAAUoC,OAAO,EAAM3H,OAAQ0H,EAAuB,SAAW,CAC3ED,KAAM,WACJ,OAAOD,EAAMtb,U,oCCTjB,gBACe,sBAAgB,CAC3BwC,KAAM,eACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BAC5D,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAKjZ,KAAM,OAAQ,YAAa,WACrE,eAAE,IAAK,CAAEA,KAAM,eAAgB,YAAa,WACxC,eAAE,OAAQ,CAAEE,EAAG,klB,mBCNnCjK,EAAOC,QAAU,iD,uBCDjB,IAAIkG,EAAyB,EAAQ,QACjCI,EAAW,EAAQ,QACnB0c,EAAc,EAAQ,QAEtBC,EAAa,IAAMD,EAAc,IACjCE,EAAQza,OAAO,IAAMwa,EAAaA,EAAa,KAC/CE,EAAQ1a,OAAOwa,EAAaA,EAAa,MAGzCG,EAAe,SAAUC,GAC3B,OAAO,SAAUC,GACf,IAAI1b,EAAStB,EAASJ,EAAuBod,IAG7C,OAFW,EAAPD,IAAUzb,EAASA,EAAOgR,QAAQsK,EAAO,KAClC,EAAPG,IAAUzb,EAASA,EAAOgR,QAAQuK,EAAO,KACtCvb,IAIX7H,EAAOC,QAAU,CAGfujB,MAAOH,EAAa,GAGpBI,IAAKJ,EAAa,GAGlBT,KAAMS,EAAa,K,6DCzBrB,IAAIK,EAAS,WACTxL,EAAO,GACPyL,EAAO,EACPC,EAAO,GACPC,EAAO,GACPC,EAAO,IACPC,EAAc,GACdC,EAAW,IACXC,EAAY,IACZC,EAAgB,eAChBC,EAAkB,yBAClBC,EAAiB,kDACjBC,EAAgBnM,EAAOyL,EACvBhS,EAAQ7K,KAAK6K,MACb2S,EAAqBzjB,OAAO0jB,aAS5BC,EAAa,SAAU3c,GACzB,IAAIK,EAAS,GACTuc,EAAU,EACVtf,EAAS0C,EAAO1C,OACpB,MAAOsf,EAAUtf,EAAQ,CACvB,IAAI5E,EAAQsH,EAAO6c,WAAWD,KAC9B,GAAIlkB,GAAS,OAAUA,GAAS,OAAUkkB,EAAUtf,EAAQ,CAE1D,IAAIwf,EAAQ9c,EAAO6c,WAAWD,KACN,QAAX,MAARE,GACHzc,EAAOhD,OAAe,KAAR3E,IAAkB,KAAe,KAARokB,GAAiB,QAIxDzc,EAAOhD,KAAK3E,GACZkkB,UAGFvc,EAAOhD,KAAK3E,GAGhB,OAAO2H,GAML0c,EAAe,SAAUC,GAG3B,OAAOA,EAAQ,GAAK,IAAMA,EAAQ,KAOhCC,EAAQ,SAAUjE,EAAOkE,EAAWC,GACtC,IAAIC,EAAI,EAGR,IAFApE,EAAQmE,EAAYrT,EAAMkP,EAAQiD,GAAQjD,GAAS,EACnDA,GAASlP,EAAMkP,EAAQkE,GAChBlE,EAAQwD,EAAgBT,GAAQ,EAAGqB,GAAK/M,EAC7C2I,EAAQlP,EAAMkP,EAAQwD,GAExB,OAAO1S,EAAMsT,GAAKZ,EAAgB,GAAKxD,GAASA,EAAQgD,KAQtDqB,EAAS,SAAUrS,GACrB,IAAI3K,EAAS,GAGb2K,EAAQ2R,EAAW3R,GAGnB,IAMIjJ,EAAGub,EANHC,EAAcvS,EAAM1N,OAGpBmW,EAAI0I,EACJnD,EAAQ,EACRwE,EAAOtB,EAIX,IAAKna,EAAI,EAAGA,EAAIiJ,EAAM1N,OAAQyE,IAC5Bub,EAAetS,EAAMjJ,GACjBub,EAAe,KACjBjd,EAAOhD,KAAKof,EAAmBa,IAInC,IAAIG,EAAcpd,EAAO/C,OACrBogB,EAAiBD,EAGjBA,GACFpd,EAAOhD,KAAK+e,GAId,MAAOsB,EAAiBH,EAAa,CAEnC,IAAIpJ,EAAI0H,EACR,IAAK9Z,EAAI,EAAGA,EAAIiJ,EAAM1N,OAAQyE,IAC5Bub,EAAetS,EAAMjJ,GACjBub,GAAgB7J,GAAK6J,EAAenJ,IACtCA,EAAImJ,GAKR,IAAIK,EAAwBD,EAAiB,EAC7C,GAAIvJ,EAAIV,EAAI3J,GAAO+R,EAAS7C,GAAS2E,GACnC,MAAMC,WAAWrB,GAMnB,IAHAvD,IAAU7E,EAAIV,GAAKkK,EACnBlK,EAAIU,EAECpS,EAAI,EAAGA,EAAIiJ,EAAM1N,OAAQyE,IAAK,CAEjC,GADAub,EAAetS,EAAMjJ,GACjBub,EAAe7J,KAAOuF,EAAQ6C,EAChC,MAAM+B,WAAWrB,GAEnB,GAAIe,GAAgB7J,EAAG,CAGrB,IADA,IAAI9R,EAAIqX,EACCoE,EAAI/M,GAA0B+M,GAAK/M,EAAM,CAChD,IAAIwN,EAAIT,GAAKI,EAAO1B,EAAQsB,GAAKI,EAAOzB,EAAOA,EAAOqB,EAAII,EAC1D,GAAI7b,EAAIkc,EAAG,MACX,IAAIC,EAAUnc,EAAIkc,EACdE,EAAa1N,EAAOwN,EACxBxd,EAAOhD,KAAKof,EAAmBM,EAAac,EAAIC,EAAUC,KAC1Dpc,EAAImI,EAAMgU,EAAUC,GAGtB1d,EAAOhD,KAAKof,EAAmBM,EAAapb,KAC5C6b,EAAOP,EAAMjE,EAAO2E,EAAuBD,GAAkBD,GAC7DzE,EAAQ,IACN0E,KAIJ1E,IACAvF,EAEJ,OAAOpT,EAAO9C,KAAK,KAGrBpF,EAAOC,QAAU,SAAU4S,GACzB,IAEIjJ,EAAGic,EAFHC,EAAU,GACVC,EAASlT,EAAM4D,cAAcoC,QAAQsL,EAAiB,KAAUphB,MAAM,KAE1E,IAAK6G,EAAI,EAAGA,EAAImc,EAAO5gB,OAAQyE,IAC7Bic,EAAQE,EAAOnc,GACfkc,EAAQ5gB,KAAKgf,EAAcpb,KAAK+c,GAAS,OAASX,EAAOW,GAASA,GAEpE,OAAOC,EAAQ1gB,KAAK,O,4ECtKP,GACXgX,OAAQ,mCACR4J,aAAc,QACdC,cAAe,QACfC,aAAc,QACdC,YAAa,QACbC,mBAAoB,SACpBC,oBAAqB,SACrBC,mBAAoB,SACpBC,kBAAmB,SACnBC,YAAa,Q,YCLV,MAAM,EAAQ1Z,IACjB,MAAM,aAAEQ,EAAY,aAAEmZ,EAAY,WAAEC,EAAU,aAAEC,EAAY,WAAE5Z,EAAU,oBAAEG,EAAmB,kBAAEE,EAAiB,aAAEJ,EAAY,gBAAE4Z,EAAe,WAAEC,EAAU,cAAEC,EAAa,eAAEC,EAAc,cAAEC,EAAa,aAAEC,EAAY,YAAEC,EAAW,aAAEC,EAAY,YAAEC,EAAW,WAAEC,GAAeva,EAChR,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAEub,oBAAqBR,EAAeS,qBAAsBR,EAAgBS,oBAAqBR,EAAeS,mBAAoBR,EAAcS,kBAAmBR,EAAaS,mBAAoBR,EAAcS,kBAAmBR,EAAaS,iBAAkBR,EAAY/Z,aAAcA,EAAcwa,MAAOrB,EAAcsB,qBAAsBrB,EAAYsB,mBAAoBrB,EAAcsB,gBAAiBlb,EAAYmb,uBAAwBhb,EAAqBib,wBAAyB/a,EAAmBgb,sBAAuBpb,EAAcqb,sBAAuBzB,EAAiB0B,iBAAkBtb,EAAcub,mBAAoB1B,EAAY2B,gBAAiBzb,EAAY0b,aAAczb,KAE5uB0b,EAA0B,eAAY,CACxC7e,KAAM,qBACNyF,OAAQ,OACRC,MAAO,CACHoZ,UAAW,OACXC,MAAO,QAEXlZ,KAAI,IAEO,U,iICjBRxF,MAAM,oB,iBAaiC,O,EAElC,eAAoB,YAAd,WAAO,G,2LAfvB,eAoBM,MApBN,EAoBM,CAnBJ,eAkBU,GAlBD2e,QAAQ,UAAQ,C,WACvB,iBAgBW,CAhBX,eAgBW,GAfTrpB,OAAO,MACPspB,MAAM,yBACNC,YAAY,I,CAEDC,OAAM,GACf,iBAQW,CARX,eAQW,GAPTC,MAAA,GACA5P,KAAK,UACJ,QAAO,EAAA6P,a,YAER,iBAAkC,CAAlC,eAAkC,GAA5B1e,KAAK,uB,EAEX,M,iFAWG,GACb2e,WAAY,CACVC,QAAA,OACAC,OAAA,OACAC,QAAA,QAEFxe,MANa,WAOX,MAAO,CACLoe,YAAa,kBAAMK,OAAOzd,SAAS0d,a,iCC5BzC,MAAMvd,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAE1E,U,gHCTA,GACXud,eAAgB,OAChBC,gBAAiB,OACjBC,eAAgB,OAEhBC,QAAS,QACTC,YAAa,YACbC,eAAgB,a,wBCJpB,MAAM,EAAQhd,IACV,MAAM,WAAEC,EAAU,kBAAEE,EAAiB,oBAAEC,EAAmB,aAAEF,EAAY,UAAE+c,EAAS,aAAEC,EAAY,aAAEC,EAAY,WAAEC,EAAU,UAAEC,EAAS,YAAE9c,EAAW,gBAAEuZ,EAAe,SAAEwD,EAAQ,WAAEC,EAAU,gBAAEC,EAAe,kBAAEC,EAAmBC,kBAAmBld,EAAY,aAAEmd,EAAY,cAAE3D,EAAa,eAAEC,EAAc,WAAE2D,EAAU,YAAExD,EAAW,aAAEC,GAAiBra,EACxV,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAEmb,YAAawD,EAAYvD,aAAcD,EAAaE,YAAaD,EAAc7Z,eACtIsZ,kBAAiBE,cAAe2D,EAAc1D,eAAgBD,EAAeE,cAAeD,EAE5F4D,mBAAoB5d,EAAY6d,wBAAyB3d,EAAmB4d,0BAA2B3d,EAAqB4d,iBAAkBX,EAAWY,eAAgB,QAASC,oBAAqB,QAASC,sBAAuB,QAASC,aAAcle,EAAcme,kBAAmBle,EAAmBme,oBAAqBle,EAEvUme,OAAQ,aAAahe,EAAeie,UAAWve,EAAY+a,MAAOsC,EAAUC,WAAYA,EAAYC,gBAAiBA,EAAiBC,kBAAmBA,EAAmBgB,cAAe,aAAa,eAAYve,EAAc,CAAEwe,MAAO,KAAUC,iBAAkBze,EAAc0e,aAAc,eAAY1e,EAAc,CAAEwe,MAAO,KAAQG,kBAAmB,eAAY3e,EAAc,CAAEwe,MAAO,MAASI,uBAAwB,eAAY5e,EAAc,CAAEwe,MAAO,KAAQK,yBAA0B,eAAY7e,EAAc,CAAEwe,MAAO,KAAQM,WAAY,aAAa,eAAY/B,EAAW,CAAEyB,MAAO,KAAUO,cAAehC,EAAWiC,UAAW,eAAYjC,EAAW,CAAEyB,MAAO,KAAQS,eAAgB,eAAYlC,EAAW,CAAEyB,MAAO,MAASU,oBAAqB,eAAYnC,EAAW,CAAEyB,MAAO,KAAQW,sBAAuB,eAAYpC,EAAW,CAAEyB,MAAO,KAAQY,cAAe,aAAa,eAAYpC,EAAc,CAAEwB,MAAO,KAAUa,iBAAkBrC,EAAcsC,aAAc,eAAYtC,EAAc,CAAEwB,MAAO,KAAQe,kBAAmB,eAAYvC,EAAc,CAAEwB,MAAO,MAASgB,uBAAwB,eAAYxC,EAAc,CAAEwB,MAAO,KAAQiB,yBAA0B,eAAYzC,EAAc,CAAEwB,MAAO,KAAQkB,cAAe,aAAa,eAAYzC,EAAc,CAAEuB,MAAO,MAAWmB,iBAAkB1C,EAAc2C,aAAc,eAAY3C,EAAc,CAAEuB,MAAO,MAASqB,kBAAmB,eAAY5C,EAAc,CAAEuB,MAAO,MAASsB,uBAAwB,eAAY7C,EAAc,CAAEuB,MAAO,KAAQuB,yBAA0B,eAAY9C,EAAc,CAAEuB,MAAO,KAAQwB,YAAa,aAAa,eAAY9C,EAAY,CAAEsB,MAAO,MAAWyB,eAAgB/C,EAAYgD,WAAY,eAAYhD,EAAY,CAAEsB,MAAO,MAAS2B,gBAAiB,eAAYjD,EAAY,CAAEsB,MAAO,MAAS4B,qBAAsB,eAAYlD,EAAY,CAAEsB,MAAO,KAAQ6B,uBAAwB,eAAYnD,EAAY,CAAEsB,MAAO,QAE33D8B,EAAW,CACbzjB,KAAM,MACNyF,OAAQ,OACRI,KAAI,GAEO,QCjBA,GACXoY,MAAOjjB,OACPwU,KAAM,CACFA,KAAMxY,OACNic,QAAS,WAEbyQ,MAAO1Q,QACP2Q,KAAM,CACFnU,KAAMxY,OACNic,QAAS,UAEb2Q,SAAU5Q,QACV6Q,SAAU,CACNrU,KAAMwD,QACNC,aAAS5b,I,YCYF,iBAAG,MAAO,wiBAqBtB,CAAC,eAAG,SAAU,oMAUZ,eAAG,QAAS,gIAKZ,eAAG,QAAS,uFAGZ,eAAG,WAAY,CAClBysB,OAAQ,yBACRC,QAAS,4BACP,eAAG,YAAa,+HAKhB,CAAC,eAAM,WAAY,CAAC,eAAE,UAAW,CACnCC,gBAAiB,gCAChB,CAAC,eAAM,UAAW,CACnB/F,MAAO,wCACH,eAAE,WAAY,CAClB+F,gBAAiB,kCAChB,CAAC,eAAM,UAAW,CACnB/F,MAAO,4CACD,eAAG,UAAW,CACpBA,MAAO,4BACP+F,gBAAiB,wBAChB,CAAC,eAAM,WAAY,CAAC,eAAE,UAAW,CAClCA,gBAAiB,+BACf,eAAE,WAAY,CAChBA,gBAAiB,yC,YC/EnB,MAAMC,EAAWjpB,OAAOkH,OAAOlH,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,GAAc,CAAEoR,SAAU,CAClG1U,KAAMwD,QACNC,aAAS5b,GACV8sB,QAASnR,QAASoR,UAAWpR,QAASqR,QAAS,CAACxS,MAAO6B,UAAW4Q,aAAc5Q,SAAU6Q,aAAc7Q,SAAU,mBAAoBA,SAAU8Q,gBAAiB9Q,SAEpK+Q,6BAA8BzR,QAE9B0R,gBAAiB,CACblV,KAAMkE,SACNiR,UAAW,KAIA,EAEX1R,aAAS5b,KAEF,sBAAgB,CAC3B2I,KAAM,MACN8S,MAAOmR,EACP,MAAMnR,GACF,MAAM8R,EAAa,eAAI,OACjB,kBAAEC,EAAiB,mBAAEC,EAAkB,gBAAEC,GAAoB,eAAUjS,GACvEkS,EAAW,eAAS,MAAO,MAAO,EAAO,EAAUlS,EAAOgS,GAChE,SAASG,EAAYplB,GACjB,IAAKiT,EAAM+Q,UACH/Q,EAAMsR,UAAW,CACjB,MAAM,QAAED,EAAO,gBAAEO,EAAe,gBAAEF,EAAiB,mBAAoBU,GAAqBpS,EACxF0R,GACAA,GAAiBL,GACjBe,GACAA,GAAkBf,GAElBO,GACAA,GAAiBP,IAIjC,SAASgB,EAAiBtlB,GAItB,GAHIiT,EAAM2R,8BACN5kB,EAAEulB,mBAEDtS,EAAM+Q,SAAU,CACjB,MAAM,QAAEQ,GAAYvR,EAChBuR,GACA,OAAAlpB,EAAA,MAAKkpB,EAASxkB,IAG1B,MAAMwlB,EAAmB,CACrB,eAAeC,GACX,MAAM,MAAE5uB,GAAUkuB,EACdluB,IACAA,EAAM4uB,YAAcA,KAG1BC,EAAgB,eAAO,MAA2B,OAApBR,QAAgD,IAApBA,OAA6B,EAASA,EAAgBS,aAAcV,GACpI,OAAO9pB,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAImjB,GAAmB,CAAEI,WAAYF,EAAeG,gBAAiBZ,EAAoBF,aAAYe,eAAgBd,EAAmBI,cACvKE,mBAAkBS,QAAS,eAAS,KAChC,MAAM,KAAEpW,EAAI,KAAEmU,EAAM1F,OAAO,MAAEA,EAAK,UAAEwD,GAAc,IAAO3O,GACjDrN,QAAQ,qBAAEogB,GAAwBhgB,MAAM,QAAEka,EAAO,YAAEC,EAAW,eAAEC,EAAc,aAAExc,EAAY,gBAAEsZ,EAAe,mBAAE+D,EAAkB,wBAAEC,EAAuB,0BAAEC,EAAyB,iBAAEC,EAAgB,eAAEC,EAAc,oBAAEC,EAAmB,sBAAEC,EAAqB,aAAEC,EAAY,kBAAEC,EAAiB,oBAAEC,EAAqB,CAAC,eAAU,YAAaoC,IAAQmC,EAAW,CAAC,eAAU,WAAYnC,IAAQjgB,EAAU,CAAC,eAAU,SAAUigB,IAAQpR,EAAQ,CAAC,eAAU,QAAS/C,IAAQuW,EAAY,CAAC,eAAU,YAAavW,IAAQwW,EAAe,CAAC,eAAU,SAAUxW,IAAQgS,EAAQ,CAAC,eAAU,aAAchS,IAAQgR,EAAY,CAAC,eAAU,kBAAmBhR,IAAQiR,EAAiB,CAAC,eAAU,oBAAqBjR,IAAQkR,IAAwBsE,EAAStuB,MACruB,MAAO,CACH,WAAYmvB,EACZ,kBAAmBpiB,EACnB,WAAY+d,EACZ,gBAAiBhB,EACjB,sBAAuBC,EACvB,wBAAyBC,EACzB,iBAAkBV,EAClB,qBAAsBC,EACtB,eAAgB6F,EAChB,UAAW7H,GAAS8H,EACpB,oBAAqB7E,EACrB,kBAAmBG,EACnB,wBAAyBC,EACzB,0BAA2BC,EAC3B,0BAA2BJ,EAC3B,4BAA6BC,EAC7B,cAAe1d,EACf,WAAY6O,EACZ,qBAAsBwK,EACtB,YAAagD,EACb,eAAgB0B,GAAauE,EAC7B,yBAA0BlF,EAC1B,uBAAwBG,EACxB,+BAAgCF,EAChC,iCAAkCC,QAIlD,SACI,MAAM,gBAAE0E,EAAe,WAAED,EAAYxH,OAAO,YAAEza,GAAgB,IAAOhG,KACrE,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAO,CACfqlB,EAAH,OACA,CACI,CAAIA,EAAH,aAAgCD,EACjC,CAAIC,EAAH,kBAAqCloB,KAAKqmB,SAC3C,CAAI6B,EAAH,mBAAsCloB,KAAK4mB,UAC5C,CAAIsB,EAAH,iBAAoCloB,KAAK4mB,WAAa5mB,KAAK2mB,QAC5D,CAAIuB,EAAH,eAAkCloB,KAAKkmB,QAE7CxuB,MAAOsI,KAAKooB,QAASK,QAASzoB,KAAKynB,YAAaX,aAAc9mB,KAAK8mB,aAAcC,aAAc/mB,KAAK+mB,cACvG,eAAE,OAAQ,CAAElkB,MAAUqlB,EAAH,gBAAmC7kB,IAAK,cAAgBrD,KAAK2a,SAC/E3a,KAAK4mB,WAAa5mB,KAAKomB,SAAY,cAAD,CAAG,OAAY,CAAEsC,UAAWR,EAAiBrlB,MAAUqlB,EAAH,cAAiC7B,SAAUrmB,KAAKqmB,SAAUoC,QAASzoB,KAAK2nB,mBAAuB,MACrL3nB,KAAK4mB,WAAa5mB,KAAKmoB,eAAkB,cAAD,CAAG,MAAO,CAAEtlB,MAAUqlB,EAAH,eAAkCxwB,MAAO,CAAEsO,iBAAoB,U,qBC/GvI,IAAI2iB,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QAG7BjwB,EAAOC,QAAU,SAAUsjB,EAAO2M,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEJ,GAE0C,mBAAlCG,EAAYF,EAAMI,cAC1BF,IAAcD,GACdH,EAASK,EAAqBD,EAAUtrB,YACxCurB,IAAuBF,EAAQrrB,WAC/BmrB,EAAe1M,EAAO8M,GACjB9M,I,6ECbL,eAEM,OAFDrZ,MAAM,0DAAwD,CACjE,eAAiC,OAA5BA,MAAM,oB,mDAFf,eAIM,OAJD+T,GAAG,gBAAiBlf,MAAK,SAAa,EAAAwxB,W,CACzC,G,GAMW,OACb5T,MAAO,CACL4T,SAAU1vB,S,qBCLd,MAAMoL,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAASC,KAErD,U,gQCHf,MAAMskB,EAAa,WACbzxB,EAAQ,eAAE,aAAc,CAC1B0d,QAAS,mBAEE,qBAAgB,CAC3B5S,KAAM,WACN8S,MAAO,CACH8T,WAAYlT,SACZmT,QAASnT,SACToT,cAAepT,SACfqT,iBAAkBrT,UAEtB,MAAMZ,GAAO,MAAEkU,IACX,MAAMC,EAAU,eAAI,MACdC,EAAa,eAAI,MACvB,SAASC,IACL,MAAQzwB,MAAOmP,GAASohB,GAClB,WAAEL,EAAU,QAAEC,GAAY/T,EAChC,IAAI8H,EAMJ,GAJIA,OADevjB,IAAfuvB,EACUA,IAEAM,EAAWxwB,OAEpBmP,IAAS+U,EACV,OACAA,EAAQwM,aAAaT,IACrB/L,EAAQyM,gBAAgBV,GAE5B,MAAM,SAAEW,GAAazhB,EACf0hB,EAAiB1hB,EAAK2hB,YACtBC,EAAc,GACdC,EAAOV,EAAMU,KAAmB,OAAZb,QAAgC,IAAZA,OAAqB,EAASA,IAAY,KACxF,IAAIc,EAAgBD,EAAOA,EAAKF,YAAc,EAC1ChV,GAAW,EACf,MAAMoV,EAAM/hB,EAAKyhB,SAAShsB,QAAU0rB,EAAMU,KAAO,EAAI,GACrD,IAAK,IAAI3nB,EAAI,EAAGA,EAAI6nB,EAAM,IAAK7nB,EAAG,CAC9B,GAAIA,EAAI,EACJ,SACJ,MAAM8nB,EAAQP,EAASvnB,GACvB,GAAIyS,EAAU,CACLqV,EAAMT,aAAaT,IACpBkB,EAAMC,aAAanB,EAAY,IAEnC,SAEKkB,EAAMT,aAAaT,IACxBkB,EAAMR,gBAAgBV,GAE1B,MAAMoB,EAAaF,EAAML,YAGzB,GAFAG,GAAiBI,EACjBN,EAAY1nB,GAAKgoB,EACbJ,EAAgBJ,EAAgB,CAChC,MAAM,cAAET,GAAkBhU,EAC1B,IAAK,IAAIkV,EAAIjoB,EAAGioB,GAAK,IAAKA,EAAG,CACzB,MAAMC,EAAYL,EAAM,EAAII,OACN3wB,IAAlByvB,EACAA,EAAcmB,GAGdrN,EAAQ0K,YAAc,GAAG2C,EAE7B,MAAMC,EAAetN,EAAQ4M,YAE7B,GADAG,GAAiBF,EAAYO,GACzBL,EAAgBO,GAAgBX,GAAwB,IAANS,EAAS,CAC3DxV,GAAW,EACXzS,EAAIioB,EAAI,EACJN,KAGW,IAAP3nB,GACA2nB,EAAKxyB,MAAMizB,SAAcZ,EAAiBW,EAApB,KACtBR,EAAKxyB,MAAMwiB,UAAY,cAGvBgQ,EAAKxyB,MAAMizB,SAAW,IAG9B,SAKhB,MAAM,iBAAEpB,GAAqBjU,EACxBN,OAOwBnb,IAArB0vB,GACAA,GAAiB,SAPI1vB,IAArB0vB,GACAA,GAAiB,GAErBnM,EAAQkN,aAAanB,EAAY,KAQzC,MAAMzS,EAAa,iBAQnB,OAPAhf,EAAMif,MAAM,CACRC,GAAI,iBACJC,MAAM,EACNC,IAAKJ,IAET,eAAUiT,GAEH,CACHF,UACAC,aACAkB,KAAMjB,IAGd,SACI,MAAM,OAAEhP,GAAW3a,KAInB,OAFA,eAASA,KAAK4qB,MAEP,eAAE,MAAO,CACZ/nB,MAAO,aACPQ,IAAK,WACN,CACC,eAAWsX,EAAQ,WAEnBA,EAAOyC,QACDzC,EAAOyC,UACP,eAAE,OAAQ,CACR1lB,MAAO,CACH0d,QAAS,gBAEb/R,IAAK,eAGbsX,EAAOuP,KAAOvP,EAAOuP,OAAS,U,gDCtInC,SAASW,EAAkB3xB,GAC9B,cAAeA,GACX,IAAK,SAED,OAAOA,QAASW,EACpB,IAAK,SACD,OAAOL,OAAON,GAClB,QACI,Q,wCCkBG,iBAAE,CAAC,eAAG,iBAAkB,uRAYnC,CAAC,eAAG,eAAgB,sCAEnB,eAAG,uBAAwB,8DAG3B,eAAG,sBAAuB,CAC7BihB,UAAW,kBACT,eAAG,uBAAwB,sOAY1B,eAAG,eAAgB,4CAGnB,eAAG,cAAe,yGAMnB,CAAC,eAAG,QAAS,6EAGV,eAAG,kBAAmB,8QAaxB,eAAG,6BAA8B,0CAEjC,eAAG,sBAAuB,uZAkB1B,eAAG,uBAAwB,wVAe5B,CAAC,eAAG,QAAS,oWAeZ,eAAG,eAAgB,qCAEjB,eAAM,WAAY,CAAC,eAAE,UAAW,CAAC,eAAG,eAAgB,+EAGpD,eAAG,QAAS,CAAC,eAAG,eAAgB,+EAGhC,eAAG,SAAU,CAAC,eAAG,eAAgB,+EAGnC,eAAG,uBAAwB,CAC9BqM,gBAAiB,wBACf,eAAG,sBAAuB,CAC5BA,gBAAiB,4BACX,eAAG,WAAY,CACrBF,OAAQ,eACP,CAAC,eAAG,QAAS,6CAEX,eAAG,uBAAwB,wEAG5B,CAAC,eAAG,QAAS,mEAGZ,eAAG,eAAgB,8CAEjB,eAAG,sBAAuB,yEAG5B,eAAG,6BAA8B,4EAG/B,eAAG,2BAA4B,gNASlC,CAAC,eAAG,QAAS,kQAaZ,eAAG,SAAU,mIAQT,eAAG,yBAA0B,kEAIjC,eAAG,6BAA8B,yEAIlC,CAAC,eAAE,eAAgB,CACrBwE,aAAc,IACZ,eAAG,MAAO,4CAGV,CAAC,eAAG,UAAW,0DAGV,CAAC,UAAW,SAAStvB,IAAIrD,GAAU,eAAeA,EAAQ,eAAG,iBAAkB,CAAC,eAAG,eAAgB,CAC1G6rB,OAAQ,gBAAgB7rB,OACtB,eAAM,WAAY,CAAC,eAAE,UAAW,CAAC,eAAG,eAAgB,yCAClBA,oCACRA,YACvB,eAAG,SAAU,CAAC,eAAG,eAAgB,0CACDA,qCACRA,UAC1B,eAAG,uBAAwB,CAC9BquB,gBAAiB,sBAAsBruB,OACrC,eAAG,sBAAuB,CAC5BquB,gBAAiB,2BAA2BruB,SACxC,eAAG,QAAS,CAAC,eAAG,eAAgB,yCACAA,oCACRA,oBCvNf,iBAAgB,CAC3BqK,KAAM,oBACN8S,MAAO9X,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAEoT,UAAW,CAC7D1W,KAAMxY,OACNmc,UAAU,GACX+Q,SAAU,CACT1U,KAAMwD,QACNC,aAAS5b,GACVkxB,OAAQvV,QAASwV,QAAS,CACzBhZ,KAAMxY,OACNic,QAAS,MACVwV,YAAazxB,OAAQ0xB,eAAgB,CACpClZ,KAAMxU,OACNiY,QAAS,MACV0V,gBAAiB,CAChBnZ,KAAMqC,MACNoB,QAAS,MACV2V,SAAU5V,QAAS6V,WAAY7V,QAAS8V,UAAW9V,QAAS6Q,SAAU7Q,QAAS2Q,KAAM,CACpFnU,KAAMxY,OACNic,QAAS,UACV8V,QAAS/V,QAASgW,UAAWhW,QAASiW,UAAW,CAChDzZ,KAAMwD,QACNC,SAAS,GACViW,QAASlW,QAASmW,UAAWzV,SAAU0V,QAAS1V,SAAU2V,UAAW3V,SAAUuS,QAASvS,SAAU4E,OAAQ5E,SAAU2E,QAAS3E,SAAU4V,eAAgB5V,SAAU6V,YAAa,CAACvyB,OAAQ1B,QAASk0B,QAAS9V,SAAU+V,eAAgB/V,SAAUgW,YAAahW,WACjQ,MAAMZ,GACF,MAAM6W,EAAwB,eAAI,MAC5BC,EAAkB,eAAI,MACtB3C,EAAU,eAAI,MACd4C,EAAgB,eAAI,MACpBC,EAAc,eAAI,MAClBC,EAAyB,eAAI,MAC7B7C,EAAa,eAAI,MACjB8C,EAAoB,eAAI,MACxBC,EAAc,eAAI,MAClBC,EAAgB,eAAI,MACpBC,EAAqB,gBAAI,GACzBC,EAAyB,gBAAI,GAC7BC,EAAW,gBAAI,GACfrF,EAAW,eAAS,oBAAqB,oBAAqB,EAAO,OAAwBlS,EAAO,eAAMA,EAAO,cACjHwX,EAAqB,eAAS,IACxBxX,EAAMgW,YAAchW,EAAM+Q,WAAawG,EAAS3zB,OAASoc,EAAMyV,SAErEgC,EAA2B,eAAS,IAC/BzX,EAAM4V,eACP5V,EAAM4W,YACF5W,EAAM4W,YAAY5W,EAAM4V,gBAAgB,GACxC,OAAArmB,EAAA,MAAOyQ,EAAM4V,eAAe1M,MAAOlJ,EAAM4V,gBAAgB,GAC7D5V,EAAM2V,aAEV+B,EAAW,eAAS,KACtB,MAAMC,EAAS3X,EAAM4V,eACrB,GAAK+B,EAEL,OAAOA,EAAOzO,QAEZ0O,EAAc,eAAS,IACrB5X,EAAM8V,YACI/W,MAAM8Y,QAAQ7X,EAAM6V,mBAAoB7V,EAAM6V,gBAAgBrtB,QAGxC,OAAzBwX,EAAM4V,gBAGrB,SAASkC,IACL,IAAIhU,EACJ,MAAQlgB,MAAOm0B,GAAyBlB,EACxC,GAAIkB,EAAsB,CACtB,MAAQn0B,MAAOo0B,GAAmBlB,EAC9BkB,IACAA,EAAe51B,MAAMyd,MAAWkY,EAAqBrD,YAAxB,KACH,eAAtB1U,EAAMyW,cACuB,QAA5B3S,EAAKqT,EAAYvzB,aAA0B,IAAPkgB,GAAyBA,EAAGwR,UAKjF,SAAS2C,IACL,MAAQr0B,MAAOs0B,GAAed,EAC1Bc,IACAA,EAAW91B,MAAM0d,QAAU,QAEnC,SAASqY,IACL,MAAQv0B,MAAOs0B,GAAed,EAC1Bc,IACAA,EAAW91B,MAAM0d,QAAU,gBAWnC,SAASsY,EAAQrrB,GACb,MAAM,QAAEwY,GAAYvF,EAChBuF,GACAA,EAAQxY,GAEhB,SAASsrB,EAAOtrB,GACZ,MAAM,OAAEyY,GAAWxF,EACfwF,GACAA,EAAOzY,GAEf,SAASurB,EAAe10B,GACpB,MAAM,eAAE4yB,GAAmBxW,EACvBwW,GACAA,EAAe5yB,GAEvB,SAAS20B,EAAQxrB,GACb,MAAM,QAAE2pB,GAAY1W,EAChB0W,GACAA,EAAQ3pB,GAEhB,SAASyrB,EAAe50B,GACpB,MAAM,eAAE+yB,GAAmB3W,EACvB2W,GACAA,EAAe/yB,GAEvB,SAAS60B,EAAc1rB,GACnB,IAAI+W,EACC/W,EAAE2rB,gBACwB,QAAxB5U,EAAKqQ,EAAQvwB,aAA0B,IAAPkgB,OAAgB,EAASA,EAAG6U,SAAS5rB,EAAE2rB,iBAC1EN,EAAQrrB,GAGhB,SAAS6rB,EAAe7rB,GACpB,IAAI+W,GACyB,QAAxBA,EAAKqQ,EAAQvwB,aAA0B,IAAPkgB,OAAgB,EAASA,EAAG6U,SAAS5rB,EAAE2rB,iBAE5EL,EAAOtrB,GAEX,SAAS8rB,EAAY9rB,GACjBwrB,EAAQxrB,GAEZ,SAAS+rB,IACLvB,EAAS3zB,OAAQ,EAErB,SAASm1B,IACLxB,EAAS3zB,OAAQ,EAErB,SAASo1B,EAAgBjsB,GAChBiT,EAAMyV,QAAWzV,EAAM+V,YAExBhpB,EAAEgX,SAAW+S,EAAgBlzB,OAEjCmJ,EAAEksB,iBAEN,SAASC,EAAmBvB,GACxBW,EAAeX,GAEnB,SAASwB,EAAqBpsB,GAC1B,GAAe,cAAXA,EAAEwL,OACGyH,EAAM0V,QAAQltB,OAAQ,CACvB,MAAM,gBAAEqtB,GAAoB7V,GACJ,OAApB6V,QAAgD,IAApBA,OAA6B,EAASA,EAAgBrtB,SAClF0wB,EAAmBrD,EAAgBA,EAAgBrtB,OAAS,KAvE5E,eAAM,eAAMwX,EAAO,UAAYpc,IACtBA,GACDq0B,MAER,eAAM,eAAMjY,EAAO,WAAY,KACvBA,EAAM8V,UACD,eAASgC,KAsEtB,MAAMsB,EAAmB,gBAAI,GAG7B,IAAIC,EAAmB,KACvB,SAASC,EAAwBvsB,GAE7B,MAAQnJ,MAAOm0B,GAAyBlB,EACxC,GAAIkB,EAAsB,CACtB,MAAMwB,EAAYxsB,EAAEgX,OAAOngB,MAC3Bm0B,EAAqBvF,YAAc+G,EACnCzB,IAECsB,EAAiBx1B,MAIlBy1B,EAAmBtsB,EAHnByrB,EAAezrB,GAMvB,SAASysB,IACLJ,EAAiBx1B,OAAQ,EAE7B,SAAS61B,IACLL,EAAiBx1B,OAAQ,EACzB40B,EAAea,GACfA,EAAmB,KAEvB,SAASK,IACLpC,EAAuB1zB,OAAQ,EAEnC,SAAS+1B,EAAuB5sB,GAC5BuqB,EAAuB1zB,OAAQ,EAEnC,SAASg2B,IACL,GAAI5Z,EAAM+V,WAAY,CAClBuB,EAAuB1zB,OAAQ,EAC/B,MAAQA,MAAOi2B,GAA0B5C,EACrC4C,GACAA,EAAsBD,aAEzB,GAAI5Z,EAAM8V,SAAU,CACrB,MAAQlyB,MAAOk2B,GAAe/C,EACf,OAAf+C,QAAsC,IAAfA,GAAiCA,EAAWF,YAElE,CACD,MAAQh2B,MAAOm2B,GAAa/C,EACf,OAAb+C,QAAkC,IAAbA,GAA+BA,EAASH,SAGrE,SAASI,IACL,MAAQp2B,MAAOo0B,GAAmBlB,EAC9BkB,IACAG,IACAH,EAAe4B,SAGvB,SAASK,IACL,MAAQr2B,MAAOo0B,GAAmBlB,EAC9BkB,GACAA,EAAekC,OAGvB,SAASlG,EAAcmG,GACnB,MAAM,MAAEv2B,GAAUwwB,EACdxwB,GACAA,EAAMw2B,eAAe,IAAID,GAGjC,SAASrG,IACL,MAAM,MAAElwB,GAAUszB,EAClB,OAAOtzB,EAEX,SAASmwB,IACL,OAAO+C,EAAgBlzB,MAE3B,IAAIy2B,GAAe,KACnB,SAASC,KACgB,OAAjBD,IACAzN,OAAO2N,aAAaF,IAE5B,SAASG,KACDxa,EAAM+Q,UAAY/Q,EAAMyV,SAE5B6E,KACAD,GAAezN,OAAO6N,WAAW,KAC7BpD,EAAmBzzB,OAAQ,GAC5B,MAEP,SAAS82B,KACLJ,KAEJ,SAASK,GAAoBC,GACpBA,IACDN,KACAjD,EAAmBzzB,OAAQ,GAYnC,OATA,eAAU,KACN,eAAY,KACR,MAAMi2B,EAAwB5C,EAAuBrzB,MAChDi2B,IAELA,EAAsBgB,SAClB7a,EAAM+Q,UAAYuG,EAAuB1zB,OAAS,EAAI,OAG3D,CACHk3B,YAAa5I,EACb6I,gBAAiBvD,EACjBwD,oBAAqB1D,EACrB2D,sBAAuBxD,EACvBvO,MAAOwO,EACPwD,SAAUtD,EACVuD,cAAe9D,EACf+D,cAAehC,EAEfhF,aACA8C,oBACAL,wBACAC,kBACA3C,UACA4C,gBACAC,cACAC,yBACAE,cACAC,gBACA4B,kBACAP,gBACAI,cACAC,mBACAC,mBACAG,qBACAC,uBACAG,0BACAK,yBACAD,0BACAc,2BACAE,2BACA9B,iBACAa,uBACAD,yBACAmB,uBACAf,QACAI,aACAC,YACAjG,gBACAF,aACAC,UACA6C,YAAa5W,EAAM4W,YACnB9D,QAAS,eAAS,KACd,MAAM,KAAEjC,GAAS7Q,GACTrN,QAAQ,qBAAEogB,GAAwBhgB,MAAM,aAAEpC,EAAY,MAAEwa,EAAK,iBAAEkQ,EAAgB,UAAE1M,EAAS,cAAE2M,EAAa,WAAEC,EAAU,cAAEC,EAAa,kBAAE/qB,EAAiB,yBAAEgrB,EAAwB,YAAEC,EAAW,eAAEC,EAAc,gBAAEC,EAAe,eAAEC,EAAc,OAAEnN,EAAM,YAAEoN,EAAW,YAAEC,EAAW,aAAEC,EAAY,WAAEC,EAAU,mBAAEC,EAAkB,aAAEpQ,EAAY,mBAErVqQ,EAAkB,sBAAEC,EAAqB,uBAAEC,EAAsB,sBAAEC,EAAqB,cAAEvM,EAAa,mBAAEwM,EAAkB,mBAAEC,EAAkB,oBAAEC,EAAmB,iBAEpKC,EAAgB,oBAAEC,EAAmB,qBAAEC,EAAoB,oBAAEC,EAAmB,YAAExM,EAAW,iBAAEyM,EAAgB,iBAAEC,EAAgB,kBAAEC,EAAiB,WAEpJC,EAAU,gBAAEC,EAAe,kBAAEC,EAAiB,UAAEC,EAAW,CAAC,eAAU,SAAUvM,IAAQpR,EAAQ,CAAC,eAAU,WAAYoR,IAAQjgB,IAAeshB,EAAStuB,MACvJ,MAAO,CACH,WAAYmvB,EACZ,WAAYrE,EACZ,kBAAmBsN,EACnB,iBAAkBF,EAClB,iBAAkBC,EAClB,kBAAmBprB,EACnB,sBAAuBirB,EACvB,qBAAsBD,EACtB,qBAAsBE,EACtB,gBAAiBN,EACjB,UAAWpQ,EACX,iBAAkBuQ,EAClB,mBAAoBF,EACpB,cAAe5qB,EACf,WAAY6O,EACZ,mBAAoB6b,EACpB,sBAAuBD,EACvB,+BAAgCI,EAChC,eAAgB9M,EAChB,wBAAyBle,EACzB,gBAAiBwrB,EACjB,yBAA0BC,EAC1B,kBAAmBpQ,EAEnB,yBAA0BqQ,EAC1B,6BAA8BC,EAC9B,8BAA+BC,EAC/B,6BAA8BC,EAC9B,mBAAoBvM,EACpB,yBAA0BwM,EAC1B,yBAA0BC,EAC1B,0BAA2BC,EAE3B,uBAAwBC,EACxB,2BAA4BC,EAC5B,4BAA6BC,EAC7B,2BAA4BC,EAC5B,iBAAkBxM,EAClB,uBAAwByM,EACxB,uBAAwBC,EACxB,wBAAyBC,EAEzB,eAAgBI,EAChB,gBAAiBH,EACjB,sBAAuBC,EACvB,wBAAyBC,OAKzC,SACI,MAAM,SAAErH,EAAQ,KAAEjF,EAAI,SAAEE,EAAQ,WAAEgF,EAAU,YAAEU,EAAW,SAAErF,EAAQ,UAAEgC,EAAS,UAAEiD,EAAS,YAAEO,GAAgBlsB,KACrG2yB,EAAwC,eAAhB5G,EACxB6G,EAA4C,kBAAhB7G,EAC5B8G,EAAiBF,GAAyBC,EAC1CE,EAAU,cAAD,CAAGC,EAAA,KAAQ,CAAErK,UAAWA,EAAW6C,QAASvrB,KAAKurB,QAASE,UAAWzrB,KAAKyrB,UAAWuH,UAAWhzB,KAAKqwB,iBAAmBrwB,KAAKwwB,SAAUxE,QAAShsB,KAAKmuB,cACpK,IAAItxB,EACJ,GAAIuuB,EAAU,CACV,MAAM6H,EAAahG,GAAY,cAAD,CAAG,MAAO,CAAEpqB,MAAU6lB,EAAH,8BAA2CvvB,IAAK8zB,EAAO/zB,OAASyyB,EAAaA,EAAU,CACpIsB,SACAiG,YAAa,IAAMlzB,KAAKwuB,mBAAmBvB,KACxC,cAAD,CAAG,OAAM,CAAE9G,KAAMA,EAAMC,UAAW6G,EAAO5G,SAAUA,SAAUA,EAAUY,8BAA8B,EAAMJ,QAAS,IAAM7mB,KAAKwuB,mBAAmBvB,IAAW,CAC/JxX,QAAS,IAAMyW,EACTA,EAAYe,GAAQ,GACpB,OAAApoB,EAAA,MAAOooB,EAAOzO,MAAOyO,GAAQ,MAEjCkG,GAAgBP,EAChB5yB,KAAKmrB,gBAAgB5pB,MAAM,EAAGwqB,GAC9B/rB,KAAKmrB,iBAAiB3vB,IAAIy3B,GAC1BznB,EAAQ6f,EAAc,cAAD,CAAG,MAAO,CAAExoB,MAAU6lB,EAAH,4BAAyCrlB,IAAK,gBAAiBlK,IAAK,iBAC9G,eAAE,QAAS,CAAEkK,IAAK,kBAAmB0X,UAAW,EAAGsL,SAAUA,EAAUntB,MAAO8G,KAAKgrB,QAASQ,UAAWxrB,KAAKwrB,UAAW3oB,MAAU6lB,EAAH,mCAAgD5N,OAAQ9a,KAAKivB,uBAAwBpU,QAAS7a,KAAKgvB,wBAAyBnD,UAAW7rB,KAAKyuB,qBAAsB2E,QAASpzB,KAAK4uB,wBAAyByE,mBAAoBrzB,KAAK8uB,uBAAwBwE,iBAAkBtzB,KAAK+uB,uBAC/Y,eAAE,OAAQ,CAAE1rB,IAAK,wBAAyBR,MAAU6lB,EAAH,qCAAmD1oB,KAAKgrB,QAAUhrB,KAAKgrB,QAAU,KAAQ,KAExIuI,EAAgBZ,EAChB,IAAO,cAAD,CAAG,MAAO,CAAE9vB,MAAU6lB,EAAH,8BAA2CrlB,IAAK,qBACvE,eAAE,OAAM,CAAEA,IAAK,aAAcyjB,aAAc9mB,KAAK8vB,wBAAyB/I,aAAc/mB,KAAKgwB,wBAAyB3J,SAAUA,UACjIxsB,EACN,IAAIujB,EACJ,GAAIwV,EAAoB,CACpB,MAAMY,EAAOxzB,KAAKmrB,gBAAgBrtB,OAASiuB,EACvCyH,EAAO,IACPpW,EAAW,cAAD,CAAG,MAAO,CAAEva,MAAU6lB,EAAH,8BAA2CvvB,IAAK,eACzE,eAAE,OAAM,CAAEkK,IAAK,aAAcyjB,aAAc9mB,KAAK8vB,wBAAyBzJ,SAAUA,GAAY,CAC3F5Q,QAAS,IAAM,IAAI+d,MAInC,MAAMC,EAAOd,EAAyBtH,EAAc,cAAD,CAAG,EAAW,CAAEhoB,IAAK,cAAeimB,cAAetpB,KAAKspB,cAAeF,WAAYppB,KAAKopB,WAAYC,QAASrpB,KAAKqpB,QAAS3xB,MAAO,CAC7Kyd,MAAO,OACPC,QAAS,OACTJ,SAAU,WACT,CACLS,QAAS,IAAM0d,EACf/V,QAASmW,EACTrJ,KAAM,IAAM1e,IACT,cAAD,CAAG,EAAW,CAAEnI,IAAK,cAAeimB,cAAetpB,KAAKspB,cAAeF,WAAYppB,KAAKopB,WAAY1xB,MAAO,CACzGyd,MAAO,OACPC,QAAS,OACTJ,SAAU,WACT,CACLS,QAAS,IAAM0d,EACf/V,QAASmW,IACNX,EAAsBO,EAAaO,OAAOtW,GAAY,EACvDuW,EAAgBd,EAChB,IAAO,cAAD,CAAG,MAAO,CAAEhwB,MAAU6lB,EAAH,2BAAyCiK,EAC9DQ,EACAnzB,KAAKmrB,gBAAgB3vB,IAAIy3B,SAC7Bp5B,EACA+5B,EAAef,EACf,CACE3C,KAAMlwB,KAAKywB,cACXoD,QAAS,QACTC,SAAS,EACTC,UAAW,MACX5e,MAAO,UACP6e,aAAch0B,KAAKiwB,oBACnBgE,MAAOj0B,KAAKowB,YAAYloB,MAAMgsB,QAC9BC,eAAgBn0B,KAAKowB,YAAYgE,cAAcF,SAEjD,KACAjJ,EAAejrB,KAAKwwB,UAAaxwB,KAAKgrB,SAAYhrB,KAAK0wB,cAAkI,KAAjH,cAAD,CAAG,MAAO,CAAE7tB,MAAO,GAAG6lB,gCAAwCA,qBAA+B1oB,KAAKirB,aAC/K,GAAII,EAAY,CACZ,MAAMgJ,EAAkB,cAAD,CAAG,MAAO,CAAEhxB,IAAK,yBAA0BR,MAAU6lB,EAAH,wBACrE+K,EACAd,EAAwB,KAAOnnB,EAC/BsnB,GACJj2B,EAAQ,cAAD,CAAG,OAAU,KAChBg2B,EAAkB,cAAD,CAAG,OAAUr1B,OAAOkH,OAAO,GAAIkvB,GAAe,CAC3DC,QAAS,IAAMQ,EACf5e,QAASke,IACP,EACN1I,OAEH,CACD,MAAMoJ,EAAkB,cAAD,CAAG,MAAO,CAAEhxB,IAAK,gBAAiBR,MAAU6lB,EAAH,uBAAoC3N,SAAUsL,OAAWxsB,EAAY,GACjI45B,EACAX,GACJj2B,EAAQ,cAAD,CAAG,OAAU,KAChBg2B,EAAkB,cAAD,CAAG,OAAUr1B,OAAOkH,OAAO,GAAIkvB,GAAe,CAC3DC,QAAS,IAAMQ,EACf5e,QAASke,IACP,EACN1I,SAIR,GAAII,EAAY,CACZ,MAAMiJ,GAAmBt0B,KAAKgrB,UACzBhrB,KAAK+qB,SAAW/qB,KAAKwwB,YACrBxwB,KAAK0wB,cACV7zB,EAAQ,cAAD,CAAG,MAAO,CAAEwG,IAAK,yBAA0BR,MAAU6lB,EAAH,yBACrD,eAAE,QAAS,CAAErlB,IAAK,kBAAmBR,MAAU6lB,EAAH,+BAA4CxvB,MAAO8G,KAAKswB,qBAAuBtwB,KAAK+qB,OAAS/qB,KAAKgrB,QAAU,GAAIC,YAAa,GAAIsJ,SAAUlO,EAAUA,SAAUA,EAAUtL,UAAW,EAAGyQ,UAAWxrB,KAAKwrB,UAAW3Q,QAAS7a,KAAKgvB,wBAAyBlU,OAAQ9a,KAAKivB,uBAAwBmE,QAASpzB,KAAK4uB,wBAAyByE,mBAAoBrzB,KAAK8uB,uBAAwBwE,iBAAkBtzB,KAAK+uB,uBACzbuF,GAAyBt0B,KAAKswB,qBAC1BtwB,KAAK+qB,OADS,KACQ,cAAD,CAAG,MAAO,CAAEloB,MAAO,GAAG6lB,wCAAgDA,oBAA6BvvB,IAAK,SAAW+yB,EACtIA,EAAYlsB,KAAKkrB,gBAAgB,GACjC,OAAArmB,EAAA,MAAO7E,KAAKwe,MAAOxe,KAAKkrB,gBAAgB,IAC9CoJ,EAAmB,cAAD,CAAG,MAAO,CAAEzxB,MAAO,GAAG6lB,gCAAwCA,oBAA6BvvB,IAAK,eAAiB6G,KAAKuwB,uBAA0B,KAClKuC,QAGJj2B,EAAQ,cAAD,CAAG,MAAO,CAAEwG,IAAK,cAAeR,MAAU6lB,EAAH,wBAAqC3N,SAAU/a,KAAKqmB,cAAWxsB,EAAY,QACtGA,IAAfmG,KAAKwe,MAAuB,cAAD,CAAG,MAAO,CAAE3b,MAAU6lB,EAAH,+BAA4CjH,MAAOoJ,EAAkB7qB,KAAKwe,OAAQrlB,IAAK,SAAW+yB,EAC1IA,EAAYlsB,KAAKkrB,gBAAgB,GACjC,OAAArmB,EAAA,MAAO7E,KAAKwe,MAAOxe,KAAKkrB,gBAAgB,IAAW,cAAD,CAAG,MAAO,CAAEroB,MAAO,GAAG6lB,gCAAwCA,oBAA6BvvB,IAAK,eAAiB6G,KAAKirB,aAC9K6H,GAGZ,OAAQ,cAAD,CAAG,MAAO,CAAEzvB,IAAK,UAAWR,MAAO,CAC/B6lB,EAAH,kBACA,CACI,CAAIA,EAAH,2BAAwC1oB,KAAK+qB,OAC9C,CAAIrC,EAAH,6BAA0C1oB,KAAKwwB,UAAaxwB,KAAK+qB,QAAU/qB,KAAKgrB,QACjF,CAAItC,EAAH,6BAA0C1oB,KAAKqmB,SAChD,CAAIqC,EAAH,6BAA0C1oB,KAAKorB,SAIhD,CAAI1C,EAAH,0BAAuC1oB,KAAK0rB,UAElDh0B,MAAOsI,KAAKooB,QAASK,QAASzoB,KAAKyoB,QAAS3B,aAAc9mB,KAAKouB,iBAAkBrH,aAAc/mB,KAAKquB,iBAAkBzC,QAAS5rB,KAAK4rB,QAASC,UAAW7rB,KAAK6rB,UAAW2I,UAAWx0B,KAAK+tB,cAAe0G,WAAYz0B,KAAKkuB,eAAgBwG,YAAa10B,KAAKsuB,iBAC7PzxB,EACA6pB,EAAY,cAAD,CAAG,MAAO,CAAE7jB,MAAU6lB,EAAH,4BAA4C,KAC1EhC,EAAY,cAAD,CAAG,MAAO,CAAE7jB,MAAU6lB,EAAH,kCAAkD,S,4GChgB7E,iBAAgB,CAC3BlmB,KAAM,YACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaC,KAAM,OAAQC,MAAO,8BAC1D,eAAE,OAAQ,CAAEC,EAAG,mUAAoUF,KAAM,qB,wBCCrW,MAAMiyB,EAAgB,eAAEC,GACxB,SAASC,EAAgB3E,EAAMxH,GAC3B,OAAQ,cAAD,CAAG,OAAY,CAAElmB,KAAM,+BAAiC,CAC3DiT,QAAS,IAAMya,EAAQ,cAAD,CAAG,OAAW,CAAExH,UAAWA,EAAW7lB,MAAU6lB,EAAH,8BAA4C,CAC3GjT,QAAS,IAAMkf,IACb,OAGC,qBAAgB,CAC3BnyB,KAAM,oBACN8S,MAAO,CACHoT,UAAW,CACP1W,KAAMxY,OACNmc,UAAU,GAEdmf,OAAQ,CACJ9iB,KAAMxU,OACNmY,UAAU,IAGlB,MAAML,GACF,MAAM,SAAEyf,EAAQ,iBAAEC,EAAgB,YAAEC,EAAW,YAAEC,EAAW,eAAEC,EAAc,gBAAEC,EAAe,kBAAEC,EAAiB,uBAAEC,GAE7G,eAAO,QACNC,EAAe,eAAQ,KACzB,MAAQr8B,MAAOs8B,GAAkBR,EACjC,QAAKQ,GAEElgB,EAAMwf,OAAO37B,MAAQq8B,EAAcr8B,MAE9C,SAASsuB,EAAYplB,GACjB,MAAM,OAAEyyB,GAAWxf,EACfwf,EAAOzO,UAEXgP,EAAkBhzB,EAAGyyB,GAEzB,SAAS1G,EAAiB/rB,GACtB,MAAM,OAAEyyB,GAAWxf,EACfwf,EAAOzO,UAEXiP,EAAuBjzB,EAAGyyB,GAE9B,SAASW,EAAgBpzB,GACrB,MAAM,OAAEyyB,GAAWxf,GACXpc,MAAOw8B,GAAcH,EACzBT,EAAOzO,UAAYqP,GAEvBJ,EAAuBjzB,EAAGyyB,GAE9B,MAAO,CACH1J,SAAU6J,EACVU,UAAW,eAAQ,KACf,MAAM,OAAEb,GAAWxf,GACb,OAAEsgB,GAAWd,EACnB,OAAOc,GAAkC,UAAxBA,EAAOC,QAAQ7jB,OAEpC0jB,UAAWH,EACXO,WAAY,eAAQ,KAChB,MAAM,MAAE58B,GAAU67B,GACV77B,MAAOkyB,GAAa6J,EAC5B,GAAc,OAAV/7B,EACA,OAAO,EACX,MAAM68B,EAAczgB,EAAMwf,OAAOe,QAAQ38B,MACzC,GAAIkyB,EAAU,CACV,MAAQlyB,MAAO88B,GAAad,EAC5B,OAAOc,EAASxsB,IAAIusB,GAGpB,OAAO78B,IAAU68B,IAGzB7J,YAAaiJ,EACbc,aAAcb,EACdK,kBACArH,mBACA3G,gBAGR,SACI,MAAM,UAAEiB,EAAWoM,QAAQ,QAAEe,GAAS,WAAEC,EAAU,UAAEJ,EAAS,UAAEC,EAAS,SAAEvK,EAAQ,aAAE6K,EAAY,YAAE/J,EAAW,YAAEzE,EAAW,iBAAE2G,EAAgB,gBAAEqH,GAAoBz1B,KAC5Jk2B,EAAgB9K,GAAY0K,EAC5BK,EAAYtB,EAAgBqB,EAAexN,GAC3CoB,EAAWoC,EACX,CAACA,EAAY2J,EAASC,GAAaK,GACnC,CAAC,OAAAtxB,EAAA,MAAOgxB,EAAQrX,MAAOqX,EAASC,GAAaK,GAC7CC,EAAQ,cAAD,CAAG,MAAO,CAAEvzB,MAAO,CACrB6lB,EAAH,sBACAmN,EAAQhzB,MACR,CACI,CAAI6lB,EAAH,iCAA8CmN,EAAQxP,SACvD,CAAIqC,EAAH,iCAA8CoN,EAC/C,CAAIpN,EAAH,gCAA6CiN,EAC9C,CAAIjN,EAAH,gCAA6CgN,IAEnDh+B,MAAOm+B,EAAQn+B,MAAO+wB,QAAShB,EAAaX,aAAcsH,EAAkBiI,YAAaZ,GAAmB3L,GACnH,OAAO+L,EAAQhxB,OACTgxB,EAAQhxB,OAAO,CAAEuxB,OAAMnJ,OAAQ4I,EAASrF,SAAUsF,IAClDG,EACIA,EAAa,CAAEG,OAAMnJ,OAAQ4I,EAASrF,SAAUsF,IAChDM,KCtGH,iBAAgB,CAC3B5zB,KAAM,yBACN8S,MAAO,CACHoT,UAAW,CACP1W,KAAMxY,OACNmc,UAAU,GAEdmf,OAAQ,CACJ9iB,KAAMxU,OACNmY,UAAU,IAGlB,QACI,MAAM,eAAEwf,EAAc,gBAAEC,GAEnB,eAAO,QACZ,MAAO,CACHlJ,YAAaiJ,EACbc,aAAcb,IAGtB,SACI,MAAM,UAAE1M,EAAS,YAAEwD,EAAW,aAAE+J,EAAcnB,QAAQ,QAAEe,IAAc71B,KAChE8pB,EAAWoC,EACXA,EAAY2J,GAAS,GACrB,OAAAhxB,EAAA,MAAOgxB,EAAQrX,MAAOqX,GAAS,GAC/BO,EAAQ,cAAD,CAAG,MAAO,CAAEvzB,MAAU6lB,EAAH,6BAA2CoB,GAC3E,OAAO+L,EAAQhxB,OACTgxB,EAAQhxB,OAAO,CAAEuxB,OAAMnJ,OAAQ4I,IAC/BI,EACIA,EAAa,CAAEG,OAAMnJ,OAAQ4I,EAASrF,UAAU,IAChD4F,K,YC9BH,iBAAG,mBAAoB,uNASnC,CAAC,eAAG,YAAa,oCAEf,eAAG,eAAgB,oCAEnB,eAAG,qBAAsB,kHAIzB,eAAG,2BAA4B,gGAI/B,eAAG,kCAAmC,4CAGtC,eAAG,iBAAkB,oFAKrB,eAAG,UAAW,wEAGd,eAAG,SAAU,4PAQb,eAAG,2BAA4B,2HAK/B,eAAG,qBAAsB,8UAc1B,CAAC,eAAE,WAAY,CACjB3V,MAAO,qCACL,eAAG,UAAW,CAChB6V,YAAa,2CACX,eAAG,WAAY,CACjB7V,MAAO,oCACL,eAAG,WAAY,CACjB6F,OAAQ,eACP,CAAC,eAAM,WAAY,CACpB7F,MAAO,sCACL,eAAG,WAAY,CACjB8F,QAAS,qCACL,eAAG,UAAW,CAClBC,gBAAiB,gCACf,eAAG,QAAS,qLAOZ,CAAC,eAAwB,CAC3B+P,WAAY,YACN,eAAG,WAAY,CAAC,eAAG,qBAAsB,wD,YCtElC,iBAAgB,CAC3B/zB,KAAM,qBACN8S,MAAO9X,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAEoT,UAAW,CAC7D1W,KAAMxY,OACNmc,UAAU,GACX6gB,WAAY,CACXxkB,KAAMwD,QACNC,SAAS,GACVghB,SAAU,CACTzkB,KAAMxU,OACNmY,UAAU,GACXyV,SAAU5V,QAAS2Q,KAAM,CACxBnU,KAAMxY,OACNic,QAAS,UACVvc,MAAO,CACN8Y,KAAM,CAACxY,OAAQ1B,OAAQuc,OACvBoB,QAAS,MACVN,MAAO,CAACrd,OAAQ0B,QAASk9B,YAAalhB,QAASmhB,cAAe,CAC7D3kB,KAAMwD,QACNC,SAAS,GAGbya,KAAM,CACFle,KAAMwD,QACNC,SAAS,GACV8V,QAAS/V,QAASohB,UAAWphB,QAAS0W,YAAahW,SAAU+f,aAAc/f,SAAUwe,YAAaxe,SAAUD,SAAUC,SAAU2E,QAAS3E,SAAU4E,OAAQ5E,SAAU0V,QAAS1V,SAAU2V,UAAW3V,SAAU2gB,SAAU3gB,SAAU4Q,aAAc5Q,SAAU6Q,aAAc7Q,SAE1Q4gB,SAAU5gB,WACd,MAAMZ,GACF,MAAMkS,EAAW,eAAS,qBAAsB,qBAAsB,EAAO,OAAyBlS,EAAO,eAAMA,EAAO,cACpHmU,EAAU,eAAI,MACdsN,EAAiB,eAAI,MACrBC,EAAe,eAAI,MACnBC,EAAoB,eAAS,IAAM3hB,EAAMmhB,SAASS,qBAClDC,EAAkB,eAAS,IAAM,eAAkBF,EAAkB/9B,QACrEk+B,EAAiB,eAAI,MAC3B,SAASC,IACL,MAAM,SAAEZ,GAAanhB,EACrBgiB,EAAiBhiB,EAAMohB,YACD,OAAhBphB,EAAMpc,MACFu9B,EAASc,wBACTjiB,EAAM8V,SACFqL,EAASe,SAASliB,EAAMpc,OAAS,KAAKoc,EAAMpc,OAAS,IAClD4E,OAAS,KAAO24B,EAASc,wBAC5Bd,EAASe,QAAQliB,EAAMpc,QACrBu9B,EAASc,wBACnB,MAEVF,IACA,eAAU,KACN,eAAY,KACJ/hB,EAAM4a,OACNmH,IACK,eAASI,QAI1B,MAAMC,EAAc,eAAS,IAClB,eAAKlQ,EAAStuB,MAAMmP,KAAK,eAAU,eAAgBiN,EAAM6Q,SAE9DwR,EAAa,eAAS,IACjB,eAAWnQ,EAAStuB,MAAMmP,KAAK,eAAU,UAAWiN,EAAM6Q,SAE/D+O,EAAc,eAAS,IACrB5f,EAAM8V,UAAY/W,MAAM8Y,QAAQ7X,EAAMpc,OAC/B,IAAI0+B,IAAItiB,EAAMpc,OAElB,IAAI0+B,KAETC,EAAW,eAAS,KACtB,MAAMC,EAAUb,EAAkB/9B,MAClC,OAAO4+B,GAA8B,IAAnBA,EAAQh6B,SAExBi6B,EAAW,eAAS,IACf,CAAC,CAAE5iB,MAAO,eAAaG,EAAMH,QAAU6iB,EAAW9+B,QAW7D,SAAS++B,EAASnD,GACd,MAAM,SAAEgC,GAAaxhB,EACjBwhB,GACAA,EAAShC,GAEjB,SAASoD,EAAS71B,GACd,MAAM,SAAE4T,GAAaX,EACjBW,GACAA,EAAS5T,GAGjB,SAAS81B,EAAwB91B,GAC7B,IAAI+W,EAC0B,QAA7BA,EAAK4d,EAAa99B,aAA0B,IAAPkgB,GAAyBA,EAAGwR,OAClEsN,EAAS71B,GAEb,SAAS+1B,IACL,IAAIhf,EAC0B,QAA7BA,EAAK4d,EAAa99B,aAA0B,IAAPkgB,GAAyBA,EAAGwR,OAEtE,SAASyN,IACL,MAAQn/B,MAAOs8B,GAAkB4B,EACjC,OAAI5B,GAEG,KAEX,SAASF,EAAuBjzB,EAAGyyB,GAC3BA,EAAOzO,UAEXiR,EAAiBxC,GAAQ,GAE7B,SAASO,EAAkBhzB,EAAGyyB,GACtBA,EAAOzO,UAEX4R,EAASnD,GAGb,SAASwD,EAAYj2B,GACjB,IAAI+W,EACA,eAAU/W,EAAG,WAEQ,QAAxB+W,EAAK9D,EAAMsW,eAA4B,IAAPxS,GAAyBA,EAAGzb,KAAK2X,EAAOjT,GAE7E,SAASk2B,EAAcl2B,GACnB,IAAI+W,EACA,eAAU/W,EAAG,WAEU,QAA1B+W,EAAK9D,EAAMuW,iBAA8B,IAAPzS,GAAyBA,EAAGzb,KAAK2X,EAAOjT,GAE/E,SAASisB,EAAgBjsB,GACrB,IAAI+W,EACyB,QAA5BA,EAAK9D,EAAMof,mBAAgC,IAAPtb,GAAyBA,EAAGzb,KAAK2X,EAAOjT,GACzEiT,EAAMshB,WAEVv0B,EAAEksB,iBAEN,SAASiK,IACL,MAAQt/B,MAAOs8B,GAAkB4B,EAC7B5B,GACA8B,EAAiB9B,EAAciD,QAAQ,CAAEC,MAAM,KAAS,GAGhE,SAASC,IACL,MAAQz/B,MAAOs8B,GAAkB4B,EAC7B5B,GACA8B,EAAiB9B,EAAcoD,QAAQ,CAAEF,MAAM,KAAS,GAGhE,SAASpB,EAAiBxC,EAAQoD,GAAW,GACzCd,EAAel+B,MAAQ47B,EACnBoD,GACAT,IAER,SAASA,IACL,IAAIre,EAAIoB,EACR,MAAMsa,EAASsC,EAAel+B,MAC9B,IAAK47B,EACD,OACJ,MAAM+D,EAAS1B,EAAgBj+B,MAAM47B,EAAO37B,KAC7B,OAAX0/B,IAEAvjB,EAAMqhB,cAC0B,QAA/Bvd,EAAK2d,EAAe79B,aAA0B,IAAPkgB,GAAyBA,EAAGrC,SAAS,CAAEvV,MAAOq3B,IAGxD,QAA7Bre,EAAKwc,EAAa99B,aAA0B,IAAPshB,GAAyBA,EAAGzD,SAAS,CACvEvV,MAAOq3B,EACPC,OAAQpB,EAAYx+B,SAIhC,SAAS60B,EAAc1rB,GACnB,IAAI+W,EAAIoB,GACqB,QAAxBpB,EAAKqQ,EAAQvwB,aAA0B,IAAPkgB,OAAgB,EAASA,EAAG6U,SAAS5rB,EAAEgX,WAC/C,QAAxBmB,EAAKlF,EAAMuF,eAA4B,IAAPL,GAAyBA,EAAG7c,KAAK2X,EAAOjT,IAGjF,SAAS6rB,EAAe7rB,GACpB,IAAI+W,EAAIoB,GACuB,QAAxBpB,EAAKqQ,EAAQvwB,aAA0B,IAAPkgB,OAAgB,EAASA,EAAG6U,SAAS5rB,EAAE2rB,iBAClD,QAAvBxT,EAAKlF,EAAMwF,cAA2B,IAAPN,GAAyBA,EAAG7c,KAAK2X,EAAOjT,GA7GhF,eAAM,eAAMiT,EAAO,YAAa,KAC5B,GAAIA,EAAMohB,YAAa,CACnB,MAAM5B,EAASxf,EAAMmhB,SAASc,wBAC9BD,EAAiBxC,QAGjBwC,EAAiB,QA0GzB,eAAQ,OAAmC,CACvChC,yBACAD,oBACAH,cACAD,YAAa,eAAM3f,EAAO,YAC1Byf,SAAU,eAAMzf,EAAO,SACvB6f,eAAgB,eAAM7f,EAAO,eAC7B8f,gBAAiB,eAAM9f,EAAO,gBAC9B0f,iBAAkBoC,IAEtB,eAAQ,OAAuC3N,GAC/C,eAAU,KACN,MAAM,MAAEvwB,GAAU89B,EACd99B,GACAA,EAAM0xB,SAEd,MAAMoN,EAAa,eAAS,KACxB,MAAM,KAAE7R,GAAS7Q,GACTrN,QAAQ,qBAAEogB,GAAwBhgB,MAAM,OAAE0M,EAAM,aAAE9O,EAAY,MAAEwa,EAAK,qBAAEC,EAAoB,mBAAEC,EAAkB,uBAAEE,EAAsB,gBAAED,EAAe,wBAAEE,EAAuB,sBAAEC,EAAqB,sBAAEC,EAAqB,iBAAEC,EAAgB,gBAAEE,EAAe,mBAAED,EAAkB,aAAEE,EAAY,YAAEjC,EAAa,CAAC,eAAU,iBAAkBgH,IAAQjgB,EAAU,CAAC,eAAU,eAAgBigB,IAAQ4S,EAAc,CAAC,eAAU,gBAAiB5S,IAAQ6S,IAAoBxR,EAAStuB,MAC5d,MAAO,CACH,WAAY6b,EACZ,yBAA0B4L,EAC1B,sBAAuBQ,EACvB,WAAYkH,EACZ,kBAAmBpiB,EACnB,UAAWwa,EACX,qBAAsBva,EACtB,4BAA6Bwa,EAC7B,uBAAwBO,EACxB,yBAA0BC,EAC1B,kBAAmB6X,EACnB,4BAA6B/X,EAC7B,sBAAuBJ,EACvB,6BAA8BG,EAC9B,+BAAgCD,EAChC,8BAA+BD,EAC/B,mBAAoBmY,EACpB,wBAAyB,eAAWA,EAAe,QACnD,kBAAmB5X,EACnB,iBAAkBjC,KAGpB8Z,EAAe,CACjBxP,UACA+O,OACAG,OACAN,oBAEJ,OAAO76B,OAAOkH,OAAO,CAAEqyB,iBACnBC,eAAct/B,MAAOqgC,EAAUjzB,SAAU4yB,EAAanV,QAASoV,EAAYuB,eAAgBjC,EAAmBrc,MAAOid,EAAU,uBAC3H,MAAM,MAAE3+B,GAAU69B,EAClB,OAAiB,OAAV79B,QAA4B,IAAVA,OAAmB,EAASA,EAAMie,WAE/D,qBACI,MAAM,MAAEje,GAAU69B,EAClB,OAAiB,OAAV79B,QAA4B,IAAVA,OAAmB,EAASA,EAAMohB,YAE/D4d,WACAnK,gBACAG,iBACAoK,cACAC,gBACAjK,kBACA8J,0BACAD,2BAA2Bc,IAEnC,SACI,MAAM,OAAEte,EAAM,cAAEgc,EAAa,UAAEjO,GAAc1oB,KAC7C,OAAQ,cAAD,CAAG,MAAO,CAAEqD,IAAK,UAAW0X,SAAU/a,KAAK42B,UAAY,GAAK,EAAG/zB,MAAO,CAClE6lB,EAAH,oBACA1oB,KAAKorB,UAAe1C,EAAH,+BAClBhxB,MAAOsI,KAAKtI,MAAO88B,UAAWx0B,KAAK+tB,cAAe0G,WAAYz0B,KAAKkuB,eAAgBtC,QAAS5rB,KAAKs4B,YAAazM,UAAW7rB,KAAKu4B,cAAe7D,YAAa10B,KAAKsuB,gBAAiBxH,aAAc9mB,KAAK8mB,aAAcC,aAAc/mB,KAAK+mB,cACvO/mB,KAAKurB,QAAW,cAAD,CAAG,MAAO,CAAE1oB,MAAU6lB,EAAH,8BAC9B,eAAE,OAAkB,CAAEA,UAAWA,EAAWyQ,YAAa,MAAWn5B,KAAK4a,MAWtE,cAAD,CAAG,MAAO,CAAE/X,MAAU6lB,EAAH,4BAA0C,eAAW/N,EAAQ,aAAS9gB,EAAW,IAAM,CAAC,eAAE,OAAQ,SAXrC,cAAD,CAAG,OAAY,CAAEwJ,IAAK,eAAgBmzB,WAAYx2B,KAAKw2B,WAAY4C,UAAWzC,EAAgB32B,KAAKq5B,0BAAuBx/B,EAAWy/B,QAAS3C,EAAgB32B,KAAKu5B,wBAAqB1/B,EAAWoc,SAAU0gB,OAAgB98B,EAAYmG,KAAKk4B,UAAY,CAC3UziB,QAAS,IACEkhB,EAAiB,cAAD,CAAG6C,EAAA,KAAa,CAAEn2B,IAAK,iBAAkBR,MAAU6lB,EAAH,gBAA6BhT,MAAO1V,KAAKk5B,eAAgBp0B,SAAU9E,KAAK8E,SAAUyQ,eAAe,EAAOiB,WAAYxW,KAAKuiB,QAAQjK,IAAK7B,cAAezW,KAAKuiB,QAAQkX,OAAQrjB,SAAUpW,KAAKo4B,wBAAyBniB,SAAUjW,KAAKm4B,yBAA2B,CAC/T1iB,QAAS,EAAGyB,KAAM4d,KACPA,EAAO4E,QAAW,cAAD,CAAG,EAAoB,CAAEvgC,IAAK27B,EAAO37B,IAAKuvB,UAAWA,EAAWoM,OAAQA,IAAaA,EAAO6E,QAAU,KAAQ,cAAD,CAAG,EAAe,CAAEjR,UAAWA,EAAWvvB,IAAK27B,EAAO37B,IAAK27B,OAAQA,MAEzM,cAAD,CAAG,MAAO,CAAEjyB,MAAU6lB,EAAH,mCAAgDhxB,MAAO,CACxE8e,WAAYxW,KAAKuiB,QAAQjK,IACzB7B,cAAezW,KAAKuiB,QAAQkX,SAC3Bz5B,KAAKk5B,eAAe19B,IAAKs5B,GAAWA,EAAO4E,QAAW,cAAD,CAAG,EAAoB,CAAEvgC,IAAK27B,EAAO37B,IAAKuvB,UAAWA,EAAWoM,OAAQA,IAAc,cAAD,CAAG,EAAe,CAAEpM,UAAWA,EAAWvvB,IAAK27B,EAAO37B,IAAK27B,OAAQA,QAG9Nna,EAAOif,QAAW,cAAD,CAAG,MAAO,CAAE/2B,MAAU6lB,EAAH,4BAAyC,eAAe,GAAQ,eAAW/N,EAAQ,WACvHA,EAAOif,QAAU,eAAE,OAAgB,CAAE/e,QAAS7a,KAAK62B,e,aClSxD,SAASgD,GAAO5M,GACnB,OAAI6M,GAAW7M,GACHA,EAAOzqB,MACXyqB,EAAO9zB,KACP,eAED8zB,EAAO/zB,MAEX,SAAS4gC,GAAW7M,GACvB,MAAuB,UAAhBA,EAAOjb,KAEX,SAAS+nB,GAAW9M,GACvB,MAAuB,YAAhBA,EAAOjb,KAEX,MAAMgoB,GAAY,CACrBH,UACAC,cACAC,eAEG,SAASE,GAAejP,EAAS9xB,GACpC,IACI,SAAU,EAAIA,EAAMgG,WAAWkQ,cAAc5K,QAAQwmB,EAAQzP,OAAOnM,gBAExE,MAAO8qB,GACH,OAAO,GAGR,SAASC,GAAcC,EAAcC,EAAQrP,GAChD,IAAKqP,EACD,OAAOD,EACX,SAASE,EAASliB,GACd,IAAK/D,MAAM8Y,QAAQ/U,GACf,MAAO,GACX,MAAMmiB,EAAkB,GACxB,IAAK,MAAMtN,KAAU7U,EACjB,GAAI0hB,GAAW7M,GAAS,CACpB,MAAMnD,EAAWwQ,EAASrN,EAAOnD,UAC7BA,EAAShsB,QACTy8B,EAAgB18B,KAAKL,OAAOkH,OAAO,GAAIuoB,EAAQ,CAC3CnD,kBAIP,IAAIiQ,GAAW9M,GAChB,SAEKoN,EAAOrP,EAASiC,IACrBsN,EAAgB18B,KAAKovB,GAG7B,OAAOsN,EAEX,OAAOD,EAASF,GAEb,SAASI,GAAgBpiB,GAC5B,MAAMqiB,EAAY,IAAIxjB,IAYtB,OAXAmB,EAAQnf,QAASg0B,IACT6M,GAAW7M,GAEXA,EAAOnD,SAAS7wB,QAASyhC,IACrBD,EAAUtwB,IAAIuwB,EAAkBxhC,MAAOwhC,KAI3CD,EAAUtwB,IAAI8iB,EAAO/zB,MAAO+zB,KAG7BwN,EAEJ,SAASE,GAAc3P,EAASiC,GACnC,QAAKA,IAEuB,kBAAjBA,EAAOzO,MACPyb,GAAejP,EAASiC,EAAOzO,YAEhB3kB,IAAjBozB,EAAO/zB,OACL+gC,GAAejP,EAASxxB,OAAOyzB,EAAO/zB,SCzEtC,sBAAE,CAAC,eAAG,SAAU,8EAK1B,eAAG,cAAe,6DAGnB,CAAC,qBCCL,MAAM0hC,GAAcp9B,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAEpS,GAAI,OAAc23B,OAAQnU,SAAU,CACnG1U,KAAMwD,QACNC,aAAS5b,GACVyxB,UAAW9V,QAAS4C,QAAS,CAC5BpG,KAAMqC,MACNoB,QAAS,IAAM,IAChBqlB,aAAc,CACb9oB,KAAM,CAACxY,OAAQ1B,OAAQuc,OACvBoB,QAAS,MACVvc,MAAO,CAACM,OAAQ1B,OAAQuc,OAAQ4W,YAAazxB,OAAQ4xB,SAAU5V,QAAS2Q,KAAM3sB,OAAQ6xB,WAAY7V,QAAS6Q,SAAU,CACpHrU,KAAMwD,QACNC,aAAS5b,GACVkhC,OAAQvlB,QAAS+V,QAAS/V,QAAS6kB,OAAQ,CAC1CroB,KAAMkE,SACNT,QAASklB,IACV5G,UAAW,CACV/hB,KAAMxY,OACNic,QAAS,gBACVulB,UAAW,CACVhpB,KAAMxY,OACNic,QAAS,WACVwlB,IAAKzlB,QAAS0lB,SAAU,CACvBlpB,KAAMkE,SACNT,QAAU+I,IAAU,CAChBA,MAAOA,EACPtlB,MAAOslB,KAEZ2c,eAAgB,CACfnpB,KAAM,CAACkE,SAAUV,SACjBC,QAAS,IAAOvc,IAAU,CACtBslB,MAAOhlB,OAAON,GACdA,WAELg3B,KAAM,CACLle,KAAMwD,QACNC,aAAS5b,GACV4xB,UAAW,CACVzZ,KAAMwD,QACNC,SAAS,GACVsW,YAAa,CAACj0B,OAAQ0B,QAAS4hC,oBAAqB,CACnDppB,KAAMwD,QACNC,SAAS,GACVkhB,cAAe,CACd3kB,KAAMwD,QACNC,SAAS,GACVyW,YAAahW,SAAU+f,aAAc/f,SAAUyV,UAAWzV,SAAU,iBAAkB,CAACA,SAAU7B,OAEpGgnB,cAAe,CAACnlB,SAAU7B,OAAQyG,OAAQ,CAAC5E,SAAU7B,OAAQ2X,QAAS,CAAC9V,SAAU7B,OAAQwG,QAAS,CAAC3E,SAAU7B,OAAQ4B,SAAU,CAACC,SAAU7B,OAAQinB,SAAU,CAACplB,SAAU7B,OAEvKknB,SAAU,CACNvpB,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,GACV6b,MAAO,CACN1D,KAAMqC,MACN8S,UAAW,KAIA,EAEX1R,aAAS5b,GACV2hC,iBAAkB,CACjBxpB,KAAMxY,OACNic,QAAS,UAEF,sBAAgB,CAC3BjT,KAAM,SACN8S,MAAOslB,GACP,MAAMtlB,GACF,MAAM,mBAAEgS,EAAkB,kBAAED,EAAiB,aAAEoU,GAAiB,eAAUnmB,GACpEkS,EAAW,eAAS,SAAU,SAAU,GAAO,QAAalS,EAAOgS,GACnEoU,EAAuB,eAAIpmB,EAAMwlB,cACjCa,EAAqB,eAAMrmB,EAAO,SAClCsmB,EAAiB,eAAeD,EAAoBD,GACpDG,EAAa,gBAAI,GACjBC,EAAa,eAAI,IACjBC,EAAc,eAAS,IAAM,OAAAC,EAAA,MAAeC,EAAmB/iC,MAAO8gC,KACtEkC,EAAe,eAAS,IAAM1B,GAAgBllB,EAAM8C,UACpD+jB,EAAsB,gBAAI,GAC1BC,EAAgB,eAAe,eAAM9mB,EAAO,QAAS6mB,GACrDE,EAAa,eAAI,MACjBC,EAAc,eAAI,MAClBC,EAAU,eAAI,OACd,UAAEC,GAAc,eAAU,UAC1BC,EAA0B,eAAS,KACrC,IAAIrjB,EACJ,OAAoC,QAA5BA,EAAK9D,EAAM2V,mBAAgC,IAAP7R,EAAgBA,EAAKojB,EAAUtjC,MAAM+xB,cAE/EyR,EAAuB,eAAcpnB,EAAO,CAAC,QAAS,YACtDqnB,EAAoB,eAAI,IACxBC,EAAyB,eAAI,IAC7BC,EAAmB,eAAI,IAAI5lB,KAC3B6lB,EAA2B,eAAS,KACtC,MAAM,eAAE3B,GAAmB7lB,EAC3B,QAAK6lB,GAEE,CAACjiC,GACGsE,OAAOkH,OAAOy2B,EAAejiC,GAAQ,CACxCA,aAIN6jC,EAAkB,eAAS,IACtBH,EAAuB1jC,MAAMw6B,OAAOiJ,EAAkBzjC,OAAOw6B,OAAOgJ,EAAqBxjC,QAE9F+iC,EAAqB,eAAS,KAChC,GAAI3mB,EAAMylB,OACN,OAAO2B,EAAqBxjC,MAE3B,CACD,MAAQA,MAAO8jC,GAAiBD,GACxB7jC,MAAO8xB,GAAY8Q,EAC3B,GAAK9Q,EAAQltB,QAAWwX,EAAM+V,WAGzB,CACD,MAAM,OAAEgP,GAAW/kB,EACnB,OAAO6kB,GAAc6C,EAAc3C,EAAQrP,GAJ3C,OAAOgS,KAQbC,EAAqB,eAAS,KAChC,GAAI3nB,EAAM8V,SAAU,CAChB,MAAQlyB,MAAOgkC,GAAWtB,EAC1B,IAAKvnB,MAAM8Y,QAAQ+P,GACf,MAAO,GACX,MAAMnC,EAASzlB,EAAMylB,QACb7hC,MAAOikC,GAAkBN,GACzB3jC,MAAOuhC,GAAcyB,GACrBhjC,MAAOkkC,GAA0BN,EACnC1kB,EAAU,GAiBhB,OAhBA8kB,EAAOjkC,QAASC,IACZ,GAAIuhC,EAAUjxB,IAAItQ,GAEdkf,EAAQva,KAAK48B,EAAUlhC,IAAIL,SAE1B,GAAI6hC,GAAUoC,EAAc3zB,IAAItQ,GAEjCkf,EAAQva,KAAKs/B,EAAc5jC,IAAIL,SAE9B,GAAIkkC,EAAuB,CAC5B,MAAMnQ,EAASmQ,EAAsBlkC,GACjC+zB,GACA7U,EAAQva,KAAKovB,MAIlB7U,EAEX,OAAO,OAELilB,EAAoB,eAAS,KAC/B,MAAQnkC,MAAOokC,GAAgB1B,EAC/B,IAAKtmB,EAAM8V,WAAa/W,MAAM8Y,QAAQmQ,GAAc,CAChD,MAAQpkC,MAAOuhC,GAAcyB,GACrBhjC,MAAOkkC,GAA0BN,EACzC,GAAoB,OAAhBQ,EACA,OAAO,KACX,IAAIpS,EAAiB,KAOrB,OANIuP,EAAUjxB,IAAI8zB,GACdpS,EAAiBuP,EAAUlhC,IAAI+jC,GAE1BhoB,EAAMylB,SACX7P,EAAiB2R,EAAiB3jC,MAAMK,IAAI+jC,IAExCpS,GAEHkS,GAAyBA,EAAsBE,IAChD,KAER,OAAO,OAELC,EAAW,eAAYjoB,IACvB,cAAEkoB,EAAa,kBAAEC,GAAsBF,EAC7C,SAASG,EAAcxkC,GACnB,MAAM,SAAEqiC,EAAU,iBAAkBoC,EAAc,cAAEtC,GAAkB/lB,GAChE,mBAAEsoB,EAAkB,kBAAEC,GAAsBN,EAC9ChC,GACA,OAAA59B,EAAA,MAAK49B,EAAUriC,GACfmiC,GACA,OAAA19B,EAAA,MAAK09B,EAAeniC,GACpBykC,GACA,OAAAhgC,EAAA,MAAKggC,EAAgBzkC,GACzBwiC,EAAqBxiC,MAAQA,EAC7B0kC,IACAC,IAEJ,SAASlQ,EAAOtrB,GACZ,MAAM,OAAEyY,GAAWxF,GACb,iBAAEwoB,GAAqBP,EACzBziB,GACA,OAAAnd,EAAA,MAAKmd,EAAQzY,GACjBy7B,IAEJ,SAASjQ,IACL,MAAM,QAAE7B,GAAY1W,EAChB0W,GACA,OAAAruB,EAAA,MAAKquB,GAEb,SAAS0B,EAAQrrB,GACb,MAAM,QAAEwY,GAAYvF,GACd,kBAAEyoB,GAAsBR,EAC1B1iB,GACA,OAAAld,EAAA,MAAKkd,EAASxY,GAClB07B,IAEJ,SAASC,EAAS9kC,GACd,MAAM,SAAEoiC,GAAahmB,EACjBgmB,GACA,OAAA39B,EAAA,MAAK29B,EAAUpiC,GAEvB,SAASg/B,EAAS71B,GACd,MAAM,SAAE4T,GAAaX,EACjBW,GACA,OAAAtY,EAAA,MAAKsY,EAAU5T,GAGvB,SAAS47B,IACL,IAAI7kB,EACJ,MAAM,OAAE2hB,EAAM,SAAE3P,GAAa9V,EAC7B,GAAIylB,EAAQ,CACR,MAAQ7hC,MAAOikC,GAAkBN,EACjC,GAAIzR,EACoC,QAAnChS,EAAK6jB,EAAmB/jC,aAA0B,IAAPkgB,GAAyBA,EAAGngB,QAASg0B,IAC7EkQ,EAAchzB,IAAI8iB,EAAO/zB,MAAO+zB,SAGnC,CACD,MAAMA,EAASoQ,EAAkBnkC,MAC7B+zB,GACAkQ,EAAchzB,IAAI8iB,EAAO/zB,MAAO+zB,KAMhD,SAASiR,IACAT,EAAkBvkC,QACnB4iC,EAAW5iC,MAAQ,GACnBijC,EAAoBjjC,OAAQ,EACxBoc,EAAM+V,YACN8S,MAIZ,SAASC,IACLjC,EAAoBjjC,OAAQ,EAEhC,SAASmlC,IACLvC,EAAW5iC,MAAQ,GAEvB,SAASolC,IACDb,EAAkBvkC,QAEjBkjC,EAAcljC,MAIVoc,EAAM+V,YAEP+S,IALJF,KASR,SAASK,GAAkBl8B,GACvB,IAAI+W,EAAIoB,GAC4E,QAA/EA,EAA8B,QAAxBpB,EAAKmjB,EAAQrjC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGqQ,eAA4B,IAAPjP,OAAgB,EAASA,EAAGyT,SAAS5rB,EAAE2rB,kBAGnI6N,EAAW3iC,OAAQ,EACnBy0B,EAAOtrB,GAEP+7B,KAEJ,SAASI,GAAmBn8B,GACxBqrB,EAAQrrB,GACRw5B,EAAW3iC,OAAQ,EAEvB,SAASulC,GAAgBp8B,GACrBw5B,EAAW3iC,OAAQ,EAEvB,SAASwlC,GAAer8B,GACpB,IAAI+W,GAC4B,QAA3BA,EAAKijB,EAAWnjC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGulB,IAAI1Q,SAAS5rB,EAAE2rB,kBAEnF6N,EAAW3iC,OAAQ,EACnBy0B,EAAOtrB,GAEP+7B,KAEJ,SAASQ,KACL,IAAIxlB,EACwB,QAA3BA,EAAKijB,EAAWnjC,aAA0B,IAAPkgB,GAAyBA,EAAG8V,QAChEkP,IAEJ,SAASS,GAAuBx8B,GAC5B,IAAI+W,EACAgjB,EAAcljC,SACoB,QAA3BkgB,EAAKijB,EAAWnjC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGulB,IAAI1Q,SAAS5rB,EAAEgX,UAEjF+kB,KAIZ,SAASU,GAAiC5lC,GACtC,IAAKmb,MAAM8Y,QAAQj0B,GACf,MAAO,GACX,GAAI4jC,EAAyB5jC,MAEzB,OAAOmb,MAAM0qB,KAAK7lC,GAEjB,CAED,MAAM,OAAE6hC,GAAWzlB,GACXpc,MAAOuhC,GAAcyB,EAC7B,GAAInB,EAAQ,CACR,MAAQ7hC,MAAOikC,GAAkBN,EACjC,OAAO3jC,EAAMmhC,OAAQ2E,GAAMvE,EAAUjxB,IAAIw1B,IAAM7B,EAAc3zB,IAAIw1B,IAGjE,OAAO9lC,EAAMmhC,OAAQ2E,GAAMvE,EAAUjxB,IAAIw1B,KAIrD,SAASC,GAAqBnK,GAC1BoK,GAAqBpK,EAAOe,SAEhC,SAASqJ,GAAqBjS,GAC1B,GAAIwQ,EAAkBvkC,MAClB,OACJ,MAAM,IAAE+hC,EAAG,OAAEF,GAAWzlB,EACxB,GAAI2lB,IAAQF,EAAQ,CAChB,MAAQ7hC,MAAOimC,GAAwBvC,EACjCwC,EAAqBD,EAAoB,IAAM,KACjDC,IACAzC,EAAkBzjC,MAAM2E,KAAKuhC,GAC7BxC,EAAuB1jC,MAAQ,IAMvC,GAHI6hC,GACA8B,EAAiB3jC,MAAMiR,IAAI8iB,EAAO/zB,MAAO+zB,GAEzC3X,EAAM8V,SAAU,CAChB,MAAMiU,EAAeP,GAAiClD,EAAe1iC,OAC/DsI,EAAQ69B,EAAaC,UAAWpmC,GAAUA,IAAU+zB,EAAO/zB,OACjE,IAAKsI,GAED,GADA69B,EAAa96B,OAAO/C,EAAO,GACvBy5B,IAAQF,EAAQ,CAChB,MAAMwE,EAAqBC,GAAsBvS,EAAO/zB,QACnDqmC,IACD5C,EAAkBzjC,MAAMqL,OAAOg7B,EAAoB,GACnDzD,EAAW5iC,MAAQ,UAK3BmmC,EAAaxhC,KAAKovB,EAAO/zB,OACzB4iC,EAAW5iC,MAAQ,GAEvBilC,KACAT,EAAc2B,OAEb,CACD,GAAIpE,IAAQF,EAAQ,CAChB,MAAMwE,EAAqBC,GAAsBvS,EAAO/zB,OAEpDyjC,EAAkBzjC,OADjBqmC,EACyB,CACtB5C,EAAkBzjC,MAAMqmC,IAIF,GAGlCE,KACArB,IACAV,EAAczQ,EAAO/zB,QAG7B,SAASsmC,GAAsBzJ,GAC3B,MAAM2J,EAAiB/C,EAAkBzjC,MACzC,OAAOwmC,EAAeJ,UAAWK,GAAkBA,EAAczmC,QAAU68B,GAE/E,SAAS6J,GAAmBv9B,GACnB+5B,EAAcljC,OACfglC,IAEJ,MAAM,MAAEhlC,GAAUmJ,EAAEgX,OACpByiB,EAAW5iC,MAAQA,EACnB,MAAM,IAAE+hC,EAAG,OAAEF,GAAWzlB,EAExB,GADA0oB,EAAS9kC,GACL+hC,IAAQF,EAAQ,CAChB,IAAK7hC,EAED,YADA0jC,EAAuB1jC,MAAQ,IAGnC,MAAM2mC,EAAqBvqB,EAAM4lB,SAAShiC,GACtCwjC,EAAqBxjC,MAAM4mC,KAAM7S,GAAWA,EAAO/zB,QAAU2mC,EAAmB3mC,QAChFyjC,EAAkBzjC,MAAM4mC,KAAM7S,GAAWA,EAAO/zB,QAAU2mC,EAAmB3mC,OAC7E0jC,EAAuB1jC,MAAQ,GAG/B0jC,EAAuB1jC,MAAQ,CAAC2mC,IAI5C,SAAS1R,GAAY9rB,GACjBA,EAAEulB,kBACF,MAAM,SAAEwD,GAAa9V,GAChB8V,GAAY9V,EAAM+V,YACnB+S,IAEJvQ,IAEI6P,EADAtS,EACc,GAGA,MAGtB,SAAS2U,GAAoB19B,GACpB,eAAUA,EAAG,WACdA,EAAEksB,iBAGV,SAASyR,GAAiB39B,GACtB61B,EAAS71B,GAIb,SAASi2B,GAAYj2B,GACjB,IAAI+W,EAAIoB,EAAIylB,EACZ,OAAQ59B,EAAEwL,MACN,IAAK,QACD,GAAIyH,EAAM+V,WACN,MAER,IAAK,QACL,IAAK,cACD,GAAI+Q,EAAcljC,MAAO,CACrB,MAAMgnC,EAAO3D,EAAQrjC,MACfinC,EAA6B,OAATD,QAA0B,IAATA,OAAkB,EAASA,EAAK7H,mBACvE8H,EACAlB,GAAqBkB,IAGrB/B,IACAqB,WAIJvB,IAEJ77B,EAAEksB,iBACF,MACJ,IAAK,UACD,GAAIjZ,EAAMiW,QACN,OACA6Q,EAAcljC,QACW,QAAxBkgB,EAAKmjB,EAAQrjC,aAA0B,IAAPkgB,GAAyBA,EAAGuf,QAEjE,MACJ,IAAK,YACD,GAAIrjB,EAAMiW,QACN,OACA6Q,EAAcljC,MACW,QAAxBshB,EAAK+hB,EAAQrjC,aAA0B,IAAPshB,GAAyBA,EAAGge,OAG7D0F,IAEJ,MACJ,IAAK,SACDE,IAC4B,QAA3B6B,EAAK5D,EAAWnjC,aAA0B,IAAP+mC,GAAyBA,EAAG/Q,QAChE,OAIZ,SAASqJ,GAAcl2B,GACnB,OAAQA,EAAEwL,MACN,IAAK,QACIyH,EAAM+V,YACPhpB,EAAEksB,iBAEN,MACJ,IAAK,UACL,IAAK,YACDlsB,EAAEksB,iBACF,OAGZ,SAASkR,KACL,IAAIrmB,EACwB,QAA3BA,EAAKijB,EAAWnjC,aAA0B,IAAPkgB,GAAyBA,EAAG8V,QAEpE,SAASiP,KACL,IAAI/kB,EACwB,QAA3BA,EAAKijB,EAAWnjC,aAA0B,IAAPkgB,GAAyBA,EAAGkW,aAEpE,SAAS8Q,KACL,IAAIhnB,EACyB,QAA5BA,EAAKkjB,EAAYpjC,aAA0B,IAAPkgB,GAAyBA,EAAGgnB,eAcrE,OAZAnC,IACA,eAAM,eAAM3oB,EAAO,WAAY2oB,GAC/B,eAAMhC,EAAoB,KACjBG,EAAcljC,OAEd,eAASknC,MAElB,eAAMxE,EAAgB,KACbQ,EAAcljC,OAEd,eAASknC,MAEX,CACHlY,gBAAiBZ,EACjBa,eAAgBd,EAChBgZ,UAAW5E,EACXhF,SAAUsF,EACVuE,UAAW,iBACXjE,aACAE,UACAvR,QAAS8Q,EACTyE,iBAAkBpE,EAClBqE,WAAYpE,EACZqE,WAAY,eAAcnrB,GAC1BorB,kBAAmBhF,EACnB4B,YAAa1B,EACbU,cACAqE,qBAAsBlE,EACtBvR,eAAgBmS,EAChBlS,gBAAiB8R,EACjB2D,WAAYpD,EACZqD,eAAgBpD,EAChB/R,QAASmQ,EACT4C,mBACAC,kBACAE,oBACAN,qBACAwC,aAAc7B,GACdzQ,mBAAoB0Q,GACpBU,sBACAzR,eACAoQ,qBACAC,sBACAjG,iBACAD,eACA8H,gBACA/B,kBACAQ,0BACAmB,oBACAe,gBAAiBzI,GACjB0I,kBAAmBzI,GACnBwH,uBACA3P,YAAa5I,EACbY,QAAS,eAAS,KACd,MAAQ/f,MAAM,cAAE44B,IAAoBzZ,EAAStuB,MAC7C,MAAO,CACH,oBAAqB+nC,OAKrC,SACI,MAAM,OAAEtmB,EAAM,gBAAEuN,GAAoBloB,KACpC,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAUqlB,EAAH,WACtB,eAAE,OAAS,KAAM,CACbzS,QAAS,IAAM,CACX,eAAE,OAAS,KAAM,CACbA,QAAS,IAAO,cAAD,CAAG,EAAoB,CAAEpS,IAAK,aAAcqlB,UAAWR,EAAiBuD,UAAWzrB,KAAKyrB,UAAWM,YAAa/rB,KAAK+rB,YAAarF,SAAU1mB,KAAKmoB,eAAgB4C,OAAQ/qB,KAAKwgC,WAAYxV,QAAShrB,KAAKgrB,QAASC,YAAajrB,KAAK2gC,qBAAsBzV,eAAgBlrB,KAAKkrB,eAAgBC,gBAAiBnrB,KAAKmrB,gBAAiBC,SAAUprB,KAAKorB,SAAUO,UAAW3rB,KAAK2rB,UAAWO,YAAalsB,KAAKksB,YAAab,WAAYrrB,KAAKqrB,WAAYC,UAAWtrB,KAAKsrB,UAAWjF,SAAUrmB,KAAK6gC,eAAgB1a,KAAMnmB,KAAK4gC,WAAY3M,MAAOj0B,KAAKowB,YAAYloB,MAAMg5B,kBAAmB/M,eAAgBn0B,KAAKowB,YAAYgE,cAAc8M,kBAAmB3V,QAASvrB,KAAKurB,QAASG,QAAS1rB,KAAK0rB,QAASjD,QAASzoB,KAAKs+B,mBAAoBxS,eAAgB9rB,KAAKwuB,mBAAoBvC,eAAgBjsB,KAAK4/B,mBAAoB5T,QAAShsB,KAAKmuB,YAAarT,OAAQ9a,KAAKu+B,kBAAmB1jB,QAAS7a,KAAKw+B,mBAAoB3S,UAAW7rB,KAAKu4B,cAAe3M,QAAS5rB,KAAKs4B,gBAEx7B,eAAE,OAAW,CAAEj1B,IAAK,cAAe6sB,KAAMlwB,KAAKwgC,WAAYt9B,GAAIlD,KAAKygC,WAAYU,iBAAkBnhC,KAAKygC,aAAe,OAAcW,MAAOC,eAAgBrhC,KAAKqgC,UAAWlrB,MAAOnV,KAAKo7B,oBAAsB,cAAWvhC,EAAWob,SAAU,SAAU8e,UAAW/zB,KAAK+zB,WAAa,CAC/Qte,QAAS,IAAO,cAAD,CAAG,OAAY,CAAEjT,KAAM,8BAA+B8+B,OAAQthC,KAAKsgC,UAAWiB,QAASvhC,KAAKq+B,iBAAmB,CAC1H5oB,QAAS,KAAOzV,KAAKwgC,YACS,SAA1BxgC,KAAKw7B,mBACL,eAAe,eAAE,EAAqB,CAAEn4B,IAAK,UAAWszB,cAAe32B,KAAKo7B,qBAAuBp7B,KAAK22B,cAAe9zB,MAAUqlB,EAAH,eAAkCQ,UAAWR,EAAiB0O,WAAW,EAAMF,aAAa,EAAMzC,MAAOj0B,KAAKowB,YAAYloB,MAAMs5B,mBAAoBrN,eAAgBn0B,KAAKowB,YAAYgE,cAC1SoN,mBAAoB/K,SAAUz2B,KAAKy2B,SAAUrL,SAAUprB,KAAKorB,SAAUjF,KAAM,SAAU8P,aAAcj2B,KAAKi2B,aAAc/J,YAAalsB,KAAKksB,YAAahzB,MAAO8G,KAAKs9B,YAAa5lC,MAAOsI,KAAKooB,QAAS0O,SAAU92B,KAAK8gC,aAAc7qB,SAAUjW,KAAKggC,iBAAkBnlB,QAAS7a,KAAKy+B,gBAAiB3jB,OAAQ9a,KAAK0+B,eAAgB9S,QAAS5rB,KAAK+gC,gBAAiBlV,UAAW7rB,KAAKghC,kBAAmBnK,SAAU72B,KAAK4+B,iBAAkBlK,YAAa10B,KAAK+/B,oBAAqB7P,KAAMlwB,KAAKwgC,YAAc7lB,GAAmC,SAA1B3a,KAAKw7B,iBAClf,CACE,CAAC,OAAOx7B,KAAKwgC,YACb,CAACiB,EAAA,KAAczhC,KAAK6+B,yBAEtB,CAAC,CAAC4C,EAAA,KAAczhC,KAAK6+B,sC,oCCzlB3D,gBACe,sBAAgB,CAC3Br8B,KAAM,cACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BAC5D,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAKjZ,KAAM,OAAQ,YAAa,WACrE,eAAE,IAAK,CAAEA,KAAM,eAAgB,YAAa,WACxC,eAAE,OAAQ,CAAEE,EAAG,2jB,oCCPnC,0HAIA,MAAM8+B,EAAa,CACfl/B,KAAMhJ,OACNN,MAAO,CACH8Y,KAAM,CAACxY,OAAQ1B,QACf2d,QAAS,MAEbkR,QAAS,CACL3U,KAAMwD,QACNC,aAAS5b,GAEb8nC,eAAgBnsB,QAChB6Q,SAAU,CACNrU,KAAMwD,QACNC,aAAS5b,GAEbssB,KAAM3sB,OACN,mBAAoB,CAAC0c,SAAU7B,OAE/ButB,aAAc,CACV5vB,KAAMwD,QACN2R,UAAW,KACP,eAAK,QAAS,iEACP,GAEX1R,aAAS5b,IAGJgoC,EAAyBC,OAAO,cAC7C,SAASr+B,EAAM6R,GACX,MAAMioB,EAAW,eAAYjoB,EAAO,CAChC,WAAWysB,GACP,MAAM,KAAE5b,GAAS7Q,EACjB,QAAazb,IAATssB,EACA,OAAOA,EACX,GAAI6b,EAAa,CACb,MAAQxE,eAAiBtkC,MAAO0nC,IAAiBoB,EACjD,QAAmBnoC,IAAf+mC,EACA,OAAOA,EAGf,OAAImB,EACOA,EAAUnB,WAAW1nC,MAEzB,UAEX,eAAe6oC,GACX,QAAIzsB,EAAM+Q,cAEU,OAAhB2b,QAAwC,IAAhBA,OAAyB,EAASA,EAAYC,YAAY/oC,WAEpE,OAAd6oC,QAAoC,IAAdA,OAAuB,EAASA,EAAU1b,SAASntB,YAK/E,cAAEskC,EAAa,kBAAEC,GAAsBF,EACvC2E,EAAW,eAAI,MACflV,EAAW,eAAI,MACfgV,EAAc,eAAOH,EAAwB,MAC7CM,EAAyB,eAAI7sB,EAAMqsB,gBACnCS,EAAuB,eAAM9sB,EAAO,WACpC+sB,EAAmB,eAAeD,EAAsBD,GACxDG,EAAuB,eAAQ,IAC7BN,EACOA,EAAYjN,SAAS77B,QAAUoc,EAAMpc,MACzCmpC,EAAiBnpC,OAEtBqpC,EAAgB,eAAQ,KAC1B,MAAM,KAAE//B,GAAS8S,EACjB,YAAazb,IAAT2I,EACOA,EACPw/B,EACOA,EAAYQ,QAAQtpC,WAD/B,IAGEupC,EAAW,gBAAI,GACrB,SAASC,IACL,GAAIV,EAAa,CACb,MAAM,cAAEtE,GAAkBsE,GACpB,MAAE9oC,GAAUoc,EAClB,eAAKooB,EAAexkC,OAEnB,CACD,MAAQ,mBAAoBypC,GAAkBrtB,GACxC,kBAAEuoB,EAAiB,mBAAED,GAAuBL,EAC9CoF,GACA,eAAKA,GAAe,GACxB9E,IACAD,IACAuE,EAAuBjpC,OAAQ,GAGvC,SAAS0pC,IACDnF,EAAkBvkC,OAEjBopC,EAAqBppC,OACtBwpC,IAGR,SAASG,IACLD,IAEJ,SAASE,IACLL,EAASvpC,OAAQ,EAErB,SAAS6pC,IACLN,EAASvpC,OAAQ,EAErB,SAASo/B,EAAYj2B,GACjB,IAAI+W,EACJ,OAAQ/W,EAAEwL,MACN,IAAK,QACL,IAAK,cACyB,QAAzBuL,EAAK8oB,EAAShpC,aAA0B,IAAPkgB,GAAyBA,EAAGrc,SAG1E,SAASuxB,IACDmP,EAAkBvkC,OAEtB62B,WAAW,KACP,IAAI3W,EAAIoB,GACwB,QAAzBpB,EAAK4T,EAAS9zB,aAA0B,IAAPkgB,OAAgB,EAASA,EAAG6U,SAASvxB,SAASsmC,iBACxD,QAAzBxoB,EAAK0nB,EAAShpC,aAA0B,IAAPshB,GAAyBA,EAAG0U,SAEnE,GAEP,SAASzH,IACL,IAAIrO,EACsB,QAAzBA,EAAK8oB,EAAShpC,aAA0B,IAAPkgB,GAAyBA,EAAGrc,QAElE,MAAO,CACHmrB,gBAAiB8Z,EACXA,EAAY1a,mBACZ,eAAUhS,GAAOgS,mBACvB4a,WACAlV,WACAiW,WAAYV,EACZ1B,eAAgBpD,EAChByF,oBAAqBf,EACrBgB,kBAAmBb,EACnBpT,MAAOuT,EACP7B,WAAYpD,EACZqF,yBACAC,uBACAC,wBACAzK,cACAhK,kBACA7G,eAGRhkB,EAAM6R,MAAQosB,EACC,U,kHC1JF0B,EAAa,SAAApoB,GACxB,IAAMqoB,EAAUroB,EAAQtf,MAAM,KAE9B,OAAO2nC,EAAQtlC,KAAK,MAGTulC,EAAiB,SAAAtoB,GAC5B,IAAM/gB,EAAO,IAAIghB,KAAKD,GAASE,qBACzBC,EAAO,IAAIF,KAAKD,GAASI,qBAEzBC,EAAW,GAAH,OAAM+nB,EAAWnpC,GAAjB,YAA0BkhB,GAExC,OAAOE,I,gKCZM,GACXkoB,eAAgB,MAChBC,gBAAiB,OACjBC,eAAgB,OAChBC,eAAgB,MAChBC,gBAAiB,OACjBC,eAAgB,OAChBC,WAAY,OACZC,WAAY,OACZC,iBAAkB,aAClBC,aAAc,SACdC,cAAe,WACfC,mBAAoB,a,wBCZT,GACX3hB,QAAS,YCGb,MAAM,EAAQ9c,IACV,MAAM,aAAEQ,EAAY,WAAEk+B,EAAU,UAAErhB,GAAcrd,EAChD,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAa,CAAEuB,aAAcA,EAAcm+B,UAAWD,EAAY1jB,MAAO,qBAAsBwD,UAAWnB,KAE/IuhB,EAAe,eAAY,CAC7B7hC,KAAM,UACNyF,OAAQ,OACRC,MAAO,CACHgsB,QAAS,QAEb7rB,KAAI,IAEO,QCbf,MAAMi8B,EAAgB,eAAY,CAC9B9hC,KAAM,WACNyF,OAAQ,OACRC,MAAO,CACHq8B,QAAS,KAGF,Q,YCVA,GACXC,UAAW,OACXC,WAAY,OACZC,UAAW,OACXC,aAAc,SCDX,MAAM,EAAQl/B,IACjB,MAAM,UAAEqd,EAAS,mBAAEhd,EAAkB,UAAE8+B,EAAS,WAAEC,EAAU,aAAEzlB,EAAY,kBAAErZ,EAAiB,YAAEC,EAAW,aAAEL,EAAY,WAAED,EAAU,cAAE+Z,EAAa,eAAEC,EAAc,cAAEC,EAAa,kBAAEwD,GAAsB1d,EAC1M,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAE+a,gBACvDC,iBACAC,gBAAe1Z,aAAckd,EAAmB1C,MAAOqC,EAAWe,aAAcle,EAAcmrB,cAAehrB,EAAoBg/B,qBAAsBh/B,EAAoBi/B,iBAAkBH,EAAWI,sBAAuBH,EAAYI,wBAAyB7lB,EAAc8lB,eAAgBpiB,EAAWqiB,uBAAwBp/B,EAAmBq/B,8BAA+Br/B,EAAmBie,OAAQ,aAAahe,EAAeq/B,eAAgB,aAAar/B,EAAes/B,sBAAuB,aAAat/B,EAAeu/B,cAAe,aAAa5/B,EAAgByrB,YAAa,aAAazrB,EAAgBsrB,eAAgB,aAAa,eAAYtrB,EAAc,CAAEwe,MAAO,KAAUF,UAAWve,EAAYK,kBAAmBA,KAEztBy/B,EAAgB,CAClBhjC,KAAM,WACNyF,OAAQ,OACRI,KAAI,GAEO,Q,gDCFR,MAAM,EAAQ5C,IACjB,MAAM,UAAEm/B,EAAS,WAAEC,EAAU,aAAEzlB,EAAY,WAAE1Z,EAAU,WAAE+/B,EAAU,iBAAEC,EAAgB,gBAAEC,EAAe,UAAEC,EAAS,aAAEjgC,EAAY,iBAAEkgC,EAAgB,aAAE5/B,EAAY,WAAE6/B,EAAU,cAAErmB,EAAa,eAAEC,EAAc,cAAEC,EAAa,aAAEL,EAAY,YAAEO,EAAW,gBAAEN,GAAoB9Z,EAC1Q,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAEic,mBAAoBrB,EAAcwmB,aACzF7/B,eACAwZ,gBACAC,iBACAC,gBAAe3Z,YAAa,eAAU4+B,EAAWtlB,GAAeymB,aAAc,eAAUnB,EAAWe,GAAkBK,QAAS,eAAUpB,EAAWc,GAAmBO,aAAc,eAAU,eAAUrB,EAAWc,GAAmBC,GAAkBO,QAAStB,EAAWuB,YAAazgC,EAAY0gC,YAAaX,EAAYY,aAAcR,EAAkBS,mBAAoBX,EAAiBY,YAAaX,EAAWY,kBAAmB7gC,EAE9a8gC,iBAAkB,eAAU5B,EAAYvlB,GAAeonB,kBAAmB,eAAU7B,EAAYc,GAAkBgB,aAAc,eAAU9B,EAAYa,GAAmBkB,kBAAmB,eAAU,eAAU/B,EAAYa,GAAmBC,GAAkBkB,aAAchC,EAE/QiC,mBAAoB,eAAU1nB,EAAcE,GAAeynB,oBAAqB,eAAU3nB,EAAcumB,GAAkBqB,eAAgB,eAAU5nB,EAAcsmB,GAAmBuB,oBAAqB,eAAU,eAAU7nB,EAAcsmB,GAAmBC,GAAkBuB,eAAgB9nB,EAAc+nB,gBAAiB,6CAA8CC,eAAgB,4CAE9XhmB,aAAczb,EAAcwZ,YAAaU,EAAawnB,eAAgB9nB,KAExE+nB,EAAiB,eAAY,CAC/B9kC,KAAM,YACNyF,OAAQ,OACRC,MAAO,CACHq/B,OAAQ,OACRC,SAAU,EACVC,MAAO,OACPC,WAAY,OACZpmB,UAAW,OACXC,MAAO,OACP2S,QAAS,OACTyT,SAAU,GAEdt/B,KAAI,IAEO,Q,4GCxCC,iBAAE,MAAO,CAAE5F,QAAS,YAAaI,MAAO,cACpD,eAAE,OAAQ,CAAED,EAAG,wRCDH,iBAAE,MAAO,CAAEH,QAAS,cAAeI,MAAO,aACtD,eAAE,OAAQ,CAAED,EAAG,kICEZ,MAAMglC,EAA4B9F,OAAO,iBAC1C+F,EAAqB,CACvBroC,IAAK1H,OACL8f,IAAK9f,OACLquB,KAAM3sB,OACNN,MAAOmb,MACPymB,aAAc,CACV9oB,KAAMqC,MACNoB,QAAS,MAEb4Q,SAAU,CACNrU,KAAMwD,QACNC,aAAS5b,GAEb,iBAAkB,CAACqc,SAAU7B,OAC7BgnB,cAAe,CAACnlB,SAAU7B,OAE1BknB,SAAU,CACNvpB,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,IAGF,qBAAgB,CAC3B2I,KAAM,gBACN8S,MAAOuyB,EACP,MAAMvyB,GACF,MAAM,mBAAEgS,GAAuB,eAAUhS,GACnCioB,EAAW,eAAYjoB,IACvB,cAAEkoB,EAAa,kBAAEC,GAAsBF,EACvC7B,EAAuB,eAAIpmB,EAAMwlB,cACjCa,EAAqB,eAAS,IAAMrmB,EAAMpc,OAC1C0iC,EAAiB,eAAeD,EAAoBD,GACpDoM,EAAe,eAAS,KAC1B,IAAI1uB,EACJ,OAAwC,QAA/BA,EAAKwiB,EAAe1iC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGtb,SAAW,IAErFo3B,EAAc,eAAS,IACrB7gB,MAAM8Y,QAAQyO,EAAe1iC,OACtB,IAAI0+B,IAAIgE,EAAe1iC,OAE3B,IAAI0+B,KAEf,SAASmQ,EAAephB,EAASqhB,GAC7B,MAAM,kBAAEnK,EAAiB,mBAAED,GAAuBL,GAC5C,SAAEhC,EAAU,iBAAkBoC,EAAc,cAAEtC,GAAkB/lB,EACtE,GAAIjB,MAAM8Y,QAAQyO,EAAe1iC,OAAQ,CACrC,MAAM+uC,EAAa5zB,MAAM0qB,KAAKnD,EAAe1iC,OACvCsI,EAAQymC,EAAW3I,UAAWpmC,GAAUA,IAAU8uC,GACpDrhB,GACMnlB,IACFymC,EAAWpqC,KAAKmqC,GACZ3M,GACA,OAAA19B,EAAA,MAAK09B,EAAe4M,GACpBtK,GACA,OAAAhgC,EAAA,MAAKggC,EAAgBsK,GACzBpK,IACAD,IACAlC,EAAqBxiC,MAAQ+uC,EAEzB1M,GACA,OAAA59B,EAAA,MAAK49B,EAAU0M,KAIlBzmC,IACDymC,EAAW1jC,OAAO/C,EAAO,GACrB65B,GACA,OAAA19B,EAAA,MAAK09B,EAAe4M,GACpBtK,GACA,OAAAhgC,EAAA,MAAKggC,EAAgBsK,GACrB1M,GACA,OAAA59B,EAAA,MAAK49B,EAAU0M,GACnBvM,EAAqBxiC,MAAQ+uC,EAC7BpK,IACAD,UAKJjX,GACI0U,GACA,OAAA19B,EAAA,MAAK09B,EAAe,CAAC2M,IACrBrK,GACA,OAAAhgC,EAAA,MAAKggC,EAAgB,CAACqK,IACtBzM,GACA,OAAA59B,EAAA,MAAK49B,EAAU,CAACyM,IACpBtM,EAAqBxiC,MAAQ,CAAC8uC,GAC9BnK,IACAD,MAGIvC,GACA,OAAA19B,EAAA,MAAK09B,EAAe,IACpBsC,GACA,OAAAhgC,EAAA,MAAKggC,EAAgB,IACrBpC,GACA,OAAA59B,EAAA,MAAK49B,EAAU,IACnBG,EAAqBxiC,MAAQ,GAC7B2kC,IACAD,KAaZ,OATA,eAAQgK,EAA2B,CAC/BM,gBAAiBJ,EACjBK,OAAQ,eAAM7yB,EAAO,OACrB8yB,OAAQ,eAAM9yB,EAAO,OACrB4f,YAAaA,EACb+M,YAAaxE,EACbD,cAAeA,EACfuK,mBAEG,CACH7f,gBAAiBZ,IAGzB,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEzkB,MAAU7C,KAAKkoB,gBAAR,mBAA4CloB,KAAK2a,W,wBCtGpE,iBAAE,CAAC,eAAG,WAAY,qPAU7B,CAAC,eAAE,UAAW,CAAC,eAAG,eAAgB,CAAC,eAAG,SAAU,CAClDqJ,OAAQ,8BACF,eAAE,uBAAwB,CAAC,eAAG,eAAgB,CAAC,eAAG,SAAU,CAClEA,OAAQ,sBACRogB,UAAW,gCACL,eAAG,eAAgB,CAAC,eAAG,eAAgB,CAC7C5d,gBAAiB,uCACb,eAAG,UAAW,CAAC,eAAG,eAAgB,CACtCA,gBAAiB,wBAChB,CAAC,eAAG,gBAAiB,CACxB,eAAE,cAAe,iEAIN,eAAG,gBAAiB,CAAC,eAAG,eAAgB,CAAC,eAAG,gBAAiB,CAAC,eAAE,cAAe,6CAGrF,eAAE,aAAc,kDAGV,eAAG,yBAA0B,CAAC,eAAE,uBAAwB,CAAC,eAAG,eAAgB,CAAC,eAAG,SAAU,CACnGxC,OAAQ,wBACRogB,UAAW,gCACL,eAAG,eAAgB,mFAIvB,CAAC,eAAG,SAAU,CAChBpgB,OAAQ,8BACF,eAAG,WAAY,CACrBsC,OAAQ,eACP,CAAC,eAAG,UAAW,CAAC,eAAG,eAAgB,yDAElC,CAAC,eAAG,SAAU,CAChBtC,OAAQ,mCACN,eAAG,gBAAiB,CAAC,eAAE,0BAA2B,CACpDthB,KAAM,mDACE,eAAG,eAAgB,iDAEzB,CAAC,eAAG,SAAU,CAChBshB,OAAQ,2BACN,eAAG,gBAAiB,CAAC,eAAE,0BAA2B,CACpDthB,KAAM,yCACA,eAAG,QAAS,CAClB+d,MAAO,iCACH,eAAG,eAAgB,0PAUrB,CAAC,eAAG,SAAU,8MAWb,eAAG,gBAAiB,qJASrB,CAAC,eAAE,0BAA2B,qPAU7B,eAAqB,CACxBpI,KAAM,MACNC,IAAK,YACC,eAAG,QAAS,+HAKhB,CAAC,eAAE,UAAW,CAChBlD,QAAS,aAEX,eAAY,eAAG,WAAY,wEAG3B,eAAc,eAAG,WAAY,4EC5H7B,MAAMizB,EAAgB7qC,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAE6Q,KAAM3sB,OAAQmtB,QAAS,CACxF3U,KAAMwD,QACNC,aAAS5b,GACV8nC,eAAgBnsB,QAAStc,MAAO,CAACM,OAAQ1B,QAASuuB,SAAU,CAC3DrU,KAAMwD,QACNC,aAAS5b,GACVyuC,cAAe9yB,QAASgJ,MAAOhlB,OAAQo9B,UAAW,CACjD5kB,KAAMwD,QACNC,SAAS,GACV,mBAAoB,CAACS,SAAU7B,OAAQ2S,gBAAiB,CAAC9Q,SAAU7B,OAEtEk0B,mBAAoB/yB,QAEpB+lB,SAAU,CACNvpB,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KACP,OAAAqhB,EAAA,MAAK,WAAY,uEACV,GAEX/yB,aAAS5b,KAEF,qBAAgB,CAC3B2I,KAAM,WACN8S,MAAO+yB,EACP,MAAM/yB,GACF,MAAM,mBAAEgS,GAAuB,eAAUhS,GACnCioB,EAAW,eAAYjoB,EAAO,CAChC,WAAWysB,GACP,MAAM,KAAE5b,GAAS7Q,EACjB,QAAazb,IAATssB,EACA,OAAOA,EACX,GAAIsiB,EAAgB,CAChB,MAAQvvC,MAAO0nC,GAAe6H,EAAejL,cAC7C,QAAmB3jC,IAAf+mC,EACA,OAAOA,EAGf,GAAImB,EAAW,CACX,MAAM,WAAEnB,GAAemB,EACvB,QAAmBloC,IAAf+mC,EACA,OAAOA,EAAW1nC,MAE1B,MAAO,UAEX,eAAe6oC,GACX,MAAM,SAAE1b,GAAa/Q,EACrB,QAAiBzb,IAAbwsB,EACA,OAAOA,EACX,GAAIoiB,EAAgB,CAChB,GAAIA,EAAexG,YAAY/oC,MAC3B,OAAO,EACX,MAAQivC,QAAUjvC,MAAO0e,GAAK,gBAAEswB,GAAoBO,EACpD,QAAY5uC,IAAR+d,GACAswB,EAAgBhvC,OAAS0e,IACxB8wB,EAAmBxvC,MACpB,OAAO,EAEX,MAAQkvC,QAAUlvC,MAAOsG,IAAUipC,EACnC,QAAY5uC,IAAR2F,GACA0oC,EAAgBhvC,OAASsG,GACzBkpC,EAAmBxvC,MACnB,OAAO,EAGf,QAAI6oC,GACOA,EAAU1b,SAASntB,UAKhC,kBAAEukC,EAAiB,cAAED,GAAkBD,EACvCkL,EAAiB,eAAOb,EAA2B,MACnDzF,EAAyB,eAAI7sB,EAAMqsB,gBACnCS,EAAuB,eAAM9sB,EAAO,WACpC+sB,EAAmB,eAAeD,EAAsBD,GACxDuG,EAAqB,eAAQ,KAC/B,GAAID,EAAgB,CAChB,MAAME,EAAgBF,EAAevT,YAAYh8B,MACjD,SAAIyvC,QAAiC9uC,IAAhByb,EAAMpc,QAChByvC,EAAcn/B,IAAI8L,EAAMpc,OAKnC,OAAOmpC,EAAiBnpC,QAG1BsuB,EAAW,eAAS,WAAY,WAAY,EAAO,EAAelS,EAAOgS,GAC/E,SAASsb,EAAOvgC,GACZ,GAAIomC,QAAkC5uC,IAAhByb,EAAMpc,MACxBuvC,EAAeV,gBAAgBW,EAAmBxvC,MAAOoc,EAAMpc,WAE9D,CACD,MAAM,SAAEqiC,EAAU,mBAAoBqN,EAAc,gBAAE5hB,GAAoB1R,GACpE,kBAAEuoB,EAAiB,mBAAED,GAAuBL,EAC5CsL,GAAeH,EAAmBxvC,MACpC0vC,GACA,OAAAjrC,EAAA,MAAKirC,EAAgBC,EAAaxmC,GAClC2kB,GACA,OAAArpB,EAAA,MAAKqpB,EAAiB6hB,EAAaxmC,GACnCk5B,GACA,OAAA59B,EAAA,MAAK49B,EAAUsN,GACnBhL,IACAD,IACAuE,EAAuBjpC,MAAQ2vC,GAGvC,SAASphB,EAAYplB,GACZo7B,EAAkBvkC,OACnB0pC,EAAOvgC,GAGf,SAASi2B,EAAYj2B,GACjB,IAAIo7B,EAAkBvkC,MAEtB,OAAQmJ,EAAEwL,MACN,IAAK,QACL,IAAK,QACL,IAAK,cACD+0B,EAAOvgC,IAGnB,SAASk2B,EAAcl2B,GACnB,OAAQA,EAAEwL,MACN,IAAK,QACDxL,EAAEksB,kBAGd,OAAO/wB,OAAOkH,OAAO64B,EAAU,CAC3BrV,gBAAiBZ,EACjBuZ,eAAgBpD,EAChBqL,gBAAiBJ,EACjBtY,YAAa5I,EACbC,cACA6Q,cACAC,gBACAnQ,QAAS,eAAS,KACd,MAAQlvB,MAAO0nC,GAAepD,GACtBv1B,QAAQ,qBAAEogB,GAAwBhgB,MAAM,aAAEpC,EAAY,MAAEwa,EAAK,aAAEoD,EAAY,cAAEiN,EAAa,iBAAEiU,EAAgB,sBAAEC,EAAqB,wBAAEC,EAAuB,eAAEC,EAAc,uBAAEC,EAAsB,OAAEnhB,EAAM,YAAEoN,EAAW,eAAEiU,EAAc,cAAEE,EAAa,eAAEtU,EAAc,UAAEhN,EAAS,kBAAEle,EAAiB,8BAAEq/B,EAA6B,qBAAEN,EAAoB,sBAAEQ,EAAqB,aAAEX,EAAc,CAAC,eAAU,WAAY/D,IAAc16B,EAAU,CAAC,eAAU,OAAQ06B,IAAcza,IAAWqB,EAAStuB,MAC9e,MAAO,CACH,SAAUitB,EACV,WAAYkC,EACZ,kBAAmBpiB,EACnB,WAAY+d,EACZ,mBAAoBuhB,EACpB,iBAAkBnU,EAClB,oBAAqBiU,EACrB,4BAA6BC,EAC7B,qBAAsBrU,EACtB,UAAWxQ,EACX,kBAAmBoD,EACnB,uBAAwBkhB,EACxB,6BAA8BC,EAC9B,+BAAgCC,EAChC,mBAAoBnU,EACpB,2BAA4BgU,EAC5B,eAAgB7gB,EAChB,wBAAyBle,EACzB,qBAAsBm/B,EACtB,8BAA+BC,EAC/B,sCAAuCC,EACvC,cAAel/B,EACf,kBAAmBy+B,QAKnC,SACI,MAAM,OAAEhqB,EAAM,gBAAEmuB,EAAe,eAAEjI,EAAc,cAAEyH,EAAa,mBAAEC,EAAkB,QAAEngB,EAAO,MAAE5J,EAAK,gBAAE0J,EAAe,UAAE0O,EAAS,YAAE0B,EAAW,cAAEC,EAAa,YAAE9Q,GAAgBznB,KAC5K,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAO,CACfqlB,EAAH,YACA,CACI,CAAIA,EAAH,sBAAyC4gB,EAC1C,CAAI5gB,EAAH,uBAA0C2Y,EAC3C,CAAI3Y,EAAH,4BAA+CogB,EAChD,CAAIpgB,EAAH,2BAA8CqgB,IAEpDxtB,SAAU8lB,IAAmBjK,OAAY/8B,EAAY,EAAGnC,MAAO0wB,EAASwD,QAAS0M,EAAazM,UAAW0M,EAAe9P,QAAShB,EAAaiN,YAAa,KAC1J,MAAMnG,EAAkBlsB,IACpBA,EAAEksB,kBAENrM,OAAO6mB,iBAAiB,cAAexa,GACvCwB,WAAW,KACP7N,OAAO8mB,oBAAoB,cAAeza,IAC3C,KAEP,eAAE,MAAO,CAAE1rB,MAAUqlB,EAAH,iBACd,eAAE,OAAuB,KAAM,CAC3BzS,QAAS,IAAMzV,KAAKsoC,cAAiB,cAAD,CAAG,MAAO,CAAEnvC,IAAK,gBAAiB0J,MAAUqlB,EAAH,kBAAsC+gB,GAAc,cAAD,CAAG,MAAO,CAAE9vC,IAAK,QAAS0J,MAAUqlB,EAAH,kBAAsCghB,KAE3M,eAAE,MAAO,CAAErmC,MAAUqlB,EAAH,2BACZ,OAAV1J,GAAkB7D,EAAOlF,QAAW,cAAD,CAAG,OAAQ,CAAE5S,MAAUqlB,EAAH,oBAAwC,eAAWvN,EAAQ,eAAW9gB,EAAW,IAAM,CAAC2kB,KAAY,S,YCnMvK,MAAM2qB,GAAe3rC,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,QAAmB,OAAS4Q,OAClE,sBAAgB,CAC3B9S,KAAM,UACN8S,MAAO6zB,GACP,MAAM7zB,GACF,MAAMkS,EAAW,eAAS,UAAW,eAAW3tB,EAAW,EAAcyb,GACnE8zB,EAAa,eAAI,MACjBC,EAAuB,CACzB,eAEID,EAAWlwC,MAAMknC,gBAErB,QAAQlQ,GAEJkZ,EAAWlwC,MAAMowC,QAAQpZ,KAGjC,OAAO1yB,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI2kC,GAAuB,CAAED,aAAYhZ,YAAa5I,EAAU+hB,sBAAuB,eAAS,IACpH/hB,EAAStuB,MAAMmP,SAGlC,SACI,MAAM,YAAE+nB,EAAW,mBAAEoZ,GAAuBxpC,KAC5C,OAAO,eAAE,OAAUxC,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI1E,KAAKypC,QAAS,CAAExV,MAAO7D,EAAYloB,MAAMgsB,QAASC,eAAgB/D,EAAYgE,cAAcF,QAASwV,sBAAuB1pC,KAAKupC,sBAAuBC,mBAAoBA,EAAmB9V,OAAO,WAAYrwB,IAAK,eAAiBrD,KAAK2a,WC5BzR,kBAAG,WAAY,CAC5B3F,SAAU,UACT,CAAC,eAAM,aAAc,oGAKnB,eAAG,aAAc,wECHtB,SAAS20B,GAAqBjhB,GAC1B,OAAUA,EAAH,wBAEX,MAAMkhB,GAAgBpsC,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAEu0B,cAAerwC,OAAQswC,UAAW,CAAChyC,OAAQ0B,QAASuwC,QAAS,CAC9H/3B,KAAM,CAACwD,QAAShY,QAChBiY,SAAS,KAEF,sBAAgB,CAC3BjT,KAAM,WACN6S,cAAc,EACdC,MAAOs0B,GACP,MAAMt0B,GAAO,MAAEkU,EAAK,MAAEwgB,IAClB,MAAM,mBAAE1iB,GAAuB,eAAUhS,GACnC8a,EAAc,eAAS,WAAY,WAAY,GAAO,EAAe9a,EAAOgS,GAC5E+U,EAAa,eAAI,MACjB4N,EAAa,eAAI,MACjBC,EAAc,gBAAI,GAClBC,EAAmB,eAAS,KAC9B,MAAM,UAAEL,GAAcx0B,GACdpc,MAAOkxC,GAAaF,EACtB5jB,EAAiC,UAAxBhR,EAAMu0B,cAA4B,UAAY,GAC7D,YAAkBhwC,IAAdiwC,EACO,CACHxjB,SACA+jB,aAAc,GACd,qBAAsBD,EAAW,GAAKN,GAInC,CACHxjB,SACA+jB,aAAcD,EAAW,GAAK,WAC9B,qBAAsB,MAIlC,SAASE,IACL,MAAQpxC,MAAOkxC,GAAaF,EAC5B,GAAIE,EACA,OAAO,EACX,MAAQlxC,MAAO26B,GAAYwI,EAC3B,GAAIxI,EAAS,CACT,MAAM,UAAEiW,GAAcx0B,EAItB,OADAi1B,EAAkB1W,QACAh6B,IAAdiwC,EACOjW,EAAQ2W,cAAgB3W,EAAQ7a,aAEpC6a,EAAQ4W,aAAe5W,EAAQ7J,YAE1C,OAAO,EAEX,MAAM0gB,EAAiB,eAAS,IACG,UAAxBp1B,EAAMu0B,cACP,KACE,IAAIzwB,EACJ,MAAQlgB,MAAOkxC,GAAaF,EACxBE,IAC4B,QAA3BhxB,EAAK6wB,EAAW/wC,aAA0B,IAAPkgB,GAAyBA,EAAGkwB,SAAQ,IAE5EY,EAAYhxC,OAASkxC,QAEvBvwC,GAEJ8wC,EAAgB,IAAO,cAAD,CAAG,OAAQntC,OAAOkH,OAAO,GAAI,eAAWslC,EAAO,CACvEnnC,MAAO,CACAykB,EAAmBpuB,MAAtB,iBACoBW,IAApByb,EAAMw0B,UACAH,GAAqBriB,EAAmBpuB,YACxCW,GAEVnC,MAAOyyC,EAAiBjxC,QACxB,CAAEmK,IAAK,aAAcolB,QAASiiB,EAAexxC,QAAUswB,GAC3D,SAAS+gB,EAAkB1W,GACvB,IAAKA,EACD,OACJ,MAAM+W,EAAcT,EAAiBjxC,MAC/B2xC,EAAiBlB,GAAqBriB,EAAmBpuB,YACvCW,IAApByb,EAAMw0B,UACDjW,EAAQiX,UAAU7c,SAAS4c,IAC5BhX,EAAQiX,UAAUtzB,IAAIqzB,GAItBhX,EAAQiX,UAAU7c,SAAS4c,IAC3BhX,EAAQiX,UAAU9tC,OAAO6tC,GAGjC,IAAK,MAAM1xC,KAAOyxC,EAEV/W,EAAQn8B,MAAMyB,KAASyxC,EAAYzxC,KAEnC06B,EAAQn8B,MAAMyB,GAAOyxC,EAAYzxC,IAI7C,MAAO,CACHi3B,cACAiM,aACA4N,aACAxiB,YAAaijB,EACbC,gBACAL,uBAGR,SACI,IAAIlxB,EACJ,MAAM,QAAE2wB,EAAO,cAAEY,EAAa,OAAEhwB,GAAW3a,KAC3C,GAAI+pC,EAAS,CACT,MAAM,YAAE3Z,GAAgBpwB,KACxB,OAAQ,cAAD,CAAG,GAAUxC,OAAOkH,OAAO,CAAErB,IAAK,aAAc0wB,UAAW,OAASgW,EAAS,CAAEgB,YAAa/qC,KAAKsqC,mBAAoBrW,MAAO7D,EAAYloB,MAAMq8B,QAASpQ,eAAgB/D,EAAYgE,cAAcmQ,UAAY,CAChN1Q,QAAS8W,EACTl1B,QAAmC,QAAzB2D,EAAKuB,EAAOovB,eAA4B,IAAP3wB,EAAgBA,EAAKuB,EAAOlF,UAI3E,OAAOk1B,OCzHJ,kBAAgB,CAC3BnoC,KAAM,YACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BAC5D,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAK,YAAa,WACvD,eAAE,IAAK,CAAE,YAAa,WAClB,eAAE,OAAQ,CAAE/Y,EAAG,qd,aCNpB,kBAAgB,CAC3BJ,KAAM,wBACN8S,MAAO,CACHzQ,OAAQ,CACJmN,KAAMkE,SACNP,UAAU,GAEdq1B,MAAO,CAEHh5B,KAAM,CAACxY,OAAQgc,SACfC,SAAS,IAGjB,SACI,MAAM,OAAE5Q,EAAM,MAAEmmC,GAAUhrC,KAC1B,OAAO6E,EAAO,CACVmmC,aCjBL,MAAMC,GAAwBnJ,OAAO,aCM7B,sBAAgB,CAC3Bt/B,KAAM,WACN8S,MAAO,CACH41B,OAAQ,CACJl5B,KAAMxU,OACNmY,UAAU,IAGlB,MAAML,GACF,MAAM,gBAAEiS,GAAoB,kBAEtB,mBAAE4jB,EAAkB,mBAAE7jB,GAAuB,eAAO2jB,IACpDG,EAAeD,EACfE,EAAY,eAAS,KACvB,MAAM,MAAEnyC,GAAUkyC,EAClB,QAAIlyC,GACOA,EAAMoyC,YAAch2B,EAAM41B,OAAO/xC,MAG1CoyC,EAAqB,eAAS,KAChC,MAAM,MAAEryC,GAAUkyC,EAClB,QAAIlyC,MACOmyC,EAAUnyC,OAAQA,EAAM8xC,SAGjCQ,EAAwB,eAAS,KACnC,IAAIpyB,EAAIoB,EACR,OAA6L,QAAnLA,EAAgI,QAA1HpB,EAAyB,OAApBmO,QAAgD,IAApBA,OAA6B,EAASA,EAAgBkkB,wBAAwBvyC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGsyB,iBAA8B,IAAPlxB,OAAgB,EAASA,EAAGmxB,eAAiBr2B,EAAM41B,OAAOS,eAEnQ,MAAO,CACHzjB,gBAAiBZ,EACjByD,OAAQsgB,EACRO,gBAAiBL,EACjBM,mBAAoBL,IAG5B,SACI,MAAM,mBAAEK,EAAkB,gBAAED,EAAe,gBAAE1jB,GAAoBloB,KACjE,OAAO6rC,EAAsB,cAAD,CAAGC,GAAc,CAAEjnC,OAAQgnC,EAAoBb,MAAOY,IAAuB,cAAD,CAAG,OAAQ,CAAE/oC,MAAO,CACjHqlB,EAAH,qBACA,CACI,CAAIA,EAAH,2BAAkE,WAApB0jB,EAC/C,CAAI1jB,EAAH,4BAAmE,YAApB0jB,KAGxD,eAAE,QAAW,CAAEljB,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAEs2B,GAAe,YClD5E,kBAAgB,CAC3BvpC,KAAM,SACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BAC5D,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAK,YAAa,WACvD,eAAE,IAAK,CAAE,YAAa,WAClB,eAAE,OAAQ,CAAE/Y,EAAG,8dCNpB,kBAAgB,CAC3BJ,KAAM,wBACN8S,MAAO,CACHzQ,OAAQ,CACJmN,KAAMkE,SACNP,UAAU,GAEdoV,OAAQ,CACJ/Y,KAAMwD,QACNC,SAAS,GAEbya,KAAM,CACFle,KAAMwD,QACNC,SAAS,IAGjB,SACI,MAAM,OAAE5Q,EAAM,OAAEkmB,EAAM,KAAEmF,GAASlwB,KACjC,OAAO6E,EAAO,CACVkmB,SACAmF,Y,uCCdG,kBAAG,cAAe,6DAG9B,CAAC,eAAG,UAAW,kMAQd,CAAC,eAAG,UAAW,CACjB1J,gBAAiB,sCACf,eAAG,WAAY,CACjBD,QAAS,8BACL,eAAG,eAAgB,oFAIrB,CAAC,eAAG,eAAgB,CACtBxR,OAAQ,gBACR+wB,WAAY,kBACV,eAAG,UAAW,CAChB/wB,OAAQ,oBACJ,eAAG,eAAgB,+eAkBrB,CAAC,eAAG,cAAe,wEAMlB,eAAG,eAAgB,mMASnB,eAAE,gBAAiB,4KAIpB,CAAC,eAAG,eAAgB,0HAGjB,eAAE,eAAgB,+KAIrB,CAAC,eAAG,eAAgB,4HAGjB,eAAM,WAAY,yBAErB,CAAC,eAAE,UAAW,CAAC,eAAG,eAAgB,iGAGjC,eAAM,UAAW,CACpB0L,MAAO,qCACH,eAAG,QAAS,CAAC,eAAE,iBAAkB,CAAC,eAAG,eAAgB,CACzD2jB,UAAW,yCACH,eAAG,UAAW,8IAInB,eAAG,WAAY,sECpFpB,SAAS4H,GAAQC,EAAa/yC,EAAOwvB,GACjC,IAAItP,EACJ,MAAM0Q,EAAW,GACjB,IAAIoiB,GAAgB,EACpB,IAAK,IAAI3pC,EAAI,EAAGA,EAAI0pC,EAAYnuC,SAAUyE,EAAG,CACzC,MAAM4pC,EAAkBF,EAAY1pC,GAC9BC,EAAuC,QAA/B4W,EAAK+yB,EAAgBn6B,YAAyB,IAAPoH,OAAgB,EAASA,EAAG5W,KACpE,gBAATA,IACA0pC,GAAgB,GAMpB,MAAME,EAAgBD,EAAgB72B,MACtC,GAAa,gBAAT9S,EAIJ,GAAU,IAAND,EACAunB,EAASjsB,KAAKsuC,OAEb,CACD,MAAME,EAAoBviB,EAASA,EAAShsB,OAAS,GAChDwX,MACCg3B,EAAsBpzC,IAAUmzC,EAAkBnzC,MAClDqzC,EAAuBF,EAAkBhmB,SACzCmmB,EAAyBtzC,IAAUkzC,EAAclzC,MACjDuzC,EAA0BL,EAAc/lB,SAQxCqmB,GAAwBJ,EAAsB,EAAI,IAAOC,EAA2B,EAAJ,GAChFI,GAA2BH,EAAyB,EAAI,IAAOC,EAA8B,EAAJ,GACzFG,EAAoB,CACtB,CAAIlkB,EAAH,mCAAgD6jB,EACjD,CAAI7jB,EAAH,kCAA+C4jB,GAE9CO,EAAuB,CACzB,CAAInkB,EAAH,mCAAgD+jB,EACjD,CAAI/jB,EAAH,kCAA+C8jB,GAE9CM,EAAeJ,EAAuBC,EACtCE,EACAD,EACN9iB,EAASjsB,KAAK,eAAE,MAAO,CAAEgF,MAAO,CAAI6lB,EAAH,wBAAqCokB,KAAkBX,QAjCxFriB,EAASjsB,KAAKsuC,GAoCtB,MAAO,CACHriB,WACAoiB,iBAGR,MAAMa,GAAkBvvC,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAE9S,KAAMhJ,OAAQN,MAAO,CAACM,OAAQ1B,QAASgjC,aAAc,CACxH9oB,KAAM,CAACxY,OAAQ1B,QACf2d,QAAS,MACV0Q,KAAM3sB,OAAQ6sB,SAAU,CACvBrU,KAAMwD,QACNC,aAAS5b,GACV,iBAAkB,CAACqc,SAAU7B,OAAQgnB,cAAe,CAACnlB,SAAU7B,SACvD,sBAAgB,CAC3B7R,KAAM,aACN8S,MAAOy3B,GACP,MAAMz3B,GACF,MAAM03B,EAAY,eAAI,OAChB,cAAExP,EAAa,kBAAEC,EAAiB,mBAAEG,EAAkB,kBAAEC,EAAiB,iBAAEC,EAAgB,kBAAEC,GAAsB,eAAYzoB,IAC/H,mBAAEgS,GAAuB,eAAUhS,GACnCkS,EAAW,eAAS,QAAS,aAAc,GAAO,OAAYlS,EAAOgS,GACrEoU,EAAuB,eAAIpmB,EAAMwlB,cACjCa,EAAqB,eAAMrmB,EAAO,SAClCsmB,EAAiB,eAAeD,EAAoBD,GAC1D,SAASgC,EAAcxkC,GACnB,MAAM,cAAEmiC,EAAe,iBAAkBsC,GAAmBroB,EACxD+lB,GACA,OAAA19B,EAAA,MAAK09B,EAAeniC,GAEpBykC,GACA,OAAAhgC,EAAA,MAAKggC,EAAgBzkC,GAEzBwiC,EAAqBxiC,MAAQA,EAC7B0kC,IACAC,IAEJ,SAAS9P,EAAc1rB,GACnB,MAAQnJ,MAAO+zC,GAAWD,EACrBC,IAEDA,EAAOhf,SAAS5rB,EAAE2rB,gBAEtB+P,KAEJ,SAAS7P,EAAe7rB,GACpB,MAAQnJ,MAAO+zC,GAAWD,EACrBC,IAEDA,EAAOhf,SAAS5rB,EAAE2rB,gBAEtB8P,KAUJ,OARA,eAAQ,QAAwB,CAC5BxW,qBACAkb,QAAS,eAAMltB,EAAO,QACtByf,SAAU6G,EACVqG,YAAaxE,EACbD,gBACAE,kBAEG,CACHsP,YACA9kB,gBAAiBZ,EACjBgW,YAAa1B,EACb1N,iBACAH,gBACA3F,QAAS,eAAS,KACd,MAAQlvB,MAAOitB,GAASqX,GAChBv1B,QAAQ,qBAAEogB,GAAwBhgB,MAAM,kBAAE6kC,EAAiB,wBAAEC,EAAuB,mBAAEC,EAAkB,gBAAEC,EAAe,qBAAEC,EAAoB,qBAAEC,EAAoB,kBAAEC,EAAiB,gBAAEC,EAAe,sBAAEC,EAAqB,qBAAEC,EAAoB,gBAAEpuB,EAAiB,CAAC,eAAU,eAAgB4G,IAAQpR,EAAQ,CAAC,eAAU,WAAYoR,IAAQjgB,IAAeshB,EAAStuB,MACnX,MAAO,CACH,cAAegN,EACf,WAAYmiB,EACZ,wBAAyB6kB,EACzB,+BAAgCC,EAChC,yBAA0BC,EAC1B,sBAAuBC,EACvB,4BAA6BC,EAC7B,4BAA6BC,EAC7B,wBAAyBC,EACzB,sBAAuBC,EACvB,4BAA6BE,EAC7B,6BAA8BD,EAC9B,WAAY34B,EACZ,qBAAsBwK,OAKtC,SACI,MAAM,YAAE+d,EAAW,gBAAEpV,EAAe,cAAE6F,EAAa,eAAEG,GAAmBluB,MAClE,SAAE8pB,EAAQ,cAAEoiB,GAAkBF,GAAQ,OAAA4B,GAAA,MAAQ,gBAAQ5tC,OAAQs9B,EAAapV,GACjF,OAAQ,cAAD,CAAG,MAAO,CAAEsM,UAAWzG,EAAe0G,WAAYvG,EAAgB7qB,IAAK,YAAaR,MAAO,CACvFqlB,EAAH,eACAgkB,GAAoBhkB,EAAH,8BAClBxwB,MAAOsI,KAAKooB,SAAW0B,M,wCCvJ/B,MAAM+jB,GAAoB,GACpBC,GAAiB,GACvB,SAASC,GAAYC,GACxB,MAAiB,cAAbA,EAAIh8B,KACG67B,GACM,WAAbG,EAAIh8B,KACG87B,GACP,aAAcE,OAAlB,EAEOA,EAAI74B,MAER,SAAS84B,GAAUD,GACtB,MAAiB,cAAbA,EAAIh8B,KACG,kBACM,WAAbg8B,EAAIh8B,KACG,eACJg8B,EAAI70C,IAER,SAAS+0C,GAA0BC,GACtC,OAAKA,GAEiB,kBAAXA,EACA3wC,OAAOkH,OAAO,GAAIypC,GAFlBA,EAMR,SAASC,GAAepD,GAC3B,MAAc,WAAVA,EACO,EACQ,YAAVA,GACG,EACL,EAEJ,SAASqD,GAAuBnD,GACnC,MAAO,CACH/1B,MAAO,eAAK44B,GAAY7C,KAGzB,SAASoD,GAAmBC,EAAK/sC,EAAOgtC,GAC3C,MAA4B,oBAAjBA,EACAA,EAAaD,EAAK/sC,GACtBgtC,GAAgB,GAKpB,SAASC,GAA2BvD,GACvC,YAAsCrxC,IAA9BqxC,EAAOwD,yBACmB70C,IAA7BqxC,EAAOyD,wBACiC90C,IAArCqxC,EAAO0D,0BAEZ,SAASC,GAAiB3D,GAC7B,QAAI,aAAcA,MAETA,EAAO4D,OAEb,SAASC,GAAmB7D,GAC/B,QAAI,aAAcA,OAERA,EAAO7Q,WAAa6Q,EAAO/Q,iBAAmB+Q,EAAO8D,mBAEnE,SAASC,GAAejE,GACpB,OAAKA,EAEc,YAAVA,GACE,SAFA,UAKR,SAASkE,GAAiBhE,EAAQiE,GACrC,YAAsBt1C,IAAlBqxC,EAAO4D,OACA,KACc,OAArBK,GAA6BA,EAAiB7D,YAAcJ,EAAO/xC,IAC5D,CACHmyC,UAAWJ,EAAO/xC,IAClB21C,OAAQ5D,EAAO4D,OACf9D,MAAOiE,IAAe,IAInBzxC,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAIyqC,GAAmB,CAAEnE,MAAOiE,GAAeE,EAAiBnE,SCzE5F,sBAAgB,CAC3BxoC,KAAM,sBACN8S,MAAO,CACH41B,OAAQ,CACJl5B,KAAMxU,OACNmY,UAAU,GAEdy5B,eAAgB,CACZp9B,KAAMxY,OACNmc,UAAU,GAEdyV,SAAU,CACNpZ,KAAMwD,QACNG,UAAU,GAEdzc,MAAO,CACH8Y,KAAM,CAACqC,MAAO7a,OAAQ1B,QACtB2d,QAAS,MAEb2C,QAAS,CACLpG,KAAMqC,MACNsB,UAAU,GAEd05B,UAAW,CACPr9B,KAAMkE,SACNP,UAAU,GAEdqW,QAAS,CACLha,KAAMkE,SACNP,UAAU,GAEd4lB,SAAU,CACNvpB,KAAMkE,SACNP,UAAU,IAGlB,MAAML,GACF,MAAM,mBAAEgS,EAAkB,eAAEgoB,EAAc,UAAE9S,GAEvC,eAAOyO,IAGNsE,EAAmB,eAAIj6B,EAAMpc,OAC7Bs2C,EAAwB,eAAS,KACnC,MAAQt2C,MAAOu2C,GAAkBF,EACjC,OAAKl7B,MAAM8Y,QAAQsiB,GAEZA,EADI,OAGTC,EAAqB,eAAS,KAChC,MAAQx2C,MAAOu2C,GAAkBF,EACjC,OAAId,GAA2Bn5B,EAAM41B,QACxB72B,MAAM8Y,QAAQsiB,IACnBA,EAAc3xC,QACd2xC,EAAc,IACd,KAEHp7B,MAAM8Y,QAAQsiB,GAEZ,KADIA,IAGf,SAASE,EAASz2C,GAGdoc,EAAMimB,SAASriC,GAEnB,SAAS02C,EAAa12C,GACdoc,EAAM8V,UAAY/W,MAAM8Y,QAAQj0B,GAChCq2C,EAAiBr2C,MAAQA,EAEpBu1C,GAA2Bn5B,EAAM41B,UACrC72B,MAAM8Y,QAAQj0B,GAEfq2C,EAAiBr2C,MAAQ,CAACA,GAG1Bq2C,EAAiBr2C,MAAQA,EAGjC,SAAS22C,IACLF,EAASJ,EAAiBr2C,OAC1Boc,EAAM+5B,YAEV,SAASS,IACDx6B,EAAM8V,UAAYqjB,GAA2Bn5B,EAAM41B,QACnDyE,EAAS,IAGTA,EAAS,MAEbr6B,EAAM0W,UAEV,MAAO,CACH9D,gBAAiBZ,EACjB8I,YAAakf,EACbS,OAAQvT,EACRwT,mBAAoBR,EACpBS,gBAAiBP,EACjBE,eACAC,qBACAC,qBAGR,SACI,MAAM,YAAE1f,EAAW,OAAE2f,EAAM,gBAAE7nB,GAAoBloB,KACjD,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAUqlB,EAAH,2BACtB,eAAE,QAAY,KAAM,CAChBzS,QAAS,KACL,MAAM,mBAAEu6B,EAAkB,aAAEJ,GAAiB5vC,KAC7C,OAAOA,KAAKorB,SAAY,cAAD,CAAG,EAAgB,CAAElyB,MAAO82C,EAAoBntC,MAAUqlB,EAAH,iCAAoDmT,cAAeuU,GAAgB,CAC7Jn6B,QAAS,IAAMzV,KAAKoY,QAAQ5c,IAAKyxB,GACrB,cAAD,CAAG,EAAW,CAAE9zB,IAAK8zB,EAAO/zB,MAAO+6B,MAAO7D,EAAYloB,MAAMs/B,SAAUrT,eAAgB/D,EAAYgE,cAAcoT,SAAUtuC,MAAO+zB,EAAO/zB,OAAS,CAAEuc,QAAS,IAAMwX,EAAOzO,WAEjL,cAAD,CAAG,GAAa,CAAEhc,KAAMxC,KAAKovC,eAAgBvsC,MAAUqlB,EAAH,iCAAoDhvB,MAAO8G,KAAKiwC,gBAAiB5U,cAAer7B,KAAK4vC,cAAgB,CAC3Kn6B,QAAS,IAAMzV,KAAKoY,QAAQ5c,IAAKyxB,GAAY,cAAD,CAAG,QAAQ,CAAE9zB,IAAK8zB,EAAO/zB,MAAOA,MAAO+zB,EAAO/zB,MAAO+6B,MAAO7D,EAAYloB,MAAMu/B,MAAOtT,eAAgB/D,EAAYgE,cAAcqT,OAAS,CAAEhyB,QAAS,IAAMwX,EAAOzO,cAIxN,eAAE,MAAO,CAAE3b,MAAUqlB,EAAH,mCACd,eAAE,QAAS,CAAE/B,KAAM,OAAQ8N,MAAO7D,EAAYloB,MAAMq/B,OAAQpT,eAAgB/D,EAAYgE,cAAcmT,OAAQ9e,QAASzoB,KAAK8vC,kBAAoB,CAAEr6B,QAAS,IAAMs6B,EAAOG,QACxK,eAAE,QAAS,CAAEjc,MAAO7D,EAAYloB,MAAMq/B,OAAQpT,eAAgB/D,EAAYgE,cAAcmT,OAAQv1B,KAAM,UAAWmU,KAAM,OAAQsC,QAASzoB,KAAK6vC,oBAAsB,CAAEp6B,QAAS,IAAMs6B,EAAOI,eCvH3M,SAASC,GAAkBC,EAAoB/E,EAAWgF,GACtD,MAAMC,EAAkB/yC,OAAOkH,OAAO,GAAI2rC,GAE1C,OADAE,EAAgBjF,GAAagF,EACtBC,EAEI,sBAAgB,CAC3B/tC,KAAM,wBACN8S,MAAO,CACH41B,OAAQ,CACJl5B,KAAMxU,OACNmY,UAAU,GAEdyC,QAAS,CACLpG,KAAMqC,MACNoB,QAAS,IAAM,KAGvB,MAAMH,GACF,MAAM,gBAAEiS,GAAoB,kBACtB,eAAE+nB,EAAc,mBAAEhoB,EAAkB,qBAAEkpB,EAAoB,qBAAEC,EAAoB,gBAAEC,GAEnF,eAAOzF,IACN0F,EAAiB,gBAAI,GACrBC,EAAiBJ,EACjBK,EAAoB,eAAS,KACQ,IAAhCv7B,EAAM41B,OAAO4F,gBAElBC,EAAuB,eAAS,KAClC,MAAMC,EAAcJ,EAAe13C,MAAMoc,EAAM41B,OAAO/xC,KACtD,QAAoBU,IAAhBm3C,EAA2B,CAC3B,MAAQ93C,MAAOkyB,GAAaylB,EAC5B,OAAIzlB,EACO,GAEA,KAEf,OAAO4lB,IAEL3F,EAAY,eAAS,KACvB,MAAQnyC,MAAO83C,GAAgBD,EAC/B,OAAI18B,MAAM8Y,QAAQ6jB,GACPA,EAAYlzC,OAAS,EAET,OAAhBkzC,IAELC,EAAwB,eAAS,KACnC,IAAI73B,EAAIoB,EACR,OAA6L,QAAnLA,EAAgI,QAA1HpB,EAAyB,OAApBmO,QAAgD,IAApBA,OAA6B,EAASA,EAAgBkkB,wBAAwBvyC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGsyB,iBAA8B,IAAPlxB,OAAgB,EAASA,EAAG02B,eAAiB57B,EAAM41B,OAAOgG,eAEnQ,SAASC,EAAmBb,GACxB,MAAMC,EAAkBH,GAAkBQ,EAAe13C,MAAOoc,EAAM41B,OAAO/xC,IAAKm3C,GAClFI,EAAgBH,EAAiBj7B,EAAM41B,QAE3C,SAASkG,IACLT,EAAez3C,OAAQ,EAE3B,SAASm4C,IACLV,EAAez3C,OAAQ,EAE3B,MAAO,CACHk3B,YAAakf,EACbpnB,gBAAiBZ,EACjByD,OAAQsgB,EACRiG,YAAaX,EACbY,mBAAoBN,EACpBH,eAAgBD,EAChBP,kBAAmBS,EACnBS,kBAAmBf,EACnBU,qBACAE,0BACAD,2BAGR,SACI,MAAM,YAAEhhB,EAAW,gBAAElI,EAAe,uBAAEkpB,GAA2BpxC,KACjE,OAAQ,cAAD,CAAG,OAAU,CAAEkwB,KAAMlwB,KAAKsxC,YAAatd,aAAegL,GAAOh/B,KAAKsxC,YAActS,EAAInL,QAAS,QAASI,MAAO7D,EAAYloB,MAAMgsB,QAASC,eAAgB/D,EAAYgE,cAAcF,QAASH,UAAW,SAAUr8B,MAAO,CAAE6qB,QAAS,IAAO,CAC5OsR,QAAS,KACL,MAAM,mBAAE0d,GAAuBvxC,KAC/B,GAAIuxC,EACA,OAAQ,cAAD,CAAGE,GAAc,CAAE,0BAA0B,EAAM5sC,OAAQ0sC,EAAoBxmB,OAAQ/qB,KAAK+qB,OAAQmF,KAAMlwB,KAAKsxC,cAE1H,MAAM,iBAAEI,GAAqB1xC,KAAKkrC,OAClC,OAAQ,cAAD,CAAG,MAAO,CAAE,0BAA0B,EAAMroC,MAAO,CAC/CqlB,EAAH,qBACA,CACI,CAAIA,EAAH,8BAAiDloB,KAAK+qB,OACvD,CAAI7C,EAAH,4BAA+CloB,KAAKsxC,eAExDI,EAAoBA,EAAiB,CAC1C3mB,OAAQ/qB,KAAK+qB,OACbmF,KAAMlwB,KAAKsxC,cACR,cAAD,CAAG,QAAW,CAAE5oB,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAEk8B,GAAY,UAEvFl8B,QAAS,KACL,MAAM,iBAAEu5B,GAAqBhvC,KAAKkrC,OAClC,OAAO8D,EAAoBA,EAAiB,CAAE4C,KAAMR,IAA8B,cAAD,CAAG,GAAsB,CAAE15C,MAAOsI,KAAKwxC,kBAAmBpC,eAAgB51C,OAAOwG,KAAKkrC,OAAO/xC,KAAMiyB,SAAUprB,KAAK8wC,eAAgB53C,MAAO8G,KAAKswC,kBAAmBl4B,QAASpY,KAAKoY,QAAS8yB,OAAQlrC,KAAKkrC,OAAQ3P,SAAUv7B,KAAKmxC,mBAAoBnlB,QAAShsB,KAAKoxC,uBAAwB/B,UAAWrvC,KAAKqxC,gC,0BClGvY,MAAMQ,GAAS,WACTC,GAAU,YAChB,SAASC,GAAoB35B,EAAS45B,EAAqBC,EAAYC,GACnE,OAAK95B,EAEGjf,IACJ,IAAK,MAAM8zB,KAAU7U,EACjB,OAAQjf,GACJ,KAAK04C,GAED,YADAI,GAAW,GAEf,KAAKH,GAED,YADAI,GAAa,GAEjB,QACI,GAAsB,kBAAXjlB,GAAuBA,EAAO9zB,MAAQA,EAE7C,YADA8zB,EAAOklB,SAASH,EAAoB94C,SAZ7C,OAmBf,SAASk5C,GAAsBh6B,EAASokB,GACpC,OAAKpkB,EAEEA,EAAQ5c,IAAKyxB,IAChB,OAAQA,GACJ,IAAK,MACD,MAAO,CACHzO,MAAOge,EAAU6V,cACjBl5C,IAAK04C,IAEb,IAAK,OACD,MAAO,CACHrzB,MAAOge,EAAU8V,gBACjBn5C,IAAK24C,IAEb,QACI,OAAO7kB,KAdR,GAkBA,sBAAgB,CAC3BzqB,KAAM,yBACN8S,MAAO,CACHoT,UAAW,CACP1W,KAAMxY,OACNmc,UAAU,IAGlB,QACI,MAAM,UAAE6mB,EAAS,gBAAE+V,EAAe,oBAAEP,EAAmB,WAAEC,EAAU,aAAEC,GAEhE,eAAOjH,IACZ,MAAO,CACHuH,aAAc,eAAS,IAAMT,GAAoBQ,EAAgBr5C,MAAO84C,EAAqBC,EAAYC,IACzG95B,QAAS,eAAS,IAAMg6B,GAAsBG,EAAgBr5C,MAAOsjC,EAAUtjC,UAGvF,SACI,MAAM,UAAEwvB,GAAc1oB,KACtB,OAAQ,cAAD,CAAG,QAAW,CAAEoY,QAASpY,KAAKoY,QAAS+5B,SAAUnyC,KAAKwyC,cAAgB,CACzE/8B,QAAS,IAAO,cAAD,CAAG,QAAW,CAAEiT,UAAWA,EAAW7lB,MAAU6lB,EAAH,2BAAyC,CACjGjT,QAAS,IAAM,eAAEg9B,GAAA,KAAiB,aC3DlD,SAASC,GAAYxH,GACjB,MAA+B,oBAAjBA,EAAOzpB,MACfypB,EAAOzpB,MAAMypB,GACbA,EAAOzpB,MAEF,sBAAgB,CAC3Bjf,KAAM,kBACN8S,MAAO,CACHq9B,SAAU,CACN3gC,KAAMwD,QACNC,SAAS,IAGjB,QACI,MAAM,mBAAE6R,EAAkB,WAAEsrB,EAAU,sBAAEC,EAAqB,uBAAEC,EAAsB,qBAAEC,EAAoB,kBAAEC,EAAiB,mBAAEC,EAAkB,QAAEC,EAAO,QAAEC,EAAO,eAAE7D,EAAc,gBAAEiD,EAAe,mBAAEpH,EAAkB,YAAEiI,EAAW,cAAEC,EAAa,qBAAEC,EAAoB,0BAAEC,EAAyB,wBAAEC,EAAuB,eAAEC,EAAc,aAAEvB,EAAY,WAAED,GAE1V,eAAOhH,IACZ,SAASyI,IACDT,EAAmB/5C,OAAS85C,EAAkB95C,MAC9Cg5C,IAGAD,IAGR,SAAS0B,EAAqBtxC,EAAG6oC,GAC7B,GAAI,eAAU7oC,EAAG,mBACb,OACJ,IAAKwsC,GAAiB3D,GAClB,OACJ,MAAM0I,EAAezI,EAAmBjyC,MAClC26C,EAAa3E,GAAiBhE,EAAQ0I,GAC5CH,EAAeI,GAEnB,SAASC,IACLT,EAAcn6C,MAAQ,OAE1B,MAAO,CACHk6C,cACAW,gBAAiB5I,EACjBjjB,gBAAiBZ,EACjB0sB,QAASpB,EACTqB,mBAAoBpB,EACpBqB,oBAAqBpB,EACrBqB,YAAapB,EACbqB,eAAgBpB,EAChBqB,gBAAiBpB,EACjBqB,KAAMpB,EACNqB,KAAMpB,EACN/iB,YAAakf,EACbkF,aAAcjC,EACdkC,kBAAmBnB,EACnBoB,uBAAwBnB,EACxBO,mBACAJ,8BACAC,uBACAH,4BAGR,SACI,MAAM,gBAAEtrB,EAAe,mBAAE+rB,EAAkB,oBAAEC,EAAmB,YAAEC,EAAW,eAAEC,EAAc,gBAAEC,EAAe,gBAAEN,EAAe,KAAEO,EAAI,KAAEC,EAAI,YAAEnkB,EAAW,aAAEokB,EAAY,YAAEpB,EAAW,SAAET,EAAQ,kBAAE8B,EAAiB,uBAAEC,EAAsB,qBAAEf,EAAoB,4BAAED,GAAgC1zC,KAChS,IAAI20C,GAAc,EAClB,MAAMC,EAAc,cAAD,CAAG,QAAS,CAAE/xC,MAAUqlB,EAAH,oBAAuC,YAAakrB,GAAekB,EAAK94C,IAAK+yC,GACzG,cAAD,CAAG,KAAM,CAAE1rC,MAAUqlB,EAAH,kBAAsCqmB,EAAI/yC,IAAI,EAAG0vC,SAAQ2J,UAASC,UAASC,aAChG,MAAM57C,EAAM80C,GAAU/C,IAChB,SAAE8J,GAAa9J,EAGrB,OAFKyJ,GAAeK,IAChBL,GAAc,GACV,cAAD,CAAG,KAAM,CAAEx7C,IAAKA,EAAKzB,MAAO,CAC3Bu9C,UAAW/J,EAAOgK,MAClB78B,KAAM,eAAK47B,EAAmB96C,IAC9Bg8C,MAAO,eAAKjB,EAAoB/6C,KACjCi8C,QAASP,EAASQ,QAASP,EAAS,eAAgB37C,EAAK0J,MAAO,CAC5DqlB,EAAH,iBACAgjB,EAAOoK,OACH,GAAGptB,0BAAwCgjB,EAAOoK,QACtD,CACI,CAAIptB,EAAH,0BAAiE,OAApB6rB,QAAgD,IAApBA,OAA6B,EAASA,EAAgB/I,QAC5H+I,EAAgBzI,YAAcnyC,EAClC,CAAI+uB,EAAH,8BAAiD6mB,GAAmB7D,GACrE,CAAIhjB,EAAH,4BAA+C2mB,GAAiB3D,GACjE,CAAIhjB,EAAH,6BAAgE,cAAhBgjB,EAAOl5B,KACxD,CAAIkW,EAAH,wBAA2C6sB,GAEhD7J,EAAOqK,WACR9sB,QAAyB,cAAhByiB,EAAOl5B,MACC,WAAhBk5B,EAAOl5B,MACL,aAAck5B,OAIdrxC,EAHCwI,IACCsxC,EAAqBtxC,EAAG6oC,KAGhB,cAAhBA,EAAOl5B,KAAwB,cAAD,CAAG,OAAU,KACvC,eAAE,EAAW,CAAE7Y,IAAKg7C,EAAa5L,oBAAoB,EAAM5hB,QAASytB,EAAgB9L,cAAe+L,EAAiBhuB,SAAUquB,EAAwB1tB,gBAAiB0sB,IACvKc,EAAgB,cAAD,CAAGgB,GAAe,CAAE9sB,UAAWR,IAAsB,OAAsB,IAAb8sB,GAAsBA,IAAaA,EAASjL,QAAY,cAAD,CAAG,MAAO,CAAElnC,MAAUqlB,EAAH,4BAAgDwqB,GAAYxH,IACjN8J,GAAYA,EAASjL,QAAW,cAAD,CAAG,GAAW,CAAEA,QAASiL,EAASjL,QAAS9V,MAAO7D,EAAYloB,MAAMy/B,SAAUxT,eAAgB/D,EAAYgE,cAAcuT,UAAY,CACjKlyB,QAAS,IAAMi9B,GAAYxH,KACxBwH,GAAYxH,GACvB2D,GAAiB3D,GAAW,cAAD,CAAGuK,GAAY,CAAEvK,OAAQA,IAAa,KACjE6D,GAAmB7D,GAAW,cAAD,CAAGwK,GAAc,CAAExK,OAAQA,EAAQ9yB,QAAS8yB,EAAO/Q,gBAAoB,WAGhH,IAAKwY,EACD,OAAOiC,EAEX,MAAM,wBAAEpB,EAAuB,iBAAEM,EAAgB,QAAEE,GAAYh0C,KAC/D,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAUqlB,EAAH,gCAAmDjS,SAAUu9B,EAAyB1sB,aAAcgtB,GAC1H,eAAE,QAAS,CAAEzwC,IAAK,OAAQR,MAAUqlB,EAAH,oBAAuCxwB,MAAO,CACvEud,SAAU,eAAa++B,GACvB2B,YAAalB,IAEjB,eAAE,WAAY,KAAMF,EAAK/4C,IAAKwyC,GAAS,cAAD,CAAG,MAAO,CAAE70C,IAAK60C,EAAI70C,IAAKzB,MAAOs2C,EAAIt2C,UAC3Ek9C,O,aCxHD,kBAAgB,CAC3BpyC,KAAM,gBACN8S,MAAO,CACHi5B,IAAK,CACDv8B,KAAMxU,OACNmY,UAAU,GAEdnU,MAAO,CACHwQ,KAAMla,OACN6d,UAAU,GAEdu1B,OAAQ,CACJl5B,KAAMxU,OACNmY,UAAU,GAEdigC,UAAWpgC,QACX4a,YAAa,CACTpe,KAAMxU,OACNmY,UAAU,IAGlB,SACI,MAAM,UAAEigC,EAAW1K,QAAQ,OAAErmC,EAAM,IAAE1L,EAAG,SAAE67C,GAAU,IAAEzG,GAAQvuC,KAC9D,IAAI61C,EAEAA,EADAhxC,IAAW+wC,EACJ/wC,EAAO0pC,EAAKvuC,KAAKwB,OAGpBo0C,EACOrH,EAAIp1C,GAAKD,MAGTq1C,EAAIp1C,GAGnB,MAAM4wC,EAA8B,kBAAbiL,EAAwBA,EAASjL,aAAUlwC,EAClE,GAAIkwC,EAAS,CACT,MAAM,YAAE3Z,GAAgBpwB,KACxB,OAAQ,cAAD,CAAG,GAAW,CAAE+pC,QAASA,EAAS9V,MAAO7D,EAAYloB,MAAMy/B,SAAUxT,eAAgB/D,EAAYgE,cAAcuT,UAAY,CAAElyB,QAAS,IAAMogC,IAEvJ,OAAOA,K,aCvCA,kBAAgB,CAC3BrzC,KAAM,yBACN8S,MAAO,CACHoT,UAAW,CACP1W,KAAMxY,OACNmc,UAAU,GAEdy0B,SAAU50B,QACViT,QAAS,CACLzW,KAAMkE,SACNP,UAAU,IAGlB,SACI,OAAQ,cAAD,CAAG,QAAW,CAAE9S,MAAU7C,KAAK0oB,UAAR,6BAA+CA,UAAW1oB,KAAK0oB,UAAWD,QAASzoB,KAAKyoB,SAAW,CAC7HhT,QAAS,IACG,cAAD,CAAGqgC,GAAA,KAAkB,CAAEp+C,MAAOsI,KAAKoqC,SAAW,iCAA8BvwC,SCfpF,kBAAgB,CAC3B2I,KAAM,wBACN8S,MAAO,CACHygC,OAAQ,CACJ/jC,KAAM,CAACxY,OAAQ1B,QACf6d,UAAU,GAEd0Q,SAAU,CACNrU,KAAMwD,QACNG,UAAU,GAEdqR,gBAAiB,CACbhV,KAAMkE,SACNP,UAAU,IAGlB,MAAML,GACF,MAAM,0BAAE0gC,EAAyB,8BAAEC,GAE9B,eAAOhL,IACZ,MAAO,KACH,MAAM,OAAE8K,GAAWzgC,EACnB,OAAQ,cAAD,CAAG,EAAW,CAAE+Q,SAAU/Q,EAAM+Q,SAAUiiB,cAAe2N,EAA8B/8C,MAAMsQ,IAAIusC,GAASpvB,QAASqvB,EAA0B98C,MAAMsQ,IAAIusC,GAAS/uB,gBAAiB1R,EAAM0R,sBCb1M,SAAS,GAAQstB,EAAM4B,GACnB,MAAMC,EAAQ,GACd,SAAS7b,EAAS8b,GACdA,EAAGn9C,QAASyb,IACJA,EAAEoV,UAAYosB,EAAgBz7C,SAASia,EAAEvb,MACzCg9C,EAAMt4C,KAAK6W,GACX4lB,EAAS5lB,EAAEoV,WAGXqsB,EAAMt4C,KAAK6W,KAKvB,OADA4lB,EAASga,GACF6B,EAEX,MAAME,GAAyB,eAAgB,CAC3C/gC,MAAO,CACHoT,UAAW,CACP1W,KAAMxY,OACNmc,UAAU,GAEdiB,GAAI,CACA5E,KAAMxY,OACNmc,UAAU,GAEd4+B,KAAM,CACFviC,KAAMqC,MACNsB,UAAU,GAEdmR,aAAc5Q,SACd6Q,aAAc7Q,UAElB,SACI,MAAM,UAAEwS,EAAS,GAAE9R,EAAE,KAAE29B,EAAI,aAAEztB,EAAY,aAAEC,GAAiB/mB,KAC5D,OAAQ,cAAD,CAAG,QAAS,CAAEtI,MAAO,CAAEi+C,YAAa,SAAW9yC,MAAU6lB,EAAH,oBAAiC5B,aAAcA,EAAcC,aAAcA,GACpI,eAAE,WAAY,KAAMwtB,EAAK/4C,IAAKwyC,GAAS,cAAD,CAAG,MAAO,CAAE70C,IAAK60C,EAAI70C,IAAKzB,MAAOs2C,EAAIt2C,UAC3E,eAAE,QAAS,CAAE,YAAakf,EAAI/T,MAAU6lB,EAAH,qBAAmC1oB,KAAK2a,YAG1E,sBAAgB,CAC3BnY,KAAM,gBACN8S,MAAO,CACHc,SAAUF,SACVogC,WAAY9gC,QACZ+gC,WAAY/gC,SAEhB,MAAMF,GACF,MAAM,yBAAEkhC,EAAwB,mBAAElvB,EAAkB,eAAEgoB,EAAc,WAAEsD,EAAU,QAAEO,EAAO,iBAAEsD,EAAgB,oBAAEzE,EAAmB,sBAAEa,EAAqB,uBAAEC,EAAsB,qBAAEC,EAAoB,gBAAE2D,EAAe,yBAAEC,EAAwB,0BAAEC,EAAyB,gBAAEC,EAAe,YAAEC,EAAW,WAAEC,EAAU,mBAAE5L,EAAkB,iBAAE6L,EAAgB,YAAE5D,EAAW,cAAEC,EAAa,qBAAEC,EAAoB,eAAE2D,EAAc,2BAAEC,EAA0B,UAAEC,EAAS,YAAEC,EAAW,aAAEC,EAAY,oBAAEC,EAAmB,wBAAEC,EAAuB,sBAAEC,EAAqB,QAAEC,EAAO,UAAEC,GAE1iB,eAAOzM,IACN0M,EAAmB,eAAI,MACvB5gB,EAAiB,eAAI,MAC3B,IAAI6gB,EAAkB,GACtB,SAASlE,EAA4B5e,EAAQnO,EAASkxB,GAClD,GAAIA,EAAU,CACV,MAAMl3C,EAAY81C,EAAiBv9C,MAAMomC,UAAWpoB,GAASA,EAAK/d,MAAQy+C,GAC1E,IAAmB,IAAfj3C,EAAkB,CAClB,MAAMm3C,EAAerB,EAAiBv9C,MAAMomC,UAAWpoB,GAASA,EAAK/d,MAAQ27B,EAAO37B,KAC9EgjB,EAAQ1c,KAAKD,IAAImB,EAAWm3C,GAC5B17B,EAAM3c,KAAKmY,IAAIjX,EAAWm3C,GAC1BC,EAAiB,GAavB,OAZAtB,EAAiBv9C,MAAMqI,MAAM4a,EAAOC,EAAM,GAAGnjB,QAASyb,IAC7CA,EAAE2R,UACH0xB,EAAel6C,KAAK6W,EAAEvb,OAG1BwtB,EACA8wB,EAAQM,GAGRL,EAAUK,QAEdH,EAAkB9iB,EAAO37B,MAI7BwtB,EACA8wB,EAAQ3iB,EAAO37B,KAGfu+C,EAAU5iB,EAAO37B,KAErBy+C,EAAkB9iB,EAAO37B,IAE7B,SAAS6+C,IACL,GAAIhB,EAAiB99C,MACjB,OAAOmgC,IAEX,MAAM,MAAEngC,GAAUy+C,EAClB,OAAIz+C,EACOA,EAAM++C,aACV,KAEX,SAASC,EAAqB/+C,GAC1B,MAAQD,MAAOi/C,GAA0B3B,EACnCh1C,EAAQ22C,EAAsB3zC,QAAQrL,GACtCi/C,EAAmB/jC,MAAM0qB,KAAKoZ,IAC/B32C,EACD42C,EAAiB7zC,OAAO/C,EAAO,GAG/B42C,EAAiBv6C,KAAK1E,GAE1Bo+C,EAAwBa,GAE5B,SAASC,IACLvB,EAAY59C,MAAQ,KAExB,SAASo/C,IACLjF,EAAcn6C,MAAQ,OAE1B,SAASmgC,IACL,MAAM,MAAEngC,GAAU69B,EAClB,OAAiB,OAAV79B,QAA4B,IAAVA,OAAmB,EAASA,EAAMie,UAE/D,SAASoiB,IACL,MAAM,MAAErgC,GAAU69B,EAClB,OAAiB,OAAV79B,QAA4B,IAAVA,OAAmB,EAASA,EAAMohB,WAE/D,SAAS6d,EAAwB91B,GAC7B,IAAI+W,EACJo+B,EAAsBn1C,GACY,QAAjC+W,EAAKu+B,EAAiBz+C,aAA0B,IAAPkgB,GAAyBA,EAAGwR,OAE1E,SAASwN,EAAwB/1B,GAC7B,IAAI+W,EACJ,MAAM,SAAEhD,GAAad,EACjBc,GACAA,EAAS/T,GACqB,QAAjC+W,EAAKu+B,EAAiBz+C,aAA0B,IAAPkgB,GAAyBA,EAAGwR,OAE1E,MAAM2tB,EAAiB,CACnBP,sBAGEtgD,EAAQ,eAAE,CACZ,EAAG4d,MAAOkjC,KAAa,eAAE,CACY,OAAjCA,EAAOC,sBACD,KACA,eAAE,eAAeD,EAAOpF,gCAAgCoF,EAAOC,iCAAkC,CAC/FrU,UAAW,4BAEe,OAAlCoU,EAAOE,uBACD,KACA,eAAE,eAAeF,EAAOpF,gCAAgCoF,EAAOE,mCAAoC,CACjGtU,UAAW,iCAI3B,IAAIuU,GAAoB,EAyBxB,OAxBA,eAAY,KACR,MAAQz/C,MAAOu/C,GAA0B9B,GACjCz9C,MAAOw/C,GAA2B9B,GACrC+B,GACyB,OAA1BF,GAC2B,OAA3BC,KAGJhhD,EAAMif,MAAM,CACRC,GAAI,KAAKw8B,EACTwF,OAAO,EACPtjC,MAAO,CACHmjC,wBACAC,yBACAtF,iBAGRuF,GAAoB,KAExB,eAAY,KACRjhD,EAAMmhD,QAAQ,CACVjiC,GAAI,KAAKw8B,MAGV51C,OAAOkH,OAAO,CAAE0uC,cACnBuE,mBACA5gB,iBAAgB+hB,QAAS/B,EAAY7uB,gBAAiBZ,EAAoB8I,YAAakf,EAAgB0E,QAASpB,EAAY2B,KAAMpB,EAAS4F,cAAetC,EAAkBuC,iBAAkBhH,EAAqBiC,mBAAoBpB,EAAuBqB,oBAAqBpB,EAAwBqB,YAAapB,EAAsBvE,aAAckI,EAAiBuC,aAAcpC,EAAiBsB,sBAAuB3B,EAA0B0C,SAAUpC,EAAa/C,gBAAiB5I,EAAoBxU,cAAeqgB,EAAkBvC,kBAAmBnB,EAAsB6F,YAAalC,EAAgBmC,wBAAyBlC,EAA4BmC,OAAQlC,EAAWmC,SAAUlC,EAAatiC,UAAWuiC,EAAcC,sBACxtBgB,wBACAngB,0BACAC,0BACAigB,wBACAhf,uBACAE,qBACAie,wBACA9D,8BACAwE,wBAAwBK,IAEhC,SACI,MAAM,YAAEnoB,EAAW,QAAE4jB,EAAO,gBAAE9rB,EAAe,cAAEyO,EAAa,UAAE7hB,EAAS,kBAAE2/B,EAAiB,WAAE8B,EAAU,SAAEngC,EAAQ,oBAAEkhC,GAAwBt3C,KACpIw2B,OAAyB38B,IAAZm6C,QAAuCn6C,IAAdib,GAA2ByhC,EAKjEgD,GAAqB/iB,GAAoC,SAAtBie,EACnC+E,OAA0B3/C,IAAZm6C,GAAyBuF,EACvCE,EAAe,CACjBxkC,SAAU,eAAa++B,IAAY,QAIvC,OAFIA,IACAyF,EAAatkC,MAAQ,QACjB,cAAD,CAAG,QAAY,CAAE9R,IAAK,mBAAoBmzB,WAAYA,GAAc+iB,EAAmB12C,MAAUqlB,EAAH,8BAAiD+L,MAAO7D,EAAYloB,MAAMoZ,UAAW6S,eAAgB/D,EAAYgE,cAAc9S,UAAWm4B,aAAcA,EAAcrgB,UAAWzC,EAAgB32B,KAAKq5B,0BAAuBx/B,EAAWy/B,QAAS3C,EAAgB32B,KAAKu5B,wBAAqB1/B,EAAW6/C,oBAAqB,CAAEC,OAAQ,GAAKC,kBAAmB,CAAED,OAAQ,GAAKH,YAAaA,EAAavjC,SAAU0gB,OAAgB98B,EAAYmG,KAAKw3C,sBAAuBqC,2BAA4BvC,EAAqBlhC,SAAUA,GAAY,CAChnBX,QAAS,KACL,MAAMqkC,EAAa,GAEbC,EAAU,IACV,KAAExF,EAAI,cAAEwE,EAAa,YAAE3oB,EAAW,mBAAE6jB,EAAkB,oBAAEC,EAAmB,YAAEC,EAAW,aAAE3F,EAAY,gBAAEuF,EAAe,sBAAEoE,EAAqB,YAAE/E,EAAW,WAAEkD,EAAU,YAAE6C,EAAW,wBAAEC,EAAuB,SAAEE,EAAQ,sBAAEhB,EAAqB,sBAAED,EAAqB,aAAEY,EAAY,QAAEH,EAAO,4BAAEpF,EAA2B,qBAAEwE,GAAyBl4C,MAClVlC,OAAQk8C,GAAazF,EACvB0F,EAAgB,GACtBlB,EAAc9/C,QAAQ,CAAC67B,EAAQolB,KAC3BD,EAAcC,GAAYplB,EAAO37B,MAErC,MAAMghD,IAAcpG,GAChBA,EAAgB/I,OAChB+I,EAAgBzI,UACpB,IAAI8O,EAEJ,MAAMC,EAAuBlB,EACvB,GAAQJ,EAAeZ,GACvBY,EACN,GAAID,EAAS,CACT,MAAMwB,EAAcxB,EAAQ94C,KAAKg5C,kBAE7BoB,EADA/lC,MAAM8Y,QAAQmtB,GACD,IACND,KACAC,EAAY9+C,IAAI,CAAC+yC,EAAKhsC,KAAM,CAC3Bu2C,SAAS,EACTjjB,QAAS0Y,EACTp1C,IAAK,gBAAgBoJ,EACrB8jB,UAAU,MAKL,IACNg0B,EACH,CACIvB,SAAS,EACTjjB,QAASykB,EACTnhD,IAAK,gBACLktB,UAAU,SAMtB+zB,EAAaC,EAEjB,MAAQv8C,OAAQy8C,GAAaH,EACvBI,EAAcrB,EACd,CAAEhkC,MAAO,eAAKnV,KAAKq5C,cACnBx/C,EACAy6C,EAAO,GA0Hb,OAzHA8F,EAAWnhD,QAAQ,CAACwhD,EAASP,KACzB,MAAQrkB,QAAS6kB,EAASvhD,IAAK48C,GAAW0E,EACpC7E,EAAY,YAAa6E,EACzBrQ,EAAW+N,EAAsB19C,SAASs7C,GAC1C4E,EAAoB1B,GAAgB7O,EACpCwQ,EAAWrG,EAAK/4C,IAAI,CAACwyC,EAAK6M,KAC5B,IAAIzhC,EACJ,GAAI8gC,KAAYJ,EAAY,CACxB,MAAMgB,EAAkBhB,EAAWI,GAC7Ba,EAAyBD,EAAgBt2C,QAAQq2C,GACvD,IAAKE,EAED,OADAD,EAAgBv2C,OAAOw2C,EAAwB,GACxC,KAGf,MAAM,OAAE7P,GAAW8C,EACbgN,EAAS/M,GAAUD,IAGnB,QAAE8G,EAAO,QAAED,GAAY3J,EACvB+P,EAAgBrF,EAChB6E,EAAQ5kB,QAAQmlB,GAAQnG,SAAW,EACnCA,EACIA,EAAQ6F,EAASR,GACjB,EACJgB,EAAgBtF,EAChB6E,EAAQ5kB,QAAQmlB,GAAQlG,SAAW,EACnCA,EACIA,EAAQ4F,EAASR,GACjB,EACJiB,EAAYN,EAAWI,IAAkBjB,EACzCoB,EAAYlB,EAAWgB,IAAkBX,EACzCc,EAAeH,EAAgB,EAMrC,GALIG,IACAtB,EAAQG,GAAY,CAChB,CAACW,GAAW,KAGhBI,EAAgB,GAAKI,EACrB,IAAK,IAAI94C,EAAI23C,EAAU33C,EAAI23C,EAAWgB,IAAiB34C,EAAG,CAClD84C,GACAtB,EAAQG,GAAUW,GAAUh9C,KAAKo8C,EAAc13C,IAEnD,IAAK,IAAIioB,EAAIqwB,EAAUrwB,EAAIqwB,EAAWI,IAAiBzwB,EAC/CjoB,IAAM23C,GAAY1vB,IAAMqwB,IAEtBt4C,KAAKu3C,EAIPA,EAAWv3C,GAAG1E,KAAK2sB,GAHnBsvB,EAAWv3C,GAAK,CAACioB,IAQjC,MAAM0uB,EAAWmC,EAAer7C,KAAKk5C,SAAW,MAC1C,SAAElE,GAAa9J,EACrB,OAAQ,cAAD,CAAG,KAAM,CAAE/xC,IAAK6hD,EAAQtjD,MAAO,CAC9Bu9C,UAAW/J,EAAOgK,YAASr7C,EAC3Bwe,KAAM,eAAK47B,EAAmB+G,IAC9B7F,MAAO,eAAKjB,EAAoB8G,KACjC5F,QAAS6F,EAAe5F,QAAS6F,EAAe,eAAgBF,EAAQn4C,MAAO,CAC3EqlB,EAAH,iBACAgjB,EAAOqK,UACPK,GAAgB1tB,EAAH,2BACE,OAAbgxB,GACEa,EAAQG,GAAUW,GAAUpgD,SAASy+C,KACtB,IAAdiB,GAAuBA,IAAca,IACnC9yB,EAAH,wBACJgjB,EAAOoK,OACH,GAAGptB,0BAAwCgjB,EAAOoK,QACtDpK,EAAOgK,OACH,GAAGhtB,oBAAkCgjB,EAAOgK,cAChD,CACI,CAAIhtB,EAAH,6BAA4D,IAAb8sB,GAE3CA,IAAaA,EAASjL,QAC3B,CAAI7hB,EAAH,6BAAgE,cAAhBgjB,EAAOl5B,KACxD,CAAIkW,EAAH,0BAA6D,WAAhBgjB,EAAOl5B,KACrD,CAAIkW,EAAH,4BAA+CizB,EAChD,CAAIjzB,EAAH,4BAA+CkzB,IAAcT,KAGtExB,GAAe0B,IAAazB,EACtB,CACE,eAAOxD,EAAY,EAAI6E,EAAQa,MAAO,eAAE,MAAO,CAAEz4C,MAAUqlB,EAAH,qBAAwCxwB,MAAO8iD,KACvG5E,IAAc6E,EAAQ3wB,SAAY,cAAD,CAAG,MAAO,CAAEjnB,MAAUqlB,EAAH,mCAA0D,cAAD,CAAGqzB,GAAe,CAAE14C,MAAUqlB,EAAH,6BAAgDQ,UAAWR,EAAiBkiB,SAAUA,EAAU3hB,QAAS,KACzOyvB,EAAqBnC,OAG/B,KACU,cAAhB7K,EAAOl5B,KAAyB4jC,EAAoM,KAAvL,cAAD,CAAG,GAAoB,CAAEz8C,IAAKg7C,EAAa4B,OAAQA,EAAQ1vB,SAAUo0B,EAAQp0B,SAAUW,gBAAiB,CAACL,EAAStkB,IAAMqxC,EAA4B+G,EAAS9zB,EAAStkB,EAAEw1C,YAAwC,WAAhB3M,EAAOl5B,KAAsB4jC,EAClC,MADgD1K,EAAOsQ,aAC5P,QAA5BpiC,EAAK8xB,EAAOsQ,kBAA+B,IAAPpiC,OAAgB,EAASA,EAAGzb,KAAKutC,EAAQwP,EAASR,IAAc,cAAD,CAAGqB,GAAe,CAAE7yB,UAAWR,EAAiBkiB,SAAUA,EAAU3hB,QAAS,IAAMyvB,EAAqBnC,KAAc,KAAiB,cAAD,CAAG0F,GAAM,CAAEj6C,MAAO04C,EAAU3L,IAAKmM,EAASxP,OAAQA,EAAQ0K,UAAWA,EAAWxlB,YAAaA,OAE9U9a,EAAQgkC,EAAWA,EAASoB,EAASR,QAAYrgD,EACjD6hD,EAA6C,kBAAjBlN,EAC5BA,EACAF,GAAmBoM,EAASR,EAAU1L,GACtCD,EAAO,cAAD,CAAG,KAAM/wC,OAAOkH,OAAO,CAAEoiB,aAAc,KAC3C9mB,KAAKk5C,SAAWnD,GACjB58C,IAAK48C,EAAQlzC,MAAO,CAChBqlB,EAAH,iBACAwzB,IACCpmC,GAAQslC,GACbD,EACArG,EAAKz2C,KAAK0wC,EAAK,eAAE,KAAM,CAAE1rC,MAAUqlB,EAAH,iBAAoC/uB,IAAQ48C,EAAH,YACrE,eAAE,KAAM,CAAElzC,MAAO,CACNqlB,EAAH,iBACGA,EAAH,2BACAgyB,EAAW,IAAMK,GACVryB,EAAH,4BACLktB,QAAS4E,GAAYf,EAAayB,EAASR,MAGtD5F,EAAKz2C,KAAK0wC,KAOd5X,EACQ,cAAD,CAAG6C,GAAA,KAAa,CAAEn2B,IAAK,iBAAkBqS,MAAO4+B,EAAMxvC,SAAU,GAAIgR,gBAAiBugC,GAAwBtgC,kBAAmB,CAC/H2S,UAAWR,EACXtR,GAAIw8B,EACJmB,OACAztB,aAAcwxB,EACdvxB,aAAcsxB,GACf9iC,eAAe,EAAOa,SAAUpW,KAAKo4B,wBAAyBniB,SAAUjW,KAAKm4B,wBAAyBtiB,WAAY4jC,EAAc7jC,eAAe,GAAQ,CAC1JH,QAAS,EAAGyB,UACDA,IAIX,cAAD,CAAG,QAAS,CAAErU,MAAUqlB,EAAH,oBAAuCnB,aAAcsxB,EAAuBvxB,aAAcwxB,EAAuB5gD,MAAO,CAC5Ii+C,YAAa31C,KAAKy0C,oBAEtB,eAAE,WAAY,KAAMF,EAAK/4C,IAAKwyC,GAAS,cAAD,CAAG,MAAO,CAAE70C,IAAK60C,EAAI70C,IAAKzB,MAAOs2C,EAAIt2C,UAC3E4+C,EAAa,eAAE,GAAa,CAAE3D,UAAU,IAAW,KACnD,eAAE,QAAS,CAAE,YAAaS,EAAavwC,MAAUqlB,EAAH,qBAAyCosB,UChZ5F,kBAAgB,CAC3B,QACI,MAAM,mBAAEhtB,EAAkB,qBAAEq0B,EAAoB,oBAAEC,EAAmB,aAAEC,EAAY,aAAExE,EAAY,aAAEyE,EAAY,cAAEC,EAAa,gBAAEC,GAE3H,eAAO/Q,IACNgR,EAAgB,eAAI,MACpBC,EAAc,eAAI,MAClBlP,EAAY,eAAI,MAChBmP,EAA2B,iBAAMP,EAAoB1iD,MAAM4E,QAAU69C,EAAqBziD,MAAM4E,SAChGs+C,EAAe,eAAS,KACnB,CACHtnC,UAAW,eAAauiC,EAAan+C,OACrCihB,UAAW,eAAa2hC,EAAa5iD,UAG7C,SAASmjD,EAAiBljC,GACtB0iC,EAAa3iD,MAAQigB,EAAMW,YAAY3E,MACvC6mC,IACKG,EAAyBjjD,QAC1BijD,EAAyBjjD,OAAQ,GAGzC,SAASojD,IACL,MAAM,MAAEpjD,GAAU+iD,EAClB,OAAI/iD,EACOA,EAAMylC,IAEV,KAEX,SAAS4d,IACL,MAAM,MAAErjD,GAAUgjD,EAClB,OAAIhjD,EACOA,EAAM8+C,qBAEV,KAEX,MAAMO,EAAiB,CACnBgE,iBACAD,oBAgBJ,OAdA,eAAY,KACR,MAAQpjD,MAAO+zC,GAAWD,EAC1B,IAAKC,EACD,OACJ,MAAMuP,EAA6Bl1B,EAAmBpuB,MAAtB,8CAC5BijD,EAAyBjjD,MACzB62B,WAAW,KACPkd,EAAOnC,UAAU9tC,OAAOw/C,IACzB,GAGHvP,EAAOnC,UAAUtzB,IAAIglC,KAGtBh/C,OAAOkH,OAAO,CAAEoQ,UAAWuiC,EAAcnvB,gBAAiBZ,EAAoB0lB,YACjFiP,gBACAC,cAAaO,UAAWL,EAAc7F,WAAYwF,EAAeM,oBAAoB9D,IAE7F,SACI,MAAM,gBAAErwB,EAAe,UAAEpT,EAAS,WAAEyhC,GAAev2C,KAC7C08C,OAA6B7iD,IAAdib,IAA4ByhC,EACjD,OAAQ,cAAD,CAAG,MAAO,CAAE1zC,MAAUqlB,EAAH,yBAA4C7kB,IAAK,aACvEq5C,EAAe,KAAO,eAAE,GAAa,CAAEr5C,IAAK,kBAC5C,eAAE,GAAW,CAAEA,IAAK,cAAe3L,MAAOsI,KAAKy8C,UAAWnG,WAAYoG,EAAcnG,WAAYA,EAAYngC,SAAUpW,KAAKq8C,mBAC3H,eAAWr8C,KAAK2a,OAAQ,eCnE7B,SAASgiC,GAASrnC,EAAO3a,GAC5B,MAAM,iBAAE87C,EAAgB,YAAE1a,EAAW,mBAAE6gB,GAAuBjiD,EACxDkiD,EAAgC,eAAIvnC,EAAMwnC,uBAC1CC,EAAmB,eAAS,KAC9B,MAAM,eAAEC,GAAmB1nC,EAC3B,OAAOymB,EAAY7iC,MAAM+jD,oBAAkCpjD,IAAnBmjD,EAClCH,EAA8B3jD,MAC9B8jD,EAAgB,CAClBE,QAAS5nC,EAAM4nC,YAGjBC,EAA0B,eAAS,IAAMJ,EAAiB7jD,MAAMkkD,aAChEC,EAA8B,eAAS,IAAMN,EAAiB7jD,MAAMokD,mBACpEtH,EAA4B,eAAS,IAChC,IAAIpe,IAAIulB,EAAwBjkD,QAErC+8C,EAAgC,eAAS,IACpC,IAAIre,IAAIylB,EAA4BnkD,QAEzCqkD,EAAmC,eAAS,KAC9C,MAAQrkD,MAAOskD,GAA2BxH,EAC1C,OAAOS,EAAiBv9C,MAAMukD,OAAO,CAACC,EAAO5oB,KACzC,MAAM,IAAE37B,EAAG,SAAEktB,GAAayO,EAC1B,OAAO4oB,IAAUr3B,GAAYm3B,EAAuBh0C,IAAIrQ,GAAO,EAAI,IACpE,KAEDwkD,EAAoC,eAAS,IACxClH,EAAiBv9C,MAAMmhC,OAAQnjB,GAASA,EAAKmP,UAAUvoB,QAE5Dm1C,EAAqB,eAAS,KAChC,MAAM,OAAEn1C,GAAW24C,EAAiBv9C,OAC5BA,MAAO0kD,GAA+B3H,EAC9C,OAASsH,EAAiCrkD,MAAQ,GAC9CqkD,EAAiCrkD,MAC7B4E,EAAS6/C,EAAkCzkD,OAC/Cu9C,EAAiBv9C,MAAM4mC,KAAM4a,GAAYkD,EAA2Bp0C,IAAIkxC,EAAQvhD,QAElF65C,EAAoB,eAAS,KAC/B,MAAM,OAAEl1C,GAAW24C,EAAiBv9C,MACpC,OAAmD,IAA3CqkD,EAAiCrkD,OACrCqkD,EAAiCrkD,QAC7B4E,EAAS6/C,EAAkCzkD,QAEjDq6C,EAA4B,eAAS,IACE,IAAlCkD,EAAiBv9C,MAAM4E,QAElC,SAAS+/C,EAAuBC,GAC5B,MAAQ,0BAA2BC,EAAuB,uBAAEC,EAAsB,uBAAEC,GAA2B3oC,EAC3GyoC,GACA,OAAApgD,EAAA,MAAKogD,EAAyBD,GAC9BE,GACA,OAAArgD,EAAA,MAAKqgD,EAAwBF,GAC7BG,GACA,OAAAtgD,EAAA,MAAKsgD,EAAwBH,GACjCjB,EAA8B3jD,MAAQ4kD,EAE1C,SAASrG,EAAQ1B,GACb8H,EAAuB9hB,EAAY7iC,MAAMglD,MAAMnI,EAAQoH,EAAwBjkD,MAAO,CAClFgkD,QAAS5nC,EAAM4nC,UAChBE,aAEP,SAAS1F,EAAU3B,GACf8H,EAAuB9hB,EAAY7iC,MAAMilD,QAAQpI,EAAQoH,EAAwBjkD,MAAO,CACpFgkD,QAAS5nC,EAAM4nC,UAChBE,aAEP,SAASnL,EAAWmM,GAAkB,GAClC,MAAQllD,MAAOgyC,GAAW0R,EAC1B,IAAK1R,EACD,OACJ,MAAM6M,EAAiB,IACtBqG,EACKriB,EAAY7iC,MAAMmlD,UAClB5H,EAAiBv9C,OAAOD,QAAS67B,IAC9BA,EAAOzO,UACR0xB,EAAel6C,KAAKi3B,EAAO37B,OAInC0kD,EAAuB9hB,EAAY7iC,MAAMglD,MAAMnG,EAAgBoF,EAAwBjkD,MAAO,CAC1FgkD,SAAS,IACVE,aAEP,SAASlL,EAAakM,GAAkB,GACpC,MAAQllD,MAAOgyC,GAAW0R,EAC1B,IAAK1R,EACD,OACJ,MAAMoT,EAAmB,IACxBF,EACKriB,EAAY7iC,MAAMmlD,UAClB5H,EAAiBv9C,OAAOD,QAAS67B,IAC9BA,EAAOzO,UACRi4B,EAAiBzgD,KAAKi3B,EAAO37B,OAIrC0kD,EAAuB9hB,EAAY7iC,MAAMilD,QAAQG,EAAkBnB,EAAwBjkD,MAAO,CAC9FgkD,SAAS,IACVE,aAEP,MAAO,CACHpH,4BACAmH,0BACAlH,gCACAhD,qBACAD,oBACAO,4BACAsK,yBACA5L,aACAC,eACAuF,UACAC,a,iBC3GD,SAAS6G,GAAajpC,GAAO,mBAAEkpC,IAClC,MAAM5B,EAAqB,eAAS,IACxBtnC,EAAMmpC,QAAQC,KAAM1Q,GACP,cAAbA,EAAIh8B,OAIN,MAEJ+pB,EAAc,eAAS,KACzB,MAAM,YAAE4iB,GAAgBrpC,EACxB,OAAO,OAAA0mB,GAAA,MAAe1mB,EAAM3a,KAAM,CAC9Bk/B,OAAQvkB,EAAMygC,OACd6I,YAAclE,GAAYA,EAAQiE,GAClC5T,YAAc2P,IACV,IAAIthC,EAAIoB,EACR,SAAgG,QAA3FA,EAAyC,QAAnCpB,EAAKwjC,EAAmB1jD,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGiN,gBAA6B,IAAP7L,OAAgB,EAASA,EAAG7c,KAAKyb,EAAIshC,SAOnJxD,EAA6B,eAAQ,KACvC,MAAM,QAAEuH,GAAYnpC,GACd,OAAExX,GAAW2gD,EACnB,IAAK,IAAIl8C,EAAI,EAAGA,EAAIzE,IAAUyE,EAC1B,IAAKk8C,EAAQl8C,GAAGyP,KACZ,OAAOzP,EAGf,OAAO,IAELs8C,EAA6B,eAAI,IACjCC,EAA2B,eAAI,MAC/BC,EAA6B,eAAI,GACjCC,EAA0B,eAAI,IACpCR,EAAmBtlD,MAAMD,QAASiyC,IAC9B,IAAI9xB,EAAIoB,EAQR,QAPsB3gB,IAAlBqxC,EAAO4D,SACPgQ,EAAyB5lD,MAAQ,CAC7BoyC,UAAWJ,EAAO/xC,IAClB21C,OAAQ5D,EAAO4D,OACf9D,MAA0C,QAAlC5xB,EAAK8xB,EAAO+T,wBAAqC,IAAP7lC,GAAgBA,IAGtE8xB,EAAO7Q,OAAQ,CACf,MAAMuU,EAA4B1D,EAAO0D,0BACrC1D,EAAO4F,eACP+N,EAA2B3lD,MAAMgyC,EAAO/xC,KACpCy1C,GAA6B,GAIjCiQ,EAA2B3lD,MAAMgyC,EAAO/xC,UAFLU,IAA9B+0C,EAG6B,OAA9BA,EAAqC,GAAKA,EAIC,QAA1Cp0B,EAAK0wB,EAAOgU,gCAA6C,IAAP1kC,EAAgBA,EAAK,QAIxF,MAAM2kC,EAA2B,eAAS,KACtC,MAAM,WAAEC,GAAe9pC,EACvB,IAAmB,IAAf8pC,EAEJ,OAAOA,EAAWC,OAEhBC,EAAwB,eAAS,KACnC,MAAM,WAAEF,GAAe9pC,EACvB,IAAmB,IAAf8pC,EAEJ,OAAOA,EAAWG,WAEhBxM,EAAuB,eAAeoM,EAA0BJ,GAChES,EAAoB,eAAeF,EAAuBN,GAC1DS,EAAqB,eAAS,KAChC,MAAM,WAAEL,GAAe9pC,EACvB,GAAI8pC,EAAY,CACZ,MAAM,UAAEM,GAAcN,EACtB,QAAkBvlD,IAAd6lD,EACA,OAAOA,KAIbvU,EAAqB,eAAS,KAGhC,MAAMwU,EAAiCnB,EAAmBtlD,MAAMmhC,OAAQ6Q,GAA2B,cAAhBA,EAAOl5B,WACpEnY,IAAlBqxC,EAAO4D,SACe,WAArB5D,EAAO0U,WACiB,YAArB1U,EAAO0U,YACc,IAArB1U,EAAO0U,YAETC,EAAeF,EAA+BtlB,OAAQ2T,IAA0B,IAAlBA,EAAI4R,WAAqB,GAC7F,OAAIC,EACO,CACHvU,UAAWuU,EAAa1mD,IAIxB6xC,MAAO6U,EAAaD,UAEpB9Q,OAAQ+Q,EAAa/Q,QAGzB6Q,EAA+B7hD,OACxB,KACJghD,EAAyB5lD,QAE9Bs3C,EAAuB,eAAS,KAClC,MAAMsP,EAA8BtB,EAAmBtlD,MAAMmhC,OAAQ6Q,QAC3BrxC,IAA9BqxC,EAAOwD,yBACkB70C,IAA7BqxC,EAAOyD,mBAEToR,EAAwB,GAC9BD,EAA4B7mD,QAASiyC,IACb,cAAhBA,EAAOl5B,MAAwC,WAAhBk5B,EAAOl5B,OAE1C+tC,EAAsB7U,EAAO/xC,KACzB+xC,EAAOwD,oBAAsBxD,EAAOyD,mBAAqB,QAEjE,MAAMqR,EAAgBxiD,OAAOkH,OAAOwpC,GAA0B2Q,EAA2B3lD,OAAQ6mD,GACjG,OAAOC,IAELC,EAAkB,eAAS,KAC7B,MAAMC,EAAoB1P,EAAqBt3C,OACzC,QAAEulD,GAAYnpC,EACpB,SAAS6qC,EAAoB7U,GACzB,MAAO,CAACqD,EAAmBJ,OAAW/0C,OAAO+0C,EAAIjD,IAAY9mC,QAAQhL,OAAOm1C,IAEhF,MAAQz1C,OAASmlD,UAAW1jD,IAAWohC,EACjCqkB,EAAgB,GAStB,OARA3B,EAAQxlD,QAASiyC,IACO,cAAhBA,EAAOl5B,MACS,WAAhBk5B,EAAOl5B,MACP,aAAck5B,GAGlBkV,EAAcviD,KAAK,CAACqtC,EAAO/xC,IAAK+xC,MAE7BvwC,EACDA,EAAK0/B,OAAQvF,IACX,MAAQe,QAAS0Y,GAAQzZ,EAEzB,IAAK,MAAOwW,EAAWJ,KAAWkV,EAAe,CAC7C,IAAIC,EAA2BH,EAAkB5U,GACjD,GAAgC,MAA5B+U,EACA,SAIJ,GAHKhsC,MAAM8Y,QAAQkzB,KACfA,EAA2B,CAACA,KAE3BA,EAAyBviD,OAC1B,SAEJ,MAAMu8B,EAA2B,YAAlB6Q,EAAO7Q,OAChB8lB,EAAoB7U,GACpBJ,EAAO7Q,OACb,GAAI6Q,GAA4B,oBAAX7Q,EAAuB,CACxC,GAA0B,QAAtB6Q,EAAOoV,WAKN,CACD,GAAID,EAAyBvgB,KAAM6O,GAAsBtU,EAAOsU,EAAmBJ,IAC/E,SAGA,OAAO,EATX,GAAI8R,EAAyBvgB,KAAM6O,IAAuBtU,EAAOsU,EAAmBJ,IAChF,OAAO,GAavB,OAAO,IAET,KAEJgS,EAAgB,eAAS,KAC3B,MAAM3M,EAAezI,EAAmBjyC,MACxC,GAAI06C,EAAc,CAGd,IAA4B,IAAxBA,EAAa9E,SAA2C,IAAxB8E,EAAa9E,OAC7C,OAAOmR,EAAgB/mD,MAE3B,MAAMsnD,EAAeP,EAAgB/mD,MAAMqI,MAAM,GAC3C+pC,EAAYsI,EAAatI,UAGzBN,EAAQ4I,EAAa5I,MACrB8D,OAAiCj1C,IAAxB+5C,EAAa9E,QAAgD,YAAxB8E,EAAa9E,OAC3D,CAAC2R,EAAMC,KACL,MAAMC,EAASF,EAAKnV,GACdsV,EAASF,EAAKpV,GACpB,MAAsB,kBAAXqV,GAAyC,kBAAXC,EAC9BD,EAASC,EAEO,kBAAXD,GACM,kBAAXC,EACAD,EAAOE,cAAcD,GAEzB,GAEThN,EAAa9E,OACnB,OAAO0R,EAAannD,KAAK,CAACynD,EAASC,IAAY3S,GAAepD,GAAS8D,EAAOgS,EAAQjrB,QAASkrB,EAAQlrB,UAE3G,OAAOoqB,EAAgB/mD,QAErBu9C,EAAmB,eAAS,KAC9B,GAAInhC,EAAMylB,OACN,OAAOgB,EAAY7iC,MAAMmlD,UAC7B,IAAK/oC,EAAM8pC,WACP,OAAOmB,EAAcrnD,MACzB,MAAMqmD,EAAWC,EAAkBtmD,MAC7B8e,GAAc+6B,EAAqB75C,MAAQ,GAAKqmD,EACtD,OAAOgB,EAAcrnD,MAAMqI,MAAMyW,EAAYA,EAAaunC,KAExDvN,EAAsB,eAAS,IAC1ByE,EAAiBv9C,MAAMsC,IAAKs5B,GAAWA,EAAOe,UAEzD,SAASmrB,EAAmB3B,GACxB,MAAM,WAAED,GAAe9pC,EACvB,GAAI8pC,EAAY,CACZ,MAAM,SAAE7jB,EAAU,gBAAiB0lB,EAAa,aAAEC,GAAiB9B,EAC/D7jB,GACA,OAAA59B,EAAA,MAAK49B,EAAU8jB,GACf6B,GACA,OAAAvjD,EAAA,MAAKujD,EAAc7B,GACnB4B,GACA,OAAAtjD,EAAA,MAAKsjD,EAAe5B,GACxB8B,EAAa9B,IAGrB,SAAS+B,EAAuB7B,GAC5B,MAAM,WAAEH,GAAe9pC,EACvB,GAAI8pC,EAAY,CACZ,MAAM,iBAAEiC,EAAkB,oBAAqBC,GAAqBlC,EAChEiC,GACA,OAAA1jD,EAAA,MAAK0jD,EAAkB9B,GACvB+B,GACA,OAAA3jD,EAAA,MAAK2jD,EAAkB/B,GAC3BgC,EAAiBhC,IAGzB,MAAMiC,EAAqB,eAAS,KAChC,IAAIlsC,EAAMylB,OASV,OAAOklB,EAAgB/mD,MAAM4E,OAT7B,CACI,MAAM,WAAEshD,GAAe9pC,EACvB,GAAI8pC,EAAY,CACZ,MAAM,UAAEqC,GAAcrC,EACtB,QAAkBvlD,IAAd4nD,EACA,OAAOA,MAMjBC,EAAsB,eAAS,IAC1BlkD,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI4Q,EAAM8pC,YAAa,CAEtD7jB,cAAU1hC,EAAWwnD,sBAAkBxnD,EAAW,gBAAiBmnD,EAAoB,oBAAqBI,EAI5G/B,KAAMtM,EAAqB75C,MAAOqmD,SAAUC,EAAkBtmD,MAAOwmD,eAAwC7lD,IAA7B2nD,EAAmBtoD,MAC7FumD,EAAmBvmD,WACnBW,EAAW4nD,UAAWD,EAAmBtoD,SAEvD,SAASioD,EAAa9B,GAClB,MAAQ,gBAAiB4B,EAAa,aAAEU,EAAY,aAAET,GAAiB5rC,EACnE4rC,GACA,OAAAvjD,EAAA,MAAKujD,EAAc7B,GACnBsC,GACA,OAAAhkD,EAAA,MAAKgkD,EAActC,GACnB4B,GACA,OAAAtjD,EAAA,MAAKsjD,EAAe5B,GACxBN,EAA2B7lD,MAAQmmD,EAEvC,SAASkC,EAAiBhC,GACtB,MAAQ,oBAAqBqC,EAAiB,iBAAEP,EAAgB,iBAAEC,GAAqBhsC,EACnF+rC,GACA,OAAA1jD,EAAA,MAAK0jD,EAAkB9B,GACvB+B,GACA,OAAA3jD,EAAA,MAAK2jD,EAAkB/B,GACvBqC,GACA,OAAAjkD,EAAA,MAAKikD,EAAmBrC,GAC5BP,EAAwB9lD,MAAQqmD,EAEpC,SAAS9L,EAAeoO,GACpB,MAAQ,kBAAmBC,EAAe,eAAEC,EAAc,eAAEC,GAAmB1sC,EAC3EwsC,GACA,OAAAnkD,EAAA,MAAKmkD,EAAiBD,GACtBE,GACA,OAAApkD,EAAA,MAAKokD,EAAgBF,GACrBG,GACA,OAAArkD,EAAA,MAAKqkD,EAAgBH,GACzB/C,EAAyB5lD,MAAQ2oD,EAErC,SAASnR,EAAgBuR,EAASC,GAC9B,MAAM,gBAAEC,EAAiB,mBAAoBC,EAAgB,gBAAEC,GAAoB/sC,EAC/E6sC,GACA,OAAAxkD,EAAA,MAAKwkD,EAAiBF,EAASC,GAC/BE,GACA,OAAAzkD,EAAA,MAAKykD,EAAkBH,EAASC,GAChCG,GACA,OAAA1kD,EAAA,MAAK0kD,EAAiBJ,EAASC,GACnCrD,EAA2B3lD,MAAQ+oD,EAEvC,SAAS5C,EAAKA,GACV8B,EAAa9B,GAEjB,SAAShmD,EAAKiyC,EAAWN,EAAQ,UAC7B,GAAKM,EAGA,CACD,MAAMuU,EAAerB,EAAmBtlD,MAAMwlD,KAAMxT,GAA2B,cAAhBA,EAAOl5B,MAClD,WAAhBk5B,EAAOl5B,MACPk5B,EAAO/xC,MAAQmyC,GACnB,IAAKuU,IAAiBA,EAAa/Q,OAC/B,OACJ,MAAMA,EAAS+Q,EAAa/Q,OAC5B2E,EAAe,CACXnI,YACAwD,SACA9D,MAAOA,SAZXsX,IAgBR,SAASA,IACL7O,EAAe,MAEnB,SAAS8O,IACLC,IAEJ,SAASA,IACLP,EAAQ,IAEZ,SAASA,EAAQA,GACb5nB,EAAO4nB,GAEX,SAAS5nB,EAAO4nB,GACPA,EAGIA,GACLvR,EAAgBxC,GAA0B+T,IAH1CvR,EAAgB,IASxB,MAAO,CACH3U,cACAgX,uBACA2O,sBACAjL,mBACAzE,sBACAxB,uBACArF,mBAAoBA,EACpB2L,YAAa,eAAI,MACjB8F,qBACA1F,6BACAxG,kBACA+C,iBACA8N,mBACAJ,eAEA9mB,SACA4nB,UACAM,cACAC,eACAnD,OACAhmD,Q,iBCxXD,SAASopD,GAAUntC,GAAO,iBAAEotC,EAAgB,qBAAE3P,EAAoB,aAAE8I,EAAY,cAAExI,IACrF,IAAIsP,EAAa,EACjB,MAAMhM,EAA2B,eAAI,MAC/BC,EAA4B,eAAI,MAChCgM,EAAkB,eAAS,IACtB,eAAattC,EAAM0+B,UAExB4H,EAAsB,eAAS,IAC1BtmC,EAAMmpC,QAAQpkB,OAAQ6Q,GAA4B,SAAjBA,EAAOoK,QAE7CqG,EAAuB,eAAS,IAC3BrmC,EAAMmpC,QAAQpkB,OAAQ6Q,GAA4B,UAAjBA,EAAOoK,QAE7CzC,EAAwB,eAAS,KACnC,MAAM4L,EAAU,GAChB,IAAIpmC,EAAO,EACX,IAAK,MAAM6yB,KAAU0Q,EAAoB1iD,MACrCulD,EAAQxQ,GAAU/C,IAAW7yB,EAC7BA,GAAQ01B,GAAY7C,IAAW,EAEnC,OAAOuT,IAEL3L,EAAyB,eAAS,KACpC,MAAM2L,EAAU,GAChB,IAAItJ,EAAQ,EACZ,IAAK,MAAMjK,KAAUyQ,EAAqBziD,MAAMqC,UAC5CkjD,EAAQxQ,GAAU/C,IAAWiK,EAC7BA,GAASjK,EAAO/1B,OAAS,EAE7B,OAAOspC,IAEX,SAASoE,IAEL,MAAQ3pD,MAAO4pD,GAAqBlH,EACpC,IAAImH,EAAY,EAChB,MAAQ7pD,MAAO+6C,GAAuBpB,EACtC,IAAI4F,EAAwB,KAC5B,IAAK,IAAIl2C,EAAI,EAAGA,EAAIugD,EAAiBhlD,SAAUyE,EAAG,CAC9C,MAAMpJ,EAAM80C,GAAU6U,EAAiBvgD,IACvC,KAAIogD,GAAc1O,EAAmB96C,IAAQ,GAAK4pD,GAK9C,MAJAtK,EAAwBt/C,EACxB4pD,GAAahV,GAAY+U,EAAiBvgD,KAAO,EAMzDo0C,EAAyBz9C,MAAQu/C,EAErC,SAASuK,IAEL,MAAQ9pD,MAAO+pD,GAAsBtH,EAC/BlR,EAAc3yC,OAAOwd,EAAM0+B,UACzB96C,MAAOgqD,GAAerH,EAC9B,GAAmB,OAAfqH,EACA,OACJ,IAAIC,EAAa,EACbzK,EAAyB,KAC7B,MAAQx/C,MAAOg7C,GAAwBpB,EACvC,IAAK,IAAIvwC,EAAI,EAAGA,EAAI0gD,EAAkBnlD,SAAUyE,EAAG,CAC/C,MAAMpJ,EAAM80C,GAAUgV,EAAkB1gD,IACxC,KAAI9C,KAAKymB,MAAMy8B,GAAczO,EAAoB/6C,IAAQ,GAAK+pD,EAAaC,GAAc1Y,GAKrF,MAJAiO,EAAyBv/C,EACzBgqD,GAAcpV,GAAYkV,EAAkB1gD,KAAO,EAM3Dq0C,EAA0B19C,MAAQw/C,EAEtC,SAAS0K,IACL,MAAMC,EAASX,EAAiBxpD,MAC1BwpD,EAAiBxpD,MAAMojD,mBACvB,KACAz/C,EAAO6lD,EAAiBxpD,MACxBwpD,EAAiBxpD,MAAMqjD,iBACvB,KACN,MAAO,CACH8G,SACAxmD,QAGR,SAASymD,IACL,MAAM,KAAEzmD,GAASumD,IACbvmD,IACAA,EAAKkc,UAAY,GAGzB,SAASy6B,IACuB,SAAxBH,EAAcn6C,OACd,gBAAoB8iD,GAG5B,SAASxE,IACuB,SAAxBnE,EAAcn6C,OACd,gBAAoB8iD,GAG5B,SAASA,IAIL,MAAM,OAAEqH,EAAM,KAAExmD,GAASumD,IACzB,IAAKvmD,EACD,OACJ,MAAQ3D,MAAOgqD,GAAerH,EAC9B,GAAmB,OAAfqH,EACA,OACJ,MAAQhqD,MAAOqqD,GAAelQ,EAC9B,GAAI/9B,EAAMR,WAAaQ,EAAMihC,WAAY,CACrC,IAAK8M,EACD,OAEe,SAAfE,GACAZ,EAAaU,EAAOV,WACpB9lD,EAAK8lD,WAAaA,IAGlBA,EAAa9lD,EAAK8lD,WAClBU,EAAOV,WAAaA,QAIxBA,EAAa9lD,EAAK8lD,WAEtBE,IACAG,IAEJ,SAAS1L,EAAoBj/B,GACzB,MAAM,OAAEgrC,GAAWD,IACdC,IAELA,EAAOV,WAAatqC,EACpB2jC,KAKJ,OAHA,eAAMjJ,EAAsB,KACxBuQ,MAEG,CACHV,kBACA/P,wBACAC,yBACA8I,sBACAD,uBACAhF,2BACAC,4BACAoF,kBACAxE,wBACAhE,0BACA8D,uB,iBCzJR,MAAMkM,GAAmBC,KAyCV,sBAAE,CAAC,eAAG,aAAc,mVAW/B,CAAC,eAAG,cAAe,CAAC,eAAE,IAAK,CAAC,eAAG,qBAAsB,iEAIrD,CAAC,eAAE,IAAK,CAAC,eAAG,wBAAyB,iEAIrC,CAAC,eAAE,IAAK,CAAC,eAAG,6BAA8B,iBAAkB,CAEhE,eAAE,eAAgB,+BAAgC,eAAE,IAAK,CAAC,eAAG,eAAgB,6MAQzE,CAAC,gBAAwB,CAC3BC,kBAAmB,0CACb,eAAG,4BAA6B,oBAAqB,eAAG,gCAAiC,mFAK5F,eAAG,oBAAqB,+CAGxB,eAAG,4BAA6B,6FAKhC,eAAG,mBAAoB,CAC1BC,WAAY,qCACZn9B,gBAAiB,2BACf,eAAG,gBAAiB,CACtBtM,UAAW,aACX0pC,eAAgB,cAChBD,WAAY,sCACX,CAAC,eAAE,UAAW,CACfn9B,gBAAiB,gCAChB,CAAC,eAAG,gBAAiB,CACtBA,gBAAiB,qCACX,eAAG,gBAAiB,8aAcxB,CAAC,eAAG,aAAc,CACpBsE,aAAc,SACZ04B,GAAkB,eAAG,YAAa,2EAKjC,eAAG,WAAY,mJAOf,eAAG,QAAS,CACfh9B,gBAAiB,iCACf,eAAG,WAAY,CACjBF,OAAQ,WACP,CAAC,eAAG,WAAY,CACjBqE,SAAU,sBACR,eAAE,UAAW,CACfnE,gBAAiB,mCACb,eAAG,oBAAqB,qQAW1B,CAAC,eAAG,OAAQ,CACdnM,UAAW,cACT,eAAG,MAAO,CACZA,UAAW,oBACT,eAAG,YAAa,CAClBoG,MAAO,kCACH,eAAG,oBAAqB,oUAgB1B,CAAC,eAAE,UAAW,yDAEb,eAAG,OAAQ,yDAEX,eAAG,SAAU,mGAGT,eAAG,gBAAiB,sXAazB,CAAC,eAAG,WAAY,CAClBojC,aAAc,sCACb,CAEH,eAAE,WAAY,CACZpqB,OAAQ,iBACN,eAAE,YAAa,CACjBA,OAAQ,mBACJ,eAAG,UAAW,mDAEf,eAAG,QAAS,CACfjT,gBAAiB,iCACf,eAAG,WAAY,6EAId,eAAG,oBAAqB,6DAIxBg9B,KAAoB,eAAG,mBAAoB,mMAS5C,CAAC,eAAG,OAAQ,CACdj9B,QAAS,MACL,eAAG,aAAc,yFAIlB,eAAG,qBAAsB,wPAOzB,eAAG,UAAW,CAAC,eAAG,qBAAsB,sCAAuC,eAAG,gBAAiB,CAAC,eAAG,gBAAiB,CAC3Hs9B,aAAc,sCACb,CAAC,eAAE,sBAAuB,CAC3BpqB,OAAQ,qBACF,eAAM,cAAe,CAAC,eAAG,gBAAiB,CAChDqqB,YAAa,wCACZ,CAAC,eAAG,OAAQ,CACbA,YAAa,yCACT,eAAG,gBAAiB,CACxBA,YAAa,wCACZ,CAAC,eAAG,WAAY,CACjBA,YAAa,2CACP,eAAG,WAAY,CAAC,eAAG,qBAAsB,CAC/C9/B,OAAQ,uCACR+/B,uBAAwB,uBACxBC,wBAAyB,yBACvB,eAAG,gBAAiB,CAAC,eAAG,WAAY,CACtCH,aAAc,yCACV,eAAG,6BAA8B,wIAGhC,eAAG,wBAAyB,CAAC,eAAG,sBAAuB,CAAC,eAAG,gBAAiB,CAAC,eAAE,sBAAuB,CAC3GF,WAAY,WACR,eAAG,gBAAiB,CAAC,eAAE,sBAAuB,CAClDA,WAAY,eACJ,eAAG,kBAAmB,CAAC,eAAG,gBAAiB,CAAC,eAAG,WAAY,CACnEE,aAAc,6CACR,eAAG,mBAAoB,8PAS1B,eAAG,+BAAgC,0PAQpC,CAAC,eAAE,uBAAwB,CAC7B1uC,MAAO,EACPJ,OAAQ,MACJ,eAAG,yBAA0B,gMAS5B,eAAG,yBAA0B,CAAC,eAAG,YAAa,CACnDD,UAAW,UACT,eAAG,QAAS,CACdM,QAAS,OACT6uC,cAAe,SACf1hC,QAAS,oBACR,CAAC,eAAG,WAAY,CACjB2hC,aAAc,OACdC,YAAa,IACX,eAAG,QAAS,CACdD,aAAc,OACdC,YAAa,MACT,eAAG,SAAU,oKAMf,CAAC,eAAG,SAAU,CAAC,eAAE,qBAAsB,CACzCC,OAAQ,gCACN,eAAE,eAAgB,CACpBD,YAAa,QACP,eAAG,UAAW,CACpBC,OAAQ,kBACJ,eAAY,eAAG,aAAc,oQAM7B,eAAc,eAAG,aAAc,gRAQrC,SAASX,KACP,MAAO,CAAC,eAAG,aAAc,mDAIvB,CAAC,eAAE,WAAY,oMAUZ,eAAG,cAAe,CACrBtO,MAAO,EACP58B,SAAU,SACVohC,OAAQ,GACP,CAAC,eAAE,YAAa,oMCpVrB,SAAS0K,GAAe5F,GACpB,MAAMnK,EAAO,GACPC,EAAO,GACP+P,EAAkB,GAClBC,EAAa,IAAIC,QACvB,IAAIC,GAAY,EACZC,EAAe,EACfC,GAAc,EAClB,SAASC,EAAenG,EAASoG,GACzBA,EAAeJ,IACfnQ,EAAKuQ,GAAgB,GACrBJ,EAAWI,GAEf,IAAK,MAAM3Z,KAAUuT,EACb,aAAcvT,EACd0Z,EAAe1Z,EAAOphB,SAAU+6B,EAAe,IAG/CtQ,EAAK12C,KAAK,CACN1E,IAAK80C,GAAU/C,GACfxzC,MAAO22C,GAAuBnD,GAC9BA,WAEJwZ,GAAgB,EAChBC,IAAgBzZ,EAAO8J,SACvBsP,EAAgBzmD,KAAKqtC,IAKjC,SAAS4Z,EAAgBrG,EAASoG,EAAcE,GAC5C,IAAIC,GAAoB,EACpBC,EAAiB,EACrB,MAAMtkD,EAAY89C,EAAQ3gD,OAAS,EACnC2gD,EAAQxlD,QAAQ,CAACiyC,EAAQ1pC,KACrB,IAAI4X,EACJ,GAAI,aAAc8xB,EAAQ,CAEtB,MAAM6J,EAASgQ,GAAgBvjD,IAAUb,EACnCukD,EAAU,CACZha,SACA2J,QAAS,EACTC,QAAS,EACTC,UAEJ+P,EAAgB5Z,EAAOphB,SAAU+6B,EAAe,EAAG9P,GACnD7J,EAAOphB,SAAS7wB,QAASksD,IACrB,IAAI/rC,EAAIoB,EACR0qC,EAAQrQ,SAAyG,QAA7Fr6B,EAA4C,QAAtCpB,EAAKmrC,EAAWhrD,IAAI4rD,UAAiC,IAAP/rC,OAAgB,EAASA,EAAGy7B,eAA4B,IAAPr6B,EAAgBA,EAAK,IAElJ+pC,EAAWp6C,IAAI+gC,EAAQga,GACvB5Q,EAAKuQ,GAAchnD,KAAKqnD,OAEvB,CAED,GADAF,GAAoB,EAChBA,EAAmBC,EACnB,OAEJ,IAAIpQ,EAAU,EACV,iBAAkB3J,IAClB2J,EAAyC,QAA9Bz7B,EAAK8xB,EAAOka,oBAAiC,IAAPhsC,EAAgBA,EAAK,GAEtEy7B,EAAU,IACVoQ,EAAiBD,EAAmBnQ,GAExC,MAAME,EAASiQ,EAAmBnQ,IAAY6P,EACxCQ,EAAU,CACZha,SACA2J,QAASA,EACTC,QAAS2P,EAAWI,EAAe,EACnC9P,UAEJwP,EAAWp6C,IAAI+gC,EAAQga,GACvB5Q,EAAKuQ,GAAchnD,KAAKqnD,MAKpC,OAjDAN,EAAenG,EAAS,GAgDxBqG,EAAgBrG,EAAS,GAAG,GACrB,CACHkG,cACArQ,OACAC,OACA+P,mBAGD,SAASe,GAAe/vC,GAC3B,MAAMgwC,EAAc,eAAS,IAAMjB,GAAe/uC,EAAMmpC,UACxD,MAAO,CACHvL,QAAS,eAAS,IAAMoS,EAAYpsD,MAAMo7C,MAC1CnB,QAAS,eAAS,IAAMmS,EAAYpsD,MAAMq7C,MAC1CgR,eAAgB,eAAS,IAAMD,EAAYpsD,MAAMyrD,aACjDnG,mBAAoB,eAAS,IAAM8G,EAAYpsD,MAAMorD,kBCzFtD,SAASkB,GAAUlwC,GACtB,MAAMuhC,EAAkB,eAAQ,KAC5B,IAAK,MAAM7I,KAAO14B,EAAMmpC,QACpB,GAAiB,WAAbzQ,EAAIh8B,KAIJ,OAAOg8B,EAAIiL,eAIjBwM,EAAiC,eAAInwC,EAAMowC,wBAC3CC,EAA+B,eAAMrwC,EAAO,mBAC5CkhC,EAA2B,eAAemP,EAA8BF,GAC9E,SAASlO,EAAwBqO,GAC7B,MAAM,wBAAEC,EAAyB,2BAA4BC,GAA6BxwC,EACtFuwC,GACA,OAAAloD,EAAA,MAAKkoD,EAAyBD,GAE9BE,GACA,OAAAnoD,EAAA,MAAKmoD,EAA0BF,GAEnCH,EAA+BvsD,MAAQ0sD,EAE3C,MAAO,CACHpP,2BACAK,kBACAU,2BCfD,MAAMwO,GAAiBvoD,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAE8pC,WAAY,CACrFptC,KAAM,CAACxU,OAAQgY,SACfC,SAAS,GACV0E,UAAW,CAACriB,OAAQ0B,QAASsb,UAAW,CAAChd,OAAQ0B,QAEpDilD,QAAS,CACLzsC,KAAMqC,MACNoB,QAAS,IAAM,IAChB+4B,aAAc,CAACh1C,OAAQ0c,UAAWojC,SAAUpjC,SAAU6/B,OAAQ7/B,SAAU4iC,QAAS,CAAC5iC,UAAWvb,KAAM,CAClGqX,KAAMqC,MACNoB,QAAS,IAAM,IAChB8V,QAAS/V,QAASkR,SAAU,CAC3B1U,KAAMwD,QACNC,aAAS5b,GACVmsD,eAAgB,CACfh0C,KAAMwD,QACNC,aAAS5b,GACVm6C,QAAS,CAACl8C,OAAQ0B,QAASsjD,sBAAuB,CACjD9qC,KAAMqC,MACNoB,QAAS,IAAM,IAChBunC,eAAgB3oC,MAAO4xC,WAAY,CAClCj0C,KAAMwD,QACNC,SAAS,GACVywC,aAAc1wC,QAAS2Q,KAAM,CAC5BnU,KAAMxY,OACNic,QAAS,UACVslB,OAAQvlB,QAASkwC,uBAAwB,CACxC1zC,KAAMqC,MACNoB,QAAS,IACVygC,gBAAiB7hC,MAAOsiB,cAAenhB,QAASmgC,YAAa,CAC5D3jC,KAAMxY,OACNic,QAAS,QACVynC,QAAS,CACRlrC,KAAMwD,QACNC,SAAS,GACVkpC,YAAa,CACZ3sC,KAAMxY,OACNic,QAAS,YACV4jC,OAAQ,CACPrnC,KAAMla,OACN2d,QAAS,IACV8gC,WAAY/gC,QAAS,gBAAiB,CAACU,SAAU7B,OAAQ6sC,aAAc,CAAChrC,SAAU7B,OAAQ,oBAAqB,CAAC6B,SAAU7B,OAAQitC,iBAAkB,CAACprC,SAAU7B,OAAQ,kBAAmB,CAAC6B,SAAU7B,OAAQ0tC,eAAgB,CAAC7rC,SAAU7B,OAAQ,mBAAoB,CAAC6B,SAAU7B,OAAQ8tC,gBAAiB,CAACjsC,SAAU7B,OAAQ,0BAA2B,CAAC6B,SAAU7B,OAAQ2pC,uBAAwB,CAAC9nC,SAAU7B,OAAQ,2BAA4B,CAAC6B,SAAU7B,OAAQwxC,wBAAyB,CAAC3vC,SAAU7B,OAE1estC,aAAc,CACV3vC,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,GACVwnD,iBAAkB,CACjBrvC,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,GACVmoD,eAAgB,CACfhwC,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,GACVwoD,gBAAiB,CAChBrwC,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,GACVokD,uBAAwB,CACvBjsC,KAAM,CAACkE,SAAU7B,OACjB8S,UAAW,KAIA,EAEX1R,aAAS5b,KAEF,sBAAgB,CAC3B2I,KAAM,YACN2jD,MAAO,CAAC,iBACR7wC,MAAOywC,GACP,MAAMzwC,GACF,MAAM,kBAAE+R,EAAiB,mBAAEC,GAAuB,eAAUhS,GACtD8wC,EAA0B,eAAS,KACrC,MAAM,eAAEJ,GAAmB1wC,EAG3B,OAAI+R,EAAkBnuB,aAECW,IAAnBmsD,GACOA,KAGTx+B,EAAW,eAAS,YAAa,YAAa,GAAO,EAAgBlS,EAAOgS,GAC5Eu0B,EAAe,eAAI,MACnBxI,EAAgB,eAAI,QACpBqP,EAAmB,eAAI,OACvB,QAAExP,EAAO,QAAEC,EAAO,mBAAEqL,EAAkB,eAAE+G,GAAmBF,GAAe/vC,IAC1E,YAAEymB,EAAW,qBAAEgX,EAAoB,iBAAE0D,EAAgB,oBAAEzE,EAAmB,mBAAE4K,EAAkB,YAAE9F,EAAW,oBAAE4K,EAAmB,qBAAElR,EAAoB,mBAAErF,EAAkB,2BAAE+L,EAA0B,gBAAExG,EAAe,eAAE+C,EAAc,OAAEpZ,EAAM,QAAE4nB,EAAO,YAAEM,EAAW,aAAEC,EAAY,KAAEnD,EAAI,KAAEhmD,GAASklD,GAAajpC,EAAO,CAAEkpC,wBAC1T,WAAEvM,EAAU,aAAEC,EAAY,QAAEuF,EAAO,UAAEC,EAAS,0BAAEnE,EAAyB,mBAAEN,EAAkB,kBAAED,EAAiB,0BAAEgD,EAAyB,8BAAEC,GAAkC0G,GAASrnC,EAAO,CACjMsnC,qBACA7gB,cACA0a,sBAEE,yBAAED,EAAwB,gBAAEK,EAAe,wBAAEU,GAA4BiO,GAAUlwC,IACnF,sBAAEkiC,EAAqB,wBAAEhE,EAAuB,gBAAEwI,EAAe,oBAAE1E,EAAmB,yBAAEX,EAAwB,0BAAEC,GAAyB,oBAAEgF,GAAmB,qBAAED,GAAoB,sBAAE9I,GAAqB,uBAAEC,IAA2B2P,GAAUntC,EAAO,CAC7P+9B,gBACAwI,eACA6G,mBACA3P,0BAEE,UAAEvW,IAAc,eAAU,aAC1B8W,GAAuB,eAAS,IAI9Bh+B,EAAMqhB,eACNrhB,EAAMihC,iBACc18C,IAApByb,EAAMR,WACNywC,EAAersD,MACR,QAEJoc,EAAMqgC,aAEjB,eAAQ1K,GAAuB,CAC3BkM,UAAW,eAAM7hC,EAAO,UACxB4hC,6BACA2E,eACAzI,YAAa,iBACb0D,cACAxvB,qBACAgoB,eAAgB9nB,EAChBorB,WAAY,eAAS,IAAMt9B,EAAM0+B,SACjCd,UACAC,UACAsD,mBACAE,2BACAC,6BACAgF,uBACAD,wBACA9I,yBACAC,0BACAC,uBACAE,qBACAD,oBACA7H,qBACAqF,uBACA6V,WAAY,eAAM/wC,EAAO,WACzBohC,gBAAiB,eAAMphC,EAAO,gBAC9B0gC,4BACAQ,2BACAP,gCACAzZ,aACA6W,gBACAiT,UAAW,eAAMhxC,EAAO,UACxBuhC,kBACAE,WAAY,eAAMzhC,EAAO,WACzB0hC,iBAAkB,eAAM1hC,EAAO,iBAC/B8hC,YAAa,eAAM9hC,EAAO,YAC1Bi9B,gBAAiB,eAAS,KACtB,MAAQr5C,MAAOqtD,GAAoB3J,EACnC,OAA2B,OAApB2J,QAAgD,IAApBA,OAA6B,EAASA,EAAgBnuC,UAE7F45B,sBACAiF,eAAgB,eAAS,IACdlb,EAAY7iC,MAAMstD,SAAW,GAExC/V,qBAAsB,eAAS,KAC3B,MAAQpoC,MAAM,mBAAEsY,EAAkB,cAAEsjB,EAAa,mBAAEC,IAAyB1c,EAAStuB,MAErF,MAAO,CACH,mBAAoB+qC,EACpB,yBAA0BC,EAC1B,yBAA0BvjB,KAGlC2yB,wBACA+D,aAAc,eAAM/hC,EAAO,aAC3BwmC,aAAc,eAAMxmC,EAAO,aAC3BymC,cAAe,eAAMzmC,EAAO,cAC5Bi+B,4BACAyI,kBACAtL,kBACA+C,iBACAgE,UACAC,YACAzF,aACAC,eACAqF,0BACA/D,0BACAgE,wBACAF,wBAEJ,MAAMiB,GAAiB,CACnBle,SACA4nB,UACAM,cACAC,eACAnD,OACAhmD,QAEJ,OAAOmE,OAAOkH,OAAOlH,OAAOkH,OAAO,CAAEg+C,mBAAkBx6B,gBAAiBZ,EAAoB8I,YAAa5I,EAAUuxB,cAAetC,EAAkBtuB,eAAgBd,EAAmBo/B,qBAAsBL,EAAyBM,iBAAkBhF,GAAuBnJ,IAAiB,CAAEnwB,QAAS,eAAS,KAC5S,MAAM,KAAEjC,GAAS7Q,GACTrN,QAAQ,qBAAEogB,GAAwBhgB,MAAM,YAAErC,EAAW,aAAE+/B,EAAY,QAAEC,EAAO,aAAEC,EAAY,QAAEC,EAAO,YAAEC,EAAW,YAAEC,EAAW,aAAEC,EAAY,mBAAEC,EAAkB,YAAEC,EAAW,kBAAEC,EAAiB,WAAE1C,EAAU,aAAE79B,EAAY,WAAE6/B,EAAU,aAAEe,EAAY,aAAEF,EAAY,iBAAEF,EAAgB,kBAAEG,EAAiB,kBAAEF,EAAiB,mBAAEI,EAAkB,eAAEE,EAAc,eAAEE,EAAc,oBAAEH,EAAmB,oBAAEE,EAAmB,iBAAElD,EAAgB,aAAEC,EAAY,eAAEoD,EAAc,gBAAED,EAAe,WAAEtD,EAAU,aAAEziB,EAAY,YAAEjC,EAAW,eAAEkoB,EAAgB,CAAC,eAAU,WAAYlhB,IAAQjgB,EAAU,CAAC,eAAU,YAAaigB,IAAQwgC,EAAW,CAAC,eAAU,YAAaxgC,IAAQygC,IAAgBp/B,EAAStuB,MACtqB,MAAO,CACH,cAAegN,EACf,eAAgBygD,EAChB,eAAgBC,EAChB,WAAYv+B,EACZ,kBAAmBpiB,EACnB,gBAAiB6/B,EACjB,iBAAkB9/B,EAClB,uBAAwBygC,EACxB,yBAA0BK,EAC1B,aAAcd,EACd,mBAAoBC,EACpB,mBAAoBU,EACpB,yBAA0BC,EAC1B,qBAAsBI,EACtB,2BAA4BC,EAC5B,aAAcf,EACd,mBAAoBH,EACpB,mBAAoBc,EACpB,yBAA0BH,EAC1B,qBAAsBQ,EACtB,2BAA4BH,EAC5B,kBAAmBX,EACnB,kBAAmBD,EACnB,mBAAoBE,EACpB,0BAA2BC,EAC3B,kBAAmBC,EACnB,yBAA0BC,EAC1B,gBAAiB1C,EACjB,sBAAuBC,EACvB,kBAAmBC,EACnB,sBAAuBmD,EACvB,qBAAsBC,EACtB,gBAAiBvD,EACjB,iBAAkB1kB,EAClB,kBAAmBiC,EACnB,oBAAqBimB,QAIrC,SACI,MAAM,gBAAEnf,GAAoBloB,KAC5B,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAO,CACfqlB,EAAH,cACA,CACI,CAAIA,EAAH,yBAA4CloB,KAAKmoB,eAClD,CAAID,EAAH,gCAAmDloB,KAAKymD,qBACzD,CAAIv+B,EAAH,4BAA+CloB,KAAKimD,WACrD,CAAI/9B,EAAH,8BAAiDloB,KAAKkmD,aACvD,CAAIh+B,EAAH,wBAA2CloB,KAAKurB,QACjD,CAAIrD,EAAH,4BAA+CloB,KAAKu2C,aAE1D7+C,MAAOsI,KAAKooB,SACf,eAAE,MAAO,CAAEvlB,MAAUqlB,EAAH,uBACd,eAAE2+B,GAAW,CAAExjD,IAAK,oBAAsB,CACtCoS,QAAS,IAAoC,IAA9BzV,KAAK+4C,cAAcj7C,OAAgB,cAAD,CAAG,MAAO,CAAE+E,MAAO,CACzDqlB,EAAH,oBACA,CACI,CAAIA,EAAH,2BAA8CloB,KAAKurB,WAEvD,eAAWvrB,KAAK2a,OAAQ,aAAS9gB,EAAW,IAAM,CACvD,eAAE,OAAQ,CAAEo6B,MAAOj0B,KAAKowB,YAAYloB,MAAMqZ,MAAO4S,eAAgBn0B,KAAKowB,YAAYgE,cAAc7S,WAC7F,QAEfvhB,KAAKo/C,WAAc,cAAD,CAAG,MAAO,CAAEv8C,MAAUqlB,EAAH,2BACjC,eAAE,OAAa1qB,OAAOkH,OAAO,CAAEuvB,MAAOj0B,KAAKowB,YAAYloB,MAAMw/B,WAAYvT,eAAgBn0B,KAAKowB,YAAYgE,cAAcsT,WAAYrhB,SAAUrmB,KAAKurB,SAAWvrB,KAAK0mD,oBAAuB,KAC9L,eAAE,OAAY,CAAElkD,KAAM,+BAAiC,CACnDiT,QAAS,IACEzV,KAAKurB,QAAW,cAAD,CAAG,OAAc,CAAE7C,UAAWR,EAAiBiR,YAAa,KAAS,Y,kCC5S/G,oDAIO,SAAS9wB,EAAK5C,GACjB,MAAM,WAAE0+B,GAAe1+B,EACvB,MAAO,CACHw7B,cAAekD,GAGvB,MAAM2iB,EAAc,eAAY,CAC5BtkD,KAAM,SACNyF,OAAQ,OACRC,MAAO,CACHg5B,kBAAmB,OACnBM,mBAAoB,QAExBn5B,SAEW,U,kCCjBf,EAAQ,QACR,IAAIa,EAAI,EAAQ,QACZ69C,EAAa,EAAQ,QACrB39C,EAAiB,EAAQ,QACzBd,EAAW,EAAQ,QACnB0+C,EAAc,EAAQ,QACtBp9C,EAAiB,EAAQ,QACzBq9C,EAA4B,EAAQ,QACpCn9C,EAAsB,EAAQ,QAC9BP,EAAa,EAAQ,QACrB29C,EAAS,EAAQ,QACjBC,EAAO,EAAQ,QACfC,EAAU,EAAQ,QAClBvoD,EAAW,EAAQ,QACnB8pB,EAAW,EAAQ,QACnBpgB,EAAY,EAAQ,QACpByzB,EAAS,EAAQ,QACjBqrB,EAA2B,EAAQ,QACnCC,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAC5B/uD,EAAkB,EAAQ,QAE1BgvD,EAAcT,EAAW,SACzBU,EAAgBV,EAAW,WAC3BW,EAAmBD,GAAiBA,EAAchqD,UAClDkqD,EAAUZ,EAAW,WACrBruD,EAAWF,EAAgB,YAC3BovD,EAAoB,kBACpBC,EAA6BD,EAAoB,WACjD19C,EAAmBJ,EAAoBK,IACvC29C,EAAyBh+C,EAAoBO,UAAUu9C,GACvDG,EAA2Bj+C,EAAoBO,UAAUw9C,GAEzDG,EAAO,MACPC,EAAY5zC,MAAM,GAElB6zC,EAAkB,SAAUC,GAC9B,OAAOF,EAAUE,EAAQ,KAAOF,EAAUE,EAAQ,GAAK9mD,OAAO,qBAAuB8mD,EAAQ,KAAM,QAGjGC,EAAgB,SAAUC,GAC5B,IACE,OAAOC,mBAAmBD,GAC1B,MAAOnrD,GACP,OAAOmrD,IAIPE,EAAc,SAAUC,GAC1B,IAAIvwD,EAASuwD,EAAGh3C,QAAQw2C,EAAM,KAC1BG,EAAQ,EACZ,IACE,OAAOG,mBAAmBrwD,GAC1B,MAAOiF,GACP,MAAOirD,EACLlwD,EAASA,EAAOuZ,QAAQ02C,EAAgBC,KAAUC,GAEpD,OAAOnwD,IAIPymD,EAAO,eAEPltC,EAAU,CACZ,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,KAGLi3C,EAAW,SAAU/nD,GACvB,OAAO8Q,EAAQ9Q,IAGbgoD,EAAY,SAAUF,GACxB,OAAO16C,mBAAmB06C,GAAIh3C,QAAQktC,EAAM+J,IAG1CE,EAAoB,SAAU1wD,EAAQqZ,GACxC,GAAIA,EAAO,CACT,IAEIs3C,EAAWzvC,EAFX0vC,EAAav3C,EAAM5V,MAAM,KACzB8F,EAAQ,EAEZ,MAAOA,EAAQqnD,EAAW/qD,OACxB8qD,EAAYC,EAAWrnD,KACnBonD,EAAU9qD,SACZqb,EAAQyvC,EAAUltD,MAAM,KACxBzD,EAAO4F,KAAK,CACV1E,IAAKovD,EAAYpvC,EAAMxH,SACvBzY,MAAOqvD,EAAYpvC,EAAMpb,KAAK,WAOpCoU,EAAqB,SAAUb,GACjCtR,KAAK8oD,QAAQhrD,OAAS,EACtB6qD,EAAkB3oD,KAAK8oD,QAASx3C,IAG9By3C,EAA0B,SAAUC,EAAQrzC,GAC9C,GAAIqzC,EAASrzC,EAAU,MAAM1D,UAAU,yBAGrCg3C,EAA0BhC,GAA0B,SAAkBiC,EAAQC,GAChFj/C,EAAiBlK,KAAM,CACrBgS,KAAM61C,EACNuB,SAAU9B,EAAYQ,EAAuBoB,GAAQJ,SACrDK,KAAMA,MAEP,YAAY,WACb,IAAIn4C,EAAQ+2C,EAAyB/nD,MACjCmpD,EAAOn4C,EAAMm4C,KACbE,EAAOr4C,EAAMo4C,SAAS5wB,OACtBrf,EAAQkwC,EAAKnwD,MAGf,OAFGmwD,EAAKtnD,OACRsnD,EAAKnwD,MAAiB,SAATiwD,EAAkBhwC,EAAMhgB,IAAe,WAATgwD,EAAoBhwC,EAAMjgB,MAAQ,CAACigB,EAAMhgB,IAAKggB,EAAMjgB,QACxFmwD,KAKPC,EAA6B,WAC/B//C,EAAWvJ,KAAMspD,EAA4B1B,GAC7C,IAGI2B,EAAgBH,EAAU5wB,EAAM6wB,EAAMG,EAAeC,EAAWC,EAAO76C,EAAQ1V,EAH/EwwD,EAAO1pD,UAAUnC,OAAS,EAAImC,UAAU,QAAKpG,EAC7CiY,EAAO9R,KACP8oD,EAAU,GAUd,GAPA5+C,EAAiB4H,EAAM,CACrBE,KAAM41C,EACNkB,QAASA,EACT12C,UAAW,aACXD,mBAAoBA,SAGTtY,IAAT8vD,EACF,GAAIhhC,EAASghC,GAEX,GADAJ,EAAiBhC,EAAkBoC,GACL,oBAAnBJ,EAA+B,CACxCH,EAAWG,EAAe5rD,KAAKgsD,GAC/BnxB,EAAO4wB,EAAS5wB,KAChB,QAAS6wB,EAAO7wB,EAAK76B,KAAKyrD,IAAWrnD,KAAM,CAGzC,GAFAynD,EAAgBlC,EAAYzoD,EAASwqD,EAAKnwD,QAC1CuwD,EAAYD,EAAchxB,MAEvBkxB,EAAQD,EAAU9rD,KAAK6rD,IAAgBznD,OACvC8M,EAAS46C,EAAU9rD,KAAK6rD,IAAgBznD,OACxC0nD,EAAU9rD,KAAK6rD,GAAeznD,KAC/B,MAAMkQ,UAAU,mCAClB62C,EAAQjrD,KAAK,CAAE1E,IAAKoP,EAAUmhD,EAAMxwD,OAAQA,MAAOqP,EAAUsG,EAAO3V,eAEjE,IAAKC,KAAOwwD,EAAUzC,EAAOyC,EAAMxwD,IAAM2vD,EAAQjrD,KAAK,CAAE1E,IAAKA,EAAKD,MAAOqP,EAAUohD,EAAKxwD,WAE/FwvD,EACEG,EACgB,kBAATa,EAAuC,MAAnBA,EAAKj+C,OAAO,GAAai+C,EAAKpoD,MAAM,GAAKooD,EAAOphD,EAAUohD,KAMzFC,EAA2BN,EAA2B7rD,UA2J1D,GAzJAupD,EAAY4C,EAA0B,CAGpCC,OAAQ,SAAgBrnD,EAAMtJ,GAC5B6vD,EAAwB9oD,UAAUnC,OAAQ,GAC1C,IAAIkT,EAAQ82C,EAAuB9nD,MACnCgR,EAAM83C,QAAQjrD,KAAK,CAAE1E,IAAKoP,EAAU/F,GAAOtJ,MAAOqP,EAAUrP,KAC5D8X,EAAMoB,aAIR,OAAU,SAAU5P,GAClBumD,EAAwB9oD,UAAUnC,OAAQ,GAC1C,IAAIkT,EAAQ82C,EAAuB9nD,MAC/B8oD,EAAU93C,EAAM83C,QAChB3vD,EAAMoP,EAAU/F,GAChBhB,EAAQ,EACZ,MAAOA,EAAQsnD,EAAQhrD,OACjBgrD,EAAQtnD,GAAOrI,MAAQA,EAAK2vD,EAAQvkD,OAAO/C,EAAO,GACjDA,IAEPwP,EAAMoB,aAIR7Y,IAAK,SAAaiJ,GAChBumD,EAAwB9oD,UAAUnC,OAAQ,GAI1C,IAHA,IAAIgrD,EAAUhB,EAAuB9nD,MAAM8oD,QACvC3vD,EAAMoP,EAAU/F,GAChBhB,EAAQ,EACLA,EAAQsnD,EAAQhrD,OAAQ0D,IAC7B,GAAIsnD,EAAQtnD,GAAOrI,MAAQA,EAAK,OAAO2vD,EAAQtnD,GAAOtI,MAExD,OAAO,MAIT4wD,OAAQ,SAAgBtnD,GACtBumD,EAAwB9oD,UAAUnC,OAAQ,GAK1C,IAJA,IAAIgrD,EAAUhB,EAAuB9nD,MAAM8oD,QACvC3vD,EAAMoP,EAAU/F,GAChBvK,EAAS,GACTuJ,EAAQ,EACLA,EAAQsnD,EAAQhrD,OAAQ0D,IACzBsnD,EAAQtnD,GAAOrI,MAAQA,GAAKlB,EAAO4F,KAAKirD,EAAQtnD,GAAOtI,OAE7D,OAAOjB,GAITuR,IAAK,SAAahH,GAChBumD,EAAwB9oD,UAAUnC,OAAQ,GAC1C,IAAIgrD,EAAUhB,EAAuB9nD,MAAM8oD,QACvC3vD,EAAMoP,EAAU/F,GAChBhB,EAAQ,EACZ,MAAOA,EAAQsnD,EAAQhrD,OACrB,GAAIgrD,EAAQtnD,KAASrI,MAAQA,EAAK,OAAO,EAE3C,OAAO,GAITgR,IAAK,SAAa3H,EAAMtJ,GACtB6vD,EAAwB9oD,UAAUnC,OAAQ,GAQ1C,IAPA,IAMIqb,EANAnI,EAAQ82C,EAAuB9nD,MAC/B8oD,EAAU93C,EAAM83C,QAChBiB,GAAQ,EACR5wD,EAAMoP,EAAU/F,GAChBwnD,EAAMzhD,EAAUrP,GAChBsI,EAAQ,EAELA,EAAQsnD,EAAQhrD,OAAQ0D,IAC7B2X,EAAQ2vC,EAAQtnD,GACZ2X,EAAMhgB,MAAQA,IACZ4wD,EAAOjB,EAAQvkD,OAAO/C,IAAS,IAEjCuoD,GAAQ,EACR5wC,EAAMjgB,MAAQ8wD,IAIfD,GAAOjB,EAAQjrD,KAAK,CAAE1E,IAAKA,EAAKD,MAAO8wD,IAC5Ch5C,EAAMoB,aAIR/Y,KAAM,WACJ,IAII8f,EAAO8wC,EAAcC,EAJrBl5C,EAAQ82C,EAAuB9nD,MAC/B8oD,EAAU93C,EAAM83C,QAEhBvnD,EAAQunD,EAAQvnD,QAGpB,IADAunD,EAAQhrD,OAAS,EACZosD,EAAa,EAAGA,EAAa3oD,EAAMzD,OAAQosD,IAAc,CAE5D,IADA/wC,EAAQ5X,EAAM2oD,GACTD,EAAe,EAAGA,EAAeC,EAAYD,IAChD,GAAInB,EAAQmB,GAAc9wD,IAAMggB,EAAMhgB,IAAK,CACzC2vD,EAAQvkD,OAAO0lD,EAAc,EAAG9wC,GAChC,MAGA8wC,IAAiBC,GAAYpB,EAAQjrD,KAAKsb,GAEhDnI,EAAMoB,aAGRnZ,QAAS,SAAiBkxD,GACxB,IAGIhxC,EAHA2vC,EAAUhB,EAAuB9nD,MAAM8oD,QACvCsB,EAAgBjD,EAAKgD,EAAUlqD,UAAUnC,OAAS,EAAImC,UAAU,QAAKpG,EAAW,GAChF2H,EAAQ,EAEZ,MAAOA,EAAQsnD,EAAQhrD,OACrBqb,EAAQ2vC,EAAQtnD,KAChB4oD,EAAcjxC,EAAMjgB,MAAOigB,EAAMhgB,IAAK6G,OAI1C89C,KAAM,WACJ,OAAO,IAAImL,EAAwBjpD,KAAM,SAG3Ck9B,OAAQ,WACN,OAAO,IAAI+rB,EAAwBjpD,KAAM,WAG3C8oD,QAAS,WACP,OAAO,IAAIG,EAAwBjpD,KAAM,aAE1C,CAAE0T,YAAY,IAGjBpL,EAASshD,EAA0BlxD,EAAUkxD,EAAyBd,SAItExgD,EAASshD,EAA0B,YAAY,WAC7C,IAGIzwC,EAHA2vC,EAAUhB,EAAuB9nD,MAAM8oD,QACvC7wD,EAAS,GACTuJ,EAAQ,EAEZ,MAAOA,EAAQsnD,EAAQhrD,OACrBqb,EAAQ2vC,EAAQtnD,KAChBvJ,EAAO4F,KAAK6qD,EAAUvvC,EAAMhgB,KAAO,IAAMuvD,EAAUvvC,EAAMjgB,QACzD,OAAOjB,EAAO8F,KAAK,OACpB,CAAE2V,YAAY,IAEjB9J,EAAe0/C,EAA4B1B,GAE3C1+C,EAAE,CAAEG,QAAQ,EAAMyK,QAAS1K,GAAkB,CAC3C3P,gBAAiB6vD,KAIdlgD,GAAoC,mBAAXu+C,EAAuB,CACnD,IAAI0C,EAAqB,SAAUV,GACjC,GAAIhhC,EAASghC,GAAO,CAClB,IACIW,EADAztD,EAAO8sD,EAAK9sD,KAEhB,GAAIuqD,EAAQvqD,KAAU+qD,EAKpB,OAJA0C,EAAUX,EAAKW,QAAU,IAAI3C,EAAQgC,EAAKW,SAAW,IAAI3C,EACpD2C,EAAQ9gD,IAAI,iBACf8gD,EAAQngD,IAAI,eAAgB,mDAEvB6xB,EAAO2tB,EAAM,CAClB9sD,KAAMwqD,EAAyB,EAAG7tD,OAAOqD,IACzCytD,QAASjD,EAAyB,EAAGiD,KAGzC,OAAOX,GAWX,GAR0B,mBAAfnC,GACTt+C,EAAE,CAAEG,QAAQ,EAAMqK,YAAY,EAAMI,QAAQ,GAAQ,CAClDy2C,MAAO,SAAe/+C,GACpB,OAAOg8C,EAAYh8C,EAAOvL,UAAUnC,OAAS,EAAIusD,EAAmBpqD,UAAU,IAAM,OAK9D,mBAAjBwnD,EAA6B,CACtC,IAAI+C,EAAqB,SAAiBh/C,GAExC,OADAjC,EAAWvJ,KAAMwqD,EAAoB,WAC9B,IAAI/C,EAAcj8C,EAAOvL,UAAUnC,OAAS,EAAIusD,EAAmBpqD,UAAU,IAAM,KAG5FynD,EAAiBz+B,YAAcuhC,EAC/BA,EAAmB/sD,UAAYiqD,EAE/Bx+C,EAAE,CAAEG,QAAQ,EAAMyK,QAAQ,GAAQ,CAChC22C,QAASD,KAKf7xD,EAAOC,QAAU,CACfa,gBAAiB6vD,EACjBr/C,SAAU69C,I,4HC5WG,iBAAgB,CAC3BtlD,KAAM,OACN,SACI,OAAQ,cAAD,CAAG,MAAO,CAAEC,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BAC5D,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAKjZ,KAAM,OAAQ,YAAa,WACrE,eAAE,IAAK,CAAEA,KAAM,eAAgB,YAAa,WACxC,eAAE,OAAQ,CAAEE,EAAG,oV,wECPnC,SAAS8nD,EAAYvW,EAAauL,EAAWiL,EAAW,GACpD,GAAkB,IAAdjL,EACA,MAAO,CAAC,GACZ,GAAkB,IAAdA,EACA,MAAO,CAAC,EAAG,GACf,MAAMkL,EAAY,EACZC,EAAWnL,EACjB,IAAIoL,EAAc3W,EACd4W,EAAY5W,EAChB,MAAM6W,GAAeL,EAAW,GAAK,EACrCI,GAAatrD,KAAKyY,KAAK8yC,GACvBD,EAAYtrD,KAAKD,IAAIC,KAAKmY,IAAImzC,EAAWH,EAAYD,EAAW,GAAIE,EAAW,GAC/EC,GAAerrD,KAAK6K,MAAM0gD,GAC1BF,EAAcrrD,KAAKmY,IAAInY,KAAKD,IAAIsrD,EAAaD,EAAWF,EAAW,GAAIC,EAAY,GACnF,IAAIK,GAAY,EACZC,GAAa,EACbJ,EAAcF,EAAY,IAC1BK,GAAY,GACZF,EAAYF,EAAW,IACvBK,GAAa,GACjB,MAAMx1C,EAAQ,GACdA,EAAM7X,KAAK+sD,GACPK,EACAv1C,EAAM7X,MAAM,GAEPgtD,GAAYD,EAAY,GAC7Bl1C,EAAM7X,KAAK+sD,EAAY,GAE3B,IAAK,IAAIroD,EAAIuoD,EAAavoD,GAAKwoD,IAAaxoD,EACxCmT,EAAM7X,KAAK0E,GAWf,OATI2oD,EACAx1C,EAAM7X,MAAM,GAEPktD,IAAcF,EAAW,GAC9Bn1C,EAAMA,EAAM5X,OAAS,KAAO+sD,EAAW,GACvCn1C,EAAM7X,KAAKgtD,EAAW,GAEtBn1C,EAAMA,EAAM5X,OAAS,KAAO+sD,GAC5Bn1C,EAAM7X,KAAKgtD,GACRn1C,EAEX,SAASy1C,EAAoBC,EAAOjX,GAChC,OAAOiX,EAAM5vD,IAAK6jD,IACd,OAAQA,GACJ,KAAM,EACF,MAAO,CACHrtC,KAAM,eACNwM,MAAO,eACPuM,QAAQ,GAEhB,KAAM,EACF,MAAO,CACH/Y,KAAM,cACNwM,MAAO,cACPuM,QAAQ,GAEhB,QACI,OAAIs0B,IAASlL,EACF,CACHniC,KAAM,OACNwM,MAAO6gC,EACPt0B,QAAQ,GAIL,CACH/Y,KAAM,OACNwM,MAAO6gC,EACPt0B,QAAQ,MAMhC,SAAS,EAAUopB,EAAauL,EAAWiL,GACvC,MAAMS,EAAQV,EAAYvW,EAAauL,EAAWiL,GAClD,OAAOQ,EAAoBC,EAAOjX,G,gBC3CvB,iBAAG,aAAc,yGAK7B,CAAC,eAAG,oBAAqB,+EAIvB,eAAG,oBAAqB,+EAIxB,eAAE,wBAAyB,CAC9BiQ,OAAQ,uBACN,eAAG,SAAU,CACfjvC,MAAO,wBACL,eAAE,wBAAyB,CAAC,eAAG,kBAAmB,CACpDwuC,WAAY,qBACR,eAAG,0BAA2B,qLAOhC,CAAC,eAAG,QAAS,qEAGV,eAAG,kBAAmB,2jBAqBzB,CAAC,eAAG,SAAU,0GAId,CAAC,eAAG,YAAa,+CAEd,eAAM,WAAY,CAAC,eAAE,UAAW,CACrC0H,WAAY,0BACZ5qC,MAAO,+BACPuD,OAAQ,4BACP,CAAC,eAAG,SAAU,CACfqnC,WAAY,4BACZrnC,OAAQ,6BACRvD,MAAO,qCACH,eAAE,WAAY,CAClB4qC,WAAY,4BACZ5qC,MAAO,iCACPuD,OAAQ,8BACP,CAAC,eAAG,SAAU,CACfqnC,WAAY,8BACZrnC,OAAQ,+BACRvD,MAAO,uCACH,eAAG,SAAU,CACjB4qC,WAAY,2BACZ5qC,MAAO,gCACPuD,OAAQ,6BACP,CAAC,eAAE,UAAW,CACfqnC,WAAY,uCACN,eAAG,WAAY,uEAGnB,CAAC,eAAG,iBAAkB,CACxB7kC,gBAAiB,6BACjBxC,OAAQ,oCACF,eAAG,WAAY,CACrBsC,OAAQ,eACP,CAAC,eAAG,0BAA2B,CAChC7F,MAAO,0C,YC7GT,MAAM6qC,EAAkB9tD,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAE+pC,KAAMvnD,OAAQyzD,YAAa,CAC9Fv5C,KAAMla,OACN2d,QAAS,GACVgsC,UAAW3pD,OAAQ4nD,UAAW5nD,OAAQ0zD,iBAAkB,CACvDx5C,KAAMla,OACN2d,QAAS,GACVg2C,eAAgBj2C,QAAS+pC,SAAUznD,OAAQ4zD,gBAAiB5zD,OAAQ6zD,UAAW,CAC9E35C,KAAMqC,MACN,UACI,MAAO,CAAC,MAEbu3C,gBAAiBp2C,QAAS6Q,SAAU7Q,QAASm1C,SAAU,CACtD34C,KAAMla,OACN2d,QAAS,GACVkjB,KAAMziB,SAAUsiB,KAAMtiB,SAAU21C,OAAQ31C,SAAU4c,OAAQ5c,SAAU,gBAAiB,CAACA,SAAU7B,OAAQ6sC,aAAc,CAAChrC,SAAU7B,OAAQ,oBAAqB,CAAC6B,SAAU7B,OAAQitC,iBAAkB,CAACprC,SAAU7B,OAEjNgtC,iBAAkB,CAACnrC,SAAU7B,OAE7BknB,SAAU,CAACrlB,SAAU7B,SACV,sBAAgB,CAC3B7R,KAAM,aACN8S,MAAOg2C,EACP,MAAMh2C,GAQF,MAAM,gBAAEiS,EAAe,mBAAED,GAAuB,eAAUhS,GACpDkS,EAAW,eAAS,aAAc,aAAc,EAAO,OAAiBlS,EAAOgS,IAC/E,UAAEkV,GAAc,eAAU,cAC1B/S,EAAU,eAAI,MACdqiC,EAAY,eAAI,MAChBC,EAAiB,eAAI,IACrBC,EAAsB,eAAI12C,EAAMi2C,aAChCvM,EAA0B,eAAI1pC,EAAMo2C,iBAAmBp2C,EAAMq2C,UAAU,IACvEM,EAAgB,eAAe,eAAM32C,EAAO,QAAS02C,GACrDxM,EAAoB,eAAe,eAAMlqC,EAAO,YAAa0pC,GAC7DS,EAAqB,eAAS,KAEhC,MAAM,UAAEgC,GAAcnsC,EACtB,QAAkBzb,IAAd4nD,EACA,OAAOhiD,KAAKmY,IAAI,EAAGnY,KAAKyY,KAAKupC,EAAYjC,EAAkBtmD,QAE/D,MAAM,UAAEwmD,GAAcpqC,EACtB,YAAkBzb,IAAd6lD,EACOA,EACJ,IAELwM,EAAqB,gBAAI,GACzBC,EAAsB,gBAAI,GAC1BC,EAAqB,eAAS,KAChC,MAAMt5B,EAAS0J,EAAUtjC,MAAMmzD,gBAC/B,OAAO/2C,EAAMq2C,UAAUnwD,IAAK2qB,IAAS,CACjC3H,MAAO,GAAG2H,OAAU2M,IACpB55B,MAAOitB,OAGTmmC,EAAe,eAAS,KAC1B,IAAIlzC,EAAIoB,EACR,OAA8L,QAApLA,EAAgI,QAA1HpB,EAAyB,OAApBmO,QAAgD,IAApBA,OAA6B,EAASA,EAAgBkkB,wBAAwBvyC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGsuB,kBAA+B,IAAPltB,OAAgB,EAASA,EAAG+xC,YAC9N,UAEFC,EAAgB,eAAS,KAC3B,IAAIpzC,EAAIoB,EACR,OAA8L,QAApLA,EAAgI,QAA1HpB,EAAyB,OAApBmO,QAAgD,IAApBA,OAA6B,EAASA,EAAgBkkB,wBAAwBvyC,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGsuB,kBAA+B,IAAPltB,OAAgB,EAASA,EAAGiyC,aAAe,UAE/O90C,EAAgB,eAAS,KACnBs0C,EAAc/yD,MAAQ,GAAKsmD,EAAkBtmD,OAEnDwzD,EAAc,eAAS,KACzB,MAAMz0C,EAAWg0C,EAAc/yD,MAAQsmD,EAAkBtmD,MAAQ,GAC3D,UAAEuoD,GAAcnsC,EACtB,YAAkBzb,IAAd4nD,GACOxpC,EAAWwpC,EAAYA,EAE3BxpC,IAEL00C,EAA2B,KACxB,eAAS,KACV,IAAIvzC,EACJ,MAAQlgB,MAAO+zC,GAAWxjB,EACrBwjB,IAELA,EAAOnC,UAAUtzB,IAAI,uBACU,QAAxB4B,EAAKqQ,EAAQvwB,aAA0B,IAAPkgB,GAAyBA,EAAG4Q,YACnEijB,EAAOnC,UAAU9tC,OAAO,2BAGhC,SAASmkD,EAAa9B,GAClB,GAAIA,IAAS4M,EAAc/yD,MACvB,OACJ,MAAQ,gBAAiB+nD,EAAa,aAAEC,EAAY,SAAE3lB,GAAajmB,EAC/D2rC,GACA,OAAAtjD,EAAA,MAAKsjD,EAAe5B,GACpB6B,GACA,OAAAvjD,EAAA,MAAKujD,EAAc7B,GAEnB9jB,GACA,OAAA59B,EAAA,MAAK49B,EAAU8jB,GACnB2M,EAAoB9yD,MAAQmmD,EAEhC,SAASkC,EAAiBhC,GACtB,GAAIA,IAAaC,EAAkBtmD,MAC/B,OACJ,MAAQ,oBAAqB0oD,EAAiB,iBAAEN,EAAgB,iBAAED,GAAqB/rC,EACnFssC,GACA,OAAAjkD,EAAA,MAAKikD,EAAmBrC,GACxB+B,GACA,OAAA3jD,EAAA,MAAK2jD,EAAkB/B,GAEvB8B,GACA,OAAA1jD,EAAA,MAAK0jD,EAAkB9B,GAC3BP,EAAwB9lD,MAAQqmD,EAG5BE,EAAmBvmD,MAAQ+yD,EAAc/yD,OACzCioD,EAAa1B,EAAmBvmD,OAGxC,SAAS0zD,IACL,GAAIt3C,EAAM+Q,SACN,OACJ,MAAMg5B,EAAO5/C,KAAKD,IAAIysD,EAAc/yD,MAAQ,EAAGumD,EAAmBvmD,OAClEioD,EAAa9B,GAEjB,SAASwN,IACL,GAAIv3C,EAAM+Q,SACN,OACJ,MAAMg5B,EAAO5/C,KAAKmY,IAAIq0C,EAAc/yD,MAAQ,EAAG,GAC/CioD,EAAa9B,GAEjB,SAASyN,IACL,GAAIx3C,EAAM+Q,SACN,OACJ,MAAMg5B,EAAO5/C,KAAKD,IAAIysD,EAAc/yD,OAASoc,EAAMq1C,SAAW,GAAIlL,EAAmBvmD,OACrFioD,EAAa9B,GAEjB,SAAS0N,IACL,GAAIz3C,EAAM+Q,SACN,OACJ,MAAMg5B,EAAO5/C,KAAKmY,IAAIq0C,EAAc/yD,OAASoc,EAAMq1C,SAAW,GAAI,GAClExJ,EAAa9B,GAEjB,SAAS2N,EAAuB9zD,GAC5BqoD,EAAiBroD,GAErB,SAAS+zD,EAAuB5qD,GAC5B,IAAI+W,EACJ,GAAe,UAAX/W,EAAEwL,MAA+B,gBAAXxL,EAAEwL,KAAwB,CAChD,MAAMwxC,EAAOzjD,SAASmwD,EAAe7yD,QAChCpB,OAAOo1D,MAAM7N,IACdA,GAAQ,GACRA,GAAQI,EAAmBvmD,QAC3BioD,EAAa9B,GACb0M,EAAe7yD,MAAQ,GACI,QAA1BkgB,EAAK0yC,EAAU5yD,aAA0B,IAAPkgB,GAAyBA,EAAGoW,SAI3E,SAAS29B,EAAoBC,GACzB,IAAI93C,EAAM+Q,SAEV,OAAQ+mC,EAASp7C,MACb,IAAK,OACDmvC,EAAaiM,EAAS5uC,OACtB,MACJ,IAAK,eACDuuC,IACA,MACJ,IAAK,cACDD,IACA,OAGZ,SAASO,EAAyBD,GAC9B,IAAI93C,EAAM+Q,SAAV,CAEA,OAAQ+mC,EAASp7C,MACb,IAAK,eACDm6C,EAAoBjzD,OAAQ,EAC5B,MACJ,IAAK,cACDgzD,EAAmBhzD,OAAQ,EAC3B,MACJ,QACI,OAERyzD,KAEJ,SAASW,EAAyBF,GAC9B,IAAI93C,EAAM+Q,SAAV,CAEA,OAAQ+mC,EAASp7C,MACb,IAAK,eACDm6C,EAAoBjzD,OAAQ,EAC5B,MACJ,IAAK,cACDgzD,EAAmBhzD,OAAQ,EAC3B,MACJ,QACI,OAERyzD,KAEJ,SAASY,EAAkBr0D,GACvB6yD,EAAe7yD,MAAQA,EAO3B,OALA,eAAY,KACH+yD,EAAc/yD,MACdsmD,EAAkBtmD,MACvByzD,MAEG,CACHzkC,gBAAiBZ,EACjByoB,OAAQvT,EACR/S,UACAqiC,YACA0B,WAAYvB,EACZwB,iBAAkBtB,EAClBuB,gBAAiBxB,EACjByB,UAAW,eAAS,IAAM,EAAU1B,EAAc/yD,MAAOumD,EAAmBvmD,MAAOoc,EAAMq1C,WACzFiD,YAAa7B,EACb8B,gBAAiBzB,EACjB0B,eAAgBtO,EAChB+M,UAAWD,EACXG,WAAYD,EACZp8B,YAAa5I,EACbumC,gBAAiBtO,EACjBznC,WAAYL,EACZM,SAAUy0C,EACVa,oBACAS,oBAAqBnB,EACrBoB,mBAAoBrB,EACpBO,sBACAH,yBACAC,yBACAI,2BACAC,2BACAllC,QAAS,eAAS,KACd,MAAQ/f,MAAM,SAAEvD,EAAQ,YAAEC,EAAW,WAAEC,EAAU,WAAEE,EAAU,YAAEC,EAAW,YAAEC,EAAW,aAAEC,EAAY,aAAEiB,EAAY,kBAAEC,EAAiB,oBAAEC,EAAmB,gBAAEC,EAAe,qBAAEC,EAAoB,uBAAEC,EAAsB,eAAE1B,EAAc,cAAE2B,EAAa,mBAAEC,EAAkB,qBAAEC,EAAoB,oBAAEC,EAAmB,sBAAEC,EAAqB,UAAEC,EAAS,eAAEC,EAAc,iBAAEC,EAAgB,gBAAEC,EAAe,qBAAEC,EAAoB,kBAAEC,EAAiB,WAAEC,EAAU,gBAAEC,EAAe,kBAAEC,EAAiB,iBAAEC,EAAgB,mBAAEC,EAAkB,iBAAEC,EAAgB,aAAEC,EAAY,eAAErC,EAAc,gBAAEsC,EAAe,wBAAEC,EAAuB,aAAEzC,EAAY,aAAEC,GAAgB0C,QAAQ,qBAAEogB,IAA2Bb,EAAStuB,MACprB,MAAO,CACH,kBAAmBoM,EACnB,kBAAmBC,EACnB,mBAAoBsC,EACpB,iBAAkB1C,EAClB,kBAAmBE,EACnB,gBAAiBH,EACjB,iBAAkBE,EAClB,cAAeN,EACf,oBAAqB8B,EACrB,6BAA8BI,EAC9B,0BAA2BH,EAC3B,2BAA4BE,EAC5B,4BAA6BD,EAC7B,eAAgBG,EAChB,qBAAsBC,EACtB,wBAAyBI,EACzB,sBAAuBF,EACvB,4BAA6BC,EAC7B,uBAAwBF,EACxB,gBAAiBI,EACjB,sBAAuBC,EACvB,yBAA0BG,EAC1B,uBAAwBD,EACxB,wBAAyBD,EACzB,iBAAkB1C,EAClB,uBAAwB6C,EACxB,WAAYygB,EACZ,qBAAsB7iB,EACtB,sBAAuBsC,EACvB,+BAAgCC,EAChC,gBAAiB/C,EACjB,qBAAsBC,EACtB,sBAAuBwB,EACvB,4BAA6BC,EAC7B,8BAA+BC,EAC/B,kBAAmBL,EACnB,wBAAyBC,EACzB,0BAA2BC,OAK3C,SAEI,MAAM,OAAEmU,EAAM,gBAAEuN,EAAe,SAAE7B,EAAQ,QAAE+B,EAAO,WAAEolC,EAAU,gBAAEO,EAAe,UAAEJ,EAAS,iBAAEF,EAAgB,gBAAEC,EAAe,eAAEjC,EAAc,gBAAEG,EAAe,YAAEx7B,EAAW,OAAE2f,EAAM,UAAEwc,EAAS,WAAEE,EAAU,eAAEqB,EAAc,gBAAED,EAAe,YAAED,EAAW,KAAEj1B,EAAI,KAAEH,EAAI,OAAEqzB,EAAM,OAAE/4B,EAAM,kBAAEy6B,EAAiB,uBAAEP,EAAsB,oBAAEgB,EAAmB,oBAAEb,EAAmB,yBAAEE,EAAwB,yBAAEC,EAAwB,mBAAEW,EAAkB,uBAAEhB,GAA2BjtD,KACxckuD,EAAav1B,GAAQhe,EAAOge,KAC5Bw1B,EAAa31B,GAAQ7d,EAAO6d,KAClC,OAAQ,cAAD,CAAG,MAAO,CAAEn1B,IAAK,UAAWR,MAAO,CAC/BqlB,EAAH,cACA7B,GAAe6B,EAAH,yBACbxwB,MAAO0wB,GACVyjC,GAAUlxC,EAAOkxC,OAAU,cAAD,CAAG,MAAO,CAAEhpD,MAAUqlB,EAAH,uBAA2CvN,EAAOkxC,OACzFlxC,EAAOkxC,OACPA,GAAQ,CACVxM,KAAMmO,EACNjO,SAAUuO,EACVpO,UAAWqO,EACX/1C,WAAYhY,KAAKgY,WACjBC,SAAUjY,KAAKiY,SACfwpC,UAAWzhD,KAAKyhD,aACb,KACP,eAAE,MAAO,CAAE5+C,MAAO,CACPqlB,EAAH,oBACCgmC,GAAiBhmC,EAAH,4BACdslC,GAAc,GAAKA,EAAaO,GAAmB1nC,IAC7C6B,EAAH,8BACLO,QAASulC,GAAuBE,EAAcA,EAAW,CAC5D7O,KAAMmO,EACNjO,SAAUuO,EACVpO,UAAWqO,EACX/1C,WAAYhY,KAAKgY,WACjBC,SAAUjY,KAAKiY,SACfwpC,UAAWzhD,KAAKyhD,YACb,cAAD,CAAG,OAAW,CAAE/4B,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAE24C,EAAA,KAAc,SACrFT,EAAUnyD,IAAI,CAAC4xD,EAAU5rD,IACb,cAAD,CAAG,MAAO,CAAErI,IAAKqI,EAAOqB,MAAO,CAC3BqlB,EAAH,mBACA,CACI,CAAIA,EAAH,4BAA+CklC,EAASriC,OACzD,CAAI7C,EAAH,8BAAiD7B,IAEvDoC,QAAS,IAAM0kC,EAAoBC,GAAWtmC,aAAc,IAAMumC,EAAyBD,GAAWrmC,aAAc,IAAMumC,EAAyBF,IACpI,SAAlBA,EAASp7C,KAAkBo7C,EAAS5uC,MAAQ,KAC1B,iBAAlB4uC,EAASp7C,KAA2By7C,EAAoB,cAAD,CAAG,OAAW,CAAE/kC,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAE44C,EAAA,KAAkB,QAAa,cAAD,CAAG,OAAW,CAAE3lC,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAE64C,EAAU,QAAa,KAC5N,gBAAlBlB,EAASp7C,KAA0B07C,EAAmB,cAAD,CAAG,OAAW,CAAEhlC,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAE84C,EAAA,KAAiB,QAAa,cAAD,CAAG,OAAW,CAAE7lC,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAE64C,EAAU,QAAa,OAEnP,eAAE,MAAO,CAAEzrD,MAAO,CACPqlB,EAAH,oBACCimC,GAAiBjmC,EAAH,2BACf,CACI,CAAIA,EAAH,8BAAiDslC,EAAa,GAAKA,GAAcO,GAAmB1nC,IAE1GoC,QAASwlC,GAAsBE,EAAcA,EAAW,CAC3D9O,KAAMmO,EACNjO,SAAUuO,EACVpO,UAAWqO,EACXtM,UAAWzhD,KAAKyhD,UAChBzpC,WAAYhY,KAAKgY,WACjBC,SAAUjY,KAAKiY,WACZ,cAAD,CAAG,OAAW,CAAEyQ,UAAWR,GAAmB,CAAEzS,QAAS,IAAM,eAAE+4C,EAAA,KAAa,SACpF/C,EAAkB,cAAD,CAAG,OAAS,CAAEtlC,KAAMsmC,EAAYxhC,YAAa,GAAI7S,QAASy1C,EAAiB30D,MAAO40D,EAAgBznC,SAAUA,EAAU4N,MAAO7D,EAAYloB,MAAMC,OAAQgsB,eAAgB/D,EAAYgE,cAAcjsB,OAAQkzB,cAAe2xB,IAA6B,KACtQpB,EAAmB,cAAD,CAAG,MAAO,CAAE/oD,MAAUqlB,EAAH,4BACjC6nB,EAAO0e,KACP,eAAE,OAAQ,CAAEprD,IAAK,YAAanK,MAAO00D,EAAavyB,cAAekyB,EAAmBpnC,KAAMomC,EAAWthC,YAAa,GAAI5E,SAAUA,EAAU4N,MAAO7D,EAAYloB,MAAME,MAAO+rB,eAAgB/D,EAAYgE,cAAchsB,MAAOwjB,QAASqhC,KAA8B,KACtQn6B,GAAUnY,EAAOmY,OAAU,cAAD,CAAG,MAAO,CAAEjwB,MAAUqlB,EAAH,uBAA2CvN,EAAOmY,OACzFnY,EAAOmY,OACPA,GAAQ,CACVusB,KAAMmO,EACNjO,SAAUuO,EACVpO,UAAWqO,EACX/1C,WAAYhY,KAAKgY,WACjBC,SAAUjY,KAAKiY,SACfwpC,UAAWzhD,KAAKyhD,aACb,U,uBCjXnB,IAAI5iD,EAAW,EAAQ,QACnB0oD,EAAoB,EAAQ,QAEhC5uD,EAAOC,QAAU,SAAU4vD,GACzB,IAAIe,EAAiBhC,EAAkBiB,GACvC,GAA6B,mBAAlBe,EACT,MAAMt3C,UAAUzY,OAAOgvD,GAAM,oBAC7B,OAAO3pD,EAAS0qD,EAAe5rD,KAAK6qD,M,kCCNxC,IAAIt/C,EAAI,EAAQ,QACZwlD,EAAgB,EAAQ,QACxBC,EAAkB,EAAQ,QAC1BC,EAAsB,EAAQ,QAE9BC,EAAa,GAAG9wD,KAEhB+wD,EAAcJ,GAAiBlxD,OAC/BuxD,EAAgBH,EAAoB,OAAQ,KAIhD1lD,EAAE,CAAEmQ,OAAQ,QAASoC,OAAO,EAAM3H,OAAQg7C,IAAgBC,GAAiB,CACzEhxD,KAAM,SAAcuC,GAClB,OAAOuuD,EAAWlxD,KAAKgxD,EAAgB3uD,WAAqBnG,IAAdyG,EAA0B,IAAMA,O,kJCfnE,GACX0uD,mBAAoB,OACpBC,oBAAqB,OACrBC,mBAAoB,OACpBC,kBAAmB,OACnB1vC,cAAe,OACfC,eAAgB,OAChBC,cAAe,OACfC,aAAc,OACdwvC,cAAe,OACfC,eAAgB,OAChBC,cAAe,QACfC,aAAc,QACdC,kBAAc31D,EACd41D,kBAAc51D,EACd61D,kBAAc71D,EACd81D,kBAAc91D,G,YCdX,MAAM,EAAQ4L,IACjB,MAAM,WAAEC,EAAU,WAAE+/B,EAAU,WAAE5iB,EAAU,aAAEF,EAAY,UAAED,EAAS,aAAEE,EAAY,WAAEkjB,EAAU,iBAAED,GAAqBpgC,EACpH,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAEohC,aAAY8pB,gBAAiB/pB,EAAkBgqB,eAAgBpqB,EAAYxhB,UAAWve,EAAYoqD,eAAgBjtC,EAAYktC,iBAAkBptC,EAAcqtC,cAAettC,EAAWutC,iBAAkBrtC,KAEnQstC,EAAc,CAChB1tD,KAAM,SACNyF,OAAQ,OACRI,KAAI,GAEO,QCVC,iBAAE,MAAO,CAAE1F,MAAO,6BAA8BF,QAAS,aACrE,eAAE,SAAU,CAAEC,KAAM,UAAWytD,GAAI,KAAMC,GAAI,SAAU17C,EAAG,OAC1D,eAAE,OAAQ,CAAEhS,KAAM,UAAWE,EAAG,qOAChC,eAAE,UAAW,CAAEF,KAAM,UAAWytD,GAAI,SAAUC,GAAI,SAAUxuD,GAAI,QAASyuD,GAAI,UAC7E,eAAE,UAAW,CAAE3tD,KAAM,UAAWytD,GAAI,SAAUC,GAAI,SAAUxuD,GAAI,QAASyuD,GAAI,UAC7E,eAAE,OAAQ,CAAE3tD,KAAM,UAAWE,EAAG,mkBAChC,eAAE,OAAQ,CAAEF,KAAM,UAAWE,EAAG,ybCNpB,iBAAE,MAAO,CAAED,MAAO,6BAA8BF,QAAS,aACrE,eAAE,OAAQ,CAAEC,KAAM,UAAWE,EAAG,iGAChC,eAAE,UAAW,CAAEF,KAAM,UAAWytD,GAAI,KAAMC,GAAI,KAAMxuD,GAAI,IAAKyuD,GAAI,MACjE,eAAE,OAAQ,CAAE3tD,KAAM,UAAWE,EAAG,ujCCHpB,iBAAE,MAAO,CAAED,MAAO,6BAA8BF,QAAS,aACrE,eAAE,UAAW,CAAEC,KAAM,UAAWytD,GAAI,KAAMC,GAAI,KAAMxuD,GAAI,KAAMyuD,GAAI,OAClE,eAAE,UAAW,CAAE3tD,KAAM,UAAWytD,GAAI,KAAMC,GAAI,KAAMxuD,GAAI,KAAMyuD,GAAI,OAClE,eAAE,OAAQ,CAAE3tD,KAAM,UAAWE,EAAG,qDAChC,eAAE,OAAQ,CAAEF,KAAM,UAAWE,EAAG,6GAChC,eAAE,UAAW,CAAEF,KAAM,UAAWytD,GAAI,KAAMC,GAAI,KAAMxuD,GAAI,KAAMyuD,GAAI,MAClE,eAAE,OAAQ,CAAEztD,EAAG,ypBAA0pBF,KAAM,aCNnqB,iBAAE,MAAO,CAAEC,MAAO,6BAA8BF,QAAS,aACrE,eAAE,OAAQ,CAAEC,KAAM,UAAWE,EAAG,yJAChC,eAAE,OAAQ,CAAEF,KAAM,UAAWE,EAAG,8c,YCMrB,iBAAG,SAAU,4IAMzB,CAAC,eAAG,cAAe,mKAOlB,CAAC,eAAG,eAAgB,CACtBuS,MAAO,QACL,eAAE,MAAO,CACXJ,OAAQ,UACJ,eAAG,iBAAkB,CACzBu7C,UAAW,SACT,eAAG,gBAAiB,iDAGnB,eAAG,gBAAiB,CAAC,eAAG,QAAS,wMAOjC,eAAG,cAAe,mFC3BvB,MAAMC,EAAS,CACXC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,GAEHC,EAAU,CACZC,KAAM,eAAEC,EAAA,KAAU,MAClBC,QAAS,eAAEC,EAAA,KAAa,MACxBC,QAAS,eAAEC,EAAA,KAAa,MACxBh0D,MAAO,eAAEqX,EAAA,KAAW,OAElB48C,EAAc3zD,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,OAAS4Q,OAAQ,CAAE6Q,KAAM,CACrEnU,KAAMxY,OACNic,QAAS,UACVtd,OAAQ,CACP6Z,KAAMxY,OACNic,QAAS,QACVgM,MAAOjoB,OAAQkoB,YAAaloB,SACpB,sBAAgB,CAC3BgJ,KAAM,SACN8S,MAAO67C,EACP,MAAM77C,GACF,MAAM,mBAAEgS,GAAuB,eAAUhS,GACnCkS,EAAW,eAAS,SAAU,SAAU,EAAO,EAAalS,EAAOgS,GACzE,MAAO,CACHY,gBAAiBZ,EACjBc,QAAS,eAAS,KACd,MAAM,KAAEjC,EAAI,OAAEhuB,GAAWmd,GACjBrN,QAAQ,qBAAEogB,GAAwBhgB,MAAM,UAAE4b,EAAS,WAAE6hB,EAAU,eAAE+pB,EAAc,gBAAED,EAAiB,CAAC,eAAU,YAAaz3D,IAAUytC,EAAW,CAAC,eAAU,WAAYzf,IAAQjgB,EAAU,CAAC,eAAU,gBAAiBigB,IAAQirC,EAAe,CAAC,eAAU,WAAYjrC,IAAQkrC,IAAe7pC,EAAStuB,MAC1S,MAAO,CACH,WAAYmvB,EACZ,cAAeniB,EACf,cAAemrD,EACf,gBAAiBvrB,EACjB,eAAgB7hB,EAChB,oBAAqBmtC,EACrB,sBAAuBxB,EACvB,qBAAsBC,EACtB,eAAgBjqB,OAKhC,SACI,MAAM,OAAEztC,EAAM,OAAEwiB,EAAM,gBAAEuN,GAAoBloB,KAC5C,OAAQ,cAAD,CAAG,MAAO,CAAE6C,MAAUqlB,EAAH,UAA6BxwB,MAAOsI,KAAKooB,SAC/D,eAAE,MAAO,CAAEvlB,MAAUqlB,EAAH,gBAAoC/vB,KAAUo4D,EAAUA,EAAOp4D,GAAY,cAAD,CAAG,OAAW,CAAEuwB,UAAWR,GAAmB,CAAEzS,QAAS,IAAMm7C,EAAQz4D,MACnK,eAAE,MAAO,CAAE0K,MAAUqlB,EAAH,kBACd,eAAE,MAAO,CAAErlB,MAAUqlB,EAAH,yBAA6CloB,KAAKyhB,OACpE,eAAE,MAAO,CAAE5e,MAAUqlB,EAAH,+BAAmDloB,KAAK0hB,cAC9E/G,EAAOlF,QAAW,cAAD,CAAG,MAAO,CAAE5S,MAAUqlB,EAAH,mBAAuCvN,GAAW,KACtF,eAAE,MAAO,CAAE9X,MAAUqlB,EAAH,kBAAsC,eAAWvN,EAAQ,gB,kCC9DvF,IAAIxR,EAAc,EAAQ,QACtBE,EAAS,EAAQ,QACjBioD,EAAW,EAAQ,QACnBhpD,EAAW,EAAQ,QACnBkB,EAAM,EAAQ,QACd49C,EAAU,EAAQ,QAClBmK,EAAoB,EAAQ,QAC5BC,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QACtBl5D,EAAQ,EAAQ,QAChByjC,EAAS,EAAQ,QACjB01B,EAAsB,EAAQ,QAA8C3oD,EAC5E4oD,EAA2B,EAAQ,QAAmD5oD,EACtF6oD,EAAiB,EAAQ,QAAuC7oD,EAChEwS,EAAO,EAAQ,QAA4BA,KAE3Cs2C,EAAS,SACTC,EAAezoD,EAAOwoD,GACtBE,EAAkBD,EAAar0D,UAG/Bu0D,EAAiB5K,EAAQprB,EAAO+1B,KAAqBF,EAIrDI,EAAW,SAAUC,GACvB,GAAIV,EAASU,GAAW,MAAMjgD,UAAU,6CACxC,IACIy3C,EAAO36C,EAAO5C,EAAOgmD,EAASC,EAAQt0D,EAAQ0D,EAAOqM,EADrD26C,EAAKiJ,EAAYS,EAAU,UAE/B,GAAiB,iBAAN1J,GAAkBA,EAAG1qD,OAAS,EAGvC,GAFA0qD,EAAKjtC,EAAKitC,GACVkB,EAAQlB,EAAGnrC,WAAW,GACR,KAAVqsC,GAA0B,KAAVA,GAElB,GADA36C,EAAQy5C,EAAGnrC,WAAW,GACR,KAAVtO,GAA0B,MAAVA,EAAe,OAAOsjD,SACrC,GAAc,KAAV3I,EAAc,CACvB,OAAQlB,EAAGnrC,WAAW,IACpB,KAAK,GAAI,KAAK,GAAIlR,EAAQ,EAAGgmD,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKhmD,EAAQ,EAAGgmD,EAAU,GAAI,MAC5C,QAAS,OAAQ3J,EAInB,IAFA4J,EAAS5J,EAAGjnD,MAAM,GAClBzD,EAASs0D,EAAOt0D,OACX0D,EAAQ,EAAGA,EAAQ1D,EAAQ0D,IAI9B,GAHAqM,EAAOukD,EAAO/0C,WAAW7b,GAGrBqM,EAAO,IAAMA,EAAOskD,EAAS,OAAOE,IACxC,OAAOz2D,SAASw2D,EAAQjmD,GAE5B,OAAQq8C,GAKZ,GAAI8I,EAASO,GAASC,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAS3F,IARA,IAgBqB34D,EAhBjBm5D,EAAgB,SAAgBp5D,GAClC,IAAIsvD,EAAKvoD,UAAUnC,OAAS,EAAI,EAAI5E,EAChC2vB,EAAQ7oB,KACZ,OAAO6oB,aAAiBypC,IAElBN,EAAiBz5D,GAAM,WAAcw5D,EAAgBQ,QAAQ50D,KAAKkrB,MAAau+B,EAAQv+B,IAAUgpC,GACjGN,EAAkB,IAAIO,EAAaG,EAASzJ,IAAM3/B,EAAOypC,GAAiBL,EAASzJ,IAElF1K,EAAO30C,EAAcuoD,EAAoBI,GAAgB,8LAQhEp2D,MAAM,KAAM8uB,EAAI,EAAQszB,EAAKhgD,OAAS0sB,EAAGA,IACrChhB,EAAIsoD,EAAc34D,EAAM2kD,EAAKtzB,MAAQhhB,EAAI8oD,EAAen5D,IAC1Dy4D,EAAeU,EAAen5D,EAAKw4D,EAAyBG,EAAc34D,IAG9Em5D,EAAc70D,UAAYs0D,EAC1BA,EAAgB9oC,YAAcqpC,EAC9BhqD,EAASe,EAAQwoD,EAAQS,K,yDChF3B,W,kDCAe,GACXE,eAAgB,OAChBC,gBAAiB,OACjBC,eAAgB,OAChB/tB,aAAc,S,YCDlB,MAAM,EAAQl/B,IACV,MAAM,YAAEO,EAAW,aAAEL,EAAY,UAAEmd,EAAS,kBAAE/c,EAAiB,mBAAED,EAAkB,WAAEJ,EAAU,gBAAE6Z,EAAe,aAAEtZ,EAAY,cAAEwZ,EAAa,eAAEC,EAAc,cAAEC,EAAa,YAAEE,EAAW,aAAEC,EAAY,YAAEC,GAAgBta,EACzN,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,GAAkB,CAAEiuD,kBAAmB9yC,EAAa+yC,mBAAoB9yC,EAAc+yC,kBAAmB9yC,EAAaN,gBACzJC,iBACAC,gBAAeykB,UAAW,mBAAmBp+B,EAAekrB,gBAAiB,mBAAmBvrB,EAAgBsrB,eAAgB,mBAAmBtrB,gBAA2B,eAAYA,EAAc,CAAEwe,MAAO,OAAUgN,eAAgB,mBAAmBxrB,EAAgBmtD,kBAAmB,mBAAmB9sD,EAAeya,MAAOqC,EAAWgO,cAAehrB,EAAoBme,UAAWve,EAAYK,kBAAmBA,EAAmBgtD,eAAgBptD,EAAcqtD,iBAAkBhtD,EAAaknC,kBAAmBlnC,EAAamnC,wBAAyBxnC,EAAcstD,uBAAwBjtD,EAAaG,YAAa2c,EAAW0qB,kBAAmB1qB,EAAW2qB,gBAAiB/nC,EAAYgoC,sBAAuB/nC,EAAcgoC,qBAAsBhoC,EAAc4Z,gBAAiBA,EAAiB+tB,qBAAsB,mBAAmB3nC,gBAA2B,eAAYA,EAAc,CAAEwe,MAAO,OAAUopB,qBAAsB,wBAAyBF,gBAAiB,wBAAyBD,mBAAoBnnC,KAE5/BitD,EAAa,CACf1wD,KAAM,QACNyF,OAAQ,OACRI,KAAI,GAEO,U,kGCdA,SAAS8qD,EAAax9C,EAAUy9C,GAC7C,GAAIA,EAAKt1D,OAAS6X,EAChB,MAAM,IAAI1D,UAAU0D,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBy9C,EAAKt1D,OAAS,YC8BrG,SAASu1D,EAAOnB,GAC7BiB,EAAa,EAAGlzD,WAChB,IAAIqzD,EAAS91D,OAAOC,UAAUyB,SAASvB,KAAKu0D,GAE5C,OAAIA,aAAoBj3C,MAA4B,kBAAbi3C,GAAoC,kBAAXoB,EAEvD,IAAIr4C,KAAKi3C,EAASqB,WACI,kBAAbrB,GAAoC,oBAAXoB,EAClC,IAAIr4C,KAAKi3C,IAES,kBAAbA,GAAoC,oBAAXoB,GAAoD,qBAAZE,UAE3EA,QAAQhrB,KAAK,oJAEbgrB,QAAQhrB,MAAK,IAAIj0B,OAAQk/C,QAGpB,IAAIx4C,KAAKo3C,MCWL,SAASqB,EAAQC,GAC9BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GAClB,OAAQzG,MAAMjzD,G,gBC/DD,SAAS25D,EAAUC,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOxB,IAGT,IAAIjmD,EAAStU,OAAO+7D,GAEpB,OAAI3G,MAAM9gD,GACDA,EAGFA,EAAS,EAAI3M,KAAKyY,KAAK9L,GAAU3M,KAAK6K,MAAM8B,GCetC,SAAS0nD,EAAgBH,EAAWI,GACjDZ,EAAa,EAAGlzD,WAChB,IAAI+zD,EAAYX,EAAOM,GAAWJ,UAC9BU,EAASL,EAAUG,GACvB,OAAO,IAAI94C,KAAK+4C,EAAYC,GCJf,SAASC,EAAgBP,EAAWI,GACjDZ,EAAa,EAAGlzD,WAChB,IAAIg0D,EAASL,EAAUG,GACvB,OAAOD,EAAgBH,GAAYM,GC7BtB,SAASE,EAAgB/nD,EAAQgoD,GAC9C,IAAIC,EAAOjoD,EAAS,EAAI,IAAM,GAC1BvL,EAASpB,KAAK60D,IAAIloD,GAAQlN,WAE9B,MAAO2B,EAAO/C,OAASs2D,EACrBvzD,EAAS,IAAMA,EAGjB,OAAOwzD,EAAOxzD,ECMhB,IAAI0zD,EAAa,CAEfC,EAAG,SAAUv6D,EAAMw6D,GASjB,IAAIC,EAAaz6D,EAAK06D,iBAElBC,EAAOF,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOP,EAA0B,OAAVM,EAAiBG,EAAO,IAAMA,EAAMH,EAAM32D,SAGnE+2D,EAAG,SAAU56D,EAAMw6D,GACjB,IAAIK,EAAQ76D,EAAK86D,cACjB,MAAiB,MAAVN,EAAgBj7D,OAAOs7D,EAAQ,GAAKX,EAAgBW,EAAQ,EAAG,IAGxElyD,EAAG,SAAU3I,EAAMw6D,GACjB,OAAON,EAAgBl6D,EAAK+6D,aAAcP,EAAM32D,SAGlDm3D,EAAG,SAAUh7D,EAAMw6D,GACjB,IAAIS,EAAqBj7D,EAAKk7D,cAAgB,IAAM,EAAI,KAAO,KAE/D,OAAQV,GACN,IAAK,IACL,IAAK,KACH,OAAOS,EAAmBE,cAE5B,IAAK,MACH,OAAOF,EAET,IAAK,QACH,OAAOA,EAAmB,GAE5B,IAAK,OACL,QACE,MAA8B,OAAvBA,EAA8B,OAAS,SAIpDG,EAAG,SAAUp7D,EAAMw6D,GACjB,OAAON,EAAgBl6D,EAAKk7D,cAAgB,IAAM,GAAIV,EAAM32D,SAG9Dw3D,EAAG,SAAUr7D,EAAMw6D,GACjB,OAAON,EAAgBl6D,EAAKk7D,cAAeV,EAAM32D,SAGnD6W,EAAG,SAAU1a,EAAMw6D,GACjB,OAAON,EAAgBl6D,EAAKs7D,gBAAiBd,EAAM32D,SAGrD03D,EAAG,SAAUv7D,EAAMw6D,GACjB,OAAON,EAAgBl6D,EAAKw7D,gBAAiBhB,EAAM32D,SAGrD+D,EAAG,SAAU5H,EAAMw6D,GACjB,IAAIiB,EAAiBjB,EAAM32D,OACvB63D,EAAe17D,EAAK27D,qBACpBC,EAAoBp2D,KAAK6K,MAAMqrD,EAAel2D,KAAK8K,IAAI,GAAImrD,EAAiB,IAChF,OAAOvB,EAAgB0B,EAAmBpB,EAAM32D,UAGrC,ICjFXg4D,EAAsB,MAGX,SAASC,EAAgBpC,GACtCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdK,EAAY/5D,EAAKs5D,UACrBt5D,EAAK+7D,YAAY,EAAG,GACpB/7D,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GAC1B,IAAIC,EAAuBj8D,EAAKs5D,UAC5B4C,EAAanC,EAAYkC,EAC7B,OAAOz2D,KAAK6K,MAAM6rD,EAAaL,GAAuB,ECTzC,SAASM,EAAkBzC,GACxCR,EAAa,EAAGlzD,WAChB,IAAIo2D,EAAe,EACfp8D,EAAOo5D,EAAOM,GACd2C,EAAMr8D,EAAKs8D,YACXC,GAAQF,EAAMD,EAAe,EAAI,GAAKC,EAAMD,EAGhD,OAFAp8D,EAAKw8D,WAAWx8D,EAAK+6D,aAAewB,GACpCv8D,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,ECPM,SAASy8D,EAAkB/C,GACxCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdiB,EAAO36D,EAAK06D,iBACZgC,EAA4B,IAAI17C,KAAK,GACzC07C,EAA0BC,eAAehC,EAAO,EAAG,EAAG,GACtD+B,EAA0BV,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIY,EAAkBT,EAAkBO,GACpCG,EAA4B,IAAI77C,KAAK,GACzC67C,EAA0BF,eAAehC,EAAM,EAAG,GAClDkC,EAA0Bb,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIc,EAAkBX,EAAkBU,GAExC,OAAI78D,EAAKs5D,WAAasD,EAAgBtD,UAC7BqB,EAAO,EACL36D,EAAKs5D,WAAawD,EAAgBxD,UACpCqB,EAEAA,EAAO,EClBH,SAASoC,EAAsBrD,GAC5CR,EAAa,EAAGlzD,WAChB,IAAI20D,EAAO8B,EAAkB/C,GACzBsD,EAAkB,IAAIh8C,KAAK,GAC/Bg8C,EAAgBL,eAAehC,EAAM,EAAG,GACxCqC,EAAgBhB,YAAY,EAAG,EAAG,EAAG,GACrC,IAAIh8D,EAAOm8D,EAAkBa,GAC7B,OAAOh9D,ECRT,IAAIi9D,EAAuB,OAGZ,SAASC,EAAcxD,GACpCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd6C,EAAOJ,EAAkBn8D,GAAMs5D,UAAYyD,EAAsB/8D,GAAMs5D,UAI3E,OAAO9zD,KAAKymB,MAAMswC,EAAOU,GAAwB,ECTpC,SAASE,EAAezD,EAAW0D,GAChDlE,EAAa,EAAGlzD,WAChB,IAAImY,EAAUi/C,GAAgB,GAC1BtnB,EAAS33B,EAAQ23B,OACjBunB,EAAqBvnB,GAAUA,EAAO33B,SAAW23B,EAAO33B,QAAQi+C,aAChEkB,EAA4C,MAAtBD,EAA6B,EAAI1D,EAAU0D,GACjEjB,EAAuC,MAAxBj+C,EAAQi+C,aAAuBkB,EAAsB3D,EAAUx7C,EAAQi+C,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIj4C,WAAW,oDAGvB,IAAInkB,EAAOo5D,EAAOM,GACd2C,EAAMr8D,EAAKs8D,YACXC,GAAQF,EAAMD,EAAe,EAAI,GAAKC,EAAMD,EAGhD,OAFAp8D,EAAKw8D,WAAWx8D,EAAK+6D,aAAewB,GACpCv8D,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,EChBM,SAASu9D,EAAe7D,EAAW0D,GAChDlE,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,EAAW0D,GACzBzC,EAAO36D,EAAK06D,iBACZv8C,EAAUi/C,GAAgB,GAC1BtnB,EAAS33B,EAAQ23B,OACjB0nB,EAA8B1nB,GAAUA,EAAO33B,SAAW23B,EAAO33B,QAAQs/C,sBACzEC,EAA8D,MAA/BF,EAAsC,EAAI7D,EAAU6D,GACnFC,EAAyD,MAAjCt/C,EAAQs/C,sBAAgCC,EAA+B/D,EAAUx7C,EAAQs/C,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIt5C,WAAW,6DAGvB,IAAIw5C,EAAsB,IAAI38C,KAAK,GACnC28C,EAAoBhB,eAAehC,EAAO,EAAG,EAAG8C,GAChDE,EAAoB3B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIY,EAAkBO,EAAeQ,EAAqBP,GACtDQ,EAAsB,IAAI58C,KAAK,GACnC48C,EAAoBjB,eAAehC,EAAM,EAAG8C,GAC5CG,EAAoB5B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIc,EAAkBK,EAAeS,EAAqBR,GAE1D,OAAIp9D,EAAKs5D,WAAasD,EAAgBtD,UAC7BqB,EAAO,EACL36D,EAAKs5D,WAAawD,EAAgBxD,UACpCqB,EAEAA,EAAO,EC5BH,SAASkD,EAAmBnE,EAAW0D,GACpDlE,EAAa,EAAGlzD,WAChB,IAAImY,EAAUi/C,GAAgB,GAC1BtnB,EAAS33B,EAAQ23B,OACjB0nB,EAA8B1nB,GAAUA,EAAO33B,SAAW23B,EAAO33B,QAAQs/C,sBACzEC,EAA8D,MAA/BF,EAAsC,EAAI7D,EAAU6D,GACnFC,EAAyD,MAAjCt/C,EAAQs/C,sBAAgCC,EAA+B/D,EAAUx7C,EAAQs/C,uBACjH9C,EAAO4C,EAAe7D,EAAW0D,GACjCU,EAAY,IAAI98C,KAAK,GACzB88C,EAAUnB,eAAehC,EAAM,EAAG8C,GAClCK,EAAU9B,YAAY,EAAG,EAAG,EAAG,GAC/B,IAAIh8D,EAAOm9D,EAAeW,EAAWV,GACrC,OAAOp9D,ECdT,IAAI,EAAuB,OAGZ,SAAS+9D,EAAWrE,EAAWv7C,GAC5C+6C,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd6C,EAAOY,EAAen9D,EAAMme,GAASm7C,UAAYuE,EAAmB79D,EAAMme,GAASm7C,UAIvF,OAAO9zD,KAAKymB,MAAMswC,EAAO,GAAwB,ECPnD,IAAIyB,EAAgB,CAClBC,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAgDL,EAAa,CAEfC,EAAG,SAAUz+D,EAAMw6D,EAAOkE,GACxB,IAAIC,EAAM3+D,EAAK06D,iBAAmB,EAAI,EAAI,EAE1C,OAAQF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkE,EAASC,IAAIA,EAAK,CACvBzjD,MAAO,gBAIX,IAAK,QACH,OAAOwjD,EAASC,IAAIA,EAAK,CACvBzjD,MAAO,WAIX,IAAK,OACL,QACE,OAAOwjD,EAASC,IAAIA,EAAK,CACvBzjD,MAAO,WAKfq/C,EAAG,SAAUv6D,EAAMw6D,EAAOkE,GAExB,GAAc,OAAVlE,EAAgB,CAClB,IAAIC,EAAaz6D,EAAK06D,iBAElBC,EAAOF,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOiE,EAASE,cAAcjE,EAAM,CAClCkE,KAAM,SAIV,OAAOC,EAAgBvE,EAAEv6D,EAAMw6D,IAGjCuE,EAAG,SAAU/+D,EAAMw6D,EAAOkE,EAAUvgD,GAClC,IAAI6gD,EAAiBzB,EAAev9D,EAAMme,GAEtC8gD,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAEzD,GAAc,OAAVxE,EAAgB,CAClB,IAAI0E,EAAeD,EAAW,IAC9B,OAAO/E,EAAgBgF,EAAc,GAIvC,MAAc,OAAV1E,EACKkE,EAASE,cAAcK,EAAU,CACtCJ,KAAM,SAKH3E,EAAgB+E,EAAUzE,EAAM32D,SAGzC+K,EAAG,SAAU5O,EAAMw6D,GACjB,IAAI2E,EAAc1C,EAAkBz8D,GAEpC,OAAOk6D,EAAgBiF,EAAa3E,EAAM32D,SAW5Cu7D,EAAG,SAAUp/D,EAAMw6D,GACjB,IAAIG,EAAO36D,EAAK06D,iBAChB,OAAOR,EAAgBS,EAAMH,EAAM32D,SAGrCw7D,EAAG,SAAUr/D,EAAMw6D,EAAOkE,GACxB,IAAIY,EAAU95D,KAAKyY,MAAMje,EAAK86D,cAAgB,GAAK,GAEnD,OAAQN,GAEN,IAAK,IACH,OAAOj7D,OAAO+/D,GAGhB,IAAK,KACH,OAAOpF,EAAgBoF,EAAS,GAGlC,IAAK,KACH,OAAOZ,EAASE,cAAcU,EAAS,CACrCT,KAAM,YAIV,IAAK,MACH,OAAOH,EAASY,QAAQA,EAAS,CAC/BpkD,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAASY,QAAQA,EAAS,CAC/BpkD,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAASY,QAAQA,EAAS,CAC/BpkD,MAAO,OACPqkD,QAAS,iBAKjBr3D,EAAG,SAAUlI,EAAMw6D,EAAOkE,GACxB,IAAIY,EAAU95D,KAAKyY,MAAMje,EAAK86D,cAAgB,GAAK,GAEnD,OAAQN,GAEN,IAAK,IACH,OAAOj7D,OAAO+/D,GAGhB,IAAK,KACH,OAAOpF,EAAgBoF,EAAS,GAGlC,IAAK,KACH,OAAOZ,EAASE,cAAcU,EAAS,CACrCT,KAAM,YAIV,IAAK,MACH,OAAOH,EAASY,QAAQA,EAAS,CAC/BpkD,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAASY,QAAQA,EAAS,CAC/BpkD,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAASY,QAAQA,EAAS,CAC/BpkD,MAAO,OACPqkD,QAAS,iBAKjB3E,EAAG,SAAU56D,EAAMw6D,EAAOkE,GACxB,IAAI7D,EAAQ76D,EAAK86D,cAEjB,OAAQN,GACN,IAAK,IACL,IAAK,KACH,OAAOsE,EAAgBlE,EAAE56D,EAAMw6D,GAGjC,IAAK,KACH,OAAOkE,EAASE,cAAc/D,EAAQ,EAAG,CACvCgE,KAAM,UAIV,IAAK,MACH,OAAOH,EAAS7D,MAAMA,EAAO,CAC3B3/C,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAAS7D,MAAMA,EAAO,CAC3B3/C,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAAS7D,MAAMA,EAAO,CAC3B3/C,MAAO,OACPqkD,QAAS,iBAKjBC,EAAG,SAAUx/D,EAAMw6D,EAAOkE,GACxB,IAAI7D,EAAQ76D,EAAK86D,cAEjB,OAAQN,GAEN,IAAK,IACH,OAAOj7D,OAAOs7D,EAAQ,GAGxB,IAAK,KACH,OAAOX,EAAgBW,EAAQ,EAAG,GAGpC,IAAK,KACH,OAAO6D,EAASE,cAAc/D,EAAQ,EAAG,CACvCgE,KAAM,UAIV,IAAK,MACH,OAAOH,EAAS7D,MAAMA,EAAO,CAC3B3/C,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAAS7D,MAAMA,EAAO,CAC3B3/C,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAAS7D,MAAMA,EAAO,CAC3B3/C,MAAO,OACPqkD,QAAS,iBAKjBE,EAAG,SAAUz/D,EAAMw6D,EAAOkE,EAAUvgD,GAClC,IAAIuhD,EAAO3B,EAAW/9D,EAAMme,GAE5B,MAAc,OAAVq8C,EACKkE,EAASE,cAAcc,EAAM,CAClCb,KAAM,SAIH3E,EAAgBwF,EAAMlF,EAAM32D,SAGrC87D,EAAG,SAAU3/D,EAAMw6D,EAAOkE,GACxB,IAAIkB,EAAU1C,EAAcl9D,GAE5B,MAAc,OAAVw6D,EACKkE,EAASE,cAAcgB,EAAS,CACrCf,KAAM,SAIH3E,EAAgB0F,EAASpF,EAAM32D,SAGxC8E,EAAG,SAAU3I,EAAMw6D,EAAOkE,GACxB,MAAc,OAAVlE,EACKkE,EAASE,cAAc5+D,EAAK+6D,aAAc,CAC/C8D,KAAM,SAIHC,EAAgBn2D,EAAE3I,EAAMw6D,IAGjCqF,EAAG,SAAU7/D,EAAMw6D,EAAOkE,GACxB,IAAIoB,EAAYhE,EAAgB97D,GAEhC,MAAc,OAAVw6D,EACKkE,EAASE,cAAckB,EAAW,CACvCjB,KAAM,cAIH3E,EAAgB4F,EAAWtF,EAAM32D,SAG1Ck8D,EAAG,SAAU//D,EAAMw6D,EAAOkE,GACxB,IAAIsB,EAAYhgE,EAAKs8D,YAErB,OAAQ9B,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkE,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,QACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,OACPqkD,QAAS,iBAKjBn3D,EAAG,SAAUpI,EAAMw6D,EAAOkE,EAAUvgD,GAClC,IAAI6hD,EAAYhgE,EAAKs8D,YACjB2D,GAAkBD,EAAY7hD,EAAQi+C,aAAe,GAAK,GAAK,EAEnE,OAAQ5B,GAEN,IAAK,IACH,OAAOj7D,OAAO0gE,GAGhB,IAAK,KACH,OAAO/F,EAAgB+F,EAAgB,GAGzC,IAAK,KACH,OAAOvB,EAASE,cAAcqB,EAAgB,CAC5CpB,KAAM,QAGV,IAAK,MACH,OAAOH,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,QACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,OACPqkD,QAAS,iBAKjBW,EAAG,SAAUlgE,EAAMw6D,EAAOkE,EAAUvgD,GAClC,IAAI6hD,EAAYhgE,EAAKs8D,YACjB2D,GAAkBD,EAAY7hD,EAAQi+C,aAAe,GAAK,GAAK,EAEnE,OAAQ5B,GAEN,IAAK,IACH,OAAOj7D,OAAO0gE,GAGhB,IAAK,KACH,OAAO/F,EAAgB+F,EAAgBzF,EAAM32D,QAG/C,IAAK,KACH,OAAO66D,EAASE,cAAcqB,EAAgB,CAC5CpB,KAAM,QAGV,IAAK,MACH,OAAOH,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,QACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,OACPqkD,QAAS,iBAKjBj3D,EAAG,SAAUtI,EAAMw6D,EAAOkE,GACxB,IAAIsB,EAAYhgE,EAAKs8D,YACjB6D,EAA6B,IAAdH,EAAkB,EAAIA,EAEzC,OAAQxF,GAEN,IAAK,IACH,OAAOj7D,OAAO4gE,GAGhB,IAAK,KACH,OAAOjG,EAAgBiG,EAAc3F,EAAM32D,QAG7C,IAAK,KACH,OAAO66D,EAASE,cAAcuB,EAAc,CAC1CtB,KAAM,QAIV,IAAK,MACH,OAAOH,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,cACPqkD,QAAS,eAIb,IAAK,QACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,QACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAOb,EAASrC,IAAI2D,EAAW,CAC7B9kD,MAAO,OACPqkD,QAAS,iBAKjBvE,EAAG,SAAUh7D,EAAMw6D,EAAOkE,GACxB,IAAI0B,EAAQpgE,EAAKk7D,cACbD,EAAqBmF,EAAQ,IAAM,EAAI,KAAO,KAElD,OAAQ5F,GACN,IAAK,IACL,IAAK,KACH,OAAOkE,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,cACPqkD,QAAS,eAGb,IAAK,MACH,OAAOb,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,cACPqkD,QAAS,eACRpqD,cAEL,IAAK,QACH,OAAOupD,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,SACPqkD,QAAS,eAGb,IAAK,OACL,QACE,OAAOb,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,OACPqkD,QAAS,iBAKjBe,EAAG,SAAUtgE,EAAMw6D,EAAOkE,GACxB,IACIzD,EADAmF,EAAQpgE,EAAKk7D,cAWjB,OAPED,EADY,KAAVmF,EACmBpC,EAAcI,KAChB,IAAVgC,EACYpC,EAAcG,SAEdiC,EAAQ,IAAM,EAAI,KAAO,KAGxC5F,GACN,IAAK,IACL,IAAK,KACH,OAAOkE,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,cACPqkD,QAAS,eAGb,IAAK,MACH,OAAOb,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,cACPqkD,QAAS,eACRpqD,cAEL,IAAK,QACH,OAAOupD,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,SACPqkD,QAAS,eAGb,IAAK,OACL,QACE,OAAOb,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,OACPqkD,QAAS,iBAKjBgB,EAAG,SAAUvgE,EAAMw6D,EAAOkE,GACxB,IACIzD,EADAmF,EAAQpgE,EAAKk7D,cAajB,OATED,EADEmF,GAAS,GACUpC,EAAcO,QAC1B6B,GAAS,GACGpC,EAAcM,UAC1B8B,GAAS,EACGpC,EAAcK,QAEdL,EAAcQ,MAG7BhE,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkE,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,cACPqkD,QAAS,eAGb,IAAK,QACH,OAAOb,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,SACPqkD,QAAS,eAGb,IAAK,OACL,QACE,OAAOb,EAAS2B,UAAUpF,EAAoB,CAC5C//C,MAAO,OACPqkD,QAAS,iBAKjBnE,EAAG,SAAUp7D,EAAMw6D,EAAOkE,GACxB,GAAc,OAAVlE,EAAgB,CAClB,IAAI4F,EAAQpgE,EAAKk7D,cAAgB,GAEjC,OADc,IAAVkF,IAAaA,EAAQ,IAClB1B,EAASE,cAAcwB,EAAO,CACnCvB,KAAM,SAIV,OAAOC,EAAgB1D,EAAEp7D,EAAMw6D,IAGjCa,EAAG,SAAUr7D,EAAMw6D,EAAOkE,GACxB,MAAc,OAAVlE,EACKkE,EAASE,cAAc5+D,EAAKk7D,cAAe,CAChD2D,KAAM,SAIHC,EAAgBzD,EAAEr7D,EAAMw6D,IAGjCgG,EAAG,SAAUxgE,EAAMw6D,EAAOkE,GACxB,IAAI0B,EAAQpgE,EAAKk7D,cAAgB,GAEjC,MAAc,OAAVV,EACKkE,EAASE,cAAcwB,EAAO,CACnCvB,KAAM,SAIH3E,EAAgBkG,EAAO5F,EAAM32D,SAGtC8f,EAAG,SAAU3jB,EAAMw6D,EAAOkE,GACxB,IAAI0B,EAAQpgE,EAAKk7D,cAGjB,OAFc,IAAVkF,IAAaA,EAAQ,IAEX,OAAV5F,EACKkE,EAASE,cAAcwB,EAAO,CACnCvB,KAAM,SAIH3E,EAAgBkG,EAAO5F,EAAM32D,SAGtC6W,EAAG,SAAU1a,EAAMw6D,EAAOkE,GACxB,MAAc,OAAVlE,EACKkE,EAASE,cAAc5+D,EAAKs7D,gBAAiB,CAClDuD,KAAM,WAIHC,EAAgBpkD,EAAE1a,EAAMw6D,IAGjCe,EAAG,SAAUv7D,EAAMw6D,EAAOkE,GACxB,MAAc,OAAVlE,EACKkE,EAASE,cAAc5+D,EAAKw7D,gBAAiB,CAClDqD,KAAM,WAIHC,EAAgBvD,EAAEv7D,EAAMw6D,IAGjC5yD,EAAG,SAAU5H,EAAMw6D,GACjB,OAAOsE,EAAgBl3D,EAAE5H,EAAMw6D,IAGjCiG,EAAG,SAAUzgE,EAAMw6D,EAAOkG,EAAWviD,GACnC,IAAIwiD,EAAexiD,EAAQyiD,eAAiB5gE,EACxC6gE,EAAiBF,EAAaG,oBAElC,GAAuB,IAAnBD,EACF,MAAO,IAGT,OAAQrG,GAEN,IAAK,IACH,OAAOuG,EAAkCF,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOG,EAAeH,GAKxB,IAAK,QACL,IAAK,MAEL,QACE,OAAOG,EAAeH,EAAgB,OAI5CI,EAAG,SAAUjhE,EAAMw6D,EAAOkG,EAAWviD,GACnC,IAAIwiD,EAAexiD,EAAQyiD,eAAiB5gE,EACxC6gE,EAAiBF,EAAaG,oBAElC,OAAQtG,GAEN,IAAK,IACH,OAAOuG,EAAkCF,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOG,EAAeH,GAKxB,IAAK,QACL,IAAK,MAEL,QACE,OAAOG,EAAeH,EAAgB,OAI5Cp5D,EAAG,SAAUzH,EAAMw6D,EAAOkG,EAAWviD,GACnC,IAAIwiD,EAAexiD,EAAQyiD,eAAiB5gE,EACxC6gE,EAAiBF,EAAaG,oBAElC,OAAQtG,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ0G,EAAoBL,EAAgB,KAGrD,IAAK,OACL,QACE,MAAO,MAAQG,EAAeH,EAAgB,OAIpDx4D,EAAG,SAAUrI,EAAMw6D,EAAOkG,EAAWviD,GACnC,IAAIwiD,EAAexiD,EAAQyiD,eAAiB5gE,EACxC6gE,EAAiBF,EAAaG,oBAElC,OAAQtG,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ0G,EAAoBL,EAAgB,KAGrD,IAAK,OACL,QACE,MAAO,MAAQG,EAAeH,EAAgB,OAIpDz8C,EAAG,SAAUpkB,EAAMw6D,EAAOkG,EAAWviD,GACnC,IAAIwiD,EAAexiD,EAAQyiD,eAAiB5gE,EACxC+5D,EAAYv0D,KAAK6K,MAAMswD,EAAarH,UAAY,KACpD,OAAOY,EAAgBH,EAAWS,EAAM32D,SAG1Cs9D,EAAG,SAAUnhE,EAAMw6D,EAAOkG,EAAWviD,GACnC,IAAIwiD,EAAexiD,EAAQyiD,eAAiB5gE,EACxC+5D,EAAY4G,EAAarH,UAC7B,OAAOY,EAAgBH,EAAWS,EAAM32D,UAI5C,SAASq9D,EAAoB7hD,EAAQ+hD,GACnC,IAAIhH,EAAO/6C,EAAS,EAAI,IAAM,IAC1BgiD,EAAY77D,KAAK60D,IAAIh7C,GACrB+gD,EAAQ56D,KAAK6K,MAAMgxD,EAAY,IAC/BC,EAAUD,EAAY,GAE1B,GAAgB,IAAZC,EACF,OAAOlH,EAAO76D,OAAO6gE,GAGvB,IAAIz9C,EAAYy+C,GAAkB,GAClC,OAAOhH,EAAO76D,OAAO6gE,GAASz9C,EAAYu3C,EAAgBoH,EAAS,GAGrE,SAASP,EAAkC1hD,EAAQ+hD,GACjD,GAAI/hD,EAAS,KAAO,EAAG,CACrB,IAAI+6C,EAAO/6C,EAAS,EAAI,IAAM,IAC9B,OAAO+6C,EAAOF,EAAgB10D,KAAK60D,IAAIh7C,GAAU,GAAI,GAGvD,OAAO2hD,EAAe3hD,EAAQ+hD,GAGhC,SAASJ,EAAe3hD,EAAQ+hD,GAC9B,IAAIz+C,EAAYy+C,GAAkB,GAC9BhH,EAAO/6C,EAAS,EAAI,IAAM,IAC1BgiD,EAAY77D,KAAK60D,IAAIh7C,GACrB+gD,EAAQlG,EAAgB10D,KAAK6K,MAAMgxD,EAAY,IAAK,GACpDC,EAAUpH,EAAgBmH,EAAY,GAAI,GAC9C,OAAOjH,EAAOgG,EAAQz9C,EAAY2+C,EAGrB,QCj2Bf,SAASC,EAAkBxwC,EAASywC,GAClC,OAAQzwC,GACN,IAAK,IACH,OAAOywC,EAAWxhE,KAAK,CACrBkb,MAAO,UAGX,IAAK,KACH,OAAOsmD,EAAWxhE,KAAK,CACrBkb,MAAO,WAGX,IAAK,MACH,OAAOsmD,EAAWxhE,KAAK,CACrBkb,MAAO,SAGX,IAAK,OACL,QACE,OAAOsmD,EAAWxhE,KAAK,CACrBkb,MAAO,UAKf,SAASumD,EAAkB1wC,EAASywC,GAClC,OAAQzwC,GACN,IAAK,IACH,OAAOywC,EAAWtgD,KAAK,CACrBhG,MAAO,UAGX,IAAK,KACH,OAAOsmD,EAAWtgD,KAAK,CACrBhG,MAAO,WAGX,IAAK,MACH,OAAOsmD,EAAWtgD,KAAK,CACrBhG,MAAO,SAGX,IAAK,OACL,QACE,OAAOsmD,EAAWtgD,KAAK,CACrBhG,MAAO,UAKf,SAASwmD,EAAsB3wC,EAASywC,GACtC,IAQIG,EARAC,EAAc7wC,EAAQtqB,MAAM,aAC5Bo7D,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAE9B,IAAKE,EACH,OAAOP,EAAkBxwC,EAASywC,GAKpC,OAAQK,GACN,IAAK,IACHF,EAAiBH,EAAWpgD,SAAS,CACnClG,MAAO,UAET,MAEF,IAAK,KACHymD,EAAiBH,EAAWpgD,SAAS,CACnClG,MAAO,WAET,MAEF,IAAK,MACHymD,EAAiBH,EAAWpgD,SAAS,CACnClG,MAAO,SAET,MAEF,IAAK,OACL,QACEymD,EAAiBH,EAAWpgD,SAAS,CACnClG,MAAO,SAET,MAGJ,OAAOymD,EAAepqD,QAAQ,WAAYgqD,EAAkBM,EAAaL,IAAajqD,QAAQ,WAAYkqD,EAAkBK,EAAaN,IAG3I,IAAIO,EAAiB,CACnB95D,EAAGw5D,EACHO,EAAGN,GAEU,ICpFA,SAASO,EAAgCjiE,GACtD,IAAIkiE,EAAU,IAAIlhD,KAAKA,KAAKmhD,IAAIniE,EAAKoiE,cAAepiE,EAAKqiE,WAAYriE,EAAKsiE,UAAWtiE,EAAKuiE,WAAYviE,EAAKwiE,aAAcxiE,EAAKyiE,aAAcziE,EAAK0iE,oBAEjJ,OADAR,EAAQvF,eAAe38D,EAAKoiE,eACrBpiE,EAAKs5D,UAAY4I,EAAQ5I,UCdlC,IAAIqJ,EAA2B,CAAC,IAAK,MACjCC,EAA0B,CAAC,KAAM,QAC9B,SAASC,EAA0BrI,GACxC,OAAoD,IAA7CmI,EAAyBp4D,QAAQiwD,GAEnC,SAASsI,EAAyBtI,GACvC,OAAmD,IAA5CoI,EAAwBr4D,QAAQiwD,GAElC,SAASuI,EAAoBvI,EAAOwI,EAAQzxD,GACjD,GAAc,SAAVipD,EACF,MAAM,IAAIr2C,WAAW,qCAAqCsV,OAAOupC,EAAQ,0CAA0CvpC,OAAOloB,EAAO,iCAC5H,GAAc,OAAVipD,EACT,MAAM,IAAIr2C,WAAW,iCAAiCsV,OAAOupC,EAAQ,0CAA0CvpC,OAAOloB,EAAO,iCACxH,GAAc,MAAVipD,EACT,MAAM,IAAIr2C,WAAW,+BAA+BsV,OAAOupC,EAAQ,sDAAsDvpC,OAAOloB,EAAO,iCAClI,GAAc,OAAVipD,EACT,MAAM,IAAIr2C,WAAW,iCAAiCsV,OAAOupC,EAAQ,sDAAsDvpC,OAAOloB,EAAO,iCCK7I,IAAI0xD,EAAyB,wDAGzBC,EAA6B,oCAC7BC,EAAsB,eACtBC,EAAoB,MACpBC,EAAgC,WAyTrB,SAASL,EAAOtJ,EAAW4J,EAAgBlG,GACxDlE,EAAa,EAAGlzD,WAChB,IAAIu9D,EAAYhkE,OAAO+jE,GACnBnlD,EAAUi/C,GAAgB,GAC1BtnB,EAAS33B,EAAQ23B,QAAU,OAC3B0nB,EAA8B1nB,EAAO33B,SAAW23B,EAAO33B,QAAQs/C,sBAC/DC,EAA8D,MAA/BF,EAAsC,EAAI7D,EAAU6D,GACnFC,EAAyD,MAAjCt/C,EAAQs/C,sBAAgCC,EAA+B/D,EAAUx7C,EAAQs/C,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIt5C,WAAW,6DAGvB,IAAIk5C,EAAqBvnB,EAAO33B,SAAW23B,EAAO33B,QAAQi+C,aACtDkB,EAA4C,MAAtBD,EAA6B,EAAI1D,EAAU0D,GACjEjB,EAAuC,MAAxBj+C,EAAQi+C,aAAuBkB,EAAsB3D,EAAUx7C,EAAQi+C,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIj4C,WAAW,oDAGvB,IAAK2xB,EAAO4oB,SACV,MAAM,IAAIv6C,WAAW,yCAGvB,IAAK2xB,EAAO0rB,WACV,MAAM,IAAIr9C,WAAW,2CAGvB,IAAIw8C,EAAevH,EAAOM,GAE1B,IAAKD,EAAQkH,GACX,MAAM,IAAIx8C,WAAW,sBAMvB,IAAI08C,EAAiBoB,EAAgCtB,GACjDuB,EAAUjI,EAAgB0G,EAAcE,GACxC2C,EAAmB,CACrB/F,sBAAuBA,EACvBrB,aAAcA,EACdtmB,OAAQA,EACR8qB,cAAeD,GAEb3iE,EAASulE,EAAU98D,MAAMy8D,GAA4B3hE,KAAI,SAAUkiE,GACrE,IAAIC,EAAiBD,EAAU,GAE/B,GAAuB,MAAnBC,GAA6C,MAAnBA,EAAwB,CACpD,IAAIC,EAAgB,EAAeD,GACnC,OAAOC,EAAcF,EAAW3tB,EAAO0rB,WAAYgC,GAGrD,OAAOC,KACN3/D,KAAK,IAAI2C,MAAMw8D,GAAwB1hE,KAAI,SAAUkiE,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAGT,IAAIC,EAAiBD,EAAU,GAE/B,GAAuB,MAAnBC,EACF,OAAOE,EAAmBH,GAG5B,IAAII,EAAY,EAAWH,GAE3B,GAAIG,EASF,OARK1lD,EAAQ2lD,6BAA+BhB,EAAyBW,IACnEV,EAAoBU,EAAWH,EAAgB5J,IAG5Cv7C,EAAQ4lD,8BAAgClB,EAA0BY,IACrEV,EAAoBU,EAAWH,EAAgB5J,GAG1CmK,EAAU3B,EAASuB,EAAW3tB,EAAO4oB,SAAU8E,GAGxD,GAAIE,EAAej9D,MAAM48D,GACvB,MAAM,IAAIl/C,WAAW,iEAAmEu/C,EAAiB,KAG3G,OAAOD,KACN3/D,KAAK,IACR,OAAO9F,EAGT,SAAS4lE,EAAmBryD,GAC1B,OAAOA,EAAM9K,MAAM08D,GAAqB,GAAG5rD,QAAQ6rD,EAAmB,KCvZzD,SAAS9J,GAAQI,GAC9BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdK,EAAY/5D,EAAKs5D,UACrB,OAAOS,E,sIC1BM,UAAAiK,GAAA,MAAY,KAAM,eAAE,MAAO,CAAEx7D,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BACrF,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAKjZ,KAAM,OAAQ,YAAa,WACrE,eAAE,IAAK,CAAEA,KAAM,eAAgB,YAAa,WACxC,eAAE,OAAQ,CAAEE,EAAG,wjBCHZ,UAAAq7D,GAAA,MAAY,OAAQ,eAAE,MAAO,CAAE9oD,MAAO,OAAQJ,OAAQ,OAAQtS,QAAS,YAAaiZ,QAAS,MAAO/Y,MAAO,8BACtH,eAAE,IAAK,CAAEgZ,OAAQ,OAAQ,eAAgB,IAAK,YAAa,WACvD,eAAE,IAAK,CAAE,YAAa,WAClB,eAAE,OAAQ,CAAE/Y,EAAG,oe,8ECLZ,IACXiF,aAAc,OACdq2D,WAAY,OACZC,UAAW,OACXC,mBAAoB,S,aCEjB,MAAM,GAAQ34D,IACjB,MAAM,aAAE2Z,EAAY,WAAE1Z,EAAU,aAAEC,EAAY,WAAE6Z,EAAU,aAAEF,EAAY,gBAAEC,EAAe,WAAE4kB,EAAU,aAAEl+B,EAAY,UAAE2/B,EAAS,kBAAEy4B,GAAsB54D,EACtJ,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,IAAa,CAAE45D,WAAYl/C,EAAcm/C,eAAgBp6B,EAAYq6B,kBAAmBl/C,EAAc1Y,cAAelB,EAAYqB,oBAAqBpB,EAAcuB,eAAgBsY,EAAYi/C,oBAAqBl/C,EAAiBtZ,eACzQ2/B,YACAy4B,uBAEFK,GAAkB,gBAAY,CAChCl8D,KAAM,aACNyF,OAAQ,QACRC,MAAO,CACHoZ,UAAW,QACXimB,OAAQ,QACRn/B,MAAO,SAEXC,KAAI,KAEO,UCtBA,IACXvD,SAAU,OACV65D,cAAe,OACfC,eAAgB,OAChBC,wBAAyB,WACzBT,mBAAoB,WACpBU,qBAAsB,IACtBC,oBAAqB,OACrBC,UAAW,OACXC,mBAAoB,WACpBC,mBAAoB,OACpBC,gCAAiC,0BAEjCC,wBAAyB,oBACzBC,4BAA6B,WAC7BC,6BAA8B,oBAC9BC,iCAAkC,WAClCC,yBAA0B,oBAC1BC,6BAA8B,WAC9BC,8BAA+B,oBAC/BC,kCAAmC,Y,aCbhC,MAAM,GAAQl6D,IACjB,MAAM,WAAE+Z,EAAU,SAAEtZ,EAAQ,WAAER,EAAU,kBAAEK,EAAiB,aAAEqZ,EAAY,aAAEzZ,EAAY,kBAAEwd,EAAiB,UAAEyiB,EAAS,kBAAEy4B,EAAiB,WAAE54B,EAAU,aAAEnmB,EAAY,WAAE6kB,EAAU,aAAEl+B,EAAY,iBAAE4/B,GAAqBpgC,EACnN,OAAOjI,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI,IAAa,CAAEmD,aAAc3B,EAAU05D,qBAAsB15D,EAAU25D,sBAAuB35D,EAAUU,cAAelB,EAAYsB,sBAAuBjB,EAAmBgB,oBAAqBqY,EAAc0gD,qBAAsBn6D,EAAco6D,kBAAmB,gBAAYp6D,EAAc,CAAEwe,MAAO,KAAQjd,eAAgBsY,EAAYlY,kBAAmBkY,EAAYpY,gBAAiBzB,EAAciC,iBAAkBub,EAAmBm7C,WAAYl/C,EAAc4gD,eAAgBt6D,EAAY6rB,WAAYqU,EAAWq6B,uBAAwBx6B,EAAYy6B,sBAAuBx6D,EAAYy6D,wBAAyB7gD,EAAc8gD,yBAA0B9gD,EAAc+gD,qBAAsB/gD,EAAcghD,wBAAyBhhD,EAAci/C,eAAgBp6B,EAAYo8B,kBAAmBt6D,EAAcu6D,wBAAyB36B,EAAkBD,YAC12By4B,uBAEFoC,GAAkB,gBAAY,CAChCj+D,KAAM,aACNyF,OAAQ,QACRC,MAAO,CACHE,MAAO,QACPm/B,OAAQ,QACRm5B,WAAY,IAEhBr4D,KAAI,KAEO,UCIA,SAASs4D,GAAQhN,EAAWI,GACzCZ,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdM,EAASL,EAAUG,GAEvB,OAAI7G,MAAM+G,GACD,IAAIh5C,KAAKo3C,KAGb4B,GAKLh6D,EAAK2mE,QAAQ3mE,EAAKsiE,UAAYtI,GACvBh6D,GAJEA,ECZI,SAAS4mE,GAAWlN,GACjCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GAElB,OADA15D,EAAK6mE,SAAS,EAAG,EAAG,EAAG,GAChB7mE,ECJM,SAAS8mE,GAAUC,EAAeC,GAC/C9N,EAAa,EAAGlzD,WAChB,IAAIihE,EAAqBL,GAAWG,GAChCG,EAAsBN,GAAWI,GACrC,OAAOC,EAAmB3N,YAAc4N,EAAoB5N,UCL/C,SAASgJ,GAAQ5I,GAC9BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdyN,EAAannE,EAAKsiE,UACtB,OAAO6E,ECJM,SAAS9E,GAAS3I,GAC/BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdmB,EAAQ76D,EAAKqiE,WACjB,OAAOxH,ECJM,SAASuM,GAAQ1N,GAC9BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdiB,EAAO36D,EAAKoiE,cAChB,OAAOzH,ECHM,SAAS0M,GAAYN,EAAeC,GACjD9N,EAAa,EAAGlzD,WAChB,IAAIshE,EAAWlO,EAAO2N,GAClBQ,EAAYnO,EAAO4N,GACvB,OAAOM,EAASlF,gBAAkBmF,EAAUnF,eAAiBkF,EAASjF,aAAekF,EAAUlF,WCJlF,SAASmF,GAAa9N,GACnCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GAGlB,OAFA15D,EAAK2mE,QAAQ,GACb3mE,EAAK6mE,SAAS,EAAG,EAAG,EAAG,GAChB7mE,ECNM,SAASynE,GAAO/N,GAC7BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd2C,EAAMr8D,EAAKynE,SACf,OAAOpL,EC5BM,SAAS,GAAOj9C,EAAQsoD,GACrC,GAAc,MAAVtoD,EACF,MAAM,IAAIpH,UAAU,iEAKtB,IAAK,IAAI2vD,KAFTD,EAAcA,GAAe,GAERA,EACfnkE,OAAOC,UAAUC,eAAeC,KAAKgkE,EAAaC,KACpDvoD,EAAOuoD,GAAYD,EAAYC,IAInC,OAAOvoD,ECRM,SAASwoD,GAAUlO,EAAWmO,EAAUzK,GACrDlE,EAAa,EAAGlzD,WAChB,IAAImY,EAAUi/C,GAAgB,GAC1BtnB,EAAS33B,EAAQ23B,OACjBunB,EAAqBvnB,GAAUA,EAAO33B,SAAW23B,EAAO33B,QAAQi+C,aAChEkB,EAA4C,MAAtBD,EAA6B,EAAI1D,EAAU0D,GACjEjB,EAAuC,MAAxBj+C,EAAQi+C,aAAuBkB,EAAsB3D,EAAUx7C,EAAQi+C,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIj4C,WAAW,oDAGvB,IAAInkB,EAAOo5D,EAAOM,GACd2C,EAAM1C,EAAUkO,GAChBC,EAAa9nE,EAAKs8D,YAClByL,EAAY1L,EAAM,EAClB2L,GAAYD,EAAY,GAAK,EAC7BxL,GAAQyL,EAAW5L,EAAe,EAAI,GAAKC,EAAMyL,EAErD,OADA9nE,EAAKw8D,WAAWx8D,EAAK+6D,aAAewB,GAC7Bv8D,ECnBM,SAASioE,GAAavO,EAAWmO,GAC9C3O,EAAa,EAAGlzD,WAChB,IAAIq2D,EAAM1C,EAAUkO,GAEhBxL,EAAM,IAAM,IACdA,GAAY,GAGd,IAAID,EAAe,EACfp8D,EAAOo5D,EAAOM,GACdoO,EAAa9nE,EAAKs8D,YAClByL,EAAY1L,EAAM,EAClB2L,GAAYD,EAAY,GAAK,EAC7BxL,GAAQyL,EAAW5L,EAAe,EAAI,GAAKC,EAAMyL,EAErD,OADA9nE,EAAKw8D,WAAWx8D,EAAK+6D,aAAewB,GAC7Bv8D,ECdM,SAASkoE,GAAcxO,EAAWyO,GAC/CjP,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdkG,EAAUjG,EAAUwO,GACpB5L,EAAOW,EAAcl9D,GAAQ4/D,EAEjC,OADA5/D,EAAKw8D,WAAWx8D,EAAK+6D,aAAsB,EAAPwB,GAC7Bv8D,ECNM,SAASooE,GAAW1O,EAAW2O,EAAWlqD,GACvD+6C,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdgG,EAAO/F,EAAU0O,GACjB9L,EAAOwB,EAAW/9D,EAAMme,GAAWuhD,EAEvC,OADA1/D,EAAKw8D,WAAWx8D,EAAK+6D,aAAsB,EAAPwB,GAC7Bv8D,ECLT,IAAIsoE,GAAuB,KACvBC,GAAyB,IACzBC,GAAyB,IACzBC,GAAkB,CACpB5N,MAAO,iBAEP76D,KAAM,qBAEN8/D,UAAW,kCAEXJ,KAAM,qBAENgJ,QAAS,qBAETC,QAAS,qBAETC,QAAS,iBAETC,QAAS,iBAETC,OAAQ,YAERl0D,OAAQ,YAERm0D,YAAa,MAEbC,UAAW,WAEXC,YAAa,WAEbC,WAAY,WAEZC,gBAAiB,SACjBC,kBAAmB,QAEnBC,gBAAiB,aAEjBC,kBAAmB,aAEnBC,iBAAkB,cAGhBC,GAAmB,CACrBC,qBAAsB,2BACtBC,MAAO,0BACPC,qBAAsB,oCACtBC,SAAU,2BACVC,wBAAyB,uCAG3B,SAASC,GAAoB/4C,EAASxqB,EAAQwjE,GAC5C,IAAInI,EAAcr7D,EAAOE,MAAMsqB,GAE/B,IAAK6wC,EACH,OAAO,KAGT,IAAI3iE,EAAQ0C,SAASigE,EAAY,GAAI,IACrC,MAAO,CACL3iE,MAAO8qE,EAAgBA,EAAc9qE,GAASA,EAC9Cs6B,KAAMhzB,EAAOe,MAAMs6D,EAAY,GAAG/9D,SAItC,SAASmmE,GAAqBj5C,EAASxqB,GACrC,IAAIq7D,EAAcr7D,EAAOE,MAAMsqB,GAE/B,IAAK6wC,EACH,OAAO,KAIT,GAAuB,MAAnBA,EAAY,GACd,MAAO,CACL3iE,MAAO,EACPs6B,KAAMhzB,EAAOe,MAAM,IAIvB,IAAI8yD,EAA0B,MAAnBwH,EAAY,GAAa,GAAK,EACrCxB,EAAQwB,EAAY,GAAKjgE,SAASigE,EAAY,GAAI,IAAM,EACxDN,EAAUM,EAAY,GAAKjgE,SAASigE,EAAY,GAAI,IAAM,EAC1DqI,EAAUrI,EAAY,GAAKjgE,SAASigE,EAAY,GAAI,IAAM,EAC9D,MAAO,CACL3iE,MAAOm7D,GAAQgG,EAAQkI,GAAuBhH,EAAUiH,GAAyB0B,EAAUzB,IAC3FjvC,KAAMhzB,EAAOe,MAAMs6D,EAAY,GAAG/9D,SAItC,SAASqmE,GAAqB3jE,EAAQwjE,GACpC,OAAOD,GAAoBrB,GAAgBU,gBAAiB5iE,EAAQwjE,GAGtE,SAASI,GAAanwD,EAAGzT,EAAQwjE,GAC/B,OAAQ/vD,GACN,KAAK,EACH,OAAO8vD,GAAoBrB,GAAgBM,YAAaxiE,EAAQwjE,GAElE,KAAK,EACH,OAAOD,GAAoBrB,GAAgBO,UAAWziE,EAAQwjE,GAEhE,KAAK,EACH,OAAOD,GAAoBrB,GAAgBQ,YAAa1iE,EAAQwjE,GAElE,KAAK,EACH,OAAOD,GAAoBrB,GAAgBS,WAAY3iE,EAAQwjE,GAEjE,QACE,OAAOD,GAAoB,IAAI1iE,OAAO,UAAY4S,EAAI,KAAMzT,EAAQwjE,IAI1E,SAASK,GAAmBpwD,EAAGzT,EAAQwjE,GACrC,OAAQ/vD,GACN,KAAK,EACH,OAAO8vD,GAAoBrB,GAAgBW,kBAAmB7iE,EAAQwjE,GAExE,KAAK,EACH,OAAOD,GAAoBrB,GAAgBY,gBAAiB9iE,EAAQwjE,GAEtE,KAAK,EACH,OAAOD,GAAoBrB,GAAgBa,kBAAmB/iE,EAAQwjE,GAExE,KAAK,EACH,OAAOD,GAAoBrB,GAAgBc,iBAAkBhjE,EAAQwjE,GAEvE,QACE,OAAOD,GAAoB,IAAI1iE,OAAO,YAAc4S,EAAI,KAAMzT,EAAQwjE,IAI5E,SAASM,GAAqBC,GAC5B,OAAQA,GACN,IAAK,UACH,OAAO,EAET,IAAK,UACH,OAAO,GAET,IAAK,KACL,IAAK,OACL,IAAK,YACH,OAAO,GAET,IAAK,KACL,IAAK,WACL,IAAK,QACL,QACE,OAAO,GAIb,SAASC,GAAsBrL,EAAcsL,GAC3C,IAMIxsE,EANAysE,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EAGrD,GAAIE,GAAkB,GACpB1sE,EAASkhE,GAAgB,QACpB,CACL,IAAIyL,EAAWD,EAAiB,GAC5BE,EAA+C,IAA7BplE,KAAK6K,MAAMs6D,EAAW,KACxCE,EAAoB3L,GAAgByL,EAAW,IACnD3sE,EAASkhE,EAAe0L,GAAmBC,EAAoB,IAAM,GAGvE,OAAOJ,EAAczsE,EAAS,EAAIA,EAGpC,IAAI8sE,GAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC7DC,GAA0B,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAE3E,SAASC,GAAgBrQ,GACvB,OAAOA,EAAO,MAAQ,GAAKA,EAAO,IAAM,GAAKA,EAAO,MAAQ,EA+C9D,IAAIsQ,GAAU,CAEZxM,EAAG,CACDyM,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO/zD,EAAMk4D,IAAIp4D,EAAQ,CACvB2U,MAAO,iBACHzU,EAAMk4D,IAAIp4D,EAAQ,CACtB2U,MAAO,WAIX,IAAK,QACH,OAAOzU,EAAMk4D,IAAIp4D,EAAQ,CACvB2U,MAAO,WAIX,IAAK,OACL,QACE,OAAOzU,EAAMk4D,IAAIp4D,EAAQ,CACvB2U,MAAO,UACHzU,EAAMk4D,IAAIp4D,EAAQ,CACtB2U,MAAO,iBACHzU,EAAMk4D,IAAIp4D,EAAQ,CACtB2U,MAAO,aAIfhL,IAAK,SAAUlQ,EAAM6G,EAAO5H,EAAOmsE,GAIjC,OAHAvkE,EAAM83D,IAAM1/D,EACZe,EAAK28D,eAAe19D,EAAO,EAAG,GAC9Be,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,MAGtC9Q,EAAG,CASD2Q,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,IAAIrB,EAAgB,SAAUpP,GAC5B,MAAO,CACLA,KAAMA,EACN2Q,eAA0B,OAAV9Q,IAIpB,OAAQA,GACN,IAAK,IACH,OAAO2P,GAAa,EAAG5jE,EAAQwjE,GAEjC,IAAK,KACH,OAAOtjE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,OACNkL,cAAeA,IAGnB,QACE,OAAOI,GAAa3P,EAAM32D,OAAQ0C,EAAQwjE,KAGhDwB,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,EAAMqsE,gBAAkBrsE,EAAM07D,KAAO,GAE9CzqD,IAAK,SAAUlQ,EAAM6G,EAAO5H,EAAOmsE,GACjC,IAAIZ,EAAcxqE,EAAK06D,iBAEvB,GAAIz7D,EAAMqsE,eAAgB,CACxB,IAAIG,EAAyBlB,GAAsBtrE,EAAM07D,KAAM6P,GAG/D,OAFAxqE,EAAK28D,eAAe8O,EAAwB,EAAG,GAC/CzrE,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,EAGT,IAAI26D,EAAS,QAAS9zD,GAAwB,IAAdA,EAAM83D,IAAyB,EAAI1/D,EAAM07D,KAAvB17D,EAAM07D,KAGxD,OAFA36D,EAAK28D,eAAehC,EAAM,EAAG,GAC7B36D,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGpEtM,EAAG,CACDmM,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,IAAIrB,EAAgB,SAAUpP,GAC5B,MAAO,CACLA,KAAMA,EACN2Q,eAA0B,OAAV9Q,IAIpB,OAAQA,GACN,IAAK,IACH,OAAO2P,GAAa,EAAG5jE,EAAQwjE,GAEjC,IAAK,KACH,OAAOtjE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,OACNkL,cAAeA,IAGnB,QACE,OAAOI,GAAa3P,EAAM32D,OAAQ0C,EAAQwjE,KAGhDwB,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,EAAMqsE,gBAAkBrsE,EAAM07D,KAAO,GAE9CzqD,IAAK,SAAUlQ,EAAM6G,EAAO5H,EAAOkf,GACjC,IAAIqsD,EAAcjN,EAAev9D,EAAMme,GAEvC,GAAIlf,EAAMqsE,eAAgB,CACxB,IAAIG,EAAyBlB,GAAsBtrE,EAAM07D,KAAM6P,GAG/D,OAFAxqE,EAAK28D,eAAe8O,EAAwB,EAAGttD,EAAQs/C,uBACvDz9D,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBmB,EAAen9D,EAAMme,GAG9B,IAAIw8C,EAAS,QAAS9zD,GAAwB,IAAdA,EAAM83D,IAAyB,EAAI1/D,EAAM07D,KAAvB17D,EAAM07D,KAGxD,OAFA36D,EAAK28D,eAAehC,EAAM,EAAGx8C,EAAQs/C,uBACrCz9D,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBmB,EAAen9D,EAAMme,IAE9BktD,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGnFz8D,EAAG,CACDs8D,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAOkR,EAAQN,GACtC,OACShB,GADK,MAAV5P,EACwB,EAGFA,EAAM32D,OAHD0C,IAKjC2J,IAAK,SAAUs7D,EAAOG,EAAQ1sE,EAAOmsE,GACnC,IAAIQ,EAAkB,IAAI5qD,KAAK,GAG/B,OAFA4qD,EAAgBjP,eAAe19D,EAAO,EAAG,GACzC2sE,EAAgB5P,YAAY,EAAG,EAAG,EAAG,GAC9BG,EAAkByP,IAE3BP,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG7FjM,EAAG,CACD8L,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAOkR,EAAQN,GACtC,OACShB,GADK,MAAV5P,EACwB,EAGFA,EAAM32D,OAHD0C,IAKjC2J,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAK28D,eAAe19D,EAAO,EAAG,GAC9Be,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGzEhM,EAAG,CACD6L,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GAEN,IAAK,IACL,IAAK,KAEH,OAAO2P,GAAa3P,EAAM32D,OAAQ0C,GAGpC,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,YAIV,IAAK,MACH,OAAOp4D,EAAM64D,QAAQ/4D,EAAQ,CAC3B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM64D,QAAQ/4D,EAAQ,CAC1B2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAM64D,QAAQ/4D,EAAQ,CAC3B2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAM64D,QAAQ/4D,EAAQ,CAC3B2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM64D,QAAQ/4D,EAAQ,CAC1B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM64D,QAAQ/4D,EAAQ,CAC1B2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,GAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAK+7D,YAA0B,GAAb98D,EAAQ,GAAQ,GAClCe,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGxFnjE,EAAG,CACDgjE,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GAEN,IAAK,IACL,IAAK,KAEH,OAAO2P,GAAa3P,EAAM32D,OAAQ0C,GAGpC,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,YAIV,IAAK,MACH,OAAOp4D,EAAM64D,QAAQ/4D,EAAQ,CAC3B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM64D,QAAQ/4D,EAAQ,CAC1B2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAM64D,QAAQ/4D,EAAQ,CAC3B2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAM64D,QAAQ/4D,EAAQ,CAC3B2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM64D,QAAQ/4D,EAAQ,CAC1B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM64D,QAAQ/4D,EAAQ,CAC1B2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,GAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAK+7D,YAA0B,GAAb98D,EAAQ,GAAQ,GAClCe,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGxFzQ,EAAG,CACDsQ,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,IAAIrB,EAAgB,SAAU9qE,GAC5B,OAAOA,EAAQ,GAGjB,OAAQu7D,GAEN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgB5N,MAAOt0D,EAAQwjE,GAG5D,IAAK,KACH,OAAOI,GAAa,EAAG5jE,EAAQwjE,GAGjC,IAAK,KACH,OAAOtjE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,QACNkL,cAAeA,IAInB,IAAK,MACH,OAAOtjE,EAAMo0D,MAAMt0D,EAAQ,CACzB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAMo0D,MAAMt0D,EAAQ,CACxB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAMo0D,MAAMt0D,EAAQ,CACzB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAMo0D,MAAMt0D,EAAQ,CACzB2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAMo0D,MAAMt0D,EAAQ,CACxB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAMo0D,MAAMt0D,EAAQ,CACxB2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAK+7D,YAAY98D,EAAO,GACxBe,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGnF7L,EAAG,CACD0L,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,IAAIrB,EAAgB,SAAU9qE,GAC5B,OAAOA,EAAQ,GAGjB,OAAQu7D,GAEN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgB5N,MAAOt0D,EAAQwjE,GAG5D,IAAK,KACH,OAAOI,GAAa,EAAG5jE,EAAQwjE,GAGjC,IAAK,KACH,OAAOtjE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,QACNkL,cAAeA,IAInB,IAAK,MACH,OAAOtjE,EAAMo0D,MAAMt0D,EAAQ,CACzB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAMo0D,MAAMt0D,EAAQ,CACxB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAMo0D,MAAMt0D,EAAQ,CACzB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAMo0D,MAAMt0D,EAAQ,CACzB2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAMo0D,MAAMt0D,EAAQ,CACxB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAMo0D,MAAMt0D,EAAQ,CACxB2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAK+7D,YAAY98D,EAAO,GACxBe,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGnF5L,EAAG,CACDyL,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgB/I,KAAMn5D,GAEnD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOkf,GAClC,OAAOg/C,EAAeiL,GAAWpoE,EAAMf,EAAOkf,GAAUA,IAE1DktD,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGnF1L,EAAG,CACDuL,SAAU,IACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgB/I,KAAMn5D,GAEnD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOkf,GAClC,OAAOg+C,EAAkB+L,GAAcloE,EAAMf,EAAOkf,GAAUA,IAEhEktD,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGxF1iE,EAAG,CACDuiE,SAAU,GACVW,YAAa,EACbV,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgBzoE,KAAMuG,GAEnD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUvrE,EAAMf,EAAOmsE,GAC/B,IAAIzQ,EAAO36D,EAAK06D,iBACZoR,EAAad,GAAgBrQ,GAC7BE,EAAQ76D,EAAK86D,cAEjB,OAAIgR,EACK7sE,GAAS,GAAKA,GAAS8rE,GAAwBlQ,GAE/C57D,GAAS,GAAKA,GAAS6rE,GAAcjQ,IAGhD3qD,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAKw8D,WAAWv9D,GAChBe,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG9ExL,EAAG,CACDqL,SAAU,GACVW,YAAa,EACbV,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACL,IAAK,KACH,OAAOsP,GAAoBrB,GAAgB3I,UAAWv5D,GAExD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUvrE,EAAMf,EAAOmsE,GAC/B,IAAIzQ,EAAO36D,EAAK06D,iBACZoR,EAAad,GAAgBrQ,GAEjC,OAAImR,EACK7sE,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,KAGlCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAGlC,OAFAprE,EAAK+7D,YAAY,EAAG98D,GACpBe,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG7FtL,EAAG,CACDmL,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO/zD,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,GAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOkf,GAGlC,OAFAne,EAAO4nE,GAAU5nE,EAAMf,EAAOkf,GAC9Bne,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAGhDjjE,EAAG,CACD8iE,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO0X,GACrC,IAAI4rD,EAAgB,SAAU9qE,GAC5B,IAAI8sE,EAA8C,EAA9BvmE,KAAK6K,OAAOpR,EAAQ,GAAK,GAC7C,OAAQA,EAAQkf,EAAQi+C,aAAe,GAAK,EAAI2P,GAGlD,OAAQvR,GAEN,IAAK,IACL,IAAK,KAEH,OAAO2P,GAAa3P,EAAM32D,OAAQ0C,EAAQwjE,GAG5C,IAAK,KACH,OAAOtjE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,MACNkL,cAAeA,IAInB,IAAK,MACH,OAAOtjE,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,GAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOkf,GAGlC,OAFAne,EAAO4nE,GAAU5nE,EAAMf,EAAOkf,GAC9Bne,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG7FnL,EAAG,CACDgL,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO0X,GACrC,IAAI4rD,EAAgB,SAAU9qE,GAC5B,IAAI8sE,EAA8C,EAA9BvmE,KAAK6K,OAAOpR,EAAQ,GAAK,GAC7C,OAAQA,EAAQkf,EAAQi+C,aAAe,GAAK,EAAI2P,GAGlD,OAAQvR,GAEN,IAAK,IACL,IAAK,KAEH,OAAO2P,GAAa3P,EAAM32D,OAAQ0C,EAAQwjE,GAG5C,IAAK,KACH,OAAOtjE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,MACNkL,cAAeA,IAInB,IAAK,MACH,OAAOtjE,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,QACH,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,SACH,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,eAIb,IAAK,OACL,QACE,OAAO94D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,gBACL94D,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,iBAIjBgM,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,GAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOkf,GAGlC,OAFAne,EAAO4nE,GAAU5nE,EAAMf,EAAOkf,GAC9Bne,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG7F/iE,EAAG,CACD4iE,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,IAAIrB,EAAgB,SAAU9qE,GAC5B,OAAc,IAAVA,EACK,EAGFA,GAGT,OAAQu7D,GAEN,IAAK,IACL,IAAK,KAEH,OAAO2P,GAAa3P,EAAM32D,OAAQ0C,GAGpC,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,QAIV,IAAK,MACH,OAAOp4D,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,cACPqkD,QAAS,aACTwK,cAAeA,KACXtjE,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,aACTwK,cAAeA,KACXtjE,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,aACTwK,cAAeA,IAInB,IAAK,QACH,OAAOtjE,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,SACPqkD,QAAS,aACTwK,cAAeA,IAInB,IAAK,SACH,OAAOtjE,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,QACPqkD,QAAS,aACTwK,cAAeA,KACXtjE,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,aACTwK,cAAeA,IAInB,IAAK,OACL,QACE,OAAOtjE,EAAM41D,IAAI91D,EAAQ,CACvB2U,MAAO,OACPqkD,QAAS,aACTwK,cAAeA,KACXtjE,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,cACPqkD,QAAS,aACTwK,cAAeA,KACXtjE,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,QACPqkD,QAAS,aACTwK,cAAeA,KACXtjE,EAAM41D,IAAI91D,EAAQ,CACtB2U,MAAO,SACPqkD,QAAS,aACTwK,cAAeA,MAIvBwB,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,GAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOkf,GAGlC,OAFAne,EAAOioE,GAAajoE,EAAMf,EAAOkf,GACjCne,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GACnBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAG7FrQ,EAAG,CACDkQ,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO/zD,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,SACPqkD,QAAS,eAGb,IAAK,QACH,OAAO94D,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,SACPqkD,QAAS,eAGb,IAAK,OACL,QACE,OAAO94D,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,SACPqkD,QAAS,iBAIjBrvD,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKg8D,YAAYqO,GAAqBprE,GAAQ,EAAG,EAAG,GAC7Ce,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGrD/K,EAAG,CACD4K,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO/zD,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,SACPqkD,QAAS,eAGb,IAAK,QACH,OAAO94D,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,SACPqkD,QAAS,eAGb,IAAK,OACL,QACE,OAAO94D,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,SACPqkD,QAAS,iBAIjBrvD,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKg8D,YAAYqO,GAAqBprE,GAAQ,EAAG,EAAG,GAC7Ce,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGrD9K,EAAG,CACD2K,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO/zD,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,SACPqkD,QAAS,eAGb,IAAK,QACH,OAAO94D,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,SACPqkD,QAAS,eAGb,IAAK,OACL,QACE,OAAO94D,EAAM45D,UAAU95D,EAAQ,CAC7B2U,MAAO,OACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,cACPqkD,QAAS,gBACL94D,EAAM45D,UAAU95D,EAAQ,CAC5B2U,MAAO,SACPqkD,QAAS,iBAIjBrvD,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKg8D,YAAYqO,GAAqBprE,GAAQ,EAAG,EAAG,GAC7Ce,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,MAGtCjQ,EAAG,CACD8P,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgBI,QAAStiE,GAEtD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAClC,IAAIY,EAAOhsE,EAAKk7D,eAAiB,GAUjC,OARI8Q,GAAQ/sE,EAAQ,GAClBe,EAAKg8D,YAAY/8D,EAAQ,GAAI,EAAG,EAAG,GACzB+sE,GAAkB,KAAV/sE,EAGlBe,EAAKg8D,YAAY/8D,EAAO,EAAG,EAAG,GAF9Be,EAAKg8D,YAAY,EAAG,EAAG,EAAG,GAKrBh8D,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,MAG3ChQ,EAAG,CACD6P,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgBC,QAASniE,GAEtD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKg8D,YAAY/8D,EAAO,EAAG,EAAG,GACvBe,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGrD7K,EAAG,CACD0K,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgBG,QAASriE,GAEtD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAClC,IAAIY,EAAOhsE,EAAKk7D,eAAiB,GAQjC,OANI8Q,GAAQ/sE,EAAQ,GAClBe,EAAKg8D,YAAY/8D,EAAQ,GAAI,EAAG,EAAG,GAEnCe,EAAKg8D,YAAY/8D,EAAO,EAAG,EAAG,GAGzBe,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGrD1nD,EAAG,CACDunD,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgBE,QAASpiE,GAEtD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,SAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAClC,IAAIhL,EAAQnhE,GAAS,GAAKA,EAAQ,GAAKA,EAEvC,OADAe,EAAKg8D,YAAYoE,EAAO,EAAG,EAAG,GACvBpgE,GAETqrE,mBAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGrD3wD,EAAG,CACDwwD,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgBK,OAAQviE,GAErD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,WAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKisE,cAAchtE,EAAO,EAAG,GACtBe,GAETqrE,mBAAoB,CAAC,IAAK,MAG5B9P,EAAG,CACD2P,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAO/zD,EAAO2kE,GACrC,OAAQ5Q,GACN,IAAK,IACH,OAAOsP,GAAoBrB,GAAgB7zD,OAAQrO,GAErD,IAAK,KACH,OAAOE,EAAMm4D,cAAcr4D,EAAQ,CACjCs4D,KAAM,WAGV,QACE,OAAOsL,GAAa3P,EAAM32D,OAAQ0C,KAGxCglE,SAAU,SAAUC,EAAOvsE,EAAOmsE,GAChC,OAAOnsE,GAAS,GAAKA,GAAS,IAEhCiR,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKksE,cAAcjtE,EAAO,GACnBe,GAETqrE,mBAAoB,CAAC,IAAK,MAG5BzjE,EAAG,CACDsjE,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAOkR,EAAQN,GACtC,IAAIrB,EAAgB,SAAU9qE,GAC5B,OAAOuG,KAAK6K,MAAMpR,EAAQuG,KAAK8K,IAAI,GAAoB,EAAfkqD,EAAM32D,UAGhD,OAAOsmE,GAAa3P,EAAM32D,OAAQ0C,EAAQwjE,IAE5C75D,IAAK,SAAUlQ,EAAM2rE,EAAQ1sE,EAAOmsE,GAElC,OADAprE,EAAKmsE,mBAAmBltE,GACjBe,GAETqrE,mBAAoB,CAAC,IAAK,MAG5B5K,EAAG,CACDyK,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAOkR,EAAQN,GACtC,OAAQ5Q,GACN,IAAK,IACH,OAAOwP,GAAqBR,GAAiBC,qBAAsBljE,GAErE,IAAK,KACH,OAAOyjE,GAAqBR,GAAiBE,MAAOnjE,GAEtD,IAAK,OACH,OAAOyjE,GAAqBR,GAAiBG,qBAAsBpjE,GAErE,IAAK,QACH,OAAOyjE,GAAqBR,GAAiBK,wBAAyBtjE,GAExE,IAAK,MACL,QACE,OAAOyjE,GAAqBR,GAAiBI,SAAUrjE,KAG7D2J,IAAK,SAAUlQ,EAAM6G,EAAO5H,EAAOmsE,GACjC,OAAIvkE,EAAMulE,eACDpsE,EAGF,IAAIghB,KAAKhhB,EAAKs5D,UAAYr6D,IAEnCosE,mBAAoB,CAAC,IAAK,IAAK,MAGjCpK,EAAG,CACDiK,SAAU,GACVC,MAAO,SAAU5kE,EAAQi0D,EAAOkR,EAAQN,GACtC,OAAQ5Q,GACN,IAAK,IACH,OAAOwP,GAAqBR,GAAiBC,qBAAsBljE,GAErE,IAAK,KACH,OAAOyjE,GAAqBR,GAAiBE,MAAOnjE,GAEtD,IAAK,OACH,OAAOyjE,GAAqBR,GAAiBG,qBAAsBpjE,GAErE,IAAK,QACH,OAAOyjE,GAAqBR,GAAiBK,wBAAyBtjE,GAExE,IAAK,MACL,QACE,OAAOyjE,GAAqBR,GAAiBI,SAAUrjE,KAG7D2J,IAAK,SAAUlQ,EAAM6G,EAAO5H,EAAOmsE,GACjC,OAAIvkE,EAAMulE,eACDpsE,EAGF,IAAIghB,KAAKhhB,EAAKs5D,UAAYr6D,IAEnCosE,mBAAoB,CAAC,IAAK,IAAK,MAGjCjnD,EAAG,CACD8mD,SAAU,GACVC,MAAO,SAAU5kE,EAAQ8lE,EAAQX,EAAQN,GACvC,OAAOlB,GAAqB3jE,IAE9B2J,IAAK,SAAUs7D,EAAOG,EAAQ1sE,EAAOmsE,GACnC,MAAO,CAAC,IAAIpqD,KAAa,IAAR/hB,GAAe,CAC9BmtE,gBAAgB,KAGpBf,mBAAoB,KAGtBlK,EAAG,CACD+J,SAAU,GACVC,MAAO,SAAU5kE,EAAQ8lE,EAAQX,EAAQN,GACvC,OAAOlB,GAAqB3jE,IAE9B2J,IAAK,SAAUs7D,EAAOG,EAAQ1sE,EAAOmsE,GACnC,MAAO,CAAC,IAAIpqD,KAAK/hB,GAAQ,CACvBmtE,gBAAgB,KAGpBf,mBAAoB,MAGT,MCp9CXiB,GAAyB,GAYzB,GAAyB,wDAGzB,GAA6B,oCAC7B,GAAsB,eACtB,GAAoB,MACpBC,GAAsB,KACtB,GAAgC,WAgUrB,SAASpB,GAAMqB,EAAiBC,EAAmBC,EAAoBtP,GACpFlE,EAAa,EAAGlzD,WAChB,IAAI2mE,EAAaptE,OAAOitE,GACpBI,EAAertE,OAAOktE,GACtBtuD,EAAUi/C,GAAgB,GAC1BtnB,EAAS33B,EAAQ23B,QAAU,OAE/B,IAAKA,EAAOrvC,MACV,MAAM,IAAI0d,WAAW,sCAGvB,IAAIq5C,EAA8B1nB,EAAO33B,SAAW23B,EAAO33B,QAAQs/C,sBAC/DC,EAA8D,MAA/BF,EAAsC,EAAI7D,EAAU6D,GACnFC,EAAyD,MAAjCt/C,EAAQs/C,sBAAgCC,EAA+B/D,EAAUx7C,EAAQs/C,uBAErH,KAAMA,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIt5C,WAAW,6DAGvB,IAAIk5C,EAAqBvnB,EAAO33B,SAAW23B,EAAO33B,QAAQi+C,aACtDkB,EAA4C,MAAtBD,EAA6B,EAAI1D,EAAU0D,GACjEjB,EAAuC,MAAxBj+C,EAAQi+C,aAAuBkB,EAAsB3D,EAAUx7C,EAAQi+C,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIj4C,WAAW,oDAGvB,GAAqB,KAAjByoD,EACF,MAAmB,KAAfD,EACKvT,EAAOsT,GAEP,IAAI1rD,KAAKo3C,KAIpB,IAYI9vD,EAZAukE,EAAe,CACjBpP,sBAAuBA,EACvBrB,aAAcA,EACdtmB,OAAQA,GAGNg3B,EAAU,CAAC,CACb5B,SAAUoB,GACVT,aAAc,EACd37D,IAAK68D,GACLxlE,MAAO,IAGLylE,EAASJ,EAAanmE,MAAM,IAA4BlF,KAAI,SAAUkiE,GACxE,IAAIC,EAAiBD,EAAU,GAE/B,GAAuB,MAAnBC,GAA6C,MAAnBA,EAAwB,CACpD,IAAIC,EAAgB,EAAeD,GACnC,OAAOC,EAAcF,EAAW3tB,EAAO0rB,WAAYqL,GAGrD,OAAOpJ,KACN3/D,KAAK,IAAI2C,MAAM,IACdwmE,EAAa,GAEjB,IAAK3kE,EAAI,EAAGA,EAAI0kE,EAAOnpE,OAAQyE,IAAK,CAClC,IAAIkyD,EAAQwS,EAAO1kE,IAEd6V,EAAQ2lD,6BAA+BhB,EAAyBtI,IACnEuI,EAAoBvI,EAAOoS,EAAcJ,IAGtCruD,EAAQ4lD,8BAAgClB,EAA0BrI,IACrEuI,EAAoBvI,EAAOoS,EAAcJ,GAG3C,IAAI9I,EAAiBlJ,EAAM,GACvB0S,EAAS,GAAQxJ,GAErB,GAAIwJ,EAAQ,CACV,IAAI7B,EAAqB6B,EAAO7B,mBAEhC,GAAIjxD,MAAM8Y,QAAQm4C,GAAqB,CAGrC,IAFA,IAAI8B,OAAoB,EAEfC,EAAK,EAAGA,EAAKH,EAAWppE,OAAQupE,IAAM,CAC7C,IAAIC,EAAYJ,EAAWG,GAAI5S,MAE/B,IAA+C,IAA3C6Q,EAAmB9gE,QAAQ8iE,IAAqBA,IAAc3J,EAAgB,CAChFyJ,EAAoBF,EAAWG,GAC/B,OAIJ,GAAID,EACF,MAAM,IAAIhpD,WAAW,sCAAsCsV,OAAO0zC,EAAkBG,UAAW,WAAW7zC,OAAO+gC,EAAO,4BAErH,GAAkC,MAA9B0S,EAAO7B,oBAA8B4B,EAAWppE,OACzD,MAAM,IAAIsgB,WAAW,sCAAsCsV,OAAO+gC,EAAO,2CAG3EyS,EAAWrpE,KAAK,CACd42D,MAAOkJ,EACP4J,UAAW9S,IAEb,IAAI+S,EAAcL,EAAO/B,MAAMwB,EAAYnS,EAAO1kB,EAAOrvC,MAAOomE,GAEhE,IAAKU,EACH,OAAO,IAAIvsD,KAAKo3C,KAGlB0U,EAAQlpE,KAAK,CACXsnE,SAAUgC,EAAOhC,SACjBW,YAAaqB,EAAOrB,aAAe,EACnC37D,IAAKg9D,EAAOh9D,IACZq7D,SAAU2B,EAAO3B,SACjBtsE,MAAOsuE,EAAYtuE,MACnBsI,MAAOulE,EAAQjpE,SAEjB8oE,EAAaY,EAAYh0C,SACpB,CACL,GAAImqC,EAAej9D,MAAM,IACvB,MAAM,IAAI0d,WAAW,iEAAmEu/C,EAAiB,KAW3G,GAPc,OAAVlJ,EACFA,EAAQ,IACoB,MAAnBkJ,IACTlJ,EAAQ,GAAmBA,IAIK,IAA9BmS,EAAWpiE,QAAQiwD,GAGrB,OAAO,IAAIx5C,KAAKo3C,KAFhBuU,EAAaA,EAAWrlE,MAAMkzD,EAAM32D,SAQ1C,GAAI8oE,EAAW9oE,OAAS,GAAK0oE,GAAoB/kE,KAAKmlE,GACpD,OAAO,IAAI3rD,KAAKo3C,KAGlB,IAAIoV,EAAwBV,EAAQvrE,KAAI,SAAUgY,GAChD,OAAOA,EAAO2xD,YACb9rE,MAAK,SAAU47D,EAAGsF,GACnB,OAAOA,EAAItF,KACV56B,QAAO,SAAU8qC,EAAU3jE,EAAOkmE,GACnC,OAAOA,EAAMljE,QAAQ2gE,KAAc3jE,KAClChG,KAAI,SAAU2pE,GACf,OAAO4B,EAAQ1sC,QAAO,SAAU7mB,GAC9B,OAAOA,EAAO2xD,WAAaA,KAC1B9rE,MAAK,SAAU47D,EAAGsF,GACnB,OAAOA,EAAEuL,YAAc7Q,EAAE6Q,kBAE1BtqE,KAAI,SAAUmsE,GACf,OAAOA,EAAY,MAEjB1tE,EAAOo5D,EAAOsT,GAElB,GAAIzZ,MAAMjzD,GACR,OAAO,IAAIghB,KAAKo3C,KAMlB,IAAI8J,EAAUjI,EAAgBj6D,EAAMiiE,EAAgCjiE,IAChE6G,EAAQ,GAEZ,IAAKyB,EAAI,EAAGA,EAAIklE,EAAsB3pE,OAAQyE,IAAK,CACjD,IAAIiR,EAASi0D,EAAsBllE,GAEnC,GAAIiR,EAAOgyD,WAAahyD,EAAOgyD,SAASrJ,EAAS3oD,EAAOta,MAAO4tE,GAC7D,OAAO,IAAI7rD,KAAKo3C,KAGlB,IAAIp6D,EAASub,EAAOrJ,IAAIgyD,EAASr7D,EAAO0S,EAAOta,MAAO4tE,GAElD7uE,EAAO,IACTkkE,EAAUlkE,EAAO,GACjB,GAAO6I,EAAO7I,EAAO,KAErBkkE,EAAUlkE,EAId,OAAOkkE,EAGT,SAAS6K,GAAqB/sE,EAAM6G,GAClC,GAAIA,EAAMulE,eACR,OAAOpsE,EAGT,IAAI2tE,EAAgB,IAAI3sD,KAAK,GAG7B,OAFA2sD,EAAcC,YAAY5tE,EAAK06D,iBAAkB16D,EAAK86D,cAAe96D,EAAK+6D,cAC1E4S,EAAc9G,SAAS7mE,EAAKk7D,cAAel7D,EAAKs7D,gBAAiBt7D,EAAKw7D,gBAAiBx7D,EAAK27D,sBACrFgS,EAGT,SAAS,GAAmBp8D,GAC1B,OAAOA,EAAM9K,MAAM,IAAqB,GAAG8Q,QAAQ,GAAmB,KCphBxE,SAASs2D,GAAUC,EAAYC,GAC3B,OAAI3zD,MAAM8Y,QAAQ46C,GACPA,EAAWjoC,KAAM3kB,GAAS4lD,GAAU5lD,EAAM6sD,IAG1CjH,GAAUgH,EAAYC,GAGrC,SAAS,GAAS7sD,EAAM8sD,EAASC,EAASC,GACtC,IAAIC,GAAS,EACTC,GAAc,EACdC,GAAY,EAUhB,OATIj0D,MAAM8Y,QAAQ+6C,KACVA,EAAQ,GAAK/sD,GAAQA,EAAO+sD,EAAQ,KACpCE,GAAS,GAETN,GAAUI,EAAQ,GAAI/sD,KACtBktD,GAAc,GACdP,GAAUI,EAAQ,GAAI/sD,KACtBmtD,GAAY,IAEb,CACHC,WAAY,CACRtuE,KAAMsiE,GAAQphD,GACd25C,MAAOwH,GAASnhD,GAChBy5C,KAAMyM,GAAQlmD,IAElBqtD,eAAgBlH,GAAYnmD,EAAM8sD,GAClCQ,cAAeX,GAAUK,EAAWhtD,GACpCitD,SACAC,cACAC,YACA93C,SAAsB,OAAZ03C,GAAoBJ,GAAUI,EAAS/sD,GACjDutD,GAAInV,GAAQp4C,IAOpB,SAAS7f,GAAU2sE,EAASC,EAASC,EAAWQ,EAAUC,GAAQ,GAC9D,MAAMC,EAAevM,GAAS2L,GAE9B,IAAIa,EAAuBvV,GAAQkO,GAAawG,IAE5Cc,EAAoBxV,GAAQoN,GAAQmI,GAAuB,IAC/D,MAAME,EAAe,GACrB,IAAIC,GAAmCL,EACvC,MAAOlH,GAAOqH,KAAuBJ,GACjCM,EACAD,EAAav7D,QAAQ,GAASs7D,EAAmBd,EAASC,EAASC,IACnEY,EAAoBxV,GAAQoN,GAAQoI,GAAoB,IACxDE,GAAkC,EAEtC,MAAO3M,GAASwM,KAA0BD,EACtCG,EAAanrE,KAAK,GAASirE,EAAsBb,EAASC,EAASC,IACnEW,EAAuBvV,GAAQoN,GAAQmI,EAAsB,IAEjE,MAAM7wD,EAAW2wD,EACXI,EAAalrE,QAAU,GACnB,GACAkrE,EAAalrE,QAAU,GACnB,GACA,GACR,GACN,MAAOkrE,EAAalrE,OAASma,EACzB+wD,EAAanrE,KAAK,GAASirE,EAAsBb,EAASC,EAASC,IACnEW,EAAuBvV,GAAQoN,GAAQmI,EAAsB,IAEjE,OAAOE,EAEX,SAASE,GAAY1oE,EAAQwqB,EAASm+C,EAAQl8C,GAC1C,MAAMh1B,EAASmtE,GAAM5kE,EAAQwqB,EAASm+C,EAAQl8C,GAC9C,OAAKymC,EAAQz7D,GAEJglE,EAAOhlE,EAAQ+yB,EAASiC,KAAYzsB,EAClCvI,EAEA,IAAIgjB,KAAKo3C,KAJTp6D,ECnEA,SAASukE,GAAS7I,GAC/BR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd0G,EAAQpgE,EAAKuiE,WACjB,OAAOnC,ECJM,SAASoC,GAAW9I,GACjCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd4H,EAAUthE,EAAKwiE,aACnB,OAAOlB,ECJM,SAASmB,GAAW/I,GACjCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACduQ,EAAUjqE,EAAKyiE,aACnB,OAAOwH,ECzBF,SAASkF,GAAsB9zD,EAAOsmB,GAEzC,MAAMytC,EAAyB,eAAS,KACpC,MAAM,eAAEC,GAAmBh0D,GACrB,MAAEpc,GAAU0iC,EAClB,GAAc,OAAV1iC,IAAkBmb,MAAM8Y,QAAQj0B,GAEpC,OAA0B,OAAnBowE,QAA8C,IAAnBA,OAA4B,EAASA,EAAepwE,KAEpFqwE,EAAoB,eAAS,KAC/B,IAAInwD,EACJ,OAA+C,QAAvCA,EAAKiwD,EAAuBnwE,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGowD,iBAEjFC,EAAsB,eAAS,KACjC,IAAIrwD,EACJ,OAA+C,QAAvCA,EAAKiwD,EAAuBnwE,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGswD,mBAEjFC,EAAsB,eAAS,KACjC,IAAIvwD,EACJ,OAA+C,QAAvCA,EAAKiwD,EAAuBnwE,aAA0B,IAAPkgB,OAAgB,EAASA,EAAGwwD,mBAEjFC,EAAmB,eAAS,KAC9B,MAAM,KAAE73D,EAAI,eAAE83D,GAAmBx0D,GAC3B,MAAEpc,GAAU0iC,EAClB,QAAc,OAAV1iC,GACAmb,MAAM8Y,QAAQj0B,KACb,CAAC,OAAQ,YAAYuB,SAASuX,KAC9B83D,IAGEA,EAAe5wE,KAEpB6wE,EAAmB,eAAS,KAC9B,MAAM,KAAE/3D,GAASsD,GACX,MAAEpc,GAAU0iC,EAClB,GAAc,OAAV1iC,GAA6B,aAAT8Y,GAAwBqC,MAAM8Y,QAAQj0B,GAC1D,OAAO,EAEX,MAAMiiB,EAAO,IAAIF,KAAK/hB,GAChB8wE,EAAO7uD,EAAKqhD,WACZuG,EAAS5nD,EAAKshD,aACd5tD,EAASsM,EAAKshD,aACpB,QAAS8M,EAAkBrwE,OAAQqwE,EAAkBrwE,MAAM8wE,MACtDP,EAAoBvwE,OACfuwE,EAAoBvwE,MAAM6pE,EAAQiH,MAEvCL,EAAoBzwE,OACfywE,EAAoBzwE,MAAM2V,EAAQk0D,EAAQiH,KAGlDC,EAAuB,eAAS,IAC3BJ,EAAiB3wE,OAAS6wE,EAAiB7wE,OAEhDgxE,EAAoB,eAAS,KAC/B,MAAM,KAAEl4D,GAASsD,EACjB,MAAa,SAATtD,EACO63D,EAAiB3wE,MACf,aAAT8Y,GACOi4D,EAAqB/wE,QAGpC,MAAO,CAEHgxE,oBACAL,mBAEAE,mBACAE,uBACAV,oBACAE,sBACAE,uBAGD,SAASQ,GAAuB70D,EAAOsmB,GAE1C,MAAMytC,EAAyB,eAAS,KACpC,MAAM,eAAEC,GAAmBh0D,GACrB,MAAEpc,GAAU0iC,EAClB,OAAKvnB,MAAM8Y,QAAQj0B,IAAWowE,EAGvB,CACgB,OAAnBA,QAA8C,IAAnBA,OAA4B,EAASA,EAAepwE,EAAM,GAAI,QAASA,GAC/E,OAAnBowE,QAA8C,IAAnBA,OAA4B,EAASA,EAAepwE,EAAM,GAAI,MAAOA,IAJzF,MAACW,OAAWA,KAOrBuwE,EAAgB,CAClBC,uBAAwB,eAAS,KAAQ,IAAIjxD,EAAI,OAAkD,QAA1CA,EAAKiwD,EAAuBnwE,MAAM,UAAuB,IAAPkgB,OAAgB,EAASA,EAAGowD,iBACvIc,qBAAsB,eAAS,KAAQ,IAAIlxD,EAAI,OAAkD,QAA1CA,EAAKiwD,EAAuBnwE,MAAM,UAAuB,IAAPkgB,OAAgB,EAASA,EAAGowD,iBACrIe,yBAA0B,eAAS,KAAQ,IAAInxD,EAAI,OAAkD,QAA1CA,EAAKiwD,EAAuBnwE,MAAM,UAAuB,IAAPkgB,OAAgB,EAASA,EAAGswD,mBACzIc,uBAAwB,eAAS,KAAQ,IAAIpxD,EAAI,OAAkD,QAA1CA,EAAKiwD,EAAuBnwE,MAAM,UAAuB,IAAPkgB,OAAgB,EAASA,EAAGswD,mBACvIe,yBAA0B,eAAS,KAAQ,IAAIrxD,EAAI,OAAkD,QAA1CA,EAAKiwD,EAAuBnwE,MAAM,UAAuB,IAAPkgB,OAAgB,EAASA,EAAGwwD,mBACzIc,uBAAwB,eAAS,KAAQ,IAAItxD,EAAI,OAAkD,QAA1CA,EAAKiwD,EAAuBnwE,MAAM,UAAuB,IAAPkgB,OAAgB,EAASA,EAAGwwD,oBAErIe,EAAwB,eAAS,KACnC,MAAM,KAAE34D,EAAI,eAAE83D,GAAmBx0D,GAC3B,MAAEpc,GAAU0iC,EAClB,SAAc,OAAV1iC,GACCmb,MAAM8Y,QAAQj0B,IACd,CAAC,YAAa,iBAAiBuB,SAASuX,IACxC83D,IAGEA,EAAe5wE,EAAM,GAAI,QAASA,KAEvC0xE,EAAsB,eAAS,KACjC,MAAM,KAAE54D,EAAI,eAAE83D,GAAmBx0D,GAC3B,MAAEpc,GAAU0iC,EAClB,SAAc,OAAV1iC,GACCmb,MAAM8Y,QAAQj0B,IACd,CAAC,YAAa,iBAAiBuB,SAASuX,IACxC83D,IAGEA,EAAe5wE,EAAM,GAAI,MAAOA,KAErC2xE,EAAwB,eAAS,KACnC,MAAM,KAAE74D,GAASsD,GACX,MAAEpc,GAAU0iC,EAClB,GAAc,OAAV1iC,IAAmBmb,MAAM8Y,QAAQj0B,IAAmB,kBAAT8Y,EAC3C,OAAO,EAEX,MAAM84D,EAAatO,GAAStjE,EAAM,IAC5B6xE,EAAetO,GAAWvjE,EAAM,IAChC8xE,EAAetO,GAAWxjE,EAAM,KAChC,uBAAEmxE,EAAsB,yBAAEE,EAAwB,yBAAEE,GAA6BL,EACjFa,IAAoBZ,EAAuBnxE,OAC3CmxE,EAAuBnxE,MAAM4xE,MAE9BP,EAAyBrxE,OACpBqxE,EAAyBrxE,MAAM6xE,EAAcD,MAElDL,EAAyBvxE,OACpBuxE,EAAyBvxE,MAAM8xE,EAAcD,EAAcD,GAErE,OAAOG,IAELC,EAAsB,eAAS,KACjC,MAAM,KAAEl5D,GAASsD,GACX,MAAEpc,GAAU0iC,EAClB,GAAc,OAAV1iC,IAAmBmb,MAAM8Y,QAAQj0B,IAAmB,kBAAT8Y,EAC3C,OAAO,EAEX,MAAMm5D,EAAW3O,GAAStjE,EAAM,IAC1BkyE,EAAa3O,GAAWvjE,EAAM,IAC9BmyE,EAAa3O,GAAWxjE,EAAM,KAC9B,qBAAEoxE,EAAoB,uBAAEE,EAAsB,uBAAEE,GAA2BN,EAC3EkB,IAAkBhB,EAAqBpxE,OACvCoxE,EAAqBpxE,MAAMiyE,MAE5BX,EAAuBtxE,OAClBsxE,EAAuBtxE,MAAMkyE,EAAYD,MAE9CT,EAAuBxxE,OAClBwxE,EAAuBxxE,MAAMmyE,EAAYD,EAAYD,GAE/D,OAAOG,IAELC,EAAyB,eAAS,IAC7BZ,EAAsBzxE,OAAS2xE,EAAsB3xE,OAE1DsyE,EAAuB,eAAS,IAC3BZ,EAAoB1xE,OAASgyE,EAAoBhyE,OAEtDuyE,EAAoB,eAAS,IACxBF,EAAuBryE,OAASsyE,EAAqBtyE,OAEhE,OAAOsE,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI0lE,GAAgB,CAAEO,wBACrDC,sBACAC,wBACAK,sBACAK,yBACAC,uBACAC,sB,8BCtJO,SAAS3K,GAASnN,EAAW+X,GAC1CvY,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd0G,EAAQzG,EAAU8X,GAEtB,OADAzxE,EAAK6mE,SAASzG,GACPpgE,ECNM,SAAS0xE,GAAYhY,GAClCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GAElB,OADA15D,EAAK2xE,WAAW,EAAG,EAAG,GACf3xE,ECHM,SAAS2xE,GAAWjY,EAAWkY,GAC5C1Y,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACd4H,EAAU3H,EAAUiY,GAExB,OADA5xE,EAAK2xE,WAAWrQ,GACTthE,ECNM,SAAS6xE,GAAcnY,GACpCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GAElB,OADA15D,EAAK8xE,WAAW,EAAG,GACZ9xE,ECHM,SAAS8xE,GAAWpY,EAAWqY,GAC5C7Y,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACduQ,EAAUtQ,EAAUoY,GAExB,OADA/xE,EAAK8xE,WAAW7H,GACTjqE,ECNM,SAASgyE,GAActY,GACpCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GAElB,OADA15D,EAAKiyE,gBAAgB,GACdjyE,ECLM,SAASkyE,GAAexY,GACrCR,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdiB,EAAO36D,EAAKoiE,cACZ+P,EAAanyE,EAAKqiE,WAClB+P,EAAiB,IAAIpxD,KAAK,GAG9B,OAFAoxD,EAAexE,YAAYjT,EAAMwX,EAAa,EAAG,GACjDC,EAAevL,SAAS,EAAG,EAAG,EAAG,GAC1BuL,EAAe9P,UCLT,SAAS+P,GAAS3Y,EAAW4Y,GAC1CpZ,EAAa,EAAGlzD,WAChB,IAAIhG,EAAOo5D,EAAOM,GACdmB,EAAQlB,EAAU2Y,GAClB3X,EAAO36D,EAAKoiE,cACZ/F,EAAMr8D,EAAKsiE,UACXiQ,EAAuB,IAAIvxD,KAAK,GACpCuxD,EAAqB3E,YAAYjT,EAAME,EAAO,IAC9C0X,EAAqB1L,SAAS,EAAG,EAAG,EAAG,GACvC,IAAI2L,EAAcN,GAAeK,GAIjC,OADAvyE,EAAKqyE,SAASxX,EAAOr1D,KAAKD,IAAI82D,EAAKmW,IAC5BxyE,ECGM,SAASkQ,GAAIwpD,EAAWz2B,GAGrC,GAFAi2B,EAAa,EAAGlzD,WAEM,kBAAXi9B,GAAkC,OAAXA,EAChC,MAAM,IAAI9e,WAAW,sCAGvB,IAAInkB,EAAOo5D,EAAOM,GAElB,OAAIzG,MAAMjzD,EAAKs5D,WACN,IAAIt4C,KAAKo3C,MAGC,MAAfn1B,EAAO03B,MACT36D,EAAK4tE,YAAY3qC,EAAO03B,MAGN,MAAhB13B,EAAO43B,QACT76D,EAAOqyE,GAASryE,EAAMijC,EAAO43B,QAGZ,MAAf53B,EAAOjjC,MACTA,EAAK2mE,QAAQhN,EAAU12B,EAAOjjC,OAGZ,MAAhBijC,EAAOm9B,OACTpgE,EAAK6mE,SAASlN,EAAU12B,EAAOm9B,QAGX,MAAlBn9B,EAAOq+B,SACTthE,EAAK2xE,WAAWhY,EAAU12B,EAAOq+B,UAGb,MAAlBr+B,EAAOgnC,SACTjqE,EAAK8xE,WAAWnY,EAAU12B,EAAOgnC,UAGR,MAAvBhnC,EAAOy4B,cACT17D,EAAKiyE,gBAAgBtY,EAAU12B,EAAOy4B,eAGjC17D,GClFM,cAAAgkE,GAAA,MAAY,OAAQ,eAAE,MAAO,CAAEt7D,MAAO,6BAA8BF,QAAS,eACxF,eAAE,OAAQ,CAAEG,EAAG,4EAA6ElL,MAAO,8HACnG,eAAE,WAAY,CAAEg1E,OAAQ,0BAA2Bh1E,MAAO,iK,uCCHvD,MAAM,GAAO,CAChB2iE,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJkB,QAAS,CACL,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ2I,QAAS,CACL,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJyI,OAAQ,CAAC,KAAM,OAEZ,SAASC,GAAY1zE,GACxB,OAAO,KAAKA,GAAQqI,OAAO,GAExB,SAASsrE,GAAa/xC,EAAcgyC,GACvC,OAAIz4D,MAAM8Y,QAAQ2/C,GACPA,EAAWtxE,IAAKwjC,GAAMv/B,KAAK6K,MAAM00B,IAAIxjC,IAAKwjC,GAAM4tC,GAAY5tC,IAExC,kBAAf8tC,EACLhyC,EAAaT,OAAQ2vC,GAASlyE,OAAOkyE,GAAQ8C,IAAe,GAG5DhyC,EAGR,SAASiyC,GAAa7zE,EAAO8Y,EAAM86D,GACtC,OA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","file":"js/chunk-ccdd9346.ec70b69e.js","sourcesContent":["const currencyOptions = {\r\n style: 'currency',\r\n currencyDisplay: 'code'\r\n}\r\n\r\nexport const formatNumWithDecimal = num => {\r\n return Number(num)\r\n}\r\n\r\nexport const numberToCurrency = (num, currency) => {\r\n const result = currency\r\n ? formatNumWithDecimal(num)?.toLocaleString('en-NG', {\r\n ...currencyOptions,\r\n currency\r\n })\r\n : formatNumWithDecimal(num)?.toLocaleString('en-NG')\r\n\r\n return result\r\n}\r\n","import store from '@/store/index'\r\n\r\nexport default () => {\r\n const status = async (status, msg) => {\r\n store.commit('ACTION_STATUS', status)\r\n store.commit('ACTION_MESSAGE', msg)\r\n }\r\n\r\n return {\r\n status\r\n }\r\n}\r\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","import store from '@/store/index'\r\n\r\nimport useConfig from '@/mixins/use-api-config'\r\nimport useDateFormat from '@/mixins/use-date-format'\r\nimport ActionStatus from '@/mixins/use-action-status'\r\n\r\nconst { config } = useConfig()\r\nconst { date } = useDateFormat()\r\nconst { status } = ActionStatus()\r\n// ---------------------------------\r\n\r\n// dashboard summary\r\nexport const GetSummaryAllTransaction = async merchantId => {\r\n const payload = { merchantId, config }\r\n\r\n return store.dispatch('report/GetSummaryAllTransaction', payload)\r\n .then(response => {\r\n // clear no connection error\r\n store.commit('HAS_CONNECTION_ERROR', false)\r\n // ---------------------------------------------\r\n\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n const {\r\n totalPendingTransactionNumber,\r\n totalPendingTransactionAmount,\r\n totalFailedTransactionNumber,\r\n totalFailedTransactionAmount,\r\n totalSuccessfulTransactionNumber,\r\n totalSuccessfulTransactionAmount,\r\n dateRange,\r\n // -----------------------------------------\r\n pendingReport,\r\n failReport,\r\n successfulReport\r\n } = response?.data\r\n\r\n // total pending transaction number\r\n store.commit('report/TOTAL_PENDING_TRANSACTION_NUMBER', totalPendingTransactionNumber)\r\n // total pending transaction amount\r\n store.commit('report/TOTAL_PENDING_TRANSACTION_AMOUNT', totalPendingTransactionAmount)\r\n\r\n // total failed transaction number\r\n store.commit('report/TOTAL_FAILED_TRANSACTION_NUMBER', totalFailedTransactionNumber)\r\n // total failed transaction amount\r\n store.commit('report/TOTAL_FAILED_TRANSACTION_AMOUNT', totalFailedTransactionAmount)\r\n\r\n // total successful transaction number\r\n store.commit('report/TOTAL_SUCCESSFUL_TRANSACTION_NUMBER', totalSuccessfulTransactionNumber)\r\n // total successful transaction amount\r\n store.commit('report/TOTAL_SUCCESSFUL_TRANSACTION_AMOUNT', totalSuccessfulTransactionAmount)\r\n\r\n // date range\r\n store.commit('report/DATE_RANGE', dateRange)\r\n\r\n // date array (from pending reports)\r\n const dateArray = pendingReport?.reverse().map(value => date(value.transactionDate).split(' ')[0])\r\n\r\n store.commit('report/DATE_ARRAY', dateArray)\r\n // ------------------------------------------------------------\r\n\r\n // total transaction summary\r\n const totalSummaryTransactionNumber = parseInt(totalPendingTransactionNumber) + parseInt(totalFailedTransactionNumber) + parseInt(totalSuccessfulTransactionNumber)\r\n const totalSummaryTransactionAmount = parseInt(totalPendingTransactionAmount) + parseInt(totalFailedTransactionAmount) + parseInt(totalSuccessfulTransactionAmount)\r\n\r\n // total transaction summary number\r\n store.commit('report/TOTAL_TRANSACTION_NUMBER', totalSummaryTransactionNumber)\r\n // total transaction summary amount\r\n store.commit('report/TOTAL_TRANSACTION_AMOUNT', totalSummaryTransactionAmount)\r\n // --------------------------------------------------------------------------------\r\n\r\n // --------------------------------------------------------------------------------\r\n const pendingReports_ = pendingReport?.reverse().map(value => value.totalTransactionNumber)\r\n const failedReports_ = failReport?.reverse().map(value => value.totalTransactionNumber)\r\n const successfulReports_ = successfulReport?.reverse().map(value => value.totalTransactionNumber)\r\n\r\n // pending report\r\n store.commit('report/PENDING_REPORTS', pendingReports_)\r\n // failed report\r\n store.commit('report/FAILED_REPORTS', failedReports_)\r\n // successful report\r\n store.commit('report/SUCCESSFUL_REPORTS', successfulReports_)\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n store.commit('HAS_CONNECTION_ERROR', true)\r\n })\r\n}\r\n// -----------------------------------------------------\r\n\r\n// transaction history page\r\nexport const GetTransactionHistoryByFilterOption = async paginationParams => {\r\n switch (paginationParams?.filterBy) {\r\n case 'all':\r\n await GetAllTransaction(paginationParams)\r\n break\r\n case 'pending':\r\n await GetAllTransactionPending(paginationParams)\r\n break\r\n case 'successful':\r\n await GetAllTransactionSuccessful(paginationParams)\r\n break\r\n case 'failed':\r\n await GetAllTransactionFailed(paginationParams)\r\n break\r\n }\r\n}\r\n\r\nexport const GetAllTransaction = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransaction', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_HISTORY', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\n\r\nexport const GetAllTransactionPending = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionPending', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_HISTORY', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionSuccessful = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionSuccessful', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_HISTORY', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionFailed = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionFailed', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_HISTORY', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\n// -----------------------------------------------------\r\n\r\n// transaction report\r\n\r\nexport const DownloadTransaction = async ({ transactionName, fundDisbursementId }) => {\r\n const payload = { fundDisbursementId, config }\r\n\r\n return await store.dispatch('report/DownloadTransaction', payload)\r\n .then(response => {\r\n if (response != null) {\r\n // document available for download\r\n\r\n // create an instance of the document\r\n const fileURL = URL.createObjectURL(new Blob([response]))\r\n // ----------------------------------\r\n const fileLink = document.createElement('a')\r\n fileLink.href = fileURL\r\n fileLink.download = `${transactionName} transaction report.xlsx`\r\n // ----------------------------------\r\n document.body.appendChild(fileLink)\r\n\r\n fileLink.click()\r\n fileLink.remove()\r\n URL.revokeObjectURL(fileURL)\r\n\r\n // successful download\r\n status('success', 'Downloaded successfully')\r\n\r\n return response\r\n }\r\n })\r\n .catch((error) => {\r\n const errorMessagesObj = error?.response.data?.errors\r\n const serverErrorMessage = error.message\r\n\r\n const errorMessages_ = []\r\n\r\n for (const key in errorMessagesObj) {\r\n if (Object.prototype.hasOwnProperty.call(errorMessagesObj, key)) {\r\n const errorMessagesObjValue = errorMessagesObj[key]\r\n\r\n errorMessages_.push(errorMessagesObjValue[0])\r\n }\r\n }\r\n\r\n // update response message\r\n status('error', errorMessages_.length ? errorMessages_.join('* ') : serverErrorMessage)\r\n\r\n return error\r\n })\r\n}\r\nexport const GetTransactionReportByFilterOption = async paginationParams => {\r\n switch (paginationParams?.filterBy) {\r\n case 'all':\r\n await GetAllTransactionByGroup(paginationParams)\r\n break\r\n case 'acknowledged':\r\n await GetAllTransactionByGroupAknowleged(paginationParams)\r\n break\r\n case 'completed':\r\n await GetAllTransactionByGroupCompleted(paginationParams)\r\n break\r\n case 'validated':\r\n await GetAllTransactionByGroupValidated(paginationParams)\r\n break\r\n case 'failed':\r\n await GetAllTransactionByGroupFailed(paginationParams)\r\n break\r\n }\r\n}\r\nexport const GetAllTransactionByGroup = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroup', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_REPORTS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionByGroupAknowleged = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroupAknowleged', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_REPORTS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionByGroupCompleted = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroupCompleted', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_REPORTS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionByGroupDebited = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroupDebited', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_REPORTS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionByGroupValidated = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroupValidated', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_REPORTS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\nexport const GetAllTransactionByGroupFailed = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroupFailed', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTION_REPORTS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\n\r\nexport const GetAllTransactionByGroupDetails = async paginationParams => {\r\n const payload = { paginationParams, config }\r\n\r\n return store.dispatch('report/GetAllTransactionByGroupDetails', payload)\r\n .then(response => {\r\n if ([0, '0', '00'].includes(response?.responseCode)) {\r\n // check response data\r\n if (response.data) {\r\n store.commit('report/TRANSACTIONS_BY_GROUP_DETAILS', {\r\n totalRecords: response?.totalRecords,\r\n data: response?.data\r\n })\r\n }\r\n } else {\r\n status('error', response?.responseMessage)\r\n }\r\n\r\n return response\r\n })\r\n .catch(error => status('error', error.message))\r\n}\r\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'Backward',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"path\", { d: \"M12.2674 15.793C11.9675 16.0787 11.4927 16.0672 11.2071 15.7673L6.20572 10.5168C5.9298 10.2271 5.9298 9.7719 6.20572 9.48223L11.2071 4.23177C11.4927 3.93184 11.9675 3.92031 12.2674 4.206C12.5673 4.49169 12.5789 4.96642 12.2932 5.26634L7.78458 9.99952L12.2932 14.7327C12.5789 15.0326 12.5673 15.5074 12.2674 15.793Z\", fill: \"currentColor\" })));\n }\n});\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{user.role}}\r\n {{user.name}}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Users\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Admin Users\r\n \r\n \r\n Assign User Department\r\n \r\n \r\n Assign User Privilege\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Merchants\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Billing Accounts\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Transactions\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Transaction History\r\n \r\n \r\n Transaction Reports\r\n \r\n \r\n Trans. Repost Approval\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Audit Trail\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Department Registration\r\n \r\n \r\n Assign Dept. Operations\r\n \r\n \r\n Bank Registration\r\n \r\n \r\n Transaction Charge Mgt.\r\n \r\n \r\n Transaction Processor\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Logout\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./adminSidebar.vue?vue&type=template&id=3097f0a6\"\nimport script from \"./adminSidebar.vue?vue&type=script&lang=js\"\nexport * from \"./adminSidebar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\augustine.ibe\\\\Desktop\\\\AustinXP\\\\payout-fe\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\n itemSize: '28px',\n itemPadding: '0 4px',\n itemMargin: '0 0 0 8px',\n buttonIconSize: '16px',\n inputWidth: '60px',\n selectWidth: 'unset',\n inputMargin: '0 0 0 8px',\n selectMargin: '0 0 0 8px',\n prefixMargin: '0 8px 0 0',\n suffixMargin: '0 0 0 8px',\n jumperFontSize: '14px'\n};\n","import { selectLight } from '../../select/styles';\nimport { inputLight } from '../../input/styles';\nimport { commonLight } from '../../_styles/common';\nimport commonVariables from './_common';\nimport { createTheme } from '../../_mixins';\nexport const self = (vars) => {\n const { textColor2, primaryColor, primaryColorHover, primaryColorPressed, inputColorDisabled, textColorDisabled, borderColor, borderRadius, fontSize } = vars;\n return Object.assign(Object.assign({}, commonVariables), { buttonColor: '#0000', buttonColorHover: '#0000', buttonColorPressed: '#0000', buttonBorder: `1px solid ${borderColor}`, buttonBorderHover: `1px solid ${borderColor}`, buttonBorderPressed: `1px solid ${borderColor}`, buttonIconColor: textColor2, buttonIconColorHover: textColor2, buttonIconColorPressed: textColor2, itemTextColor: textColor2, itemTextColorHover: primaryColorHover, itemTextColorPressed: primaryColorPressed, itemTextColorActive: primaryColor, itemTextColorDisabled: textColorDisabled, itemColor: '#0000', itemColorHover: '#0000', itemColorPressed: '#0000', itemColorActive: '#0000', itemColorActiveHover: '#0000', itemColorDisabled: inputColorDisabled, itemBorder: '1px solid #0000', itemBorderHover: '1px solid #0000', itemBorderPressed: '1px solid #0000', itemBorderActive: `1px solid ${primaryColor}`, itemBorderDisabled: `1px solid ${borderColor}`, itemBorderRadius: borderRadius, itemFontSize: fontSize, jumperTextColor: textColor2, jumperTextColorDisabled: textColorDisabled });\n};\nconst paginationLight = createTheme({\n name: 'Pagination',\n common: commonLight,\n peers: {\n Select: selectLight,\n Input: inputLight\n },\n self\n});\nexport default paginationLight;\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = $toString(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, $toString(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = $toString(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, $toString(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = $toString(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, $toString(pathname), PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = $toString(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = $toString(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","function lowBit(n) {\n return n & -n;\n}\nexport class FinweckTree {\n /**\n * @param l length of the array\n * @param min min value of the array\n */\n constructor(l, min) {\n this.l = l;\n this.min = min;\n const ft = new Array(l + 1);\n for (let i = 0; i < l + 1; ++i) {\n ft[i] = 0;\n }\n this.ft = ft;\n }\n /**\n * Add arr[i] by n, start from 0\n * @param i the index of the element to be added\n * @param n the value to be added\n */\n add(i, n) {\n if (n === 0)\n return;\n const { l, ft } = this;\n i += 1;\n while (i <= l) {\n ft[i] += n;\n i += lowBit(i);\n }\n }\n /**\n * Get the value of index i\n * @param i index\n * @returns value of the index\n */\n get(i) {\n return this.sum(i + 1) - this.sum(i);\n }\n /**\n * Get the sum of first i elements\n * @param i count of head elements to be added\n * @returns the sum of first i elements\n */\n sum(i) {\n if (i === 0)\n return 0;\n const { ft, min, l } = this;\n if (i === undefined)\n i = l;\n if (i > l)\n throw new Error('[FinweckTree.sum]: `i` is larger than length.');\n let ret = i * min;\n while (i > 0) {\n ret += ft[i];\n i -= lowBit(i);\n }\n return ret;\n }\n /**\n * Get the largest count of head elements whose sum are <= threshold\n * @param threshold\n * @returns the largest count of head elements whose sum are <= threshold\n */\n getBound(threshold) {\n let l = 0;\n let r = this.l;\n while (r > l) {\n const m = Math.floor((l + r) / 2);\n const sumM = this.sum(m);\n if (sumM > threshold) {\n r = m;\n continue;\n }\n else if (sumM < threshold) {\n if (l === m) {\n if (this.sum(l + 1) <= threshold)\n return l + 1;\n return m;\n }\n l = m;\n }\n else {\n return m;\n }\n }\n return l;\n }\n}\n","/* eslint-disable no-void */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { mergeProps, computed, defineComponent, ref, onMounted, h } from 'vue';\nimport { depx, pxfy, beforeNextFrameOnce } from 'seemly';\nimport { useMemo } from 'vooks';\nimport { c, FinweckTree } from '../../shared';\nimport VResizeObserver from '../../resize-observer/src';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nconst styles = c('.v-vl', {\n maxHeight: 'inherit',\n height: '100%',\n overflow: 'auto',\n minWidth: '1px' // a zero width container won't be scrollable\n}, [\n c('&:not(.v-vl--show-scrollbar)', {\n scrollbarWidth: 'none'\n }, [\n c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', {\n width: 0,\n height: 0,\n display: 'none'\n })\n ])\n]);\nexport default defineComponent({\n name: 'VirtualList',\n inheritAttrs: false,\n props: {\n showScrollbar: {\n type: Boolean,\n default: true\n },\n items: {\n type: Array,\n default: () => []\n },\n // it is suppose to be the min height\n itemSize: {\n type: Number,\n required: true\n },\n itemResizable: Boolean,\n itemsStyle: [String, Object],\n visibleItemsTag: {\n type: [String, Object],\n default: 'div'\n },\n visibleItemsProps: Object,\n ignoreItemResize: Boolean,\n onScroll: Function,\n onWheel: Function,\n onResize: Function,\n defaultScrollKey: [Number, String],\n defaultScrollIndex: Number,\n keyField: {\n type: String,\n default: 'key'\n },\n // Whether it is a good API?\n // ResizeObserver + footer & header is not enough.\n // Too complex for simple case\n paddingTop: {\n type: [Number, String],\n default: 0\n },\n paddingBottom: {\n type: [Number, String],\n default: 0\n }\n },\n setup(props) {\n const ssrAdapter = useSsrAdapter();\n styles.mount({\n id: 'vueuc/virtual-list',\n head: true,\n ssr: ssrAdapter\n });\n onMounted(() => {\n const { defaultScrollIndex, defaultScrollKey } = props;\n if (defaultScrollIndex !== undefined && defaultScrollIndex !== null) {\n scrollTo({ index: defaultScrollIndex });\n }\n else if (defaultScrollKey !== undefined && defaultScrollKey !== null) {\n scrollTo({ key: defaultScrollKey });\n }\n });\n const keyIndexMapRef = computed(() => {\n const map = new Map();\n const { keyField } = props;\n props.items.forEach((item, index) => {\n map.set(item[keyField], index);\n });\n return map;\n });\n const listElRef = ref(null);\n const listHeightRef = ref(undefined);\n const keyToHeightOffset = new Map();\n const finweckTreeRef = computed(() => {\n const { items, itemSize, keyField } = props;\n const ft = new FinweckTree(items.length, itemSize);\n items.forEach((item, index) => {\n const key = item[keyField];\n const heightOffset = keyToHeightOffset.get(key);\n if (heightOffset !== undefined) {\n ft.add(index, heightOffset);\n }\n });\n return ft;\n });\n const finweckTreeUpdateTrigger = ref(0);\n const scrollTopRef = ref(0);\n const startIndexRef = useMemo(() => {\n return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0);\n });\n const viewportItemsRef = computed(() => {\n const { value: listHeight } = listHeightRef;\n if (listHeight === undefined)\n return [];\n const { items, itemSize } = props;\n const startIndex = startIndexRef.value;\n const endIndex = Math.min(startIndex + Math.ceil(listHeight / itemSize + 1), items.length - 1);\n const viewportItems = [];\n for (let i = startIndex; i <= endIndex; ++i) {\n viewportItems.push(items[i]);\n }\n return viewportItems;\n });\n const scrollTo = (options) => {\n const { left, top, index, key, position, behavior, debounce = true } = options;\n if (left !== undefined || top !== undefined) {\n scrollToPosition(left, top, behavior);\n }\n else if (index !== undefined) {\n scrollToIndex(index, behavior, debounce);\n }\n else if (key !== undefined) {\n const toIndex = keyIndexMapRef.value.get(key);\n if (toIndex !== undefined)\n scrollToIndex(toIndex, behavior, debounce);\n }\n else if (position === 'bottom') {\n scrollToPosition(0, Number.MAX_SAFE_INTEGER, behavior);\n }\n else if (position === 'top') {\n scrollToPosition(0, 0, behavior);\n }\n };\n function scrollToIndex(index, behavior, debounce) {\n const { value: ft } = finweckTreeRef;\n const targetTop = ft.sum(index) + depx(props.paddingTop);\n if (!debounce) {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop,\n behavior\n });\n }\n else {\n const { scrollTop, offsetHeight } = listElRef.value;\n if (targetTop > scrollTop) {\n const itemSize = ft.get(index);\n if (targetTop + itemSize <= scrollTop + offsetHeight) {\n // do nothing\n }\n else {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop + itemSize - offsetHeight,\n behavior\n });\n }\n }\n else {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop,\n behavior\n });\n }\n }\n lastScrollAnchorIndex = index;\n }\n function scrollToPosition(left, top, behavior) {\n listElRef.value.scrollTo({\n left,\n top,\n behavior\n });\n }\n function handleItemResize(key, entry) {\n var _a;\n if (props.ignoreItemResize)\n return;\n const { value: ft } = finweckTreeRef;\n const index = keyIndexMapRef.value.get(key);\n const height = entry.target.offsetHeight;\n // height offset based on itemSize\n // used when rebuild the finweck tree\n const offset = height - props.itemSize;\n if (offset === 0) {\n keyToHeightOffset.delete(key);\n }\n else {\n keyToHeightOffset.set(key, height - props.itemSize);\n }\n // delta height based on finweck tree data\n const delta = height - ft.get(index);\n if (delta === 0)\n return;\n if (lastAnchorIndex !== undefined && index <= lastAnchorIndex) {\n (_a = listElRef.value) === null || _a === void 0 ? void 0 : _a.scrollBy(0, delta);\n }\n ft.add(index, delta);\n finweckTreeUpdateTrigger.value++;\n }\n function handleListScroll(e) {\n beforeNextFrameOnce(syncViewport);\n const { onScroll } = props;\n if (onScroll !== undefined)\n onScroll(e);\n }\n function handleListResize(entry) {\n listHeightRef.value = entry.contentRect.height;\n const { onResize } = props;\n if (onResize !== undefined)\n onResize(entry);\n }\n let lastScrollAnchorIndex;\n let lastAnchorIndex;\n function syncViewport() {\n const { value: listEl } = listElRef;\n // sometime ref el can be null\n // https://github.com/TuSimple/naive-ui/issues/811\n if (listEl == null)\n return;\n lastAnchorIndex = lastScrollAnchorIndex !== null && lastScrollAnchorIndex !== void 0 ? lastScrollAnchorIndex : startIndexRef.value;\n lastScrollAnchorIndex = undefined;\n scrollTopRef.value = listElRef.value.scrollTop;\n }\n return {\n listHeight: listHeightRef,\n listStyle: {\n overflow: 'auto'\n },\n keyToIndex: keyIndexMapRef,\n itemsStyle: computed(() => {\n const { itemResizable } = props;\n const height = pxfy(finweckTreeRef.value.sum());\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n finweckTreeUpdateTrigger.value;\n return [\n props.itemsStyle,\n {\n boxSizing: 'content-box',\n height: itemResizable ? '' : height,\n minHeight: itemResizable ? height : '',\n paddingTop: pxfy(props.paddingTop),\n paddingBottom: pxfy(props.paddingBottom)\n }\n ];\n }),\n visibleItemsStyle: computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n finweckTreeUpdateTrigger.value;\n return {\n transform: `translate3d(0, ${pxfy(finweckTreeRef.value.sum(startIndexRef.value))}, 0)`\n };\n }),\n viewportItems: viewportItemsRef,\n listElRef,\n itemsElRef: ref(null),\n scrollTo,\n handleListResize,\n handleListScroll,\n handleItemResize\n };\n },\n render() {\n const { itemResizable, keyField, keyToIndex, visibleItemsTag } = this;\n return h(VResizeObserver, {\n onResize: this.handleListResize\n }, {\n default: () => {\n var _a, _b;\n return h('div', mergeProps(this.$attrs, {\n class: [\n 'v-vl',\n this.showScrollbar && 'v-vl--show-scrollbar'\n ],\n onScroll: this.handleListScroll,\n onWheel: this.onWheel,\n ref: 'listElRef'\n }), [\n this.items.length !== 0\n ? h('div', {\n ref: 'itemsElRef',\n class: 'v-vl-items',\n style: this.itemsStyle\n }, [\n h(visibleItemsTag, Object.assign({\n class: 'v-vl-visible-items',\n style: this.visibleItemsStyle\n }, this.visibleItemsProps), {\n default: () => this.viewportItems.map(item => {\n const key = item[keyField];\n const index = keyToIndex.get(key);\n const itemVNode = this.$slots.default({ item, index })[0];\n if (itemResizable) {\n return h(VResizeObserver, {\n key,\n onResize: (entry) => this.handleItemResize(key, entry)\n }, {\n default: () => itemVNode\n });\n }\n itemVNode.key = key;\n return itemVNode;\n })\n })\n ])\n : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a)\n ]);\n }\n });\n }\n});\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n onFocus: Function,\n onBlur: Function\n },\n setup(props) {\n return () => (h(\"div\", { style: \"width: 0; height: 0\", tabindex: 0, onFocus: props.onFocus, onBlur: props.onBlur }));\n }\n});\n","import FocusDetector from './src/FocusDetector';\nexport default FocusDetector;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./connectionError.vue?vue&type=style&index=0&id=377239c4&lang=scss&scoped=true\"","export default () => {\r\n // const formatTime = timeStr => {\r\n // const [hr, min] = timeStr.split(':')\r\n\r\n // let _time = ''\r\n\r\n // if (hr === 12) {\r\n // _time = `${hr}:${Number(min)} PM`\r\n // } else\r\n // if (hr > 12) {\r\n // _time = `${Number(hr) - 12}:${Number(min)} PM`\r\n // } else {\r\n // _time = `${hr}:${min} AM`\r\n // }\r\n\r\n // return `${_time}`\r\n // }\r\n\r\n const date = dateStr => {\r\n const date = new Date(dateStr).toLocaleDateString().split('/').join('-')\r\n const time = new Date(dateStr).toLocaleTimeString()\r\n // const time = formatTime(new Date(dateStr).toLocaleTimeString())\r\n\r\n const dateTime = `${date} ${time}`\r\n\r\n return dateTime\r\n }\r\n\r\n return {\r\n date\r\n }\r\n}\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'FastBackward',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 20 20\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", fill: \"none\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { fill: \"currentColor\", \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z\" })))));\n }\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","export default {\n height: 'calc(var(--option-height) * 7.6)',\n paddingSmall: '4px 0',\n paddingMedium: '4px 0',\n paddingLarge: '4px 0',\n paddingHuge: '4px 0',\n optionPaddingSmall: '0 12px',\n optionPaddingMedium: '0 12px',\n optionPaddingLarge: '0 12px',\n optionPaddingHuge: '0 12px',\n loadingSize: '18px'\n};\n","import { emptyLight } from '../../../empty/styles';\nimport { scrollbarLight } from '../../../scrollbar/styles';\nimport { commonLight } from '../../../_styles/common';\nimport commonVariables from './_common';\nimport { createTheme } from '../../../_mixins';\nexport const self = (vars) => {\n const { borderRadius, popoverColor, textColor3, dividerColor, textColor2, primaryColorPressed, textColorDisabled, primaryColor, opacityDisabled, hoverColor, fontSizeSmall, fontSizeMedium, fontSizeLarge, fontSizeHuge, heightSmall, heightMedium, heightLarge, heightHuge } = vars;\n return Object.assign(Object.assign({}, commonVariables), { optionFontSizeSmall: fontSizeSmall, optionFontSizeMedium: fontSizeMedium, optionFontSizeLarge: fontSizeLarge, optionFontSizeHuge: fontSizeHuge, optionHeightSmall: heightSmall, optionHeightMedium: heightMedium, optionHeightLarge: heightLarge, optionHeightHuge: heightHuge, borderRadius: borderRadius, color: popoverColor, groupHeaderTextColor: textColor3, actionDividerColor: dividerColor, optionTextColor: textColor2, optionTextColorPressed: primaryColorPressed, optionTextColorDisabled: textColorDisabled, optionTextColorActive: primaryColor, optionOpacityDisabled: opacityDisabled, optionCheckColor: primaryColor, optionColorPending: hoverColor, actionTextColor: textColor2, loadingColor: primaryColor });\n};\nconst internalSelectMenuLight = createTheme({\n name: 'InternalSelectMenu',\n common: commonLight,\n peers: {\n Scrollbar: scrollbarLight,\n Empty: emptyLight\n },\n self\n});\nexport default internalSelectMenuLight;\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Refresh\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./connectionError.vue?vue&type=template&id=377239c4&scoped=true\"\nimport script from \"./connectionError.vue?vue&type=script&lang=js\"\nexport * from \"./connectionError.vue?vue&type=script&lang=js\"\n\nimport \"./connectionError.vue?vue&type=style&index=0&id=377239c4&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\augustine.ibe\\\\Desktop\\\\AustinXP\\\\payout-fe\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-377239c4\"]])\n\nexport default __exports__","export default {\n closeSizeSmall: '14px',\n closeSizeMedium: '14px',\n closeSizeLarge: '14px',\n // closeSize\n padding: '0 7px',\n closeMargin: '0 0 0 3px',\n closeMarginRtl: '0 3px 0 0'\n};\n","import commonVariables from './_common';\nimport { changeColor } from 'seemly';\nimport { commonLight } from '../../_styles/common';\nconst self = (vars) => {\n const { textColor2, primaryColorHover, primaryColorPressed, primaryColor, infoColor, successColor, warningColor, errorColor, baseColor, borderColor, opacityDisabled, tagColor, closeColor, closeColorHover, closeColorPressed, borderRadiusSmall: borderRadius, fontSizeTiny, fontSizeSmall, fontSizeMedium, heightTiny, heightSmall, heightMedium } = vars;\n return Object.assign(Object.assign({}, commonVariables), { heightSmall: heightTiny, heightMedium: heightSmall, heightLarge: heightMedium, borderRadius,\n opacityDisabled, fontSizeSmall: fontSizeTiny, fontSizeMedium: fontSizeSmall, fontSizeLarge: fontSizeMedium, \n // checked\n textColorCheckable: textColor2, textColorHoverCheckable: primaryColorHover, textColorPressedCheckable: primaryColorPressed, textColorChecked: baseColor, colorCheckable: '#0000', colorHoverCheckable: '#0000', colorPressedCheckable: '#0000', colorChecked: primaryColor, colorCheckedHover: primaryColorHover, colorCheckedPressed: primaryColorPressed, \n // default\n border: `1px solid ${borderColor}`, textColor: textColor2, color: tagColor, closeColor: closeColor, closeColorHover: closeColorHover, closeColorPressed: closeColorPressed, borderPrimary: `1px solid ${changeColor(primaryColor, { alpha: 0.3 })}`, textColorPrimary: primaryColor, colorPrimary: changeColor(primaryColor, { alpha: 0.1 }), closeColorPrimary: changeColor(primaryColor, { alpha: 0.75 }), closeColorHoverPrimary: changeColor(primaryColor, { alpha: 0.6 }), closeColorPressedPrimary: changeColor(primaryColor, { alpha: 0.9 }), borderInfo: `1px solid ${changeColor(infoColor, { alpha: 0.3 })}`, textColorInfo: infoColor, colorInfo: changeColor(infoColor, { alpha: 0.1 }), closeColorInfo: changeColor(infoColor, { alpha: 0.75 }), closeColorHoverInfo: changeColor(infoColor, { alpha: 0.6 }), closeColorPressedInfo: changeColor(infoColor, { alpha: 0.9 }), borderSuccess: `1px solid ${changeColor(successColor, { alpha: 0.3 })}`, textColorSuccess: successColor, colorSuccess: changeColor(successColor, { alpha: 0.1 }), closeColorSuccess: changeColor(successColor, { alpha: 0.75 }), closeColorHoverSuccess: changeColor(successColor, { alpha: 0.6 }), closeColorPressedSuccess: changeColor(successColor, { alpha: 0.9 }), borderWarning: `1px solid ${changeColor(warningColor, { alpha: 0.35 })}`, textColorWarning: warningColor, colorWarning: changeColor(warningColor, { alpha: 0.12 }), closeColorWarning: changeColor(warningColor, { alpha: 0.75 }), closeColorHoverWarning: changeColor(warningColor, { alpha: 0.6 }), closeColorPressedWarning: changeColor(warningColor, { alpha: 0.9 }), borderError: `1px solid ${changeColor(errorColor, { alpha: 0.23 })}`, textColorError: errorColor, colorError: changeColor(errorColor, { alpha: 0.08 }), closeColorError: changeColor(errorColor, { alpha: 0.65 }), closeColorHoverError: changeColor(errorColor, { alpha: 0.5 }), closeColorPressedError: changeColor(errorColor, { alpha: 0.8 }) });\n};\nconst tagLight = {\n name: 'Tag',\n common: commonLight,\n self\n};\nexport default tagLight;\n","export default {\n color: Object,\n type: {\n type: String,\n default: 'default'\n },\n round: Boolean,\n size: {\n type: String,\n default: 'medium'\n },\n closable: Boolean,\n disabled: {\n type: Boolean,\n default: undefined\n }\n};\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'; // vars:\n// --bezier\n// --border-radius\n// --border\n// --close-color\n// --close-color-hover\n// --close-color-pressed\n// --close-margin\n// --close-size\n// --color\n// --color-checkable\n// --color-checked\n// --color-checked-hover\n// --color-checked-pressed\n// --color-hover-checkable\n// --color-pressed-checkable\n// --font-size\n// --height\n// --opacity-disabled\n// --padding\n// --text-color\n// --text-color-checkable\n// --text-color-checked\n// --text-color-hover-checkable\n// --text-color-pressed-checkable\n\nexport default cB('tag', `\n white-space: nowrap;\n position: relative;\n box-sizing: border-box;\n cursor: default;\n display: inline-flex;\n align-items: center;\n flex-wrap: nowrap;\n padding: var(--padding);\n border-radius: var(--border-radius);\n color: var(--text-color);\n background-color: var(--color);\n transition: \n border-color .3s var(--bezier),\n background-color .3s var(--bezier),\n color .3s var(--bezier),\n box-shadow .3s var(--bezier),\n opacity .3s var(--bezier);\n line-height: var(--height);\n height: var(--height);\n font-size: var(--font-size);\n`, [cE('border', `\n pointer-events: none;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n border-radius: inherit;\n border: var(--border);\n transition: border-color .3s var(--bezier);\n `), cE('close', `\n font-size: var(--close-size);\n margin: var(--close-margin);\n transition: color .3s var(--bezier);\n cursor: pointer;\n `), cM('round', `\n padding: 0 calc(var(--height) / 2);\n border-radius: calc(var(--height) / 2);\n `), cM('disabled', {\n cursor: 'not-allowed !important',\n opacity: 'var(--opacity-disabled)'\n}), cM('checkable', `\n cursor: pointer;\n box-shadow: none;\n color: var(--text-color-checkable);\n background-color: var(--color-checkable);\n `, [cNotM('disabled', [c('&:hover', {\n backgroundColor: 'var(--color-hover-checkable)'\n}, [cNotM('checked', {\n color: 'var(--text-color-hover-checkable)'\n})]), c('&:active', {\n backgroundColor: 'var(--color-pressed-checkable)'\n}, [cNotM('checked', {\n color: 'var(--text-color-pressed-checkable)'\n})])]), cM('checked', {\n color: 'var(--text-color-checked)',\n backgroundColor: 'var(--color-checked)'\n}, [cNotM('disabled', [c('&:hover', {\n backgroundColor: 'var(--color-checked-hover)'\n}), c('&:active', {\n backgroundColor: 'var(--color-checked-pressed)'\n})])])])]);","import { h, defineComponent, computed, ref } from 'vue';\nimport { useConfig, useTheme } from '../../_mixins';\nimport { NBaseClose } from '../../_internal';\nimport { warn, createKey, call } from '../../_utils';\nimport { tagLight } from '../styles';\nimport commonProps from './common-props';\nimport style from './styles/index.cssr';\nimport useRtl from '../../_mixins/use-rtl';\nconst tagProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), commonProps), { bordered: {\n type: Boolean,\n default: undefined\n }, checked: Boolean, checkable: Boolean, onClose: [Array, Function], onMouseenter: Function, onMouseleave: Function, 'onUpdate:checked': Function, onUpdateChecked: Function, \n // private\n internalStopClickPropagation: Boolean, \n // deprecated\n onCheckedChange: {\n type: Function,\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('tag', '`on-checked-change` is deprecated, please use `on-update:checked` instead');\n }\n return true;\n },\n default: undefined\n } });\nexport default defineComponent({\n name: 'Tag',\n props: tagProps,\n setup(props) {\n const contentRef = ref(null);\n const { mergedBorderedRef, mergedClsPrefixRef, NConfigProvider } = useConfig(props);\n const themeRef = useTheme('Tag', 'Tag', style, tagLight, props, mergedClsPrefixRef);\n function handleClick(e) {\n if (!props.disabled) {\n if (props.checkable) {\n const { checked, onCheckedChange, onUpdateChecked, 'onUpdate:checked': _onUpdateChecked } = props;\n if (onUpdateChecked)\n onUpdateChecked(!checked);\n if (_onUpdateChecked)\n _onUpdateChecked(!checked);\n // deprecated\n if (onCheckedChange)\n onCheckedChange(!checked);\n }\n }\n }\n function handleCloseClick(e) {\n if (props.internalStopClickPropagation) {\n e.stopPropagation();\n }\n if (!props.disabled) {\n const { onClose } = props;\n if (onClose)\n call(onClose, e);\n }\n }\n const tagPublicMethods = {\n setTextContent(textContent) {\n const { value } = contentRef;\n if (value)\n value.textContent = textContent;\n }\n };\n const rtlEnabledRef = useRtl('Tag', NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedRtlRef, mergedClsPrefixRef);\n return Object.assign(Object.assign({}, tagPublicMethods), { rtlEnabled: rtlEnabledRef, mergedClsPrefix: mergedClsPrefixRef, contentRef, mergedBordered: mergedBorderedRef, handleClick,\n handleCloseClick, cssVars: computed(() => {\n const { type, size, color: { color, textColor } = {} } = props;\n const { common: { cubicBezierEaseInOut }, self: { padding, closeMargin, closeMarginRtl, borderRadius, opacityDisabled, textColorCheckable, textColorHoverCheckable, textColorPressedCheckable, textColorChecked, colorCheckable, colorHoverCheckable, colorPressedCheckable, colorChecked, colorCheckedHover, colorCheckedPressed, [createKey('closeSize', size)]: closeSize, [createKey('fontSize', size)]: fontSize, [createKey('height', size)]: height, [createKey('color', type)]: typedColor, [createKey('textColor', type)]: typeTextColor, [createKey('border', type)]: border, [createKey('closeColor', type)]: closeColor, [createKey('closeColorHover', type)]: closeColorHover, [createKey('closeColorPressed', type)]: closeColorPressed } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--border-radius': borderRadius,\n '--border': border,\n '--close-color': closeColor,\n '--close-color-hover': closeColorHover,\n '--close-color-pressed': closeColorPressed,\n '--close-margin': closeMargin,\n '--close-margin-rtl': closeMarginRtl,\n '--close-size': closeSize,\n '--color': color || typedColor,\n '--color-checkable': colorCheckable,\n '--color-checked': colorChecked,\n '--color-checked-hover': colorCheckedHover,\n '--color-checked-pressed': colorCheckedPressed,\n '--color-hover-checkable': colorHoverCheckable,\n '--color-pressed-checkable': colorPressedCheckable,\n '--font-size': fontSize,\n '--height': height,\n '--opacity-disabled': opacityDisabled,\n '--padding': padding,\n '--text-color': textColor || typeTextColor,\n '--text-color-checkable': textColorCheckable,\n '--text-color-checked': textColorChecked,\n '--text-color-hover-checkable': textColorHoverCheckable,\n '--text-color-pressed-checkable': textColorPressedCheckable\n };\n }) });\n },\n render() {\n const { mergedClsPrefix, rtlEnabled, color: { borderColor } = {} } = this;\n return (h(\"div\", { class: [\n `${mergedClsPrefix}-tag`,\n {\n [`${mergedClsPrefix}-tag--rtl`]: rtlEnabled,\n [`${mergedClsPrefix}-tag--disabled`]: this.disabled,\n [`${mergedClsPrefix}-tag--checkable`]: this.checkable,\n [`${mergedClsPrefix}-tag--checked`]: this.checkable && this.checked,\n [`${mergedClsPrefix}-tag--round`]: this.round\n }\n ], style: this.cssVars, onClick: this.handleClick, onMouseenter: this.onMouseenter, onMouseleave: this.onMouseleave },\n h(\"span\", { class: `${mergedClsPrefix}-tag__content`, ref: \"contentRef\" }, this.$slots),\n !this.checkable && this.closable ? (h(NBaseClose, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-tag__close`, disabled: this.disabled, onClick: this.handleCloseClick })) : null,\n !this.checkable && this.mergedBordered ? (h(\"div\", { class: `${mergedClsPrefix}-tag__border`, style: { borderColor } })) : null));\n }\n});\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { render } from \"./PageSpinner.vue?vue&type=template&id=76a1d12a\"\nimport script from \"./PageSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./PageSpinner.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\augustine.ibe\\\\Desktop\\\\AustinXP\\\\payout-fe\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport { defineComponent, renderSlot, h, onMounted, ref, nextTick } from 'vue';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c } from '../../shared';\nconst hiddenAttr = 'v-hidden';\nconst style = c('[v-hidden]', {\n display: 'none!important'\n});\nexport default defineComponent({\n name: 'Overflow',\n props: {\n getCounter: Function,\n getTail: Function,\n updateCounter: Function,\n onUpdateOverflow: Function\n },\n setup(props, { slots }) {\n const selfRef = ref(null);\n const counterRef = ref(null);\n function deriveCounter() {\n const { value: self } = selfRef;\n const { getCounter, getTail } = props;\n let counter;\n if (getCounter !== undefined)\n counter = getCounter();\n else {\n counter = counterRef.value;\n }\n if (!self || !counter)\n return;\n if (counter.hasAttribute(hiddenAttr)) {\n counter.removeAttribute(hiddenAttr);\n }\n const { children } = self;\n const containerWidth = self.offsetWidth;\n const childWidths = [];\n const tail = slots.tail ? getTail === null || getTail === void 0 ? void 0 : getTail() : null;\n let childWidthSum = tail ? tail.offsetWidth : 0;\n let overflow = false;\n const len = self.children.length - (slots.tail ? 1 : 0);\n for (let i = 0; i < len - 1; ++i) {\n if (i < 0)\n continue;\n const child = children[i];\n if (overflow) {\n if (!child.hasAttribute(hiddenAttr)) {\n child.setAttribute(hiddenAttr, '');\n }\n continue;\n }\n else if (child.hasAttribute(hiddenAttr)) {\n child.removeAttribute(hiddenAttr);\n }\n const childWidth = child.offsetWidth;\n childWidthSum += childWidth;\n childWidths[i] = childWidth;\n if (childWidthSum > containerWidth) {\n const { updateCounter } = props;\n for (let j = i; j >= 0; --j) {\n const restCount = len - 1 - j;\n if (updateCounter !== undefined) {\n updateCounter(restCount);\n }\n else {\n counter.textContent = `${restCount}`;\n }\n const counterWidth = counter.offsetWidth;\n childWidthSum -= childWidths[j];\n if (childWidthSum + counterWidth <= containerWidth || j === 0) {\n overflow = true;\n i = j - 1;\n if (tail) {\n // tail too long or 1st element too long\n // we only consider tail now\n if (i === -1) {\n tail.style.maxWidth = `${containerWidth - counterWidth}px`;\n tail.style.boxSizing = 'border-box';\n }\n else {\n tail.style.maxWidth = '';\n }\n }\n break;\n }\n }\n }\n }\n const { onUpdateOverflow } = props;\n if (!overflow) {\n if (onUpdateOverflow !== undefined) {\n onUpdateOverflow(false);\n }\n counter.setAttribute(hiddenAttr, '');\n }\n else {\n if (onUpdateOverflow !== undefined) {\n onUpdateOverflow(true);\n }\n }\n }\n const ssrAdapter = useSsrAdapter();\n style.mount({\n id: 'vueuc/overflow',\n head: true,\n ssr: ssrAdapter\n });\n onMounted(deriveCounter);\n // besides onMounted, other case should be manually triggered, or we shoud watch items\n return {\n selfRef,\n counterRef,\n sync: deriveCounter\n };\n },\n render() {\n const { $slots } = this;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n nextTick(this.sync);\n // It shouldn't have border\n return h('div', {\n class: 'v-overflow',\n ref: 'selfRef'\n }, [\n renderSlot($slots, 'default'),\n // $slots.counter should only has 1 element\n $slots.counter\n ? $slots.counter()\n : h('span', {\n style: {\n display: 'inline-block'\n },\n ref: 'counterRef'\n }),\n // $slots.tail should only has 1 element\n $slots.tail ? $slots.tail() : null\n ]);\n }\n});\n","export function getTitleAttribute(value) {\n switch (typeof value) {\n case 'string':\n // The empty string should also be reset to undefined.\n return value || undefined;\n case 'number':\n return String(value);\n default:\n return undefined;\n }\n}\n","import { c, cB, cE, cM, cNotM, insideFormItem } from '../../../../_utils/cssr'; // vars:\n// --bezier\n// --border\n// --border-active\n// --border-focus\n// --border-hover\n// --border-radius\n// --box-shadow-active\n// --box-shadow-focus\n// --box-shadow-hover\n// --caret-color\n// --color\n// --color-active\n// --color-disabled\n// --font-size\n// --height\n// --padding-single\n// --placeholder-color\n// --placeholder-color-disabled\n// --text-color\n// --text-color-disabled\n// --arrow-color\n// --loading-color\n// ...clear vars\n// ...form item vars\n\nexport default c([cB('base-selection', `\n position: relative;\n z-index: auto;\n box-shadow: none;\n width: 100%;\n max-width: 100%;\n display: inline-block;\n vertical-align: bottom;\n border-radius: var(--border-radius);\n min-height: var(--height);\n line-height: var(--height);\n font-size: var(--font-size);\n `, [cB('base-loading', `\n color: var(--loading-color);\n `), cB('base-selection-label', `\n height: var(--height);\n line-height: var(--height);\n `), cB('base-selection-tags', {\n minHeight: 'var(--height)'\n}), cE('border, state-border', `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n border: var(--border);\n border-radius: inherit;\n transition:\n box-shadow .3s var(--bezier),\n border-color .3s var(--bezier);\n `), cE('state-border', `\n z-index: 1;\n border-color: #0000;\n `), cB('base-suffix', `\n cursor: pointer;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n `, [cE('arrow', `\n color: var(--arrow-color);\n transition: color .3s var(--bezier);\n `)]), cB('base-render-dom', `\n white-space: nowrap;\n overflow: hidden;\n height: var(--height);\n line-height: var(--height);\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: var(--padding-single);\n transition: color .3s var(--bezier);\n `), cB('base-selection-placeholder', `\n color: var(--placeholder-color);\n `), cB('base-selection-tags', `\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n position: relative;\n z-index: auto;\n display: flex;\n padding: 3px 26px 0 14px;\n flex-wrap: wrap;\n align-items: center;\n width: 100%;\n vertical-align: bottom;\n background-color: var(--color);\n border-radius: inherit;\n transition:\n color .3s var(--bezier),\n box-shadow .3s var(--bezier),\n background-color .3s var(--bezier);\n `), cB('base-selection-label', `\n display: inline-block;\n width: 100%;\n vertical-align: bottom;\n cursor: pointer;\n outline: none;\n z-index: auto;\n box-sizing: border-box;\n position: relative;\n transition:\n color .3s var(--bezier),\n box-shadow .3s var(--bezier),\n background-color .3s var(--bezier);\n border-radius: inherit;\n background-color: var(--color);\n `, [cE('input', `\n line-height: inherit;\n outline: none;\n cursor: pointer;\n box-sizing: border-box;\n text-overflow: ellipsis;\n overflow: hidden;\n border:none;\n width: 100%;\n white-space: nowrap;\n padding: var(--padding-single);\n background-color: #0000;\n color: var(--text-color);\n transition: color .3s var(--bezier);\n caret-color: var(--caret-color);\n `), cE('render-label', `\n color: var(--text-color);\n `)]), cNotM('disabled', [c('&:hover', [cE('state-border', `\n box-shadow: var(--box-shadow-hover);\n border: var(--border-hover);\n `)]), cM('focus', [cE('state-border', `\n box-shadow: var(--box-shadow-focus);\n border: var(--border-focus);\n `)]), cM('active', [cE('state-border', `\n box-shadow: var(--box-shadow-active);\n border: var(--border-active);\n `), cB('base-selection-label', {\n backgroundColor: 'var(--color-active)'\n}), cB('base-selection-tags', {\n backgroundColor: 'var(--color-active)'\n})])]), cM('disabled', {\n cursor: 'not-allowed'\n}, [cE('arrow', `\n color: var(--arrow-color-disabled);\n `), cB('base-selection-label', `\n cursor: not-allowed;\n background-color: var(--color-disabled);\n `, [cE('input', `\n cursor: not-allowed;\n color: var(--text-color-disabled);\n `), cE('render-label', `\n color: var(--text-color-disabled);\n `)]), cB('base-selection-tags', `\n cursor: not-allowed;\n background-color: var(--color-disabled);\n `), cB('base-selection-placeholder', `\n cursor: not-allowed;\n color: var(--placeholder-color-disabled);\n `)]), cB('base-selection-input-tag', `\n height: calc(var(--height) - 6px);\n line-height: calc(var(--height) - 6px);\n outline: none;\n display: none;\n position: relative;\n margin-bottom: 3px;\n max-width: 100%;\n vertical-align: bottom;\n `, [cE('input', `\n min-width: 1px;\n padding: 0;\n background-color: #0000;\n outline: none;\n border: none;\n max-width: 100%;\n overflow: hidden;\n width: 1em;\n line-height: inherit;\n cursor: pointer;\n color: var(--text-color);\n caret-color: var(--caret-color);\n `), cE('mirror', `\n position: absolute;\n left: 0;\n top: 0;\n white-space: pre;\n visibility: hidden;\n user-select: none;\n opacity: 0;\n `)])]), cB('base-selection-popover', `\n margin-bottom: -3px;\n display: flex;\n flex-wrap: wrap;\n `), cB('base-selection-tag-wrapper', `\n max-width: 100%;\n display: inline-flex;\n padding: 0 7px 3px 0;\n `, [c('&:last-child', {\n paddingRight: 0\n}), cB('tag', `\n font-size: 14px;\n max-width: 100%;\n `, [cE('content', `\n text-overflow: ellipsis;\n overflow: hidden;\n `)])]), ['warning', 'error'].map(status => insideFormItem(status, cB('base-selection', [cE('state-border', {\n border: `var(--border-${status})`\n}), cNotM('disabled', [c('&:hover', [cE('state-border', `\n box-shadow: var(--box-shadow-hover-${status});\n border: var(--border-hover-${status});\n `)]), cM('active', [cE('state-border', `\n box-shadow: var(--box-shadow-active-${status});\n border: var(--border-active-${status});\n `), cB('base-selection-label', {\n backgroundColor: `var(--color-active-${status})`\n}), cB('base-selection-tags', {\n backgroundColor: `var(--box-shadow-active-${status})`\n})]), cM('focus', [cE('state-border', `\n box-shadow: var(--box-shadow-focus-${status});\n border: var(--border-focus-${status});\n `)])])])))]);","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, defineComponent, Fragment, ref, computed, watch, toRef, nextTick, watchEffect, onMounted } from 'vue';\nimport { VOverflow } from 'vueuc';\nimport { NPopover } from '../../../popover';\nimport { NTag } from '../../../tag';\nimport { useTheme } from '../../../_mixins';\nimport { createKey, getTitleAttribute, render } from '../../../_utils';\nimport Suffix from '../../suffix';\nimport { internalSelectionLight } from '../styles';\nimport style from './styles/index.cssr';\nexport default defineComponent({\n name: 'InternalSelection',\n props: Object.assign(Object.assign({}, useTheme.props), { clsPrefix: {\n type: String,\n required: true\n }, bordered: {\n type: Boolean,\n default: undefined\n }, active: Boolean, pattern: {\n type: String,\n default: null\n }, placeholder: String, selectedOption: {\n type: Object,\n default: null\n }, selectedOptions: {\n type: Array,\n default: null\n }, multiple: Boolean, filterable: Boolean, clearable: Boolean, disabled: Boolean, size: {\n type: String,\n default: 'medium'\n }, loading: Boolean, autofocus: Boolean, showArrow: {\n type: Boolean,\n default: true\n }, focused: Boolean, renderTag: Function, onKeyup: Function, onKeydown: Function, onClick: Function, onBlur: Function, onFocus: Function, onDeleteOption: Function, maxTagCount: [String, Number], onClear: Function, onPatternInput: Function, renderLabel: Function }),\n setup(props) {\n const patternInputMirrorRef = ref(null);\n const patternInputRef = ref(null);\n const selfRef = ref(null);\n const multipleElRef = ref(null);\n const singleElRef = ref(null);\n const patternInputWrapperRef = ref(null);\n const counterRef = ref(null);\n const counterWrapperRef = ref(null);\n const overflowRef = ref(null);\n const inputTagElRef = ref(null);\n const showTagsPopoverRef = ref(false);\n const patternInputFocusedRef = ref(false);\n const hoverRef = ref(false);\n const themeRef = useTheme('InternalSelection', 'InternalSelection', style, internalSelectionLight, props, toRef(props, 'clsPrefix'));\n const mergedClearableRef = computed(() => {\n return (props.clearable && !props.disabled && (hoverRef.value || props.active));\n });\n const filterablePlaceholderRef = computed(() => {\n return props.selectedOption\n ? props.renderLabel\n ? props.renderLabel(props.selectedOption, true)\n : render(props.selectedOption.label, props.selectedOption, true)\n : props.placeholder;\n });\n const labelRef = computed(() => {\n const option = props.selectedOption;\n if (!option)\n return undefined;\n return option.label;\n });\n const selectedRef = computed(() => {\n if (props.multiple) {\n return !!(Array.isArray(props.selectedOptions) && props.selectedOptions.length);\n }\n else {\n return props.selectedOption !== null;\n }\n });\n function syncMirrorWidth() {\n var _a;\n const { value: patternInputMirrorEl } = patternInputMirrorRef;\n if (patternInputMirrorEl) {\n const { value: patternInputEl } = patternInputRef;\n if (patternInputEl) {\n patternInputEl.style.width = `${patternInputMirrorEl.offsetWidth}px`;\n if (props.maxTagCount !== 'responsive') {\n (_a = overflowRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n }\n }\n }\n }\n function hideInputTag() {\n const { value: inputTagEl } = inputTagElRef;\n if (inputTagEl)\n inputTagEl.style.display = 'none';\n }\n function showInputTag() {\n const { value: inputTagEl } = inputTagElRef;\n if (inputTagEl)\n inputTagEl.style.display = 'inline-block';\n }\n watch(toRef(props, 'active'), (value) => {\n if (!value)\n hideInputTag();\n });\n watch(toRef(props, 'pattern'), () => {\n if (props.multiple) {\n void nextTick(syncMirrorWidth);\n }\n });\n function doFocus(e) {\n const { onFocus } = props;\n if (onFocus)\n onFocus(e);\n }\n function doBlur(e) {\n const { onBlur } = props;\n if (onBlur)\n onBlur(e);\n }\n function doDeleteOption(value) {\n const { onDeleteOption } = props;\n if (onDeleteOption)\n onDeleteOption(value);\n }\n function doClear(e) {\n const { onClear } = props;\n if (onClear)\n onClear(e);\n }\n function doPatternInput(value) {\n const { onPatternInput } = props;\n if (onPatternInput)\n onPatternInput(value);\n }\n function handleFocusin(e) {\n var _a;\n if (!e.relatedTarget ||\n !((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))) {\n doFocus(e);\n }\n }\n function handleFocusout(e) {\n var _a;\n if ((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))\n return;\n doBlur(e);\n }\n function handleClear(e) {\n doClear(e);\n }\n function handleMouseEnter() {\n hoverRef.value = true;\n }\n function handleMouseLeave() {\n hoverRef.value = false;\n }\n function handleMouseDown(e) {\n if (!props.active || !props.filterable)\n return;\n if (e.target === patternInputRef.value)\n return;\n e.preventDefault();\n }\n function handleDeleteOption(option) {\n doDeleteOption(option);\n }\n function handlePatternKeyDown(e) {\n if (e.code === 'Backspace') {\n if (!props.pattern.length) {\n const { selectedOptions } = props;\n if (selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.length) {\n handleDeleteOption(selectedOptions[selectedOptions.length - 1]);\n }\n }\n }\n }\n const isCompositingRef = ref(false);\n // the composition end is later than its input so we can cached the event\n // and return the input event\n let cachedInputEvent = null;\n function handlePatternInputInput(e) {\n // we should sync mirror width here\n const { value: patternInputMirrorEl } = patternInputMirrorRef;\n if (patternInputMirrorEl) {\n const inputText = e.target.value;\n patternInputMirrorEl.textContent = inputText;\n syncMirrorWidth();\n }\n if (!isCompositingRef.value) {\n doPatternInput(e);\n }\n else {\n cachedInputEvent = e;\n }\n }\n function handleCompositionStart() {\n isCompositingRef.value = true;\n }\n function handleCompositionEnd() {\n isCompositingRef.value = false;\n doPatternInput(cachedInputEvent);\n cachedInputEvent = null;\n }\n function handlePatternInputFocus() {\n patternInputFocusedRef.value = true;\n }\n function handlePatternInputBlur(e) {\n patternInputFocusedRef.value = false;\n }\n function focus() {\n if (props.filterable) {\n patternInputFocusedRef.value = false;\n const { value: patternInputWrapperEl } = patternInputWrapperRef;\n if (patternInputWrapperEl)\n patternInputWrapperEl.focus();\n }\n else if (props.multiple) {\n const { value: multipleEl } = multipleElRef;\n multipleEl === null || multipleEl === void 0 ? void 0 : multipleEl.focus();\n }\n else {\n const { value: singleEl } = singleElRef;\n singleEl === null || singleEl === void 0 ? void 0 : singleEl.focus();\n }\n }\n function focusInput() {\n const { value: patternInputEl } = patternInputRef;\n if (patternInputEl) {\n showInputTag();\n patternInputEl.focus();\n }\n }\n function blurInput() {\n const { value: patternInputEl } = patternInputRef;\n if (patternInputEl) {\n patternInputEl.blur();\n }\n }\n function updateCounter(count) {\n const { value } = counterRef;\n if (value) {\n value.setTextContent(`+${count}`);\n }\n }\n function getCounter() {\n const { value } = counterWrapperRef;\n return value;\n }\n function getTail() {\n return patternInputRef.value;\n }\n let enterTimerId = null;\n function clearEnterTimer() {\n if (enterTimerId !== null)\n window.clearTimeout(enterTimerId);\n }\n function handleMouseEnterCounter() {\n if (props.disabled || props.active)\n return;\n clearEnterTimer();\n enterTimerId = window.setTimeout(() => {\n showTagsPopoverRef.value = true;\n }, 100);\n }\n function handleMouseLeaveCounter() {\n clearEnterTimer();\n }\n function onPopoverUpdateShow(show) {\n if (!show) {\n clearEnterTimer();\n showTagsPopoverRef.value = false;\n }\n }\n onMounted(() => {\n watchEffect(() => {\n const patternInputWrapperEl = patternInputWrapperRef.value;\n if (!patternInputWrapperEl)\n return;\n patternInputWrapperEl.tabIndex =\n props.disabled || patternInputFocusedRef.value ? -1 : 0;\n });\n });\n return {\n mergedTheme: themeRef,\n mergedClearable: mergedClearableRef,\n patternInputFocused: patternInputFocusedRef,\n filterablePlaceholder: filterablePlaceholderRef,\n label: labelRef,\n selected: selectedRef,\n showTagsPanel: showTagsPopoverRef,\n isCompositing: isCompositingRef,\n // dom ref\n counterRef,\n counterWrapperRef,\n patternInputMirrorRef,\n patternInputRef,\n selfRef,\n multipleElRef,\n singleElRef,\n patternInputWrapperRef,\n overflowRef,\n inputTagElRef,\n handleMouseDown,\n handleFocusin,\n handleClear,\n handleMouseEnter,\n handleMouseLeave,\n handleDeleteOption,\n handlePatternKeyDown,\n handlePatternInputInput,\n handlePatternInputBlur,\n handlePatternInputFocus,\n handleMouseEnterCounter,\n handleMouseLeaveCounter,\n handleFocusout,\n handleCompositionEnd,\n handleCompositionStart,\n onPopoverUpdateShow,\n focus,\n focusInput,\n blurInput,\n updateCounter,\n getCounter,\n getTail,\n renderLabel: props.renderLabel,\n cssVars: computed(() => {\n const { size } = props;\n const { common: { cubicBezierEaseInOut }, self: { borderRadius, color, placeholderColor, textColor, paddingSingle, caretColor, colorDisabled, textColorDisabled, placeholderColorDisabled, colorActive, boxShadowFocus, boxShadowActive, boxShadowHover, border, borderFocus, borderHover, borderActive, arrowColor, arrowColorDisabled, loadingColor, \n // form warning\n colorActiveWarning, boxShadowFocusWarning, boxShadowActiveWarning, boxShadowHoverWarning, borderWarning, borderFocusWarning, borderHoverWarning, borderActiveWarning, \n // form error\n colorActiveError, boxShadowFocusError, boxShadowActiveError, boxShadowHoverError, borderError, borderFocusError, borderHoverError, borderActiveError, \n // clear\n clearColor, clearColorHover, clearColorPressed, clearSize, [createKey('height', size)]: height, [createKey('fontSize', size)]: fontSize } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--border': border,\n '--border-active': borderActive,\n '--border-focus': borderFocus,\n '--border-hover': borderHover,\n '--border-radius': borderRadius,\n '--box-shadow-active': boxShadowActive,\n '--box-shadow-focus': boxShadowFocus,\n '--box-shadow-hover': boxShadowHover,\n '--caret-color': caretColor,\n '--color': color,\n '--color-active': colorActive,\n '--color-disabled': colorDisabled,\n '--font-size': fontSize,\n '--height': height,\n '--padding-single': paddingSingle,\n '--placeholder-color': placeholderColor,\n '--placeholder-color-disabled': placeholderColorDisabled,\n '--text-color': textColor,\n '--text-color-disabled': textColorDisabled,\n '--arrow-color': arrowColor,\n '--arrow-color-disabled': arrowColorDisabled,\n '--loading-color': loadingColor,\n // form warning\n '--color-active-warning': colorActiveWarning,\n '--box-shadow-focus-warning': boxShadowFocusWarning,\n '--box-shadow-active-warning': boxShadowActiveWarning,\n '--box-shadow-hover-warning': boxShadowHoverWarning,\n '--border-warning': borderWarning,\n '--border-focus-warning': borderFocusWarning,\n '--border-hover-warning': borderHoverWarning,\n '--border-active-warning': borderActiveWarning,\n // form error\n '--color-active-error': colorActiveError,\n '--box-shadow-focus-error': boxShadowFocusError,\n '--box-shadow-active-error': boxShadowActiveError,\n '--box-shadow-hover-error': boxShadowHoverError,\n '--border-error': borderError,\n '--border-focus-error': borderFocusError,\n '--border-hover-error': borderHoverError,\n '--border-active-error': borderActiveError,\n // clear\n '--clear-size': clearSize,\n '--clear-color': clearColor,\n '--clear-color-hover': clearColorHover,\n '--clear-color-pressed': clearColorPressed\n };\n })\n };\n },\n render() {\n const { multiple, size, disabled, filterable, maxTagCount, bordered, clsPrefix, renderTag, renderLabel } = this;\n const maxTagCountResponsive = maxTagCount === 'responsive';\n const maxTagCountNumeric = typeof maxTagCount === 'number';\n const useMaxTagCount = maxTagCountResponsive || maxTagCountNumeric;\n const suffix = (h(Suffix, { clsPrefix: clsPrefix, loading: this.loading, showArrow: this.showArrow, showClear: this.mergedClearable && this.selected, onClear: this.handleClear }));\n let body;\n if (multiple) {\n const createTag = (option) => (h(\"div\", { class: `${clsPrefix}-base-selection-tag-wrapper`, key: option.value }, renderTag ? (renderTag({\n option,\n handleClose: () => this.handleDeleteOption(option)\n })) : (h(NTag, { size: size, closable: !option.disabled, disabled: disabled, internalStopClickPropagation: true, onClose: () => this.handleDeleteOption(option) }, {\n default: () => renderLabel\n ? renderLabel(option, true)\n : render(option.label, option, true)\n }))));\n const originalTags = (maxTagCountNumeric\n ? this.selectedOptions.slice(0, maxTagCount)\n : this.selectedOptions).map(createTag);\n const input = filterable ? (h(\"div\", { class: `${clsPrefix}-base-selection-input-tag`, ref: \"inputTagElRef\", key: \"__input-tag__\" },\n h(\"input\", { ref: \"patternInputRef\", tabindex: -1, disabled: disabled, value: this.pattern, autofocus: this.autofocus, class: `${clsPrefix}-base-selection-input-tag__input`, onBlur: this.handlePatternInputBlur, onFocus: this.handlePatternInputFocus, onKeydown: this.handlePatternKeyDown, onInput: this.handlePatternInputInput, onCompositionstart: this.handleCompositionStart, onCompositionend: this.handleCompositionEnd }),\n h(\"span\", { ref: \"patternInputMirrorRef\", class: `${clsPrefix}-base-selection-input-tag__mirror` }, this.pattern ? this.pattern : ''))) : null;\n // May Overflow\n const renderCounter = maxTagCountResponsive\n ? () => (h(\"div\", { class: `${clsPrefix}-base-selection-tag-wrapper`, ref: \"counterWrapperRef\" },\n h(NTag, { ref: \"counterRef\", onMouseenter: this.handleMouseEnterCounter, onMouseleave: this.handleMouseLeaveCounter, disabled: disabled })))\n : undefined;\n let counter;\n if (maxTagCountNumeric) {\n const rest = this.selectedOptions.length - maxTagCount;\n if (rest > 0) {\n counter = (h(\"div\", { class: `${clsPrefix}-base-selection-tag-wrapper`, key: \"__counter__\" },\n h(NTag, { ref: \"counterRef\", onMouseenter: this.handleMouseEnterCounter, disabled: disabled }, {\n default: () => `+${rest}`\n })));\n }\n }\n const tags = maxTagCountResponsive ? (filterable ? (h(VOverflow, { ref: \"overflowRef\", updateCounter: this.updateCounter, getCounter: this.getCounter, getTail: this.getTail, style: {\n width: '100%',\n display: 'flex',\n overflow: 'hidden'\n } }, {\n default: () => originalTags,\n counter: renderCounter,\n tail: () => input\n })) : (h(VOverflow, { ref: \"overflowRef\", updateCounter: this.updateCounter, getCounter: this.getCounter, style: {\n width: '100%',\n display: 'flex',\n overflow: 'hidden'\n } }, {\n default: () => originalTags,\n counter: renderCounter\n }))) : maxTagCountNumeric ? (originalTags.concat(counter)) : (originalTags);\n const renderPopover = useMaxTagCount\n ? () => (h(\"div\", { class: `${clsPrefix}-base-selection-popover` }, maxTagCountResponsive\n ? originalTags\n : this.selectedOptions.map(createTag)))\n : undefined;\n const popoverProps = useMaxTagCount\n ? {\n show: this.showTagsPanel,\n trigger: 'hover',\n overlap: true,\n placement: 'top',\n width: 'trigger',\n onUpdateShow: this.onPopoverUpdateShow,\n theme: this.mergedTheme.peers.Popover,\n themeOverrides: this.mergedTheme.peerOverrides.Popover\n }\n : null;\n const placeholder = !this.selected && !this.pattern && !this.isCompositing ? (h(\"div\", { class: `${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-render-dom` }, this.placeholder)) : null;\n if (filterable) {\n const popoverTrigger = (h(\"div\", { ref: \"patternInputWrapperRef\", class: `${clsPrefix}-base-selection-tags` },\n tags,\n maxTagCountResponsive ? null : input,\n suffix));\n body = (h(Fragment, null,\n useMaxTagCount ? (h(NPopover, Object.assign({}, popoverProps), {\n trigger: () => popoverTrigger,\n default: renderPopover\n })) : (popoverTrigger),\n placeholder));\n }\n else {\n const popoverTrigger = (h(\"div\", { ref: \"multipleElRef\", class: `${clsPrefix}-base-selection-tags`, tabindex: disabled ? undefined : 0 },\n tags,\n suffix));\n body = (h(Fragment, null,\n useMaxTagCount ? (h(NPopover, Object.assign({}, popoverProps), {\n trigger: () => popoverTrigger,\n default: renderPopover\n })) : (popoverTrigger),\n placeholder));\n }\n }\n else {\n if (filterable) {\n const showPlaceholder = !this.pattern &&\n (this.active || !this.selected) &&\n !this.isCompositing;\n body = (h(\"div\", { ref: \"patternInputWrapperRef\", class: `${clsPrefix}-base-selection-label` },\n h(\"input\", { ref: \"patternInputRef\", class: `${clsPrefix}-base-selection-label__input`, value: this.patternInputFocused && this.active ? this.pattern : '', placeholder: \"\", readonly: disabled, disabled: disabled, tabindex: -1, autofocus: this.autofocus, onFocus: this.handlePatternInputFocus, onBlur: this.handlePatternInputBlur, onInput: this.handlePatternInputInput, onCompositionstart: this.handleCompositionStart, onCompositionend: this.handleCompositionEnd }),\n showPlaceholder ? null : this.patternInputFocused &&\n this.active ? null : (h(\"div\", { class: `${clsPrefix}-base-selection-label__render-label ${clsPrefix}-base-render-dom`, key: \"input\" }, renderLabel\n ? renderLabel(this.selectedOption, true)\n : render(this.label, this.selectedOption, true))),\n showPlaceholder ? (h(\"div\", { class: `${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-render-dom`, key: \"placeholder\" }, this.filterablePlaceholder)) : null,\n suffix));\n }\n else {\n body = (h(\"div\", { ref: \"singleElRef\", class: `${clsPrefix}-base-selection-label`, tabindex: this.disabled ? undefined : 0 },\n this.label !== undefined ? (h(\"div\", { class: `${clsPrefix}-base-selection-label__input`, title: getTitleAttribute(this.label), key: \"input\" }, renderLabel\n ? renderLabel(this.selectedOption, true)\n : render(this.label, this.selectedOption, true))) : (h(\"div\", { class: `${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-render-dom`, key: \"placeholder\" }, this.placeholder)),\n suffix));\n }\n }\n return (h(\"div\", { ref: \"selfRef\", class: [\n `${clsPrefix}-base-selection`,\n {\n [`${clsPrefix}-base-selection--active`]: this.active,\n [`${clsPrefix}-base-selection--selected`]: this.selected || (this.active && this.pattern),\n [`${clsPrefix}-base-selection--disabled`]: this.disabled,\n [`${clsPrefix}-base-selection--multiple`]: this.multiple,\n // focus is not controlled by selection itself since it always need\n // to be managed together with menu. provide :focus style will cause\n // many redundant codes.\n [`${clsPrefix}-base-selection--focus`]: this.focused\n }\n ], style: this.cssVars, onClick: this.onClick, onMouseenter: this.handleMouseEnter, onMouseleave: this.handleMouseLeave, onKeyup: this.onKeyup, onKeydown: this.onKeydown, onFocusin: this.handleFocusin, onFocusout: this.handleFocusout, onMousedown: this.handleMouseDown },\n body,\n bordered ? (h(\"div\", { class: `${clsPrefix}-base-selection__border` })) : null,\n bordered ? (h(\"div\", { class: `${clsPrefix}-base-selection__state-border` })) : null));\n }\n});\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'Checkmark',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"path\", { d: \"M13.8639 3.65609C14.0533 3.85704 14.0439 4.17348 13.8429 4.36288L5.91309 11.8368C5.67573 12.0605 5.30311 12.0536 5.07417 11.8213L2.39384 9.10093C2.20003 8.90422 2.20237 8.58765 2.39907 8.39384C2.59578 8.20003 2.91235 8.20237 3.10616 8.39908L5.51192 10.8407L13.1571 3.63517C13.358 3.44577 13.6745 3.45513 13.8639 3.65609Z\", fill: \"currentColor\" })));\n }\n});\n","import { h, inject, defineComponent, Transition } from 'vue';\nimport { useMemo } from 'vooks';\nimport { CheckmarkIcon } from '../../icons';\nimport NBaseIcon from '../../icon';\nimport { render } from '../../../_utils';\nimport { internalSelectionMenuInjectionKey } from './interface';\nconst checkMarkIcon = h(CheckmarkIcon);\nfunction renderCheckMark(show, clsPrefix) {\n return (h(Transition, { name: \"fade-in-scale-up-transition\" }, {\n default: () => show ? (h(NBaseIcon, { clsPrefix: clsPrefix, class: `${clsPrefix}-base-select-option__check` }, {\n default: () => checkMarkIcon\n })) : null\n }));\n}\nexport default defineComponent({\n name: 'NBaseSelectOption',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n tmNode: {\n type: Object,\n required: true\n }\n },\n setup(props) {\n const { valueRef, pendingTmNodeRef, multipleRef, valueSetRef, renderLabelRef, renderOptionRef, handleOptionClick, handleOptionMouseEnter\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(internalSelectionMenuInjectionKey);\n const isPendingRef = useMemo(() => {\n const { value: pendingTmNode } = pendingTmNodeRef;\n if (!pendingTmNode)\n return false;\n return props.tmNode.key === pendingTmNode.key;\n });\n function handleClick(e) {\n const { tmNode } = props;\n if (tmNode.disabled)\n return;\n handleOptionClick(e, tmNode);\n }\n function handleMouseEnter(e) {\n const { tmNode } = props;\n if (tmNode.disabled)\n return;\n handleOptionMouseEnter(e, tmNode);\n }\n function handleMouseMove(e) {\n const { tmNode } = props;\n const { value: isPending } = isPendingRef;\n if (tmNode.disabled || isPending)\n return;\n handleOptionMouseEnter(e, tmNode);\n }\n return {\n multiple: multipleRef,\n isGrouped: useMemo(() => {\n const { tmNode } = props;\n const { parent } = tmNode;\n return parent && parent.rawNode.type === 'group';\n }),\n isPending: isPendingRef,\n isSelected: useMemo(() => {\n const { value } = valueRef;\n const { value: multiple } = multipleRef;\n if (value === null)\n return false;\n const optionValue = props.tmNode.rawNode.value;\n if (multiple) {\n const { value: valueSet } = valueSetRef;\n return valueSet.has(optionValue);\n }\n else {\n return value === optionValue;\n }\n }),\n renderLabel: renderLabelRef,\n renderOption: renderOptionRef,\n handleMouseMove,\n handleMouseEnter,\n handleClick\n };\n },\n render() {\n const { clsPrefix, tmNode: { rawNode }, isSelected, isPending, isGrouped, multiple, renderOption, renderLabel, handleClick, handleMouseEnter, handleMouseMove } = this;\n const showCheckMark = multiple && isSelected;\n const checkmark = renderCheckMark(showCheckMark, clsPrefix);\n const children = renderLabel\n ? [renderLabel(rawNode, isSelected), checkmark]\n : [render(rawNode.label, rawNode, isSelected), checkmark];\n const node = (h(\"div\", { class: [\n `${clsPrefix}-base-select-option`,\n rawNode.class,\n {\n [`${clsPrefix}-base-select-option--disabled`]: rawNode.disabled,\n [`${clsPrefix}-base-select-option--selected`]: isSelected,\n [`${clsPrefix}-base-select-option--grouped`]: isGrouped,\n [`${clsPrefix}-base-select-option--pending`]: isPending\n }\n ], style: rawNode.style, onClick: handleClick, onMouseenter: handleMouseEnter, onMousemove: handleMouseMove }, children));\n return rawNode.render\n ? rawNode.render({ node, option: rawNode, selected: isSelected })\n : renderOption\n ? renderOption({ node, option: rawNode, selected: isSelected })\n : node;\n }\n});\n","import { h, defineComponent, inject } from 'vue';\nimport { render } from '../../../_utils';\nimport { internalSelectionMenuInjectionKey } from './interface';\nexport default defineComponent({\n name: 'NBaseSelectGroupHeader',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n tmNode: {\n type: Object,\n required: true\n }\n },\n setup() {\n const { renderLabelRef, renderOptionRef\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(internalSelectionMenuInjectionKey);\n return {\n renderLabel: renderLabelRef,\n renderOption: renderOptionRef\n };\n },\n render() {\n const { clsPrefix, renderLabel, renderOption, tmNode: { rawNode } } = this;\n const children = renderLabel\n ? renderLabel(rawNode, false)\n : render(rawNode.label, rawNode, false);\n const node = (h(\"div\", { class: `${clsPrefix}-base-select-group-header` }, children));\n return rawNode.render\n ? rawNode.render({ node, option: rawNode })\n : renderOption\n ? renderOption({ node, option: rawNode, selected: false })\n : node;\n }\n});\n","import { c, cB, cE, cM, cNotM } from '../../../../_utils/cssr';\nimport fadeInScaleUpTransition from '../../../../_styles/transitions/fade-in-scale-up.cssr'; // --loading-color\n// --loading-size\n\nexport default cB('base-select-menu', `\n outline: none;\n z-index: 0;\n position: relative;\n border-radius: var(--border-radius);\n transition:\n background-color .3s var(--bezier),\n box-shadow .3s var(--bezier);\n background-color: var(--color);\n`, [cB('scrollbar', `\n max-height: var(--height);\n `), cB('virtual-list', `\n max-height: var(--height);\n `), cB('base-select-option', `\n height: var(--option-height);\n line-height: var(--option-height);\n font-size: var(--option-font-size);\n `), cB('base-select-group-header', `\n height: var(--option-height);\n line-height: var(--option-height);\n font-size: .93em;\n `), cB('base-select-menu-option-wrapper', `\n position: relative;\n width: 100%;\n `), cE('loading, empty', `\n display: flex;\n padding: 12px 32px;\n flex: 1;\n justify-content: center;\n `), cE('loading', `\n color: var(--loading-color);\n font-size: var(--loading-size);\n `), cE('action', `\n padding: 8px var(--option-padding-left);\n font-size: var(--option-font-size);\n transition: \n color .3s var(--bezier);\n border-color .3s var(--bezier);\n border-top: 1px solid var(--action-divider-color);\n color: var(--action-text-color);\n `), cB('base-select-group-header', `\n position: relative;\n cursor: default;\n padding: var(--option-padding);\n color: var(--group-header-text-color);\n `), cB('base-select-option', `\n cursor: pointer;\n position: relative;\n padding: var(--option-padding);\n white-space: nowrap;\n transition:\n background-color .3s var(--bezier),\n color .3s var(--bezier),\n opacity .3s var(--bezier);\n text-overflow: ellipsis;\n overflow: hidden;\n box-sizing: border-box;\n color: var(--option-text-color);\n opacity: 1;\n `, [c('&:active', {\n color: 'var(--option-text-color-pressed)'\n}), cM('grouped', {\n paddingLeft: 'calc(var(--option-padding-left) * 1.5)'\n}), cM('selected', {\n color: 'var(--option-text-color-active)'\n}), cM('disabled', {\n cursor: 'not-allowed'\n}, [cNotM('selected', {\n color: 'var(--option-text-color-disabled)'\n}), cM('selected', {\n opacity: 'var(--option-opacity-disabled)'\n})]), cM('pending', {\n backgroundColor: 'var(--option-color-pending)'\n}), cE('check', `\n font-size: 14px;\n position: absolute;\n right: 8px;\n top: calc(var(--option-height) / 2 - 7px);\n color: var(--option-check-color);\n transition: color .3s var(--bezier);\n `, [fadeInScaleUpTransition({\n enterScale: '0.5'\n})])]), cM('multiple', [cB('base-select-option', `\n position: relative;\n padding-right: 28px;\n `)])]);","import { h, ref, onMounted, computed, defineComponent, watch, toRef, renderSlot, provide, nextTick, watchEffect } from 'vue';\nimport { createIndexGetter } from 'treemate';\nimport { VirtualList } from 'vueuc';\nimport { depx, getPadding, happensIn } from 'seemly';\nimport { NEmpty } from '../../../empty';\nimport { NScrollbar } from '../../../scrollbar';\nimport { formatLength } from '../../../_utils';\nimport { createKey } from '../../../_utils/cssr';\nimport { useTheme } from '../../../_mixins';\nimport NInternalLoading from '../../loading';\nimport NFocusDetector from '../../focus-detector';\nimport NSelectOption from './SelectOption';\nimport NSelectGroupHeader from './SelectGroupHeader';\nimport style from './styles/index.cssr';\nimport { internalSelectMenuLight } from '../styles';\nimport { internalSelectionMenuInjectionKey, internalSelectionMenuBodyInjectionKey } from './interface';\nexport default defineComponent({\n name: 'InternalSelectMenu',\n props: Object.assign(Object.assign({}, useTheme.props), { clsPrefix: {\n type: String,\n required: true\n }, scrollable: {\n type: Boolean,\n default: true\n }, treeMate: {\n type: Object,\n required: true\n }, multiple: Boolean, size: {\n type: String,\n default: 'medium'\n }, value: {\n type: [String, Number, Array],\n default: null\n }, width: [Number, String], autoPending: Boolean, virtualScroll: {\n type: Boolean,\n default: true\n }, \n // show is used to toggle pending state initialization\n show: {\n type: Boolean,\n default: true\n }, loading: Boolean, focusable: Boolean, renderLabel: Function, renderOption: Function, onMousedown: Function, onScroll: Function, onFocus: Function, onBlur: Function, onKeyup: Function, onKeydown: Function, onTabOut: Function, onMouseenter: Function, onMouseleave: Function, \n // deprecated\n onToggle: Function }),\n setup(props) {\n const themeRef = useTheme('InternalSelectMenu', 'InternalSelectMenu', style, internalSelectMenuLight, props, toRef(props, 'clsPrefix'));\n const selfRef = ref(null);\n const virtualListRef = ref(null);\n const scrollbarRef = ref(null);\n const flattenedNodesRef = computed(() => props.treeMate.getFlattenedNodes());\n const fIndexGetterRef = computed(() => createIndexGetter(flattenedNodesRef.value));\n const pendingNodeRef = ref(null);\n function initPendingNode() {\n const { treeMate } = props;\n setPendingTmNode(props.autoPending\n ? props.value === null\n ? treeMate.getFirstAvailableNode()\n : props.multiple\n ? treeMate.getNode((props.value || [])[(props.value || [])\n .length - 1]) || treeMate.getFirstAvailableNode()\n : treeMate.getNode(props.value) ||\n treeMate.getFirstAvailableNode()\n : null);\n }\n initPendingNode();\n onMounted(() => {\n watchEffect(() => {\n if (props.show) {\n initPendingNode();\n void nextTick(scrollToPendingNode);\n }\n });\n });\n const itemSizeRef = computed(() => {\n return depx(themeRef.value.self[createKey('optionHeight', props.size)]);\n });\n const paddingRef = computed(() => {\n return getPadding(themeRef.value.self[createKey('padding', props.size)]);\n });\n const valueSetRef = computed(() => {\n if (props.multiple && Array.isArray(props.value)) {\n return new Set(props.value);\n }\n return new Set();\n });\n const emptyRef = computed(() => {\n const tmNodes = flattenedNodesRef.value;\n return tmNodes && tmNodes.length === 0;\n });\n const styleRef = computed(() => {\n return [{ width: formatLength(props.width) }, cssVarsRef.value];\n });\n watch(toRef(props, 'treeMate'), () => {\n if (props.autoPending) {\n const tmNode = props.treeMate.getFirstAvailableNode();\n setPendingTmNode(tmNode);\n }\n else {\n setPendingTmNode(null);\n }\n });\n function doToggle(tmNode) {\n const { onToggle } = props;\n if (onToggle)\n onToggle(tmNode);\n }\n function doScroll(e) {\n const { onScroll } = props;\n if (onScroll)\n onScroll(e);\n }\n // required, scroller sync need to be triggered manually\n function handleVirtualListScroll(e) {\n var _a;\n (_a = scrollbarRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n doScroll(e);\n }\n function handleVirtualListResize() {\n var _a;\n (_a = scrollbarRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n }\n function getPendingTmNode() {\n const { value: pendingTmNode } = pendingNodeRef;\n if (pendingTmNode)\n return pendingTmNode;\n return null;\n }\n function handleOptionMouseEnter(e, tmNode) {\n if (tmNode.disabled)\n return;\n setPendingTmNode(tmNode, false);\n }\n function handleOptionClick(e, tmNode) {\n if (tmNode.disabled)\n return;\n doToggle(tmNode);\n }\n // keyboard related methods\n function handleKeyUp(e) {\n var _a;\n if (happensIn(e, 'action'))\n return;\n (_a = props.onKeyup) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handleKeyDown(e) {\n var _a;\n if (happensIn(e, 'action'))\n return;\n (_a = props.onKeydown) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handleMouseDown(e) {\n var _a;\n (_a = props.onMousedown) === null || _a === void 0 ? void 0 : _a.call(props, e);\n if (props.focusable)\n return;\n e.preventDefault();\n }\n function next() {\n const { value: pendingTmNode } = pendingNodeRef;\n if (pendingTmNode) {\n setPendingTmNode(pendingTmNode.getNext({ loop: true }), true);\n }\n }\n function prev() {\n const { value: pendingTmNode } = pendingNodeRef;\n if (pendingTmNode) {\n setPendingTmNode(pendingTmNode.getPrev({ loop: true }), true);\n }\n }\n function setPendingTmNode(tmNode, doScroll = false) {\n pendingNodeRef.value = tmNode;\n if (doScroll)\n scrollToPendingNode();\n }\n function scrollToPendingNode() {\n var _a, _b;\n const tmNode = pendingNodeRef.value;\n if (!tmNode)\n return;\n const fIndex = fIndexGetterRef.value(tmNode.key);\n if (fIndex === null)\n return;\n if (props.virtualScroll) {\n (_a = virtualListRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo({ index: fIndex });\n }\n else {\n (_b = scrollbarRef.value) === null || _b === void 0 ? void 0 : _b.scrollTo({\n index: fIndex,\n elSize: itemSizeRef.value\n });\n }\n }\n function handleFocusin(e) {\n var _a, _b;\n if ((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {\n (_b = props.onFocus) === null || _b === void 0 ? void 0 : _b.call(props, e);\n }\n }\n function handleFocusout(e) {\n var _a, _b;\n if (!((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))) {\n (_b = props.onBlur) === null || _b === void 0 ? void 0 : _b.call(props, e);\n }\n }\n provide(internalSelectionMenuInjectionKey, {\n handleOptionMouseEnter,\n handleOptionClick,\n valueSetRef,\n multipleRef: toRef(props, 'multiple'),\n valueRef: toRef(props, 'value'),\n renderLabelRef: toRef(props, 'renderLabel'),\n renderOptionRef: toRef(props, 'renderOption'),\n pendingTmNodeRef: pendingNodeRef\n });\n provide(internalSelectionMenuBodyInjectionKey, selfRef);\n onMounted(() => {\n const { value } = scrollbarRef;\n if (value)\n value.sync();\n });\n const cssVarsRef = computed(() => {\n const { size } = props;\n const { common: { cubicBezierEaseInOut }, self: { height, borderRadius, color, groupHeaderTextColor, actionDividerColor, optionTextColorPressed, optionTextColor, optionTextColorDisabled, optionTextColorActive, optionOpacityDisabled, optionCheckColor, actionTextColor, optionColorPending, loadingColor, loadingSize, [createKey('optionFontSize', size)]: fontSize, [createKey('optionHeight', size)]: optionHeight, [createKey('optionPadding', size)]: optionPadding } } = themeRef.value;\n return {\n '--height': height,\n '--action-divider-color': actionDividerColor,\n '--action-text-color': actionTextColor,\n '--bezier': cubicBezierEaseInOut,\n '--border-radius': borderRadius,\n '--color': color,\n '--option-font-size': fontSize,\n '--group-header-text-color': groupHeaderTextColor,\n '--option-check-color': optionCheckColor,\n '--option-color-pending': optionColorPending,\n '--option-height': optionHeight,\n '--option-opacity-disabled': optionOpacityDisabled,\n '--option-text-color': optionTextColor,\n '--option-text-color-active': optionTextColorActive,\n '--option-text-color-disabled': optionTextColorDisabled,\n '--option-text-color-pressed': optionTextColorPressed,\n '--option-padding': optionPadding,\n '--option-padding-left': getPadding(optionPadding, 'left'),\n '--loading-color': loadingColor,\n '--loading-size': loadingSize\n };\n });\n const exposedProps = {\n selfRef,\n next,\n prev,\n getPendingTmNode\n };\n return Object.assign({ virtualListRef,\n scrollbarRef, style: styleRef, itemSize: itemSizeRef, padding: paddingRef, flattenedNodes: flattenedNodesRef, empty: emptyRef, virtualListContainer() {\n const { value } = virtualListRef;\n return value === null || value === void 0 ? void 0 : value.listElRef;\n },\n virtualListContent() {\n const { value } = virtualListRef;\n return value === null || value === void 0 ? void 0 : value.itemsElRef;\n },\n doScroll,\n handleFocusin,\n handleFocusout,\n handleKeyUp,\n handleKeyDown,\n handleMouseDown,\n handleVirtualListResize,\n handleVirtualListScroll }, exposedProps);\n },\n render() {\n const { $slots, virtualScroll, clsPrefix } = this;\n return (h(\"div\", { ref: \"selfRef\", tabindex: this.focusable ? 0 : -1, class: [\n `${clsPrefix}-base-select-menu`,\n this.multiple && `${clsPrefix}-base-select-menu--multiple`\n ], style: this.style, onFocusin: this.handleFocusin, onFocusout: this.handleFocusout, onKeyup: this.handleKeyUp, onKeydown: this.handleKeyDown, onMousedown: this.handleMouseDown, onMouseenter: this.onMouseenter, onMouseleave: this.onMouseleave },\n this.loading ? (h(\"div\", { class: `${clsPrefix}-base-select-menu__loading` },\n h(NInternalLoading, { clsPrefix: clsPrefix, strokeWidth: 20 }))) : !this.empty ? (h(NScrollbar, { ref: \"scrollbarRef\", scrollable: this.scrollable, container: virtualScroll ? this.virtualListContainer : undefined, content: virtualScroll ? this.virtualListContent : undefined, onScroll: virtualScroll ? undefined : this.doScroll }, {\n default: () => {\n return virtualScroll ? (h(VirtualList, { ref: \"virtualListRef\", class: `${clsPrefix}-virtual-list`, items: this.flattenedNodes, itemSize: this.itemSize, showScrollbar: false, paddingTop: this.padding.top, paddingBottom: this.padding.bottom, onResize: this.handleVirtualListResize, onScroll: this.handleVirtualListScroll }, {\n default: ({ item: tmNode }) => {\n return tmNode.isGroup ? (h(NSelectGroupHeader, { key: tmNode.key, clsPrefix: clsPrefix, tmNode: tmNode })) : tmNode.ignored ? null : (h(NSelectOption, { clsPrefix: clsPrefix, key: tmNode.key, tmNode: tmNode }));\n }\n })) : (h(\"div\", { class: `${clsPrefix}-base-select-menu-option-wrapper`, style: {\n paddingTop: this.padding.top,\n paddingBottom: this.padding.bottom\n } }, this.flattenedNodes.map((tmNode) => tmNode.isGroup ? (h(NSelectGroupHeader, { key: tmNode.key, clsPrefix: clsPrefix, tmNode: tmNode })) : (h(NSelectOption, { clsPrefix: clsPrefix, key: tmNode.key, tmNode: tmNode })))));\n }\n })) : (h(\"div\", { class: `${clsPrefix}-base-select-menu__empty` }, renderSlot($slots, 'empty', undefined, () => [h(NEmpty, null)]))),\n $slots.action && (h(\"div\", { class: `${clsPrefix}-base-select-menu__action`, \"data-action\": true }, renderSlot($slots, 'action'))),\n $slots.action && h(NFocusDetector, { onFocus: this.onTabOut })));\n }\n});\n","export function getKey(option) {\n if (getIsGroup(option)) {\n return (option.name ||\n option.key ||\n 'key-required');\n }\n return option.value;\n}\nexport function getIsGroup(option) {\n return option.type === 'group';\n}\nexport function getIgnored(option) {\n return option.type === 'ignored';\n}\nexport const tmOptions = {\n getKey,\n getIsGroup,\n getIgnored\n};\nexport function patternMatched(pattern, value) {\n try {\n return !!(1 + value.toString().toLowerCase().indexOf(pattern.trim().toLowerCase()));\n }\n catch (err) {\n return false;\n }\n}\nexport function filterOptions(originalOpts, filter, pattern) {\n if (!filter)\n return originalOpts;\n function traverse(options) {\n if (!Array.isArray(options))\n return [];\n const filteredOptions = [];\n for (const option of options) {\n if (getIsGroup(option)) {\n const children = traverse(option.children);\n if (children.length) {\n filteredOptions.push(Object.assign({}, option, {\n children\n }));\n }\n }\n else if (getIgnored(option)) {\n continue;\n }\n else if (filter(pattern, option)) {\n filteredOptions.push(option);\n }\n }\n return filteredOptions;\n }\n return traverse(originalOpts);\n}\nexport function createValOptMap(options) {\n const valOptMap = new Map();\n options.forEach((option) => {\n if (getIsGroup(option)) {\n ;\n option.children.forEach((SelectGroupOption) => {\n valOptMap.set(SelectGroupOption.value, SelectGroupOption);\n });\n }\n else {\n valOptMap.set(option.value, option);\n }\n });\n return valOptMap;\n}\nexport function defaultFilter(pattern, option) {\n if (!option)\n return false;\n if (typeof option.label === 'string') {\n return patternMatched(pattern, option.label);\n }\n else if (option.value !== undefined) {\n return patternMatched(pattern, String(option.value));\n }\n return false;\n}\n","import { cB, c } from '../../../_utils/cssr';\nimport fadeInScaleUpTransition from '../../../_styles/transitions/fade-in-scale-up.cssr'; // --menu-box-shadow\n\nexport default c([cB('select', `\n z-index: auto;\n outline: none;\n width: 100%;\n position: relative;\n `), cB('select-menu', `\n margin: 4px 0;\n box-shadow: var(--menu-box-shadow);\n `, [fadeInScaleUpTransition()])]);","import { h, ref, computed, toRef, defineComponent, nextTick, watch, Transition, withDirectives, vShow } from 'vue';\nimport { happensIn } from 'seemly';\nimport { createTreeMate } from 'treemate';\nimport { VBinder, VFollower, VTarget } from 'vueuc';\nimport { useIsMounted, useMergedState, useCompitable } from 'vooks';\nimport { clickoutside } from 'vdirs';\nimport { useTheme, useConfig, useLocale, useFormItem } from '../../_mixins';\nimport { warn, call, useAdjustedTo } from '../../_utils';\nimport { NInternalSelectMenu, NInternalSelection } from '../../_internal';\nimport { selectLight } from '../styles';\nimport { tmOptions, createValOptMap, filterOptions, defaultFilter } from './utils';\nimport style from './styles/index.cssr';\nconst selectProps = Object.assign(Object.assign({}, useTheme.props), { to: useAdjustedTo.propTo, bordered: {\n type: Boolean,\n default: undefined\n }, clearable: Boolean, options: {\n type: Array,\n default: () => []\n }, defaultValue: {\n type: [String, Number, Array],\n default: null\n }, value: [String, Number, Array], placeholder: String, multiple: Boolean, size: String, filterable: Boolean, disabled: {\n type: Boolean,\n default: undefined\n }, remote: Boolean, loading: Boolean, filter: {\n type: Function,\n default: defaultFilter\n }, placement: {\n type: String,\n default: 'bottom-start'\n }, widthMode: {\n type: String,\n default: 'trigger'\n }, tag: Boolean, onCreate: {\n type: Function,\n default: (label) => ({\n label: label,\n value: label\n })\n }, fallbackOption: {\n type: [Function, Boolean],\n default: () => (value) => ({\n label: String(value),\n value\n })\n }, show: {\n type: Boolean,\n default: undefined\n }, showArrow: {\n type: Boolean,\n default: true\n }, maxTagCount: [Number, String], consistentMenuWidth: {\n type: Boolean,\n default: true\n }, virtualScroll: {\n type: Boolean,\n default: true\n }, renderLabel: Function, renderOption: Function, renderTag: Function, 'onUpdate:value': [Function, Array], \n // for jsx\n onUpdateValue: [Function, Array], onBlur: [Function, Array], onClear: [Function, Array], onFocus: [Function, Array], onScroll: [Function, Array], onSearch: [Function, Array], \n /** deprecated */\n onChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('select', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n return true;\n },\n default: undefined\n }, items: {\n type: Array,\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('select', '`items` is deprecated, please use `options` instead.');\n }\n return true;\n },\n default: undefined\n }, displayDirective: {\n type: String,\n default: 'show'\n } });\nexport default defineComponent({\n name: 'Select',\n props: selectProps,\n setup(props) {\n const { mergedClsPrefixRef, mergedBorderedRef, namespaceRef } = useConfig(props);\n const themeRef = useTheme('Select', 'Select', style, selectLight, props, mergedClsPrefixRef);\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const focusedRef = ref(false);\n const patternRef = ref('');\n const treeMateRef = computed(() => createTreeMate(filteredOptionsRef.value, tmOptions));\n const valOptMapRef = computed(() => createValOptMap(props.options));\n const uncontrolledShowRef = ref(false);\n const mergedShowRef = useMergedState(toRef(props, 'show'), uncontrolledShowRef);\n const triggerRef = ref(null);\n const followerRef = ref(null);\n const menuRef = ref(null);\n const { localeRef } = useLocale('Select');\n const localizedPlaceholderRef = computed(() => {\n var _a;\n return (_a = props.placeholder) !== null && _a !== void 0 ? _a : localeRef.value.placeholder;\n });\n const compitableOptionsRef = useCompitable(props, ['items', 'options']);\n const createdOptionsRef = ref([]);\n const beingCreatedOptionsRef = ref([]);\n const memoValOptMapRef = ref(new Map());\n const wrappedFallbackOptionRef = computed(() => {\n const { fallbackOption } = props;\n if (!fallbackOption)\n return false;\n return (value) => {\n return Object.assign(fallbackOption(value), {\n value\n });\n };\n });\n const localOptionsRef = computed(() => {\n return beingCreatedOptionsRef.value.concat(createdOptionsRef.value).concat(compitableOptionsRef.value);\n });\n const filteredOptionsRef = computed(() => {\n if (props.remote) {\n return compitableOptionsRef.value;\n }\n else {\n const { value: localOptions } = localOptionsRef;\n const { value: pattern } = patternRef;\n if (!pattern.length || !props.filterable) {\n return localOptions;\n }\n else {\n const { filter } = props;\n return filterOptions(localOptions, filter, pattern);\n }\n }\n });\n const selectedOptionsRef = computed(() => {\n if (props.multiple) {\n const { value: values } = mergedValueRef;\n if (!Array.isArray(values))\n return [];\n const remote = props.remote;\n const { value: memoValOptMap } = memoValOptMapRef;\n const { value: valOptMap } = valOptMapRef;\n const { value: wrappedFallbackOption } = wrappedFallbackOptionRef;\n const options = [];\n values.forEach((value) => {\n if (valOptMap.has(value)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.push(valOptMap.get(value));\n }\n else if (remote && memoValOptMap.has(value)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.push(memoValOptMap.get(value));\n }\n else if (wrappedFallbackOption) {\n const option = wrappedFallbackOption(value);\n if (option) {\n options.push(option);\n }\n }\n });\n return options;\n }\n return null;\n });\n const selectedOptionRef = computed(() => {\n const { value: mergedValue } = mergedValueRef;\n if (!props.multiple && !Array.isArray(mergedValue)) {\n const { value: valOptMap } = valOptMapRef;\n const { value: wrappedFallbackOption } = wrappedFallbackOptionRef;\n if (mergedValue === null)\n return null;\n let selectedOption = null;\n if (valOptMap.has(mergedValue)) {\n selectedOption = valOptMap.get(mergedValue);\n }\n else if (props.remote) {\n selectedOption = memoValOptMapRef.value.get(mergedValue);\n }\n return (selectedOption ||\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n (wrappedFallbackOption && wrappedFallbackOption(mergedValue)) ||\n null);\n }\n return null;\n });\n const formItem = useFormItem(props);\n const { mergedSizeRef, mergedDisabledRef } = formItem;\n function doUpdateValue(value) {\n const { onChange, 'onUpdate:value': _onUpdateValue, onUpdateValue } = props;\n const { nTriggerFormChange, nTriggerFormInput } = formItem;\n if (onChange)\n call(onChange, value);\n if (onUpdateValue)\n call(onUpdateValue, value);\n if (_onUpdateValue)\n call(_onUpdateValue, value);\n uncontrolledValueRef.value = value;\n nTriggerFormChange();\n nTriggerFormInput();\n }\n function doBlur(e) {\n const { onBlur } = props;\n const { nTriggerFormBlur } = formItem;\n if (onBlur)\n call(onBlur, e);\n nTriggerFormBlur();\n }\n function doClear() {\n const { onClear } = props;\n if (onClear)\n call(onClear);\n }\n function doFocus(e) {\n const { onFocus } = props;\n const { nTriggerFormFocus } = formItem;\n if (onFocus)\n call(onFocus, e);\n nTriggerFormFocus();\n }\n function doSearch(value) {\n const { onSearch } = props;\n if (onSearch)\n call(onSearch, value);\n }\n function doScroll(e) {\n const { onScroll } = props;\n if (onScroll)\n call(onScroll, e);\n }\n // remote related methods\n function updateMemorizedOptions() {\n var _a;\n const { remote, multiple } = props;\n if (remote) {\n const { value: memoValOptMap } = memoValOptMapRef;\n if (multiple) {\n (_a = selectedOptionsRef.value) === null || _a === void 0 ? void 0 : _a.forEach((option) => {\n memoValOptMap.set(option.value, option);\n });\n }\n else {\n const option = selectedOptionRef.value;\n if (option) {\n memoValOptMap.set(option.value, option);\n }\n }\n }\n }\n // menu related methods\n function openMenu() {\n if (!mergedDisabledRef.value) {\n patternRef.value = '';\n uncontrolledShowRef.value = true;\n if (props.filterable) {\n focusSelectionInput();\n }\n }\n }\n function closeMenu() {\n uncontrolledShowRef.value = false;\n }\n function handleMenuLeave() {\n patternRef.value = '';\n }\n function handleTriggerClick() {\n if (mergedDisabledRef.value)\n return;\n if (!mergedShowRef.value) {\n openMenu();\n }\n else {\n if (!props.filterable) {\n // already focused, don't need to return focus\n closeMenu();\n }\n }\n }\n function handleTriggerBlur(e) {\n var _a, _b;\n if ((_b = (_a = menuRef.value) === null || _a === void 0 ? void 0 : _a.selfRef) === null || _b === void 0 ? void 0 : _b.contains(e.relatedTarget)) {\n return;\n }\n focusedRef.value = false;\n doBlur(e);\n // outside select, don't need to return focus\n closeMenu();\n }\n function handleTriggerFocus(e) {\n doFocus(e);\n focusedRef.value = true;\n }\n function handleMenuFocus(e) {\n focusedRef.value = true;\n }\n function handleMenuBlur(e) {\n var _a;\n if ((_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.$el.contains(e.relatedTarget))\n return;\n focusedRef.value = false;\n doBlur(e);\n // outside select, don't need to return focus\n closeMenu();\n }\n function handleMenuTabOut() {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n closeMenu();\n }\n function handleMenuClickOutside(e) {\n var _a;\n if (mergedShowRef.value) {\n if (!((_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.$el.contains(e.target))) {\n // outside select, don't need to return focus\n closeMenu();\n }\n }\n }\n function createClearedMultipleSelectValue(value) {\n if (!Array.isArray(value))\n return [];\n if (wrappedFallbackOptionRef.value) {\n // if option has a fallback, I can't help user to clear some unknown value\n return Array.from(value);\n }\n else {\n // if there's no option fallback, unappeared options are treated as invalid\n const { remote } = props;\n const { value: valOptMap } = valOptMapRef;\n if (remote) {\n const { value: memoValOptMap } = memoValOptMapRef;\n return value.filter((v) => valOptMap.has(v) || memoValOptMap.has(v));\n }\n else {\n return value.filter((v) => valOptMap.has(v));\n }\n }\n }\n function handleToggleByTmNode(tmNode) {\n handleToggleByOption(tmNode.rawNode);\n }\n function handleToggleByOption(option) {\n if (mergedDisabledRef.value)\n return;\n const { tag, remote } = props;\n if (tag && !remote) {\n const { value: beingCreatedOptions } = beingCreatedOptionsRef;\n const beingCreatedOption = beingCreatedOptions[0] || null;\n if (beingCreatedOption) {\n createdOptionsRef.value.push(beingCreatedOption);\n beingCreatedOptionsRef.value = [];\n }\n }\n if (remote) {\n memoValOptMapRef.value.set(option.value, option);\n }\n if (props.multiple) {\n const changedValue = createClearedMultipleSelectValue(mergedValueRef.value);\n const index = changedValue.findIndex((value) => value === option.value);\n if (~index) {\n changedValue.splice(index, 1);\n if (tag && !remote) {\n const createdOptionIndex = getCreatedOptionIndex(option.value);\n if (~createdOptionIndex) {\n createdOptionsRef.value.splice(createdOptionIndex, 1);\n patternRef.value = '';\n }\n }\n }\n else {\n changedValue.push(option.value);\n patternRef.value = '';\n }\n focusSelectionInput();\n doUpdateValue(changedValue);\n }\n else {\n if (tag && !remote) {\n const createdOptionIndex = getCreatedOptionIndex(option.value);\n if (~createdOptionIndex) {\n createdOptionsRef.value = [\n createdOptionsRef.value[createdOptionIndex]\n ];\n }\n else {\n createdOptionsRef.value = [];\n }\n }\n focusSelection();\n closeMenu();\n doUpdateValue(option.value);\n }\n }\n function getCreatedOptionIndex(optionValue) {\n const createdOptions = createdOptionsRef.value;\n return createdOptions.findIndex((createdOption) => createdOption.value === optionValue);\n }\n function handlePatternInput(e) {\n if (!mergedShowRef.value) {\n openMenu();\n }\n const { value } = e.target;\n patternRef.value = value;\n const { tag, remote } = props;\n doSearch(value);\n if (tag && !remote) {\n if (!value) {\n beingCreatedOptionsRef.value = [];\n return;\n }\n const optionBeingCreated = props.onCreate(value);\n if (compitableOptionsRef.value.some((option) => option.value === optionBeingCreated.value) ||\n createdOptionsRef.value.some((option) => option.value === optionBeingCreated.value)) {\n beingCreatedOptionsRef.value = [];\n }\n else {\n beingCreatedOptionsRef.value = [optionBeingCreated];\n }\n }\n }\n function handleClear(e) {\n e.stopPropagation();\n const { multiple } = props;\n if (!multiple && props.filterable) {\n closeMenu();\n }\n doClear();\n if (multiple) {\n doUpdateValue([]);\n }\n else {\n doUpdateValue(null);\n }\n }\n function handleMenuMousedown(e) {\n if (!happensIn(e, 'action'))\n e.preventDefault();\n }\n // scroll events on menu\n function handleMenuScroll(e) {\n doScroll(e);\n }\n // keyboard events\n // also for menu keyup\n function handleKeyUp(e) {\n var _a, _b, _c;\n switch (e.code) {\n case 'Space':\n if (props.filterable)\n break;\n // eslint-disable-next-line no-fallthrough\n case 'Enter':\n case 'NumpadEnter':\n if (mergedShowRef.value) {\n const menu = menuRef.value;\n const pendingOptionData = menu === null || menu === void 0 ? void 0 : menu.getPendingTmNode();\n if (pendingOptionData) {\n handleToggleByTmNode(pendingOptionData);\n }\n else {\n closeMenu();\n focusSelection();\n }\n }\n else {\n openMenu();\n }\n e.preventDefault();\n break;\n case 'ArrowUp':\n if (props.loading)\n return;\n if (mergedShowRef.value) {\n (_a = menuRef.value) === null || _a === void 0 ? void 0 : _a.prev();\n }\n break;\n case 'ArrowDown':\n if (props.loading)\n return;\n if (mergedShowRef.value) {\n (_b = menuRef.value) === null || _b === void 0 ? void 0 : _b.next();\n }\n else {\n openMenu();\n }\n break;\n case 'Escape':\n closeMenu();\n (_c = triggerRef.value) === null || _c === void 0 ? void 0 : _c.focus();\n break;\n }\n }\n // also for menu\n function handleKeyDown(e) {\n switch (e.code) {\n case 'Space':\n if (!props.filterable) {\n e.preventDefault();\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n e.preventDefault();\n break;\n }\n }\n function focusSelection() {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n }\n function focusSelectionInput() {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focusInput();\n }\n function syncPosition() {\n var _a;\n (_a = followerRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n }\n updateMemorizedOptions();\n watch(toRef(props, 'options'), updateMemorizedOptions);\n watch(filteredOptionsRef, () => {\n if (!mergedShowRef.value)\n return;\n void nextTick(syncPosition);\n });\n watch(mergedValueRef, () => {\n if (!mergedShowRef.value)\n return;\n void nextTick(syncPosition);\n });\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedBordered: mergedBorderedRef,\n namespace: namespaceRef,\n treeMate: treeMateRef,\n isMounted: useIsMounted(),\n triggerRef,\n menuRef,\n pattern: patternRef,\n uncontrolledShow: uncontrolledShowRef,\n mergedShow: mergedShowRef,\n adjustedTo: useAdjustedTo(props),\n uncontrolledValue: uncontrolledValueRef,\n mergedValue: mergedValueRef,\n followerRef,\n localizedPlaceholder: localizedPlaceholderRef,\n selectedOption: selectedOptionRef,\n selectedOptions: selectedOptionsRef,\n mergedSize: mergedSizeRef,\n mergedDisabled: mergedDisabledRef,\n focused: focusedRef,\n handleMenuFocus,\n handleMenuBlur,\n handleMenuTabOut,\n handleTriggerClick,\n handleToggle: handleToggleByTmNode,\n handleDeleteOption: handleToggleByOption,\n handlePatternInput,\n handleClear,\n handleTriggerBlur,\n handleTriggerFocus,\n handleKeyDown,\n handleKeyUp,\n syncPosition,\n handleMenuLeave,\n handleMenuClickOutside,\n handleMenuScroll,\n handleMenuKeyup: handleKeyUp,\n handleMenuKeydown: handleKeyDown,\n handleMenuMousedown,\n mergedTheme: themeRef,\n cssVars: computed(() => {\n const { self: { menuBoxShadow } } = themeRef.value;\n return {\n '--menu-box-shadow': menuBoxShadow\n };\n })\n };\n },\n render() {\n const { $slots, mergedClsPrefix } = this;\n return (h(\"div\", { class: `${mergedClsPrefix}-select` },\n h(VBinder, null, {\n default: () => [\n h(VTarget, null, {\n default: () => (h(NInternalSelection, { ref: \"triggerRef\", clsPrefix: mergedClsPrefix, showArrow: this.showArrow, maxTagCount: this.maxTagCount, bordered: this.mergedBordered, active: this.mergedShow, pattern: this.pattern, placeholder: this.localizedPlaceholder, selectedOption: this.selectedOption, selectedOptions: this.selectedOptions, multiple: this.multiple, renderTag: this.renderTag, renderLabel: this.renderLabel, filterable: this.filterable, clearable: this.clearable, disabled: this.mergedDisabled, size: this.mergedSize, theme: this.mergedTheme.peers.InternalSelection, themeOverrides: this.mergedTheme.peerOverrides.InternalSelection, loading: this.loading, focused: this.focused, onClick: this.handleTriggerClick, onDeleteOption: this.handleDeleteOption, onPatternInput: this.handlePatternInput, onClear: this.handleClear, onBlur: this.handleTriggerBlur, onFocus: this.handleTriggerFocus, onKeydown: this.handleKeyDown, onKeyup: this.handleKeyUp }))\n }),\n h(VFollower, { ref: \"followerRef\", show: this.mergedShow, to: this.adjustedTo, teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey, containerClass: this.namespace, width: this.consistentMenuWidth ? 'target' : undefined, minWidth: \"target\", placement: this.placement }, {\n default: () => (h(Transition, { name: \"fade-in-scale-up-transition\", appear: this.isMounted, onLeave: this.handleMenuLeave }, {\n default: () => (this.mergedShow ||\n this.displayDirective === 'show') &&\n withDirectives(h(NInternalSelectMenu, { ref: \"menuRef\", virtualScroll: this.consistentMenuWidth && this.virtualScroll, class: `${mergedClsPrefix}-select-menu`, clsPrefix: mergedClsPrefix, focusable: true, autoPending: true, theme: this.mergedTheme.peers.InternalSelectMenu, themeOverrides: this.mergedTheme.peerOverrides\n .InternalSelectMenu, treeMate: this.treeMate, multiple: this.multiple, size: \"medium\", renderOption: this.renderOption, renderLabel: this.renderLabel, value: this.mergedValue, style: this.cssVars, onToggle: this.handleToggle, onScroll: this.handleMenuScroll, onFocus: this.handleMenuFocus, onBlur: this.handleMenuBlur, onKeyup: this.handleMenuKeyup, onKeydown: this.handleMenuKeydown, onTabOut: this.handleMenuTabOut, onMousedown: this.handleMenuMousedown, show: this.mergedShow }, $slots), this.displayDirective === 'show'\n ? [\n [vShow, this.mergedShow],\n [clickoutside, this.handleMenuClickOutside]\n ]\n : [[clickoutside, this.handleMenuClickOutside]])\n }))\n })\n ]\n })));\n }\n});\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'FastForward',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 20 20\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", fill: \"none\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { fill: \"currentColor\", \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z\" })))));\n }\n});\n","import { inject, ref, toRef } from 'vue';\nimport { useMemo, useMergedState } from 'vooks';\nimport { useConfig, useFormItem } from '../../_mixins';\nimport { warn, call } from '../../_utils';\nconst radioProps = {\n name: String,\n value: {\n type: [String, Number],\n default: 'on'\n },\n checked: {\n type: Boolean,\n default: undefined\n },\n defaultChecked: Boolean,\n disabled: {\n type: Boolean,\n default: undefined\n },\n size: String,\n 'onUpdate:checked': [Function, Array],\n // deprecated\n checkedValue: {\n type: Boolean,\n validator: () => {\n warn('radio', '`checked-value` is deprecated, please use `checked` instead.');\n return true;\n },\n default: undefined\n }\n};\nexport const radioGroupInjectionKey = Symbol('radioGroup');\nfunction setup(props) {\n const formItem = useFormItem(props, {\n mergedSize(NFormItem) {\n const { size } = props;\n if (size !== undefined)\n return size;\n if (NRadioGroup) {\n const { mergedSizeRef: { value: mergedSize } } = NRadioGroup;\n if (mergedSize !== undefined) {\n return mergedSize;\n }\n }\n if (NFormItem) {\n return NFormItem.mergedSize.value;\n }\n return 'medium';\n },\n mergedDisabled(NFormItem) {\n if (props.disabled)\n return true;\n if (NRadioGroup === null || NRadioGroup === void 0 ? void 0 : NRadioGroup.disabledRef.value)\n return true;\n if (NFormItem === null || NFormItem === void 0 ? void 0 : NFormItem.disabled.value)\n return true;\n return false;\n }\n });\n const { mergedSizeRef, mergedDisabledRef } = formItem;\n const inputRef = ref(null);\n const labelRef = ref(null);\n const NRadioGroup = inject(radioGroupInjectionKey, null);\n const uncontrolledCheckedRef = ref(props.defaultChecked);\n const controlledCheckedRef = toRef(props, 'checked');\n const mergedCheckedRef = useMergedState(controlledCheckedRef, uncontrolledCheckedRef);\n const renderSafeCheckedRef = useMemo(() => {\n if (NRadioGroup)\n return NRadioGroup.valueRef.value === props.value;\n return mergedCheckedRef.value;\n });\n const mergedNameRef = useMemo(() => {\n const { name } = props;\n if (name !== undefined)\n return name;\n if (NRadioGroup)\n return NRadioGroup.nameRef.value;\n });\n const focusRef = ref(false);\n function doUpdateChecked() {\n if (NRadioGroup) {\n const { doUpdateValue } = NRadioGroup;\n const { value } = props;\n call(doUpdateValue, value);\n }\n else {\n const { 'onUpdate:checked': updateChecked } = props;\n const { nTriggerFormInput, nTriggerFormChange } = formItem;\n if (updateChecked)\n call(updateChecked, true);\n nTriggerFormInput();\n nTriggerFormChange();\n uncontrolledCheckedRef.value = true;\n }\n }\n function toggle() {\n if (mergedDisabledRef.value)\n return;\n if (!renderSafeCheckedRef.value) {\n doUpdateChecked();\n }\n }\n function handleRadioInputChange() {\n toggle();\n }\n function handleRadioInputBlur() {\n focusRef.value = false;\n }\n function handleRadioInputFocus() {\n focusRef.value = true;\n }\n function handleKeyUp(e) {\n var _a;\n switch (e.code) {\n case 'Enter':\n case 'NumpadEnter':\n (_a = inputRef.value) === null || _a === void 0 ? void 0 : _a.click();\n }\n }\n function handleMouseDown() {\n if (mergedDisabledRef.value)\n return;\n setTimeout(() => {\n var _a, _b;\n if (!((_a = labelRef.value) === null || _a === void 0 ? void 0 : _a.contains(document.activeElement))) {\n (_b = inputRef.value) === null || _b === void 0 ? void 0 : _b.focus();\n }\n }, 0);\n }\n function handleClick() {\n var _a;\n (_a = inputRef.value) === null || _a === void 0 ? void 0 : _a.click();\n }\n return {\n mergedClsPrefix: NRadioGroup\n ? NRadioGroup.mergedClsPrefixRef\n : useConfig(props).mergedClsPrefixRef,\n inputRef,\n labelRef,\n mergedName: mergedNameRef,\n mergedDisabled: mergedDisabledRef,\n uncontrolledChecked: uncontrolledCheckedRef,\n renderSafeChecked: renderSafeCheckedRef,\n focus: focusRef,\n mergedSize: mergedSizeRef,\n handleRadioInputChange,\n handleRadioInputBlur,\n handleRadioInputFocus,\n handleKeyUp,\n handleMouseDown,\n handleClick\n };\n}\nsetup.props = radioProps;\nexport default setup;\n","export const formatDate = dateStr => {\r\n const dateArr = dateStr.split('/') // [dd, mm, yyyy]\r\n\r\n return dateArr.join('-')\r\n}\r\n\r\nexport const formatDateTime = dateStr => {\r\n const date = new Date(dateStr).toLocaleDateString()\r\n const time = new Date(dateStr).toLocaleTimeString()\r\n\r\n const dateTime = `${formatDate(date)} ${time}`\r\n\r\n return dateTime\r\n}\r\n","export default {\n thPaddingSmall: '8px',\n thPaddingMedium: '12px',\n thPaddingLarge: '12px',\n tdPaddingSmall: '8px',\n tdPaddingMedium: '12px',\n tdPaddingLarge: '12px',\n sorterSize: '15px',\n filterSize: '15px',\n paginationMargin: '12px 0 0 0',\n emptyPadding: '16px 0',\n actionPadding: '8px 12px',\n actionButtonMargin: '0 8px 0 0'\n};\n","export default {\n padding: '8px 14px'\n};\n","import { commonLight } from '../../_styles/common';\nimport { popoverLight } from '../../popover/styles';\nimport commonVars from './_common';\nimport { createTheme } from '../../_mixins/use-theme';\nconst self = (vars) => {\n const { borderRadius, boxShadow2, baseColor } = vars;\n return Object.assign(Object.assign({}, commonVars), { borderRadius: borderRadius, boxShadow: boxShadow2, color: 'rgba(0, 0, 0, .85)', textColor: baseColor });\n};\nconst tooltipLight = createTheme({\n name: 'Tooltip',\n common: commonLight,\n peers: {\n Popover: popoverLight\n },\n self\n});\nexport default tooltipLight;\n","import { createTheme } from '../../_mixins';\nimport { commonLight } from '../../_styles/common';\nimport { tooltipLight } from '../../tooltip/styles';\nconst ellipsisLight = createTheme({\n name: 'Ellipsis',\n common: commonLight,\n peers: {\n Tooltip: tooltipLight\n }\n});\nexport default ellipsisLight;\n","export default {\n sizeSmall: '14px',\n sizeMedium: '16px',\n sizeLarge: '18px',\n labelPadding: '0 8px'\n};\n","import { changeColor } from 'seemly';\nimport { commonLight } from '../../_styles/common';\nimport commonVariables from './_common';\nexport const self = (vars) => {\n const { baseColor, inputColorDisabled, cardColor, modalColor, popoverColor, textColorDisabled, borderColor, primaryColor, textColor2, fontSizeSmall, fontSizeMedium, fontSizeLarge, borderRadiusSmall } = vars;\n return Object.assign(Object.assign({}, commonVariables), { fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge, borderRadius: borderRadiusSmall, color: baseColor, colorChecked: primaryColor, colorDisabled: inputColorDisabled, colorDisabledChecked: inputColorDisabled, colorTableHeader: cardColor, colorTableHeaderModal: modalColor, colorTableHeaderPopover: popoverColor, checkMarkColor: baseColor, checkMarkColorDisabled: textColorDisabled, checkMarkColorDisabledChecked: textColorDisabled, border: `1px solid ${borderColor}`, borderDisabled: `1px solid ${borderColor}`, borderDisabledChecked: `1px solid ${borderColor}`, borderChecked: `1px solid ${primaryColor}`, borderFocus: `1px solid ${primaryColor}`, boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, { alpha: 0.3 })}`, textColor: textColor2, textColorDisabled: textColorDisabled });\n};\nconst checkboxLight = {\n name: 'Checkbox',\n common: commonLight,\n self\n};\nexport default checkboxLight;\n","import { composite } from 'seemly';\nimport commonVariables from './_common';\nimport { ellipsisLight } from '../../ellipsis/styles';\nimport { buttonLight } from '../../button/styles';\nimport { checkboxLight } from '../../checkbox/styles';\nimport { radioLight } from '../../radio/styles';\nimport { paginationLight } from '../../pagination/styles';\nimport { scrollbarLight } from '../../scrollbar/styles';\nimport { popoverLight } from '../../popover/styles';\nimport { emptyLight } from '../../empty/styles';\nimport { commonLight } from '../../_styles/common';\nimport { createTheme } from '../../_mixins';\nexport const self = (vars) => {\n const { cardColor, modalColor, popoverColor, textColor2, textColor1, tableHeaderColor, tableColorHover, iconColor, primaryColor, fontWeightStrong, borderRadius, lineHeight, fontSizeSmall, fontSizeMedium, fontSizeLarge, dividerColor, heightSmall, opacityDisabled } = vars;\n return Object.assign(Object.assign({}, commonVariables), { actionDividerColor: dividerColor, lineHeight,\n borderRadius,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge, borderColor: composite(cardColor, dividerColor), tdColorHover: composite(cardColor, tableColorHover), thColor: composite(cardColor, tableHeaderColor), thColorHover: composite(composite(cardColor, tableHeaderColor), tableColorHover), tdColor: cardColor, tdTextColor: textColor2, thTextColor: textColor1, thFontWeight: fontWeightStrong, thButtonColorHover: tableColorHover, thIconColor: iconColor, thIconColorActive: primaryColor, \n // modal\n borderColorModal: composite(modalColor, dividerColor), tdColorHoverModal: composite(modalColor, tableColorHover), thColorModal: composite(modalColor, tableHeaderColor), thColorHoverModal: composite(composite(modalColor, tableHeaderColor), tableColorHover), tdColorModal: modalColor, \n // popover\n borderColorPopover: composite(popoverColor, dividerColor), tdColorHoverPopover: composite(popoverColor, tableColorHover), thColorPopover: composite(popoverColor, tableHeaderColor), thColorHoverPopover: composite(composite(popoverColor, tableHeaderColor), tableColorHover), tdColorPopover: popoverColor, boxShadowBefore: 'inset -12px 0 8px -12px rgba(0, 0, 0, .18)', boxShadowAfter: 'inset 12px 0 8px -12px rgba(0, 0, 0, .18)', \n // loading\n loadingColor: primaryColor, loadingSize: heightSmall, opacityLoading: opacityDisabled });\n};\nconst dataTableLight = createTheme({\n name: 'DataTable',\n common: commonLight,\n peers: {\n Button: buttonLight,\n Checkbox: checkboxLight,\n Radio: radioLight,\n Pagination: paginationLight,\n Scrollbar: scrollbarLight,\n Empty: emptyLight,\n Popover: popoverLight,\n Ellipsis: ellipsisLight\n },\n self\n});\nexport default dataTableLight;\n","import { h } from 'vue';\nexport default (h(\"svg\", { viewBox: \"0 0 64 64\", class: \"check-icon\" },\n h(\"path\", { d: \"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z\" })));\n","import { h } from 'vue';\nexport default (h(\"svg\", { viewBox: \"0 0 100 100\", class: \"line-icon\" },\n h(\"path\", { d: \"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z\" })));\n","import { h, defineComponent, provide, computed, toRef, ref } from 'vue';\nimport { useMergedState } from 'vooks';\nimport { useConfig, useFormItem } from '../../_mixins';\nimport { warn, call } from '../../_utils';\nexport const checkboxGroupInjectionKey = Symbol('checkboxGroup');\nconst checkboxGroupProps = {\n min: Number,\n max: Number,\n size: String,\n value: Array,\n defaultValue: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n 'onUpdate:value': [Function, Array],\n onUpdateValue: [Function, Array],\n // deprecated\n onChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('checkbox-group', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n return true;\n },\n default: undefined\n }\n};\nexport default defineComponent({\n name: 'CheckboxGroup',\n props: checkboxGroupProps,\n setup(props) {\n const { mergedClsPrefixRef } = useConfig(props);\n const formItem = useFormItem(props);\n const { mergedSizeRef, mergedDisabledRef } = formItem;\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = computed(() => props.value);\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const checkedCount = computed(() => {\n var _a;\n return ((_a = mergedValueRef.value) === null || _a === void 0 ? void 0 : _a.length) || 0;\n });\n const valueSetRef = computed(() => {\n if (Array.isArray(mergedValueRef.value)) {\n return new Set(mergedValueRef.value);\n }\n return new Set();\n });\n function toggleCheckbox(checked, checkboxValue) {\n const { nTriggerFormInput, nTriggerFormChange } = formItem;\n const { onChange, 'onUpdate:value': _onUpdateValue, onUpdateValue } = props;\n if (Array.isArray(mergedValueRef.value)) {\n const groupValue = Array.from(mergedValueRef.value);\n const index = groupValue.findIndex((value) => value === checkboxValue);\n if (checked) {\n if (!~index) {\n groupValue.push(checkboxValue);\n if (onUpdateValue)\n call(onUpdateValue, groupValue);\n if (_onUpdateValue)\n call(_onUpdateValue, groupValue);\n nTriggerFormInput();\n nTriggerFormChange();\n uncontrolledValueRef.value = groupValue;\n // deprecated\n if (onChange)\n call(onChange, groupValue);\n }\n }\n else {\n if (~index) {\n groupValue.splice(index, 1);\n if (onUpdateValue)\n call(onUpdateValue, groupValue);\n if (_onUpdateValue)\n call(_onUpdateValue, groupValue);\n if (onChange)\n call(onChange, groupValue); // deprecated\n uncontrolledValueRef.value = groupValue;\n nTriggerFormInput();\n nTriggerFormChange();\n }\n }\n }\n else {\n if (checked) {\n if (onUpdateValue)\n call(onUpdateValue, [checkboxValue]);\n if (_onUpdateValue)\n call(_onUpdateValue, [checkboxValue]);\n if (onChange)\n call(onChange, [checkboxValue]); // deprecated\n uncontrolledValueRef.value = [checkboxValue];\n nTriggerFormInput();\n nTriggerFormChange();\n }\n else {\n if (onUpdateValue)\n call(onUpdateValue, []);\n if (_onUpdateValue)\n call(_onUpdateValue, []);\n if (onChange)\n call(onChange, []); // deprecated\n uncontrolledValueRef.value = [];\n nTriggerFormInput();\n nTriggerFormChange();\n }\n }\n }\n provide(checkboxGroupInjectionKey, {\n checkedCountRef: checkedCount,\n maxRef: toRef(props, 'max'),\n minRef: toRef(props, 'min'),\n valueSetRef: valueSetRef,\n disabledRef: mergedDisabledRef,\n mergedSizeRef: mergedSizeRef,\n toggleCheckbox\n });\n return {\n mergedClsPrefix: mergedClsPrefixRef\n };\n },\n render() {\n return (h(\"div\", { class: `${this.mergedClsPrefix}-checkbox-group` }, this.$slots));\n }\n});\n","import { c, cB, cE, cM, insideModal, insidePopover } from '../../../_utils/cssr';\nimport iconSwitchTransition from '../../../_styles/transitions/icon-switch.cssr'; // vars:\n// --bezier\n// --size\n// --border\n// --border-focus\n// --border-checked\n// --border-disabled\n// --border-disabled-checked\n// --box-shadow-focus\n// --color\n// --color-checked\n// --color-table-header\n// --color-table-header-modal\n// --color-disabled\n// --color-disabled-checked\n// --text-color\n// --text-color-disabled\n// --check-mark-color\n// --check-mark-color-disabled\n// --check-mark-color-disabled-checked\n// --border-radius\n// --font-size\n// --label-padding\n\nexport default c([cB('checkbox', `\n line-height: 1;\n font-size: var(--font-size);\n outline: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n vertical-align: middle;\n --merged-color-table-header: var(--color-table-header);\n `, [c('&:hover', [cB('checkbox-box', [cE('border', {\n border: 'var(--border-checked)'\n})])]), c('&:focus:not(:active)', [cB('checkbox-box', [cE('border', {\n border: 'var(--border-focus)',\n boxShadow: 'var(--box-shadow-focus)'\n})])]), cM('table-header', [cB('checkbox-box', {\n backgroundColor: 'var(--merged-color-table-header)'\n})]), cM('checked', [cB('checkbox-box', {\n backgroundColor: 'var(--color-checked)'\n}, [cB('checkbox-icon', [// if not set width to 100%, safari & old chrome won't display the icon\nc('.check-icon', `\n width: 100%;\n opacity: 1;\n transform: scale(1);\n `)])])]), cM('indeterminate', [cB('checkbox-box', [cB('checkbox-icon', [c('.check-icon', `\n opacity: 0;\n transform: scale(.5);\n `), c('.line-icon', `\n opacity: 1;\n transform: scale(1);\n `)])])]), cM('checked, indeterminate', [c('&:focus:not(:active)', [cB('checkbox-box', [cE('border', {\n border: 'var(--border-checked)',\n boxShadow: 'var(--box-shadow-focus)'\n})])]), cB('checkbox-box', `\n background-color: var(--color-checked);\n border-left: 0;\n border-top: 0;\n `, [cE('border', {\n border: 'var(--border-checked)'\n})])]), cM('disabled', {\n cursor: 'not-allowed'\n}, [cM('checked', [cB('checkbox-box', `\n background-color: var(--color-disabled-checked);\n `, [cE('border', {\n border: 'var(--border-disabled-checked)'\n}), cB('checkbox-icon', [c('.check-icon, .line-icon', {\n fill: 'var(--check-mark-color-disabled-checked)'\n})])])]), cB('checkbox-box', `\n background-color: var(--color-disabled);\n `, [cE('border', {\n border: 'var(--border-disabled)'\n}), cB('checkbox-icon', [c('.check-icon, .line-icon', {\n fill: 'var(--check-mark-color-disabled)'\n})])]), cE('label', {\n color: 'var(--text-color-disabled)'\n})]), cB('checkbox-box', `\n height: var(--size);\n width: var(--size);\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--border-radius);\n background-color: var(--color);\n position: relative;\n transition:\n background-color 0.3s var(--bezier);\n `, [cE('border', `\n transition:\n border-color .3s var(--bezier),\n box-shadow .3s var(--bezier);\n border-radius: inherit;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n border: var(--border);\n `), cB('checkbox-icon', `\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n left: 1px;\n right: 1px;\n top: 1px;\n bottom: 1px;\n `, [c('.check-icon, .line-icon', `\n fill: var(--check-mark-color);\n opacity: 0;\n transform: scale(0.5);\n transform-origin: center;\n transition:\n fill 0.3s var(--bezier),\n transform 0.3s var(--bezier),\n opacity 0.3s var(--bezier),\n border-color 0.3s var(--bezier);\n `), iconSwitchTransition({\n left: '1px',\n top: '1px'\n})])]), cE('label', `\n color: var(--text-color);\n transition: color .3s var(--bezier);\n user-select: none;\n padding: var(--label-padding);\n `, [c('&:empty', {\n display: 'none'\n})])]), // modal table header checkbox\ninsideModal(cB('checkbox', `\n --merged-color-table-header: var(--color-table-header-modal);\n `)), // popover table header checkbox\ninsidePopover(cB('checkbox', `\n --merged-color-table-header: var(--color-table-header-popover);\n `))]);","import { h, defineComponent, computed, inject, ref, toRef, renderSlot } from 'vue';\nimport { useMergedState, useMemo } from 'vooks';\nimport { useConfig, useFormItem, useTheme } from '../../_mixins';\nimport { NIconSwitchTransition } from '../../_internal';\nimport { warn, call, createKey } from '../../_utils';\nimport { checkboxLight } from '../styles';\nimport CheckMark from './CheckMark';\nimport LineMark from './LineMark';\nimport { checkboxGroupInjectionKey } from './CheckboxGroup';\nimport style from './styles/index.cssr';\nconst checkboxProps = Object.assign(Object.assign({}, useTheme.props), { size: String, checked: {\n type: Boolean,\n default: undefined\n }, defaultChecked: Boolean, value: [String, Number], disabled: {\n type: Boolean,\n default: undefined\n }, indeterminate: Boolean, label: String, focusable: {\n type: Boolean,\n default: true\n }, 'onUpdate:checked': [Function, Array], onUpdateChecked: [Function, Array], \n // private\n privateTableHeader: Boolean, \n // deprecated\n onChange: {\n type: [Function, Array],\n validator: () => {\n warn('checkbox', '`on-change` is deprecated, please use `on-update:checked` instead.');\n return true;\n },\n default: undefined\n } });\nexport default defineComponent({\n name: 'Checkbox',\n props: checkboxProps,\n setup(props) {\n const { mergedClsPrefixRef } = useConfig(props);\n const formItem = useFormItem(props, {\n mergedSize(NFormItem) {\n const { size } = props;\n if (size !== undefined)\n return size;\n if (NCheckboxGroup) {\n const { value: mergedSize } = NCheckboxGroup.mergedSizeRef;\n if (mergedSize !== undefined) {\n return mergedSize;\n }\n }\n if (NFormItem) {\n const { mergedSize } = NFormItem;\n if (mergedSize !== undefined)\n return mergedSize.value;\n }\n return 'medium';\n },\n mergedDisabled(NFormItem) {\n const { disabled } = props;\n if (disabled !== undefined)\n return disabled;\n if (NCheckboxGroup) {\n if (NCheckboxGroup.disabledRef.value)\n return true;\n const { maxRef: { value: max }, checkedCountRef } = NCheckboxGroup;\n if (max !== undefined &&\n checkedCountRef.value >= max &&\n !renderedCheckedRef.value) {\n return true;\n }\n const { minRef: { value: min } } = NCheckboxGroup;\n if (min !== undefined &&\n checkedCountRef.value <= min &&\n renderedCheckedRef.value) {\n return true;\n }\n }\n if (NFormItem) {\n return NFormItem.disabled.value;\n }\n return false;\n }\n });\n const { mergedDisabledRef, mergedSizeRef } = formItem;\n const NCheckboxGroup = inject(checkboxGroupInjectionKey, null);\n const uncontrolledCheckedRef = ref(props.defaultChecked);\n const controlledCheckedRef = toRef(props, 'checked');\n const mergedCheckedRef = useMergedState(controlledCheckedRef, uncontrolledCheckedRef);\n const renderedCheckedRef = useMemo(() => {\n if (NCheckboxGroup) {\n const groupValueSet = NCheckboxGroup.valueSetRef.value;\n if (groupValueSet && props.value !== undefined) {\n return groupValueSet.has(props.value);\n }\n return false;\n }\n else {\n return mergedCheckedRef.value;\n }\n });\n const themeRef = useTheme('Checkbox', 'Checkbox', style, checkboxLight, props, mergedClsPrefixRef);\n function toggle(e) {\n if (NCheckboxGroup && props.value !== undefined) {\n NCheckboxGroup.toggleCheckbox(!renderedCheckedRef.value, props.value);\n }\n else {\n const { onChange, 'onUpdate:checked': _onUpdateCheck, onUpdateChecked } = props;\n const { nTriggerFormInput, nTriggerFormChange } = formItem;\n const nextChecked = !renderedCheckedRef.value;\n if (_onUpdateCheck)\n call(_onUpdateCheck, nextChecked, e);\n if (onUpdateChecked)\n call(onUpdateChecked, nextChecked, e);\n if (onChange)\n call(onChange, nextChecked); // deprecated\n nTriggerFormInput();\n nTriggerFormChange();\n uncontrolledCheckedRef.value = nextChecked;\n }\n }\n function handleClick(e) {\n if (!mergedDisabledRef.value) {\n toggle(e);\n }\n }\n function handleKeyUp(e) {\n if (mergedDisabledRef.value)\n return;\n switch (e.code) {\n case 'Space':\n case 'Enter':\n case 'NumpadEnter':\n toggle(e);\n }\n }\n function handleKeyDown(e) {\n switch (e.code) {\n case 'Space':\n e.preventDefault();\n }\n }\n return Object.assign(formItem, {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedDisabled: mergedDisabledRef,\n renderedChecked: renderedCheckedRef,\n mergedTheme: themeRef,\n handleClick,\n handleKeyUp,\n handleKeyDown,\n cssVars: computed(() => {\n const { value: mergedSize } = mergedSizeRef;\n const { common: { cubicBezierEaseInOut }, self: { borderRadius, color, colorChecked, colorDisabled, colorTableHeader, colorTableHeaderModal, colorTableHeaderPopover, checkMarkColor, checkMarkColorDisabled, border, borderFocus, borderDisabled, borderChecked, boxShadowFocus, textColor, textColorDisabled, checkMarkColorDisabledChecked, colorDisabledChecked, borderDisabledChecked, labelPadding, [createKey('fontSize', mergedSize)]: fontSize, [createKey('size', mergedSize)]: size } } = themeRef.value;\n return {\n '--size': size,\n '--bezier': cubicBezierEaseInOut,\n '--border-radius': borderRadius,\n '--border': border,\n '--border-checked': borderChecked,\n '--border-focus': borderFocus,\n '--border-disabled': borderDisabled,\n '--border-disabled-checked': borderDisabledChecked,\n '--box-shadow-focus': boxShadowFocus,\n '--color': color,\n '--color-checked': colorChecked,\n '--color-table-header': colorTableHeader,\n '--color-table-header-modal': colorTableHeaderModal,\n '--color-table-header-popover': colorTableHeaderPopover,\n '--color-disabled': colorDisabled,\n '--color-disabled-checked': colorDisabledChecked,\n '--text-color': textColor,\n '--text-color-disabled': textColorDisabled,\n '--check-mark-color': checkMarkColor,\n '--check-mark-color-disabled': checkMarkColorDisabled,\n '--check-mark-color-disabled-checked': checkMarkColorDisabledChecked,\n '--font-size': fontSize,\n '--label-padding': labelPadding\n };\n })\n });\n },\n render() {\n const { $slots, renderedChecked, mergedDisabled, indeterminate, privateTableHeader, cssVars, label, mergedClsPrefix, focusable, handleKeyUp, handleKeyDown, handleClick } = this;\n return (h(\"div\", { class: [\n `${mergedClsPrefix}-checkbox`,\n {\n [`${mergedClsPrefix}-checkbox--checked`]: renderedChecked,\n [`${mergedClsPrefix}-checkbox--disabled`]: mergedDisabled,\n [`${mergedClsPrefix}-checkbox--indeterminate`]: indeterminate,\n [`${mergedClsPrefix}-checkbox--table-header`]: privateTableHeader\n }\n ], tabindex: mergedDisabled || !focusable ? undefined : 0, style: cssVars, onKeyup: handleKeyUp, onKeydown: handleKeyDown, onClick: handleClick, onMousedown: () => {\n const preventDefault = (e) => {\n e.preventDefault();\n };\n window.addEventListener('selectstart', preventDefault);\n setTimeout(() => {\n window.removeEventListener('selectstart', preventDefault);\n }, 0);\n } },\n h(\"div\", { class: `${mergedClsPrefix}-checkbox-box` },\n h(NIconSwitchTransition, null, {\n default: () => this.indeterminate ? (h(\"div\", { key: \"indeterminate\", class: `${mergedClsPrefix}-checkbox-icon` }, LineMark)) : (h(\"div\", { key: \"check\", class: `${mergedClsPrefix}-checkbox-icon` }, CheckMark))\n }),\n h(\"div\", { class: `${mergedClsPrefix}-checkbox-box__border` })),\n label !== null || $slots.default ? (h(\"span\", { class: `${mergedClsPrefix}-checkbox__label` }, renderSlot($slots, 'default', undefined, () => [label]))) : null));\n }\n});\n","// Tooltip: popover wearing waistcoat\nimport { h, defineComponent, ref, computed } from 'vue';\nimport { NPopover } from '../../popover';\nimport { popoverBaseProps } from '../../popover/src/Popover';\nimport { useTheme } from '../../_mixins';\nimport { tooltipLight } from '../styles';\nconst tooltipProps = Object.assign(Object.assign({}, popoverBaseProps), useTheme.props);\nexport default defineComponent({\n name: 'Tooltip',\n props: tooltipProps,\n setup(props) {\n const themeRef = useTheme('Tooltip', 'Tooltip', undefined, tooltipLight, props);\n const popoverRef = ref(null);\n const tooltipExposedMethod = {\n syncPosition() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n popoverRef.value.syncPosition();\n },\n setShow(show) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n popoverRef.value.setShow(show);\n }\n };\n return Object.assign(Object.assign({}, tooltipExposedMethod), { popoverRef, mergedTheme: themeRef, popoverThemeOverrides: computed(() => {\n return themeRef.value.self;\n }) });\n },\n render() {\n const { mergedTheme, internalExtraClass } = this;\n return h(NPopover, Object.assign(Object.assign({}, this.$props), { theme: mergedTheme.peers.Popover, themeOverrides: mergedTheme.peerOverrides.Popover, builtinThemeOverrides: this.popoverThemeOverrides, internalExtraClass: internalExtraClass.concat('tooltip'), ref: 'popoverRef' }), this.$slots);\n }\n});\n","import { cB, cNotM, cM } from '../../../_utils/cssr';\nexport default cB('ellipsis', {\n overflow: 'hidden'\n}, [cNotM('line-clamp', `\n white-space: nowrap;\n display: inline-block;\n vertical-align: bottom;\n max-width: 100%;\n `), cM('line-clamp', `\n display: -webkit-inline-box;\n -webkit-box-orient: vertical;\n `)]);","import { defineComponent, h, ref, computed, mergeProps } from 'vue';\nimport { NTooltip } from '../../tooltip';\nimport { useConfig, useTheme } from '../../_mixins';\nimport { ellipsisLight } from '../styles';\nimport style from './styles/index.cssr';\nfunction createLineClampClass(clsPrefix) {\n return `${clsPrefix}-ellipsis--line-clamp`;\n}\nconst ellipsisProps = Object.assign(Object.assign({}, useTheme.props), { expandTrigger: String, lineClamp: [Number, String], tooltip: {\n type: [Boolean, Object],\n default: true\n } });\nexport default defineComponent({\n name: 'Ellipsis',\n inheritAttrs: false,\n props: ellipsisProps,\n setup(props, { slots, attrs }) {\n const { mergedClsPrefixRef } = useConfig(props);\n const mergedTheme = useTheme('Ellipsis', 'ellipsis', style, ellipsisLight, props, mergedClsPrefixRef);\n const triggerRef = ref(null);\n const tooltipRef = ref(null);\n const expandedRef = ref(false);\n const ellipsisStyleRef = computed(() => {\n const { lineClamp } = props;\n const { value: expanded } = expandedRef;\n const cursor = props.expandTrigger === 'click' ? 'pointer' : '';\n if (lineClamp !== undefined) {\n return {\n cursor,\n textOverflow: '',\n '-webkit-line-clamp': expanded ? '' : lineClamp\n };\n }\n else {\n return {\n cursor,\n textOverflow: expanded ? '' : 'ellipsis',\n '-webkit-line-clamp': ''\n };\n }\n });\n function getTooltipDisabled() {\n const { value: expanded } = expandedRef;\n if (expanded)\n return true;\n const { value: trigger } = triggerRef;\n if (trigger) {\n const { lineClamp } = props;\n // we need to apply style here, since the dom may be updated in\n // nextTick, measure dom size will derive wrong result\n syncEllipsisStyle(trigger);\n if (lineClamp !== undefined) {\n return trigger.scrollHeight <= trigger.offsetHeight;\n }\n return trigger.scrollWidth <= trigger.offsetWidth;\n }\n return false;\n }\n const handleClickRef = computed(() => {\n return props.expandTrigger === 'click'\n ? () => {\n var _a;\n const { value: expanded } = expandedRef;\n if (expanded) {\n (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n }\n expandedRef.value = !expanded;\n }\n : undefined;\n });\n const renderTrigger = () => (h(\"span\", Object.assign({}, mergeProps(attrs, {\n class: [\n `${mergedClsPrefixRef.value}-ellipsis`,\n props.lineClamp !== undefined\n ? createLineClampClass(mergedClsPrefixRef.value)\n : undefined\n ],\n style: ellipsisStyleRef.value\n }), { ref: \"triggerRef\", onClick: handleClickRef.value }), slots));\n function syncEllipsisStyle(trigger) {\n if (!trigger)\n return;\n const latestStyle = ellipsisStyleRef.value;\n const lineClampClass = createLineClampClass(mergedClsPrefixRef.value);\n if (props.lineClamp !== undefined) {\n if (!trigger.classList.contains(lineClampClass)) {\n trigger.classList.add(lineClampClass);\n }\n }\n else {\n if (trigger.classList.contains(lineClampClass)) {\n trigger.classList.remove(lineClampClass);\n }\n }\n for (const key in latestStyle) {\n // guard can make it a little faster\n if (trigger.style[key] !== latestStyle[key]) {\n ;\n trigger.style[key] = latestStyle[key];\n }\n }\n }\n return {\n mergedTheme,\n triggerRef,\n tooltipRef,\n handleClick: handleClickRef,\n renderTrigger,\n getTooltipDisabled\n };\n },\n render() {\n var _a;\n const { tooltip, renderTrigger, $slots } = this;\n if (tooltip) {\n const { mergedTheme } = this;\n return (h(NTooltip, Object.assign({ ref: \"tooltipRef\", placement: \"top\" }, tooltip, { getDisabled: this.getTooltipDisabled, theme: mergedTheme.peers.Tooltip, themeOverrides: mergedTheme.peerOverrides.Tooltip }), {\n trigger: renderTrigger,\n default: (_a = $slots.tooltip) !== null && _a !== void 0 ? _a : $slots.default\n }));\n }\n else\n return renderTrigger();\n }\n});\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'ArrowDown',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 28 28\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z\" })))));\n }\n});\n","import { defineComponent } from 'vue';\nexport default defineComponent({\n name: 'DataTableRenderSorter',\n props: {\n render: {\n type: Function,\n required: true\n },\n order: {\n // asc, desc\n type: [String, Boolean],\n default: false\n }\n },\n render() {\n const { render, order } = this;\n return render({\n order\n });\n }\n});\n","export const dataTableInjectionKey = Symbol('dataTable');\n","import { defineComponent, h, computed, inject } from 'vue';\nimport { ArrowDownIcon } from '../../../_internal/icons';\nimport { NBaseIcon } from '../../../_internal';\nimport RenderSorter from './RenderSorter';\nimport { dataTableInjectionKey } from '../interface';\nimport { useConfig } from '../../../_mixins';\nexport default defineComponent({\n name: 'SortIcon',\n props: {\n column: {\n type: Object,\n required: true\n }\n },\n setup(props) {\n const { NConfigProvider } = useConfig();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { mergedSortStateRef, mergedClsPrefixRef } = inject(dataTableInjectionKey);\n const sortStateRef = mergedSortStateRef;\n const activeRef = computed(() => {\n const { value } = sortStateRef;\n if (value)\n return value.columnKey === props.column.key;\n return false;\n });\n const mergedSortOrderRef = computed(() => {\n const { value } = sortStateRef;\n if (value)\n return activeRef.value ? value.order : false;\n return false;\n });\n const mergedRenderSorterRef = computed(() => {\n var _a, _b;\n return (((_b = (_a = NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.DataTable) === null || _b === void 0 ? void 0 : _b.renderSorter) || props.column.renderSorter);\n });\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n active: activeRef,\n mergedSortOrder: mergedSortOrderRef,\n mergedRenderSorter: mergedRenderSorterRef\n };\n },\n render() {\n const { mergedRenderSorter, mergedSortOrder, mergedClsPrefix } = this;\n return mergedRenderSorter ? (h(RenderSorter, { render: mergedRenderSorter, order: mergedSortOrder })) : (h(\"span\", { class: [\n `${mergedClsPrefix}-data-table-sorter`,\n {\n [`${mergedClsPrefix}-data-table-sorter--asc`]: mergedSortOrder === 'ascend',\n [`${mergedClsPrefix}-data-table-sorter--desc`]: mergedSortOrder === 'descend'\n }\n ] },\n h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(ArrowDownIcon, null) })));\n }\n});\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'Filter',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 28 28\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M17,19 C17.5522847,19 18,19.4477153 18,20 C18,20.5522847 17.5522847,21 17,21 L11,21 C10.4477153,21 10,20.5522847 10,20 C10,19.4477153 10.4477153,19 11,19 L17,19 Z M21,13 C21.5522847,13 22,13.4477153 22,14 C22,14.5522847 21.5522847,15 21,15 L7,15 C6.44771525,15 6,14.5522847 6,14 C6,13.4477153 6.44771525,13 7,13 L21,13 Z M24,7 C24.5522847,7 25,7.44771525 25,8 C25,8.55228475 24.5522847,9 24,9 L4,9 C3.44771525,9 3,8.55228475 3,8 C3,7.44771525 3.44771525,7 4,7 L24,7 Z\" })))));\n }\n});\n","import { defineComponent } from 'vue';\nexport default defineComponent({\n name: 'DataTableRenderFilter',\n props: {\n render: {\n type: Function,\n required: true\n },\n active: {\n type: Boolean,\n default: false\n },\n show: {\n type: Boolean,\n default: false\n }\n },\n render() {\n const { render, active, show } = this;\n return render({\n active,\n show\n });\n }\n});\n","import { cB, cE, cM, c, cNotM } from '../../../_utils/cssr'; // vars:\n// --bezier\n// --button-border-color\n// --height\n// --opacity-disabled\n// --font-size\n\nexport default cB('radio-group', `\n display: inline-block;\n font-size: var(--font-size);\n`, [cE('splitor', `\n display: inline-block;\n vertical-align: bottom;\n width: 1px;\n transition:\n background-color .3s var(--bezier),\n opacity .3s var(--bezier);\n background: var(--button-border-color);\n `, [cM('checked', {\n backgroundColor: 'var(--button-border-color-active)'\n}), cM('disabled', {\n opacity: 'var(--opacity-disabled)'\n})]), cM('button-group', `\n white-space: nowrap;\n height: var(--height);\n line-height: var(--height);\n `, [cB('radio-button', {\n height: 'var(--height)',\n lineHeight: 'var(--height)'\n}), cE('splitor', {\n height: 'var(--height)'\n})]), cB('radio-button', `\n vertical-align: bottom;\n outline: none;\n position: relative;\n user-select: none;\n display: inline-block;\n box-sizing: border-box;\n padding-left: 14px;\n padding-right: 14px;\n white-space: nowrap;\n transition:\n background-color .3s var(--bezier),\n opacity .3s var(--bezier),\n border-color .3s var(--bezier),\n color .3s var(--bezier);\n color: var(--button-text-color);\n border-top: 1px solid var(--button-border-color);\n border-bottom: 1px solid var(--button-border-color);\n `, [cE('radio-input', `\n border: 0;\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n `), cE('state-border', `\n pointer-events: none;\n position: absolute;\n box-shadow: var(--button-box-shadow);\n transition: box-shadow .3s var(--bezier);\n left: -1px;\n bottom: -1px;\n right: -1px;\n top: -1px;\n `), c('&:first-child', `\n border-top-left-radius: var(--button-border-radius);\n border-bottom-left-radius: var(--button-border-radius);\n border-left: 1px solid var(--button-border-color);\n `, [cE('state-border', `\n border-top-left-radius: var(--button-border-radius);\n border-bottom-left-radius: var(--button-border-radius);\n `)]), c('&:last-child', `\n border-top-right-radius: var(--button-border-radius);\n border-bottom-right-radius: var(--button-border-radius);\n border-right: 1px solid var(--button-border-color);\n `, [cE('state-border', `\n border-top-right-radius: var(--button-border-radius);\n border-bottom-right-radius: var(--button-border-radius);\n `)]), cNotM('disabled', `\n cursor: pointer;\n `, [c('&:hover', [cE('state-border', `\n transition: box-shadow .3s var(--bezier);\n box-shadow: var(--button-box-shadow-hover);\n `), cNotM('checked', {\n color: 'var(--button-text-color-hover)'\n})]), cM('focus', [c('&:not(:active)', [cE('state-border', {\n boxShadow: 'var(--button-box-shadow-focus)'\n})])])]), cM('checked', `\n background: var(--button-color-active);\n color: var(--button-text-color-active);\n border-color: var(--button-border-color-active);\n `), cM('disabled', `\n cursor: not-allowed;\n opacity: var(--opacity-disabled);\n `)])]);","import { h, defineComponent, computed, provide, ref, toRef } from 'vue';\nimport { useMergedState } from 'vooks';\nimport { useTheme, useFormItem, useConfig } from '../../_mixins';\nimport { getSlot, warn, createKey, call, flatten } from '../../_utils';\nimport { radioLight } from '../styles';\nimport { radioGroupInjectionKey } from './use-radio';\nimport style from './styles/radio-group.cssr';\nfunction mapSlot(defaultSlot, value, clsPrefix) {\n var _a;\n const children = [];\n let isButtonGroup = false;\n for (let i = 0; i < defaultSlot.length; ++i) {\n const wrappedInstance = defaultSlot[i];\n const name = (_a = wrappedInstance.type) === null || _a === void 0 ? void 0 : _a.name;\n if (name === 'RadioButton') {\n isButtonGroup = true;\n }\n if (process.env.NODE_ENV !== 'production' && isButtonGroup && name !== 'RadioButton') {\n warn('radio-group', '`n-radio-group` in button mode only takes `n-radio-button` as children.');\n continue;\n }\n const instanceProps = wrappedInstance.props;\n if (name !== 'RadioButton') {\n children.push(wrappedInstance);\n continue;\n }\n if (i === 0) {\n children.push(wrappedInstance);\n }\n else {\n const lastInstanceProps = children[children.length - 1]\n .props;\n const lastInstanceChecked = value === lastInstanceProps.value;\n const lastInstanceDisabled = lastInstanceProps.disabled;\n const currentInstanceChecked = value === instanceProps.value;\n const currentInstanceDisabled = instanceProps.disabled;\n /**\n * Priority of button splitor:\n * !disabled checked >\n * disabled checked >\n * !disabled !checked >\n * disabled !checked\n */\n const lastInstancePriority = (lastInstanceChecked ? 2 : 0) + (!lastInstanceDisabled ? 1 : 0);\n const currentInstancePriority = (currentInstanceChecked ? 2 : 0) + (!currentInstanceDisabled ? 1 : 0);\n const lastInstanceClass = {\n [`${clsPrefix}-radio-group__splitor--disabled`]: lastInstanceDisabled,\n [`${clsPrefix}-radio-group__splitor--checked`]: lastInstanceChecked\n };\n const currentInstanceClass = {\n [`${clsPrefix}-radio-group__splitor--disabled`]: currentInstanceDisabled,\n [`${clsPrefix}-radio-group__splitor--checked`]: currentInstanceChecked\n };\n const splitorClass = lastInstancePriority < currentInstancePriority\n ? currentInstanceClass\n : lastInstanceClass;\n children.push(h(\"div\", { class: [`${clsPrefix}-radio-group__splitor`, splitorClass] }), wrappedInstance);\n }\n }\n return {\n children,\n isButtonGroup\n };\n}\nconst radioGroupProps = Object.assign(Object.assign({}, useTheme.props), { name: String, value: [String, Number], defaultValue: {\n type: [String, Number],\n default: null\n }, size: String, disabled: {\n type: Boolean,\n default: undefined\n }, 'onUpdate:value': [Function, Array], onUpdateValue: [Function, Array] });\nexport default defineComponent({\n name: 'RadioGroup',\n props: radioGroupProps,\n setup(props) {\n const selfElRef = ref(null);\n const { mergedSizeRef, mergedDisabledRef, nTriggerFormChange, nTriggerFormInput, nTriggerFormBlur, nTriggerFormFocus } = useFormItem(props);\n const { mergedClsPrefixRef } = useConfig(props);\n const themeRef = useTheme('Radio', 'RadioGroup', style, radioLight, props, mergedClsPrefixRef);\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n function doUpdateValue(value) {\n const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props;\n if (onUpdateValue) {\n call(onUpdateValue, value);\n }\n if (_onUpdateValue) {\n call(_onUpdateValue, value);\n }\n uncontrolledValueRef.value = value;\n nTriggerFormChange();\n nTriggerFormInput();\n }\n function handleFocusin(e) {\n const { value: selfEl } = selfElRef;\n if (!selfEl)\n return;\n if (selfEl.contains(e.relatedTarget))\n return;\n nTriggerFormFocus();\n }\n function handleFocusout(e) {\n const { value: selfEl } = selfElRef;\n if (!selfEl)\n return;\n if (selfEl.contains(e.relatedTarget))\n return;\n nTriggerFormBlur();\n }\n provide(radioGroupInjectionKey, {\n mergedClsPrefixRef,\n nameRef: toRef(props, 'name'),\n valueRef: mergedValueRef,\n disabledRef: mergedDisabledRef,\n mergedSizeRef,\n doUpdateValue\n });\n return {\n selfElRef,\n mergedClsPrefix: mergedClsPrefixRef,\n mergedValue: mergedValueRef,\n handleFocusout,\n handleFocusin,\n cssVars: computed(() => {\n const { value: size } = mergedSizeRef;\n const { common: { cubicBezierEaseInOut }, self: { buttonBorderColor, buttonBorderColorActive, buttonBorderRadius, buttonBoxShadow, buttonBoxShadowFocus, buttonBoxShadowHover, buttonColorActive, buttonTextColor, buttonTextColorActive, buttonTextColorHover, opacityDisabled, [createKey('buttonHeight', size)]: height, [createKey('fontSize', size)]: fontSize } } = themeRef.value;\n return {\n '--font-size': fontSize,\n '--bezier': cubicBezierEaseInOut,\n '--button-border-color': buttonBorderColor,\n '--button-border-color-active': buttonBorderColorActive,\n '--button-border-radius': buttonBorderRadius,\n '--button-box-shadow': buttonBoxShadow,\n '--button-box-shadow-focus': buttonBoxShadowFocus,\n '--button-box-shadow-hover': buttonBoxShadowHover,\n '--button-color-active': buttonColorActive,\n '--button-text-color': buttonTextColor,\n '--button-text-color-hover': buttonTextColorHover,\n '--button-text-color-active': buttonTextColorActive,\n '--height': height,\n '--opacity-disabled': opacityDisabled\n };\n })\n };\n },\n render() {\n const { mergedValue, mergedClsPrefix, handleFocusin, handleFocusout } = this;\n const { children, isButtonGroup } = mapSlot(flatten(getSlot(this)), mergedValue, mergedClsPrefix);\n return (h(\"div\", { onFocusin: handleFocusin, onFocusout: handleFocusout, ref: \"selfElRef\", class: [\n `${mergedClsPrefix}-radio-group`,\n isButtonGroup && `${mergedClsPrefix}-radio-group--button-group`\n ], style: this.cssVars }, children));\n }\n});\n","import { pxfy } from 'seemly';\nexport const selectionColWidth = 40;\nexport const expandColWidth = 40;\nexport function getColWidth(col) {\n if (col.type === 'selection')\n return selectionColWidth;\n if (col.type === 'expand')\n return expandColWidth;\n if ('children' in col)\n return undefined;\n return col.width;\n}\nexport function getColKey(col) {\n if (col.type === 'selection')\n return '__n_selection__';\n if (col.type === 'expand')\n return '__n_expand__';\n return col.key;\n}\nexport function createShallowClonedObject(object) {\n if (!object)\n return object;\n if (typeof object === 'object') {\n return Object.assign({}, object);\n }\n return object;\n}\nexport function getFlagOfOrder(order) {\n if (order === 'ascend')\n return 1;\n else if (order === 'descend')\n return -1;\n return 0;\n}\nexport function createCustomWidthStyle(column) {\n return {\n width: pxfy(getColWidth(column))\n };\n}\nexport function createRowClassName(row, index, rowClassName) {\n if (typeof rowClassName === 'function')\n return rowClassName(row, index);\n return rowClassName || '';\n}\n// for compatibility\n// If column.filterOptionValues or column.defaultFilterOptionValues is set, use\n// array value\nexport function shouldUseArrayInSingleMode(column) {\n return (column.filterOptionValues !== undefined ||\n (column.filterOptionValue === undefined &&\n column.defaultFilterOptionValues !== undefined));\n}\nexport function isColumnSortable(column) {\n if ('children' in column)\n return false;\n return !!column.sorter;\n}\nexport function isColumnFilterable(column) {\n if ('children' in column)\n return false;\n return (!!column.filter && (!!column.filterOptions || !!column.renderFilterMenu));\n}\nfunction getNextOrderOf(order) {\n if (!order)\n return 'descend';\n else if (order === 'descend')\n return 'ascend';\n return false;\n}\nexport function createNextSorter(column, currentSortState) {\n if (column.sorter === undefined)\n return null;\n if (currentSortState === null || currentSortState.columnKey !== column.key) {\n return {\n columnKey: column.key,\n sorter: column.sorter,\n order: getNextOrderOf(false)\n };\n }\n else {\n return Object.assign(Object.assign({}, currentSortState), { order: getNextOrderOf(currentSortState.order) });\n }\n}\n","import { h, defineComponent, ref, computed, inject } from 'vue';\nimport { NCheckbox, NCheckboxGroup } from '../../../checkbox';\nimport { NRadio, NRadioGroup } from '../../../radio';\nimport { NButton } from '../../../button';\nimport { NScrollbar } from '../../../scrollbar';\nimport { shouldUseArrayInSingleMode } from '../utils';\nimport { dataTableInjectionKey } from '../interface';\nexport default defineComponent({\n name: 'DataTableFilterMenu',\n props: {\n column: {\n type: Object,\n required: true\n },\n radioGroupName: {\n type: String,\n required: true\n },\n multiple: {\n type: Boolean,\n required: true\n },\n value: {\n type: [Array, String, Number],\n default: null\n },\n options: {\n type: Array,\n required: true\n },\n onConfirm: {\n type: Function,\n required: true\n },\n onClear: {\n type: Function,\n required: true\n },\n onChange: {\n type: Function,\n required: true\n }\n },\n setup(props) {\n const { mergedClsPrefixRef, mergedThemeRef, localeRef\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n // to be compared with changed value\n // const initialValueRef = ref(props.value)\n const temporalValueRef = ref(props.value);\n const checkboxGroupValueRef = computed(() => {\n const { value: temporalValue } = temporalValueRef;\n if (!Array.isArray(temporalValue))\n return null;\n return temporalValue;\n });\n const radioGroupValueRef = computed(() => {\n const { value: temporalValue } = temporalValueRef;\n if (shouldUseArrayInSingleMode(props.column)) {\n return ((Array.isArray(temporalValue) &&\n temporalValue.length &&\n temporalValue[0]) ||\n null);\n }\n if (!Array.isArray(temporalValue))\n return temporalValue;\n return null;\n });\n function doChange(value) {\n // May need to check if equal\n ;\n props.onChange(value);\n }\n function handleChange(value) {\n if (props.multiple && Array.isArray(value)) {\n temporalValueRef.value = value;\n }\n else if (shouldUseArrayInSingleMode(props.column) &&\n !Array.isArray(value)) {\n /** this branch is for compatibility */\n temporalValueRef.value = [value];\n }\n else {\n temporalValueRef.value = value;\n }\n }\n function handleConfirmClick() {\n doChange(temporalValueRef.value);\n props.onConfirm();\n }\n function handleClearClick() {\n if (props.multiple || shouldUseArrayInSingleMode(props.column)) {\n doChange([]);\n }\n else {\n doChange(null);\n }\n props.onClear();\n }\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedTheme: mergedThemeRef,\n locale: localeRef,\n checkboxGroupValue: checkboxGroupValueRef,\n radioGroupValue: radioGroupValueRef,\n handleChange,\n handleConfirmClick,\n handleClearClick\n };\n },\n render() {\n const { mergedTheme, locale, mergedClsPrefix } = this;\n return (h(\"div\", { class: `${mergedClsPrefix}-data-table-filter-menu` },\n h(NScrollbar, null, {\n default: () => {\n const { checkboxGroupValue, handleChange } = this;\n return this.multiple ? (h(NCheckboxGroup, { value: checkboxGroupValue, class: `${mergedClsPrefix}-data-table-filter-menu__group`, onUpdateValue: handleChange }, {\n default: () => this.options.map((option) => {\n return (h(NCheckbox, { key: option.value, theme: mergedTheme.peers.Checkbox, themeOverrides: mergedTheme.peerOverrides.Checkbox, value: option.value }, { default: () => option.label }));\n })\n })) : (h(NRadioGroup, { name: this.radioGroupName, class: `${mergedClsPrefix}-data-table-filter-menu__group`, value: this.radioGroupValue, onUpdateValue: this.handleChange }, {\n default: () => this.options.map((option) => (h(NRadio, { key: option.value, value: option.value, theme: mergedTheme.peers.Radio, themeOverrides: mergedTheme.peerOverrides.Radio }, { default: () => option.label })))\n }));\n }\n }),\n h(\"div\", { class: `${mergedClsPrefix}-data-table-filter-menu__action` },\n h(NButton, { size: \"tiny\", theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, onClick: this.handleClearClick }, { default: () => locale.clear }),\n h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, type: \"primary\", size: \"tiny\", onClick: this.handleConfirmClick }, { default: () => locale.confirm }))));\n }\n});\n","import { h, defineComponent, ref, computed, inject } from 'vue';\nimport { FilterIcon } from '../../../_internal/icons';\nimport { NBaseIcon } from '../../../_internal';\nimport { NPopover } from '../../../popover';\nimport RenderFilter from './RenderFilter';\nimport NDataTableFilterMenu from './FilterMenu';\nimport { dataTableInjectionKey } from '../interface';\nimport { useConfig } from '../../../_mixins';\nfunction createFilterState(currentFilterState, columnKey, mergedFilterValue) {\n const nextFilterState = Object.assign({}, currentFilterState);\n nextFilterState[columnKey] = mergedFilterValue;\n return nextFilterState;\n}\nexport default defineComponent({\n name: 'DataTableFilterButton',\n props: {\n column: {\n type: Object,\n required: true\n },\n options: {\n type: Array,\n default: () => []\n }\n },\n setup(props) {\n const { NConfigProvider } = useConfig();\n const { mergedThemeRef, mergedClsPrefixRef, mergedFilterStateRef, filterMenuCssVarsRef, doUpdateFilters\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n const showPopoverRef = ref(false);\n const filterStateRef = mergedFilterStateRef;\n const filterMultipleRef = computed(() => {\n return props.column.filterMultiple !== false;\n });\n const mergedFilterValueRef = computed(() => {\n const filterValue = filterStateRef.value[props.column.key];\n if (filterValue === undefined) {\n const { value: multiple } = filterMultipleRef;\n if (multiple)\n return [];\n else\n return null;\n }\n return filterValue;\n });\n const activeRef = computed(() => {\n const { value: filterValue } = mergedFilterValueRef;\n if (Array.isArray(filterValue)) {\n return filterValue.length > 0;\n }\n return filterValue !== null;\n });\n const mergedRenderFilterRef = computed(() => {\n var _a, _b;\n return (((_b = (_a = NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.DataTable) === null || _b === void 0 ? void 0 : _b.renderFilter) || props.column.renderFilter);\n });\n function handleFilterChange(mergedFilterValue) {\n const nextFilterState = createFilterState(filterStateRef.value, props.column.key, mergedFilterValue);\n doUpdateFilters(nextFilterState, props.column);\n }\n function handleFilterMenuCancel() {\n showPopoverRef.value = false;\n }\n function handleFilterMenuConfirm() {\n showPopoverRef.value = false;\n }\n return {\n mergedTheme: mergedThemeRef,\n mergedClsPrefix: mergedClsPrefixRef,\n active: activeRef,\n showPopover: showPopoverRef,\n mergedRenderFilter: mergedRenderFilterRef,\n filterMultiple: filterMultipleRef,\n mergedFilterValue: mergedFilterValueRef,\n filterMenuCssVars: filterMenuCssVarsRef,\n handleFilterChange,\n handleFilterMenuConfirm,\n handleFilterMenuCancel\n };\n },\n render() {\n const { mergedTheme, mergedClsPrefix, handleFilterMenuCancel } = this;\n return (h(NPopover, { show: this.showPopover, onUpdateShow: (v) => (this.showPopover = v), trigger: \"click\", theme: mergedTheme.peers.Popover, themeOverrides: mergedTheme.peerOverrides.Popover, placement: \"bottom\", style: { padding: 0 } }, {\n trigger: () => {\n const { mergedRenderFilter } = this;\n if (mergedRenderFilter) {\n return (h(RenderFilter, { \"data-data-table-filter\": true, render: mergedRenderFilter, active: this.active, show: this.showPopover }));\n }\n const { renderFilterIcon } = this.column;\n return (h(\"div\", { \"data-data-table-filter\": true, class: [\n `${mergedClsPrefix}-data-table-filter`,\n {\n [`${mergedClsPrefix}-data-table-filter--active`]: this.active,\n [`${mergedClsPrefix}-data-table-filter--show`]: this.showPopover\n }\n ] }, renderFilterIcon ? (renderFilterIcon({\n active: this.active,\n show: this.showPopover\n })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FilterIcon, null) }))));\n },\n default: () => {\n const { renderFilterMenu } = this.column;\n return renderFilterMenu ? (renderFilterMenu({ hide: handleFilterMenuCancel })) : (h(NDataTableFilterMenu, { style: this.filterMenuCssVars, radioGroupName: String(this.column.key), multiple: this.filterMultiple, value: this.mergedFilterValue, options: this.options, column: this.column, onChange: this.handleFilterChange, onClear: this.handleFilterMenuCancel, onConfirm: this.handleFilterMenuConfirm }));\n }\n }));\n }\n});\n","import { h, defineComponent, inject, computed } from 'vue';\nimport { NDropdown } from '../../../dropdown';\nimport { NBaseIcon } from '../../../_internal';\nimport { ChevronDownIcon } from '../../../_internal/icons';\nimport { dataTableInjectionKey } from '../interface';\nconst allKey = '_n_all__';\nconst noneKey = '_n_none__';\nfunction createSelectHandler(options, rawPaginatedDataRef, doCheckAll, doUncheckAll) {\n if (!options)\n return () => { };\n return (key) => {\n for (const option of options) {\n switch (key) {\n case allKey:\n doCheckAll(true);\n return;\n case noneKey:\n doUncheckAll(true);\n return;\n default:\n if (typeof option === 'object' && option.key === key) {\n option.onSelect(rawPaginatedDataRef.value);\n return;\n }\n }\n }\n };\n}\nfunction createDropdownOptions(options, localeRef) {\n if (!options)\n return [];\n return options.map((option) => {\n switch (option) {\n case 'all':\n return {\n label: localeRef.checkTableAll,\n key: allKey\n };\n case 'none':\n return {\n label: localeRef.uncheckTableAll,\n key: noneKey\n };\n default:\n return option;\n }\n });\n}\nexport default defineComponent({\n name: 'DataTableSelectionMenu',\n props: {\n clsPrefix: {\n type: String,\n required: true\n }\n },\n setup() {\n const { localeRef, checkOptionsRef, rawPaginatedDataRef, doCheckAll, doUncheckAll\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n return {\n handleSelect: computed(() => createSelectHandler(checkOptionsRef.value, rawPaginatedDataRef, doCheckAll, doUncheckAll)),\n options: computed(() => createDropdownOptions(checkOptionsRef.value, localeRef.value))\n };\n },\n render() {\n const { clsPrefix } = this;\n return (h(NDropdown, { options: this.options, onSelect: this.handleSelect }, {\n default: () => (h(NBaseIcon, { clsPrefix: clsPrefix, class: `${clsPrefix}-data-table-check-extra` }, {\n default: () => h(ChevronDownIcon, null)\n }))\n }));\n }\n});\n","import { h, defineComponent, inject, Fragment } from 'vue';\nimport { happensIn, pxfy } from 'seemly';\nimport { formatLength } from '../../../_utils';\nimport { NCheckbox } from '../../../checkbox';\nimport { NEllipsis } from '../../../ellipsis';\nimport SortButton from '../HeaderButton/SortButton';\nimport FilterButton from '../HeaderButton/FilterButton';\nimport { isColumnSortable, isColumnFilterable, createNextSorter, getColKey } from '../utils';\nimport { dataTableInjectionKey } from '../interface';\nimport SelectionMenu from './SelectionMenu';\nfunction renderTitle(column) {\n return typeof column.title === 'function'\n ? column.title(column)\n : column.title;\n}\nexport default defineComponent({\n name: 'DataTableHeader',\n props: {\n discrete: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const { mergedClsPrefixRef, scrollXRef, fixedColumnLeftMapRef, fixedColumnRightMapRef, mergedCurrentPageRef, allRowsCheckedRef, someRowsCheckedRef, rowsRef, colsRef, mergedThemeRef, checkOptionsRef, mergedSortStateRef, componentId, scrollPartRef, mergedTableLayoutRef, headerCheckboxDisabledRef, handleTableHeaderScroll, doUpdateSorter, doUncheckAll, doCheckAll\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n function handleCheckboxUpdateChecked() {\n if (someRowsCheckedRef.value || allRowsCheckedRef.value) {\n doUncheckAll();\n }\n else {\n doCheckAll();\n }\n }\n function handleColHeaderClick(e, column) {\n if (happensIn(e, 'dataTableFilter'))\n return;\n if (!isColumnSortable(column))\n return;\n const activeSorter = mergedSortStateRef.value;\n const nextSorter = createNextSorter(column, activeSorter);\n doUpdateSorter(nextSorter);\n }\n function handleMouseenter() {\n scrollPartRef.value = 'head';\n }\n return {\n componentId,\n mergedSortState: mergedSortStateRef,\n mergedClsPrefix: mergedClsPrefixRef,\n scrollX: scrollXRef,\n fixedColumnLeftMap: fixedColumnLeftMapRef,\n fixedColumnRightMap: fixedColumnRightMapRef,\n currentPage: mergedCurrentPageRef,\n allRowsChecked: allRowsCheckedRef,\n someRowsChecked: someRowsCheckedRef,\n rows: rowsRef,\n cols: colsRef,\n mergedTheme: mergedThemeRef,\n checkOptions: checkOptionsRef,\n mergedTableLayout: mergedTableLayoutRef,\n headerCheckboxDisabled: headerCheckboxDisabledRef,\n handleMouseenter,\n handleCheckboxUpdateChecked,\n handleColHeaderClick,\n handleTableHeaderScroll\n };\n },\n render() {\n const { mergedClsPrefix, fixedColumnLeftMap, fixedColumnRightMap, currentPage, allRowsChecked, someRowsChecked, mergedSortState, rows, cols, mergedTheme, checkOptions, componentId, discrete, mergedTableLayout, headerCheckboxDisabled, handleColHeaderClick, handleCheckboxUpdateChecked } = this;\n let hasEllipsis = false;\n const theadVNode = (h(\"thead\", { class: `${mergedClsPrefix}-data-table-thead`, \"data-n-id\": componentId }, rows.map((row) => {\n return (h(\"tr\", { class: `${mergedClsPrefix}-data-table-tr` }, row.map(({ column, colSpan, rowSpan, isLast }) => {\n const key = getColKey(column);\n const { ellipsis } = column;\n if (!hasEllipsis && ellipsis)\n hasEllipsis = true;\n return (h(\"th\", { key: key, style: {\n textAlign: column.align,\n left: pxfy(fixedColumnLeftMap[key]),\n right: pxfy(fixedColumnRightMap[key])\n }, colspan: colSpan, rowspan: rowSpan, \"data-col-key\": key, class: [\n `${mergedClsPrefix}-data-table-th`,\n column.fixed &&\n `${mergedClsPrefix}-data-table-th--fixed-${column.fixed}`,\n {\n [`${mergedClsPrefix}-data-table-th--hover`]: (mergedSortState === null || mergedSortState === void 0 ? void 0 : mergedSortState.order) &&\n mergedSortState.columnKey === key,\n [`${mergedClsPrefix}-data-table-th--filterable`]: isColumnFilterable(column),\n [`${mergedClsPrefix}-data-table-th--sortable`]: isColumnSortable(column),\n [`${mergedClsPrefix}-data-table-th--selection`]: column.type === 'selection',\n [`${mergedClsPrefix}-data-table-th--last`]: isLast\n },\n column.className\n ], onClick: column.type !== 'selection' &&\n column.type !== 'expand' &&\n !('children' in column)\n ? (e) => {\n handleColHeaderClick(e, column);\n }\n : undefined },\n column.type === 'selection' ? (h(Fragment, null,\n h(NCheckbox, { key: currentPage, privateTableHeader: true, checked: allRowsChecked, indeterminate: someRowsChecked, disabled: headerCheckboxDisabled, onUpdateChecked: handleCheckboxUpdateChecked }),\n checkOptions ? (h(SelectionMenu, { clsPrefix: mergedClsPrefix })) : null)) : ellipsis === true || (ellipsis && !ellipsis.tooltip) ? (h(\"div\", { class: `${mergedClsPrefix}-data-table-th__ellipsis` }, renderTitle(column))) // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n : ellipsis && ellipsis.tooltip ? (h(NEllipsis, { tooltip: ellipsis.tooltip, theme: mergedTheme.peers.Ellipsis, themeOverrides: mergedTheme.peerOverrides.Ellipsis }, {\n default: () => renderTitle(column)\n })) : (renderTitle(column)),\n isColumnSortable(column) ? (h(SortButton, { column: column })) : null,\n isColumnFilterable(column) ? (h(FilterButton, { column: column, options: column.filterOptions })) : null));\n })));\n })));\n if (!discrete) {\n return theadVNode;\n }\n const { handleTableHeaderScroll, handleMouseenter, scrollX } = this;\n return (h(\"div\", { class: `${mergedClsPrefix}-data-table-base-table-header`, onScroll: handleTableHeaderScroll, onMouseenter: handleMouseenter },\n h(\"table\", { ref: \"body\", class: `${mergedClsPrefix}-data-table-table`, style: {\n minWidth: formatLength(scrollX),\n tableLayout: mergedTableLayout\n } },\n h(\"colgroup\", null, cols.map((col) => (h(\"col\", { key: col.key, style: col.style })))),\n theadVNode)));\n }\n});\n","import { defineComponent, h } from 'vue';\nimport { NEllipsis } from '../../../ellipsis';\nexport default defineComponent({\n name: 'DataTableCell',\n props: {\n row: {\n type: Object,\n required: true\n },\n index: {\n type: Number,\n required: true\n },\n column: {\n type: Object,\n required: true\n },\n isSummary: Boolean,\n mergedTheme: {\n type: Object,\n required: true\n }\n },\n render() {\n const { isSummary, column: { render, key, ellipsis }, row } = this;\n let cell;\n if (render && !isSummary) {\n cell = render(row, this.index);\n }\n else {\n if (isSummary) {\n cell = row[key].value;\n }\n else {\n cell = row[key];\n }\n }\n const tooltip = typeof ellipsis === 'object' ? ellipsis.tooltip : undefined;\n if (tooltip) {\n const { mergedTheme } = this;\n return (h(NEllipsis, { tooltip: tooltip, theme: mergedTheme.peers.Ellipsis, themeOverrides: mergedTheme.peerOverrides.Ellipsis }, { default: () => cell }));\n }\n return cell;\n }\n});\n","import { h, defineComponent } from 'vue';\nimport { ChevronRightIcon } from '../../../_internal/icons';\nimport { NBaseIcon } from '../../../_internal';\nexport default defineComponent({\n name: 'DataTableExpandTrigger',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n expanded: Boolean,\n onClick: {\n type: Function,\n required: true\n }\n },\n render() {\n return (h(NBaseIcon, { class: `${this.clsPrefix}-data-table-expand-trigger`, clsPrefix: this.clsPrefix, onClick: this.onClick }, {\n default: () => {\n return (h(ChevronRightIcon, { style: this.expanded ? 'transform: rotate(90deg);' : undefined }));\n }\n }));\n }\n});\n","import { defineComponent, h, inject } from 'vue';\nimport { NCheckbox } from '../../../checkbox';\nimport { dataTableInjectionKey } from '../interface';\n// Extract the checkbox to avoid useless rendering in table body\nexport default defineComponent({\n name: 'DataTableBodyCheckbox',\n props: {\n rowKey: {\n type: [String, Number],\n required: true\n },\n disabled: {\n type: Boolean,\n required: true\n },\n onUpdateChecked: {\n type: Function,\n required: true\n }\n },\n setup(props) {\n const { mergedCheckedRowKeySetRef, mergedInderminateRowKeySetRef\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n return () => {\n const { rowKey } = props;\n return (h(NCheckbox, { disabled: props.disabled, indeterminate: mergedInderminateRowKeySetRef.value.has(rowKey), checked: mergedCheckedRowKeySetRef.value.has(rowKey), onUpdateChecked: props.onUpdateChecked }));\n };\n }\n});\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, ref, defineComponent, inject, watchEffect, onUnmounted } from 'vue';\nimport { pxfy, repeat } from 'seemly';\nimport { VirtualList } from 'vueuc';\nimport { c } from '../../../_utils/cssr';\nimport { NScrollbar } from '../../../scrollbar';\nimport { formatLength } from '../../../_utils';\nimport { dataTableInjectionKey } from '../interface';\nimport { createRowClassName, getColKey } from '../utils';\nimport Cell from './Cell';\nimport ExpandTrigger from './ExpandTrigger';\nimport RenderSafeCheckbox from './BodyCheckbox';\nimport TableHeader from './Header';\nfunction flatten(rows, expandedRowKeys) {\n const fRows = [];\n function traverse(rs) {\n rs.forEach((r) => {\n if (r.children && expandedRowKeys.includes(r.key)) {\n fRows.push(r);\n traverse(r.children);\n }\n else {\n fRows.push(r);\n }\n });\n }\n traverse(rows);\n return fRows;\n}\nconst VirtualListItemWrapper = defineComponent({\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n id: {\n type: String,\n required: true\n },\n cols: {\n type: Array,\n required: true\n },\n onMouseenter: Function,\n onMouseleave: Function\n },\n render() {\n const { clsPrefix, id, cols, onMouseenter, onMouseleave } = this;\n return (h(\"table\", { style: { tableLayout: 'fixed' }, class: `${clsPrefix}-data-table-table`, onMouseenter: onMouseenter, onMouseleave: onMouseleave },\n h(\"colgroup\", null, cols.map((col) => (h(\"col\", { key: col.key, style: col.style })))),\n h(\"tbody\", { \"data-n-id\": id, class: `${clsPrefix}-data-table-tbody` }, this.$slots)));\n }\n});\nexport default defineComponent({\n name: 'DataTableBody',\n props: {\n onResize: Function,\n showHeader: Boolean,\n flexHeight: Boolean\n },\n setup(props) {\n const { mergedExpandedRowKeysRef, mergedClsPrefixRef, mergedThemeRef, scrollXRef, colsRef, paginatedDataRef, rawPaginatedDataRef, fixedColumnLeftMapRef, fixedColumnRightMapRef, mergedCurrentPageRef, rowClassNameRef, leftActiveFixedColKeyRef, rightActiveFixedColKeyRef, renderExpandRef, hoverKeyRef, summaryRef, mergedSortStateRef, virtualScrollRef, componentId, scrollPartRef, mergedTableLayoutRef, hasChildrenRef, firstContentfulColIndexRef, indentRef, rowPropsRef, maxHeightRef, setHeaderScrollLeft, doUpdateExpandedRowKeys, handleTableBodyScroll, doCheck, doUncheck\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n const scrollbarInstRef = ref(null);\n const virtualListRef = ref(null);\n let lastSelectedKey = '';\n function handleCheckboxUpdateChecked(tmNode, checked, shiftKey) {\n if (shiftKey) {\n const lastIndex = paginatedDataRef.value.findIndex((item) => item.key === lastSelectedKey);\n if (lastIndex !== -1) {\n const currentIndex = paginatedDataRef.value.findIndex((item) => item.key === tmNode.key);\n const start = Math.min(lastIndex, currentIndex);\n const end = Math.max(lastIndex, currentIndex);\n const rowKeysToCheck = [];\n paginatedDataRef.value.slice(start, end + 1).forEach((r) => {\n if (!r.disabled) {\n rowKeysToCheck.push(r.key);\n }\n });\n if (checked) {\n doCheck(rowKeysToCheck);\n }\n else {\n doUncheck(rowKeysToCheck);\n }\n lastSelectedKey = tmNode.key;\n return;\n }\n }\n if (checked) {\n doCheck(tmNode.key);\n }\n else {\n doUncheck(tmNode.key);\n }\n lastSelectedKey = tmNode.key;\n }\n function getScrollContainer() {\n if (virtualScrollRef.value) {\n return virtualListContainer();\n }\n const { value } = scrollbarInstRef;\n if (value)\n return value.containerRef;\n return null;\n }\n function handleUpdateExpanded(key) {\n const { value: mergedExpandedRowKeys } = mergedExpandedRowKeysRef;\n const index = mergedExpandedRowKeys.indexOf(key);\n const nextExpandedKeys = Array.from(mergedExpandedRowKeys);\n if (~index) {\n nextExpandedKeys.splice(index, 1);\n }\n else {\n nextExpandedKeys.push(key);\n }\n doUpdateExpandedRowKeys(nextExpandedKeys);\n }\n function handleMouseleaveTable() {\n hoverKeyRef.value = null;\n }\n function handleMouseenterTable() {\n scrollPartRef.value = 'body';\n }\n function virtualListContainer() {\n const { value } = virtualListRef;\n return value === null || value === void 0 ? void 0 : value.listElRef;\n }\n function virtualListContent() {\n const { value } = virtualListRef;\n return value === null || value === void 0 ? void 0 : value.itemsElRef;\n }\n function handleVirtualListScroll(e) {\n var _a;\n handleTableBodyScroll(e);\n (_a = scrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n }\n function handleVirtualListResize(e) {\n var _a;\n const { onResize } = props;\n if (onResize)\n onResize(e);\n (_a = scrollbarInstRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n }\n const exposedMethods = {\n getScrollContainer\n };\n // manually control shadow style to avoid rerender\n const style = c([\n ({ props: cProps }) => c([\n cProps.leftActiveFixedColKey === null\n ? null\n : c(`[data-n-id=\"${cProps.componentId}\"] [data-col-key=\"${cProps.leftActiveFixedColKey}\"]::after`, {\n boxShadow: 'var(--box-shadow-after)'\n }),\n cProps.rightActiveFixedColKey === null\n ? null\n : c(`[data-n-id=\"${cProps.componentId}\"] [data-col-key=\"${cProps.rightActiveFixedColKey}\"]::before`, {\n boxShadow: 'var(--box-shadow-before)'\n })\n ])\n ]);\n let fixedStyleMounted = false;\n watchEffect(() => {\n const { value: leftActiveFixedColKey } = leftActiveFixedColKeyRef;\n const { value: rightActiveFixedColKey } = rightActiveFixedColKeyRef;\n if (!fixedStyleMounted &&\n leftActiveFixedColKey === null &&\n rightActiveFixedColKey === null) {\n return;\n }\n style.mount({\n id: `n-${componentId}`,\n force: true,\n props: {\n leftActiveFixedColKey,\n rightActiveFixedColKey,\n componentId\n }\n });\n fixedStyleMounted = true;\n });\n onUnmounted(() => {\n style.unmount({\n id: `n-${componentId}`\n });\n });\n return Object.assign({ componentId,\n scrollbarInstRef,\n virtualListRef, summary: summaryRef, mergedClsPrefix: mergedClsPrefixRef, mergedTheme: mergedThemeRef, scrollX: scrollXRef, cols: colsRef, paginatedData: paginatedDataRef, rawPaginatedData: rawPaginatedDataRef, fixedColumnLeftMap: fixedColumnLeftMapRef, fixedColumnRightMap: fixedColumnRightMapRef, currentPage: mergedCurrentPageRef, rowClassName: rowClassNameRef, renderExpand: renderExpandRef, mergedExpandedRowKeys: mergedExpandedRowKeysRef, hoverKey: hoverKeyRef, mergedSortState: mergedSortStateRef, virtualScroll: virtualScrollRef, mergedTableLayout: mergedTableLayoutRef, hasChildren: hasChildrenRef, firstContentfulColIndex: firstContentfulColIndexRef, indent: indentRef, rowProps: rowPropsRef, maxHeight: maxHeightRef, setHeaderScrollLeft,\n handleMouseenterTable,\n handleVirtualListScroll,\n handleVirtualListResize,\n handleMouseleaveTable,\n virtualListContainer,\n virtualListContent,\n handleTableBodyScroll,\n handleCheckboxUpdateChecked,\n handleUpdateExpanded }, exposedMethods);\n },\n render() {\n const { mergedTheme, scrollX, mergedClsPrefix, virtualScroll, maxHeight, mergedTableLayout, flexHeight, onResize, setHeaderScrollLeft } = this;\n const scrollable = scrollX !== undefined || maxHeight !== undefined || flexHeight;\n // For a basic table with auto layout whose content may overflow we will\n // make it scrollable, which differs from browser's native behavior.\n // For native behavior, see\n // https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout\n const isBasicAutoLayout = !scrollable && mergedTableLayout === 'auto';\n const xScrollable = scrollX !== undefined || isBasicAutoLayout;\n const contentStyle = {\n minWidth: formatLength(scrollX) || '100%'\n };\n if (scrollX)\n contentStyle.width = '100%';\n return (h(NScrollbar, { ref: \"scrollbarInstRef\", scrollable: scrollable || isBasicAutoLayout, class: `${mergedClsPrefix}-data-table-base-table-body`, theme: mergedTheme.peers.Scrollbar, themeOverrides: mergedTheme.peerOverrides.Scrollbar, contentStyle: contentStyle, container: virtualScroll ? this.virtualListContainer : undefined, content: virtualScroll ? this.virtualListContent : undefined, horizontalRailStyle: { zIndex: 3 }, verticalRailStyle: { zIndex: 3 }, xScrollable: xScrollable, onScroll: virtualScroll ? undefined : this.handleTableBodyScroll, internalOnUpdateScrollLeft: setHeaderScrollLeft, onResize: onResize }, {\n default: () => {\n const cordToPass = {};\n // coord to related hover keys\n const cordKey = {};\n const { cols, paginatedData, mergedTheme, fixedColumnLeftMap, fixedColumnRightMap, currentPage, rowClassName, mergedSortState, mergedExpandedRowKeys, componentId, showHeader, hasChildren, firstContentfulColIndex, rowProps, handleMouseenterTable, handleMouseleaveTable, renderExpand, summary, handleCheckboxUpdateChecked, handleUpdateExpanded } = this;\n const { length: colCount } = cols;\n const rowIndexToKey = {};\n paginatedData.forEach((tmNode, rowIndex) => {\n rowIndexToKey[rowIndex] = tmNode.key;\n });\n const sorterKey = !!mergedSortState &&\n mergedSortState.order &&\n mergedSortState.columnKey;\n let mergedData;\n // if there is children in data, we should expand mergedData first\n const mergedPaginationData = hasChildren\n ? flatten(paginatedData, mergedExpandedRowKeys)\n : paginatedData;\n if (summary) {\n const summaryRows = summary(this.rawPaginatedData);\n if (Array.isArray(summaryRows)) {\n mergedData = [\n ...mergedPaginationData,\n ...summaryRows.map((row, i) => ({\n summary: true,\n rawNode: row,\n key: `__n_summary__${i}`,\n disabled: true\n }))\n ];\n }\n else {\n mergedData = [\n ...mergedPaginationData,\n {\n summary: true,\n rawNode: summaryRows,\n key: '__n_summary__',\n disabled: true\n }\n ];\n }\n }\n else {\n mergedData = mergedPaginationData;\n }\n const { length: rowCount } = mergedData;\n const indentStyle = hasChildren\n ? { width: pxfy(this.indent) }\n : undefined;\n const rows = [];\n mergedData.forEach((rowInfo, rowIndex) => {\n const { rawNode: rowData, key: rowKey } = rowInfo;\n const isSummary = 'summary' in rowInfo;\n const expanded = mergedExpandedRowKeys.includes(rowKey);\n const showExpandContent = renderExpand && expanded;\n const colNodes = cols.map((col, colIndex) => {\n var _a;\n if (rowIndex in cordToPass) {\n const cordOfRowToPass = cordToPass[rowIndex];\n const indexInCordOfRowToPass = cordOfRowToPass.indexOf(colIndex);\n if (~indexInCordOfRowToPass) {\n cordOfRowToPass.splice(indexInCordOfRowToPass, 1);\n return null;\n }\n }\n const { column } = col;\n const colKey = getColKey(col);\n // If there is no rowSpan\n // virtual list should have a fast path\n const { rowSpan, colSpan } = column;\n const mergedColSpan = isSummary\n ? rowInfo.rawNode[colKey].colSpan || 1\n : colSpan\n ? colSpan(rowData, rowIndex)\n : 1;\n const mergedRowSpan = isSummary\n ? rowInfo.rawNode[colKey].rowSpan || 1\n : rowSpan\n ? rowSpan(rowData, rowIndex)\n : 1;\n const isLastCol = colIndex + mergedColSpan === colCount;\n const isLastRow = rowIndex + mergedRowSpan === rowCount;\n const isCrossRowTd = mergedRowSpan > 1;\n if (isCrossRowTd) {\n cordKey[rowIndex] = {\n [colIndex]: []\n };\n }\n if (mergedColSpan > 1 || isCrossRowTd) {\n for (let i = rowIndex; i < rowIndex + mergedRowSpan; ++i) {\n if (isCrossRowTd) {\n cordKey[rowIndex][colIndex].push(rowIndexToKey[i]);\n }\n for (let j = colIndex; j < colIndex + mergedColSpan; ++j) {\n if (i === rowIndex && j === colIndex)\n continue;\n if (!(i in cordToPass)) {\n cordToPass[i] = [j];\n }\n else {\n cordToPass[i].push(j);\n }\n }\n }\n }\n const hoverKey = isCrossRowTd ? this.hoverKey : null;\n const { ellipsis } = column;\n return (h(\"td\", { key: colKey, style: {\n textAlign: column.align || undefined,\n left: pxfy(fixedColumnLeftMap[colKey]),\n right: pxfy(fixedColumnRightMap[colKey])\n }, colspan: mergedColSpan, rowspan: mergedRowSpan, \"data-col-key\": colKey, class: [\n `${mergedClsPrefix}-data-table-td`,\n column.className,\n isSummary && `${mergedClsPrefix}-data-table-td--summary`,\n ((hoverKey !== null &&\n cordKey[rowIndex][colIndex].includes(hoverKey)) ||\n (sorterKey !== false && sorterKey === colKey)) &&\n `${mergedClsPrefix}-data-table-td--hover`,\n column.fixed &&\n `${mergedClsPrefix}-data-table-td--fixed-${column.fixed}`,\n column.align &&\n `${mergedClsPrefix}-data-table-td--${column.align}-align`,\n {\n [`${mergedClsPrefix}-data-table-td--ellipsis`]: ellipsis === true ||\n // don't add ellipsis class if tooltip exists\n (ellipsis && !ellipsis.tooltip),\n [`${mergedClsPrefix}-data-table-td--selection`]: column.type === 'selection',\n [`${mergedClsPrefix}-data-table-td--expand`]: column.type === 'expand',\n [`${mergedClsPrefix}-data-table-td--last-col`]: isLastCol,\n [`${mergedClsPrefix}-data-table-td--last-row`]: isLastRow && !showExpandContent\n }\n ] },\n hasChildren && colIndex === firstContentfulColIndex\n ? [\n repeat(isSummary ? 0 : rowInfo.level, h(\"div\", { class: `${mergedClsPrefix}-data-table-indent`, style: indentStyle })),\n isSummary || !rowInfo.children ? (h(\"div\", { class: `${mergedClsPrefix}-data-table-expand-placeholder` })) : (h(ExpandTrigger, { class: `${mergedClsPrefix}-data-table-expand-trigger`, clsPrefix: mergedClsPrefix, expanded: expanded, onClick: () => {\n handleUpdateExpanded(rowKey);\n } }))\n ]\n : null,\n column.type === 'selection' ? (!isSummary ? (h(RenderSafeCheckbox, { key: currentPage, rowKey: rowKey, disabled: rowInfo.disabled, onUpdateChecked: (checked, e) => handleCheckboxUpdateChecked(rowInfo, checked, e.shiftKey) })) : null) : column.type === 'expand' ? (!isSummary ? (!column.expandable ||\n ((_a = column.expandable) === null || _a === void 0 ? void 0 : _a.call(column, rowData, rowIndex)) ? (h(ExpandTrigger, { clsPrefix: mergedClsPrefix, expanded: expanded, onClick: () => handleUpdateExpanded(rowKey) })) : null) : null) : (h(Cell, { index: rowIndex, row: rowData, column: column, isSummary: isSummary, mergedTheme: mergedTheme }))));\n });\n const props = rowProps ? rowProps(rowData, rowIndex) : undefined;\n const mergedRowClassName = typeof rowClassName === 'string'\n ? rowClassName\n : createRowClassName(rowData, rowIndex, rowClassName);\n const row = (h(\"tr\", Object.assign({ onMouseenter: () => {\n this.hoverKey = rowKey;\n }, key: rowKey, class: [\n `${mergedClsPrefix}-data-table-tr`,\n mergedRowClassName\n ] }, props), colNodes));\n if (showExpandContent) {\n rows.push(row, h(\"tr\", { class: `${mergedClsPrefix}-data-table-tr`, key: `${rowKey}__expand` },\n h(\"td\", { class: [\n `${mergedClsPrefix}-data-table-td`,\n `${mergedClsPrefix}-data-table-td--last-col`,\n rowIndex + 1 === rowCount &&\n `${mergedClsPrefix}-data-table-td--last-row`\n ], colspan: colCount }, renderExpand(rowData, rowIndex))));\n }\n else {\n rows.push(row);\n }\n });\n // Please note that the current virtual scroll mode impl\n // not very performant, since it supports all the feature of table.\n // If we can bailout some path it will be much faster. Since it\n // need to generate all vnodes before using the virtual list.\n if (virtualScroll) {\n return (h(VirtualList, { ref: \"virtualListRef\", items: rows, itemSize: 28, visibleItemsTag: VirtualListItemWrapper, visibleItemsProps: {\n clsPrefix: mergedClsPrefix,\n id: componentId,\n cols,\n onMouseenter: handleMouseenterTable,\n onMouseleave: handleMouseleaveTable\n }, showScrollbar: false, onResize: this.handleVirtualListResize, onScroll: this.handleVirtualListScroll, itemsStyle: contentStyle, itemResizable: true }, {\n default: ({ item }) => {\n return item;\n }\n }));\n }\n return (h(\"table\", { class: `${mergedClsPrefix}-data-table-table`, onMouseleave: handleMouseleaveTable, onMouseenter: handleMouseenterTable, style: {\n tableLayout: this.mergedTableLayout\n } },\n h(\"colgroup\", null, cols.map((col) => (h(\"col\", { key: col.key, style: col.style })))),\n showHeader ? h(TableHeader, { discrete: false }) : null,\n h(\"tbody\", { \"data-n-id\": componentId, class: `${mergedClsPrefix}-data-table-tbody` }, rows)));\n }\n }));\n }\n});\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, ref, defineComponent, inject, computed, renderSlot, watchEffect } from 'vue';\nimport { formatLength } from '../../_utils';\nimport TableHeader from './TableParts/Header';\nimport TableBody from './TableParts/Body';\nimport { dataTableInjectionKey } from './interface';\nexport default defineComponent({\n setup() {\n const { mergedClsPrefixRef, rightFixedColumnsRef, leftFixedColumnsRef, bodyWidthRef, maxHeightRef, minHeightRef, flexHeightRef, syncScrollState\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(dataTableInjectionKey);\n const headerInstRef = ref(null);\n const bodyInstRef = ref(null);\n const selfElRef = ref(null);\n const fixedStateInitializedRef = ref(!(leftFixedColumnsRef.value.length || rightFixedColumnsRef.value.length));\n const bodyStyleRef = computed(() => {\n return {\n maxHeight: formatLength(maxHeightRef.value),\n minHeight: formatLength(minHeightRef.value)\n };\n });\n function handleBodyResize(entry) {\n bodyWidthRef.value = entry.contentRect.width;\n syncScrollState();\n if (!fixedStateInitializedRef.value) {\n fixedStateInitializedRef.value = true;\n }\n }\n function getHeaderElement() {\n const { value } = headerInstRef;\n if (value) {\n return value.$el;\n }\n return null;\n }\n function getBodyElement() {\n const { value } = bodyInstRef;\n if (value) {\n return value.getScrollContainer();\n }\n return null;\n }\n const exposedMethods = {\n getBodyElement,\n getHeaderElement\n };\n watchEffect(() => {\n const { value: selfEl } = selfElRef;\n if (!selfEl)\n return;\n const transitionDisabledClass = `${mergedClsPrefixRef.value}-data-table-base-table--transition-disabled`;\n if (fixedStateInitializedRef.value) {\n setTimeout(() => {\n selfEl.classList.remove(transitionDisabledClass);\n }, 0);\n }\n else {\n selfEl.classList.add(transitionDisabledClass);\n }\n });\n return Object.assign({ maxHeight: maxHeightRef, mergedClsPrefix: mergedClsPrefixRef, selfElRef,\n headerInstRef,\n bodyInstRef, bodyStyle: bodyStyleRef, flexHeight: flexHeightRef, handleBodyResize }, exposedMethods);\n },\n render() {\n const { mergedClsPrefix, maxHeight, flexHeight } = this;\n const headerInBody = maxHeight === undefined && !flexHeight;\n return (h(\"div\", { class: `${mergedClsPrefix}-data-table-base-table`, ref: \"selfElRef\" },\n headerInBody ? null : h(TableHeader, { ref: \"headerInstRef\" }),\n h(TableBody, { ref: \"bodyInstRef\", style: this.bodyStyle, showHeader: headerInBody, flexHeight: flexHeight, onResize: this.handleBodyResize }),\n renderSlot(this.$slots, 'default')));\n }\n});\n","import { computed, ref } from 'vue';\nimport { call } from '../../_utils';\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useCheck(props, data) {\n const { paginatedDataRef, treeMateRef, selectionColumnRef } = data;\n const uncontrolledCheckedRowKeysRef = ref(props.defaultCheckedRowKeys);\n const mergedCheckState = computed(() => {\n const { checkedRowKeys } = props;\n return treeMateRef.value.getCheckedKeys(checkedRowKeys === undefined\n ? uncontrolledCheckedRowKeysRef.value\n : checkedRowKeys, {\n cascade: props.cascade\n });\n });\n const mergedCheckedRowKeysRef = computed(() => mergedCheckState.value.checkedKeys);\n const mergedInderminateRowKeysRef = computed(() => mergedCheckState.value.indeterminateKeys);\n const mergedCheckedRowKeySetRef = computed(() => {\n return new Set(mergedCheckedRowKeysRef.value);\n });\n const mergedInderminateRowKeySetRef = computed(() => {\n return new Set(mergedInderminateRowKeysRef.value);\n });\n const countOfCurrentPageCheckedRowsRef = computed(() => {\n const { value: mergedCheckedRowKeySet } = mergedCheckedRowKeySetRef;\n return paginatedDataRef.value.reduce((total, tmNode) => {\n const { key, disabled } = tmNode;\n return total + (!disabled && mergedCheckedRowKeySet.has(key) ? 1 : 0);\n }, 0);\n });\n const countOfCurrentPageDisabledRowsRef = computed(() => {\n return paginatedDataRef.value.filter((item) => item.disabled).length;\n });\n const someRowsCheckedRef = computed(() => {\n const { length } = paginatedDataRef.value;\n const { value: mergedInderminateRowKeySet } = mergedInderminateRowKeySetRef;\n return ((countOfCurrentPageCheckedRowsRef.value > 0 &&\n countOfCurrentPageCheckedRowsRef.value <\n length - countOfCurrentPageDisabledRowsRef.value) ||\n paginatedDataRef.value.some((rowData) => mergedInderminateRowKeySet.has(rowData.key)));\n });\n const allRowsCheckedRef = computed(() => {\n const { length } = paginatedDataRef.value;\n return (countOfCurrentPageCheckedRowsRef.value !== 0 &&\n countOfCurrentPageCheckedRowsRef.value ===\n length - countOfCurrentPageDisabledRowsRef.value);\n });\n const headerCheckboxDisabledRef = computed(() => {\n return paginatedDataRef.value.length === 0;\n });\n function doUpdateCheckedRowKeys(keys) {\n const { 'onUpdate:checkedRowKeys': _onUpdateCheckedRowKeys, onUpdateCheckedRowKeys, onCheckedRowKeysChange } = props;\n if (_onUpdateCheckedRowKeys)\n call(_onUpdateCheckedRowKeys, keys);\n if (onUpdateCheckedRowKeys)\n call(onUpdateCheckedRowKeys, keys);\n if (onCheckedRowKeysChange)\n call(onCheckedRowKeysChange, keys);\n uncontrolledCheckedRowKeysRef.value = keys;\n }\n function doCheck(rowKey) {\n doUpdateCheckedRowKeys(treeMateRef.value.check(rowKey, mergedCheckedRowKeysRef.value, {\n cascade: props.cascade\n }).checkedKeys);\n }\n function doUncheck(rowKey) {\n doUpdateCheckedRowKeys(treeMateRef.value.uncheck(rowKey, mergedCheckedRowKeysRef.value, {\n cascade: props.cascade\n }).checkedKeys);\n }\n function doCheckAll(checkWholeTable = false) {\n const { value: column } = selectionColumnRef;\n if (!column)\n return;\n const rowKeysToCheck = [];\n (checkWholeTable\n ? treeMateRef.value.treeNodes\n : paginatedDataRef.value).forEach((tmNode) => {\n if (!tmNode.disabled) {\n rowKeysToCheck.push(tmNode.key);\n }\n });\n // alway cascade, to emit correct row keys\n doUpdateCheckedRowKeys(treeMateRef.value.check(rowKeysToCheck, mergedCheckedRowKeysRef.value, {\n cascade: true\n }).checkedKeys);\n }\n function doUncheckAll(checkWholeTable = false) {\n const { value: column } = selectionColumnRef;\n if (!column)\n return;\n const rowKeysToUncheck = [];\n (checkWholeTable\n ? treeMateRef.value.treeNodes\n : paginatedDataRef.value).forEach((tmNode) => {\n if (!tmNode.disabled) {\n rowKeysToUncheck.push(tmNode.key);\n }\n });\n // alway cascade, to emit correct row keys\n doUpdateCheckedRowKeys(treeMateRef.value.uncheck(rowKeysToUncheck, mergedCheckedRowKeysRef.value, {\n cascade: true\n }).checkedKeys);\n }\n return {\n mergedCheckedRowKeySetRef,\n mergedCheckedRowKeysRef,\n mergedInderminateRowKeySetRef,\n someRowsCheckedRef,\n allRowsCheckedRef,\n headerCheckboxDisabledRef,\n doUpdateCheckedRowKeys,\n doCheckAll,\n doUncheckAll,\n doCheck,\n doUncheck\n };\n}\n","import { computed, ref } from 'vue';\nimport { useMemo, useMergedState } from 'vooks';\nimport { createTreeMate } from 'treemate';\nimport { createShallowClonedObject, getFlagOfOrder } from './utils';\nimport { call, warn } from '../../_utils';\n// useTableData combines filter, sorter and pagination\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useTableData(props, { dataRelatedColsRef }) {\n const selectionColumnRef = computed(() => {\n return (props.columns.find((col) => {\n if (col.type === 'selection') {\n return true;\n }\n return false;\n }) || null);\n });\n const treeMateRef = computed(() => {\n const { childrenKey } = props;\n return createTreeMate(props.data, {\n getKey: props.rowKey,\n getChildren: (rowData) => rowData[childrenKey],\n getDisabled: (rowData) => {\n var _a, _b;\n if ((_b = (_a = selectionColumnRef.value) === null || _a === void 0 ? void 0 : _a.disabled) === null || _b === void 0 ? void 0 : _b.call(_a, rowData)) {\n return true;\n }\n return false;\n }\n });\n });\n const firstContentfulColIndexRef = useMemo(() => {\n const { columns } = props;\n const { length } = columns;\n for (let i = 0; i < length; ++i) {\n if (!columns[i].type) {\n return i;\n }\n }\n return 0;\n });\n const uncontrolledFilterStateRef = ref({});\n const uncontrolledSortStateRef = ref(null);\n const uncontrolledCurrentPageRef = ref(1);\n const uncontrolledPageSizeRef = ref(10);\n dataRelatedColsRef.value.forEach((column) => {\n var _a, _b;\n if (column.sorter !== undefined) {\n uncontrolledSortStateRef.value = {\n columnKey: column.key,\n sorter: column.sorter,\n order: (_a = column.defaultSortOrder) !== null && _a !== void 0 ? _a : false\n };\n }\n if (column.filter) {\n const defaultFilterOptionValues = column.defaultFilterOptionValues;\n if (column.filterMultiple) {\n uncontrolledFilterStateRef.value[column.key] =\n defaultFilterOptionValues || [];\n }\n else if (defaultFilterOptionValues !== undefined) {\n // this branch is for compatibility, someone may use `values` in single filter mode\n uncontrolledFilterStateRef.value[column.key] =\n defaultFilterOptionValues === null ? [] : defaultFilterOptionValues;\n }\n else {\n uncontrolledFilterStateRef.value[column.key] =\n (_b = column.defaultFilterOptionValue) !== null && _b !== void 0 ? _b : null;\n }\n }\n });\n const controlledCurrentPageRef = computed(() => {\n const { pagination } = props;\n if (pagination === false)\n return undefined;\n return pagination.page;\n });\n const controlledPageSizeRef = computed(() => {\n const { pagination } = props;\n if (pagination === false)\n return undefined;\n return pagination.pageSize;\n });\n const mergedCurrentPageRef = useMergedState(controlledCurrentPageRef, uncontrolledCurrentPageRef);\n const mergedPageSizeRef = useMergedState(controlledPageSizeRef, uncontrolledPageSizeRef);\n const mergedPageCountRef = computed(() => {\n const { pagination } = props;\n if (pagination) {\n const { pageCount } = pagination;\n if (pageCount !== undefined)\n return pageCount;\n }\n return undefined;\n });\n const mergedSortStateRef = computed(() => {\n // If one of the columns's sort order is false or 'ascend' or 'descend',\n // the table's controll functionality should work in controlled manner.\n const columnsWithControlledSortOrder = dataRelatedColsRef.value.filter((column) => column.type !== 'selection' &&\n column.sorter !== undefined &&\n (column.sortOrder === 'ascend' ||\n column.sortOrder === 'descend' ||\n column.sortOrder === false));\n // if multiple column is controlled sortable, then we need to find a column with active sortOrder\n const columnToSort = columnsWithControlledSortOrder.filter((col) => col.sortOrder !== false)[0];\n if (columnToSort) {\n return {\n columnKey: columnToSort.key,\n // column to sort has controlled sorter\n // sorter && sort order won't be undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n order: columnToSort.sortOrder,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n sorter: columnToSort.sorter\n };\n }\n if (columnsWithControlledSortOrder.length)\n return null;\n return uncontrolledSortStateRef.value;\n });\n const mergedFilterStateRef = computed(() => {\n const columnsWithControlledFilter = dataRelatedColsRef.value.filter((column) => {\n return (column.filterOptionValues !== undefined ||\n column.filterOptionValue !== undefined);\n });\n const controlledFilterState = {};\n columnsWithControlledFilter.forEach((column) => {\n if (column.type === 'selection' || column.type === 'expand')\n return;\n controlledFilterState[column.key] =\n column.filterOptionValues || column.filterOptionValue || null;\n });\n const activeFilters = Object.assign(createShallowClonedObject(uncontrolledFilterStateRef.value), controlledFilterState);\n return activeFilters;\n });\n const filteredDataRef = computed(() => {\n const mergedFilterState = mergedFilterStateRef.value;\n const { columns } = props;\n function createDefaultFilter(columnKey) {\n return (filterOptionValue, row) => !!~String(row[columnKey]).indexOf(String(filterOptionValue));\n }\n const { value: { treeNodes: data } } = treeMateRef;\n const columnEntries = [];\n columns.forEach((column) => {\n if (column.type === 'selection' ||\n column.type === 'expand' ||\n 'children' in column) {\n return;\n }\n columnEntries.push([column.key, column]);\n });\n return data\n ? data.filter((tmNode) => {\n const { rawNode: row } = tmNode;\n // traverse all filters\n for (const [columnKey, column] of columnEntries) {\n let activeFilterOptionValues = mergedFilterState[columnKey];\n if (activeFilterOptionValues == null)\n continue;\n if (!Array.isArray(activeFilterOptionValues)) {\n activeFilterOptionValues = [activeFilterOptionValues];\n }\n if (!activeFilterOptionValues.length)\n continue;\n // When async, filter won't be set, so data won't be filtered\n const filter = column.filter === 'default'\n ? createDefaultFilter(columnKey)\n : column.filter;\n if (column && typeof filter === 'function') {\n if (column.filterMode === 'and') {\n if (activeFilterOptionValues.some((filterOptionValue) => !filter(filterOptionValue, row))) {\n return false;\n }\n }\n else {\n if (activeFilterOptionValues.some((filterOptionValue) => filter(filterOptionValue, row))) {\n continue;\n }\n else {\n return false;\n }\n }\n }\n }\n return true;\n })\n : [];\n });\n const sortedDataRef = computed(() => {\n const activeSorter = mergedSortStateRef.value;\n if (activeSorter) {\n // When async, mergedSortState.sorter should be true\n // and we sort nothing, just return the filtered data\n if (activeSorter.sorter === true || activeSorter.sorter === false) {\n return filteredDataRef.value;\n }\n const filteredData = filteredDataRef.value.slice(0);\n const columnKey = activeSorter.columnKey;\n // 1 for asc\n // -1 for desc\n const order = activeSorter.order;\n const sorter = activeSorter.sorter === undefined || activeSorter.sorter === 'default'\n ? (row1, row2) => {\n const value1 = row1[columnKey];\n const value2 = row2[columnKey];\n if (typeof value1 === 'number' && typeof value2 === 'number') {\n return value1 - value2;\n }\n else if (typeof value1 === 'string' &&\n typeof value2 === 'string') {\n return value1.localeCompare(value2);\n }\n return 0;\n }\n : activeSorter.sorter;\n return filteredData.sort((tmNode1, tmNode2) => getFlagOfOrder(order) * sorter(tmNode1.rawNode, tmNode2.rawNode));\n }\n return filteredDataRef.value;\n });\n const paginatedDataRef = computed(() => {\n if (props.remote)\n return treeMateRef.value.treeNodes;\n if (!props.pagination)\n return sortedDataRef.value;\n const pageSize = mergedPageSizeRef.value;\n const startIndex = (mergedCurrentPageRef.value - 1) * pageSize;\n return sortedDataRef.value.slice(startIndex, startIndex + pageSize);\n });\n const rawPaginatedDataRef = computed(() => {\n return paginatedDataRef.value.map((tmNode) => tmNode.rawNode);\n });\n function mergedOnUpdatePage(page) {\n const { pagination } = props;\n if (pagination) {\n const { onChange, 'onUpdate:page': _onUpdatePage, onUpdatePage } = pagination;\n if (onChange)\n call(onChange, page);\n if (onUpdatePage)\n call(onUpdatePage, page);\n if (_onUpdatePage)\n call(_onUpdatePage, page);\n doUpdatePage(page);\n }\n }\n function mergedOnUpdatePageSize(pageSize) {\n const { pagination } = props;\n if (pagination) {\n const { onPageSizeChange, 'onUpdate:pageSize': onUpdatePageSize } = pagination;\n if (onPageSizeChange)\n call(onPageSizeChange, pageSize);\n if (onUpdatePageSize)\n call(onUpdatePageSize, pageSize);\n doUpdatePageSize(pageSize);\n }\n }\n const mergedItemCountRef = computed(() => {\n if (props.remote) {\n const { pagination } = props;\n if (pagination) {\n const { itemCount } = pagination;\n if (itemCount !== undefined)\n return itemCount;\n }\n return undefined;\n }\n return filteredDataRef.value.length;\n });\n const mergedPaginationRef = computed(() => {\n return Object.assign(Object.assign({}, props.pagination), { \n // reset deprecated methods\n onChange: undefined, onPageSizeChange: undefined, 'onUpdate:page': mergedOnUpdatePage, 'onUpdate:pageSize': mergedOnUpdatePageSize, \n // writing merged props after pagination to avoid\n // pagination[key] === undefined\n // key still exists but value is undefined\n page: mergedCurrentPageRef.value, pageSize: mergedPageSizeRef.value, pageCount: mergedItemCountRef.value === undefined\n ? mergedPageCountRef.value\n : undefined, itemCount: mergedItemCountRef.value });\n });\n function doUpdatePage(page) {\n const { 'onUpdate:page': _onUpdatePage, onPageChange, onUpdatePage } = props;\n if (onUpdatePage)\n call(onUpdatePage, page);\n if (onPageChange)\n call(onPageChange, page);\n if (_onUpdatePage)\n call(_onUpdatePage, page);\n uncontrolledCurrentPageRef.value = page;\n }\n function doUpdatePageSize(pageSize) {\n const { 'onUpdate:pageSize': _onUpdatePageSize, onPageSizeChange, onUpdatePageSize } = props;\n if (onPageSizeChange)\n call(onPageSizeChange, pageSize);\n if (onUpdatePageSize)\n call(onUpdatePageSize, pageSize);\n if (_onUpdatePageSize)\n call(_onUpdatePageSize, pageSize);\n uncontrolledPageSizeRef.value = pageSize;\n }\n function doUpdateSorter(sortState) {\n const { 'onUpdate:sorter': _onUpdateSorter, onUpdateSorter, onSorterChange } = props;\n if (_onUpdateSorter)\n call(_onUpdateSorter, sortState);\n if (onUpdateSorter)\n call(onUpdateSorter, sortState);\n if (onSorterChange)\n call(onSorterChange, sortState);\n uncontrolledSortStateRef.value = sortState;\n }\n function doUpdateFilters(filters, sourceColumn) {\n const { onUpdateFilters, 'onUpdate:filters': _onUpdateFilters, onFiltersChange } = props;\n if (onUpdateFilters)\n call(onUpdateFilters, filters, sourceColumn);\n if (_onUpdateFilters)\n call(_onUpdateFilters, filters, sourceColumn);\n if (onFiltersChange)\n call(onFiltersChange, filters, sourceColumn);\n uncontrolledFilterStateRef.value = filters;\n }\n function page(page) {\n doUpdatePage(page);\n }\n function sort(columnKey, order = 'ascend') {\n if (!columnKey) {\n clearSorter();\n }\n else {\n const columnToSort = dataRelatedColsRef.value.find((column) => column.type !== 'selection' &&\n column.type !== 'expand' &&\n column.key === columnKey);\n if (!columnToSort || !columnToSort.sorter)\n return;\n const sorter = columnToSort.sorter;\n doUpdateSorter({\n columnKey,\n sorter,\n order: order\n });\n }\n }\n function clearSorter() {\n doUpdateSorter(null);\n }\n function clearFilter() {\n clearFilters();\n }\n function clearFilters() {\n filters({});\n }\n function filters(filters) {\n filter(filters);\n }\n function filter(filters) {\n if (!filters) {\n doUpdateFilters({});\n }\n else if (filters) {\n doUpdateFilters(createShallowClonedObject(filters));\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn('data-table', '`filters` is not an object');\n }\n }\n return {\n treeMateRef,\n mergedCurrentPageRef,\n mergedPaginationRef,\n paginatedDataRef,\n rawPaginatedDataRef,\n mergedFilterStateRef,\n mergedSortStateRef: mergedSortStateRef,\n hoverKeyRef: ref(null),\n selectionColumnRef,\n firstContentfulColIndexRef,\n doUpdateFilters,\n doUpdateSorter,\n doUpdatePageSize,\n doUpdatePage,\n // exported methods\n filter,\n filters,\n clearFilter,\n clearFilters,\n page,\n sort\n };\n}\n","import { beforeNextFrameOnce } from 'seemly';\nimport { computed, watch, ref } from 'vue';\nimport { formatLength } from '../../_utils';\nimport { getColWidth, getColKey } from './utils';\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useScroll(props, { mainTableInstRef, mergedCurrentPageRef, bodyWidthRef, scrollPartRef }) {\n let scrollLeft = 0;\n const leftActiveFixedColKeyRef = ref(null);\n const rightActiveFixedColKeyRef = ref(null);\n const styleScrollXRef = computed(() => {\n return formatLength(props.scrollX);\n });\n const leftFixedColumnsRef = computed(() => {\n return props.columns.filter((column) => column.fixed === 'left');\n });\n const rightFixedColumnsRef = computed(() => {\n return props.columns.filter((column) => column.fixed === 'right');\n });\n const fixedColumnLeftMapRef = computed(() => {\n const columns = {};\n let left = 0;\n for (const column of leftFixedColumnsRef.value) {\n columns[getColKey(column)] = left;\n left += getColWidth(column) || 0;\n }\n return columns;\n });\n const fixedColumnRightMapRef = computed(() => {\n const columns = {};\n let right = 0;\n for (const column of rightFixedColumnsRef.value.reverse()) {\n columns[getColKey(column)] = right;\n right += column.width || 0;\n }\n return columns;\n });\n function deriveActiveLeftFixedColumn() {\n // target is header element\n const { value: leftFixedColumns } = leftFixedColumnsRef;\n let leftWidth = 0;\n const { value: fixedColumnLeftMap } = fixedColumnLeftMapRef;\n let leftActiveFixedColKey = null;\n for (let i = 0; i < leftFixedColumns.length; ++i) {\n const key = getColKey(leftFixedColumns[i]);\n if (scrollLeft > (fixedColumnLeftMap[key] || 0) - leftWidth) {\n leftActiveFixedColKey = key;\n leftWidth += getColWidth(leftFixedColumns[i]) || 0;\n }\n else {\n break;\n }\n }\n leftActiveFixedColKeyRef.value = leftActiveFixedColKey;\n }\n function deriveActiveRightFixedColumn() {\n // target is header element\n const { value: rightFixedColumns } = rightFixedColumnsRef;\n const scrollWidth = Number(props.scrollX);\n const { value: tableWidth } = bodyWidthRef;\n if (tableWidth === null)\n return;\n let rightWidth = 0;\n let rightActiveFixedColKey = null;\n const { value: fixedColumnRightMap } = fixedColumnRightMapRef;\n for (let i = 0; i < rightFixedColumns.length; ++i) {\n const key = getColKey(rightFixedColumns[i]);\n if (Math.round(scrollLeft + (fixedColumnRightMap[key] || 0) + tableWidth - rightWidth) < scrollWidth) {\n rightActiveFixedColKey = key;\n rightWidth += getColWidth(rightFixedColumns[i]) || 0;\n }\n else {\n break;\n }\n }\n rightActiveFixedColKeyRef.value = rightActiveFixedColKey;\n }\n function getScrollElements() {\n const header = mainTableInstRef.value\n ? mainTableInstRef.value.getHeaderElement()\n : null;\n const body = mainTableInstRef.value\n ? mainTableInstRef.value.getBodyElement()\n : null;\n return {\n header,\n body\n };\n }\n function scrollMainTableBodyToTop() {\n const { body } = getScrollElements();\n if (body) {\n body.scrollTop = 0;\n }\n }\n function handleTableHeaderScroll() {\n if (scrollPartRef.value === 'head') {\n beforeNextFrameOnce(syncScrollState);\n }\n }\n function handleTableBodyScroll() {\n if (scrollPartRef.value === 'body') {\n beforeNextFrameOnce(syncScrollState);\n }\n }\n function syncScrollState() {\n // We can't simply use props.scrollX to determine whether the table has\n // need to be sync since user may set column width for each column.\n // Just let it be, the scroll listener won't be triggered for a basic table.\n const { header, body } = getScrollElements();\n if (!body)\n return;\n const { value: tableWidth } = bodyWidthRef;\n if (tableWidth === null)\n return;\n const { value: scrollPart } = scrollPartRef;\n if (props.maxHeight || props.flexHeight) {\n if (!header)\n return;\n // we need to deal with overscroll\n if (scrollPart === 'head') {\n scrollLeft = header.scrollLeft;\n body.scrollLeft = scrollLeft;\n }\n else {\n scrollLeft = body.scrollLeft;\n header.scrollLeft = scrollLeft;\n }\n }\n else {\n scrollLeft = body.scrollLeft;\n }\n deriveActiveLeftFixedColumn();\n deriveActiveRightFixedColumn();\n }\n function setHeaderScrollLeft(left) {\n const { header } = getScrollElements();\n if (!header)\n return;\n header.scrollLeft = left;\n syncScrollState();\n }\n watch(mergedCurrentPageRef, () => {\n scrollMainTableBodyToTop();\n });\n return {\n styleScrollXRef,\n fixedColumnLeftMapRef,\n fixedColumnRightMapRef,\n leftFixedColumnsRef,\n rightFixedColumnsRef,\n leftActiveFixedColKeyRef,\n rightActiveFixedColKeyRef,\n syncScrollState,\n handleTableBodyScroll,\n handleTableHeaderScroll,\n setHeaderScrollLeft\n };\n}\n","import fadeInScaleUpTransition from '../../../_styles/transitions/fade-in-scale-up.cssr';\nimport { c, cB, cE, cM, cNotM, insideModal, insidePopover } from '../../../_utils/cssr';\nconst fixedColumnStyle = createFixedColumnStyle(); // vars:\n// --font-size\n// --th-padding\n// --td-padding\n// --bezier\n// --border-radius\n// --line-height\n// --border-color\n// --border-color-modal\n// --border-color-popover\n// --th-color\n// --th-color-hover\n// --th-color-modal\n// --th-color-hover-modal\n// --th-color-popover\n// --th-color-hover-popover\n// --td-color\n// --td-color-hover\n// --td-color-modal\n// --td-color-hover-modal\n// --td-color-popover\n// --td-color-hover-popover\n// --th-text-color\n// --td-text-color\n// --th-font-weight\n// --th-button-color-hover\n// --th-icon-color\n// --th-icon-color-active\n// --filter-size\n// --action-divider-color\n// --action-padding\n// --action-button-margin\n// --pagination-margin\n// --empty-padding\n// --sorter-size\n// --loading-size\n// --loading-color\n// --opacity-loading\n// --box-shadow-before used in Body.tsx\n// --box-shadow-after used in Body.tsx\n\nexport default c([cB('data-table', `\n width: 100%;\n font-size: var(--font-size);\n display: flex;\n flex-direction: column;\n position: relative;\n --merged-th-color: var(--th-color);\n --merged-td-color: var(--td-color);\n --merged-border-color: var(--border-color);\n --merged-th-color-hover: var(--th-color-hover);\n --merged-td-color-hover: var(--td-color-hover);\n `, [cM('flex-height', [c('>', [cB('data-table-wrapper', `\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n `, [c('>', [cB('data-table-base-table', `\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n `, [c('>', [cB('data-table-base-table-body', 'flex-basis: 0;', [// last-child means there is no empty icon\n// body is a scrollbar, we need to override height 100%\nc('&:last-child', 'flex-grow: 1;')])])])])])])]), c('>', [cB('base-loading', `\n color: var(--loading-color);\n font-size: var(--loading-size);\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n transition: color .3s var(--bezier);\n `, [fadeInScaleUpTransition({\n originalTransform: 'translateX(-50%) translateY(-50%)'\n})])]), cB('data-table-expand-trigger', 'cursor: pointer;'), cB('data-table-expand-placeholder', `\n margin-right: 8px;\n display: inline-block;\n width: 16px;\n height: 1px;\n `), cB('data-table-indent', `\n display: inline-block;\n height: 1px;\n `), cB('data-table-expand-trigger', `\n margin-right: 8px;\n cursor: pointer;\n font-size: 16px;\n vertical-align: -.125em;\n `), cB('data-table-thead', {\n transition: 'background-color .3s var(--bezier)',\n backgroundColor: 'var(--merged-th-color)'\n}), cB('data-table-tr', {\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n transition: 'background-color .3s var(--bezier)'\n}, [c('&:hover', {\n backgroundColor: 'var(--merged-td-color-hover)'\n}, [cB('data-table-td', {\n backgroundColor: 'var(--merged-td-color-hover)'\n})])]), cB('data-table-th', `\n padding: var(--th-padding);\n position: relative;\n text-align: start;\n box-sizing: border-box;\n background-color: var(--merged-th-color);\n border-color: var(--merged-border-color);\n border-bottom: 1px solid var(--merged-border-color);\n color: var(--th-text-color);\n transition:\n border-color .3s var(--bezier),\n color .3s var(--bezier),\n background-color .3s var(--bezier);\n font-weight: var(--th-font-weight);\n `, [cM('filterable', {\n paddingRight: '36px'\n}), fixedColumnStyle, cM('selection', `\n padding: 0;\n text-align: center;\n line-height: 0;\n z-index: 3;\n `), cE('ellipsis', `\n display: inline-block;\n vertical-align: bottom;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n `), cM('hover', {\n backgroundColor: 'var(--merged-th-color-hover)'\n}), cM('sortable', {\n cursor: 'pointer'\n}, [cE('ellipsis', {\n maxWidth: 'calc(100% - 18px)'\n}), c('&:hover', {\n backgroundColor: 'var(--merged-th-color-hover)'\n})]), cB('data-table-sorter', `\n height: var(--sorter-size);\n width: var(--sorter-size);\n margin-left: 4px;\n position: relative;\n display: inline-flex;\n vertical-align: -0.2em;\n color: var(--th-icon-color);\n transition: \n transform .3s var(--bezier),\n color .3s var(--bezier);\n `, [cM('desc', {\n transform: 'rotate(0)'\n}), cM('asc', {\n transform: 'rotate(-180deg)'\n}), cM('asc, desc', {\n color: 'var(--th-icon-color-active)'\n})]), cB('data-table-filter', `\n position: absolute;\n z-index: auto;\n right: 0;\n width: 36px;\n top: 0;\n bottom: 0;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n transition:\n background-color .3s var(--bezier),\n color .3s var(--bezier);\n font-size: var(--filter-size);\n color: var(--th-icon-color);\n `, [c('&:hover', `\n background-color: var(--th-button-color-hover);\n `), cM('show', `\n background-color: var(--th-button-color-hover);\n `), cM('active', `\n background-color: var(--th-button-color-hover);\n color: var(--th-icon-color-active);\n `)])]), cB('data-table-td', `\n padding: var(--td-padding);\n text-align: start;\n box-sizing: border-box;\n border: none;\n background-color: var(--merged-td-color);\n color: var(--td-text-color);\n border-bottom: 1px solid var(--merged-border-color);\n transition:\n box-shadow .3s var(--bezier),\n background-color .3s var(--bezier),\n border-color .3s var(--bezier),\n color .3s var(--bezier);\n `, [cM('last-row', {\n borderBottom: '0 solid var(--merged-border-color)'\n}, [// make sure there is no overlap between bottom border and\n// fixed column box shadow\nc('&::after', {\n bottom: '0 !important'\n}), c('&::before', {\n bottom: '0 !important'\n})]), cM('summary', `\n background-color: var(--merged-th-color);\n `), cM('hover', {\n backgroundColor: 'var(--merged-td-color-hover)'\n}), cM('ellipsis', `\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n `), cM('selection, expand', `\n text-align: center;\n padding: 0;\n line-height: 0;\n `), fixedColumnStyle]), cB('data-table-empty', `\n padding: var(--empty-padding);\n flex-grow: 1;\n flex-shrink: 0;\n opacity: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity .3s var(--bezier);\n `, [cM('hide', {\n opacity: 0\n})]), cE('pagination', `\n margin: var(--pagination-margin);\n display: flex;\n justify-content: flex-end;\n `), cB('data-table-wrapper', `\n position: relative;\n opacity: 1;\n transition: opacity .3s var(--bezier), border-color .3s var(--bezier);\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n line-height: var(--line-height);\n `), cM('loading', [cB('data-table-wrapper', 'opacity: var(--opacity-loading);')]), cM('single-column', [cB('data-table-td', {\n borderBottom: '0 solid var(--merged-border-color)'\n}, [c('&::after, &::before', {\n bottom: '0 !important'\n})])]), cNotM('single-line', [cB('data-table-th', {\n borderRight: '1px solid var(--merged-border-color)'\n}, [cM('last', {\n borderRight: '0 solid var(--merged-border-color)'\n})]), cB('data-table-td', {\n borderRight: '1px solid var(--merged-border-color)'\n}, [cM('last-col', {\n borderRight: '0 solid var(--merged-border-color)'\n})])]), cM('bordered', [cB('data-table-wrapper', {\n border: '1px solid var(--merged-border-color)',\n borderBottomLeftRadius: 'var(--border-radius)',\n borderBottomRightRadius: 'var(--border-radius)'\n}), cB('data-table-td', [cM('last-row', {\n borderBottom: '0 solid var(--merged-border-color)'\n})]), cB('data-table-base-table-body', `\n border-bottom-left-radius: calc(var(--border-radius) - 1px);\n border-bottom-right-radius: calc(var(--border-radius) - 1px);\n `)]), cB('data-table-base-table', [cM('transition-disabled', [cB('data-table-th', [c('&::after, &::before', {\n transition: 'none'\n})]), cB('data-table-td', [c('&::after, &::before', {\n transition: 'none'\n})])])]), cM('bottom-bordered', [cB('data-table-td', [cM('last-row', {\n borderBottom: '1px solid var(--merged-border-color)'\n})])]), cB('data-table-table', `\n font-variant-numeric: tabular-nums;\n width: 100%;\n word-wrap: break-word;\n word-break: break-all;\n transition: background-color .3s var(--bezier);\n border-collapse: separate;\n border-spacing: 0;\n background-color: var(--merged-td-color);\n `), cB('data-table-base-table-header', `\n border-top-left-radius: calc(var(--border-radius) - 1px);\n border-top-right-radius: calc(var(--border-radius) - 1px);\n z-index: 3;\n overflow: scroll;\n flex-shrink: 0;\n transition: border-color .3s var(--bezier);\n scrollbar-width: none;\n `, [c('&::-webkit-scrollbar', {\n width: 0,\n height: 0\n})]), cB('data-table-check-extra', `\n transition: color .3s var(--bezier);\n color: var(--th-icon-color);\n position: absolute;\n font-size: 14px;\n right: -4px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n `)]), cB('data-table-filter-menu', [cB('scrollbar', {\n maxHeight: '240px'\n}), cE('group', {\n display: 'flex',\n flexDirection: 'column',\n padding: '12px 12px 0 12px'\n}, [cB('checkbox', {\n marginBottom: '12px',\n marginRight: 0\n}), cB('radio', {\n marginBottom: '12px',\n marginRight: 0\n})]), cE('action', `\n padding: var(--action-padding);\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-evenly;\n border-top: 1px solid var(--action-divider-color);\n `, [cB('button', [c('&:not(:last-child)', {\n margin: 'var(--action-button-margin)'\n}), c('&:last-child', {\n marginRight: 0\n})])]), cB('divider', {\n margin: '0!important'\n})]), insideModal(cB('data-table', `\n --merged-th-color: var(--th-color-modal);\n --merged-td-color: var(--td-color-modal);\n --merged-border-color: var(--border-color-modal);\n --merged-th-color-hover: var(--th-color-hover-modal);\n --merged-td-color-hover: var(--td-color-hover-modal);\n `)), insidePopover(cB('data-table', `\n --merged-th-color: var(--th-color-popover);\n --merged-td-color: var(--td-color-popover);\n --merged-border-color: var(--border-color-popover);\n --merged-th-color-hover: var(--th-color-hover-popover);\n --merged-td-color-hover: var(--td-color-hover-popover);\n `))]);\n\nfunction createFixedColumnStyle() {\n return [cM('fixed-left', `\n left: 0;\n position: sticky;\n z-index: 2;\n `, [c('&::after', `\n pointer-events: none;\n content: \"\";\n width: 36px;\n display: inline-block;\n position: absolute;\n top: 0;\n bottom: -1px;\n transition: box-shadow .2s var(--bezier);\n right: -36px;\n `)]), cM('fixed-right', {\n right: 0,\n position: 'sticky',\n zIndex: 1\n }, [c('&::before', `\n pointer-events: none;\n content: \"\";\n width: 36px;\n display: inline-block;\n position: absolute;\n top: 0;\n bottom: -1px;\n transition: box-shadow .2s var(--bezier);\n left: -36px;\n `)])];\n}","import { computed } from 'vue';\nimport { getColKey, createCustomWidthStyle } from './utils';\nfunction getRowsAndCols(columns) {\n const rows = [];\n const cols = [];\n const dataRelatedCols = [];\n const rowItemMap = new WeakMap();\n let maxDepth = -1;\n let totalRowSpan = 0;\n let hasEllpisis = false;\n function ensureMaxDepth(columns, currentDepth) {\n if (currentDepth > maxDepth) {\n rows[currentDepth] = [];\n maxDepth = currentDepth;\n }\n for (const column of columns) {\n if ('children' in column) {\n ensureMaxDepth(column.children, currentDepth + 1);\n }\n else {\n cols.push({\n key: getColKey(column),\n style: createCustomWidthStyle(column),\n column\n });\n totalRowSpan += 1;\n hasEllpisis = !!column.ellipsis;\n dataRelatedCols.push(column);\n }\n }\n }\n ensureMaxDepth(columns, 0);\n function ensureColLayout(columns, currentDepth, parentIsLast) {\n let currentLeafIndex = -1;\n let hideUntilIndex = 0;\n const lastIndex = columns.length - 1;\n columns.forEach((column, index) => {\n var _a;\n if ('children' in column) {\n // do not allow colSpan > 1 for non-leaf th\n const isLast = parentIsLast && index === lastIndex;\n const rowItem = {\n column,\n colSpan: 0,\n rowSpan: 1,\n isLast\n };\n ensureColLayout(column.children, currentDepth + 1, isLast);\n column.children.forEach((childColumn) => {\n var _a, _b;\n rowItem.colSpan += (_b = (_a = rowItemMap.get(childColumn)) === null || _a === void 0 ? void 0 : _a.colSpan) !== null && _b !== void 0 ? _b : 0;\n });\n rowItemMap.set(column, rowItem);\n rows[currentDepth].push(rowItem);\n }\n else {\n currentLeafIndex += 1;\n if (currentLeafIndex < hideUntilIndex) {\n return;\n }\n let colSpan = 1;\n if ('titleColSpan' in column) {\n colSpan = (_a = column.titleColSpan) !== null && _a !== void 0 ? _a : 1;\n }\n if (colSpan > 1) {\n hideUntilIndex = currentLeafIndex + colSpan;\n }\n const isLast = currentLeafIndex + colSpan === totalRowSpan;\n const rowItem = {\n column,\n colSpan: colSpan,\n rowSpan: maxDepth - currentDepth + 1,\n isLast\n };\n rowItemMap.set(column, rowItem);\n rows[currentDepth].push(rowItem);\n }\n });\n }\n ensureColLayout(columns, 0, true);\n return {\n hasEllpisis,\n rows,\n cols,\n dataRelatedCols\n };\n}\nexport function useGroupHeader(props) {\n const rowsAndCols = computed(() => getRowsAndCols(props.columns));\n return {\n rowsRef: computed(() => rowsAndCols.value.rows),\n colsRef: computed(() => rowsAndCols.value.cols),\n hasEllpisisRef: computed(() => rowsAndCols.value.hasEllpisis),\n dataRelatedColsRef: computed(() => rowsAndCols.value.dataRelatedCols)\n };\n}\n","import { toRef, ref } from 'vue';\nimport { useMemo, useMergedState } from 'vooks';\nimport { call, warn } from '../../_utils';\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useExpand(props) {\n const renderExpandRef = useMemo(() => {\n for (const col of props.columns) {\n if (col.type === 'expand') {\n if (process.env.NODE_ENV !== 'production' && !col.renderExpand) {\n warn('data-table', 'column with type `expand` has no `renderExpand` prop.');\n }\n return col.renderExpand;\n }\n }\n });\n const uncontrolledExpandedRowKeysRef = ref(props.defaultExpandedRowKeys);\n const controlledExpandedRowKeysRef = toRef(props, 'expandedRowKeys');\n const mergedExpandedRowKeysRef = useMergedState(controlledExpandedRowKeysRef, uncontrolledExpandedRowKeysRef);\n function doUpdateExpandedRowKeys(expandedKeys) {\n const { onUpdateExpandedRowKeys, 'onUpdate:expandedRowKeys': _onUpdateExpandedRowKeys } = props;\n if (onUpdateExpandedRowKeys) {\n call(onUpdateExpandedRowKeys, expandedKeys);\n }\n if (_onUpdateExpandedRowKeys) {\n call(_onUpdateExpandedRowKeys, expandedKeys);\n }\n uncontrolledExpandedRowKeysRef.value = expandedKeys;\n }\n return {\n mergedExpandedRowKeysRef,\n renderExpandRef,\n doUpdateExpandedRowKeys\n };\n}\n","import { h, computed, defineComponent, ref, provide, toRef, renderSlot, Transition } from 'vue';\nimport { createId } from 'seemly';\nimport { useConfig, useLocale, useTheme } from '../../_mixins';\nimport { NBaseLoading } from '../../_internal';\nimport { NEmpty } from '../../empty';\nimport { NPagination } from '../../pagination';\nimport { warn, createKey } from '../../_utils';\nimport { dataTableLight } from '../styles';\nimport MainTable from './MainTable';\nimport { useCheck } from './use-check';\nimport { useTableData } from './use-table-data';\nimport { useScroll } from './use-scroll';\nimport { dataTableInjectionKey } from './interface';\nimport style from './styles/index.cssr';\nimport { useGroupHeader } from './use-group-header';\nimport { useExpand } from './use-expand';\nexport const dataTableProps = Object.assign(Object.assign({}, useTheme.props), { pagination: {\n type: [Object, Boolean],\n default: false\n }, minHeight: [Number, String], maxHeight: [Number, String], \n // Use any type as row data to make prop data acceptable\n columns: {\n type: Array,\n default: () => []\n }, rowClassName: [String, Function], rowProps: Function, rowKey: Function, summary: [Function], data: {\n type: Array,\n default: () => []\n }, loading: Boolean, bordered: {\n type: Boolean,\n default: undefined\n }, bottomBordered: {\n type: Boolean,\n default: undefined\n }, scrollX: [Number, String], defaultCheckedRowKeys: {\n type: Array,\n default: () => []\n }, checkedRowKeys: Array, singleLine: {\n type: Boolean,\n default: true\n }, singleColumn: Boolean, size: {\n type: String,\n default: 'medium'\n }, remote: Boolean, defaultExpandedRowKeys: {\n type: Array,\n default: []\n }, expandedRowKeys: Array, virtualScroll: Boolean, tableLayout: {\n type: String,\n default: 'auto'\n }, cascade: {\n type: Boolean,\n default: true\n }, childrenKey: {\n type: String,\n default: 'children'\n }, indent: {\n type: Number,\n default: 16\n }, flexHeight: Boolean, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array], 'onUpdate:sorter': [Function, Array], onUpdateSorter: [Function, Array], 'onUpdate:filters': [Function, Array], onUpdateFilters: [Function, Array], 'onUpdate:checkedRowKeys': [Function, Array], onUpdateCheckedRowKeys: [Function, Array], 'onUpdate:expandedRowKeys': [Function, Array], onUpdateExpandedRowKeys: [Function, Array], \n // deprecated\n onPageChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('data-table', '`on-page-change` is deprecated, please use `on-update:page` instead.');\n }\n return true;\n },\n default: undefined\n }, onPageSizeChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('data-table', '`on-page-size-change` is deprecated, please use `on-update:page-size` instead.');\n }\n return true;\n },\n default: undefined\n }, onSorterChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('data-table', '`on-sorter-change` is deprecated, please use `on-update:sorter` instead.');\n }\n return true;\n },\n default: undefined\n }, onFiltersChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('data-table', '`on-filters-change` is deprecated, please use `on-update:filters` instead.');\n }\n return true;\n },\n default: undefined\n }, onCheckedRowKeysChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('data-table', '`on-checked-row-keys-change` is deprecated, please use `on-update:checked-row-keys` instead.');\n }\n return true;\n },\n default: undefined\n } });\nexport default defineComponent({\n name: 'DataTable',\n alias: ['AdvancedTable'],\n props: dataTableProps,\n setup(props) {\n const { mergedBorderedRef, mergedClsPrefixRef } = useConfig(props);\n const mergedBottomBorderedRef = computed(() => {\n const { bottomBordered } = props;\n // do not add bottom bordered class if bordered is true\n // since border is displayed on wrapper\n if (mergedBorderedRef.value)\n return false;\n if (bottomBordered !== undefined)\n return bottomBordered;\n return true;\n });\n const themeRef = useTheme('DataTable', 'DataTable', style, dataTableLight, props, mergedClsPrefixRef);\n const bodyWidthRef = ref(null);\n const scrollPartRef = ref('body');\n const mainTableInstRef = ref(null);\n const { rowsRef, colsRef, dataRelatedColsRef, hasEllpisisRef } = useGroupHeader(props);\n const { treeMateRef, mergedCurrentPageRef, paginatedDataRef, rawPaginatedDataRef, selectionColumnRef, hoverKeyRef, mergedPaginationRef, mergedFilterStateRef, mergedSortStateRef, firstContentfulColIndexRef, doUpdateFilters, doUpdateSorter, filter, filters, clearFilter, clearFilters, page, sort } = useTableData(props, { dataRelatedColsRef });\n const { doCheckAll, doUncheckAll, doCheck, doUncheck, headerCheckboxDisabledRef, someRowsCheckedRef, allRowsCheckedRef, mergedCheckedRowKeySetRef, mergedInderminateRowKeySetRef } = useCheck(props, {\n selectionColumnRef,\n treeMateRef,\n paginatedDataRef\n });\n const { mergedExpandedRowKeysRef, renderExpandRef, doUpdateExpandedRowKeys } = useExpand(props);\n const { handleTableBodyScroll, handleTableHeaderScroll, syncScrollState, setHeaderScrollLeft, leftActiveFixedColKeyRef, rightActiveFixedColKeyRef, leftFixedColumnsRef, rightFixedColumnsRef, fixedColumnLeftMapRef, fixedColumnRightMapRef } = useScroll(props, {\n scrollPartRef,\n bodyWidthRef,\n mainTableInstRef,\n mergedCurrentPageRef\n });\n const { localeRef } = useLocale('DataTable');\n const mergedTableLayoutRef = computed(() => {\n // Layout\n // virtual |descrete header | ellpisis => fixed\n // = virtual | maxHeight | ellpisis => fixed\n if (props.virtualScroll ||\n props.flexHeight ||\n props.maxHeight !== undefined ||\n hasEllpisisRef.value) {\n return 'fixed';\n }\n return props.tableLayout;\n });\n provide(dataTableInjectionKey, {\n indentRef: toRef(props, 'indent'),\n firstContentfulColIndexRef,\n bodyWidthRef,\n componentId: createId(),\n hoverKeyRef,\n mergedClsPrefixRef,\n mergedThemeRef: themeRef,\n scrollXRef: computed(() => props.scrollX),\n rowsRef,\n colsRef,\n paginatedDataRef,\n leftActiveFixedColKeyRef,\n rightActiveFixedColKeyRef,\n leftFixedColumnsRef,\n rightFixedColumnsRef,\n fixedColumnLeftMapRef,\n fixedColumnRightMapRef,\n mergedCurrentPageRef,\n someRowsCheckedRef,\n allRowsCheckedRef,\n mergedSortStateRef,\n mergedFilterStateRef,\n loadingRef: toRef(props, 'loading'),\n rowClassNameRef: toRef(props, 'rowClassName'),\n mergedCheckedRowKeySetRef,\n mergedExpandedRowKeysRef,\n mergedInderminateRowKeySetRef,\n localeRef,\n scrollPartRef,\n rowKeyRef: toRef(props, 'rowKey'),\n renderExpandRef,\n summaryRef: toRef(props, 'summary'),\n virtualScrollRef: toRef(props, 'virtualScroll'),\n rowPropsRef: toRef(props, 'rowProps'),\n checkOptionsRef: computed(() => {\n const { value: selectionColumn } = selectionColumnRef;\n return selectionColumn === null || selectionColumn === void 0 ? void 0 : selectionColumn.options;\n }),\n rawPaginatedDataRef,\n hasChildrenRef: computed(() => {\n return treeMateRef.value.maxLevel > 0;\n }),\n filterMenuCssVarsRef: computed(() => {\n const { self: { actionDividerColor, actionPadding, actionButtonMargin } } = themeRef.value;\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {\n '--action-padding': actionPadding,\n '--action-button-margin': actionButtonMargin,\n '--action-divider-color': actionDividerColor\n };\n }),\n mergedTableLayoutRef,\n maxHeightRef: toRef(props, 'maxHeight'),\n minHeightRef: toRef(props, 'minHeight'),\n flexHeightRef: toRef(props, 'flexHeight'),\n headerCheckboxDisabledRef,\n syncScrollState,\n doUpdateFilters,\n doUpdateSorter,\n doCheck,\n doUncheck,\n doCheckAll,\n doUncheckAll,\n doUpdateExpandedRowKeys,\n handleTableHeaderScroll,\n handleTableBodyScroll,\n setHeaderScrollLeft\n });\n const exposedMethods = {\n filter,\n filters,\n clearFilter,\n clearFilters,\n page,\n sort\n };\n return Object.assign(Object.assign({ mainTableInstRef, mergedClsPrefix: mergedClsPrefixRef, mergedTheme: themeRef, paginatedData: paginatedDataRef, mergedBordered: mergedBorderedRef, mergedBottomBordered: mergedBottomBorderedRef, mergedPagination: mergedPaginationRef }, exposedMethods), { cssVars: computed(() => {\n const { size } = props;\n const { common: { cubicBezierEaseInOut }, self: { borderColor, tdColorHover, thColor, thColorHover, tdColor, tdTextColor, thTextColor, thFontWeight, thButtonColorHover, thIconColor, thIconColorActive, filterSize, borderRadius, lineHeight, tdColorModal, thColorModal, borderColorModal, thColorHoverModal, tdColorHoverModal, borderColorPopover, thColorPopover, tdColorPopover, tdColorHoverPopover, thColorHoverPopover, paginationMargin, emptyPadding, boxShadowAfter, boxShadowBefore, sorterSize, loadingColor, loadingSize, opacityLoading, [createKey('fontSize', size)]: fontSize, [createKey('thPadding', size)]: thPadding, [createKey('tdPadding', size)]: tdPadding } } = themeRef.value;\n return {\n '--font-size': fontSize,\n '--th-padding': thPadding,\n '--td-padding': tdPadding,\n '--bezier': cubicBezierEaseInOut,\n '--border-radius': borderRadius,\n '--line-height': lineHeight,\n '--border-color': borderColor,\n '--border-color-modal': borderColorModal,\n '--border-color-popover': borderColorPopover,\n '--th-color': thColor,\n '--th-color-hover': thColorHover,\n '--th-color-modal': thColorModal,\n '--th-color-hover-modal': thColorHoverModal,\n '--th-color-popover': thColorPopover,\n '--th-color-hover-popover': thColorHoverPopover,\n '--td-color': tdColor,\n '--td-color-hover': tdColorHover,\n '--td-color-modal': tdColorModal,\n '--td-color-hover-modal': tdColorHoverModal,\n '--td-color-popover': tdColorPopover,\n '--td-color-hover-popover': tdColorHoverPopover,\n '--th-text-color': thTextColor,\n '--td-text-color': tdTextColor,\n '--th-font-weight': thFontWeight,\n '--th-button-color-hover': thButtonColorHover,\n '--th-icon-color': thIconColor,\n '--th-icon-color-active': thIconColorActive,\n '--filter-size': filterSize,\n '--pagination-margin': paginationMargin,\n '--empty-padding': emptyPadding,\n '--box-shadow-before': boxShadowBefore,\n '--box-shadow-after': boxShadowAfter,\n '--sorter-size': sorterSize,\n '--loading-size': loadingSize,\n '--loading-color': loadingColor,\n '--opacity-loading': opacityLoading\n };\n }) });\n },\n render() {\n const { mergedClsPrefix } = this;\n return (h(\"div\", { class: [\n `${mergedClsPrefix}-data-table`,\n {\n [`${mergedClsPrefix}-data-table--bordered`]: this.mergedBordered,\n [`${mergedClsPrefix}-data-table--bottom-bordered`]: this.mergedBottomBordered,\n [`${mergedClsPrefix}-data-table--single-line`]: this.singleLine,\n [`${mergedClsPrefix}-data-table--single-column`]: this.singleColumn,\n [`${mergedClsPrefix}-data-table--loading`]: this.loading,\n [`${mergedClsPrefix}-data-table--flex-height`]: this.flexHeight\n }\n ], style: this.cssVars },\n h(\"div\", { class: `${mergedClsPrefix}-data-table-wrapper` },\n h(MainTable, { ref: \"mainTableInstRef\" }, {\n default: () => this.paginatedData.length === 0 ? (h(\"div\", { class: [\n `${mergedClsPrefix}-data-table-empty`,\n {\n [`${mergedClsPrefix}-data-table-empty--hide`]: this.loading\n }\n ] }, renderSlot(this.$slots, 'empty', undefined, () => [\n h(NEmpty, { theme: this.mergedTheme.peers.Empty, themeOverrides: this.mergedTheme.peerOverrides.Empty })\n ]))) : null\n })),\n this.pagination ? (h(\"div\", { class: `${mergedClsPrefix}-data-table__pagination` },\n h(NPagination, Object.assign({ theme: this.mergedTheme.peers.Pagination, themeOverrides: this.mergedTheme.peerOverrides.Pagination, disabled: this.loading }, this.mergedPagination)))) : null,\n h(Transition, { name: \"fade-in-scale-up-transition\" }, {\n default: () => {\n return this.loading ? (h(NBaseLoading, { clsPrefix: mergedClsPrefix, strokeWidth: 20 })) : null;\n }\n })));\n }\n});\n","import { internalSelectionLight } from '../../_internal/selection/styles';\nimport { internalSelectMenuLight } from '../../_internal/select-menu/styles';\nimport { commonLight } from '../../_styles/common';\nimport { createTheme } from '../../_mixins';\nexport function self(vars) {\n const { boxShadow2 } = vars;\n return {\n menuBoxShadow: boxShadow2\n };\n}\nconst selectLight = createTheme({\n name: 'Select',\n common: commonLight,\n peers: {\n InternalSelection: internalSelectionLight,\n InternalSelectMenu: internalSelectMenuLight\n },\n self\n});\nexport default selectLight;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar nativeFetch = getBuiltIn('fetch');\nvar NativeRequest = getBuiltIn('Request');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: $toString(init[key]) });\n } else {\n parseSearchParams(\n entries,\n typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : $toString(init)\n );\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && typeof Headers == 'function') {\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (typeof nativeFetch == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (typeof NativeRequest == 'function') {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestConstructor, 'Request');\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'More',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 16 16\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", fill: \"none\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { fill: \"currentColor\", \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z\" })))));\n }\n});\n","function pagesToShow(currentPage, pageCount, pageSlot = 9) {\n if (pageCount === 1)\n return [1];\n if (pageCount === 2)\n return [1, 2];\n const firstPage = 1;\n const lastPage = pageCount;\n let middleStart = currentPage;\n let middleEnd = currentPage;\n const middleDelta = (pageSlot - 5) / 2;\n middleEnd += Math.ceil(middleDelta);\n middleEnd = Math.min(Math.max(middleEnd, firstPage + pageSlot - 3), lastPage - 2);\n middleStart -= Math.floor(middleDelta);\n middleStart = Math.max(Math.min(middleStart, lastPage - pageSlot + 3), firstPage + 2);\n let leftSplit = false;\n let rightSplit = false;\n if (middleStart > firstPage + 2)\n leftSplit = true;\n if (middleEnd < lastPage - 2)\n rightSplit = true;\n const items = [];\n items.push(firstPage);\n if (leftSplit) {\n items.push(-2);\n }\n else if (lastPage >= firstPage + 1) {\n items.push(firstPage + 1);\n }\n for (let i = middleStart; i <= middleEnd; ++i) {\n items.push(i);\n }\n if (rightSplit) {\n items.push(-1);\n }\n else if (middleEnd === lastPage - 2 &&\n items[items.length - 1] !== lastPage - 1) {\n items.push(lastPage - 1);\n }\n if (items[items.length - 1] !== lastPage)\n items.push(lastPage);\n return items;\n}\nfunction mapPagesToPageItems(pages, currentPage) {\n return pages.map((page) => {\n switch (page) {\n case -2:\n return {\n type: 'fastBackward',\n label: 'fastBackward',\n active: false\n };\n case -1:\n return {\n type: 'fastForward',\n label: 'fastForward',\n active: false\n };\n default:\n if (page === currentPage) {\n return {\n type: 'page',\n label: page,\n active: true\n };\n }\n else {\n return {\n type: 'page',\n label: page,\n active: false\n };\n }\n }\n });\n}\nfunction pageItems(currentPage, pageCount, pageSlot) {\n const pages = pagesToShow(currentPage, pageCount, pageSlot);\n return mapPagesToPageItems(pages, currentPage);\n}\nexport { pagesToShow, mapPagesToPageItems, pageItems };\n","import { cB, c, cM, cNotM } from '../../../_utils/cssr'; // vars:\n// --item-font-size\n// --select-width\n// --input-width\n// --input-margin\n// --item-size\n// --item-text-color\n// --item-text-color-disabled\n// --item-text-color-hover\n// --item-text-color-active\n// --item-color\n// --item-color-hover\n// --item-color-disabled\n// --item-color-active\n// --item-color-active-hover\n// --item-border\n// --item-border-hover\n// --item-border-disabled\n// --item-border-active\n// --item-padding\n// --item-font-size\n// --item-border-radius\n// --bezier\n// --jumper-font-size\n// --jumper-text-color\n// --jumper-text-color-disabled\n// --item-margin\n// --button-icon-size\n// --button-icon-color\n// --button-icon-color-hover\n// --button-icon-color-pressed\n// --prefix-margin\n// --suffix-margin\n\nexport default cB('pagination', `\n display: flex;\n vertical-align: middle;\n font-size: var(--item-font-size);\n flex-wrap: nowrap;\n`, [cB('pagination-prefix', `\n display: flex;\n align-items: center;\n margin: var(--prefix-margin);\n `), cB('pagination-suffix', `\n display: flex;\n align-items: center;\n margin: var(--suffix-margin);\n `), c('> *:not(:first-child)', {\n margin: 'var(--item-margin)'\n}), cB('select', {\n width: 'var(--select-width)'\n}), c('&.transition-disabled', [cB('pagination-item', {\n transition: 'none!important'\n})]), cB('pagination-quick-jumper', `\n white-space: nowrap;\n display: flex;\n color: var(--jumper-text-color);\n transition: color .3s var(--bezier);\n align-items: center;\n font-size: var(--jumter-font-size);\n `, [cB('input', `\n margin: var(--input-margin);\n width: var(--input-width);\n `)]), cB('pagination-item', `\n position: relative;\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: var(--item-size);\n height: var(--item-size);\n padding: var(--item-padding);\n background-color: var(--item-color);\n color: var(--item-text-color);\n border-radius: var(--item-border-radius);\n border: var(--item-border);\n fill: var(--button-icon-color);\n transition:\n color .3s var(--bezier),\n border-color .3s var(--bezier),\n background-color .3s var(--bezier),\n fill .3s var(--bezier);\n `, [cM('button', `\n background: var(--item-color);\n color: var(--button-icon-color);\n border: var(--button-border);\n `, [cB('base-icon', `\n font-size: var(--button-icon-size);\n `)]), cNotM('disabled', [c('&:hover', {\n background: 'var(--item-color-hover)',\n color: 'var(--item-text-color-hover)',\n border: 'var(--item-border-hover)'\n}, [cM('button', {\n background: 'var(--button-color-hover)',\n border: 'var(--button-border-hover)',\n color: 'var(--button-icon-color-hover)'\n})]), c('&:active', {\n background: 'var(--item-color-pressed)',\n color: 'var(--item-text-color-pressed)',\n border: 'var(--item-border-pressed)'\n}, [cM('button', {\n background: 'var(--button-color-pressed)',\n border: 'var(--button-border-pressed)',\n color: 'var(--button-icon-color-pressed)'\n})]), cM('active', {\n background: 'var(--item-color-active)',\n color: 'var(--item-text-color-active)',\n border: 'var(--item-border-active)'\n}, [c('&:hover', {\n background: 'var(--item-color-active-hover)'\n})])]), cM('disabled', `\n cursor: not-allowed;\n color: var(--item-text-color-disabled);\n `, [cM('active, button', {\n backgroundColor: 'var(--item-color-disabled)',\n border: 'var(--item-border-disabled)'\n})])]), cM('disabled', {\n cursor: 'not-allowed'\n}, [cB('pagination-quick-jumper', {\n color: 'var(--jumper-text-color-disabled)'\n})])]);","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, nextTick, computed, ref, toRef, defineComponent, watchEffect } from 'vue';\nimport { useMergedState } from 'vooks';\nimport { NSelect } from '../../select';\nimport { NInput } from '../../input';\nimport { NBaseIcon } from '../../_internal';\nimport { FastForwardIcon, FastBackwardIcon, BackwardIcon, ForwardIcon, MoreIcon } from '../../_internal/icons';\nimport { useConfig, useLocale, useTheme } from '../../_mixins';\nimport { paginationLight } from '../styles';\nimport { pageItems } from './utils';\nimport style from './styles/index.cssr';\nimport { call, warn } from '../../_utils';\nconst paginationProps = Object.assign(Object.assign({}, useTheme.props), { page: Number, defaultPage: {\n type: Number,\n default: 1\n }, itemCount: Number, pageCount: Number, defaultPageCount: {\n type: Number,\n default: 1\n }, showSizePicker: Boolean, pageSize: Number, defaultPageSize: Number, pageSizes: {\n type: Array,\n default() {\n return [10];\n }\n }, showQuickJumper: Boolean, disabled: Boolean, pageSlot: {\n type: Number,\n default: 9\n }, prev: Function, next: Function, prefix: Function, suffix: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array], \n /** @deprecated */\n onPageSizeChange: [Function, Array], \n /** @deprecated */\n onChange: [Function, Array] });\nexport default defineComponent({\n name: 'Pagination',\n props: paginationProps,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.pageCount !== undefined && props.itemCount !== undefined) {\n warn('pagination', \"`page-count` and `item-count` should't be specified together. Only `item-count` will take effect.\");\n }\n });\n }\n const { NConfigProvider, mergedClsPrefixRef } = useConfig(props);\n const themeRef = useTheme('Pagination', 'Pagination', style, paginationLight, props, mergedClsPrefixRef);\n const { localeRef } = useLocale('Pagination');\n const selfRef = ref(null);\n const jumperRef = ref(null);\n const jumperValueRef = ref('');\n const uncontrolledPageRef = ref(props.defaultPage);\n const uncontrolledPageSizeRef = ref(props.defaultPageSize || props.pageSizes[0]);\n const mergedPageRef = useMergedState(toRef(props, 'page'), uncontrolledPageRef);\n const mergedPageSizeRef = useMergedState(toRef(props, 'pageSize'), uncontrolledPageSizeRef);\n const mergedPageCountRef = computed(() => {\n // item count has high priority, for it can affect prefix slot rendering\n const { itemCount } = props;\n if (itemCount !== undefined) {\n return Math.max(1, Math.ceil(itemCount / mergedPageSizeRef.value));\n }\n const { pageCount } = props;\n if (pageCount !== undefined)\n return pageCount;\n return 1;\n });\n const showFastForwardRef = ref(false);\n const showFastBackwardRef = ref(false);\n const pageSizeOptionsRef = computed(() => {\n const suffix = localeRef.value.selectionSuffix;\n return props.pageSizes.map((size) => ({\n label: `${size} / ${suffix}`,\n value: size\n }));\n });\n const inputSizeRef = computed(() => {\n var _a, _b;\n return (((_b = (_a = NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Pagination) === null || _b === void 0 ? void 0 : _b.inputSize) ||\n 'small');\n });\n const selectSizeRef = computed(() => {\n var _a, _b;\n return (((_b = (_a = NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Pagination) === null || _b === void 0 ? void 0 : _b.selectSize) || 'small');\n });\n const startIndexRef = computed(() => {\n return (mergedPageRef.value - 1) * mergedPageSizeRef.value;\n });\n const endIndexRef = computed(() => {\n const endIndex = mergedPageRef.value * mergedPageSizeRef.value - 1;\n const { itemCount } = props;\n if (itemCount !== undefined) {\n return endIndex > itemCount ? itemCount : endIndex;\n }\n return endIndex;\n });\n const disableTransitionOneTick = () => {\n void nextTick(() => {\n var _a;\n const { value: selfEl } = selfRef;\n if (!selfEl)\n return;\n selfEl.classList.add('transition-disabled');\n void ((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.offsetWidth);\n selfEl.classList.remove('transition-disabled');\n });\n };\n function doUpdatePage(page) {\n if (page === mergedPageRef.value)\n return;\n const { 'onUpdate:page': _onUpdatePage, onUpdatePage, onChange } = props;\n if (_onUpdatePage)\n call(_onUpdatePage, page);\n if (onUpdatePage)\n call(onUpdatePage, page);\n // deprecated\n if (onChange)\n call(onChange, page);\n uncontrolledPageRef.value = page;\n }\n function doUpdatePageSize(pageSize) {\n if (pageSize === mergedPageSizeRef.value)\n return;\n const { 'onUpdate:pageSize': _onUpdatePageSize, onUpdatePageSize, onPageSizeChange } = props;\n if (_onUpdatePageSize)\n call(_onUpdatePageSize, pageSize);\n if (onUpdatePageSize)\n call(onUpdatePageSize, pageSize);\n // deprecated\n if (onPageSizeChange)\n call(onPageSizeChange, pageSize);\n uncontrolledPageSizeRef.value = pageSize;\n // update new page when overflows.\n // we may have different update strategy, but i've no time to impl it\n if (mergedPageCountRef.value < mergedPageRef.value) {\n doUpdatePage(mergedPageCountRef.value);\n }\n }\n function forward() {\n if (props.disabled)\n return;\n const page = Math.min(mergedPageRef.value + 1, mergedPageCountRef.value);\n doUpdatePage(page);\n }\n function backward() {\n if (props.disabled)\n return;\n const page = Math.max(mergedPageRef.value - 1, 1);\n doUpdatePage(page);\n }\n function fastForward() {\n if (props.disabled)\n return;\n const page = Math.min(mergedPageRef.value + (props.pageSlot - 4), mergedPageCountRef.value);\n doUpdatePage(page);\n }\n function fastBackward() {\n if (props.disabled)\n return;\n const page = Math.max(mergedPageRef.value - (props.pageSlot - 4), 1);\n doUpdatePage(page);\n }\n function handleSizePickerChange(value) {\n doUpdatePageSize(value);\n }\n function handleQuickJumperKeyUp(e) {\n var _a;\n if (e.code === 'Enter' || e.code === 'NumpadEnter') {\n const page = parseInt(jumperValueRef.value);\n if (!Number.isNaN(page) &&\n page >= 1 &&\n page <= mergedPageCountRef.value) {\n doUpdatePage(page);\n jumperValueRef.value = '';\n (_a = jumperRef.value) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }\n }\n function handlePageItemClick(pageItem) {\n if (props.disabled)\n return;\n switch (pageItem.type) {\n case 'page':\n doUpdatePage(pageItem.label);\n break;\n case 'fastBackward':\n fastBackward();\n break;\n case 'fastForward':\n fastForward();\n break;\n }\n }\n function handlePageItemMouseEnter(pageItem) {\n if (props.disabled)\n return;\n switch (pageItem.type) {\n case 'fastBackward':\n showFastBackwardRef.value = true;\n break;\n case 'fastForward':\n showFastForwardRef.value = true;\n break;\n default:\n return;\n }\n disableTransitionOneTick();\n }\n function handlePageItemMouseLeave(pageItem) {\n if (props.disabled)\n return;\n switch (pageItem.type) {\n case 'fastBackward':\n showFastBackwardRef.value = false;\n break;\n case 'fastForward':\n showFastForwardRef.value = false;\n break;\n default:\n return;\n }\n disableTransitionOneTick();\n }\n function handleJumperInput(value) {\n jumperValueRef.value = value;\n }\n watchEffect(() => {\n void mergedPageRef.value;\n void mergedPageSizeRef.value;\n disableTransitionOneTick();\n });\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n locale: localeRef,\n selfRef,\n jumperRef,\n mergedPage: mergedPageRef,\n showFastBackward: showFastBackwardRef,\n showFastForward: showFastForwardRef,\n pageItems: computed(() => pageItems(mergedPageRef.value, mergedPageCountRef.value, props.pageSlot)),\n jumperValue: jumperValueRef,\n pageSizeOptions: pageSizeOptionsRef,\n mergedPageSize: mergedPageSizeRef,\n inputSize: inputSizeRef,\n selectSize: selectSizeRef,\n mergedTheme: themeRef,\n mergedPageCount: mergedPageCountRef,\n startIndex: startIndexRef,\n endIndex: endIndexRef,\n handleJumperInput,\n handleBackwardClick: backward,\n handleForwardClick: forward,\n handlePageItemClick,\n handleSizePickerChange,\n handleQuickJumperKeyUp,\n handlePageItemMouseEnter,\n handlePageItemMouseLeave,\n cssVars: computed(() => {\n const { self: { itemSize, itemPadding, itemMargin, inputWidth, selectWidth, inputMargin, selectMargin, buttonBorder, buttonBorderHover, buttonBorderPressed, buttonIconColor, buttonIconColorHover, buttonIconColorPressed, buttonIconSize, itemTextColor, itemTextColorHover, itemTextColorPressed, itemTextColorActive, itemTextColorDisabled, itemColor, itemColorHover, itemColorPressed, itemColorActive, itemColorActiveHover, itemColorDisabled, itemBorder, itemBorderHover, itemBorderPressed, itemBorderActive, itemBorderDisabled, itemBorderRadius, itemFontSize, jumperFontSize, jumperTextColor, jumperTextColorDisabled, prefixMargin, suffixMargin }, common: { cubicBezierEaseInOut } } = themeRef.value;\n return {\n '--prefix-margin': prefixMargin,\n '--suffix-margin': suffixMargin,\n '--item-font-size': itemFontSize,\n '--select-width': selectWidth,\n '--select-margin': selectMargin,\n '--input-width': inputWidth,\n '--input-margin': inputMargin,\n '--item-size': itemSize,\n '--item-text-color': itemTextColor,\n '--item-text-color-disabled': itemTextColorDisabled,\n '--item-text-color-hover': itemTextColorHover,\n '--item-text-color-active': itemTextColorActive,\n '--item-text-color-pressed': itemTextColorPressed,\n '--item-color': itemColor,\n '--item-color-hover': itemColorHover,\n '--item-color-disabled': itemColorDisabled,\n '--item-color-active': itemColorActive,\n '--item-color-active-hover': itemColorActiveHover,\n '--item-color-pressed': itemColorPressed,\n '--item-border': itemBorder,\n '--item-border-hover': itemBorderHover,\n '--item-border-disabled': itemBorderDisabled,\n '--item-border-active': itemBorderActive,\n '--item-border-pressed': itemBorderPressed,\n '--item-padding': itemPadding,\n '--item-border-radius': itemBorderRadius,\n '--bezier': cubicBezierEaseInOut,\n '--jumper-font-size': jumperFontSize,\n '--jumper-text-color': jumperTextColor,\n '--jumper-text-color-disabled': jumperTextColorDisabled,\n '--item-margin': itemMargin,\n '--button-icon-size': buttonIconSize,\n '--button-icon-color': buttonIconColor,\n '--button-icon-color-hover': buttonIconColorHover,\n '--button-icon-color-pressed': buttonIconColorPressed,\n '--button-border': buttonBorder,\n '--button-border-hover': buttonBorderHover,\n '--button-border-pressed': buttonBorderPressed\n };\n })\n };\n },\n render() {\n // it's ok to expand all prop here since no slots' deps\n const { $slots, mergedClsPrefix, disabled, cssVars, mergedPage, mergedPageCount, pageItems, showFastBackward, showFastForward, showSizePicker, showQuickJumper, mergedTheme, locale, inputSize, selectSize, mergedPageSize, pageSizeOptions, jumperValue, prev, next, prefix, suffix, handleJumperInput, handleSizePickerChange, handleBackwardClick, handlePageItemClick, handlePageItemMouseEnter, handlePageItemMouseLeave, handleForwardClick, handleQuickJumperKeyUp } = this;\n const renderPrev = prev || $slots.prev;\n const renderNext = next || $slots.next;\n return (h(\"div\", { ref: \"selfRef\", class: [\n `${mergedClsPrefix}-pagination`,\n disabled && `${mergedClsPrefix}-pagination--disabled`\n ], style: cssVars },\n prefix || $slots.prefix ? (h(\"div\", { class: `${mergedClsPrefix}-pagination-prefix` }, ($slots.prefix\n ? $slots.prefix\n : prefix)({\n page: mergedPage,\n pageSize: mergedPageSize,\n pageCount: mergedPageCount,\n startIndex: this.startIndex,\n endIndex: this.endIndex,\n itemCount: this.itemCount\n }))) : null,\n h(\"div\", { class: [\n `${mergedClsPrefix}-pagination-item`,\n !renderPrev && `${mergedClsPrefix}-pagination-item--button`,\n (mergedPage <= 1 || mergedPage > mergedPageCount || disabled) &&\n `${mergedClsPrefix}-pagination-item--disabled`\n ], onClick: handleBackwardClick }, renderPrev ? (renderPrev({\n page: mergedPage,\n pageSize: mergedPageSize,\n pageCount: mergedPageCount,\n startIndex: this.startIndex,\n endIndex: this.endIndex,\n itemCount: this.itemCount\n })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(BackwardIcon, null) }))),\n pageItems.map((pageItem, index) => {\n return (h(\"div\", { key: index, class: [\n `${mergedClsPrefix}-pagination-item`,\n {\n [`${mergedClsPrefix}-pagination-item--active`]: pageItem.active,\n [`${mergedClsPrefix}-pagination-item--disabled`]: disabled\n }\n ], onClick: () => handlePageItemClick(pageItem), onMouseenter: () => handlePageItemMouseEnter(pageItem), onMouseleave: () => handlePageItemMouseLeave(pageItem) },\n pageItem.type === 'page' ? pageItem.label : null,\n pageItem.type === 'fastBackward' ? (showFastBackward ? (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FastBackwardIcon, null) })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(MoreIcon, null) }))) : null,\n pageItem.type === 'fastForward' ? (showFastForward ? (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FastForwardIcon, null) })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(MoreIcon, null) }))) : null));\n }),\n h(\"div\", { class: [\n `${mergedClsPrefix}-pagination-item`,\n !renderNext && `${mergedClsPrefix}-pagination-item--button`,\n {\n [`${mergedClsPrefix}-pagination-item--disabled`]: mergedPage < 1 || mergedPage >= mergedPageCount || disabled\n }\n ], onClick: handleForwardClick }, renderNext ? (renderNext({\n page: mergedPage,\n pageSize: mergedPageSize,\n pageCount: mergedPageCount,\n itemCount: this.itemCount,\n startIndex: this.startIndex,\n endIndex: this.endIndex\n })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(ForwardIcon, null) }))),\n showSizePicker ? (h(NSelect, { size: selectSize, placeholder: \"\", options: pageSizeOptions, value: mergedPageSize, disabled: disabled, theme: mergedTheme.peers.Select, themeOverrides: mergedTheme.peerOverrides.Select, onUpdateValue: handleSizePickerChange })) : null,\n showQuickJumper ? (h(\"div\", { class: `${mergedClsPrefix}-pagination-quick-jumper` },\n locale.goto,\n h(NInput, { ref: \"jumperRef\", value: jumperValue, onUpdateValue: handleJumperInput, size: inputSize, placeholder: \"\", disabled: disabled, theme: mergedTheme.peers.Input, themeOverrides: mergedTheme.peerOverrides.Input, onKeyup: handleQuickJumperKeyUp }))) : null,\n suffix || $slots.suffix ? (h(\"div\", { class: `${mergedClsPrefix}-pagination-suffix` }, ($slots.suffix\n ? $slots.suffix\n : suffix)({\n page: mergedPage,\n pageSize: mergedPageSize,\n pageCount: mergedPageCount,\n startIndex: this.startIndex,\n endIndex: this.endIndex,\n itemCount: this.itemCount\n }))) : null));\n }\n});\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","export default {\n titleFontSizeSmall: '26px',\n titleFontSizeMedium: '32px',\n titleFontSizeLarge: '40px',\n titleFontSizeHuge: '48px',\n fontSizeSmall: '14px',\n fontSizeMedium: '14px',\n fontSizeLarge: '15px',\n fontSizeHuge: '16px',\n iconSizeSmall: '64px',\n iconSizeMedium: '80px',\n iconSizeLarge: '100px',\n iconSizeHuge: '125px',\n iconColor418: undefined,\n iconColor404: undefined,\n iconColor403: undefined,\n iconColor500: undefined\n};\n","import commonVariables from './_common';\nimport { commonLight } from '../../_styles/common';\nexport const self = (vars) => {\n const { textColor2, textColor1, errorColor, successColor, infoColor, warningColor, lineHeight, fontWeightStrong } = vars;\n return Object.assign(Object.assign({}, commonVariables), { lineHeight, titleFontWeight: fontWeightStrong, titleTextColor: textColor1, textColor: textColor2, iconColorError: errorColor, iconColorSuccess: successColor, iconColorInfo: infoColor, iconColorWarning: warningColor });\n};\nconst resultLight = {\n name: 'Result',\n common: commonLight,\n self\n};\nexport default resultLight;\n","import { h } from 'vue';\nexport default (h(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 36 36\" },\n h(\"circle\", { fill: \"#FFCB4C\", cx: \"18\", cy: \"17.018\", r: \"17\" }),\n h(\"path\", { fill: \"#65471B\", d: \"M14.524 21.036c-.145-.116-.258-.274-.312-.464-.134-.46.13-.918.59-1.021 4.528-1.021 7.577 1.363 7.706 1.465.384.306.459.845.173 1.205-.286.358-.828.401-1.211.097-.11-.084-2.523-1.923-6.182-1.098-.274.061-.554-.016-.764-.184z\" }),\n h(\"ellipse\", { fill: \"#65471B\", cx: \"13.119\", cy: \"11.174\", rx: \"2.125\", ry: \"2.656\" }),\n h(\"ellipse\", { fill: \"#65471B\", cx: \"24.375\", cy: \"12.236\", rx: \"2.125\", ry: \"2.656\" }),\n h(\"path\", { fill: \"#F19020\", d: \"M17.276 35.149s1.265-.411 1.429-1.352c.173-.972-.624-1.167-.624-1.167s1.041-.208 1.172-1.376c.123-1.101-.861-1.363-.861-1.363s.97-.4 1.016-1.539c.038-.959-.995-1.428-.995-1.428s5.038-1.221 5.556-1.341c.516-.12 1.32-.615 1.069-1.694-.249-1.08-1.204-1.118-1.697-1.003-.494.115-6.744 1.566-8.9 2.068l-1.439.334c-.54.127-.785-.11-.404-.512.508-.536.833-1.129.946-2.113.119-1.035-.232-2.313-.433-2.809-.374-.921-1.005-1.649-1.734-1.899-1.137-.39-1.945.321-1.542 1.561.604 1.854.208 3.375-.833 4.293-2.449 2.157-3.588 3.695-2.83 6.973.828 3.575 4.377 5.876 7.952 5.048l3.152-.681z\" }),\n h(\"path\", { fill: \"#65471B\", d: \"M9.296 6.351c-.164-.088-.303-.224-.391-.399-.216-.428-.04-.927.393-1.112 4.266-1.831 7.699-.043 7.843.034.433.231.608.747.391 1.154-.216.405-.74.546-1.173.318-.123-.063-2.832-1.432-6.278.047-.257.109-.547.085-.785-.042zm12.135 3.75c-.156-.098-.286-.243-.362-.424-.187-.442.023-.927.468-1.084 4.381-1.536 7.685.48 7.823.567.415.26.555.787.312 1.178-.242.39-.776.495-1.191.238-.12-.072-2.727-1.621-6.267-.379-.266.091-.553.046-.783-.096z\" })));\n","import { h } from 'vue';\nexport default (h(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 36 36\" },\n h(\"path\", { fill: \"#FFCC4D\", d: \"M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18\" }),\n h(\"ellipse\", { fill: \"#664500\", cx: \"18\", cy: \"27\", rx: \"5\", ry: \"6\" }),\n h(\"path\", { fill: \"#664500\", d: \"M5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 5.444 22.45 5 23 5c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zm-16.087 4.5l1.793-1.793c.391-.391.391-1.023 0-1.414s-1.023-.391-1.414 0L12.5 14.086l-1.793-1.793c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l1.793 1.793-1.793 1.793c-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293s.512-.098.707-.293l1.793-1.793 1.793 1.793c.195.195.451.293.707.293s.512-.098.707-.293c.391-.391.391-1.023 0-1.414L13.914 15.5zm11 0l1.793-1.793c.391-.391.391-1.023 0-1.414s-1.023-.391-1.414 0L23.5 14.086l-1.793-1.793c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l1.793 1.793-1.793 1.793c-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293s.512-.098.707-.293l1.793-1.793 1.793 1.793c.195.195.451.293.707.293s.512-.098.707-.293c.391-.391.391-1.023 0-1.414L24.914 15.5z\" })));\n","import { h } from 'vue';\nexport default (h(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 36 36\" },\n h(\"ellipse\", { fill: \"#292F33\", cx: \"18\", cy: \"26\", rx: \"18\", ry: \"10\" }),\n h(\"ellipse\", { fill: \"#66757F\", cx: \"18\", cy: \"24\", rx: \"18\", ry: \"10\" }),\n h(\"path\", { fill: \"#E1E8ED\", d: \"M18 31C3.042 31 1 16 1 12h34c0 2-1.958 19-17 19z\" }),\n h(\"path\", { fill: \"#77B255\", d: \"M35 12.056c0 5.216-7.611 9.444-17 9.444S1 17.271 1 12.056C1 6.84 8.611 3.611 18 3.611s17 3.229 17 8.445z\" }),\n h(\"ellipse\", { fill: \"#A6D388\", cx: \"18\", cy: \"13\", rx: \"15\", ry: \"7\" }),\n h(\"path\", { d: \"M21 17c-.256 0-.512-.098-.707-.293-2.337-2.337-2.376-4.885-.125-8.262.739-1.109.9-2.246.478-3.377-.461-1.236-1.438-1.996-1.731-2.077-.553 0-.958-.443-.958-.996 0-.552.491-.995 1.043-.995.997 0 2.395 1.153 3.183 2.625 1.034 1.933.91 4.039-.351 5.929-1.961 2.942-1.531 4.332-.125 5.738.391.391.391 1.023 0 1.414-.195.196-.451.294-.707.294zm-6-2c-.256 0-.512-.098-.707-.293-2.337-2.337-2.376-4.885-.125-8.262.727-1.091.893-2.083.494-2.947-.444-.961-1.431-1.469-1.684-1.499-.552 0-.989-.447-.989-1 0-.552.458-1 1.011-1 .997 0 2.585.974 3.36 2.423.481.899 1.052 2.761-.528 5.131-1.961 2.942-1.531 4.332-.125 5.738.391.391.391 1.023 0 1.414-.195.197-.451.295-.707.295z\", fill: \"#5C913B\" })));\n","import { h } from 'vue';\nexport default (h(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 36 36\" },\n h(\"path\", { fill: \"#EF9645\", d: \"M15.5 2.965c1.381 0 2.5 1.119 2.5 2.5v.005L20.5.465c1.381 0 2.5 1.119 2.5 2.5V4.25l2.5-1.535c1.381 0 2.5 1.119 2.5 2.5V8.75L29 18H15.458L15.5 2.965z\" }),\n h(\"path\", { fill: \"#FFDC5D\", d: \"M4.625 16.219c1.381-.611 3.354.208 4.75 2.188.917 1.3 1.187 3.151 2.391 3.344.46.073 1.234-.313 1.234-1.397V4.5s0-2 2-2 2 2 2 2v11.633c0-.029 1-.064 1-.082V2s0-2 2-2 2 2 2 2v14.053c0 .017 1 .041 1 .069V4.25s0-2 2-2 2 2 2 2v12.638c0 .118 1 .251 1 .398V8.75s0-2 2-2 2 2 2 2V24c0 6.627-5.373 12-12 12-4.775 0-8.06-2.598-9.896-5.292C8.547 28.423 8.096 26.051 8 25.334c0 0-.123-1.479-1.156-2.865-1.469-1.969-2.5-3.156-3.125-3.866-.317-.359-.625-1.707.906-2.384z\" })));\n","import { c, cB, cE } from '../../../_utils/cssr'; // --bezier\n// --font-size\n// --icon-size\n// --line-height\n// --text-color\n// --title-font-size\n// --title-font-weight\n// --title-text-color\n\nexport default cB('result', `\n color: var(--text-color);\n line-height: var(--line-height);\n font-size: var(--font-size);\n transition:\n color .3s var(--bezier);\n`, [cB('result-icon', `\n height: 1em;\n display: flex;\n justify-content: center;\n transition: color .3s var(--bezier);\n color: var(--icon-color);\n font-size: var(--icon-size);\n `, [cE('status-image', {\n width: '1em'\n}), c('svg', {\n height: '1em'\n})]), cB('result-content', {\n marginTop: '24px'\n}), cB('result-footer', `\n margin-top: 24px;\n text-align: center;\n `), cB('result-header', [cE('title', `\n margin-top: 16px;\n font-weight: var(--title-font-weight);\n transition: color .3s var(--bezier);\n text-align: center;\n color: var(--title-text-color);\n font-size: var(--title-font-size);\n `), cE('description', `\n margin-top: 4px;\n text-align: center;\n font-size: var(--font-size);\n `)])]);","import { h, defineComponent, computed, renderSlot } from 'vue';\nimport { useConfig, useTheme } from '../../_mixins';\nimport { createKey } from '../../_utils';\nimport { InfoIcon, SuccessIcon, WarningIcon, ErrorIcon } from '../../_internal/icons';\nimport { NBaseIcon } from '../../_internal';\nimport { resultLight } from '../styles';\nimport image404 from './404';\nimport image500 from './500';\nimport image418 from './418';\nimport image403 from './403';\nimport style from './styles/index.cssr';\nconst imgMap = {\n 403: image403,\n 404: image404,\n 418: image418,\n 500: image500\n};\nconst iconMap = {\n info: h(InfoIcon, null),\n success: h(SuccessIcon, null),\n warning: h(WarningIcon, null),\n error: h(ErrorIcon, null)\n};\nconst resultProps = Object.assign(Object.assign({}, useTheme.props), { size: {\n type: String,\n default: 'medium'\n }, status: {\n type: String,\n default: 'info'\n }, title: String, description: String });\nexport default defineComponent({\n name: 'Result',\n props: resultProps,\n setup(props) {\n const { mergedClsPrefixRef } = useConfig(props);\n const themeRef = useTheme('Result', 'Result', style, resultLight, props, mergedClsPrefixRef);\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n cssVars: computed(() => {\n const { size, status } = props;\n const { common: { cubicBezierEaseInOut }, self: { textColor, lineHeight, titleTextColor, titleFontWeight, [createKey('iconColor', status)]: iconColor, [createKey('fontSize', size)]: fontSize, [createKey('titleFontSize', size)]: titleFontSize, [createKey('iconSize', size)]: iconSize } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--font-size': fontSize,\n '--icon-size': iconSize,\n '--line-height': lineHeight,\n '--text-color': textColor,\n '--title-font-size': titleFontSize,\n '--title-font-weight': titleFontWeight,\n '--title-text-color': titleTextColor,\n '--icon-color': iconColor\n };\n })\n };\n },\n render() {\n const { status, $slots, mergedClsPrefix } = this;\n return (h(\"div\", { class: `${mergedClsPrefix}-result`, style: this.cssVars },\n h(\"div\", { class: `${mergedClsPrefix}-result-icon` }, status in imgMap ? (imgMap[status]) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => iconMap[status] }))),\n h(\"div\", { class: `${mergedClsPrefix}-result-header` },\n h(\"div\", { class: `${mergedClsPrefix}-result-header__title` }, this.title),\n h(\"div\", { class: `${mergedClsPrefix}-result-header__description` }, this.description)),\n $slots.default ? (h(\"div\", { class: `${mergedClsPrefix}-result-content` }, $slots)) : null,\n h(\"div\", { class: `${mergedClsPrefix}-result-footer` }, renderSlot($slots, 'footer'))));\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./transactionHistory.vue?vue&type=style&index=0&id=1238e726&lang=scss&scoped=true\"","export default {\n radioSizeSmall: '14px',\n radioSizeMedium: '16px',\n radioSizeLarge: '18px',\n labelPadding: '0 8px'\n};\n","import { changeColor } from 'seemly';\nimport commonVariables from './_common';\nimport { commonLight } from '../../_styles/common';\nconst self = (vars) => {\n const { borderColor, primaryColor, baseColor, textColorDisabled, inputColorDisabled, textColor2, opacityDisabled, borderRadius, fontSizeSmall, fontSizeMedium, fontSizeLarge, heightSmall, heightMedium, heightLarge } = vars;\n return Object.assign(Object.assign({}, commonVariables), { buttonHeightSmall: heightSmall, buttonHeightMedium: heightMedium, buttonHeightLarge: heightLarge, fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge, boxShadow: `inset 0 0 0 1px ${borderColor}`, boxShadowActive: `inset 0 0 0 1px ${primaryColor}`, boxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(primaryColor, { alpha: 0.2 })}`, boxShadowHover: `inset 0 0 0 1px ${primaryColor}`, boxShadowDisabled: `inset 0 0 0 1px ${borderColor}`, color: baseColor, colorDisabled: inputColorDisabled, textColor: textColor2, textColorDisabled: textColorDisabled, dotColorActive: primaryColor, dotColorDisabled: borderColor, buttonBorderColor: borderColor, buttonBorderColorActive: primaryColor, buttonBorderColorHover: borderColor, buttonColor: baseColor, buttonColorActive: baseColor, buttonTextColor: textColor2, buttonTextColorActive: primaryColor, buttonTextColorHover: primaryColor, opacityDisabled: opacityDisabled, buttonBoxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(primaryColor, { alpha: 0.3 })}`, buttonBoxShadowHover: 'inset 0 0 0 1px #0000', buttonBoxShadow: 'inset 0 0 0 1px #0000', buttonBorderRadius: borderRadius });\n};\nconst radioLight = {\n name: 'Radio',\n common: commonLight,\n self\n};\nexport default radioLight;\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import { h } from 'vue';\nimport { replaceable } from './replaceable';\nexport default replaceable('to', h(\"svg\", { viewBox: \"0 0 20 20\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", fill: \"none\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { fill: \"currentColor\", \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z\" })))));\n","import { h } from 'vue';\nimport { replaceable } from './replaceable';\nexport default replaceable('date', h(\"svg\", { width: \"28px\", height: \"28px\", viewBox: \"0 0 28 28\", version: \"1.1\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"g\", { stroke: \"none\", \"stroke-width\": \"1\", \"fill-rule\": \"evenodd\" },\n h(\"g\", { \"fill-rule\": \"nonzero\" },\n h(\"path\", { d: \"M21.75,3 C23.5449254,3 25,4.45507456 25,6.25 L25,21.75 C25,23.5449254 23.5449254,25 21.75,25 L6.25,25 C4.45507456,25 3,23.5449254 3,21.75 L3,6.25 C3,4.45507456 4.45507456,3 6.25,3 L21.75,3 Z M23.5,9.503 L4.5,9.503 L4.5,21.75 C4.5,22.7164983 5.28350169,23.5 6.25,23.5 L21.75,23.5 C22.7164983,23.5 23.5,22.7164983 23.5,21.75 L23.5,9.503 Z M21.75,4.5 L6.25,4.5 C5.28350169,4.5 4.5,5.28350169 4.5,6.25 L4.5,8.003 L23.5,8.003 L23.5,6.25 C23.5,5.28350169 22.7164983,4.5 21.75,4.5 Z\" })))));\n","export default {\n itemFontSize: '12px',\n itemHeight: '32px',\n itemWidth: '52px',\n panelActionPadding: '8px 0'\n};\n","import commonVars from './_common';\nimport { scrollbarLight } from '../../scrollbar/styles';\nimport { commonLight } from '../../_styles/common';\nimport { buttonLight } from '../../button/styles';\nimport { createTheme } from '../../_mixins';\nimport { inputLight } from '../../input/styles';\nexport const self = (vars) => {\n const { popoverColor, textColor2, primaryColor, hoverColor, dividerColor, opacityDisabled, boxShadow2, borderRadius, iconColor, iconColorDisabled } = vars;\n return Object.assign(Object.assign({}, commonVars), { panelColor: popoverColor, panelBoxShadow: boxShadow2, panelDividerColor: dividerColor, itemTextColor: textColor2, itemTextColorActive: primaryColor, itemColorHover: hoverColor, itemOpacityDisabled: opacityDisabled, borderRadius,\n iconColor,\n iconColorDisabled });\n};\nconst timePickerLight = createTheme({\n name: 'TimePicker',\n common: commonLight,\n peers: {\n Scrollbar: scrollbarLight,\n Button: buttonLight,\n Input: inputLight\n },\n self\n});\nexport default timePickerLight;\n","export default {\n itemSize: '24px',\n itemCellWidth: '38px',\n itemCellHeight: '32px',\n panelExtraFooterPadding: '8px 12px',\n panelActionPadding: '8px 12px',\n calendarTitlePadding: '0',\n calendarTitleHeight: '28px',\n arrowSize: '14px',\n panelHeaderPadding: '8px 12px',\n calendarDaysHeight: '32px',\n calendarTitleGridTempateColumns: '28px 28px 1fr 28px 28px',\n // type\n calendarLeftPaddingDate: '6px 12px 4px 12px',\n calendarLeftPaddingDatetime: '4px 12px',\n calendarLeftPaddingDaterange: '6px 12px 4px 12px',\n calendarLeftPaddingDatetimerange: '4px 12px',\n calendarRightPaddingDate: '6px 12px 4px 12px',\n calendarRightPaddingDatetime: '4px 12px',\n calendarRightPaddingDaterange: '6px 12px 4px 12px',\n calendarRightPaddingDatetimerange: '4px 12px'\n};\n","import { inputLight } from '../../input/styles';\nimport { commonLight } from '../../_styles/common';\nimport { buttonLight } from '../../button/styles';\nimport { timePickerLight } from '../../time-picker/styles';\nimport commonVars from './_common';\nimport { changeColor } from 'seemly';\nimport { createTheme } from '../../_mixins';\nexport const self = (vars) => {\n const { hoverColor, fontSize, textColor2, textColorDisabled, popoverColor, primaryColor, borderRadiusSmall, iconColor, iconColorDisabled, textColor1, dividerColor, boxShadow2, borderRadius, fontWeightStrong } = vars;\n return Object.assign(Object.assign({}, commonVars), { itemFontSize: fontSize, calendarDaysFontSize: fontSize, calendarTitleFontSize: fontSize, itemTextColor: textColor2, itemTextColorDisabled: textColorDisabled, itemTextColorActive: popoverColor, itemTextColorCurrent: primaryColor, itemColorIncluded: changeColor(primaryColor, { alpha: 0.1 }), itemColorHover: hoverColor, itemColorDisabled: hoverColor, itemColorActive: primaryColor, itemBorderRadius: borderRadiusSmall, panelColor: popoverColor, panelTextColor: textColor2, arrowColor: iconColor, calendarTitleTextColor: textColor1, calendarDaysTextColor: textColor2, panelHeaderDividerColor: dividerColor, calendarDaysDividerColor: dividerColor, calendarDividerColor: dividerColor, panelActionDividerColor: dividerColor, panelBoxShadow: boxShadow2, panelBorderRadius: borderRadius, calendarTitleFontWeight: fontWeightStrong, iconColor,\n iconColorDisabled });\n};\nconst datePickerLight = createTheme({\n name: 'DatePicker',\n common: commonLight,\n peers: {\n Input: inputLight,\n Button: buttonLight,\n TimePicker: timePickerLight\n },\n self\n});\nexport default datePickerLight;\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import { isValid, isSameDay, getDate, getMonth, getYear, isSameMonth, getTime, startOfMonth, addDays, getDay, parse, format } from 'date-fns';\nfunction getDerivedTimeFromKeyboardEvent(prevValue, event) {\n const now = getTime(Date.now());\n if (typeof prevValue !== 'number')\n return now;\n switch (event.code) {\n case 'ArrowUp':\n return getTime(addDays(prevValue, -7));\n case 'ArrowDown':\n return getTime(addDays(prevValue, 7));\n case 'ArrowRight':\n return getTime(addDays(prevValue, 1));\n case 'ArrowLeft':\n return getTime(addDays(prevValue, -1));\n }\n return now;\n}\nfunction matchDate(sourceTime, patternTime) {\n if (Array.isArray(sourceTime)) {\n return sourceTime.some((time) => isSameDay(time, patternTime));\n }\n else {\n return isSameDay(sourceTime, patternTime);\n }\n}\nfunction dateItem(time, monthTs, valueTs, currentTs) {\n let inSpan = false;\n let startOfSpan = false;\n let endOfSpan = false;\n if (Array.isArray(valueTs)) {\n if (valueTs[0] < time && time < valueTs[1]) {\n inSpan = true;\n }\n if (matchDate(valueTs[0], time))\n startOfSpan = true;\n if (matchDate(valueTs[1], time))\n endOfSpan = true;\n }\n return {\n dateObject: {\n date: getDate(time),\n month: getMonth(time),\n year: getYear(time)\n },\n inCurrentMonth: isSameMonth(time, monthTs),\n isCurrentDate: matchDate(currentTs, time),\n inSpan,\n startOfSpan,\n endOfSpan,\n selected: valueTs !== null && matchDate(valueTs, time),\n ts: getTime(time)\n };\n}\n/**\n * Given time to display calendar, given the selected time, given current time,\n * return the date array of display time's month.\n */\nfunction dateArray(monthTs, valueTs, currentTs, startDay, strip = false) {\n const displayMonth = getMonth(monthTs);\n // First day of current month\n let displayMonthIterator = getTime(startOfMonth(monthTs));\n // Last day of last month\n let lastMonthIterator = getTime(addDays(displayMonthIterator, -1));\n const calendarDays = [];\n let protectLastMonthDateIsShownFlag = !strip;\n while (getDay(lastMonthIterator) !== startDay ||\n protectLastMonthDateIsShownFlag) {\n calendarDays.unshift(dateItem(lastMonthIterator, monthTs, valueTs, currentTs));\n lastMonthIterator = getTime(addDays(lastMonthIterator, -1));\n protectLastMonthDateIsShownFlag = false;\n }\n while (getMonth(displayMonthIterator) === displayMonth) {\n calendarDays.push(dateItem(displayMonthIterator, monthTs, valueTs, currentTs));\n displayMonthIterator = getTime(addDays(displayMonthIterator, 1));\n }\n const endIndex = strip\n ? calendarDays.length <= 28\n ? 28\n : calendarDays.length <= 35\n ? 35\n : 42\n : 42;\n while (calendarDays.length < endIndex) {\n calendarDays.push(dateItem(displayMonthIterator, monthTs, valueTs, currentTs));\n displayMonthIterator = getTime(addDays(displayMonthIterator, 1));\n }\n return calendarDays;\n}\nfunction strictParse(string, pattern, backup, option) {\n const result = parse(string, pattern, backup, option);\n if (!isValid(result))\n return result;\n else if (format(result, pattern, option) === string)\n return result;\n else\n return new Date(NaN);\n}\nexport { dateArray, strictParse, getDerivedTimeFromKeyboardEvent };\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { computed } from 'vue';\nimport { getHours, getMinutes, getSeconds } from 'date-fns';\nexport function uniCalendarValidation(props, mergedValueRef) {\n // date, datetime\n const timePickerValidatorRef = computed(() => {\n const { isTimeDisabled } = props;\n const { value } = mergedValueRef;\n if (value === null || Array.isArray(value))\n return undefined;\n return isTimeDisabled === null || isTimeDisabled === void 0 ? void 0 : isTimeDisabled(value);\n });\n const isHourDisabledRef = computed(() => {\n var _a;\n return (_a = timePickerValidatorRef.value) === null || _a === void 0 ? void 0 : _a.isHourDisabled;\n });\n const isMinuteDisabledRef = computed(() => {\n var _a;\n return (_a = timePickerValidatorRef.value) === null || _a === void 0 ? void 0 : _a.isMinuteDisabled;\n });\n const isSecondDisabledRef = computed(() => {\n var _a;\n return (_a = timePickerValidatorRef.value) === null || _a === void 0 ? void 0 : _a.isSecondDisabled;\n });\n const isDateInvalidRef = computed(() => {\n const { type, isDateDisabled } = props;\n const { value } = mergedValueRef;\n if (value === null ||\n Array.isArray(value) ||\n !['date', 'datetime'].includes(type) ||\n !isDateDisabled) {\n return false;\n }\n return isDateDisabled(value);\n });\n const isTimeInvalidRef = computed(() => {\n const { type } = props;\n const { value } = mergedValueRef;\n if (value === null || !(type !== 'datetime') || Array.isArray(value)) {\n return false;\n }\n const time = new Date(value);\n const hour = time.getHours();\n const minute = time.getMinutes();\n const second = time.getMinutes();\n return ((isHourDisabledRef.value ? isHourDisabledRef.value(hour) : false) ||\n (isMinuteDisabledRef.value\n ? isMinuteDisabledRef.value(minute, hour)\n : false) ||\n (isSecondDisabledRef.value\n ? isSecondDisabledRef.value(second, minute, hour)\n : false));\n });\n const isDateTimeInvalidRef = computed(() => {\n return isDateInvalidRef.value || isTimeInvalidRef.value;\n });\n const isValueInvalidRef = computed(() => {\n const { type } = props;\n if (type === 'date')\n return isDateInvalidRef.value;\n if (type === 'datetime')\n return isDateTimeInvalidRef.value;\n return false;\n });\n return {\n // date & datetime\n isValueInvalidRef,\n isDateInvalidRef,\n // datetime only\n isTimeInvalidRef,\n isDateTimeInvalidRef,\n isHourDisabledRef,\n isMinuteDisabledRef,\n isSecondDisabledRef\n };\n}\nexport function dualCalendarValidation(props, mergedValueRef) {\n // daterange, datetimerange\n const timePickerValidatorRef = computed(() => {\n const { isTimeDisabled } = props;\n const { value } = mergedValueRef;\n if (!Array.isArray(value) || !isTimeDisabled) {\n return [undefined, undefined];\n }\n return [\n isTimeDisabled === null || isTimeDisabled === void 0 ? void 0 : isTimeDisabled(value[0], 'start', value),\n isTimeDisabled === null || isTimeDisabled === void 0 ? void 0 : isTimeDisabled(value[1], 'end', value)\n ];\n });\n const timeValidator = {\n isStartHourDisabledRef: computed(() => { var _a; return (_a = timePickerValidatorRef.value[0]) === null || _a === void 0 ? void 0 : _a.isHourDisabled; }),\n isEndHourDisabledRef: computed(() => { var _a; return (_a = timePickerValidatorRef.value[1]) === null || _a === void 0 ? void 0 : _a.isHourDisabled; }),\n isStartMinuteDisabledRef: computed(() => { var _a; return (_a = timePickerValidatorRef.value[0]) === null || _a === void 0 ? void 0 : _a.isMinuteDisabled; }),\n isEndMinuteDisabledRef: computed(() => { var _a; return (_a = timePickerValidatorRef.value[1]) === null || _a === void 0 ? void 0 : _a.isMinuteDisabled; }),\n isStartSecondDisabledRef: computed(() => { var _a; return (_a = timePickerValidatorRef.value[0]) === null || _a === void 0 ? void 0 : _a.isSecondDisabled; }),\n isEndSecondDisabledRef: computed(() => { var _a; return (_a = timePickerValidatorRef.value[1]) === null || _a === void 0 ? void 0 : _a.isSecondDisabled; })\n };\n const isStartDateInvalidRef = computed(() => {\n const { type, isDateDisabled } = props;\n const { value } = mergedValueRef;\n if (value === null ||\n !Array.isArray(value) ||\n !['daterange', 'datetimerange'].includes(type) ||\n !isDateDisabled) {\n return false;\n }\n return isDateDisabled(value[0], 'start', value);\n });\n const isEndDateInvalidRef = computed(() => {\n const { type, isDateDisabled } = props;\n const { value } = mergedValueRef;\n if (value === null ||\n !Array.isArray(value) ||\n !['daterange', 'datetimerange'].includes(type) ||\n !isDateDisabled) {\n return false;\n }\n return isDateDisabled(value[1], 'end', value);\n });\n const isStartTimeInvalidRef = computed(() => {\n const { type } = props;\n const { value } = mergedValueRef;\n if (value === null || !Array.isArray(value) || type !== 'datetimerange') {\n return false;\n }\n const startHours = getHours(value[0]);\n const startMinutes = getMinutes(value[0]);\n const startSeconds = getSeconds(value[0]);\n const { isStartHourDisabledRef, isStartMinuteDisabledRef, isStartSecondDisabledRef } = timeValidator;\n const startTimeInvalid = (isStartHourDisabledRef.value\n ? isStartHourDisabledRef.value(startHours)\n : false) ||\n (isStartMinuteDisabledRef.value\n ? isStartMinuteDisabledRef.value(startMinutes, startHours)\n : false) ||\n (isStartSecondDisabledRef.value\n ? isStartSecondDisabledRef.value(startSeconds, startMinutes, startHours)\n : false);\n return startTimeInvalid;\n });\n const isEndTimeInvalidRef = computed(() => {\n const { type } = props;\n const { value } = mergedValueRef;\n if (value === null || !Array.isArray(value) || type !== 'datetimerange') {\n return false;\n }\n const endHours = getHours(value[1]);\n const endMinutes = getMinutes(value[1]);\n const endSeconds = getSeconds(value[1]);\n const { isEndHourDisabledRef, isEndMinuteDisabledRef, isEndSecondDisabledRef } = timeValidator;\n const endTimeInvalid = (isEndHourDisabledRef.value\n ? isEndHourDisabledRef.value(endHours)\n : false) ||\n (isEndMinuteDisabledRef.value\n ? isEndMinuteDisabledRef.value(endMinutes, endHours)\n : false) ||\n (isEndSecondDisabledRef.value\n ? isEndSecondDisabledRef.value(endSeconds, endMinutes, endHours)\n : false);\n return endTimeInvalid;\n });\n const isStartValueInvalidRef = computed(() => {\n return isStartDateInvalidRef.value || isStartTimeInvalidRef.value;\n });\n const isEndValueInvalidRef = computed(() => {\n return isEndDateInvalidRef.value || isEndTimeInvalidRef.value;\n });\n const isRangeInvalidRef = computed(() => {\n return isStartValueInvalidRef.value || isEndValueInvalidRef.value;\n });\n return Object.assign(Object.assign({}, timeValidator), { isStartDateInvalidRef,\n isEndDateInvalidRef,\n isStartTimeInvalidRef,\n isEndTimeInvalidRef,\n isStartValueInvalidRef,\n isEndValueInvalidRef,\n isRangeInvalidRef });\n}\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\n\nexport default function startOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\n\nexport default function startOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\n\nexport default function startOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * var result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * var result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n\n if (typeof values !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n\n var date = toDate(dirtyDate); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n\n return date;\n}","import { h } from 'vue';\nimport { replaceable } from './replaceable';\nexport default replaceable('time', h(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\" },\n h(\"path\", { d: \"M256,64C150,64,64,150,64,256s86,192,192,192,192-86,192-192S362,64,256,64Z\", style: \"\\n fill: none;\\n stroke: currentColor;\\n stroke-miterlimit: 10;\\n stroke-width: 32px;\\n \" }),\n h(\"polyline\", { points: \"256 128 256 272 352 272\", style: \"\\n fill: none;\\n stroke: currentColor;\\n stroke-linecap: round;\\n stroke-linejoin: round;\\n stroke-width: 32px;\\n \" })));\n","import { throwError } from '../../_utils';\nexport const time = {\n hours: [\n '00',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '07',\n '08',\n '09',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '20',\n '21',\n '22',\n '23'\n ],\n minutes: [\n '00',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '07',\n '08',\n '09',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n '26',\n '27',\n '28',\n '29',\n '30',\n '31',\n '32',\n '33',\n '34',\n '35',\n '36',\n '37',\n '38',\n '39',\n '40',\n '41',\n '42',\n '43',\n '44',\n '45',\n '46',\n '47',\n '48',\n '49',\n '50',\n '51',\n '52',\n '53',\n '54',\n '55',\n '56',\n '57',\n '58',\n '59'\n ],\n seconds: [\n '00',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '07',\n '08',\n '09',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n '26',\n '27',\n '28',\n '29',\n '30',\n '31',\n '32',\n '33',\n '34',\n '35',\n '36',\n '37',\n '38',\n '39',\n '40',\n '41',\n '42',\n '43',\n '44',\n '45',\n '46',\n '47',\n '48',\n '49',\n '50',\n '51',\n '52',\n '53',\n '54',\n '55',\n '56',\n '57',\n '58',\n '59'\n ],\n period: ['AM', 'PM']\n};\nexport function getFixValue(value) {\n return `00${value}`.slice(-2);\n}\nexport function getTimeUnits(defaultValue, stepOrList) {\n if (Array.isArray(stepOrList)) {\n return stepOrList.map((v) => Math.floor(v)).map((v) => getFixValue(v));\n }\n else if (typeof stepOrList === 'number') {\n return defaultValue.filter((hour) => Number(hour) % stepOrList === 0);\n }\n else {\n return defaultValue;\n }\n}\nexport function isTimeInStep(value, type, stepOrList) {\n if (!stepOrList) {\n return true;\n }\n else if (typeof stepOrList === 'number') {\n return value % stepOrList === 0;\n }\n else {\n return stepOrList.includes(value);\n }\n}\nexport function findSimilarTime(value, type, stepOrList) {\n const list = getTimeUnits(time[type], stepOrList).map(Number);\n let lowerBound, upperBound;\n for (let i = 0; i < list.length; ++i) {\n const v = list[i];\n if (v === value)\n return v;\n else if (v > value) {\n upperBound = v;\n break;\n }\n lowerBound = v;\n }\n if (lowerBound === undefined) {\n if (!upperBound) {\n throwError('time-picker', \"Please set 'hours' or 'minutes' or 'seconds' props\");\n }\n return upperBound;\n }\n if (upperBound === undefined) {\n return lowerBound;\n }\n return upperBound - value > value - lowerBound ? lowerBound : upperBound;\n}\n","export const timePickerInjectionKey = Symbol('timePicker');\n","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'TimePickerPanelCol',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n data: {\n type: Array,\n required: true\n },\n activeValue: {\n type: Number,\n default: null\n },\n onItemClick: Function\n },\n render() {\n const { activeValue, onItemClick, clsPrefix } = this;\n return this.data.map((item) => {\n const { value, disabled } = item;\n const numValue = Number(value);\n const active = activeValue === numValue;\n return (h(\"div\", { key: value, \"data-active\": active ? '' : null, class: [\n `${clsPrefix}-time-picker-col__item`,\n {\n [`${clsPrefix}-time-picker-col__item--active`]: active,\n [`${clsPrefix}-time-picker-col__item--disabled`]: disabled\n }\n ], onClick: onItemClick && !disabled ? () => onItemClick(numValue) : undefined }, value));\n });\n }\n});\n","import { h, ref, defineComponent, inject, computed } from 'vue';\nimport { NScrollbar } from '../../scrollbar';\nimport { NButton } from '../../button';\nimport { NBaseFocusDetector } from '../../_internal';\nimport { getTimeUnits, time } from './utils';\nimport { timePickerInjectionKey } from './interface';\nimport PanelCol from './PanelCol';\nconst timePickerPanelProps = {\n actions: {\n type: Array,\n default: () => ['now', 'confirm']\n },\n showHour: {\n type: Boolean,\n default: true\n },\n showMinute: {\n type: Boolean,\n default: true\n },\n showSecond: {\n type: Boolean,\n default: true\n },\n showPeriod: {\n type: Boolean,\n default: true\n },\n isHourInvalid: Boolean,\n isMinuteInvalid: Boolean,\n isSecondInvalid: Boolean,\n isValueInvalid: Boolean,\n hourValue: {\n type: Number,\n default: null\n },\n minuteValue: {\n type: Number,\n default: null\n },\n secondValue: {\n type: Number,\n default: null\n },\n isHourDisabled: Function,\n isMinuteDisabled: Function,\n isSecondDisabled: Function,\n onHourClick: {\n type: Function,\n required: true\n },\n onMinuteClick: {\n type: Function,\n required: true\n },\n onSecondClick: {\n type: Function,\n required: true\n },\n onNowClick: Function,\n nowText: String,\n confirmText: String,\n transitionDisabled: Boolean,\n onConfirmClick: Function,\n onFocusin: Function,\n onFocusout: Function,\n onFocusDetectorFocus: Function,\n onKeydown: Function,\n hours: [Number, Array],\n minutes: [Number, Array],\n seconds: [Number, Array]\n};\nexport default defineComponent({\n name: 'TimePickerPanel',\n props: timePickerPanelProps,\n setup(props) {\n const { mergedThemeRef, mergedClsPrefixRef\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(timePickerInjectionKey);\n const hoursRef = computed(() => {\n const { isHourDisabled, hours } = props;\n return getTimeUnits(time.hours, hours).map((hour) => {\n return {\n value: hour,\n disabled: isHourDisabled ? isHourDisabled(Number(hour)) : false\n };\n });\n });\n const minutesRef = computed(() => {\n const { isMinuteDisabled, minutes } = props;\n return getTimeUnits(time.minutes, minutes).map((minute) => {\n return {\n value: minute,\n disabled: isMinuteDisabled\n ? isMinuteDisabled(Number(minute), props.hourValue)\n : false\n };\n });\n });\n const secondsRef = computed(() => {\n const { isSecondDisabled, seconds } = props;\n return getTimeUnits(time.seconds, seconds).map((second) => {\n return {\n value: second,\n disabled: isSecondDisabled\n ? isSecondDisabled(Number(second), props.minuteValue, props.hourValue)\n : false\n };\n });\n });\n return {\n mergedTheme: mergedThemeRef,\n mergedClsPrefix: mergedClsPrefixRef,\n hours: hoursRef,\n minutes: minutesRef,\n seconds: secondsRef,\n hourScrollRef: ref(null),\n minuteScrollRef: ref(null),\n secondScrollRef: ref(null)\n };\n },\n render() {\n var _a, _b;\n const { mergedClsPrefix, mergedTheme } = this;\n return h('div', {\n tabindex: 0,\n class: `${mergedClsPrefix}-time-picker-panel`,\n onFocusin: this.onFocusin,\n onFocusout: this.onFocusout,\n onKeydown: this.onKeydown\n }, [\n h(\"div\", { class: `${mergedClsPrefix}-time-picker-cols` },\n this.showHour ? (h(\"div\", { class: [\n `${mergedClsPrefix}-time-picker-col`,\n {\n [`${mergedClsPrefix}-time-picker-col--invalid`]: this.isHourInvalid,\n [`${mergedClsPrefix}-time-picker-col--transition-disabled`]: this.transitionDisabled\n }\n ] },\n h(NScrollbar, { ref: \"hourScrollRef\", theme: mergedTheme.peers.Scrollbar, themeOverrides: mergedTheme.peerOverrides.Scrollbar }, {\n default: () => [\n h(PanelCol, { clsPrefix: mergedClsPrefix, data: this.hours, activeValue: this.hourValue, onItemClick: this.onHourClick }),\n h(\"div\", { class: `${mergedClsPrefix}-time-picker-col__padding` })\n ]\n }))) : null,\n this.showMinute ? (h(\"div\", { class: [\n `${mergedClsPrefix}-time-picker-col`,\n {\n [`${mergedClsPrefix}-time-picker-col--transition-disabled`]: this.transitionDisabled,\n [`${mergedClsPrefix}-time-picker-col--invalid`]: this.isMinuteInvalid\n }\n ] },\n h(NScrollbar, { ref: \"minuteScrollRef\", theme: mergedTheme.peers.Scrollbar, themeOverrides: mergedTheme.peerOverrides.Scrollbar }, {\n default: () => [\n h(PanelCol, { clsPrefix: mergedClsPrefix, data: this.minutes, activeValue: this.minuteValue, onItemClick: this.onMinuteClick }),\n h(\"div\", { class: `${mergedClsPrefix}-time-picker-col__padding` })\n ]\n }))) : null,\n this.showSecond ? (h(\"div\", { class: [\n `${mergedClsPrefix}-time-picker-col`,\n {\n [`${mergedClsPrefix}-time-picker-col--invalid`]: this.isSecondInvalid,\n [`${mergedClsPrefix}-time-picker-col--transition-disabled`]: this.transitionDisabled\n }\n ] },\n h(NScrollbar, { ref: \"secondScrollRef\", theme: mergedTheme.peers.Scrollbar, themeOverrides: mergedTheme.peerOverrides.Scrollbar }, {\n default: () => [\n h(PanelCol, { clsPrefix: mergedClsPrefix, data: this.seconds, activeValue: this.secondValue, onItemClick: this.onSecondClick }),\n h(\"div\", { class: `${mergedClsPrefix}-time-picker-col__padding` })\n ]\n }))) : null),\n h(\"div\", { class: `${mergedClsPrefix}-time-picker-actions` },\n ((_a = this.actions) === null || _a === void 0 ? void 0 : _a.includes('now')) ? (h(NButton, { size: \"tiny\", theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, onClick: this.onNowClick }, { default: () => this.nowText })) : null,\n ((_b = this.actions) === null || _b === void 0 ? void 0 : _b.includes('confirm')) ? (h(NButton, { size: \"tiny\", type: \"primary\", class: `${mergedClsPrefix}-time-picker-actions__confirm`, theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, disabled: this.isValueInvalid, onClick: this.onConfirmClick }, { default: () => this.confirmText })) : null),\n h(NBaseFocusDetector, { onFocus: this.onFocusDetectorFocus })\n ]);\n }\n});\n","import { c, cE, cM, cB, cNotM } from '../../../_utils/cssr';\nimport fadeInScaleUpTransition from '../../../_styles/transitions/fade-in-scale-up.cssr'; // vars:\n// --icon-color\n// --icon-color-disabled\n// --bezier\n// --border-radius\n// --item-color-hover\n// --item-font-size\n// --item-height\n// --item-opacity-disabled\n// --item-text-color\n// --item-text-color-active\n// --item-width\n// --panel-action-padding\n// --panel-box-shadow\n// --panel-color\n// --panel-divider-color\n\nexport default c([cB('time-picker', `\n z-index: auto;\n position: relative;\n `, [cB('time-picker-icon', `\n color: var(--icon-color);\n transition: color .3s var(--bezier);\n `), cM('disabled', [cB('time-picker-icon', {\n color: 'var(--icon-color-disabled)'\n})])]), cB('time-picker-panel', `\n outline: none;\n font-size: var(--item-font-size);\n border-radius: var(--border-radius);\n margin: 4px 0;\n min-width: 104px;\n overflow: hidden;\n background-color: var(--panel-color);\n box-shadow: var(--panel-box-shadow);\n `, [fadeInScaleUpTransition(), cB('time-picker-actions', `\n padding: var(--panel-action-padding);\n align-items: center;\n display: flex;\n justify-content: space-evenly;\n `), cB('time-picker-cols', `\n height: calc(var(--item-height) * 7);\n display: flex;\n position: relative;\n border-bottom: 1px solid var(--panel-divider-color);\n `), cB('time-picker-col', `\n flex-grow: 1;\n min-width: var(--item-width);\n height: calc(var(--item-height) * 7);\n flex-direction: column;\n transition: box-shadow .3s var(--bezier);\n `, [cM('transition-disabled', [cE('item', {\n transition: 'none'\n})]), cE('padding', {\n height: 'calc(var(--item-height) * 6)'\n}), cE('item', `\n cursor: pointer;\n height: var(--item-height);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: \n color .3s var(--bezier),\n background-color .3s var(--bezier),\n opacity .3s var(--bezier),\n text-decoration-color .3s var(--bezier);\n background: #0000;\n text-decoration-color: #0000;\n color: var(--item-text-color);\n `, [cNotM('disabled', [c('&:hover', {\n backgroundColor: 'var(--item-color-hover)'\n})]), cM('active', `\n background-color: var(--item-color-hover);\n color: var(--item-text-color-active);\n `), cM('disabled', `\n opacity: var(--item-opacity-disabled);\n cursor: not-allowed;\n `)]), cM('invalid', [cE('item', [cM('active', `\n text-decoration: line-through;\n text-decoration-color: var(--item-text-color-active);\n `)])])])])]);","import { h, ref, toRef, defineComponent, computed, withDirectives, Transition, provide, nextTick, watch } from 'vue';\nimport { useIsMounted, useKeyboard, useMergedState } from 'vooks';\nimport { VBinder, VTarget, VFollower } from 'vueuc';\nimport { clickoutside } from 'vdirs';\nimport { isValid, startOfSecond, startOfMinute, startOfHour, format, set, setHours, setMinutes, setSeconds, getTime, getMinutes, getHours, getSeconds } from 'date-fns';\nimport { strictParse } from '../../date-picker/src/utils';\nimport { TimeIcon } from '../../_internal/icons';\nimport { NInput } from '../../input';\nimport { NBaseIcon } from '../../_internal';\nimport { useConfig, useTheme, useLocale, useFormItem } from '../../_mixins';\nimport { warn, call, useAdjustedTo } from '../../_utils';\nimport { timePickerLight } from '../styles';\nimport Panel from './Panel';\nimport style from './styles/index.cssr';\nimport { timePickerInjectionKey } from './interface';\nimport { happensIn } from 'seemly';\nimport { findSimilarTime, isTimeInStep } from './utils';\n// validate hours, minutes, seconds prop\nfunction validateUnits(value, max) {\n if (value === undefined) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.every((v) => v >= 0 && v <= max);\n }\n else {\n return value >= 0 && value <= max;\n }\n}\nconst timePickerProps = Object.assign(Object.assign({}, useTheme.props), { to: useAdjustedTo.propTo, bordered: {\n type: Boolean,\n default: undefined\n }, actions: Array, defaultValue: {\n type: Number,\n default: null\n }, placeholder: String, placement: {\n type: String,\n default: 'bottom-start'\n }, value: Number, format: {\n type: String,\n default: 'HH:mm:ss'\n }, isHourDisabled: Function, size: String, isMinuteDisabled: Function, isSecondDisabled: Function, clearable: Boolean, 'onUpdate:value': [Function, Array], onUpdateValue: [Function, Array], onBlur: [Function, Array], onFocus: [Function, Array], \n // private\n stateful: {\n type: Boolean,\n default: true\n }, showIcon: {\n type: Boolean,\n default: true\n }, disabled: {\n type: Boolean,\n default: undefined\n }, \n // deprecated\n onChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('time-picker', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n return true;\n },\n default: undefined\n }, hours: {\n type: [Number, Array],\n validator: (value) => validateUnits(value, 23)\n }, minutes: {\n type: [Number, Array],\n validator: (value) => validateUnits(value, 59)\n }, seconds: {\n type: [Number, Array],\n validator: (value) => validateUnits(value, 59)\n } });\nexport default defineComponent({\n name: 'TimePicker',\n props: timePickerProps,\n setup(props) {\n const { mergedBorderedRef, mergedClsPrefixRef, namespaceRef } = useConfig(props);\n const { localeRef, dateLocaleRef } = useLocale('TimePicker');\n const formItem = useFormItem(props);\n const { mergedSizeRef, mergedDisabledRef } = formItem;\n const themeRef = useTheme('TimePicker', 'TimePicker', style, timePickerLight, props, mergedClsPrefixRef);\n const keyboardState = useKeyboard();\n const inputInstRef = ref(null);\n const panelInstRef = ref(null);\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const dateFnsOptionsRef = computed(() => {\n return {\n locale: dateLocaleRef.value.locale\n };\n });\n const { value: mergedValue } = mergedValueRef;\n const displayTimeStringRef = ref(mergedValue === null\n ? ''\n : format(mergedValue, props.format, dateFnsOptionsRef.value));\n const activeRef = ref(false);\n const memorizedValueRef = ref(mergedValue);\n const transitionDisabledRef = ref(false);\n const localizedNowRef = computed(() => {\n return localeRef.value.now;\n });\n const localizedPlaceholderRef = computed(() => {\n if (props.placeholder !== undefined)\n return props.placeholder;\n return localeRef.value.placeholder;\n });\n const localizedNegativeTextRef = computed(() => {\n return localeRef.value.negativeText;\n });\n const localizedPositiveTextRef = computed(() => {\n return localeRef.value.positiveText;\n });\n const hourInFormatRef = computed(() => {\n return /H|h|K|k/.test(props.format);\n });\n const minuteInFormatRef = computed(() => {\n return props.format.includes('m');\n });\n const secondInFormatRef = computed(() => {\n return props.format.includes('s');\n });\n const isHourInvalidRef = computed(() => {\n const { isHourDisabled } = props;\n if (hourValueRef.value === null)\n return false;\n if (!isTimeInStep(hourValueRef.value, 'hours', props.hours))\n return true;\n if (!isHourDisabled)\n return false;\n return isHourDisabled(hourValueRef.value);\n });\n const isMinuteInvalidRef = computed(() => {\n const { value: minuteValue } = minuteValueRef;\n const { value: hourValue } = hourValueRef;\n if (minuteValue === null || hourValue === null)\n return false;\n if (!isTimeInStep(minuteValue, 'minutes', props.minutes))\n return true;\n const { isMinuteDisabled } = props;\n if (!isMinuteDisabled)\n return false;\n return isMinuteDisabled(minuteValue, hourValue);\n });\n const isSecondInvalidRef = computed(() => {\n const { value: minuteValue } = minuteValueRef;\n const { value: hourValue } = hourValueRef;\n const { value: secondValue } = secondValueRef;\n if (secondValue === null || minuteValue === null || hourValue === null) {\n return false;\n }\n if (!isTimeInStep(secondValue, 'seconds', props.seconds))\n return true;\n const { isSecondDisabled } = props;\n if (!isSecondDisabled)\n return false;\n return isSecondDisabled(secondValue, minuteValue, hourValue);\n });\n const isValueInvalidRef = computed(() => {\n return (isHourInvalidRef.value ||\n isMinuteInvalidRef.value ||\n isSecondInvalidRef.value);\n });\n const mergedAttrSizeRef = computed(() => {\n return props.format.length + 4;\n });\n const hourValueRef = computed(() => {\n const { value } = mergedValueRef;\n if (value === null)\n return null;\n return Number(format(value, 'HH', dateFnsOptionsRef.value));\n });\n const minuteValueRef = computed(() => {\n const { value } = mergedValueRef;\n if (value === null)\n return null;\n return Number(format(value, 'mm', dateFnsOptionsRef.value));\n });\n const secondValueRef = computed(() => {\n const { value } = mergedValueRef;\n if (value === null)\n return null;\n return Number(format(value, 'ss', dateFnsOptionsRef.value));\n });\n function doChange(value) {\n const { onUpdateValue, 'onUpdate:value': _onUpdateValue, onChange } = props;\n const { nTriggerFormChange, nTriggerFormInput } = formItem;\n if (onUpdateValue)\n call(onUpdateValue, value);\n if (_onUpdateValue)\n call(_onUpdateValue, value);\n if (onChange)\n call(onChange, value);\n uncontrolledValueRef.value = value;\n nTriggerFormChange();\n nTriggerFormInput();\n }\n function doFocus(e) {\n const { onFocus } = props;\n const { nTriggerFormFocus } = formItem;\n if (onFocus)\n call(onFocus, e);\n nTriggerFormFocus();\n }\n function doBlur(e) {\n const { onBlur } = props;\n const { nTriggerFormBlur } = formItem;\n if (onBlur)\n call(onBlur, e);\n nTriggerFormBlur();\n }\n function handleTimeInputClear(e) {\n e.stopPropagation();\n doChange(null);\n deriveInputValue(null);\n }\n function handleFocusDetectorFocus() {\n closePanel({\n returnFocus: true\n });\n }\n function handleMenuKeyDown(e) {\n var _a;\n switch (e.code) {\n case 'Escape':\n closePanel({\n returnFocus: true\n });\n break;\n case 'Tab':\n if (keyboardState.shift && e.target === ((_a = panelInstRef.value) === null || _a === void 0 ? void 0 : _a.$el)) {\n e.preventDefault();\n closePanel({\n returnFocus: true\n });\n }\n break;\n }\n }\n function disableTransitionOneTick() {\n transitionDisabledRef.value = true;\n void nextTick(() => {\n transitionDisabledRef.value = false;\n });\n }\n function handleTriggerClick(e) {\n if (mergedDisabledRef.value || happensIn(e, 'clear'))\n return;\n if (!activeRef.value) {\n openPanel();\n }\n }\n function handleHourClick(hour) {\n if (mergedValueRef.value === null) {\n doChange(getTime(setHours(startOfHour(new Date()), hour)));\n }\n else {\n doChange(getTime(setHours(mergedValueRef.value, hour)));\n }\n }\n function handleMinuteClick(minute) {\n if (mergedValueRef.value === null) {\n doChange(getTime(setMinutes(startOfMinute(new Date()), minute)));\n }\n else {\n doChange(getTime(setMinutes(mergedValueRef.value, minute)));\n }\n }\n function handleSecondClick(second) {\n if (mergedValueRef.value === null) {\n doChange(getTime(setSeconds(startOfSecond(new Date()), second)));\n }\n else {\n doChange(getTime(setSeconds(mergedValueRef.value, second)));\n }\n }\n function deriveInputValue(time) {\n if (time === undefined)\n time = mergedValueRef.value;\n if (time === null)\n displayTimeStringRef.value = '';\n else {\n displayTimeStringRef.value = format(time, props.format, dateFnsOptionsRef.value);\n }\n }\n function handleTimeInputFocus(e) {\n if (isInternalFocusSwitch(e))\n return;\n doFocus(e);\n }\n function handleTimeInputBlur(e) {\n var _a;\n if (isInternalFocusSwitch(e))\n return;\n if (activeRef.value) {\n const panelEl = (_a = panelInstRef.value) === null || _a === void 0 ? void 0 : _a.$el;\n if (!(panelEl === null || panelEl === void 0 ? void 0 : panelEl.contains(e.relatedTarget))) {\n doBlur(e);\n closePanel({\n returnFocus: false\n });\n }\n }\n }\n function handleTimeInputActivate() {\n if (mergedDisabledRef.value)\n return;\n if (!activeRef.value) {\n openPanel();\n }\n }\n function handleTimeInputDeactivate() {\n if (mergedDisabledRef.value)\n return;\n deriveInputValue();\n closePanel({\n returnFocus: false\n });\n }\n function scrollTimer() {\n var _a, _b, _c;\n if (!panelInstRef.value)\n return;\n const { hourScrollRef, minuteScrollRef, secondScrollRef } = panelInstRef.value;\n if (hourScrollRef) {\n const hour = (_a = hourScrollRef.contentRef) === null || _a === void 0 ? void 0 : _a.querySelector('[data-active]');\n if (hour) {\n hourScrollRef.scrollTo({ top: hour.offsetTop });\n }\n }\n if (minuteScrollRef) {\n const minute = (_b = minuteScrollRef.contentRef) === null || _b === void 0 ? void 0 : _b.querySelector('[data-active]');\n if (minute) {\n minuteScrollRef.scrollTo({ top: minute.offsetTop });\n }\n }\n if (secondScrollRef) {\n const second = (_c = secondScrollRef.contentRef) === null || _c === void 0 ? void 0 : _c.querySelector('[data-active]');\n if (second) {\n secondScrollRef.scrollTo({ top: second.offsetTop });\n }\n }\n }\n function isInternalFocusSwitch(e) {\n var _a, _b, _c;\n return !!(((_b = (_a = inputInstRef.value) === null || _a === void 0 ? void 0 : _a.wrapperElRef) === null || _b === void 0 ? void 0 : _b.contains(e.relatedTarget)) ||\n ((_c = panelInstRef.value) === null || _c === void 0 ? void 0 : _c.$el.contains(e.relatedTarget)));\n }\n function openPanel() {\n memorizedValueRef.value = mergedValueRef.value;\n activeRef.value = true;\n void nextTick(scrollTimer);\n }\n function handleClickOutside(e) {\n var _a, _b;\n if (activeRef.value &&\n !((_b = (_a = inputInstRef.value) === null || _a === void 0 ? void 0 : _a.wrapperElRef) === null || _b === void 0 ? void 0 : _b.contains(e.target))) {\n closePanel({\n returnFocus: false\n });\n }\n }\n function closePanel({ returnFocus }) {\n var _a;\n if (activeRef.value) {\n activeRef.value = false;\n if (returnFocus) {\n (_a = inputInstRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n }\n function handleTimeInputUpdateValue(v) {\n if (v === '') {\n doChange(null);\n return;\n }\n const time = strictParse(v, props.format, new Date(), dateFnsOptionsRef.value);\n displayTimeStringRef.value = v;\n if (isValid(time)) {\n const { value: mergedValue } = mergedValueRef;\n if (mergedValue !== null) {\n const newTime = set(mergedValue, {\n hours: getHours(time),\n minutes: getMinutes(time),\n seconds: getSeconds(time)\n });\n doChange(getTime(newTime));\n }\n else {\n doChange(getTime(time));\n }\n }\n }\n function handleCancelClick() {\n doChange(memorizedValueRef.value);\n activeRef.value = false;\n }\n function handleNowClick() {\n const now = new Date();\n const getNowTime = {\n hours: getHours,\n minutes: getMinutes,\n seconds: getSeconds\n };\n const [mergeHours, mergeMinutes, mergeSeconds] = ['hours', 'minutes', 'seconds'].map((i) => !props[i] || isTimeInStep(getNowTime[i](now), i, props[i])\n ? getNowTime[i](now)\n : findSimilarTime(getNowTime[i](now), i, props[i]));\n const newValue = setSeconds(setMinutes(setHours(mergedValueRef.value ? mergedValueRef.value : getTime(now), mergeHours), mergeMinutes), mergeSeconds);\n doChange(getTime(newValue));\n }\n function handleConfirmClick() {\n deriveInputValue();\n closePanel({\n returnFocus: true\n });\n }\n function handleMenuFocusOut(e) {\n if (isInternalFocusSwitch(e))\n return;\n doBlur(e);\n closePanel({\n returnFocus: false\n });\n }\n watch(mergedValueRef, (value) => {\n deriveInputValue(value);\n disableTransitionOneTick();\n void nextTick(scrollTimer);\n });\n watch(activeRef, () => {\n if (isValueInvalidRef.value) {\n doChange(memorizedValueRef.value);\n }\n });\n provide(timePickerInjectionKey, {\n mergedThemeRef: themeRef,\n mergedClsPrefixRef\n });\n return {\n mergedBordered: mergedBorderedRef,\n mergedClsPrefix: mergedClsPrefixRef,\n namespace: namespaceRef,\n uncontrolledValue: uncontrolledValueRef,\n mergedValue: mergedValueRef,\n isMounted: useIsMounted(),\n inputInstRef,\n panelInstRef,\n adjustedTo: useAdjustedTo(props),\n active: activeRef,\n localizedNow: localizedNowRef,\n localizedPlaceholder: localizedPlaceholderRef,\n localizedNegativeText: localizedNegativeTextRef,\n localizedPositiveText: localizedPositiveTextRef,\n hourInFormat: hourInFormatRef,\n minuteInFormat: minuteInFormatRef,\n secondInFormat: secondInFormatRef,\n mergedAttrSize: mergedAttrSizeRef,\n displayTimeString: displayTimeStringRef,\n mergedSize: mergedSizeRef,\n mergedDisabled: mergedDisabledRef,\n isValueInvalid: isValueInvalidRef,\n isHourInvalid: isHourInvalidRef,\n isMinuteInvalid: isMinuteInvalidRef,\n isSecondInvalid: isSecondInvalidRef,\n transitionDisabled: transitionDisabledRef,\n hourValue: hourValueRef,\n minuteValue: minuteValueRef,\n secondValue: secondValueRef,\n handleTimeInputFocus,\n handleTimeInputBlur,\n handleNowClick,\n handleConfirmClick,\n handleTimeInputUpdateValue,\n handleMenuFocusOut,\n handleCancelClick,\n handleClickOutside,\n handleTimeInputActivate,\n handleTimeInputDeactivate,\n handleHourClick,\n handleMinuteClick,\n handleSecondClick,\n handleTimeInputClear,\n handleFocusDetectorFocus,\n handleMenuKeyDown,\n handleTriggerClick,\n mergedTheme: themeRef,\n triggerCssVars: computed(() => {\n const { common: { cubicBezierEaseInOut }, self: { iconColor, iconColorDisabled } } = themeRef.value;\n return {\n '--icon-color': iconColor,\n '--icon-color-disabled': iconColorDisabled,\n '--bezier': cubicBezierEaseInOut\n };\n }),\n cssVars: computed(() => {\n const { self: { panelColor, itemTextColor, itemTextColorActive, itemColorHover, panelDividerColor, panelBoxShadow, itemOpacityDisabled, borderRadius, itemFontSize, itemWidth, itemHeight, panelActionPadding }, common: { cubicBezierEaseInOut } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--border-radius': borderRadius,\n '--item-color-hover': itemColorHover,\n '--item-font-size': itemFontSize,\n '--item-height': itemHeight,\n '--item-opacity-disabled': itemOpacityDisabled,\n '--item-text-color': itemTextColor,\n '--item-text-color-active': itemTextColorActive,\n '--item-width': itemWidth,\n '--panel-action-padding': panelActionPadding,\n '--panel-box-shadow': panelBoxShadow,\n '--panel-color': panelColor,\n '--panel-divider-color': panelDividerColor\n };\n })\n };\n },\n render() {\n const { mergedClsPrefix } = this;\n return (h(\"div\", { class: `${mergedClsPrefix}-time-picker`, style: this.triggerCssVars },\n h(VBinder, null, {\n default: () => [\n h(VTarget, null, {\n default: () => (h(NInput, { ref: \"inputInstRef\", value: this.displayTimeString, bordered: this.mergedBordered, passivelyActivated: true, attrSize: this.mergedAttrSize, theme: this.mergedTheme.peers.Input, themeOverrides: this.mergedTheme.peerOverrides.Input, stateful: this.stateful, size: this.mergedSize, placeholder: this.localizedPlaceholder, clearable: this.clearable, disabled: this.mergedDisabled, textDecoration: this.isValueInvalid ? 'line-through' : undefined, onFocus: this.handleTimeInputFocus, onBlur: this.handleTimeInputBlur, onActivate: this.handleTimeInputActivate, onDeactivate: this.handleTimeInputDeactivate, onUpdateValue: this.handleTimeInputUpdateValue, onClear: this.handleTimeInputClear, internalDeactivateOnEnter: true, internalForceFocus: this.active, onClick: this.handleTriggerClick }, this.showIcon\n ? {\n [this.clearable ? 'clear' : 'suffix']: () => (h(NBaseIcon, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-time-picker-icon` }, {\n default: () => h(TimeIcon, null)\n }))\n }\n : null))\n }),\n h(VFollower, { teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey, show: this.active, to: this.adjustedTo, containerClass: this.namespace, placement: \"bottom-start\" }, {\n default: () => (h(Transition, { name: \"fade-in-scale-up-transition\", appear: this.isMounted }, {\n default: () => this.active\n ? withDirectives(h(Panel, { ref: \"panelInstRef\", actions: this.actions, style: this.cssVars, seconds: this.seconds, minutes: this.minutes, hours: this.hours, transitionDisabled: this.transitionDisabled, hourValue: this.hourValue, showHour: this.hourInFormat, isHourInvalid: this.isHourInvalid, isHourDisabled: this.isHourDisabled, minuteValue: this.minuteValue, showMinute: this.minuteInFormat, isMinuteInvalid: this.isMinuteInvalid, isMinuteDisabled: this.isMinuteDisabled, secondValue: this.secondValue, showSecond: this.secondInFormat, isSecondInvalid: this.isSecondInvalid, isSecondDisabled: this.isSecondDisabled, isValueInvalid: this.isValueInvalid, nowText: this.localizedNow, confirmText: this.localizedPositiveText, onFocusout: this.handleMenuFocusOut, onKeydown: this.handleMenuKeyDown, onHourClick: this.handleHourClick, onMinuteClick: this.handleMinuteClick, onSecondClick: this.handleSecondClick, onNowClick: this.handleNowClick, onConfirmClick: this.handleConfirmClick, onFocusDetectorFocus: this.handleFocusDetectorFocus }), [[clickoutside, this.handleClickOutside]])\n : null\n }))\n })\n ]\n })));\n }\n});\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","export const datePickerInjectionKey = Symbol('datePicker');\n","import { computed, inject, ref, nextTick } from 'vue';\nimport { useKeyboard } from 'vooks';\nimport { datePickerInjectionKey } from '../interface';\nconst DATE_FORMAT = 'yyyy-MM-dd';\nconst TIME_FORMAT = 'HH:mm:ss';\nconst usePanelCommonProps = {\n active: Boolean,\n dateFormat: {\n type: String,\n default: DATE_FORMAT\n },\n timeFormat: {\n type: String,\n default: TIME_FORMAT\n },\n value: {\n type: [Array, Number],\n default: null\n },\n shortcuts: Object,\n onConfirm: Function,\n onClose: Function,\n onTabOut: Function,\n onUpdateValue: {\n type: Function,\n required: true\n }\n};\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction usePanelCommon(props) {\n const { dateLocaleRef, timePickerSizeRef, localeRef, mergedClsPrefixRef, mergedThemeRef\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(datePickerInjectionKey);\n const dateFnsOptionsRef = computed(() => {\n return {\n locale: dateLocaleRef.value.locale\n };\n });\n const selfRef = ref(null);\n const keyboardState = useKeyboard();\n function doConfirm() {\n const { onConfirm } = props;\n if (onConfirm)\n onConfirm();\n }\n function doUpdateValue(value, doUpdate) {\n const { onUpdateValue } = props;\n onUpdateValue(value, doUpdate);\n }\n function doClose(disableUpdateOnClose = false) {\n const { onClose } = props;\n if (onClose)\n onClose(disableUpdateOnClose);\n }\n function doTabOut() {\n const { onTabOut } = props;\n if (onTabOut)\n onTabOut();\n }\n function handleClearClick() {\n doUpdateValue(null, true);\n doClose(true);\n }\n function handleFocusDetectorFocus() {\n doTabOut();\n }\n function disableTransitionOneTick() {\n if (props.active) {\n void nextTick(() => {\n const { value: selfEl } = selfRef;\n if (!selfEl)\n return;\n const dateEls = selfEl.querySelectorAll('[data-n-date]');\n dateEls.forEach((el) => {\n el.classList.add('transition-disabled');\n });\n void selfEl.offsetWidth;\n dateEls.forEach((el) => {\n el.classList.remove('transition-disabled');\n });\n });\n }\n }\n function handlePanelKeyDown(e) {\n if (e.code === 'Tab' && e.target === selfRef.value && keyboardState.shift) {\n e.preventDefault();\n doTabOut();\n }\n }\n function handlePanelFocus(e) {\n const { value: el } = selfRef;\n if (keyboardState.tab &&\n e.target === el &&\n (el === null || el === void 0 ? void 0 : el.contains(e.relatedTarget))) {\n doTabOut();\n }\n }\n let cachedValue = null;\n let cached = false;\n function cachePendingValue() {\n cachedValue = props.value;\n cached = true;\n }\n function clearPendingValue() {\n cached = false;\n }\n function restorePendingValue() {\n if (cached) {\n doUpdateValue(cachedValue, false);\n cached = false;\n }\n }\n return {\n mergedTheme: mergedThemeRef,\n mergedClsPrefix: mergedClsPrefixRef,\n dateFnsOptions: dateFnsOptionsRef,\n timePickerSize: timePickerSizeRef,\n selfRef,\n locale: localeRef,\n doConfirm,\n doClose,\n doUpdateValue,\n doTabOut,\n handleClearClick,\n handleFocusDetectorFocus,\n disableTransitionOneTick,\n handlePanelKeyDown,\n handlePanelFocus,\n cachePendingValue,\n clearPendingValue,\n restorePendingValue\n };\n}\nusePanelCommon.props = usePanelCommonProps;\nexport { usePanelCommon };\n","import { ref, computed, inject, watch } from 'vue';\nimport { addMonths, addYears, isSameMonth, getTime, format, set, getYear, getMonth, getDate, isValid, startOfDay, startOfSecond } from 'date-fns';\nimport { dateArray, strictParse } from '../utils';\nimport { usePanelCommon } from './use-panel-common';\nimport { datePickerInjectionKey } from '../interface';\nconst useCalendarProps = Object.assign(Object.assign({}, usePanelCommon.props), { actions: {\n type: Array,\n default: () => ['now', 'clear', 'confirm']\n } });\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction useCalendar(props, type) {\n const panelCommon = usePanelCommon(props);\n const { isValueInvalidRef, isDateDisabledRef, isDateInvalidRef, isTimeInvalidRef, isDateTimeInvalidRef, isHourDisabledRef, isMinuteDisabledRef, isSecondDisabledRef, localeRef, datePickerSlots\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(datePickerInjectionKey);\n const validation = {\n isValueInvalid: isValueInvalidRef,\n isDateDisabled: isDateDisabledRef,\n isDateInvalid: isDateInvalidRef,\n isTimeInvalid: isTimeInvalidRef,\n isDateTimeInvalid: isDateTimeInvalidRef,\n isHourDisabled: isHourDisabledRef,\n isMinuteDisabled: isMinuteDisabledRef,\n isSecondDisabled: isSecondDisabledRef\n };\n const dateInputValueRef = ref(props.value === null || Array.isArray(props.value)\n ? ''\n : format(props.value, props.dateFormat));\n const calendarValueRef = ref(props.value === null || Array.isArray(props.value)\n ? Date.now()\n : props.value);\n const nowRef = ref(Date.now());\n const dateArrayRef = computed(() => {\n return dateArray(calendarValueRef.value, props.value, nowRef.value, localeRef.value.firstDayOfWeek);\n });\n const weekdaysRef = computed(() => {\n return dateArrayRef.value.slice(0, 7).map((dateItem) => {\n const { ts } = dateItem;\n return format(ts, localeRef.value.dayFormat, panelCommon.dateFnsOptions.value);\n });\n });\n const calendarMonthRef = computed(() => {\n return format(calendarValueRef.value, localeRef.value.monthFormat, panelCommon.dateFnsOptions.value);\n });\n const calendarYearRef = computed(() => {\n return format(calendarValueRef.value, localeRef.value.yearFormat, panelCommon.dateFnsOptions.value);\n });\n watch(calendarValueRef, (value, oldValue) => {\n if (!isSameMonth(value, oldValue)) {\n panelCommon.disableTransitionOneTick();\n }\n });\n watch(computed(() => props.value), (value) => {\n if (value !== null && !Array.isArray(value)) {\n dateInputValueRef.value = format(value, props.dateFormat, panelCommon.dateFnsOptions.value);\n calendarValueRef.value = value;\n }\n else {\n dateInputValueRef.value = '';\n }\n });\n function sanitizeValue(value) {\n if (type === 'datetime')\n return getTime(startOfSecond(value));\n return getTime(startOfDay(value));\n }\n function mergedIsDateDisabled(ts) {\n const { isDateDisabled: { value: isDateDisabled } } = validation;\n if (!isDateDisabled)\n return false;\n return isDateDisabled(ts);\n }\n function handleDateInput(value) {\n const date = strictParse(value, props.dateFormat, new Date(), panelCommon.dateFnsOptions.value);\n if (isValid(date)) {\n if (props.value === null) {\n panelCommon.doUpdateValue(getTime(sanitizeValue(Date.now())), false);\n }\n else if (!Array.isArray(props.value)) {\n const newDateTime = set(props.value, {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n panelCommon.doUpdateValue(getTime(sanitizeValue(getTime(newDateTime))), false);\n }\n }\n else {\n dateInputValueRef.value = value;\n }\n }\n function handleDateInputBlur() {\n const date = strictParse(dateInputValueRef.value, props.dateFormat, new Date(), panelCommon.dateFnsOptions.value);\n if (isValid(date)) {\n if (props.value === null) {\n panelCommon.doUpdateValue(getTime(sanitizeValue(Date.now())), false);\n }\n else if (!Array.isArray(props.value)) {\n const newDateTime = set(props.value, {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n panelCommon.doUpdateValue(getTime(sanitizeValue(getTime(newDateTime))), false);\n }\n }\n else {\n deriveDateInputValue();\n }\n }\n function clearSelectedDateTime() {\n panelCommon.doUpdateValue(null, true);\n dateInputValueRef.value = '';\n panelCommon.doClose(true);\n }\n function handleNowClick() {\n panelCommon.doUpdateValue(getTime(sanitizeValue(Date.now())), true);\n calendarValueRef.value = Date.now();\n panelCommon.doClose(true);\n }\n function handleDateClick(dateItem) {\n if (mergedIsDateDisabled(dateItem.ts)) {\n return;\n }\n let newValue;\n if (props.value !== null && !Array.isArray(props.value)) {\n newValue = props.value;\n }\n else {\n newValue = Date.now();\n }\n newValue = getTime(set(newValue, dateItem.dateObject));\n panelCommon.doUpdateValue(getTime(sanitizeValue(newValue)), type === 'date');\n if (type === 'date') {\n panelCommon.doClose();\n }\n }\n function deriveDateInputValue(time) {\n // If not selected, display nothing,\n // else update datetime related string\n if (props.value === null || Array.isArray(props.value)) {\n dateInputValueRef.value = '';\n return;\n }\n if (time === undefined) {\n time = props.value;\n }\n dateInputValueRef.value = format(time, props.dateFormat, panelCommon.dateFnsOptions.value);\n }\n function handleConfirmClick() {\n if (validation.isDateInvalid.value || validation.isTimeInvalid.value) {\n return;\n }\n panelCommon.doConfirm();\n closeCalendar();\n }\n function closeCalendar() {\n if (props.active) {\n panelCommon.doClose();\n }\n }\n function nextYear() {\n calendarValueRef.value = getTime(addYears(calendarValueRef.value, 1));\n }\n function prevYear() {\n calendarValueRef.value = getTime(addYears(calendarValueRef.value, -1));\n }\n function nextMonth() {\n calendarValueRef.value = getTime(addMonths(calendarValueRef.value, 1));\n }\n function prevMonth() {\n calendarValueRef.value = getTime(addMonths(calendarValueRef.value, -1));\n }\n function handleTimePickerChange(value) {\n panelCommon.doUpdateValue(value, false);\n }\n return Object.assign(Object.assign(Object.assign({ dateArray: dateArrayRef, calendarYear: calendarYearRef, calendarMonth: calendarMonthRef, weekdays: weekdaysRef, mergedIsDateDisabled,\n nextYear,\n prevYear,\n nextMonth,\n prevMonth,\n handleNowClick,\n handleConfirmClick }, validation), panelCommon), { \n // datetime only\n handleDateClick,\n handleDateInputBlur,\n handleDateInput,\n handleTimePickerChange,\n clearSelectedDateTime, timePickerSize: panelCommon.timePickerSize, dateInputValue: dateInputValueRef, datePickerSlots });\n}\nuseCalendar.props = useCalendarProps;\nexport { useCalendar };\n","import { h, defineComponent, renderSlot } from 'vue';\nimport { NButton, NxButton } from '../../../button';\nimport { NTimePicker } from '../../../time-picker';\nimport { NInput } from '../../../input';\nimport { BackwardIcon, FastBackwardIcon, ForwardIcon, FastForwardIcon } from '../../../_internal/icons';\nimport { NBaseFocusDetector } from '../../../_internal';\nimport { useCalendar } from './use-calendar';\n/**\n * DateTime Panel\n * Update picker value on:\n * 1. confirm click\n * 2. clear click\n */\nexport default defineComponent({\n name: 'DateTimePanel',\n props: useCalendar.props,\n setup(props) {\n return useCalendar(props, 'datetime');\n },\n render() {\n var _a, _b, _c, _d;\n const { mergedClsPrefix, mergedTheme, shortcuts } = this;\n return (h(\"div\", { ref: \"selfRef\", tabindex: 0, class: `${mergedClsPrefix}-date-panel ${mergedClsPrefix}-date-panel--datetime`, onKeydown: this.handlePanelKeyDown, onFocus: this.handlePanelFocus },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-header` },\n h(NInput, { value: this.dateInputValue, theme: mergedTheme.peers.Input, themeOverrides: mergedTheme.peerOverrides.Input, stateful: false, size: this.timePickerSize, class: `${mergedClsPrefix}-date-panel-date-input`, textDecoration: this.isDateInvalid ? 'line-through' : '', placeholder: this.locale.selectDate, onBlur: this.handleDateInputBlur, onUpdateValue: this.handleDateInput }),\n h(NTimePicker, { showIcon: false, format: this.timeFormat, stateful: false, theme: mergedTheme.peers.TimePicker, themeOverrides: mergedTheme.peerOverrides.TimePicker, to: false, size: this.timePickerSize, value: Array.isArray(this.value) ? null : this.value, placeholder: this.locale.selectTime, isHourDisabled: this.isHourDisabled, isMinuteDisabled: this.isMinuteDisabled, isSecondDisabled: this.isSecondDisabled, onUpdateValue: this.handleTimePickerChange })),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-calendar` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-prev`, onClick: this.prevYear },\n h(FastBackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__prev`, onClick: this.prevMonth },\n h(BackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__month-year` }, this.locale.monthBeforeYear\n ? `${this.calendarMonth} ${this.calendarYear}`\n : `${this.calendarYear} ${this.calendarMonth}`),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__next`, onClick: this.nextMonth },\n h(ForwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-next`, onClick: this.nextYear },\n h(FastForwardIcon, null))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-weekdays` }, this.weekdays.map((weekday) => (h(\"div\", { key: weekday, class: `${mergedClsPrefix}-date-panel-weekdays__day` }, weekday)))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-dates` }, this.dateArray.map((dateItem, i) => (h(\"div\", { \"data-n-date\": true, key: i, class: [\n `${mergedClsPrefix}-date-panel-date`,\n {\n [`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,\n [`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,\n [`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,\n [`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts)\n }\n ], onClick: () => this.handleDateClick(dateItem) },\n dateItem.dateObject.date,\n dateItem.isCurrentDate ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-date__sup` })) : null))))),\n this.datePickerSlots.footer ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-footer` }, renderSlot(this.datePickerSlots, 'footer'))) : null,\n ((_a = this.actions) === null || _a === void 0 ? void 0 : _a.length) || shortcuts ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__prefix` }, shortcuts &&\n Object.keys(shortcuts).map((key) => {\n const shortcut = shortcuts[key];\n return Array.isArray(shortcut) ? null : (h(NxButton, { size: \"tiny\", onMouseenter: () => {\n this.cachePendingValue();\n this.doUpdateValue(shortcut, false);\n }, onClick: () => {\n this.doUpdateValue(shortcut, false);\n this.clearPendingValue();\n this.handleConfirmClick();\n }, onMouseleave: () => {\n this.restorePendingValue();\n } }, { default: () => key }));\n })),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__suffix` },\n ((_b = this.actions) === null || _b === void 0 ? void 0 : _b.includes('clear')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", onClick: this.clearSelectedDateTime }, { default: () => this.locale.clear })) : null,\n ((_c = this.actions) === null || _c === void 0 ? void 0 : _c.includes('now')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", onClick: this.handleNowClick }, { default: () => this.locale.now })) : null,\n ((_d = this.actions) === null || _d === void 0 ? void 0 : _d.includes('confirm')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", type: \"primary\", disabled: this.isDateInvalid, onClick: this.handleConfirmClick }, { default: () => this.locale.confirm })) : null))) : null,\n h(NBaseFocusDetector, { onFocus: this.handleFocusDetectorFocus })));\n }\n});\n","import { inject, computed, watch, ref } from 'vue';\nimport { addMonths, format, getTime, getYear, getMonth, startOfMonth, isValid, startOfSecond, startOfDay, set, getDate } from 'date-fns';\nimport { dateArray, strictParse } from '../utils';\nimport { usePanelCommon } from './use-panel-common';\nimport { datePickerInjectionKey } from '../interface';\nconst useDualCalendarProps = Object.assign(Object.assign({}, usePanelCommon.props), { actions: {\n type: Array,\n default: () => ['clear', 'confirm']\n } });\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction useDualCalendar(props, type = 'datetime') {\n const { isDateDisabledRef, isStartHourDisabledRef, isEndHourDisabledRef, isStartMinuteDisabledRef, isEndMinuteDisabledRef, isStartSecondDisabledRef, isEndSecondDisabledRef, isStartDateInvalidRef, isEndDateInvalidRef, isStartTimeInvalidRef, isEndTimeInvalidRef, isStartValueInvalidRef, isEndValueInvalidRef, isRangeInvalidRef, localeRef, rangesRef, closeOnSelectRef, updateValueOnCloseRef, datePickerSlots\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n } = inject(datePickerInjectionKey);\n const validation = {\n isDateDisabled: isDateDisabledRef,\n isStartHourDisabled: isStartHourDisabledRef,\n isEndHourDisabled: isEndHourDisabledRef,\n isStartMinuteDisabled: isStartMinuteDisabledRef,\n isEndMinuteDisabled: isEndMinuteDisabledRef,\n isStartSecondDisabled: isStartSecondDisabledRef,\n isEndSecondDisabled: isEndSecondDisabledRef,\n isStartDateInvalid: isStartDateInvalidRef,\n isEndDateInvalid: isEndDateInvalidRef,\n isStartTimeInvalid: isStartTimeInvalidRef,\n isEndTimeInvalid: isEndTimeInvalidRef,\n isStartValueInvalid: isStartValueInvalidRef,\n isEndValueInvalid: isEndValueInvalidRef,\n isRangeInvalid: isRangeInvalidRef\n };\n const panelCommon = usePanelCommon(props);\n const startDatesElRef = ref(null);\n const endDatesElRef = ref(null);\n const startCalendarDateTimeRef = ref(Date.now());\n const endCalendarDateTimeRef = ref(getTime(addMonths(Date.now(), 1)));\n const nowRef = ref(Date.now());\n const isSelectingRef = ref(false);\n const memorizedStartDateTimeRef = ref(0);\n const { value, dateFormat } = props;\n const startDateInput = ref(Array.isArray(value)\n ? format(value[0], dateFormat, panelCommon.dateFnsOptions.value)\n : '');\n const endDateInputRef = ref(Array.isArray(value)\n ? format(value[1], dateFormat, panelCommon.dateFnsOptions.value)\n : '');\n if (Array.isArray(value)) {\n syncCalendarTimeWithValue(value);\n }\n // derived computed\n const selectingPhaseRef = computed(() => {\n if (isSelectingRef.value)\n return 'end';\n else\n return 'start';\n });\n const startDateArrayRef = computed(() => {\n return dateArray(startCalendarDateTimeRef.value, props.value, nowRef.value, localeRef.value.firstDayOfWeek);\n });\n const endDateArrayRef = computed(() => {\n return dateArray(endCalendarDateTimeRef.value, props.value, nowRef.value, localeRef.value.firstDayOfWeek);\n });\n const weekdaysRef = computed(() => {\n return startDateArrayRef.value.slice(0, 7).map((dateItem) => {\n const { ts } = dateItem;\n return format(ts, localeRef.value.dayFormat, panelCommon.dateFnsOptions.value);\n });\n });\n const startCalendarMonthRef = computed(() => {\n return format(startCalendarDateTimeRef.value, localeRef.value.monthFormat, panelCommon.dateFnsOptions.value);\n });\n const endCalendarMonthRef = computed(() => {\n return format(endCalendarDateTimeRef.value, localeRef.value.monthFormat, panelCommon.dateFnsOptions.value);\n });\n const startCalendarYearRef = computed(() => {\n return format(startCalendarDateTimeRef.value, localeRef.value.yearFormat, panelCommon.dateFnsOptions.value);\n });\n const endCalendarYearRef = computed(() => {\n return format(endCalendarDateTimeRef.value, localeRef.value.yearFormat, panelCommon.dateFnsOptions.value);\n });\n const startTimeValueRef = computed(() => {\n const { value } = props;\n if (Array.isArray(value))\n return value[0];\n return null;\n });\n const endTimeValueRef = computed(() => {\n const { value } = props;\n if (Array.isArray(value))\n return value[1];\n return null;\n });\n const shortcutsRef = computed(() => {\n const { shortcuts } = props;\n return shortcuts || rangesRef.value;\n });\n watch(computed(() => props.value), (value) => {\n if (value !== null && Array.isArray(value)) {\n const [startMoment, endMoment] = value;\n const { dateFormat } = props;\n startDateInput.value = format(startMoment, dateFormat, panelCommon.dateFnsOptions.value);\n endDateInputRef.value = format(endMoment, dateFormat, panelCommon.dateFnsOptions.value);\n if (!isSelectingRef.value) {\n syncCalendarTimeWithValue(value);\n }\n }\n else {\n startDateInput.value = '';\n endDateInputRef.value = '';\n }\n });\n function handleCalendarChange(value, oldValue) {\n if (getYear(value) !== getYear(oldValue) ||\n getMonth(value) !== getMonth(oldValue)) {\n panelCommon.disableTransitionOneTick();\n }\n }\n watch(startCalendarDateTimeRef, handleCalendarChange);\n watch(endCalendarDateTimeRef, handleCalendarChange);\n // change calendar\n function adjustCalendarTimes(byStartCalendarTime) {\n const startTime = startOfMonth(startCalendarDateTimeRef.value);\n const endTime = startOfMonth(endCalendarDateTimeRef.value);\n if (startTime >= endTime) {\n if (byStartCalendarTime) {\n endCalendarDateTimeRef.value = getTime(addMonths(startTime, 1));\n }\n else {\n startCalendarDateTimeRef.value = getTime(addMonths(endTime, -1));\n }\n }\n }\n function startCalendarNextYear() {\n startCalendarDateTimeRef.value = getTime(addMonths(startCalendarDateTimeRef.value, 12));\n adjustCalendarTimes(true);\n }\n function startCalendarPrevYear() {\n startCalendarDateTimeRef.value = getTime(addMonths(startCalendarDateTimeRef.value, -12));\n adjustCalendarTimes(true);\n }\n function startCalendarNextMonth() {\n startCalendarDateTimeRef.value = getTime(addMonths(startCalendarDateTimeRef.value, 1));\n adjustCalendarTimes(true);\n }\n function startCalendarPrevMonth() {\n startCalendarDateTimeRef.value = getTime(addMonths(startCalendarDateTimeRef.value, -1));\n adjustCalendarTimes(true);\n }\n function endCalendarNextYear() {\n endCalendarDateTimeRef.value = getTime(addMonths(endCalendarDateTimeRef.value, 12));\n adjustCalendarTimes(false);\n }\n function endCalendarPrevYear() {\n endCalendarDateTimeRef.value = getTime(addMonths(endCalendarDateTimeRef.value, -12));\n adjustCalendarTimes(false);\n }\n function endCalendarNextMonth() {\n endCalendarDateTimeRef.value = getTime(addMonths(endCalendarDateTimeRef.value, 1));\n adjustCalendarTimes(false);\n }\n function endCalendarPrevMonth() {\n endCalendarDateTimeRef.value = getTime(addMonths(endCalendarDateTimeRef.value, -1));\n adjustCalendarTimes(false);\n }\n // The function is used on date panel, not the date-picker value validation\n function mergedIsDateDisabled(ts) {\n const isDateDisabled = isDateDisabledRef.value;\n if (!isDateDisabled)\n return false;\n if (!Array.isArray(props.value))\n return isDateDisabled(ts, 'start', null);\n if (selectingPhaseRef.value === 'start') {\n // before you really start to select\n return isDateDisabled(ts, 'start', null);\n }\n else {\n const { value: memorizedStartDateTime } = memorizedStartDateTimeRef;\n // after you starting to select\n if (ts < memorizedStartDateTimeRef.value) {\n return isDateDisabled(ts, 'start', [\n memorizedStartDateTime,\n memorizedStartDateTime\n ]);\n }\n else {\n return isDateDisabled(ts, 'end', [\n memorizedStartDateTime,\n memorizedStartDateTime\n ]);\n }\n }\n }\n function resetSelectingStatus(e) {\n var _a, _b;\n if (((_a = startDatesElRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.target)) ||\n ((_b = endDatesElRef.value) === null || _b === void 0 ? void 0 : _b.contains(e.target))) {\n // do nothing\n }\n else {\n isSelectingRef.value = false;\n }\n }\n function syncCalendarTimeWithValue(value) {\n if (value === null)\n return;\n const [startMoment, endMoment] = value;\n startCalendarDateTimeRef.value = startMoment;\n if (startOfMonth(endMoment) <= startOfMonth(startMoment)) {\n endCalendarDateTimeRef.value = getTime(startOfMonth(addMonths(startMoment, 1)));\n }\n else {\n endCalendarDateTimeRef.value = getTime(startOfMonth(endMoment));\n }\n }\n function handleDateClick(dateItem) {\n if (mergedIsDateDisabled(dateItem.ts)) {\n return;\n }\n if (!isSelectingRef.value) {\n isSelectingRef.value = true;\n memorizedStartDateTimeRef.value = dateItem.ts;\n changeStartEndTime(dateItem.ts);\n }\n else {\n isSelectingRef.value = false;\n if (closeOnSelectRef.value && type === 'daterange') {\n if (updateValueOnCloseRef.value) {\n closeCalendar();\n }\n else {\n handleConfirmClick();\n }\n }\n }\n }\n function handleDateMouseEnter(dateItem) {\n if (isSelectingRef.value) {\n if (mergedIsDateDisabled(dateItem.ts))\n return;\n if (dateItem.ts >= memorizedStartDateTimeRef.value) {\n changeStartEndTime(memorizedStartDateTimeRef.value, dateItem.ts);\n }\n else {\n changeStartEndTime(dateItem.ts, memorizedStartDateTimeRef.value);\n }\n }\n }\n function handleConfirmClick() {\n if (isRangeInvalidRef.value) {\n return;\n }\n panelCommon.doConfirm();\n closeCalendar();\n }\n function closeCalendar() {\n isSelectingRef.value = false;\n if (props.active) {\n panelCommon.doClose();\n }\n }\n function changeStartDateTime(time) {\n if (typeof time !== 'number') {\n time = getTime(time);\n }\n if (props.value === null) {\n panelCommon.doUpdateValue([time, time], false);\n }\n else if (Array.isArray(props.value)) {\n panelCommon.doUpdateValue([time, Math.max(props.value[1], time)], false);\n }\n }\n function changeEndDateTime(time) {\n if (typeof time !== 'number') {\n time = getTime(time);\n }\n if (props.value === null) {\n panelCommon.doUpdateValue([time, time], false);\n }\n else if (Array.isArray(props.value)) {\n panelCommon.doUpdateValue([Math.min(props.value[0], time), time], false);\n }\n }\n function changeStartEndTime(startTime, endTime) {\n if (endTime === undefined)\n endTime = startTime;\n if (typeof startTime !== 'number') {\n startTime = getTime(startTime);\n }\n if (typeof endTime !== 'number') {\n endTime = getTime(endTime);\n }\n panelCommon.doUpdateValue([startTime, endTime], false);\n }\n function sanitizeValue(datetime) {\n if (type === 'datetimerange') {\n return getTime(startOfSecond(datetime));\n }\n else {\n // daterange\n return getTime(startOfDay(datetime));\n }\n }\n function handleStartDateInput(value) {\n const date = strictParse(value, props.dateFormat, new Date(), panelCommon.dateFnsOptions.value);\n if (isValid(date)) {\n if (!props.value) {\n const newValue = set(new Date(), {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeStartDateTime(sanitizeValue(getTime(newValue)));\n }\n else if (Array.isArray(props.value)) {\n const newValue = set(props.value[0], {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeStartDateTime(sanitizeValue(getTime(newValue)));\n }\n }\n else {\n startDateInput.value = value;\n }\n }\n function handleEndDateInput(value) {\n /** strict check when input */\n const date = strictParse(value, props.dateFormat, new Date(), panelCommon.dateFnsOptions.value);\n if (isValid(date)) {\n if (props.value === null) {\n const newValue = set(new Date(), {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeEndDateTime(sanitizeValue(getTime(newValue)));\n }\n else if (Array.isArray(props.value)) {\n const newValue = set(props.value[1], {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeEndDateTime(sanitizeValue(getTime(newValue)));\n }\n }\n else {\n endDateInputRef.value = value;\n }\n }\n function handleStartDateInputBlur() {\n const date = strictParse(startDateInput.value, props.dateFormat, new Date(), panelCommon.dateFnsOptions.value);\n const { value } = props;\n if (isValid(date)) {\n if (value === null) {\n const newValue = set(new Date(), {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeStartDateTime(sanitizeValue(getTime(newValue)));\n }\n else if (Array.isArray(value)) {\n const newValue = set(value[0], {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeStartDateTime(sanitizeValue(getTime(newValue)));\n }\n }\n else {\n refreshDisplayDateString();\n }\n }\n function handleEndDateInputBlur() {\n const date = strictParse(endDateInputRef.value, props.dateFormat, new Date(), panelCommon.dateFnsOptions.value);\n const { value } = props;\n if (isValid(date)) {\n if (value === null) {\n const newValue = set(new Date(), {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeEndDateTime(sanitizeValue(getTime(newValue)));\n }\n else if (Array.isArray(value)) {\n const newValue = set(value[1], {\n year: getYear(date),\n month: getMonth(date),\n date: getDate(date)\n });\n changeEndDateTime(sanitizeValue(getTime(newValue)));\n }\n }\n else {\n refreshDisplayDateString();\n }\n }\n function refreshDisplayDateString(times) {\n // If not selected, display nothing,\n // else update datetime related string\n const { value } = props;\n if (value === null || !Array.isArray(value)) {\n startDateInput.value = '';\n endDateInputRef.value = '';\n return;\n }\n const { dateFormat } = props;\n if (times === undefined) {\n times = value;\n }\n startDateInput.value = format(times[0], dateFormat, panelCommon.dateFnsOptions.value);\n endDateInputRef.value = format(times[1], dateFormat, panelCommon.dateFnsOptions.value);\n }\n function handleStartTimePickerChange(value) {\n changeStartDateTime(value);\n }\n function handleEndTimePickerChange(value) {\n changeEndDateTime(value);\n }\n return Object.assign(Object.assign(Object.assign({ startDatesElRef,\n endDatesElRef,\n resetSelectingStatus,\n handleDateClick,\n handleDateMouseEnter,\n handleConfirmClick,\n startCalendarPrevYear,\n startCalendarPrevMonth,\n startCalendarNextYear,\n startCalendarNextMonth,\n endCalendarPrevYear,\n endCalendarPrevMonth,\n endCalendarNextMonth,\n endCalendarNextYear,\n mergedIsDateDisabled,\n changeStartEndTime, ranges: rangesRef, startCalendarMonth: startCalendarMonthRef, startCalendarYear: startCalendarYearRef, endCalendarMonth: endCalendarMonthRef, endCalendarYear: endCalendarYearRef, weekdays: weekdaysRef, startDateArray: startDateArrayRef, endDateArray: endDateArrayRef }, panelCommon), validation), { \n // datetimerangeonly\n startDateDisplayString: startDateInput, endDateInput: endDateInputRef, timePickerSize: panelCommon.timePickerSize, startTimeValue: startTimeValueRef, endTimeValue: endTimeValueRef, handleFocusDetectorFocus: panelCommon.handleFocusDetectorFocus, handleStartTimePickerChange,\n handleEndTimePickerChange,\n handleStartDateInput,\n handleStartDateInputBlur,\n handleEndDateInput,\n handleEndDateInputBlur,\n datePickerSlots, shortcuts: shortcutsRef });\n}\nuseDualCalendar.props = useDualCalendarProps;\nexport { useDualCalendar };\n","import { defineComponent, h, renderSlot } from 'vue';\nimport { NButton, NxButton } from '../../../button';\nimport { NInput } from '../../../input';\nimport { NTimePicker } from '../../../time-picker';\nimport { BackwardIcon, FastBackwardIcon, ForwardIcon, FastForwardIcon } from '../../../_internal/icons';\nimport { NBaseFocusDetector } from '../../../_internal';\nimport { useDualCalendar } from './use-dual-calendar';\nexport default defineComponent({\n name: 'DateTimeRangePanel',\n props: useDualCalendar.props,\n setup(props) {\n return useDualCalendar(props, 'datetimerange');\n },\n render() {\n var _a, _b, _c;\n const { mergedClsPrefix, mergedTheme, shortcuts } = this;\n return (h(\"div\", { ref: \"selfRef\", tabindex: 0, class: `${mergedClsPrefix}-date-panel ${mergedClsPrefix}-date-panel--datetimerange`, onClick: this.resetSelectingStatus, onKeydown: this.handlePanelKeyDown, onFocus: this.handlePanelFocus },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-header` },\n h(NInput, { value: this.startDateDisplayString, theme: mergedTheme.peers.Input, themeOverrides: mergedTheme.peerOverrides.Input, size: this.timePickerSize, stateful: false, class: `${mergedClsPrefix}-date-panel-date-input`, textDecoration: this.isStartValueInvalid ? 'line-through' : '', placeholder: this.locale.selectDate, onBlur: this.handleStartDateInputBlur, onUpdateValue: this.handleStartDateInput }),\n h(NTimePicker, { size: this.timePickerSize, to: false, showIcon: false, theme: mergedTheme.peers.TimePicker, themeOverrides: mergedTheme.peerOverrides.TimePicker, stateful: false, placeholder: this.locale.selectTime, format: this.timeFormat, value: this.startTimeValue, isHourDisabled: this.isStartHourDisabled, isMinuteDisabled: this.isStartMinuteDisabled, isSecondDisabled: this.isStartSecondDisabled, onUpdateValue: this.handleStartTimePickerChange }),\n h(NInput, { value: this.endDateInput, theme: mergedTheme.peers.Input, themeOverrides: mergedTheme.peerOverrides.Input, stateful: false, size: this.timePickerSize, class: `${mergedClsPrefix}-date-panel-date-input`, textDecoration: this.isEndValueInvalid ? 'line-through' : '', placeholder: this.locale.selectDate, onBlur: this.handleEndDateInputBlur, onUpdateValue: this.handleEndDateInput }),\n h(NTimePicker, { showIcon: false, theme: mergedTheme.peers.TimePicker, themeOverrides: mergedTheme.peerOverrides.TimePicker, to: false, size: this.timePickerSize, stateful: false, format: this.timeFormat, placeholder: this.locale.selectTime, value: this.endTimeValue, isHourDisabled: this.isEndHourDisabled, isMinuteDisabled: this.isEndMinuteDisabled, isSecondDisabled: this.isEndSecondDisabled, onUpdateValue: this.handleEndTimePickerChange })),\n h(\"div\", { ref: \"startDatesElRef\", class: `${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--start` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-prev`, onClick: this.startCalendarPrevYear },\n h(FastBackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__prev`, onClick: this.startCalendarPrevMonth },\n h(BackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__month-year` }, this.locale.monthBeforeYear\n ? `${this.startCalendarMonth} ${this.startCalendarYear}`\n : `${this.startCalendarYear} ${this.startCalendarMonth}`),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__next`, onClick: this.startCalendarNextMonth },\n h(ForwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-next`, onClick: this.startCalendarNextYear },\n h(FastForwardIcon, null))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-weekdays` }, this.weekdays.map((weekday) => (h(\"div\", { key: weekday, class: `${mergedClsPrefix}-date-panel-weekdays__day` }, weekday)))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel__divider` }),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-dates` }, this.startDateArray.map((dateItem, i) => (h(\"div\", { \"data-n-date\": true, key: i, class: [\n `${mergedClsPrefix}-date-panel-date`,\n {\n [`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,\n [`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,\n [`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,\n [`${mergedClsPrefix}-date-panel-date--covered`]: dateItem.inSpan,\n [`${mergedClsPrefix}-date-panel-date--start`]: dateItem.startOfSpan,\n [`${mergedClsPrefix}-date-panel-date--end`]: dateItem.endOfSpan,\n [`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts)\n }\n ], onClick: () => this.handleDateClick(dateItem), onMouseenter: () => this.handleDateMouseEnter(dateItem) },\n dateItem.dateObject.date,\n dateItem.isCurrentDate ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-date__sup` })) : null))))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel__vertical-divider` }),\n h(\"div\", { ref: \"endDatesElRef\", class: `${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--end` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-prev`, onClick: this.endCalendarPrevYear },\n h(FastBackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__prev`, onClick: this.endCalendarPrevMonth },\n h(BackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__month-year` }, this.locale.monthBeforeYear\n ? `${this.endCalendarMonth} ${this.endCalendarYear}`\n : `${this.endCalendarYear} ${this.endCalendarMonth}`),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__next`, onClick: this.endCalendarNextMonth },\n h(ForwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-next`, onClick: this.endCalendarNextYear },\n h(FastForwardIcon, null))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-weekdays` }, this.weekdays.map((weekday) => (h(\"div\", { key: weekday, class: `${mergedClsPrefix}-date-panel-weekdays__day` }, weekday)))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel__divider` }),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-dates` }, this.endDateArray.map((dateItem, i) => (h(\"div\", { \"data-n-date\": true, key: i, class: [\n `${mergedClsPrefix}-date-panel-date`,\n {\n [`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,\n [`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,\n [`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,\n [`${mergedClsPrefix}-date-panel-date--covered`]: dateItem.inSpan,\n [`${mergedClsPrefix}-date-panel-date--start`]: dateItem.startOfSpan,\n [`${mergedClsPrefix}-date-panel-date--end`]: dateItem.endOfSpan,\n [`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts)\n }\n ], onClick: () => this.handleDateClick(dateItem), onMouseenter: () => this.handleDateMouseEnter(dateItem) },\n dateItem.dateObject.date,\n dateItem.isCurrentDate ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-date__sup` })) : null))))),\n this.datePickerSlots.footer ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-footer` }, renderSlot(this.datePickerSlots, 'footer'))) : null,\n ((_a = this.actions) === null || _a === void 0 ? void 0 : _a.length) || shortcuts ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__prefix` }, shortcuts &&\n Object.keys(shortcuts).map((key) => {\n const shortcut = shortcuts[key];\n return Array.isArray(shortcut) ? (h(NxButton, { size: \"tiny\", onMouseenter: () => {\n this.cachePendingValue();\n this.changeStartEndTime(...shortcut);\n }, onClick: () => {\n this.changeStartEndTime(...shortcut);\n this.clearPendingValue();\n this.handleConfirmClick();\n }, onMouseleave: () => {\n this.restorePendingValue();\n } }, { default: () => key })) : null;\n })),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__suffix` },\n ((_b = this.actions) === null || _b === void 0 ? void 0 : _b.includes('clear')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", onClick: this.handleClearClick }, { default: () => this.locale.clear })) : null,\n ((_c = this.actions) === null || _c === void 0 ? void 0 : _c.includes('confirm')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", type: \"primary\", disabled: this.isRangeInvalid, onClick: this.handleConfirmClick }, { default: () => this.locale.confirm })) : null))) : null,\n h(NBaseFocusDetector, { onFocus: this.handleFocusDetectorFocus })));\n }\n});\n","import { h, defineComponent, renderSlot } from 'vue';\nimport { NButton, NxButton } from '../../../button';\nimport { BackwardIcon, FastBackwardIcon, ForwardIcon, FastForwardIcon } from '../../../_internal/icons';\nimport { NBaseFocusDetector } from '../../../_internal';\nimport { useCalendar } from './use-calendar';\n/**\n * Date Panel\n * Update picker value on:\n * 1. item click\n * 2. clear click\n */\nexport default defineComponent({\n name: 'DatePanel',\n props: useCalendar.props,\n setup(props) {\n return useCalendar(props, 'date');\n },\n render() {\n var _a, _b, _c;\n const { mergedClsPrefix, mergedTheme, shortcuts } = this;\n return (h(\"div\", { ref: \"selfRef\", tabindex: 0, class: `${mergedClsPrefix}-date-panel ${mergedClsPrefix}-date-panel--date`, onFocus: this.handlePanelFocus, onKeydown: this.handlePanelKeyDown },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-calendar` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-prev`, onClick: this.prevYear },\n h(FastBackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__prev`, onClick: this.prevMonth },\n h(BackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__month-year` }, this.locale.monthBeforeYear\n ? `${this.calendarMonth} ${this.calendarYear}`\n : `${this.calendarYear} ${this.calendarMonth}`),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__next`, onClick: this.nextMonth },\n h(ForwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-next`, onClick: this.nextYear },\n h(FastForwardIcon, null))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-weekdays` }, this.weekdays.map((weekday) => (h(\"div\", { key: weekday, class: `${mergedClsPrefix}-date-panel-weekdays__day` }, weekday)))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-dates` }, this.dateArray.map((dateItem, i) => (h(\"div\", { \"data-n-date\": true, key: i, class: [\n `${mergedClsPrefix}-date-panel-date`,\n {\n [`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,\n [`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,\n [`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,\n [`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts)\n }\n ], onClick: () => this.handleDateClick(dateItem) },\n dateItem.dateObject.date,\n dateItem.isCurrentDate ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-date__sup` })) : null))))),\n this.datePickerSlots.footer ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-footer` }, renderSlot(this.datePickerSlots, 'footer'))) : null,\n ((_a = this.actions) === null || _a === void 0 ? void 0 : _a.length) || shortcuts ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__prefix` }, shortcuts &&\n Object.keys(shortcuts).map((key) => {\n const shortcut = shortcuts[key];\n return Array.isArray(shortcut) ? null : (h(NxButton, { size: \"tiny\", onMouseenter: () => {\n this.cachePendingValue();\n this.doUpdateValue(shortcut, false);\n }, onClick: () => {\n this.doUpdateValue(shortcut, false);\n this.clearPendingValue();\n this.handleConfirmClick();\n }, onMouseleave: () => {\n this.restorePendingValue();\n } }, { default: () => key }));\n })),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__suffix` },\n ((_b = this.actions) === null || _b === void 0 ? void 0 : _b.includes('clear')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", onClick: this.handleClearClick }, { default: () => this.locale.clear })) : null,\n ((_c = this.actions) === null || _c === void 0 ? void 0 : _c.includes('now')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", onClick: this.handleNowClick }, { default: () => this.locale.now })) : null))) : null,\n h(NBaseFocusDetector, { onFocus: this.handleFocusDetectorFocus })));\n }\n});\n","import { defineComponent, h, renderSlot } from 'vue';\nimport { NButton, NxButton } from '../../../button';\nimport { BackwardIcon, FastBackwardIcon, ForwardIcon, FastForwardIcon } from '../../../_internal/icons';\nimport { NBaseFocusDetector } from '../../../_internal';\nimport { useDualCalendar } from './use-dual-calendar';\nexport default defineComponent({\n name: 'DateRangePanel',\n props: useDualCalendar.props,\n setup(props) {\n return useDualCalendar(props, 'daterange');\n },\n render() {\n var _a, _b, _c;\n const { mergedClsPrefix, mergedTheme, shortcuts } = this;\n return (h(\"div\", { ref: \"selfRef\", tabindex: 0, class: `${mergedClsPrefix}-date-panel ${mergedClsPrefix}-date-panel--daterange`, onClick: this.resetSelectingStatus, onKeydown: this.handlePanelKeyDown, onFocus: this.handlePanelFocus },\n h(\"div\", { ref: \"startDatesElRef\", class: `${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--start` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-prev`, onClick: this.startCalendarPrevYear },\n h(FastBackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__prev`, onClick: this.startCalendarPrevMonth },\n h(BackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__month-year` }, this.locale.monthBeforeYear\n ? `${this.startCalendarMonth} ${this.startCalendarYear}`\n : `${this.startCalendarYear} ${this.startCalendarMonth}`),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__next`, onClick: this.startCalendarNextMonth },\n h(ForwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-next`, onClick: this.startCalendarNextYear },\n h(FastForwardIcon, null))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-weekdays` }, this.weekdays.map((weekday) => (h(\"div\", { key: weekday, class: `${mergedClsPrefix}-date-panel-weekdays__day` }, weekday)))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel__divider` }),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-dates` }, this.startDateArray.map((dateItem, i) => (h(\"div\", { \"data-n-date\": true, key: i, class: [\n `${mergedClsPrefix}-date-panel-date`,\n {\n [`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,\n [`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,\n [`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,\n [`${mergedClsPrefix}-date-panel-date--covered`]: dateItem.inSpan,\n [`${mergedClsPrefix}-date-panel-date--start`]: dateItem.startOfSpan,\n [`${mergedClsPrefix}-date-panel-date--end`]: dateItem.endOfSpan,\n [`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts)\n }\n ], onClick: () => this.handleDateClick(dateItem), onMouseenter: () => this.handleDateMouseEnter(dateItem) },\n dateItem.dateObject.date,\n dateItem.isCurrentDate ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-date__sup` })) : null))))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel__vertical-divider` }),\n h(\"div\", { ref: \"endDatesElRef\", class: `${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--end` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-prev`, onClick: this.endCalendarPrevYear },\n h(FastBackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__prev`, onClick: this.endCalendarPrevMonth },\n h(BackwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__month-year` }, this.locale.monthBeforeYear\n ? `${this.endCalendarMonth} ${this.endCalendarYear}`\n : `${this.endCalendarYear} ${this.endCalendarMonth}`),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__next`, onClick: this.endCalendarNextMonth },\n h(ForwardIcon, null)),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-month__fast-next`, onClick: this.endCalendarNextYear },\n h(FastForwardIcon, null))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-weekdays` }, this.weekdays.map((weekday) => (h(\"div\", { key: weekday, class: `${mergedClsPrefix}-date-panel-weekdays__day` }, weekday)))),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel__divider` }),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-dates` }, this.endDateArray.map((dateItem, i) => (h(\"div\", { \"data-n-date\": true, key: i, class: [\n `${mergedClsPrefix}-date-panel-date`,\n {\n [`${mergedClsPrefix}-date-panel-date--excluded`]: !dateItem.inCurrentMonth,\n [`${mergedClsPrefix}-date-panel-date--current`]: dateItem.isCurrentDate,\n [`${mergedClsPrefix}-date-panel-date--selected`]: dateItem.selected,\n [`${mergedClsPrefix}-date-panel-date--covered`]: dateItem.inSpan,\n [`${mergedClsPrefix}-date-panel-date--start`]: dateItem.startOfSpan,\n [`${mergedClsPrefix}-date-panel-date--end`]: dateItem.endOfSpan,\n [`${mergedClsPrefix}-date-panel-date--disabled`]: this.mergedIsDateDisabled(dateItem.ts)\n }\n ], onClick: () => this.handleDateClick(dateItem), onMouseenter: () => this.handleDateMouseEnter(dateItem) },\n dateItem.dateObject.date,\n dateItem.isCurrentDate ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-date__sup` })) : null))))),\n this.datePickerSlots.footer ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-footer` }, renderSlot(this.datePickerSlots, 'footer'))) : null,\n ((_a = this.actions) === null || _a === void 0 ? void 0 : _a.length) || shortcuts ? (h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions` },\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__prefix` }, shortcuts &&\n Object.keys(shortcuts).map((key) => {\n const shortcut = shortcuts[key];\n return Array.isArray(shortcut) ? (h(NxButton, { size: \"tiny\", onMouseenter: () => {\n this.cachePendingValue();\n this.changeStartEndTime(...shortcut);\n }, onClick: () => {\n this.changeStartEndTime(...shortcut);\n this.clearPendingValue();\n this.handleConfirmClick();\n }, onMouseleave: () => {\n this.restorePendingValue();\n } }, { default: () => key })) : null;\n })),\n h(\"div\", { class: `${mergedClsPrefix}-date-panel-actions__suffix` },\n ((_b = this.actions) === null || _b === void 0 ? void 0 : _b.includes('clear')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", onClick: this.handleClearClick }, { default: () => this.locale.clear })) : null,\n ((_c = this.actions) === null || _c === void 0 ? void 0 : _c.includes('confirm')) ? (h(NButton, { theme: mergedTheme.peers.Button, themeOverrides: mergedTheme.peerOverrides.Button, size: \"tiny\", type: \"primary\", disabled: this.isRangeInvalid, onClick: this.handleConfirmClick }, { default: () => this.locale.confirm })) : null))) : null,\n h(NBaseFocusDetector, { onFocus: this.handleFocusDetectorFocus })));\n }\n});\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr';\nimport fadeInScaleUpTransition from '../../../_styles/transitions/fade-in-scale-up.cssr'; // vars:\n// --bezier\n// --icon-color\n// --icon-color-disabled\n// --panel-border-radius\n// --panel-color\n// --panel-box-shadow\n// --panel-text-color\n// panel header\n// --panel-header-padding\n// --panel-header-divider-color\n// panel calendar\n// --calendar-left-padding\n// --calendar-right-padding\n// --calendar-title-height\n// --calendar-title-padding\n// --calendar-title-font-size\n// --calendar-title-text-color\n// --calendar-title-font-weight\n// --calendar-title-grid-template-columns\n// --calendar-days-height\n// --calendar-days-divider-color\n// --calendar-days-font-size\n// --calendar-days-text-color\n// --calendar-divider-color\n// panel action\n// --panel-action-padding\n// --panel-action-divider-color\n// panel item\n// --item-border-radius\n// --item-size\n// --item-cell-width\n// --item-cell-height\n// --item-text-color\n// --item-color-included\n// --item-color-disabled\n// --item-color-hover\n// --item-color-active\n// --item-font-size\n// --item-text-color-disabled\n// --item-text-color-active\n// panel arrow\n// --arrow-size\n// --arrow-color\n\nexport default c([cB('date-picker', `\n position: relative;\n z-index: auto;\n `, [cB('date-picker-icon', `\n color: var(--icon-color);\n transition: color .3s var(--bezier);\n `), cM('disabled', [cB('date-picker-icon', `\n color: var(--icon-color-disabled);\n `)])]), cB('date-panel', `\n outline: none;\n margin: 4px 0;\n display: grid;\n grid-template-columns: 0fr;\n border-radius: var(--panel-border-radius);\n background-color: var(--panel-color);\n box-shadow: var(--panel-box-shadow);\n color: var(--panel-text-color);\n `, [fadeInScaleUpTransition(), cB('date-panel-calendar', {\n padding: 'var(--calendar-left-padding)',\n display: 'grid',\n gridTemplateColumns: '1fr',\n gridArea: 'left-calendar'\n}, [cM('end', {\n padding: 'var(--calendar-right-padding)',\n gridArea: 'right-calendar'\n})]), cM('date', {\n gridTemplateAreas: `\n \"left-calendar\"\n \"footer\"\n \"action\"\n `\n}), cM('daterange', {\n gridTemplateAreas: `\n \"left-calendar divider right-calendar\"\n \"footer footer footer\"\n \"action action action\"\n `\n}), cM('datetime', {\n gridTemplateAreas: `\n \"header\"\n \"left-calendar\"\n \"footer\"\n \"action\"\n `\n}), cM('datetimerange', {\n gridTemplateAreas: `\n \"header header header\"\n \"left-calendar divider right-calendar\"\n \"footer footer footer\"\n \"action action action\"\n `\n}), cB('date-panel-footer', {\n gridArea: 'footer'\n}), cB('date-panel-actions', {\n gridArea: 'action'\n}), cB('date-panel-header', {\n gridArea: 'header'\n}), cB('date-panel-header', `\n box-sizing: border-box;\n width: 100%;\n align-items: center;\n padding: var(--panel-header-padding);\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid var(--panel-header-divider-color);\n `, [c('>', [c('*:not(:last-child)', {\n marginRight: '10px'\n}), c('*', {\n flex: 1,\n width: 0\n}), cB('time-picker', {\n zIndex: 1\n})])]), cB('date-panel-month', `\n box-sizing: border-box;\n display: grid;\n grid-template-columns: var(--calendar-title-grid-template-columns);\n align-items: center;\n justify-items: center;\n padding: var(--calendar-title-padding);\n height: var(--calendar-title-height);\n `, [cE('prev, next, fast-prev, fast-next', `\n line-height: 0;\n cursor: pointer;\n width: var(--arrow-size);\n height: var(--arrow-size);\n color: var(--arrow-color);\n `), cE('month-year', `\n font-size: var(--calendar-title-font-size);\n font-weight: var(--calendar-title-font-weight);\n line-height: 17px;\n flex-grow: 1;\n text-align: center;\n color: var(--calendar-title-text-color);\n `)]), cB('date-panel-weekdays', `\n display: grid;\n margin: auto;\n grid-template-columns: repeat(7, var(--item-cell-width));\n grid-template-rows: repeat(1, var(--item-cell-height));\n align-items: center;\n justify-items: center;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--calendar-days-divider-color);\n `, [cE('day', `\n line-height: 15px;\n width: var(--item-size);\n text-align: center;\n font-size: var(--calendar-days-font-size);\n color: var(--item-text-color);\n `)]), cB('date-panel-dates', `\n margin: auto;\n display: grid;\n grid-template-columns: repeat(7, var(--item-cell-width));\n grid-template-rows: repeat(6, var(--item-cell-height));\n align-items: center;\n justify-items: center;\n flex-wrap: wrap;\n `, [cB('date-panel-date', `\n position: relative;\n width: var(--item-size);\n height: var(--item-size);\n line-height: var(--item-size);\n text-align: center;\n font-size: var(--item-font-size);\n border-radius: var(--item-border-radius);\n z-index: 0;\n cursor: pointer;\n transition:\n background-color .2s var(--bezier),\n color .2s var(--bezier);\n `, [c('&.transition-disabled', {\n transition: 'none !important'\n}, [c('&::before, &::after', {\n transition: 'none !important'\n})]), cNotM('disabled', [cNotM('selected', [c('&:hover', {\n backgroundColor: 'var(--item-color-hover)'\n})])]), cM('current', [cE('sup', `\n position: absolute;\n top: 2px;\n right: 2px;\n content: \"\";\n height: 4px;\n width: 4px;\n border-radius: 2px;\n background-color: var(--item-color-active);\n transition:\n background-color .2s var(--bezier);\n `)]), c('&::after', `\n content: \"\";\n z-index: -1;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n border-radius: inherit;\n transition: background-color .3s var(--bezier);\n `), cM('covered, start, end', [cNotM('excluded', [c('&::before', `\n content: \"\";\n z-index: -2;\n position: absolute;\n left: calc((var(--item-size) - var(--item-cell-width)) / 2);\n right: calc((var(--item-size) - var(--item-cell-width)) / 2);\n top: 0;\n bottom: 0;\n background-color: var(--item-color-included);\n `), c('&:nth-child(7n + 1)::before', {\n borderTopLeftRadius: 'var(--item-border-radius)',\n borderBottomLeftRadius: 'var(--item-border-radius)'\n}), c('&:nth-child(7n + 7)::before', {\n borderTopRightRadius: 'var(--item-border-radius)',\n borderBottomRightRadius: 'var(--item-border-radius)'\n})])]), cM('selected', {\n color: 'var(--item-text-color-active)'\n}, [c('&::after', {\n backgroundColor: 'var(--item-color-active)'\n}), cM('start', [c('&::before', {\n left: '50%'\n})]), cM('end', [c('&::before', {\n right: '50%'\n})]), cE('sup', {\n backgroundColor: 'var(--panel-color)'\n})]), cM('excluded', {\n color: 'var(--item-text-color-disabled)'\n}, [cM('selected', [c('&::after', {\n backgroundColor: 'var(--item-color-disabled)'\n})])]), cM('disabled', {\n cursor: 'not-allowed',\n color: 'var(--item-text-color-disabled)'\n}, [cM('covered', [c('&::before', {\n backgroundColor: 'var(--item-color-disabled)'\n})]), cM('selected', [c('&::before', {\n backgroundColor: 'var(--item-color-disabled)'\n}), c('&::after', {\n backgroundColor: 'var(--item-color-disabled)'\n})])])])]), cE('vertical-divider', `\n grid-area: divider;\n height: 100%;\n width: 1px;\n background-color: var(--calendar-divider-color);\n `), cB('date-panel-footer', {\n borderTop: '1px solid var(--panel-action-divider-color)',\n padding: 'var(--panel-extra-footer-padding)'\n}), cB('date-panel-actions', `\n flex: 1;\n padding: var(--panel-action-padding);\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px solid var(--panel-action-divider-color);\n `, [cE('prefix, suffix', `\n display: flex;\n margin-bottom: -8px;\n `), cE('suffix', `\n align-self: flex-end;\n `), cE('prefix', `\n flex-wrap: wrap;\n `), cB('button', `\n margin-bottom: 8px;\n `, [c('&:not(:last-child)', `\n margin-right: 8px;\n `)])])])]);","import { h, defineComponent, ref, Transition, computed, provide, watch, withDirectives, toRef, watchEffect } from 'vue';\nimport { VBinder, VTarget, VFollower } from 'vueuc';\nimport { clickoutside } from 'vdirs';\nimport { format, getTime, isValid } from 'date-fns';\nimport { useIsMounted, useMergedState } from 'vooks';\nimport { happensIn } from 'seemly';\nimport { NInput } from '../../input';\nimport { NBaseIcon } from '../../_internal';\nimport { useFormItem, useTheme, useConfig, useLocale } from '../../_mixins';\nimport { DateIcon, ToIcon } from '../../_internal/icons';\nimport { warn, call, useAdjustedTo, createKey } from '../../_utils';\nimport { datePickerLight } from '../styles';\nimport { strictParse } from './utils';\n// import { getDerivedTimeFromKeyboardEvent } from './utils'\nimport { uniCalendarValidation, dualCalendarValidation } from './validation-utils';\nimport DatetimePanel from './panel/datetime';\nimport DatetimerangePanel from './panel/datetimerange';\nimport DatePanel from './panel/date';\nimport DaterangePanel from './panel/daterange';\nimport style from './styles/index.cssr';\nimport { datePickerInjectionKey } from './interface';\nconst DATE_FORMAT = {\n date: 'yyyy-MM-dd',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n daterange: 'yyyy-MM-dd',\n datetimerange: 'yyyy-MM-dd HH:mm:ss'\n};\nconst datePickerProps = Object.assign(Object.assign({}, useTheme.props), { to: useAdjustedTo.propTo, bordered: {\n type: Boolean,\n default: undefined\n }, clearable: {\n type: Boolean,\n default: false\n }, updateValueOnClose: {\n type: Boolean,\n default: false\n }, defaultValue: {\n type: [Number, Array],\n default: null\n }, disabled: {\n type: Boolean,\n default: undefined\n }, placement: {\n type: String,\n default: 'bottom-start'\n }, value: [Number, Array], size: String, type: {\n type: String,\n default: 'date'\n }, separator: String, placeholder: String, startPlaceholder: String, endPlaceholder: String, format: String, dateFormat: String, timeFormat: String, actions: Array, shortcuts: Object, isDateDisabled: Function, isTimeDisabled: Function, show: {\n type: Boolean,\n default: undefined\n }, ranges: Object, closeOnSelect: Boolean, 'onUpdate:show': [Function, Array], onUpdateShow: [Function, Array], 'onUpdate:value': [Function, Array], onUpdateValue: [Function, Array], onFocus: [Function, Array], onBlur: [Function, Array], \n // deprecated\n onChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('data-picker', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n return true;\n },\n default: undefined\n } });\nexport default defineComponent({\n name: 'DatePicker',\n props: datePickerProps,\n setup(props, { slots }) {\n const { localeRef, dateLocaleRef } = useLocale('DatePicker');\n const formItem = useFormItem(props);\n const { mergedSizeRef, mergedDisabledRef } = formItem;\n const { NConfigProvider, mergedClsPrefixRef, mergedBorderedRef, namespaceRef } = useConfig(props);\n const panelInstRef = ref(null);\n const triggerElRef = ref(null);\n const inputInstRef = ref(null);\n const uncontrolledShowRef = ref(false);\n const controlledShowRef = toRef(props, 'show');\n const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef);\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = computed(() => props.value);\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n // We don't change value unless blur or confirm is called\n const pendingValueRef = ref(null);\n watchEffect(() => {\n pendingValueRef.value = mergedValueRef.value;\n });\n const singleInputValueRef = ref('');\n const rangeStartInputValueRef = ref('');\n const rangeEndInputValueRef = ref('');\n const themeRef = useTheme('DatePicker', 'DatePicker', style, datePickerLight, props, mergedClsPrefixRef);\n const dateFnsOptionsRef = computed(() => {\n return {\n locale: dateLocaleRef.value.locale\n };\n });\n const timePickerSizeRef = computed(() => {\n var _a, _b;\n return (((_b = (_a = NConfigProvider === null || NConfigProvider === void 0 ? void 0 : NConfigProvider.mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.DatePicker) === null || _b === void 0 ? void 0 : _b.timePickerSize) || 'small');\n });\n const isRangeRef = computed(() => {\n return ['daterange', 'datetimerange'].includes(props.type);\n });\n const localizedPlacehoderRef = computed(() => {\n if (props.placeholder === undefined) {\n if (props.type === 'date') {\n return localeRef.value.datePlaceholder;\n }\n else if (props.type === 'datetime') {\n return localeRef.value.datetimePlaceholder;\n }\n return props.placeholder;\n }\n else {\n return props.placeholder;\n }\n });\n const localizedStartPlaceholderRef = computed(() => {\n if (props.startPlaceholder === undefined) {\n if (props.type === 'daterange') {\n return localeRef.value.startDatePlaceholder;\n }\n else if (props.type === 'datetimerange') {\n return localeRef.value.startDatetimePlaceholder;\n }\n return '';\n }\n else {\n return props.startPlaceholder;\n }\n });\n const localizedEndPlaceholderRef = computed(() => {\n if (props.endPlaceholder === undefined) {\n if (props.type === 'daterange') {\n return localeRef.value.endDatePlaceholder;\n }\n else if (props.type === 'datetimerange') {\n return localeRef.value.endDatetimePlaceholder;\n }\n return '';\n }\n else {\n return props.endPlaceholder;\n }\n });\n const mergedFormatRef = computed(() => {\n return props.format || DATE_FORMAT[props.type];\n });\n function doUpdatePendingValue(value) {\n pendingValueRef.value = value;\n }\n function doUpdateValue(value) {\n const { 'onUpdate:value': _onUpdateValue, onUpdateValue, onChange } = props;\n const { nTriggerFormChange, nTriggerFormInput } = formItem;\n if (onUpdateValue)\n call(onUpdateValue, value);\n if (_onUpdateValue)\n call(_onUpdateValue, value);\n if (onChange)\n call(onChange, value);\n uncontrolledValueRef.value = value;\n nTriggerFormChange();\n nTriggerFormInput();\n }\n function doFocus(e) {\n const { onFocus } = props;\n const { nTriggerFormFocus } = formItem;\n if (onFocus)\n call(onFocus, e);\n nTriggerFormFocus();\n }\n function doBlur(e) {\n const { onBlur } = props;\n const { nTriggerFormBlur } = formItem;\n if (onBlur)\n call(onBlur, e);\n nTriggerFormBlur();\n }\n function doUpdateShow(show) {\n const { 'onUpdate:show': _onUpdateShow, onUpdateShow } = props;\n if (_onUpdateShow)\n call(_onUpdateShow, show);\n if (onUpdateShow)\n call(onUpdateShow, show);\n uncontrolledShowRef.value = show;\n }\n function handleKeyDown(e) {\n if (e.code === 'Escape') {\n closeCalendar({\n returnFocus: true\n });\n }\n // We need to handle the conflict with normal date value input\n // const { value: mergedValue } = mergedValueRef\n // if (props.type === 'date' && !Array.isArray(mergedValue)) {\n // const nextValue = getDerivedTimeFromKeyboardEvent(mergedValue, e)\n // doUpdateValue(nextValue)\n // }\n }\n function handleClear() {\n var _a;\n doUpdateShow(false);\n (_a = inputInstRef.value) === null || _a === void 0 ? void 0 : _a.deactivate();\n }\n function handlePanelTabOut() {\n closeCalendar({\n returnFocus: true\n });\n }\n function handleClickOutside(e) {\n var _a;\n if (mergedShowRef.value &&\n !((_a = triggerElRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {\n closeCalendar({\n returnFocus: false\n });\n }\n }\n function handlePanelClose(disableUpdateOnClose) {\n closeCalendar({\n returnFocus: true,\n disableUpdateOnClose\n });\n }\n // --- Panel update value\n function handlePanelUpdateValue(value, doUpdate) {\n if (doUpdate) {\n doUpdateValue(value);\n }\n else {\n doUpdatePendingValue(value);\n }\n }\n function handlePanelConfirm() {\n doUpdateValue(pendingValueRef.value);\n }\n // --- Refresh\n function deriveInputState() {\n const { value } = pendingValueRef;\n if (isRangeRef.value) {\n if (Array.isArray(value) || value === null) {\n deriveRangeInputState(value);\n }\n }\n else {\n if (!Array.isArray(value)) {\n deriveSingleInputState(value);\n }\n }\n }\n function deriveSingleInputState(value) {\n if (value === null) {\n singleInputValueRef.value = '';\n }\n else {\n singleInputValueRef.value = format(value, mergedFormatRef.value, dateFnsOptionsRef.value);\n }\n }\n function deriveRangeInputState(values) {\n if (values === null) {\n rangeStartInputValueRef.value = '';\n rangeEndInputValueRef.value = '';\n }\n else {\n const dateFnsOptions = dateFnsOptionsRef.value;\n rangeStartInputValueRef.value = format(values[0], mergedFormatRef.value, dateFnsOptions);\n rangeEndInputValueRef.value = format(values[1], mergedFormatRef.value, dateFnsOptions);\n }\n }\n // --- Input deactivate & blur\n function handleInputActivate() {\n if (!mergedShowRef.value) {\n openCalendar();\n }\n }\n function handleInputBlur(e) {\n var _a;\n if (!((_a = panelInstRef.value) === null || _a === void 0 ? void 0 : _a.$el.contains(e.relatedTarget))) {\n doBlur(e);\n deriveInputState();\n closeCalendar({\n returnFocus: false\n });\n }\n }\n function handleInputDeactivate() {\n if (mergedDisabledRef.value)\n return;\n deriveInputState();\n closeCalendar({\n returnFocus: false\n });\n }\n // --- Input\n function handleSingleUpdateValue(v) {\n // TODO, fix conflict with clear\n if (v === '') {\n doUpdateValue(null);\n return;\n }\n const newSelectedDateTime = strictParse(v, mergedFormatRef.value, new Date(), dateFnsOptionsRef.value);\n if (isValid(newSelectedDateTime)) {\n doUpdateValue(getTime(newSelectedDateTime));\n deriveInputState();\n }\n else {\n singleInputValueRef.value = v;\n }\n }\n function handleRangeUpdateValue(v) {\n if (v[0] === '' && v[1] === '') {\n // clear or just delete all the inputs\n doUpdateValue(null);\n return;\n }\n const [startTime, endTime] = v;\n const newStartTime = strictParse(startTime, mergedFormatRef.value, new Date(), dateFnsOptionsRef.value);\n const newEndTime = strictParse(endTime, mergedFormatRef.value, new Date(), dateFnsOptionsRef.value);\n if (isValid(newStartTime) && isValid(newEndTime)) {\n doUpdateValue([getTime(newStartTime), getTime(newEndTime)]);\n deriveInputState();\n }\n else {\n ;\n [rangeStartInputValueRef.value, rangeEndInputValueRef.value] = v;\n }\n }\n // --- Click\n function handleTriggerClick(e) {\n if (mergedDisabledRef.value)\n return;\n if (happensIn(e, 'clear'))\n return;\n if (!mergedShowRef.value) {\n openCalendar();\n }\n }\n // --- Focus\n function handleInputFocus(e) {\n if (mergedDisabledRef.value)\n return;\n doFocus(e);\n }\n // --- Calendar\n function openCalendar() {\n if (mergedDisabledRef.value || mergedShowRef.value)\n return;\n doUpdateShow(true);\n }\n function closeCalendar({ returnFocus, disableUpdateOnClose }) {\n var _a;\n if (mergedShowRef.value) {\n doUpdateShow(false);\n if (props.type !== 'date' &&\n props.updateValueOnClose &&\n !disableUpdateOnClose) {\n handlePanelConfirm();\n }\n if (returnFocus) {\n (_a = inputInstRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n }\n // If new value is valid, set calendarTime and refresh display strings.\n // If new value is invalid, do nothing.\n watch(pendingValueRef, () => {\n deriveInputState();\n });\n // init\n deriveInputState();\n watch(mergedShowRef, (value) => {\n if (!value) {\n // close & restore original value\n // it won't conflict with props.value change\n // since when prop is passed, it is already\n // up to date.\n pendingValueRef.value = mergedValueRef.value;\n }\n });\n // use pending value to do validation\n const uniVaidation = uniCalendarValidation(props, pendingValueRef);\n const dualValidation = dualCalendarValidation(props, pendingValueRef);\n provide(datePickerInjectionKey, Object.assign(Object.assign(Object.assign({ mergedClsPrefixRef, mergedThemeRef: themeRef, timePickerSizeRef,\n localeRef,\n dateLocaleRef, isDateDisabledRef: toRef(props, 'isDateDisabled'), rangesRef: toRef(props, 'ranges'), closeOnSelectRef: toRef(props, 'closeOnSelect'), updateValueOnCloseRef: toRef(props, 'updateValueOnClose') }, uniVaidation), dualValidation), { datePickerSlots: slots }));\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedBordered: mergedBorderedRef,\n namespace: namespaceRef,\n uncontrolledValue: uncontrolledValueRef,\n pendingValue: pendingValueRef,\n panelInstRef,\n triggerElRef,\n inputInstRef,\n isMounted: useIsMounted(),\n displayTime: singleInputValueRef,\n displayStartTime: rangeStartInputValueRef,\n displayEndTime: rangeEndInputValueRef,\n mergedShow: mergedShowRef,\n adjustedTo: useAdjustedTo(props),\n isRange: isRangeRef,\n localizedStartPlaceholder: localizedStartPlaceholderRef,\n localizedEndPlaceholder: localizedEndPlaceholderRef,\n mergedSize: mergedSizeRef,\n mergedDisabled: mergedDisabledRef,\n localizedPlacehoder: localizedPlacehoderRef,\n isValueInvalid: uniVaidation.isValueInvalidRef,\n isStartValueInvalid: dualValidation.isStartValueInvalidRef,\n isEndValueInvalid: dualValidation.isEndValueInvalidRef,\n handleClickOutside,\n handleKeyDown,\n handleClear,\n handleTriggerClick,\n handleInputActivate,\n handleInputDeactivate,\n handleInputFocus,\n handleInputBlur,\n handlePanelTabOut,\n handlePanelClose,\n handleRangeUpdateValue,\n handleSingleUpdateValue,\n handlePanelUpdateValue,\n handlePanelConfirm,\n mergedTheme: themeRef,\n triggerCssVars: computed(() => {\n const { common: { cubicBezierEaseInOut }, self: { iconColor, iconColorDisabled } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--icon-color': iconColor,\n '--icon-color-disabled': iconColorDisabled\n };\n }),\n cssVars: computed(() => {\n const { type } = props;\n const { common: { cubicBezierEaseInOut }, self: { calendarTitleFontSize, calendarDaysFontSize, itemFontSize, itemTextColor, itemColorDisabled, itemColorIncluded, itemColorHover, itemColorActive, itemBorderRadius, itemTextColorDisabled, itemTextColorActive, panelColor, panelTextColor, arrowColor, calendarTitleTextColor, panelActionDividerColor, panelHeaderDividerColor, calendarDaysDividerColor, panelBoxShadow, panelBorderRadius, calendarTitleFontWeight, panelExtraFooterPadding, panelActionPadding, itemSize, itemCellWidth, itemCellHeight, calendarTitlePadding, calendarTitleHeight, calendarDaysHeight, calendarDaysTextColor, arrowSize, panelHeaderPadding, calendarDividerColor, calendarTitleGridTempateColumns, iconColor, iconColorDisabled, [createKey('calendarLeftPadding', type)]: calendarLeftPadding, [createKey('calendarRightPadding', type)]: calendarRightPadding } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--panel-border-radius': panelBorderRadius,\n '--panel-color': panelColor,\n '--panel-box-shadow': panelBoxShadow,\n '--panel-text-color': panelTextColor,\n // panel header\n '--panel-header-padding': panelHeaderPadding,\n '--panel-header-divider-color': panelHeaderDividerColor,\n // panel calendar\n '--calendar-left-padding': calendarLeftPadding,\n '--calendar-right-padding': calendarRightPadding,\n '--calendar-title-height': calendarTitleHeight,\n '--calendar-title-padding': calendarTitlePadding,\n '--calendar-title-font-size': calendarTitleFontSize,\n '--calendar-title-font-weight': calendarTitleFontWeight,\n '--calendar-title-text-color': calendarTitleTextColor,\n '--calendar-title-grid-template-columns': calendarTitleGridTempateColumns,\n '--calendar-days-height': calendarDaysHeight,\n '--calendar-days-divider-color': calendarDaysDividerColor,\n '--calendar-days-font-size': calendarDaysFontSize,\n '--calendar-days-text-color': calendarDaysTextColor,\n '--calendar-divider-color': calendarDividerColor,\n // panel action\n '--panel-action-padding': panelActionPadding,\n '--panel-extra-footer-padding': panelExtraFooterPadding,\n '--panel-action-divider-color': panelActionDividerColor,\n // panel item\n '--item-font-size': itemFontSize,\n '--item-border-radius': itemBorderRadius,\n '--item-size': itemSize,\n '--item-cell-width': itemCellWidth,\n '--item-cell-height': itemCellHeight,\n '--item-text-color': itemTextColor,\n '--item-color-included': itemColorIncluded,\n '--item-color-disabled': itemColorDisabled,\n '--item-color-hover': itemColorHover,\n '--item-color-active': itemColorActive,\n '--item-text-color-disabled': itemTextColorDisabled,\n '--item-text-color-active': itemTextColorActive,\n // panel arrow\n '--arrow-size': arrowSize,\n '--arrow-color': arrowColor,\n // icon in trigger\n '--icon-color': iconColor,\n '--icon-color-disabled': iconColorDisabled\n };\n })\n };\n },\n render() {\n const { clearable } = this;\n const commonInputProps = {\n bordered: this.mergedBordered,\n size: this.mergedSize,\n passivelyActivated: true,\n disabled: this.mergedDisabled,\n readonly: this.mergedDisabled,\n clearable,\n onClear: this.handleClear,\n onClick: this.handleTriggerClick,\n onActivate: this.handleInputActivate,\n onDeactivate: this.handleInputDeactivate,\n onFocus: this.handleInputFocus,\n onBlur: this.handleInputBlur\n };\n const commonPanelProps = {\n onUpdateValue: this.handlePanelUpdateValue,\n onTabOut: this.handlePanelTabOut,\n onClose: this.handlePanelClose,\n onKeydown: this.handleKeyDown,\n onConfirm: this.handlePanelConfirm,\n ref: 'panelInstRef',\n value: this.pendingValue,\n active: this.mergedShow,\n actions: this.actions,\n shortcuts: this.shortcuts,\n style: this.cssVars\n };\n const { mergedClsPrefix } = this;\n return (h(\"div\", { ref: \"triggerElRef\", class: [\n `${mergedClsPrefix}-date-picker`,\n this.mergedDisabled && `${mergedClsPrefix}-date-picker--disabled`,\n this.isRange && `${mergedClsPrefix}-date-picker--range`\n ], style: this.triggerCssVars, onKeydown: this.handleKeyDown },\n h(VBinder, null, {\n default: () => [\n h(VTarget, null, {\n default: () => this.isRange ? (h(NInput, Object.assign({ ref: \"inputInstRef\", value: [this.displayStartTime, this.displayEndTime], placeholder: [\n this.localizedStartPlaceholder,\n this.localizedEndPlaceholder\n ], textDecoration: [\n this.isStartValueInvalid ? 'line-through' : '',\n this.isEndValueInvalid ? 'line-through' : ''\n ], pair: true, onUpdateValue: this.handleRangeUpdateValue, theme: this.mergedTheme.peers.Input, themeOverrides: this.mergedTheme.peerOverrides.Input, internalForceFocus: this.mergedShow, internalDeactivateOnEnter: true }, commonInputProps), {\n separator: () => (h(NBaseIcon, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-date-picker-icon` }, { default: () => h(ToIcon, null) })),\n [clearable ? 'clear' : 'suffix']: () => (h(NBaseIcon, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-date-picker-icon` }, { default: () => h(DateIcon, null) }))\n })) : (h(NInput, Object.assign({ ref: \"inputInstRef\", value: this.displayTime, placeholder: this.localizedPlacehoder, textDecoration: this.isValueInvalid && !this.isRange\n ? 'line-through'\n : '', onUpdateValue: this.handleSingleUpdateValue, theme: this.mergedTheme.peers.Input, themeOverrides: this.mergedTheme.peerOverrides.Input, internalForceFocus: this.mergedShow, internalDeactivateOnEnter: true }, commonInputProps), {\n [clearable ? 'clear' : 'suffix']: () => (h(NBaseIcon, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-date-picker-icon` }, { default: () => h(DateIcon, null) }))\n }))\n }),\n h(VFollower, { show: this.mergedShow, containerClass: this.namespace, to: this.adjustedTo, teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey, placement: \"bottom-start\" }, {\n default: () => (h(Transition, { name: \"fade-in-scale-up-transition\", appear: this.isMounted }, {\n default: () => this.mergedShow\n ? withDirectives(this.type === 'datetime' ? (h(DatetimePanel, Object.assign({}, commonPanelProps))) : this.type === 'daterange' ? (h(DaterangePanel, Object.assign({}, commonPanelProps))) : this.type === 'datetimerange' ? (h(DatetimerangePanel, Object.assign({}, commonPanelProps))) : (h(DatePanel, Object.assign({}, commonPanelProps))), [[clickoutside, this.handleClickOutside]])\n : null\n }))\n })\n ]\n })));\n }\n});\n","\r\n\r\n\r\n \r\n\r\n","import script from \"./globalDataTable.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./globalDataTable.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","export const camelCaseToTitle = (str) => {\r\n // insert a space before all caps\r\n str = str.replace(/([A-Z])/g, ' $1')\r\n\r\n // capitalize the first letter and return the string\r\n const titleCaseString = str.charAt(0).toUpperCase() + str.slice(1)\r\n\r\n return titleCaseString.trim()\r\n}\r\n\r\nexport const stringToSentence = (str) => {\r\n const capitalizedString = str?.toLowerCase()?.split(' ')?.map(str => str.charAt(0).toUpperCase() + str.slice(1))\r\n\r\n return capitalizedString?.join(' ')\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TransactionHistory.vue?vue&type=style&index=0&id=c34af128&lang=scss&scoped=true\"","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import { h, defineComponent } from 'vue';\nexport default defineComponent({\n name: 'Forward',\n render() {\n return (h(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"path\", { d: \"M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z\", fill: \"currentColor\" })));\n }\n});\n","export default {\n heightTiny: '22px',\n heightSmall: '28px',\n heightMedium: '34px',\n heightLarge: '40px',\n fontSizeTiny: '12px',\n fontSizeSmall: '14px',\n fontSizeMedium: '14px',\n fontSizeLarge: '15px',\n paddingSingle: '0 26px 0 14px',\n clearSize: '16px'\n};\n","import { changeColor } from 'seemly';\nimport { commonLight } from '../../../_styles/common';\nimport { popoverLight } from '../../../popover/styles';\nimport commonVariables from './_common';\nimport { createTheme } from '../../../_mixins';\nconst self = (vars) => {\n const { borderRadius, textColor2, textColorDisabled, inputColor, inputColorDisabled, primaryColor, primaryColorHover, warningColor, warningColorHover, errorColor, errorColorHover, borderColor, iconColor, iconColorDisabled, clearColor, clearColorHover, clearColorPressed, placeholderColor, placeholderColorDisabled } = vars;\n return Object.assign(Object.assign({}, commonVariables), { borderRadius: borderRadius, \n // default\n textColor: textColor2, textColorDisabled,\n placeholderColor,\n placeholderColorDisabled, color: inputColor, colorDisabled: inputColorDisabled, colorActive: inputColor, border: `1px solid ${borderColor}`, borderHover: `1px solid ${primaryColorHover}`, borderActive: `1px solid ${primaryColor}`, borderFocus: `1px solid ${primaryColorHover}`, boxShadowHover: null, boxShadowActive: `0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.2\n })}`, boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.2\n })}`, caretColor: primaryColor, arrowColor: iconColor, arrowColorDisabled: iconColorDisabled, loadingColor: primaryColor, \n // warning\n borderWarning: `1px solid ${warningColor}`, borderHoverWarning: `1px solid ${warningColorHover}`, borderActiveWarning: `1px solid ${warningColor}`, borderFocusWarning: `1px solid ${warningColorHover}`, boxShadowHoverWarning: null, boxShadowActiveWarning: `0 0 0 2px ${changeColor(warningColor, {\n alpha: 0.2\n })}`, boxShadowFocusWarning: `0 0 0 2px ${changeColor(warningColor, {\n alpha: 0.2\n })}`, colorActiveWarning: inputColor, caretColorWarning: warningColor, \n // error\n borderError: `1px solid ${errorColor}`, borderHoverError: `1px solid ${errorColorHover}`, borderActiveError: `1px solid ${errorColor}`, borderFocusError: `1px solid ${errorColorHover}`, boxShadowHoverError: null, boxShadowActiveError: `0 0 0 2px ${changeColor(errorColor, {\n alpha: 0.2\n })}`, boxShadowFocusError: `0 0 0 2px ${changeColor(errorColor, {\n alpha: 0.2\n })}`, colorActiveError: inputColor, caretColorError: errorColor, clearColor,\n clearColorHover,\n clearColorPressed });\n};\nconst internalSelectionLight = createTheme({\n name: 'InternalSelection',\n common: commonLight,\n peers: {\n Popover: popoverLight\n },\n self\n});\nexport default internalSelectionLight;\n","\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Search Record\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./transaction_history_tab.vue?vue&type=template&id=68841cc4\"\nimport script from \"./transaction_history_tab.vue?vue&type=script&lang=js\"\nexport * from \"./transaction_history_tab.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\augustine.ibe\\\\Desktop\\\\AustinXP\\\\payout-fe\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { h } from 'vue'\r\nimport { camelCaseToTitle } from '@/utils/camelCaseToTitle'\r\nimport { formatDateTime } from '@/utils/formatDateString'\r\nimport { numberToCurrency } from '@/utils/formatNumber'\r\n\r\nconst requiredColumns = [\r\n 'sn',\r\n 'dateInitiated',\r\n 'merchant',\r\n 'amount',\r\n 'batchNumber',\r\n 'batchStatus'\r\n]\r\n\r\nexport const transactionHistoryDataTableColumns = () => {\r\n const tableColumns = []\r\n\r\n requiredColumns.map((column, index) => {\r\n const columnItem = {}\r\n\r\n columnItem.title = h('b', camelCaseToTitle(column))\r\n columnItem.key = column\r\n\r\n if (column === 'sn') {\r\n columnItem.render = (row, i) => parseInt(i + 1)\r\n columnItem.fixed = 'left'\r\n }\r\n\r\n if (column === 'dateInitiated') {\r\n columnItem.render = row => formatDateTime(row.dateCreated)\r\n }\r\n\r\n if (column === 'merchant') {\r\n columnItem.width = 200\r\n columnItem.render = row => row.merchantName\r\n }\r\n\r\n if (column === 'authorizerGroup') {\r\n columnItem.width = 200\r\n columnItem.render = row => row.merchantTransactionAuthorizerGroupName\r\n }\r\n\r\n if (column === 'amount') {\r\n columnItem.width = 150\r\n columnItem.render = row => numberToCurrency(row.totalAmount, 'NGN')\r\n }\r\n\r\n if (column === 'batchNumber') {\r\n columnItem.width = 200\r\n columnItem.render = row => row.batchNumber\r\n }\r\n\r\n if (column === 'batchStatus') {\r\n columnItem.render = row => row.fundDisbursementStatusName\r\n }\r\n\r\n tableColumns[index] = columnItem\r\n })\r\n\r\n return tableColumns\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import script from \"./transactionHistory.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./transactionHistory.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./transactionHistory.vue?vue&type=style&index=0&id=1238e726&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\augustine.ibe\\\\Desktop\\\\AustinXP\\\\payout-fe\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1238e726\"]])\n\nexport default __exports__","import { render } from \"./TransactionHistory.vue?vue&type=template&id=c34af128&scoped=true\"\nimport script from \"./TransactionHistory.vue?vue&type=script&lang=js\"\nexport * from \"./TransactionHistory.vue?vue&type=script&lang=js\"\n\nimport \"./TransactionHistory.vue?vue&type=style&index=0&id=c34af128&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\augustine.ibe\\\\Desktop\\\\AustinXP\\\\payout-fe\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c34af128\"]])\n\nexport default __exports__","export function happensIn(e, dataSetPropName) {\n let { target } = e;\n while (target) {\n if (target.dataset) {\n if (target.dataset[dataSetPropName] !== undefined)\n return true;\n }\n target = target.parentElement;\n }\n return false;\n}\n","import { c, cE, cM, cNotM, cB } from '../../../_utils/cssr'; // vars:\n// --bezier\n// --box-shadow\n// --box-shadow-active\n// --box-shadow-disabled\n// --box-shadow-focus\n// --box-shadow-hover\n// --color\n// --color-disabled\n// --dot-color-active\n// --dot-color-disabled\n// --font-size\n// --radio-size\n// --text-color\n// --text-color-disabled\n// --label-padding\n\nexport default cB('radio', `\n line-height: 1;\n outline: none;\n position: relative;\n user-select: none;\n display: inline-flex;\n vertical-align: middle;\n align-items: center;\n font-size: var(--font-size);\n`, [cE('dot', `\n height: var(--radio-size);\n width: var(--radio-size);\n `), cE('radio-input', `\n border: 0;\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n `), cE('dot', `\n background: var(--color);\n box-shadow: var(--box-shadow);\n transition:\n background-color .3s var(--bezier),\n box-shadow .3s var(--bezier);\n position: relative;\n border-radius: 50%;\n `, [c('&::before', `\n content: \"\";\n opacity: 0;\n position: absolute;\n left: 4px;\n top: 4px;\n height: calc(100% - 8px);\n width: calc(100% - 8px);\n border-radius: 50%;\n transform: scale(.8);\n background: var(--dot-color-active);\n transition: \n opacity .3s var(--bezier),\n background-color .3s var(--bezier),\n transform .3s var(--bezier);\n `), cM('checked', {\n boxShadow: 'var(--box-shadow-active)'\n}, [c('&::before', `\n opacity: 1;\n transform: scale(1);\n `)])]), cE('label', `\n color: var(--text-color);\n padding: var(--label-padding);\n display: inline-block;\n white-space: nowrap;\n transition: color .3s var(--bezier);\n `), cNotM('disabled', `\n cursor: pointer;\n `, [c('&:hover', [cE('dot', {\n boxShadow: 'var(--box-shadow-hover)'\n})]), cM('focus', [c('&:not(:active)', [cE('dot', {\n boxShadow: 'var(--box-shadow-focus)'\n})])])]), cM('disabled', `\n cursor: not-allowed;\n `, [cE('dot', {\n boxShadow: 'var(--box-shadow-disabled)',\n backgroundColor: 'var(--color-disabled)'\n}, [c('&::before', {\n backgroundColor: 'var(--dot-color-disabled)'\n}), cM('checked', `\n transform: scale(1);\n opacity: 1;\n `)]), cE('label', {\n color: 'var(--text-color-disabled)'\n})])]);","import { h, defineComponent, computed } from 'vue';\nimport { useTheme } from '../../_mixins';\nimport { createKey } from '../../_utils';\nimport { radioLight } from '../styles';\nimport useRadio from './use-radio';\nimport style from './styles/radio.cssr';\nexport default defineComponent({\n name: 'Radio',\n props: Object.assign(Object.assign({}, useTheme.props), useRadio.props),\n setup(props) {\n const radio = useRadio(props);\n const themeRef = useTheme('Radio', 'Radio', style, radioLight, props, radio.mergedClsPrefix);\n return Object.assign(radio, {\n cssVars: computed(() => {\n const { mergedSize: { value: size } } = radio;\n const { common: { cubicBezierEaseInOut }, self: { boxShadow, boxShadowActive, boxShadowDisabled, boxShadowFocus, boxShadowHover, color, colorDisabled, textColor, textColorDisabled, dotColorActive, dotColorDisabled, labelPadding, [createKey('fontSize', size)]: fontSize, [createKey('radioSize', size)]: radioSize } } = themeRef.value;\n return {\n '--bezier': cubicBezierEaseInOut,\n '--box-shadow': boxShadow,\n '--box-shadow-active': boxShadowActive,\n '--box-shadow-disabled': boxShadowDisabled,\n '--box-shadow-focus': boxShadowFocus,\n '--box-shadow-hover': boxShadowHover,\n '--color': color,\n '--color-disabled': colorDisabled,\n '--dot-color-active': dotColorActive,\n '--dot-color-disabled': dotColorDisabled,\n '--font-size': fontSize,\n '--radio-size': radioSize,\n '--text-color': textColor,\n '--text-color-disabled': textColorDisabled,\n '--label-padding': labelPadding\n };\n })\n });\n },\n render() {\n const { $slots, mergedClsPrefix } = this;\n return (h(\"div\", { class: [\n `${mergedClsPrefix}-radio`,\n {\n [`${mergedClsPrefix}-radio--disabled`]: this.mergedDisabled,\n [`${mergedClsPrefix}-radio--checked`]: this.renderSafeChecked,\n [`${mergedClsPrefix}-radio--focus`]: this.focus\n }\n ], style: this.cssVars, onKeyup: this.handleKeyUp, onClick: this.handleClick, onMousedown: this.handleMouseDown },\n h(\"input\", { ref: \"inputRef\", type: \"radio\", class: `${mergedClsPrefix}-radio__radio-input`, value: this.value, name: this.mergedName, checked: this.renderSafeChecked, disabled: this.mergedDisabled, onChange: this.handleRadioInputChange, onFocus: this.handleRadioInputFocus, onBlur: this.handleRadioInputBlur }),\n h(\"div\", { class: [\n `${mergedClsPrefix}-radio__dot`,\n this.renderSafeChecked && `${mergedClsPrefix}-radio__dot--checked`\n ] }),\n $slots.default ? (h(\"div\", { ref: \"labelRef\", class: `${mergedClsPrefix}-radio__label` }, $slots.default())) : null));\n }\n});\n"],"sourceRoot":""}