{"version":3,"sources":["components/Loading/loading.module.scss","utils/rollout.js","components/BackgroundImage/backgroundImage.module.scss","components/Menu/menu.module.scss","config-constants.js","components/GlobalSearch/globalSearch.module.scss","utils/statsig.js","utils/proptypes.js","hooks/StatsigContextProvider.js","config-local.js","config.js","utils/types.js","utils/network.js","api/leaguesApi.js","redux/services/baseQuery.js","redux/services/authServices.js","redux/services/userService.js","utils/url.js","components/Img/index.js","utils/constants.js","utils/display.js","utils/helpers.js","components/BackgroundImage/index.jsx","flagContainer.js","components/hocs/withFeatureFlags.js","redux/uiSlice.js","components/GlobalSearch/Description/index.jsx","assets/icons/icon-search.svg","assets/icons/icon-verified-blue.svg","assets/icons/icon-avatar-player.svg","assets/icons/icon-avatar-club.svg","assets/icons/icon-avatar-college.svg","assets/icons/icon-avatar-event.svg","assets/icons/icon-avatar-school.svg","components/Icons/UtrIcon/index.jsx","components/GlobalSearch/utils.js","utils/analytics.js","components/GlobalSearch/index.jsx","assets/icons/icon-home.svg","assets/icons/icon-play.svg","assets/icons/icon-profile.svg","components/Header/index.jsx","components/Form/Input/index.jsx","components/LoadingIndicator/index.jsx","components/Form/LocationAutoComplete/index.jsx","components/Form/Location/index.jsx","components/Form/Slider/index.jsx","components/Form/Select/index.jsx","components/Form/FormSubmitButton/index.jsx","components/Form/PlayerSearch/index.jsx","hooks/useDebounce.js","components/Cards/PlayerSearchResultCard/index.jsx","utils/location.js","redux/errorPopupSlice.js","redux/conferenceDetailsSlice.js","components/Forms/CreateConferenceForm/index.jsx","pages/CreateConferencePage/index.jsx","components/Form/DateTimePicker/index.jsx","components/Icons/ApprovedIcon/index.js","components/Popups/Popup.jsx","components/Form/RadioGroup/index.jsx","components/SessionMatchFormat/index.jsx","utils/sessions.js","components/Forms/CreateSessionForm/index.jsx","pages/CreateSessionPage/index.jsx","components/Styled/index.jsx","components/Tables/LeaguesTableWrapper/index.jsx","components/Tables/ConferencesTable/index.jsx","pages/LeagueDesk/ConferencesTab/index.jsx","pages/LeagueDesk/index.jsx","pages/LeagueDesk/LeagueDeskWrapper/index.jsx","redux/services/breadcrumbService.js","components/Breadcrumbs/index.jsx","redux/genericPopupSlice.js","components/MemberRoleManager/index.jsx","components/Tables/SessionsTable/index.jsx","pages/ManageConferencePage/SessionsTab/index.jsx","pages/ManageConferencePage/index.jsx","hooks/useGetConferenceSessions.js","components/Tables/AddTeamsTable/index.jsx","components/Modals/ModalBaseSimple.jsx","components/Modals/AddTeamsNotificationModal.jsx","components/Modals/AddTeamsModal.jsx","components/AddTeamContainer/index.jsx","hooks/useGetTeamsForSessions.js","components/Popups/ConfirmPublishSchedulePopup.jsx","components/Modals/ModalBaseWithHeader.jsx","components/Form/MultiSelect/index.jsx","components/Modals/CopyPlayerModal.jsx","components/Modals/CreateDrawModal.jsx","components/MatchFormat/index.jsx","components/Modals/FullPageModal.jsx","components/Form/TimePicker/index.jsx","components/Modals/ManageSessionModal.jsx","pages/ManageSessionPage/DetailsTab/index.jsx","components/DrawTab/utils.js","hooks/useIsMobile.js","components/DrawTab/useGetTableRowsData.jsx","components/DrawTab/useGetTeamPageTableRowsData.jsx","components/DrawTab/TeamPageDrawTable/index.jsx","components/DrawTab/DrawTable.jsx","components/DrawTab/index.jsx","pages/TeamMatchPage/MatchEditModal/index.jsx","components/Modals/MovePlayerModal.jsx","components/Modals/PlayerWithdrawModal.jsx","components/Tables/GenericTable/index.jsx","assets/icons/icon-chat-blue.svg","components/Icons/MessageIcon/index.jsx","components/PlayerUtr/index.jsx","components/MoreMenu/index.jsx","components/Tables/PlayersTable/index.jsx","components/Tables/PlayersTable/PlayersTable/index.jsx","utils/teams.js","components/PlayerTab/PlayersTab/index.jsx","components/PlayerTab/index.jsx","components/AddTeamMatchModal/index.jsx","components/PlayerAvailabilityResponse/index.jsx","components/Cards/ScheduleMatchCard/TeamMatchLink/index.jsx","components/WinnerIndicator/index.jsx","components/Cards/ScheduleMatchCard/index.jsx","components/MultiWeekRound/index.jsx","components/MultiWeekByDate/index.jsx","components/DrawTab/TeamPageDrawTable/TeamPageDrawTableSelect/index.jsx","components/Schedule/index.jsx","components/Form/MultiRoundScheduleSelect/index.jsx","pages/ManageSessionPage/ScheduleTab/SessionActions/index.jsx","components/Popups/AddScheduleRoundPopup.jsx","hooks/useSessionSchedule.js","pages/ManageSessionPage/ScheduleTab/index.jsx","components/Cards/ManageSessionCaptainCard/index.jsx","components/ManageSessionTeamCaptain/index.jsx","components/Form/PasswordInput/index.jsx","pages/ManageSessionPage/ManageTeamModal/index.jsx","components/CreateTeamCaptainManager/index.jsx","pages/ManageSessionPage/CreateTeamModal/index.jsx","components/Tables/TeamsTable/index.jsx","pages/ManageSessionPage/TeamsTab/index.jsx","pages/ManageSessionPage/ManageSessionPageHeader/index.jsx","pages/ManageSessionPage/index.jsx","components/Modals/ShareTeamModal.jsx","components/Tables/MemberTeamsTable/index.jsx","pages/MemberTeamsPage/index.jsx","assets/logos/usap-sanctioned-logo.png","components/Tables/LeagueSearchResultsTable/index.jsx","components/FilterButton/index.jsx","components/ControlledLocationAutoComplete/index.jsx","pages/SearchPage/LocationFilter/index.jsx","pages/SearchPage/SliderFilter/index.jsx","components/MultiSelectFilter/index.jsx","hooks/usePostLeaguesSearch.js","pages/SearchPage/index.jsx","pages/SearchPage/SearchWrapper/index.jsx","pages/SessionPage/SessionPageHeader/index.jsx","components/Cards/ManagerCard/index.jsx","components/RegistrationInfoCard/index.jsx","pages/SessionPage/OverviewTab/index.jsx","pages/SessionPage/ScheduleTab/index.jsx","components/Tables/SessionStandingsTable/index.jsx","pages/SessionPage/StandingsTab/index.jsx","components/RegistrationDrawer/PasswordConfirmation/index.jsx","components/Form/StripeInput/index.jsx","components/RegistrationDrawer/SubmitPaymentForm/index.jsx","components/RegistrationDrawer/RegistrationConfirmation/index.jsx","components/RegistrationDrawer/TeamSelection/index.js","components/RegistrationDrawer/USAPValidation/index.jsx","components/RegistrationDrawer/index.jsx","pages/SessionPage/index.jsx","pages/TeamMatchPage/CompletedSessionModal/index.jsx","pages/TeamMatchPage/LineupControls/index.jsx","pages/TeamMatchPage/LocationTab/index.jsx","utils/postScoreShared.js","utils/postScore.js","pages/TeamMatchPage/PostTennisScoreModal/UTSet/index.jsx","pages/TeamMatchPage/MatchOutcomeSelect/index.jsx","pages/TeamMatchPage/PlayerSelect/index.jsx","pages/TeamMatchPage/PostTennisScoreModal/index.jsx","pages/TeamMatchPage/PostPickleballScoreModal/PickleballGame/index.jsx","utils/postPickleballScore.js","pages/TeamMatchPage/PostPickleballScoreModal/index.jsx","components/Cards/TeamMatchScoreCard/TeamMatchSetScores/index.jsx","components/PlayerAvatarWithUtr/index.jsx","components/Cards/TeamMatchScoreCard/index.jsx","components/Cards/TeamMatchAlternatesCard/index.jsx","pages/TeamMatchPage/TeamMatchSummary/index.jsx","pages/TeamMatchPage/TeamTab/PlayerAvailabilityEditModal/index.jsx","pages/TeamMatchPage/TeamTab/PlayerAvailabilityReminderModal/index.jsx","components/PlayerAvailabilityIndicator/index.jsx","pages/TeamMatchPage/TeamTab/TeamTabTable/index.jsx","components/SuccessSnackbar/index.jsx","pages/TeamMatchPage/TeamTab/index.jsx","components/PlayerRating/index.jsx","components/LineupDropdownItem/index.jsx","components/Cards/LineupAlternatesCard/index.jsx","components/Cards/LineupCard/index.jsx","components/Modals/SetLineupModal.jsx","hooks/usePlayerMatches.js","pages/TeamMatchPage/index.jsx","hooks/useGetTeamMatchRosters.js","components/Alert/index.jsx","components/Modals/EditTeamDetailsModal.jsx","pages/TeamPage/DetailsTab/index.jsx","components/Modals/MessagePlayersModal.jsx","components/Cards/TeamProfileInfoCard/index.jsx","pages/TeamPage/OverviewTab/index.jsx","components/Form/MultiRoundScheduleToggle/index.jsx","pages/TeamPage/ScheduleTab/index.jsx","pages/TeamPage/TeamPageHeader/index.jsx","pages/TeamPage/index.jsx","routes.js","utils/clubs.js","components/Menu/MenuLink.js","components/Menu/index.jsx","components/Loading/index.jsx","components/Popups/GenericPopup.jsx","components/Popups/ErrorPopup.jsx","App.js","redux/userSlice.js","redux/authSlice.js","redux/breadcrumbSlice.js","redux/rootReducer.js","redux/store.js","theme.js","utils/ErrorBoundary.js","index.js","components/Header/header.module.scss"],"names":["module","exports","canUseDOM","window","document","createElement","_rox","require","eval","setContext","server","Rox","setContextProps","setCustomStringProperty","context","user","email","setCustomNumberProperty","id","setCustomBooleanProperty","isClubOrganizer","isEnterpriseClubOrganizer","getFlagsContext","Object","keys","length","toLowerCase","memberId","PackageJson","buildId","process","appCodePath","version","outputPath","applicationVersion","staticContentPath","featureGates","defaultModalBaseSimplePropTypes","PropTypes","shape","isSchedulePublished","bool","isMultiWeekByDate","teamMatchId","number","isRequired","matchDate","string","location","placeName","formattedAddress","position1Team","teamId","name","points","requestingMemberPlayerAvailability","teamMemberId","position2Team","round","roundName","winnerTeamId","func","object","any","oneOfType","array","arrayOf","node","open","onClose","title","children","hideHeaderCloseIcon","defaultModalPropTypes","multiSelectFilterPropTypes","canEditTeamMatch","sessionName","isWinner","sessionId","sessionTypeId","position1","position2","captains","firstName","lastName","sessionStartDateUtc","sessionEndDateUtc","wins","losses","conference","minAge","maxAge","genderTypeId","conferenceRatings","sportTypeId","homeCourtLocation","sessionSummary","endDateUtc","sessionEntryFee","total","displayName","playerId","profileImage","display","matches","claimedPlayer","playerProfileImages","messaging","isEnabled","currentValue","searchPagePropTypes","age","rating","gender","startDate","end","teamMemberCount","captainNames","sessionDates","record","rank","teamPowerIndex","singlesRating","isSinglesEstimated","doublesRating","isDoublesEstimated","captainName","lat","lng","userLocation","sessionDetailsPropTypes","description","startDateUtc","matchesPerTeam","conferenceId","doublesMatchCount","doublesPointsPerMatch","doublesScoringFormatTypeId","doublesTimeAllowedTypeId","drawTypeId","registrationFee","registrationVerificationFee","sessionStatusTypeId","sessionDetails","sessionStandingsTypeId","singlesMatchCount","singlesPointsPerMatch","singlesScoringFormatTypeId","singlesTimeAllowedTypeId","teamRegistrationEndDateUtc","teamRegistrationStartDateUtc","teamRequiredPlayersMin","teamsMax","teamMatchFrequencyTypeId","defaultCreateConferenceFormPropTypes","label","elementType","hasPostedScores","canBeMovedOrCopied","isSubstitute","canBeRefunded","doublesUtr","isVerifiedDoubles","isVerifiedSingles","leagueId","utrRangeMin","utrRangeMax","pickleballRangeMin","pickleballRangeMax","conferenceDetails","isLoading","onConferenceUpdated","matchesPlayed","singlesUtr","singlesUTRP","displayVerifiedIcon","reliability","doublesUTRP","labelId","singlesRecord","doublesRecord","league_session_id","member_id","order_type","currency","session_fee","league_fee","service_fee","amount_paid","revenue","sessionMatchTypeId","captainRequest","currentRequest","sessionRequestStatusTypeId","isCaptainInSession","memberTeams","session","sanctionTypeId","phone","timeOfDay","registrationPin","dayOfWeek","drawId","teamName","teamMatchWins","teamMatchLosses","playerMatchPoints","playerMatchGameWinPercentage","hasRegistrationPin","leagueFee","serviceFee","currencySymbol","StatsigContext","React","createContext","StatsigContextProvider","isAdultTeamPickleballEnabled","useGate","value","isJuniorTeamPickleballEnabled","useState","state","setState","useEffect","adultTeamPickleball","juniorTeamPickleball","memoizedState","useMemo","statsig","Provider","localConfig","localConf","console","log","rootDomain","brandedDomain","twitterHandle","links","support","supportHome","appStoreUrl","googlePlayUrl","sessionStandingsRule","devRoxKey","utrStripeAccountId","UTR_STRIPE_ACCOUNT_ID","googleApiKey","nonProdFacebookPixelId","devStatsigKey","localDevSettings","appHost","marketingAppHost","leaguesAppHost","apiAuthToken","apiHost","leaguesApiHost","searchApiHost","siteBaseUrl","brandedUrl","twitterAccount","fontUrl","roxKey","stripeHost","stripeClientId","stripeKey","useProxy","publicPath","pixelId","cdnUrl","isLocalhost","statsigKey","createNewRelicBrowserSnippet","apiUri","newRelicAppId","createTestSettings","environmentName","cdnUrlStatic","APIHOST","leaguesApiUri","LEAGUESAPIHOST","searchApiUri","newRelicBrowserSnippet","APPHOST","appHostName","APPHOSTNAME","MARKETINGAPPHOST","userSiteHost","USERSITEHOST","userSiteHostName","urljoin","segmentKey","devtoolConfig","prodCdnUrl","prodCdnUrlStatic","prodApiUri","prodLeaguesApiUri","searchApiUrl","prodServerSettings","STRIPE_CLIENT_ID","qaServerSettings","ciServerSettings","testServerSettings","test2ServerSettings","test3ServerSettings","test4ServerSettings","test5ServerSettings","test6ServerSettings","test7ServerSettings","test8ServerSettings","test9ServerSettings","test10ServerSettings","test11ServerSettings","rcSettings","config","CONFIG_SOURCE","configConstants","LeagueSessionTypes","FrequencyTypes","MatchFormatTypes","ResultTypes","ScheduleStatuses","TennisScoringFormatTypes","PickleballScoringFormatTypes","StatusTypes","WithdrawTypes","RequestStatusTypes","LeagueTypes","LeagueTierTypes","PlayerActionTypes","OrderByTypes","OrderByRuleTypes","SessionDrawTypes","MultiRoundScheduleTypes","LeagueSanctionTypes","USAP","genderTypes","sessionTypes","multiRoundScheduleTypes","matchFrequencyTypes","tennisScoringTypes","pickleballScoringTypes","durationTypes","tierTypes","openClosedStatusTypes","sessionMatchFormatTypes","drawTypes","weekdays","playerWithdrawTypes","matchResultTypes","PlayerManageOptions","searchDateFilterTypes","TournamentTeamsCount","tournamentTeamsCountOptions","SportTypeIds","getTypeForId","types","find","type","PlayerAvailabilityStatusTypes","PlayerAvailabilityStatus","PlayerAvailabilityColors","SessionStandingsRules","SessionStandingsTypes","tennisSessionStandingsOptions","pickleballSessionStandingsOptions","SearchSortTypes","SessionDateStatuses","SliderTypes","AGE","UTR","UTRP","getApiAxiosInstance","axios","create","baseURL","withCredentials","getLeaguesApiAxiosInstance","getSearchApiAxiosInstance","leaguesApiAxiosInstance","mainApiAxiosInstance","REFUND","getBreadcrumbs","contextId","url","get","getTeamsForSession","parameters","params","paramsSerializer","queryString","arrayFormat","searchLeagueSessions","axiosInstance","requestBody","post","scrollLeagueSessions","leaguesApi","createApi","reducerPath","baseQuery","baseUrl","a","method","data","requestUrl","isUsingProxy","requestBaseUrl","result","err","errorMessage","response","MessageStatusCode","Message","DisplayMessage","error","status","message","axiosBaseQuery","tagTypes","endpoints","build","getLeagueSummary","query","providesTags","getConference","getConferenceSessions","pageNumber","pageSize","getLeagueFees","getConferenceSummary","getSession","keepUnusedDataFor","getSessionSummary","getSessionTeams","getSessionSchedule","showDraftSchedule","arg","getSessionScheduleByDate","getSessionStandings","getTeam","getTeamSummary","getTeamSchedule","getTeamScheduleByDate","getRegistrationFees","getPlayers","transformResponse","teamMembers","map","member","getSchedule","scheduleId","getMatchSummary","getPlayerMatches","getLatestTeamMatchUpdate","timestamp","getMemberTeams","getPlayersAvailableTeams","getLeagueConferences","getSessionNames","getUserLeagues","getTeamMatchRosters","getTeamMatchLineups","getBillingCountries","country","createConference","mutation","invalidatesTags","addOrganizer","organizer","createSession","initiateRegistration","registrationData","requestToCaptain","createEmptySchedule","createSchedule","createTeamSeeds","createTeam","team","addCaptain","captain","messageTeamPlayers","includeCaptains","validateRegistrationPin","pin","publishSchedule","postPlayerMatchResult","playerMatchId","playerMatch","requestToJoinSession","copyTeamsToSession","teamData","validateUsapMembership","usapMemberId","addScheduleRound","newRound","addTeamMatch","newMatch","updateConference","updateSession","updateTeam","updateUnpublishSchedule","updatePlayerRegistration","withdrawRequest","withDrawType","tags","updateTeamMatchSummary","teamMatch","updateTeamMatchDateLocation","updateTeamMatchPositions","teamMatchPositions","updatePlayerMatchResult","movePlayerToTeam","fromTeamId","toTeamId","copyPlayerToTeam","toTeamIds","forEach","newTags","push","togglePlayerRosterStatus","updatePlayerAvailabilityStatus","teamMemberIds","playerAvailabilityStatusId","updateTeamMatchLineups","lineups","updatePlayerReminderStatus","updateTeamMatchLineupStatus","lineupStatusId","notifyPlayersWhenLocked","removeOrganizer","organizerId","removeTeam","removeCaptain","captainId","removeSchedule","removeSession","clearTeamMatch","removeScheduleRound","roundId","removeTeamMatch","useAddScheduleRoundMutation","useAddTeamMatchMutation","useGetLeagueSummaryQuery","useGetConferenceQuery","useGetConferenceSessionsQuery","useGetLeagueFeesQuery","useGetSessionQuery","useGetConferenceSummaryQuery","useGetSessionSummaryQuery","useGetSessionTeamsQuery","useGetSessionScheduleQuery","useLazyGetSessionScheduleByDateQuery","useGetSessionStandingsQuery","useGetTeamQuery","useGetTeamSummaryQuery","useGetRegistrationFeesQuery","useGetPlayersQuery","useGetMatchSummaryQuery","useGetScheduleQuery","useGetPlayerMatchesQuery","useGetTeamScheduleQuery","useLazyGetTeamScheduleByDateQuery","useGetLatestTeamMatchUpdateQuery","useGetMemberTeamsQuery","useGetPlayersAvailableTeamsQuery","useGetLeagueConferencesQuery","useGetSessionNamesQuery","useGetUserLeaguesQuery","useGetTeamMatchRostersQuery","useGetTeamMatchLineupsQuery","useGetBillingCountriesQuery","useCreateConferenceMutation","useAddOrganizerMutation","useCreateSessionMutation","useInitiateRegistrationMutation","useRequestToCaptainMutation","useCreateEmptyScheduleMutation","useCreateScheduleMutation","useCreateTeamSeedsMutation","usePublishScheduleMutation","useCreateTeamMutation","useAddCaptainMutation","useMessageTeamPlayersMutation","useValidateRegistrationPinMutation","usePostPlayerMatchResultMutation","useRequestToJoinSessionMutation","useCopyTeamsToSessionMutation","useValidateUsapMembershipMutation","useUpdateConferenceMutation","useUpdateSessionMutation","useUpdateTeamMutation","useUpdatePlayerRegistrationMutation","useUpdateTeamMatchSummaryMutation","useUpdateTeamMatchDateLocationMutation","useUpdateTeamMatchPositionsMutation","useUpdatePlayerMatchResultMutation","useUpdateUnpublishScheduleMutation","useMovePlayerToTeamMutation","useCopyPlayerToTeamMutation","useTogglePlayerRosterStatusMutation","useUpdatePlayerAvailabilityStatusMutation","useUpdateTeamMatchLineupsMutation","useUpdatePlayerReminderStatusMutation","useUpdateTeamMatchLineupStatusMutation","useRemoveOrganizerMutation","useRemoveTeamMutation","useRemoveCaptainMutation","useRemoveScheduleMutation","useRemoveSessionMutation","useClearTeamMatchMutation","useRemoveScheduleRoundMutation","useRemoveTeamMatchMutation","getAuthUser","createAsyncThunk","res","href","statusText","getActiveTeams","getUserPreferences","formatUrlForCdn","urlPath","test","Img","cdnSrcSet","cdnSrc","srcSet","defaultImage","src","alt","useRawSrcSet","onImgLoad","rest","parsedSrcSet","srcset","parse","stringify","updateSrcSetForCdn","ref","el","img","onError","e","target","ageSliderDictionary","utrpSliderDictionary","getAgeKeyByValue","key","DefaultSliderValues","SortType","ResponseStatuses","LeagueTabs","ManageSessionTabs","SessionTabs","BreadcrumbContexts","LeagueRoles","DistanceSliderMarks","formPaperStyles","px","py","my","ScorePositionKeys","managingTennisHeadCells","tennisHeadCells","teamProfileTennisHeadCells","managingPickleballHeadCells","pickleballHeadCells","teamProfilePickleballHeadCells","tennisTeamMatchHeadCells","pickleballTeamMatchHeadCells","tennisSubstituteTeamMatchHeadCells","pickleballSubstituteTeamMatchHeadCells","sessionStandingsHeadCells","TypographySizes","SharedUICategories","PRIMARY","SECONDARY","DISPLAY","PRIMARY_EXPANDED","SECONDARY_FLIPPED","LINK","LineupStatusType","LineupButtonLabels","LineupButtonTooltipText","FooterExploreItems","FooterProviderItems","FooterMoreItems","FooterSupportItems","FooterSocialMedia","RegistrationStepIds","TENNIS","getAgeKeys","ages","parseInt","ageDisplay","startRange","endRange","getAdjustedTimeOfDay","format","day","moment","offset","utcOffset","splitTime","split","hours","minutes","add","getPlayerDisplayUtr","player","isDoubles","utrDoubles","utrDoublesDisplay","utrDoublesNotVerified","utrDoublesNotVerifiedDisplay","utrSingles","utrSinglesDisplay","utrSinglesNotVerified","utrSinglesNotVerifiedDisplay","utrRange","isVerified","minUtrDisplay","maxUtrDisplay","getPlayerDisplayPickleballRating","pickleballRatingDisplay","getDisplayUTRPRating","singlesPkbRatingDisplay","doublesPkbRatingDisplay","pkbRating","getFormattedDate","utc","local","endDate","formattedStartDate","formattedEndDate","isSame","getAdjustedDate","date","dateUtc","adjustForDSL","isTodayDLS","isDST","isDateDLS","shouldSubtractHour","subtract","getFormattedConferenceRange","showRatingPrefix","ratingMin","ratingMax","prefix","range","minUtr","maxUtr","isUtrMinInteger","Number","isInteger","isUtrMaxInteger","minRange","toFixed","maxRange","getFormattedUtrRange","PICKLEBALL","UT_ADULT_TEAM_PICKLEBALL","UT_ADULT_TEAM_TENNIS","UT_JUNIOR_TEAM_PICKLEBALL","UT_JUNIOR_TEAM_TENNIS","messageUser","focus","getAlternateIds","alternates","filter","alternate","getSinglesUtr","utrRating","includes","numArray","reduce","accumulator","parseFloat","getPowerIndex","powerRating","isEstimated","getPlayerAvailabilityStatus","availabilityStatus","sortPlayersByAvailability","players","sort","b","playerAvailabilityStatusTypeId","validateLineups","lineupData","position1TeamAlternatePlayers","position2TeamAlternatePlayers","lineup","filteredIds","player1TeamMemberId","player2TeamMemberId","Set","size","isDouble","lineupPosition","hasDuplicatePosition1Alternates","hasDuplicatePosition2Alternates","getPlayerAvatarImage","getPlayerProfileUrl","mapMembersForPlayerSearch","members","descendingComparator","orderBy","getComparator","order","getLeagueTypeIdForTier","leagueTierTypes","ADULT","JUNIOR","BackgroundImage","imgSrcUrl","imageType","images","extraCls","parentStylesClass","style","imageSrc","default","formattedImageSizes","formatImageSizesByType","className","styles","backgroundImage","imageRef","currentSrc","parentNode","UtrRoxFlag","Flag","personalClub","createPlayerGroupMainMenu","ratingsListFlag","withFeatureFlags","WrappedComponent","props","featureFlags","flagContainer","uiSlice","createSlice","initialState","sideMenuOpen","reducers","setSideMenu","action","payload","toggleSideMenu","actions","Description","descriptionItems","noEllipsis","Boolean","join","UtrIcon","icon","clickable","onClick","cursor","Icon","width","height","overflow","fontSize","defaultProps","_","cloneDeep","ratingStatusPopUpData","rated","unrated","inactive","projected","ratedStrings","getRatingStatus","ratingStatus","ratingValue","getRatingProgress","ratingProgress","gtag","dataLayer","event","getClickAttrs","category","attrs","defaultSearchState","clubs","hits","colleges","events","highSchools","GlobalSearch","useContext","navigate","useNavigate","cancelRef","useRef","wrapperRef","queryRef","preferences","useSelector","setIsLoading","showDropDown","setShowDropDown","searchQuery","setSearchQuery","hasSearched","setHasSearched","searchState","setSearchState","isAdultTeamPickballEnabled","isJuniorTeamPickballEnabled","hasNoResults","hasSomeResults","getSearchResults","URLSearchParams","append","searchUrl","cancel","current","cancelToken","CancelToken","c","catch","isCancel","stateToSet","handleClickOutside","useCallback","contains","addEventListener","removeEventListener","handleSeeAllClick","typeFilter","preventDefault","handleTypeFilterClick","handleTeamLeagueSearchClick","renderPlayer","index","descriptionShort","userIsPowered","showDecimals","utrValue","verifiedRating","ratingChoice","myUtrSingles","myUtrStatusSingles","matchType","sortValue","progress","myUtrProgressSingles","myUtrDoubles","myUtrStatusDoubles","myUtrProgressDoubles","ratingStatusDoubles","ratingProgressDoubles","ratingStatusSingles","ratingProgressSingles","utrType","actualValue","Math","ratingNumber","ratingArray","ratingDecimal","verified","infoTitle","infoDescription","getRatingDetails","ratingType","unDisplayedStatusStatus","newRatingObject","updateRatingObject","charAt","globalSearchDropdownOption","handlePlayerClick","PlayerIcon","VerifiedIcon","place","renderSchool","schoolClub","profilePhotoUrl","isCollege","school","shortName","photoUrl","schoolName","globalSearchDropdownOptionImage","CollegeIcon","SchoolIcon","renderClub","club","memberCount","handleClubClick","ClubIcon","renderEvent","eventSchedule","eventState","showYear","eventStartDate","eventEndDate","eventStartMonth","eventEndMonth","eventStartYear","eventEndYear","getEventDateString","handleEventClick","EventIcon","globalSearchContainer","hasMarketingLinks","globalSearchInputContainer","searchIconDropDownOpen","feedbackLeft","SearchIcon","marginTop","globalSearchInput","onKeyUp","onPaste","setTimeout","trim","onFocus","placeholder","feedbackRight","globalSearchDropdownContainer","hasQuery","showTennisPills","showTennisContent","showPickleballPills","showPickleballContent","globalSearchDropDown","Button","variant","paidHitClubs","globalSearchDropdownNoMatches","globalSearchDropdownOptions","searchTypeTitle","i","source","loading","renderDropdown","mapDispatchToProps","connect","auth","showHeaderItems","nav","Container","maxWidth","Box","flexWrap","alignItems","showOverrides","hamburger","onMenuClick","joinBtn","navLink","authed","createPlay","ProfileIcon","position","mobileNavLink","HomeIcon","PlayIcon","Input","control","hasError","rules","required","render","field","TextField","fullWidth","LoadingIndicator","backgroundColor","justifyContent","bgcolor","CircularProgress","autocompleteService","LocationAutoComplete","inputValue","setInputValue","options","setOptions","getPlacePredictions","throttle","request","callback","active","google","maps","places","AutocompleteService","input","results","newOptions","Autocomplete","getOptionLabel","option","filterOptions","x","autoComplete","includeInputInList","filterSelectedOptions","onChange","newValue","onInputChange","newInputValue","renderInput","renderOption","structured_formatting","main_text_matched_substrings","parts","main_text","match","Grid","container","item","component","LocationOnIcon","sx","color","mr","xs","part","fontWeight","highlight","text","Typography","secondary_text","Location","Slider","isLabelHidden","sliderType","sliderLength","step","getSliderData","htmlFor","max","min","Select","isFullWidth","helperText","onSelectChange","FormControl","InputLabel","MenuItem","FormHelperText","FormSubmitButton","isSubmitting","LoadingButton","disabled","loadingIndicator","PlayerSearch","isProPlayerSearch","searchMembersOnly","onPlayerSelected","selectedPlayers","setQuery","searchResults","setSearchResults","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","useDebounce","delete","filteredHits","hit","every","updateStateForQuery","handleOnChange","isOptionEqualToValue","reason","handleOnInputChange","InputProps","endAdornment","optionProps","spacing","PlayerSearchResultCard","onRemovePlayer","showRemoveButton","Paper","mb","md","ml","geocoder","getLocationData","placeId","place_id","Geocoder","geocodeResults","geocode","PlacesServiceStatus","OK","formatted_address","geometry","getLocationNameFromCoordinates","latLng","address_components","city","comp","long_name","short_name","getBrowserLocationCoordinates","locationError","enableHighAccuracy","timeout","maximumAge","Promise","resolve","reject","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","errorPopupSlice","isOpen","showErrorPopup","hideErrorPopup","conferenceDetailsSlice","setSportTypeId","CreateConferenceForm","isManaging","isLoadingConference","ageRange","utrpRange","isUpdated","isSuccess","useParams","dispatch","useDispatch","originalLocation","setOriginalLocation","conferenceOrganizer","setConferenceOrganizer","setLeagueId","buttonText","defaultValues","details","conferenceRatingRange","useForm","mode","handleSubmit","reset","formState","errors","dirtyFields","confRange","conferenceLeagueId","sportId","fetchedConference","conferenceLocation","confAgeRange","confRatingRange","formData","handleFormSubmit","formValues","formattedLocation","unwrap","conferenceOrganizerMemberId","isTennisConference","mt","Divider","onSubmit","lg","multiline","minRows","elevation","CreateConferencePage","DateTimePicker","minutesStep","minDate","onDateChange","LocalizationProvider","dateAdapter","DateAdapter","inputFormat","minDateTime","inputProps","ApprovedIcon","xmlns","viewBox","fill","fillRule","clipRule","d","cx","cy","r","stroke","Popup","isSuccessful","buttonLabel","onAction","actionLabel","Dialog","p","DialogContent","padding","DialogContentText","align","DialogActions","RadioGroup","FormControlLabel","Radio","SessionMatchFormat","matchFormat","isDisabled","SINGLES","DOUBLES","BOTH","scoringTypes","Singles","minWidth","scoringType","duration","Doubles","TOURNAMENT","getTooManyMatchesPerTeamError","numberOfTotalWeeks","diff","totalWeeksAvailable","floor","CreateSessionForm","isLoadingSession","onSessionUpdated","OPEN","ONCE_A_WEEK","FIRST_MATCH_BACK_DRAW","FOUR","EIGHT","SIXTEEN","TENNIS_WIN_LOSS_RECORD","PICKLEBALL_WIN_LOSS_RECORD","hasRegisteredPlayers","hasPostedResults","hasPublishedSchedule","hasSchedule","isTennisSession","isRestrictedSession","standingsRuleOptions","setStartDate","teamRegisterStartDate","setTeamRegisterStartDate","totalPlayerCost","setTotalPlayerCost","setMatchFormat","isTournamentSession","setIsTournamentSession","skipToken","setConferenceId","leagueVerifiedFee","setLeagueVerifiedFee","showRuleConfirmationModal","setShowRuleConfirmationModal","sessionStandingsRuleId","setSessionStandingsRuleId","updatedStandingsRuleId","setUpdatedStandingsRuleId","leaguesFees","isLoadingLeaguesFees","getValues","setValue","setError","clearErrors","sessionConferenceId","fetchedSession","sessionLocation","toISOString","activeTab","isTournament","ruleValue","rule","row","startAdornment","InputAdornment","textAlign","feeValue","isNaN","handleEntryFeeChange","CreateSessionPage","StyledTableRow","styled","TableRow","theme","palette","hover","border","PostScoreInput","borderBottomColor","appColors","gradientBlue","shouldForwardProp","prop","showTiebreaker","disable","MozAppearance","borderRightWidth","borderRadius","borderBottomRightRadius","borderTopRightRadius","WebkitAppearance","PostScoreTieBreakInput","borderLeftWidth","borderTopLeftRadius","borderBottomLeftRadius","outline","TiebreakerText","top","right","darkText","ScoreCardTypography","MuiListSubheader","blue","white","isLoser","grey","black","typography","fontWeightMedium","StyledGrid","marginLeft","marginRight","common","MemberTeamTableLink","Link","CustomSwitch","background","minHeight","textTransform","lineHeight","letterSpacing","Switch","margin","transitionDuration","transform","lighterGreen","opacity","coolGrey600","StyledTooltip","Tooltip","classes","popper","tooltipClasses","tooltip","blueGrey100","boxShadow","shadows","fontFamily","secondary","arrow","LeaguesTable","useTheme","headCells","tableData","sortBy","rowComponent","isSortingDisabled","sortOrder","setSortOrder","orderProperty","setOrderProperty","Toolbar","pl","sm","pr","flex","TableContainer","Table","TableHead","headCell","TableCell","sortDirection","TableSortLabel","hideSortIcon","direction","property","whiteSpace","TableBody","slice","rowData","ConferencesTable","leagueConferences","onManageClicked","conferences","setConferences","formattedConferences","genderType","ageKeys","formatConferencesForTable","tabIndex","scope","ConferencesTab","LeagueDeskPage","leagueData","organizerLeagues","isLeagueOrganizer","onLeagueSelected","LeagueDeskWrapper","setOrganizerLeagues","setIsOrganizerLeague","isLoadingLeagueData","leagueDataError","userLeagues","isLoadingOrganizerLeagues","organizerLeaguesError","tennisLeagues","leagues","tennis","pickleballLeagues","pickleball","formattedLeagues","league","isOrganizerLeague","LeagueDesk","getBreadcrumbData","Breadcrumbs","shouldUpdateBreadcrumb","onBreadcrumbUpdated","isAdmin","breadcrumbs","CONFERENCE","SESSION","TEAM","leagueUrl","conferenceUrl","sessionUrl","getLastLabel","renderBreadcrumb","isCurrentContext","isBelowContext","to","isConferenceContext","isBelowConferenceContext","isSessionContext","isBelowSessionContext","isTeamContext","role","LinearProgress","separator","genericPopupSlice","showPopup","hidePopup","MemberRoleManager","isUpdatingRole","isLoadingTeam","memberRole","onAddMemberRole","onRemoveMemberRole","TEAM_CAPTAIN","originalMembers","setOriginalMembers","showConfirmationPopup","setShowConfirmationPopup","isRemovingMember","setIsRemovingMember","memberAwaitingAction","setMemberAwaitingAction","mappedMembers","handleOnRemoveMemberRole","popupAction","isError","popupTitle","popupMessage","SessionsTable","conferenceSessions","onManageClick","onViewClick","onRemoveClick","sessions","setSessions","formattedSessions","sessionType","sessionStatus","SessionsTab","onRemoveSession","onPageChange","pageCount","currentPage","alignContent","Pagination","page","count","ManageConferencePage","useLocation","CONFERENCE_ORGANIZER","DETAILS","SESSIONS","ORGANIZERS","setActiveTab","setShouldUpdateBreadcrumb","showDeleteConfirmation","setShowDeleteConfirmation","showDeleteError","setShowDeleteError","sessionIdToDelete","setSessionIdToDelete","setPageNumber","conferenceError","isFetchingConference","sessionResults","setSessionResults","totalPages","setTotalPages","isLoadingSessions","sessionError","totalCount","pages","ceil","useGetConferenceSessions","isAddingOrganizer","isRemovingOrganizer","isRemovingSession","isUpdatingOrganizers","isSessionsLoading","handleOnRemoveConferenceOrganizer","removedOrganizer","handleOnAddConferenceOrganizer","addedOrganizer","handleOnRemoveSession","handleOnDeleteConfirmed","handleOnCloseDeleteErrorPopup","tabs","fixed","TabContext","TabList","tab","Tab","TabPanel","conferenceOrganizers","AddTeamsTable","sessionTeams","sortByProperty","selectedTeamIds","onTeamSelected","onSortChange","maxTeamsReached","teams","setTeams","MEDIUM_MEDIUM","SMALL_MEDIUM","SMALL_BOOK","X_SMALL_MEDIUM","tableCellStyles","borderBottom","smallTableCellStyles","formattedTeams","isSelected","teamUrl","isItemSelected","avatarFontCategory","avatarFontSize","avatarHeight","avatarWidth","maxLinkWidth","subtitle","Stack","selectedTeam","onOrderPropertyChange","DialogTitleSimple","other","DialogTitle","IconButton","ModalBaseSimple","keepMounted","AddTeamsNotificationModal","selections","teamsCount","onSendClick","teamsText","m","FormGroup","Checkbox","checked","notifyCaptains","notifyPlayers","pb","Transition","forwardRef","Slide","AddTeamsModal","isLoadingOptions","isLoadingTeams","maxTeams","currentTeamCount","selectedConferenceId","selectedSessionIds","onConferenceChange","onSessionChange","onApplyClick","onCloseSessionDropdown","onAddTeams","MEDIUM_BOOK","XX_SMALL_MEDIUM_CAP","setSelectedTeamIds","teamsToAdd","setTeamsToAdd","teamCount","setTeamCount","showConfirmationModal","setShowConfirmationModal","showSessionDropdown","setShowSessionDropdown","notifications","setNotifications","hasSessions","sessionLabelText","isApplyDisabled","PaperProps","coolGrey","fullScreen","TransitionComponent","AppBar","edge","pt","lightGrey","onOpen","multiple","renderValue","selected","selectedOptions","selectedOptionDescriptions","indexOf","borderRight","borderColor","updatedSelectedTeamIds","updatedTeamsToAdd","addedTeam","selectedIds","handleOnTeamRemoved","red","bottom","AddTeamContainer","ASCENDING","DESCENDING","TEAM_NAME","setSelectedConferenceId","setSelectedSessionIds","originalSessionIds","setOriginalSessionIds","setSortByProperty","sessionNames","setSessionNames","skip","isLoadingConferences","isFetching","conferenceSessionNames","isLoadingSessionNames","sessionNamesError","fetchingError","sessionIds","teamSearchResults","setTeamSearchResults","isFetchingResults","setIsFetchingResults","refetch","setRefetch","handleOnSubmit","fromSessionIds","orderByRule","searchError","handleRefetch","clearSearchResults","useGetTeamsForSessions","filteredSessionNames","handleAddTeams","teamIds","ConfirmPublishSchedulePopup","checkboxLabel","isNotifyingTeams","setIsNotifyingTeams","BootstrapDialog","BootstrapDialogTitle","ModalBaseWithHeader","MenuProps","maxHeight","ITEM_HEIGHT","MultiSelect","OutlinedInput","getOptionSelections","CopyPlayerModal","availableTeams","isLoadingAvailableTeams","isSubstituteChecked","setIsSubstituteChecked","isSubmitSuccessful","values","dividers","gutterBottom","marginBottom","autoFocus","CreateDrawModal","selectableTeams","onSkip","mappedSelectableTeams","seed","sortDefaultvalues","sortedArray","drawTeams","register","watch","useFieldArray","minLength","fields","remove","SEED_DESCRIPTION","watchFieldArray","controlledFields","isShowingCTAButton","pageTitle","bottomCTAText","onBottomCTAClick","overflowY","paddingRight","defaultValue","getTeamNameForSelection","selectableTeam","isSelectableTeamSelected","noWrap","textOverflow","gap","MatchFormat","matchCount","pointsPerMatch","scoringFormatTypeId","timeAllowedTypeId","scoringFormatDescription","timeAllottedPerMatch","formatType","blueGrey","FullPageModal","ctaTitle","onCtaClick","isCtaButtonDisabled","TimePicker","ManageSessionModal","onSaveClick","X_SMALL_MEDIUM_CAP","X_SMALL_BOOK","CLOSED","canRegister","sessionRegistrationStatus","setSessionRegistrationStatus","updatedSessionRegistrationStatus","setUpdatedSessionRegistrationStatus","setEndDate","registrationStartDate","setRegistrationStartDate","registrationEndDate","setRegistrationEndDate","originalFormData","setOriginalFormData","registrationStatusDescription","extractDate","dateTimeStr","extractTime","tIndex","substring","DatePicker","newId","prevStatus","DetailsTab","showEditModal","setShowEditModal","sessionStatusMessage","dateFormat","sessionStartDate","sessionEndDate","formatTypeDescription","drawTypeDescription","typeDescription","handleOnCloseEditModal","interactionBlue","BYE_ROUND","TBD_ROUND","MANAGE_SESSION_PAGE_TYPE","getAvailableTeams","teamMatchesInRound","alreadySelectedTeamIDs","teamMatches","acc","cur","teamIDs","currentTeamMatchIDs","aSeed","bSeed","isSelectableTeamIsInThisMatch","getNameWithSeed","seedNumberPos1","getFindTeamMatchID","rounds","getRoundOneMainDrawTeamMatches","draws","draw","getSingleByeDoubleNullLabels","publishedPosition1Team","publishedPosition2Team","dataFormatted","tbdWinnerLabel","displayTournamentBracketStyle","position1FromTeamMatchId","position2FromTeamMatchId","position1FromTeamMatch","position2FromTeamMatch","getTbdWinnerLabel","byeStatusTypeId","getDataFormattedAndPublishedTeams","emptyByeTbdLabel","dateLabel","locationLabel","roundNumber","isMainDraw","totalRounds","isMainFirstRoundPublished","labelPost1","labelPost2","position1TeamId","position2TeamId","optionOne","optionTwo","getFormattedDrawCardSelectOptions","useIsTablet","setWidth","handleWindowSizeChange","innerWidth","useIsMobile","TBDLabel","useGetTableRowsData","onEditMatch","onViewMatch","onChangeClick","isTablet","initialRoundIndex","setInitialRoundIndex","selectedHeaderRows","setSelectedHeaderRows","selectedTableRows","setSelectedTableRows","getTableRows","isUsingState","currentMatch","currentStateDateLabel","formatedDateLabel","formatedLocationLabel","getFormatedFields","isScorelessMatch","getDrawCardSelectOptions","hideViewOnPublish","handleOnViewCard","hasPosition1Team","hasPosition2Team","getHideViewOnPublish","hideEditOnPublish","hasByes","onEditClick","getHideEditOnByes","isFlexWidth","emptyLabel","isSelectActive","tableRows","initialRounds","takeFirstThree","headerRows","handleOnForwardRoundClick","handleOnBackwardRoundClick","isShowingForward","isShowingBackward","useGetTeamPageTableRowsData","timeFormat","timeLabel","currentStateTimeLabel","formattedTimeLabel","formattedDateLabel","formattedLocationLabel","getFormattedTeamPageDrawFields","previousRoundName","drawRounds","roundIndex","findIndex","getPreviousRoundName","currentMatchIndex","teamMatchLink","showTeamMatchLink","getEmptyByeTbdLabel","positionTeam","winnerLabel","positionIndex","matchIndex","getTeamPageDataFormattedAndPublishedTeams","TeamPageDrawTable","isMobile","showMainDraw","TeamPageDrawCardTable","ForwardBackwardButtons","left","DrawTable","isUpdatingTeamMatch","getHasAllTeamsSelected","schedule","teamMatchesIDs","getTeamIDsFromTeamMatches","selectedTeams","DrawTab","isPublishDisabled","onDrawCreateClick","onDrawEditClick","onDrawPublishClick","onDrawUnpublishClick","onDrawDeleteClick","isDrawDisabled","hasPublishPrivileges","descriptionText","pageType","isLoadingInitalState","isDrawTable","drawType","hasAllTeamsSelected","hasATeamInAllMatches","matchesWithoutTeams","getHasATeamInAllMatches","InitialState","MatchEditModal","allowTeamSwap","isMultiRoundSession","isAttemptingToPostScore","originalDescription","setOriginalDescription","originalDate","setOriginalDate","homeTeam","setHomeTeam","awayTeam","setAwayTeam","hasUpdatedTeamPositions","matchLocation","matchDescription","handleOnClose","fullwidth","MovePlayerModal","PlayerWithdrawModal","withdrawType","selectOptions","GenericTable","borderCollapse","borderSpacing","isFirstLabel","MessageIcon","ChatIcon","PlayerUtr","utr","isAppended","isUpdatedDesign","displayComponent","MoreMenu","onOptionSelected","disableMove","disableCopy","anchorEl","setAnchorEl","MOVE_TO_TEAM","COPY_TO_TEAM","MARK_AS_ROSTERED","MARK_AS_SUBSTITUTE","handleOnItemSelected","filteredOptions","undefined","currentTarget","Menu","MenuListProps","PlayersTable","teamPlayers","onWithdrawPlayer","onMovePlayer","onCopyPlayer","onTogglePlayerStatus","hasSessionEnded","WITHDRAW","setPlayers","isTennisMatch","formattedPlayers","avatarImage","playerUrl","imgSrc","playerName","selectedOption","isSubstitutePlayers","singlesWins","singlesLosses","doublesWins","doublesLosses","nameHeadCell","groupPlayersByStatus","statuses","substitutes","rostered","PlayersTab","isCaptainView","onMessageAllPlayers","setTeamPlayers","groupedPlayers","isUpdating","displaySinglesAndDoublesRecord","setTeamId","isLoadingPlayers","playersError","isFetchingPlayers","isLoadingSessionTeams","teamsError","teamSelections","showNoResults","isFirstSearch","renderContent","AddTeamMatchModal","refetchSessionSchedule","matchStartDate","setMatchStartDate","selectedHomeTeam","setSelectedHomeTeam","selectedAwayTeam","setSelectedAwayTeam","onAddTeamMatch","getDateTimeString","time","formattedTime","matchStartTimeUtc","isValid","isDirty","manualMultiweekRound","dateStr","matchDateTime","shouldDisableDate","currentDate","startOf","isBefore","isAfter","endOf","tempHomeTeam","PlayerAvailabilityResponse","onAvailabilityChange","currentUserData","YES","MAYBE","NO","setAvailabilityStatus","userTeamMemberId","setUserTeamMemberId","showAvailabilityOptions","setShowAvailabilityOptions","showRsvpStatus","setShowRsvpStatus","buttonColor","setButtonColor","getColorForAvailabilityStatus","isUserMemberOfTeam","handleOnAvailabilityChange","rsvpStatus","endIcon","TeamMatchLink","arrowStyles","borderTop","borderLeft","rectangleStyles","blackArrowStyles","blackRectangleStyles","WinnerIndicator","isBlack","ScheduleMatchCard","isLeagueDeskSchedule","onDeleteMatch","matchNumber","LARGE","userAvailabilityData","setUserAvailabilityData","isUserOnBothTeams","setIsUserOnBothTeams","showAvailability","setShowAvailability","month","isPosition1Winner","isPosition2Winner","isMediumScreen","useMediaQuery","breakpoints","down","up","mediumScreenMargin","hasNoScoresPosted","widthOfFirstGridItem","borderRightStyles","displayMatchActions","updatePlayerAvailability","playerAvailabilityError","userAvailabilityPosition1","userAvailabilityPosition2","isUserMemberOfBothTeams","getWinnerFontSize","isPositionWinner","getWinnerFontColor","handleOnPlayerAvailabilityChange","handleOnDeleteClick","ByeMatch","columnSpacing","flexDirection","MultiWeekRound","onDeleteRound","roundMatches","sortedRoundMatches","Date","roundHasNoPostedScores","handleOnEditClick","startIcon","MultiWeekByDate","scheduleByDate","TeamPageDrawTableSelect","selectedValue","Schedule","seasonRounds","drawSchedule","multiRoundScheduleType","showAddTeamMatchModal","setShowAddTeamMatchModal","setRoundId","setShowMainDraw","BY_ROUND","BY_DATE","hasSeasonRounds","hasDrawSchedule","hasMultiRoundScheduleByDate","handleOnEditMatch","handleOnAddTeamMatch","roundIdToSet","handleOnCloseAddTeamMatchModal","handleOnViewDrawMatchClick","MultiRoundScheduleSelect","scheduleType","SessionActions","onAddRound","onAddTeamClick","onGenerateSchedule","onCreateSchedule","onPublish","onUnpublishSchedule","onScheduleChange","onDeleteSchedule","isCreatingManualSchedule","isLoadingSchedule","isScheduleCreated","maxTeamsCount","paperStyles","displayManualScheduleSelect","isTeamActionsDisabled","AddScheduleRoundPopup","insertRoundMessage","teamStandingsMessage","isTennis","disableAddRoundButton","radioGroupOptions","defaultSessionStandingType","newRoundNumberOptions","getNewRoundNumberOptions","newRoundNumber","sessionStandingTypeId","useSessionSchedule","skipFetch","NOT_FOUND","PUBLISHED","setDrawSchedule","setHasPostedScores","setIsScheduleCreated","setIsSchedulePublished","setMultiRoundScheduleType","setScheduleByDate","setScheduleId","scheduleRounds","setScheduleRounds","isFetchingSchedule","scheduleError","getScheduleByDate","dateSchedule","isFetchingScheduleByDate","dateScheduleError","isCreatingSchedule","unpublishSchedule","isPublishingSchedule","getMappedSchedule","getSessionRounds","resetSchedule","scheduleData","onPublishSchedule","onGetScheduleByDate","hasScoresPosted","statusId","ScheduleTab","MULTI_ROUND","setIsCreatingManualSchedule","showGeneratePopup","setShowGeneratePopup","showPublishPopup","setShowPublishPopup","showAddRoundPopup","setShowAddRoundPopup","showDeleteRoundPopup","setShowDeleteRoundPopup","showDeleteMatchPopup","setShowDeleteMatchPopup","showUnpublishPopup","setShowUnpublishPopup","roundIdToDelete","setRoundIdToDelete","setRoundName","setMatchNumber","matchIdToDelete","setMatchIdToDelete","showDeleteSchedulePopup","setShowDeleteSchedulePopup","matchToUpdate","setMatchToUpdate","showEditMatchModal","setShowEditMatchModal","roundCount","getRoundCount","schedulePopupMessage","isUpdatingSummary","onCreateEmptySchedule","onAddScheduleRound","isAddingRound","onRemoveMatch","handleOnCreateSchedule","handleOnConfirmDeleteSchedule","handleOnEditSubmit","handleOnAddRound","handleOnCloseAddRoundPopup","handleOnConfirmDeleteRound","handleOnConfirmDeleteTeamMatch","handleOnUnpublishSchedule","hasErrors","disableGutters","notifyTeams","ManageSessionCaptainCard","ManageSessionTeamCaptain","isUpdatingCaptains","onAddCaptain","onRemoveCaptain","maxCaptains","originalCaptains","setOriginalCaptains","showCaptainSearch","setShowCaptainSearch","isRemovingCaptain","setIsRemovingCaptain","captainAwaitingAction","setCaptainAwaitingAction","maximumAmountOfCaptains","maxCaptainsAdded","handleOnRemoveCaptain","displayMaxCaptainsAddedText","PasswordInput","showPassword","setShowPassword","togglePasswordVisibility","ManageTeamModal","teamDetails","isAddingCaptain","setSessionTypeId","teamRegistrationStatus","setTeamRegistrationStatus","updatedTeamRegistrationStatus","setUpdatedTeamRegistrationStatus","teamRegistrationAvailabilityStatusTypeId","teamSessionTypeId","adjustedTime","timeSlotDay","weekday","teamLocation","matchTime","clone","handleOnRemoveTeamCaptain","removedCaptain","handleOnAddTeamCaptain","addedCaptain","CreateTeamCaptainManager","captainsArray","Array","isArray","handleOnAddCaptain","displayCaptainSearch","CreateTeamModal","homeLocation","setHomeLocation","teamCaptain","setTeamCaptain","disableCtaButton","teamCaptainMemberId","TeamsTable","onRemoveClicked","hasSessionStarted","isRemoveDisabled","singlesPowerRating","doublesPowerRating","TeamsTab","onRemoveTeam","teamToRemove","setTeamToRemove","showCreateTeamModal","setShowCreateTeamModal","showManageTeamModal","setShowManageTeamModal","selectedTeamId","setSelectedTeamId","handleOnCloseManageTeamModal","handleOnCloseCreateTeamModal","ManageSessionPageHeader","onTabChange","LARGE_LIGHT","TEAMS","SCHEDULE","PLAYERS","DRAW","scheduleDrawLabel","Tabs","positions","ManageSessionPage","showWithdrawModal","setShowWithdrawModal","showDrawModal","setShowDrawModal","showMoveModal","setShowMoveModal","showCopyModal","setShowCopyModal","showAddTeamModal","setShowAddTeamModal","withdrawData","setWithdrawData","movePlayerData","setMovePlayerData","copyPlayerData","setCopyPlayerData","availableTeamData","setAvailableTeamData","availablePlayerTeams","setAvailablePlayerTeams","canPlayerBeRefunded","setCanPlayerBeRefunded","showDeletePopup","setShowDeletePopup","setSessionDetails","playerTeamAvailability","availableTeamsError","refetchSession","refetchSessionTeams","isRemovingTeam","isWithdrawing","movePlayer","isMovingPlayer","copyPlayer","isCopyingPlayer","isCreatingTeamSeeds","isUpdatingTeamMatchLocation","isUpdatingRosterStatus","addTeams","isAddingTeams","isUpdatingTeamPlayers","isLoadingSeedsTable","resetDrawCache","isSameOrBefore","handleOnAddTeam","handleDrawCreateClick","matchDateTimeData","handleOnRemoveTeam","handleWithdrawSubmit","isWithdrawingPlayer","isRefunding","withdraw","refund","transactionType","handleMovePlayerSubmit","newTeamId","moveRequest","handleCopyPlayerSubmit","newTeamIds","copyRequest","handleOnTogglePlayerStatus","handleOnDrawSubmit","seeds","formatData","filteredData","teamseeds","handleOnAddTeams","handleOnDrawSkip","mockTeam","handleOnChangeClick","formatId","hasBye","hasNoByeRound","handleOnConfirmPublishSchedule","publishData","startDrawLabel","endDrawLabel","playerTeamId","currentTeamId","currentSessionTeams","ShareTeamModal","onCopyClick","MemberTeamsTable","onShareClicked","captainPlayerId","rel","MemberTeamsPage","showShareModal","setShowShareModal","sharedTeamId","setSharedTeamId","teamsToDisplay","clipboard","writeText","LeaguesSearchResultsTable","formattedResults","conferenceName","isUSAPSanctionedSession","usapLogo","FilterButton","buttonTitle","isFilterApplied","Popover","anchorOrigin","vertical","horizontal","LocationAutoCompleteControlled","disableClearable","LocationFilter","hasResetFilters","onApplyFilter","onIsLoadingCurrentLocation","onClearLocation","onCurrentLocationClick","currentLocation","defaultFilterData","sliderValue","filterData","setFilterData","setIsFilterApplied","setIsOpen","getLocationName","handleOnCurrentLocationClick","handleOnApplyLocation","locationData","newLocation","marks","isEqual","SliderFilter","rangeValue","UTPRRanges","getRangeForSlider","toUpperCase","utrpSliderDisplay","MultiSelectFilter","updatedData","appliedFilters","getButtonLabel","mx","isChecked","hasNoSelections","usePostLeaguesSearch","searchFilters","apiResponse","setApiResponse","isEndOfResults","setIsEndOfResults","currentScrollId","setCurrentScrollId","isLoadingMoreResults","setIsLoadingMoreResults","pagination","take","searchProperties","getScrollResults","scrollId","documents","handleOnSearchSubmit","requestScrollId","handleOnLoadMoreClick","SearchPage","leagueTypeId","sportType","leagueTierType","START_DATE","UTR_SORT","UTRP_SORT","dateStatus","defaultDateStatus","defaultSearchFilters","leagueTypeIds","distanceFilter","distance","long","ageFilter","utrFilter","utrPFilter","sessionDateStatuses","genderTypeIds","sportTypeIds","setSearchFilters","hasResetSearchFilters","setHasResetSearchFilters","setCurrentLocation","currentLeagueTierType","setCurrentLeagueTierType","currentDateStatus","setCurrentDateStatus","isLoadingCurrentLocation","setIsLoadingCurrentLocation","handleOnUrlChange","resetSearchOnUrlChange","resetSearch","handleOnApplyLocationFilter","isLoadingLocation","dateStatuses","tierTypeId","utrs","utrps","utrPMin","utrPRMax","utrPRangeMin","utrPRangeMax","SearchWrapper","setUserLocation","setSportType","setLeagueTierType","parsedLeagueId","SessionPageHeader","OVERVIEW","STANDINGS","ManagerCard","managers","isUserLoggedIn","parsedNumber","parsePhoneNumber","phoneNumber","formatInternational","handleOnMessageClick","RegistrationInfoCard","cost","sessionData","onRequestToCaptain","onRegisterButtonClick","PENDING","rangeTitle","today","isPlayerInSession","isCaptainRequestPending","isTodayBeforeSessionEndDate","isTodayBeforeRegistrationEndDate","isNotAPlayerOrCaptainInSession","showRequestToCaptainButton","TEAMS_FORMING_TEXT","TEAMS_FORMING_CAPTAIN_TEXT","showTeamsFormingText","Card","CardContent","OverviewTab","desktopPadding","displayMultiRoundScheduleSelect","SessionStandingsTable","sessionStandings","percentageLabel","standingsHeadCells","gamesWonPercentage","StandingsTab","teamStandings","PasswordConfirmation","onPinSubmitted","isInvalidPasscode","paddingTop","onMessageClick","StripeInput","inputRef","elementRef","Component","useImperativeHandle","onReady","element","registrationTerms","SubmitPaymentForm","clientSecret","onRegistrationSuccessful","segmentTrackingBody","stripe","useStripe","elements","useElements","stripeError","setStripeError","billingCountries","address","analytics","track","confirmCardPayment","payment_method","card","getElement","CardElement","billing_details","stripeCardError","handleInputOnFocus","InputLabelProps","shrink","inputComponent","pattern","RegistrationConfirmation","registrationFees","onRegistrationSuccess","formattedServiceFee","formattedTotalFee","finalCurrencySymbol","isPaidLeague","TeamSelection","onTeamCardClick","onNotifyOrgClick","canSendSessionJoinRequest","getCaptains","toString","formatDescription","USAPValidation","onMemberIdSubmitted","validationError","borderStyle","borderWidth","coolGrey500","RegistrationDrawer","isUsapSanctionedSession","onFreeSessionRegistration","onTeamSelectionClick","isSessionPage","isLargeScreen","activeStep","setActiveStep","setClientSecret","isInvalidPin","setIsInvalidPin","setRegistrationPin","setUsapMemberId","registrationSteps","setRegistrationSteps","stripeInstance","setStripeInstance","usapValidationError","setUsapValidationError","isInitiatingRegistration","setIsInitiatingRegistration","userName","drawerWidth","SMALL_MEDIUM_CAP","TEAM_SELECTION","PASSWORD_CONFIRMATION","EVENT_QUESTIONS","CONFIRM_DETAILS","validatePin","isLoadingPinValidation","isUsapMembershipValid","isLoadingMemberValidation","initiateTeamRegistration","secret","paymentAccountId","isFreeSession","loadStripe","stripeAccount","handleNext","prev","startRegistration","shouldAdvanceStep","steps","stepCount","hasTeamData","hasMultipleStepsSessionPage","handleOnPinSubmitted","handleOnUSAPMemberIdSubmitted","showBackButton","isTeamSelectionStep","isPinValidationStep","isEventQuestionsStep","isConfirmDetailsStep","Drawer","anchor","isUsapSanctionedSection","SessionPage","currentTeamData","setCurrentTeamData","showRegistrationDrawer","setShowRegistrationDrawer","showRegistrationSuccessPopup","setShowRegistrationSuccessPopup","showNotifyOrganizerSuccessPopup","setShowNotifyOrganizerSuccessPopup","showNotifyOrganizerFailurePopup","setShowNotifyOrganizerFailurePopup","teamsAvailableData","sessionSummaryError","refetchSummary","isLoadingStandings","standingsError","refetchStandings","isSuccessfulRequest","handleRemoveTeamData","handleOnRequestToCaptain","handleOnNotifyOrgClick","handleOnRegisterClick","handleOnCloseRegistrationSuccessPopup","handleOnCloseNotificationSuccessPopup","handleOnCloseNotificationFailurePopup","currentSession","mappedSession","registrationDates","mapSession","sessionDescription","singlesFormat","doublesFormat","MATCH_TAB","noSidePadding","renderSessionContent","sessionJoinRequest","totalFee","CompletedSessionModal","LineupControls","canUserViewLineups","hasMatchDatePassed","onShowLineupModal","onLineupStatusChange","LOCKED","DRAFT","PUBLISH","UNPUBLISH","LOCK","UNLOCK","PUBLISH_TOOLTIP","LOCK_TOOLTIP","UNPUBLISH_TOOLTIP","UNLOCK_TOOLTIP","setLineupStatusId","showSetLinesButton","setShowLinesButton","showEditLinesButton","setShowEditLinesButton","showLockButton","setShowLockButton","showPublishButton","setShowPublishButton","isLineupStatusButtonsDisabled","setIsLineupStatusButtonsDisabled","isUserCaptain","setIsUserCaptain","lockButton","publishButton","lockTooltip","publishTooltip","lineupButtonLabels","setLineupButtonLabels","isTeamCaptain","numberOfSetLines","numberOfLines","isDraftLineup","isLockedLineup","isCaptainWithNoScoresPosted","isSetLinesButtonVisible","isEditLinesButtonVisible","isLockButtonVisible","isPublishButtonVisible","isStatusButtonsDisabled","lockButtonLabel","lockTooltipText","publishButtonLabel","publishTooltipText","handleOnShowLineupModal","handleOnTogglePublish","updatedStatus","placement","LocationTab","COMPLETED","COMPLETED_WITH_PARTIAL_SCORES","DEFAULTED","WITHDREW","RETIRED","INCOMPLETE","MATCH_NOT_PLAYED","SideKeys","MatchPositionKeys","MatchPositions","PlayerKeys","ValidationErrors","isNumericScore","score","hasScoresEntered","matchScores","hasScore","hasPosition1Score","position1Score","hasPosition2Score","position2Score","findPlayerInTeam","switchMatchScores","side1","side2","sideResult","sideId","getResultScore","getPositionsForMatch","isSide1Position1","hasDuplicatePlayersInMatch","playerIds","player1","player2","hasInvalidPlayerCount","matchOutcomeId","createDefaultedMatchResults","matchOutcome","clearedSideResult","set1Score","set2Score","set3Score","set4Score","set5Score","tieBreakSet1Score","tieBreakSet2Score","tieBreakSet3Score","tieBreakSet4Score","tieBreakSet5Score","winningSideId","resultCompletionTypeId","side1Results","player1MemberId","player1PlayerId","player2MemberId","player2PlayerId","side2Results","outcomeId","position1Results","position2Results","createMatchResults","sets","position1Tiebreaker","position2Tiebreaker","getMatchOutcomeOptions","positionOnePlayerOne","positionTwoPlayerOne","position1SideId","position2SideId","position1Name","position2Name","hasScores","scoreType","hasPartialScores","contest","getOutcomeForExistingMatch","outcome","outcomeIndex","winnerSideId","BEST_OF_THREE","TWO_SETS_WITH_TIEBREAKER","SINGLE_SET","TIME_BASED","FAST_FOUR","DefaultSets","isSetTied","set","isTieScore","hasTiebreakerScore","abs","validateTiebreaker","tiebreakerError","validateTimeBasedSet","isValidCompletedSetScore","hasSetScores","hasPartialSetScores","isTiebreakerScore","validateCompletedBestOfThree","isTiebreakerSet3Score","hasTieScore","hasOutOfRangeScore","hasNotMetMinimumAmountOfPoints","hasThirdSetTie","hasOutOfRangeThirdSetScore","validateCompletedTwoSetWithTiebreaker","maxProSetPointsAllowed","validateCompletedSingleSet","validateCompletedFastFour","isValidCompletedSet","isValidPartialSetScore","hasMissingTiebreakerScore","isPosition1ScoreInvalid","isPosition2ScoreInvalid","isValidPartialScore","getWinnerForSets","partialSetCount","isWinnerPosition1","position1CompletedWins","position2CompletedWins","position1PartialWins","position2PartialWins","invalidSetId","sortedSetIds","hasUnorderedScoringSets","isPosition1FirstSetWinner","scoringSets","position1GamesWon","position2GamesWon","isFirstSet","getPartialScoreWinnerForTimeBasedSets","validSetError","totalPosition1Wins","totalPosition2Wins","UTSet","onScoreChange","currentSetId","POSITION_ONE_SCORE","POSITION_ONE_TB_SCORE","POSITION_TWO_SCORE","POSITION_TWO_TB_SCORE","isTie","setIsTie","showTiebreakerInput","setShowTiebreakerInput","showPosition1Tiebreaker","showPosition2Tiebreaker","isSetTie","handleOnScoreChange","changedSet","positionKey","isTiebreaker","handleOnFocus","setid","MatchOutcomeSelect","hasEnteredScores","onMatchOutComeChange","PlayerSelect","player1Id","player2Id","playerOptions","side","onPlayerChange","isSmallScreen","PLAYER_1","PLAYER_2","handleOnPlayerChange","selectedPlayer","renderOptions","PostTennisScoreModal","position1Players","position2Players","selectedMatch","onSaveMatchScore","onDuplicatePlayersInMatch","onInvalidPlayerCount","SIDE_1","SIDE_2","position1TeamName","position2TeamName","setCurrentMatch","setSets","originalSets","setOriginalSets","setCurrentSetId","originalMatch","setOriginalMatch","scoringError","setScoringError","setHasEnteredScores","matchOutcomeOptions","setMatchOutcomeOptions","setMatchOutcome","originalMatchOutcome","setOriginalMatchOutcome","setWinningSideId","isEditing","setIsEditing","hasUnchangedScores","hasUnchangedMatch","hasUnchangedMatchOutcome","isUnchangedMatch","existingSets","position1Result","position2Result","hasSet1Position1Score","hasSet1Position2Score","hasSet1Position1TiebreakerScore","hasSet1Position2TiebreakerScore","hasSet2Position1Score","hasSet2Position2Score","hasSet2Position1TiebreakerScore","hasSet2Position2TiebreakerScore","hasSet3Position1Score","hasSet3Position2Score","hasSet3Position1TiebreakerScore","hasSet3Position2TiebreakerScore","getExistingMatchSets","position1Player1Id","position1Player2Id","position2Player1Id","position2Player2Id","handleOnSetScoreChange","setId","validatedValue","isTieBreaker","getValidatedValueForSet","newSets","setIndex","newSet","updatedSet","handleOnSetFocus","handleOnSwitchScores","updatedSetScores","switchSetScores","updatedMatch","playerPosition","matchName","position1PlayerSide","position2PlayerSide","hasNonScoringOutcome","hasNoErrors","hasDuplicatePlayers","hasInvalidPlayerAmount","winnerId","PickleballGame","game","changedGame","BEST_OF_THREE_GAMES","SINGLE_GAME","TIME_BASED_GAME","DefaultPickleballGames","isValidCompletedGameScore","hasGameScores","hasPartialGameScores","validatePickleballGame","isValidCompletedGame","PostPickleballScoreModal","games","setGames","originalGames","setOriginalGames","existingGames","getExistingPickleballMatchGames","handleOnGameScoreChange","gameId","getValidatedValueForGame","newGames","gameIndex","newGame","updatedGames","switchGameScores","renderPickleballGames","hasPreviousGameScore","hasCurrentScores","tieScoreGameId","position1Wins","position2Wins","positionOneTotalPoints","positionTwoTotalPoints","getWinnerForGames","SetScores","outcomeDescription","isScorelessOutcome","hasSet1Score","hasSet2Score","hasSet3Score","hasSet1TiebreakerScore","hasSet2TiebreakerScore","hasSet3TiebreakerScore","fontColor","displayOutcomeDescription","noScores","PlayerAvatarWithUtr","player1Name","player2Name","AvatarWithUtrTemplate","TeamMatchScoreCard","onEditClicked","onClearMatchClick","isIncompleteOutcome","isDefaultedOutcome","showClearButton","TeamMatchSetScores","TeamMatchAlternatesCard","positionAlternates","alternatePlayers","TeamMatchSummary","summary","scores","winningTeamId","homeScore","awayScore","hasWinner","awayTeamUrl","homeTeamUrl","homeTeamTextColor","awayTeamTextColor","truncatedTextStyles","gradientTurquoise","PlayerAvailabilityEditModal","onStatusChange","PlayerAvailabilityReminderModal","onReminderChange","playersToRemind","setPlayersToRemind","getLabelForAvailabilityStatus","groupedPlayersByAvailability","statusTypeId","entries","ids","some","selectedPlayerIds","updatedPlayersToRemind","splice","handleAvailabilityReminderSwitch","flat","PlayerAvailabilityIndicator","onAvailabilityClick","isIconOnly","iconSize","green","orange","getIconForAvailabilityStatus","getButtonForAvailabilityStatus","PlayerTableRow","isUserTeamMember","utrp","playerImage","TeamTabTable","SuccessSnackbar","Snackbar","autoHideDuration","ContentProps","TeamTab","displaySuccessSnackbar","onCloseSuccessSnackbar","showRemindersModal","setShowRemindersModal","showAvailabilityModal","setShowAvailabilityModal","availabilityIdToBeUpdated","setAvailabilityIdToBeUpdated","LARGE_BOOK","handleOnCloseAvailabilityModal","handleOnAvailabilityClick","filteredRosteredPlayers","filteredSubstitutePlayers","substituteHeadCells","remindersPlayerData","PlayerRating","LineupDropdownItem","noRecord","totalPlayed","avatarOnly","LineupAlternatesCard","roster","onAddAlternate","onRemoveAlternate","teamPlayer","getPlayerNameForSelection","LineupCard","canEditPosition1","canEditPosition2","POSITION_1","POSITION_2","MATCH_POSITION_1","MATCH_POSITION_2","currentLineup","setCurrentLineup","selectedPlayer1Position1","setSelectedPlayer1Position1","selectedPlayer2Position1","setSelectedPlayer2Position1","selectedPlayer1Position2","setSelectedPlayer1Position2","selectedPlayer2Position2","setSelectedPlayer2Position2","cardTitle","showBothPositions","teamPosition","isPlayerTwo","isPosition1","positionTeamId","playerTeamMemberId","updatedLineup","sortedPosition2Players","sortedPosition1Players","doublesPlayer2Value","doublesPlayer1Value","singlesPlayerValue","POSITION_1_ALTERNATES","POSITION_2_ALTERNATES","APPENDED_ALTERNATE","SetLineupModal","matchLineups","setMatchLineups","position1AlternatePlayers","setPosition1AlternatePlayers","position2AlternatePlayers","setPosition2AlternatePlayers","isAlternatesDisabled","setIsAlternatesDisabled","updateLineups","isPosition1Lineup","position1Alternates","position2Alternates","resetField","position1Fields","position1Append","position1Remove","position2Fields","position2Append","position2Remove","mappedAlternateIds","singlesLineups","doublesLineups","position1Ids","position2Ids","lineupTeamMemberIds","lineupIds","handleOnFormSubmit","position1AlternateIds","position2AlternateIds","foundIndex","isExistingLineup","updatedMatchLineups","updatedLineups","playerIndex","handleOnAddAlternate","handleOnRemoveAlternate","indexToRemove","alternatePositionFields","alternateError","alternateFieldName","alternateRoster","alternateTeamName","alternateTeamId","scroll","LineupStatusMessaging","notifyPlayersMessage","TeamMatchPage","LINES","LOCATION","AWAY_TEAM","HOME_TEAM","showPostScoreModal","setShowPostScoreModal","setSelectedMatch","teamScores","setTeamScores","pollingInterval","setPollingInterval","isPostingScore","setIsPostingScore","setWinningTeamId","setTimestamp","showCompletedSessionModal","setShowCompletedSessionModal","showLineupModal","setShowLineupModal","showClearMatchModal","setShowClearMatchModal","showAvailabilityReminderSnackbar","setShowAvailabilityReminderSnackbar","matchToBeCleared","setMatchToBeCleared","showLineupNotificationModal","setShowLineupNotificationModal","updatedLineupStatus","setUpdatedLineupStatus","setHasMatchDatePassed","setIsAttemptingToPostScore","teamMatchDate","setTeamMatchDate","setPosition1Team","setPosition2Team","userTeamMemberIds","setUserTeamMemberIds","rosters","isLoadingRosters","requestingMember","useGetTeamMatchRosters","refetchMatchSummary","latestResultData","latestResultError","playerMatches","setPlayerMatches","setLineupData","setCanUserViewLineup","showCompletedSessionWarning","setShowCompletedSessionWarning","showConfirmation","lineupStatusConfirmation","setLineupStatusConfirmation","isLoadingPlayerMatches","updateLineupStatus","showVerifiedCompletedSessionWarning","canViewLineups","getSnackbarConfirmationNotification","isNotifyingPlayers","locked","published","isCurrentStatusPublished","handleOnLineupStatusChange","confirmation","handleOnCloseStatusConfirmation","usePlayerMatches","updatePlayerReminder","isClearingTeamMatch","sortMatchesByLineupPosition","resultsLastUpdatedMs","isNowAfterMatchDate","update","showDuplicatePlayersError","showInvalidPlayerCountError","handleOnCloseScoreModal","handleOnSaveMatchScore","handleOnEditScoreClicked","singlesMatches","singlePlayerMatches","doublesMatches","doublesPlayerMatches","allMatches","matchToBeUpdated","selectedMatchToBeUpdated","handleOnCloseSuccessSnackbar","handleOnReminderChange","handleOnClearMatchClick","handleOnConfirmClearMatch","handleOnLineupModalAction","singleMatchesToDisplay","doubleMatchesToDisplay","showPosition2Alternates","position2TeamAlternates","showPosition1Alternates","position1TeamAlternates","canPostScores","isCaptain","singlesScoringFormatType","doublesScoringFormatType","Alert","EditTeamDetailsModal","registrationStatus","MessagePlayersModal","onMessageSubmitted","onRequestClose","shouldIncludeCaptains","setShouldIncludeCaptains","clearForm","TeamProfileInfoCard","onJoinClick","onShareClick","isRegistrationAvailable","isTodayAfterSessionEndDate","isRegistrationDisabled","teamSummary","isLoadingRegistration","onRegisterClick","fees","showAddCaptainModal","setShowAddCaptainModal","captainToBeUpdated","setCaptainToBeUpdated","mappedCaptains","handleOnConfirmRemoval","handleOnConfirmAddition","handleOnCloseAddCaptainModal","captainToBeRemoved","MultiRoundScheduleToggle","ToggleButtonGroup","exclusive","ToggleButton","setRounds","teamScheduleByDate","isLoadingTeamScheduleByDate","teamScheduleByDateError","teamSchedule","handleOnScheduleChange","mappedRoundMatches","filteredTeamMatches","TeamPageHeader","mobileAndDesktopCategory","mobileAndDesktopSize","mobileDisplay","mobileSpacing","mobileColon","sessionLink","lightBlue","TeamPage","parsedTeamId","setIsCaptainView","setTab","showMessagePlayersPopup","setShowMessagePlayersPopup","isSuccessAlertOpen","setIsSuccessAlertOpen","teamDataError","refetchTeam","isLoadingTeamDetails","teamDetailsError","feesError","messageAllPlayers","hasMessagedPlayers","handleOnShareClick","handleOnMessagePlayersClick","handleOnMessagePlayers","handleOnCloseSuccessAlert","numOfWins","numOfLosses","typeId","renderTeamContent","severity","AppRoutes","path","ClubTierTypes","ClubRoles","clubTiers","getClubTypeString","MenuLink","trackedContent","pathname","menuItem","ui","isLoadingMemberTeams","collapsed","setCollapsed","toggleMyProfile","setToggleMyProfile","toggleMyAccount","setToggleMyAccount","handleLogOut","ev","Cookies","expire","handleClose","ADMIN","OWNER","MEMBER","visibleClubs","clubMemberships","hiddenClubTypes","getClubsVisibleToUser","clubsWhereUserIsAdminOrOwner","roleValue","isPremiumClubsOrganizer","tierTypeName","clubsWhereUserIsMember","sortedClubMemberships","PAID_HIT","paidHitClub","filteredClubs","sortClubMembershipsByPaidHit","clubMembershipsToDisplay","SwipeableDrawer","closeArea","closeBtn","menuSection_options","onboardingCompleted","onboardingRequired","playerDetails","isPowered","isProClubHeadOrganizer","menuSection","menuTitle","collapsible","enableBetaFeatures","clubMembership","clubId","isPersonalClubHeadOrganizer","canCreateEvent","section","onKeyDown","Loading","loadingPage","innerWrapper","iconWrapper","iconSpinner","reverse","GenericPopup","genericPopup","ErrorPopup","errorPopup","App","isLoadingUser","isUserLoaded","isMemberTeamsLoaded","isLoadingPreferences","isPreferencesLoaded","roxInit","setRoxInit","segmentAnalytics","load","env","setup","then","RoxSetCustomProperties","showExpandedNav","sdkKey","statsigEnvironment","tier","userID","waitForInitialization","exploreItems","providerItems","moreItems","supportItems","onSocialMediaClick","socialMediaItem","userSlice","extraReducers","pending","fulfilled","rejected","authSlice","clearUser","updateProfilePicture","breadcrumbSlice","combineReducers","reducer","apiInstances","main","persistConfig","storage","whitelist","blacklist","persistedReducer","persistReducer","rootReducer","store","configureStore","middleware","getDefaultMiddleware","thunk","extraArgument","serializableCheck","ignoredActions","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","concat","persistor","persistStore","lighterGrey","darkGrey","darkestGrey","secondaryButtonDisabled","gradient","secondaryFont","appGradient","tabButtonSidePadding","defaultButtonStyle","darkButtonStyle","lightButtonStyle","whiteButtonStyle","filterButtonStyle","filterSelectedButtonStyle","smallButtonStyle","largeButtonStyle","createTheme","primary","rsvpGreen","rsvpOrange","rsvpRed","subtitle2","h2","fontWeightLight","h3","h3_grey","h4_grey","fontWeightRegular","h5_grey","subHeading","caption","caption_blue","body1","details_grey","cardSubtitle","components","MuiButtonBase","styleOverrides","root","disableRipple","MuiButton","variants","MuiInputLabel","MuiSlider","thumb","MuiTabs","indicator","borderImage","borderImageSlice","MuiCard","paddingBottom","MuiToggleButton","ErrorBoundary","errorInfo","this","NREUM","noticeError","errorType","componentStack","ReactDOM","StrictMode","ThemeProvider","getElementById"],"mappings":"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,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU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,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,YAAY,wBAAwB,aAAa,yBAAyB,aAAa,yBAAyB,aAAa,yBAAyB,aAAa,yBAAyB,aAAa,yBAAyB,aAAa,yBAAyB,eAAe,2BAA2B,cAAgB,4BAA4B,OAAS,qBAAqB,cAAgB,4BAA4B,aAAa,yBAAyB,SAAW,uBAAuB,OAAS,qBAAqB,SAAW,uBAAuB,oBAAsB,kCAAkC,YAAc,0BAA0B,UAAY,wBAAwB,UAAY,wBAAwB,QAAU,sBAAsB,OAAS,qBAAqB,UAAY,wBAAwB,SAAW,uBAAuB,YAAc,0BAA0B,OAAS,uB,oBCDj4wC,IAAM2B,EAAcrB,EAAQ,KAEtBsB,EAAUC,QACVC,EAAW,UAAMH,EAAYI,QAAlB,YAA6BH,GAE9C7B,EAAOC,QAAU,CACbgC,WAAY,iBACZJ,UACAK,mBAAoBN,EAAYI,QAChCD,cACAI,kBAAmB,W,6DCTvBnC,EAAOC,QAAU,CAAC,UAAY,gCAAgC,kBAAkB,sCAAsC,eAAe,mCAAmC,eAAe,mCAAmC,eAAe,mCAAmC,eAAe,mCAAmC,IAAM,0BAA0B,aAAa,iCAAiC,IAAM,0BAA0B,SAAS,6BAA6B,cAAc,kCAAkC,YAAY,gCAAgC,YAAY,gCAAgC,YAAY,gCAAgC,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,SAAS,6BAA6B,cAAc,kCAAkC,YAAY,gCAAgC,YAAY,gCAAgC,YAAY,gCAAgC,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,SAAS,6BAA6B,cAAc,kCAAkC,YAAY,gCAAgC,YAAY,gCAAgC,YAAY,gCAAgC,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,SAAS,6BAA6B,cAAc,kCAAkC,YAAY,gCAAgC,YAAY,gCAAgC,YAAY,gCAAgC,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,6BAA6B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,cAAc,kCAAkC,aAAa,iCAAiC,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,YAAY,gCAAgC,YAAY,gCAAgC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,iBAAiB,qCAAqC,gBAAgB,oCAAoC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,eAAe,mCAAmC,eAAe,mCAAmC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,iBAAiB,qCAAqC,gBAAgB,oCAAoC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,eAAe,mCAAmC,eAAe,mCAAmC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,iBAAiB,qCAAqC,gBAAgB,oCAAoC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,eAAe,mCAAmC,eAAe,mCAAmC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,iBAAiB,qCAAqC,gBAAgB,oCAAoC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,cAAc,kCAAkC,eAAe,mCAAmC,eAAe,mCAAmC,SAAS,6BAA6B,WAAW,+BAA+B,iBAAiB,qCAAqC,UAAU,8BAA8B,UAAU,8BAA8B,cAAc,kCAAkC,eAAe,mCAAmC,SAAS,6BAA6B,gBAAgB,oCAAoC,YAAY,gCAAgC,cAAc,kCAAkC,oBAAoB,wCAAwC,aAAa,iCAAiC,aAAa,iCAAiC,iBAAiB,qCAAqC,kBAAkB,sCAAsC,YAAY,gCAAgC,mBAAmB,uCAAuC,YAAY,gCAAgC,cAAc,kCAAkC,oBAAoB,wCAAwC,aAAa,iCAAiC,aAAa,iCAAiC,iBAAiB,qCAAqC,kBAAkB,sCAAsC,YAAY,gCAAgC,mBAAmB,uCAAuC,YAAY,gCAAgC,cAAc,kCAAkC,oBAAoB,wCAAwC,aAAa,iCAAiC,aAAa,iCAAiC,iBAAiB,qCAAqC,kBAAkB,sCAAsC,YAAY,gCAAgC,mBAAmB,uCAAuC,YAAY,gCAAgC,cAAc,kCAAkC,oBAAoB,wCAAwC,aAAa,iCAAiC,aAAa,iCAAiC,iBAAiB,qCAAqC,kBAAkB,sCAAsC,YAAY,gCAAgC,mBAAmB,uCAAuC,eAAe,mCAAmC,iBAAiB,qCAAqC,uBAAuB,2CAA2C,gBAAgB,oCAAoC,gBAAgB,oCAAoC,oBAAoB,wCAAwC,qBAAqB,yCAAyC,eAAe,mCAAmC,sBAAsB,0CAA0C,WAAW,+BAA+B,cAAc,kCAAkC,mBAAmB,uCAAuC,sBAAsB,0CAA0C,YAAY,gCAAgC,cAAc,kCAAkC,oBAAoB,wCAAwC,YAAY,gCAAgC,cAAc,kCAAkC,cAAc,kCAAkC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,wBAAwB,4CAA4C,sBAAsB,0CAA0C,yBAAyB,6CAA6C,0BAA0B,8CAA8C,yBAAyB,6CAA6C,oBAAoB,wCAAwC,kBAAkB,sCAAsC,qBAAqB,yCAAyC,uBAAuB,2CAA2C,sBAAsB,0CAA0C,sBAAsB,0CAA0C,oBAAoB,wCAAwC,uBAAuB,2CAA2C,wBAAwB,4CAA4C,uBAAuB,2CAA2C,wBAAwB,4CAA4C,kBAAkB,sCAAsC,mBAAmB,uCAAuC,iBAAiB,qCAAqC,oBAAoB,wCAAwC,sBAAsB,0CAA0C,qBAAqB,yCAAyC,cAAc,kCAAkC,iBAAiB,qCAAqC,sBAAsB,0CAA0C,yBAAyB,6CAA6C,eAAe,mCAAmC,iBAAiB,qCAAqC,uBAAuB,2CAA2C,eAAe,mCAAmC,iBAAiB,qCAAqC,iBAAiB,qCAAqC,mBAAmB,uCAAuC,mBAAmB,uCAAuC,2BAA2B,+CAA+C,yBAAyB,6CAA6C,4BAA4B,gDAAgD,6BAA6B,iDAAiD,4BAA4B,gDAAgD,uBAAuB,2CAA2C,qBAAqB,yCAAyC,wBAAwB,4CAA4C,0BAA0B,8CAA8C,yBAAyB,6CAA6C,yBAAyB,6CAA6C,uBAAuB,2CAA2C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,qBAAqB,yCAAyC,sBAAsB,0CAA0C,oBAAoB,wCAAwC,uBAAuB,2CAA2C,yBAAyB,6CAA6C,wBAAwB,4CAA4C,cAAc,kCAAkC,iBAAiB,qCAAqC,sBAAsB,0CAA0C,yBAAyB,6CAA6C,eAAe,mCAAmC,iBAAiB,qCAAqC,uBAAuB,2CAA2C,eAAe,mCAAmC,iBAAiB,qCAAqC,iBAAiB,qCAAqC,mBAAmB,uCAAuC,mBAAmB,uCAAuC,2BAA2B,+CAA+C,yBAAyB,6CAA6C,4BAA4B,gDAAgD,6BAA6B,iDAAiD,4BAA4B,gDAAgD,uBAAuB,2CAA2C,qBAAqB,yCAAyC,wBAAwB,4CAA4C,0BAA0B,8CAA8C,yBAAyB,6CAA6C,yBAAyB,6CAA6C,uBAAuB,2CAA2C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,qBAAqB,yCAAyC,sBAAsB,0CAA0C,oBAAoB,wCAAwC,uBAAuB,2CAA2C,yBAAyB,6CAA6C,wBAAwB,4CAA4C,cAAc,kCAAkC,iBAAiB,qCAAqC,sBAAsB,0CAA0C,yBAAyB,6CAA6C,eAAe,mCAAmC,iBAAiB,qCAAqC,uBAAuB,2CAA2C,eAAe,mCAAmC,iBAAiB,qCAAqC,iBAAiB,qCAAqC,mBAAmB,uCAAuC,mBAAmB,uCAAuC,2BAA2B,+CAA+C,yBAAyB,6CAA6C,4BAA4B,gDAAgD,6BAA6B,iDAAiD,4BAA4B,gDAAgD,uBAAuB,2CAA2C,qBAAqB,yCAAyC,wBAAwB,4CAA4C,0BAA0B,8CAA8C,yBAAyB,6CAA6C,yBAAyB,6CAA6C,uBAAuB,2CAA2C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,qBAAqB,yCAAyC,sBAAsB,0CAA0C,oBAAoB,wCAAwC,uBAAuB,2CAA2C,yBAAyB,6CAA6C,wBAAwB,4CAA4C,cAAc,kCAAkC,iBAAiB,qCAAqC,sBAAsB,0CAA0C,yBAAyB,6CAA6C,eAAe,mCAAmC,iBAAiB,qCAAqC,uBAAuB,2CAA2C,eAAe,mCAAmC,iBAAiB,qCAAqC,iBAAiB,qCAAqC,mBAAmB,uCAAuC,mBAAmB,uCAAuC,2BAA2B,+CAA+C,yBAAyB,6CAA6C,4BAA4B,gDAAgD,6BAA6B,iDAAiD,4BAA4B,gDAAgD,uBAAuB,2CAA2C,qBAAqB,yCAAyC,wBAAwB,4CAA4C,0BAA0B,8CAA8C,yBAAyB,6CAA6C,yBAAyB,6CAA6C,uBAAuB,2CAA2C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,0BAA0B,8CAA8C,2BAA2B,+CAA+C,qBAAqB,yCAAyC,sBAAsB,0CAA0C,oBAAoB,wCAAwC,uBAAuB,2CAA2C,yBAAyB,6CAA6C,wBAAwB,4CAA4C,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,YAAY,gCAAgC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,YAAY,gCAAgC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,YAAY,gCAAgC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,YAAY,gCAAgC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,aAAa,iCAAiC,eAAe,mCAAmC,sBAAwB,4CAA4C,2BAA6B,iDAAiD,aAAe,mCAAmC,kBAAoB,wCAAwC,cAAgB,oCAAoC,8BAAgC,oDAAoD,0BAA4B,gDAAgD,4BAA8B,kDAAkD,qBAAuB,2CAA2C,0BAA4B,gDAAgD,8BAAgC,oDAAoD,4BAA8B,kDAAkD,QAAU,8BAA8B,gBAAkB,sCAAsC,2BAA6B,iDAAiD,gCAAkC,sDAAsD,KAAO,2BAA2B,MAAQ,4BAA4B,eAAiB,uC,8LCDphjDmC,EACc,wBADdA,EAEe,yB,uBCqGfC,GApGFC,IAAUC,MAAM,CACnBC,oBAAqBF,IAAUG,KAC/BC,kBAAmBJ,IAAUG,KAC7BE,YAAaL,IAAUM,OAAOC,WAC9BC,UAAWR,IAAUS,OAAOF,WAC5BG,SAAUV,IAAUC,MAAM,CACtBU,UAAWX,IAAUS,OAAOF,WAC5BK,iBAAkBZ,IAAUS,OAAOF,aAEvCM,cAAeb,IAAUC,MAAM,CAC3Ba,OAAQd,IAAUM,OAAOC,WACzBQ,KAAMf,IAAUS,OAAOF,WACvBS,OAAQhB,IAAUM,OAAOC,WACzBU,mCAAoCjB,IAAUC,MAAM,CAChDiB,aAAclB,IAAUM,OAAOC,eAGvCY,cAAenB,IAAUC,MAAM,CAC3Ba,OAAQd,IAAUM,OAClBS,KAAMf,IAAUS,OAAOF,WACvBS,OAAQhB,IAAUM,OAAOC,WACzBU,mCAAoCjB,IAAUC,MAAM,CAChDiB,aAAclB,IAAUM,OAAOC,eAGvCa,MAAOpB,IAAUC,MAAM,CACnBc,KAAMf,IAAUS,OAAOF,WACvBc,UAAWrB,IAAUS,SAEzBa,aAActB,IAAUM,SACzBC,WACIP,IAAUC,MAAM,CACnBoB,UAAWrB,IAAUS,OACrBM,KAAMf,IAAUS,OAAOF,aAELP,IAAUG,KAAKI,WACxBP,IAAUuB,KAAKhB,WACbP,IAAUuB,KACZvB,IAAUM,OACJN,IAAUG,KAQnBH,IAAUwB,OAAOjB,WAIrBP,IAAUyB,IAAIlB,WAIVP,IAAU0B,UAAU,CAAC1B,IAAUS,OAAQT,IAAUM,SAC9CN,IAAUS,OAChBT,IAAUyB,IAUXzB,IAAUyB,IAAIlB,WACdP,IAAU0B,UAAU,CAAC1B,IAAUS,OAAQT,IAAUM,SAClDN,IAAUS,OACRT,IAAUwB,OACNxB,IAAUyB,IASfzB,IAAUG,KACPH,IAAUuB,KAAKhB,WACdP,IAAUuB,KAAKhB,WACRP,IAAU2B,MACnB3B,IAAUuB,KAAKhB,WASjBP,IAAUG,KACPH,IAAUuB,KAAKhB,WACjBP,IAAUS,OAAOF,WACdP,IAAU0B,UAAU,CAAC1B,IAAU4B,QAAQ5B,IAAU6B,MAAO7B,IAAU6B,OAAOtB,WAC9DP,IAAUG,KAGY,CAC3C2B,KAAM9B,IAAUG,KAChB4B,QAAS/B,IAAUuB,KAAKhB,WACxByB,MAAOhC,IAAUS,OAAOF,WACxB0B,SAAUjC,IAAU0B,UAAU,CAAC1B,IAAU4B,QAAQ5B,IAAU6B,MAAO7B,IAAU6B,OAAOtB,WACnF2B,oBAAqBlC,IAAUG,OA4BtBgC,GAxBAnC,IAAUuB,KAAKhB,WACdP,IAAU0B,UAAU,CAAC1B,IAAU4B,QAAQ5B,IAAU6B,MAAO7B,IAAU6B,OAAOtB,WAI7EP,IAAUG,KACPH,IAAUuB,KAAKhB,WACjBP,IAAUS,OAAOF,WACdP,IAAU0B,UAAU,CAAC1B,IAAU4B,QAAQ5B,IAAU6B,MAAO7B,IAAU6B,OAAOtB,WAI7EP,IAAUG,KACPH,IAAUuB,KAAKhB,WACdP,IAAUuB,KAAKhB,WAInBP,IAAUG,KACPH,IAAUuB,KAAKhB,WACXP,IAAUuB,KAAKhB,WACvBP,IAAUS,OAAOF,WAGW,CACjCuB,MAAM,IAwTGM,GApTHpC,IAAUG,KACPH,IAAUuB,KAAKhB,WACjBP,IAAUS,OACHT,IAAUS,OACfT,IAAUS,OACNT,IAAUS,OAYjBT,IAAUG,KACPH,IAAUuB,KAAKhB,WACjBP,IAAUS,OACHT,IAAUS,OACfT,IAAUS,OACNT,IAAUS,OAYZT,IAAUG,KAAKI,WACXP,IAAUuB,KAAKhB,WACrBP,IAAUC,MAAM,CACrBoC,iBAAkBrC,IAAUG,KAAKI,WACjC+B,YAAatC,IAAUS,OAAOF,WAC9BM,cAAeb,IAAUC,MAAM,CAC3Bc,KAAMf,IAAUS,OAAOF,WACvBgC,SAAUvC,IAAUG,KAAKI,WACzBO,OAAQd,IAAUM,OAAOC,aAC1BA,WACHY,cAAenB,IAAUC,MAAM,CAC3Bc,KAAMf,IAAUS,OAAOF,WACvBgC,SAAUvC,IAAUG,KAAKI,WACzBO,OAAQd,IAAUM,OAAOC,aAC1BA,WACHC,UAAWR,IAAUS,OAAOF,WAC5BiC,UAAWxC,IAAUM,OAAOC,WAC5BkC,cAAezC,IAAUM,OAAOC,aACjCA,WACKP,IAAUC,MAAM,CACpByC,UAAW1C,IAAUM,OAAOC,WAC5BoC,UAAW3C,IAAUM,OAAOC,aAC7BA,WACSP,IAAUG,KACPH,IAAUM,OAAOC,WAQzBP,IAAUS,OAAOF,WACNP,IAAUuB,KAAKhB,WAYnBP,IAAU4B,QAAQ5B,IAAUC,MAAM,CAC5CrB,GAAIoB,IAAUM,OAAOC,WACrBQ,KAAMf,IAAUS,OAAOF,WACvBqC,SAAU5C,IAAU4B,QAAQ5B,IAAUC,MAAM,CACxC4C,UAAW7C,IAAUS,OAAOF,WAC5BuC,SAAU9C,IAAUS,OAAOF,cAC3BA,WACJwC,oBAAqB/C,IAAUS,OAAOF,WACtCyC,kBAAmBhD,IAAUS,OAAOF,WACpC0C,KAAMjD,IAAUM,OAAOC,WACvB2C,OAAQlD,IAAUM,OAAOC,cAEnBP,IAAUM,OACTN,IAAUG,KAAKI,WACVP,IAAUM,OAAOC,WACtBP,IAAUS,OAAOF,WACXP,IAAU4B,QAAQ5B,IAAUS,QAAQF,WACrCP,IAAUuB,KAAKhB,WACjBP,IAAUuB,KAAKhB,WAQrBP,IAAUG,KACTH,IAAUuB,KACNvB,IAAUuB,KACZvB,IAAUM,OACNN,IAAUM,OAIfN,IAAUC,MAAM,CACtBkD,WAAYnD,IAAUC,MAAM,CACxBmD,OAAQpD,IAAUM,OAClB+C,OAAQrD,IAAUM,OAClBgD,aAActD,IAAUM,OACxBiD,kBAAmBvD,IAAUwB,OAC7BgC,YAAaxD,IAAUM,SAE3BmD,kBAAmBzD,IAAUC,MAAM,CAC/BW,iBAAkBZ,IAAUS,SAEhCiD,eAAgB1D,IAAUC,MAAM,CAC5B0D,WAAY3D,IAAUS,WAGZT,IAAUC,MAAM,CAC9B2D,gBAAiB5D,IAAUM,OAC3BuD,MAAO7D,IAAUM,SAERN,IAAUuB,KACTvB,IAAUuB,KACCvB,IAAUG,KAIzBH,IAAU4B,QAAQ5B,IAAUC,MAAM,CACxCrB,GAAIoB,IAAUM,OAAOC,WACrBuD,YAAa9D,IAAUS,UAEPT,IAAUG,KACfH,IAAUG,KACXH,IAAUuB,KAAKhB,WACZP,IAAUuB,KAAKhB,WACpBP,IAAUG,KACTH,IAAUM,OAIbN,IAAU4B,QAAQ5B,IAAUC,MAAM,CACxCrB,GAAIoB,IAAUS,OACdqD,YAAa9D,IAAUS,OAAOF,cAEdP,IAAUG,KACfH,IAAUG,KACXH,IAAUuB,KAAKhB,WACZP,IAAUuB,KAAKhB,WACpBP,IAAUG,KAIdH,IAAUG,KACAH,IAAUG,KACZH,IAAUG,KACjBH,IAAUuB,KACZvB,IAAU2B,MACP3B,IAAUM,OACFN,IAAUM,OACfN,IAAUM,OACZN,IAAUM,OACRN,IAAU2B,MACb3B,IAAU2B,MACE3B,IAAUM,OACZN,IAAU2B,MACV3B,IAAUuB,KACbvB,IAAUuB,KACbvB,IAAUuB,KACVvB,IAAUuB,KACVvB,IAAUuB,KACAvB,IAAUuB,KACtBvB,IAAUuB,KACNvB,IAAUM,OACfN,IAAUS,OAIPT,IAAU2B,MACP3B,IAAUuB,KACVvB,IAAUuB,KACRvB,IAAUG,KAIxBH,IAAUS,OAAOF,WACTP,IAAUS,OAAOF,WACjBP,IAAUuB,KAAKhB,WACPP,IAAUG,KAIvBH,IAAUG,KAAKI,WACdP,IAAUuB,KAAKhB,WAChBP,IAAUM,OACLN,IAAUuB,KAAKhB,WAInBP,IAAUC,MAAM,CACrB6D,YAAa9D,IAAUS,OAAOF,WAC9BlB,SAAUW,IAAUM,OAAOC,WAC3BwD,SAAU/D,IAAUM,OACpB0D,aAAchE,IAAUS,OACxBC,SAAUV,IAAUC,MAAM,CACtBgE,QAASjE,IAAUS,WAExBF,WACYP,IAAUuB,KAAKhB,WAGnBP,IAAUM,OACbN,IAAUG,KACTH,IAAUuB,KAAKhB,WACfP,IAAUS,OACNT,IAAUuB,KACXvB,IAAUM,OACEN,IAAUuB,KACzBvB,IAAUwB,OAIXxB,IAAU2B,MACZ3B,IAAUG,KAAKI,WACZP,IAAUuB,KAAKhB,WACjBP,IAAUS,OACGT,IAAUS,OACRT,IAAUS,OAAOF,WACzBP,IAAUS,OACXT,IAAUS,OACbT,IAAUuB,KACPvB,IAAUS,OACbT,IAAUG,KACGH,IAAUG,KAIjBH,IAAUwB,OACbxB,IAAUuB,KAAKhB,WACNP,IAAUG,KAAKI,WAI9BP,IAAUC,MAAM,CACnBrB,GAAIoB,IAAUM,OAAOC,WACrBQ,KAAMf,IAAUS,OAAOF,WACvB2D,QAASlE,IAAU4B,QACf5B,IAAUC,MAAM,CACZI,YAAaL,IAAUM,OAAOC,WAC9BC,UAAWR,IAAUS,OAAOF,gBAGrCA,WACUP,IAAUuB,KAAKhB,WACbP,IAAUuB,KAAKhB,WACRP,IAAUG,KAAKI,WACtBP,IAAUuB,KAAKhB,WACdP,IAAUuB,KAAKhB,WACxBP,IAAU2B,MACL3B,IAAUG,KAAKI,WAIfP,IAAUuB,KAAKhB,WACXP,IAAUuB,KAAKhB,WACXP,IAAUuB,KAAKhB,WACjBP,IAAUuB,KAAKhB,WACtBP,IAAUuB,KAAKhB,WACLP,IAAUuB,KAAKhB,WAClBP,IAAUuB,KAAKhB,WACfP,IAAUuB,KAAKhB,WACPP,IAAUG,KAAKI,WACxBP,IAAUG,KAAKI,WACbP,IAAUG,KAAKI,WACfP,IAAUG,KAAKI,WACbP,IAAUG,KAAKI,WACZP,IAAUM,OAC3BN,IAAU2B,MAAMpB,WACRP,IAAUM,OACRN,IAAUG,KAAKI,WAI1BP,IAAUC,MAAM,CAClBxB,KAAMuB,IAAUC,MAAM,CAClBkE,cAAenE,IAAUC,MAAM,CAC3BmE,oBAAqBpE,IAAUwB,aAGxCjB,WACWP,IAAUC,MAAM,CAC1BoE,UAAWrE,IAAUC,MAAM,CACvBqE,UAAWtE,IAAUuB,SAE1BhB,WACaP,IAAUuB,KAAKhB,WAKZP,IAAU2B,MAAMpB,WAChBP,IAAUuB,KAAKhB,WACbP,IAAUG,KAAKI,WACzBP,IAAUG,KAAKI,WACRP,IAAUS,OAEd,CACV8D,aAAc,KAsFTC,GAjFMxE,IAAU2B,MAAMpB,WACpBP,IAAUG,KAAKI,WACZP,IAAUuB,KAAKhB,WACbP,IAAUS,OAAOF,WACtBP,IAAUS,OAAOF,WAInBP,IAAUC,MAAM,CACrBrB,GAAIoB,IAAUM,OAAOC,WACrBQ,KAAMf,IAAUS,OAAOF,WACvB4C,WAAYnD,IAAUS,OAAOF,WAC7BG,SAAUV,IAAUS,OAAOF,WAC3BkE,IAAKzE,IAAUS,OAAOF,WACtBmE,OAAQ1E,IAAUS,OAAOF,WACzBoE,OAAQ3E,IAAUS,OAAOF,WACzBqE,UAAW5E,IAAUS,OAAOF,WAC5BsE,IAAK7E,IAAUS,OAAOF,aAEjBP,IAAUS,OAAOF,WAIjBP,IAAUC,MAAM,CACrBrB,GAAIoB,IAAUM,OAAOC,WACrBQ,KAAMf,IAAUS,OAAOF,WACvBuE,gBAAiB9E,IAAUM,OAAOC,WAClC+B,YAAatC,IAAUS,OAAOF,WAC9BwE,aAAc/E,IAAU4B,QAAQ5B,IAAUS,QAC1CuE,aAAchF,IAAUS,OAAOF,WAC/B0E,OAAQjF,IAAUS,OAAOF,WACzB2E,KAAMlF,IAAUM,OAAOC,WACvB4E,eAAgBnF,IAAUC,MAAM,CAC5BmF,cAAepF,IAAUM,OACzB+E,mBAAoBrF,IAAUG,KAC9BmF,cAAetF,IAAUM,OACzBiF,mBAAoBvF,IAAUG,SAEnCI,WACMP,IAAUS,OAAOF,WACVP,IAAUuB,KAAKhB,WACxBP,IAAU4B,QAAQ5B,IAAUwB,QAAQjB,WAC1BP,IAAU4B,QAAQ5B,IAAUM,QAAQC,WAC9CP,IAAUwB,OAAOjB,WACPP,IAAUG,KAAKI,WAIvBP,IAAUC,MAAM,CACrBrB,GAAIoB,IAAUM,OAAOC,WACrBQ,KAAMf,IAAUS,OAAOF,WACvBkD,kBAAmBzD,IAAUC,MAAM,CAC/BW,iBAAkBZ,IAAUS,SAEhCqE,gBAAiB9E,IAAUM,OAAOC,WAClCqC,SAAU5C,IAAU4B,QAAQ5B,IAAUwB,QACtCgE,YAAaxF,IAAUS,OACvB0E,eAAgBnF,IAAUC,MAAM,CAC5BmF,cAAepF,IAAUM,OACzB+E,mBAAoBrF,IAAUG,KAC9BmF,cAAetF,IAAUM,OACzBiF,mBAAoBvF,IAAUG,SAEnCI,WACMP,IAAUS,OAAOF,WACTP,IAAUuB,KAAKhB,WACfP,IAAUuB,KAAKhB,WACzBP,IAAUwB,OAAOjB,WACLP,IAAUG,KAAKI,WAIxBP,IAAU6B,KAAKtB,WAIVP,IAAUuB,KAAKhB,WACbP,IAAUG,KAAKI,WACpBP,IAAUS,OAAOF,WAKXP,IAAUC,MAAM,CAC1BwF,IAAKzF,IAAUM,OACfoF,IAAK1F,IAAUM,SAELN,IAAUS,OAAOF,WACpBP,IAAUM,OAAOC,WACZP,IAAUM,OAAOC,WAEvB,CACVoF,aAAc,CACVF,IAAK,KACLC,IAAK,QAmFXE,GA7EK5F,IAAUS,OAAOF,WACVP,IAAUG,KAAKI,WACtBP,IAAUyB,IAQLzB,IAAUG,KAAKI,WACRP,IAAUC,MAAM,CAC/BoD,OAAQrD,IAAUM,OAClB8C,OAAQpD,IAAUM,SAKPN,IAAUS,OAAOF,WACrBP,IAAUS,OACFT,IAAUG,KAIpBH,IAAUwB,OACbxB,IAAUS,OAAOF,WACdP,IAAU4B,QAAQ5B,IAAUC,MAAM,CACvCrB,GAAIoB,IAAU0B,UAAU,CAAC1B,IAAUS,OAAQT,IAAUM,SAASC,WAC9DsF,YAAa7F,IAAUS,OAAOF,cAC9BA,WACAP,IAAUwB,OAIAxB,IAAU4B,QAAQ5B,IAAUwB,QAC9BxB,IAAUG,KACTH,IAAUuB,KACRvB,IAAUuB,KACHvB,IAAUG,KAClBH,IAAUwB,OACHxB,IAAUG,KACrBH,IAAUS,OACJT,IAAUwB,OACFxB,IAAUM,OACHN,IAAUG,KAC9BH,IAAUM,OACNN,IAAUuB,KACbvB,IAAUM,OACEN,IAAUuB,KAC3BvB,IAAU4B,QAAQ5B,IAAUwB,QAC1BxB,IAAUwB,OAIVxB,IAAUC,MAAM,CACrB6F,aAAc9F,IAAUS,OACxBkD,WAAY3D,IAAUS,OACtB7B,GAAIoB,IAAUM,OACdmC,cAAezC,IAAUM,OACzByF,eAAgB/F,IAAUM,OAC1BkD,YAAaxD,IAAUM,SAETN,IAAUG,KACZH,IAAUuB,KACnBvB,IAAU2B,MACF3B,IAAUM,OACRN,IAAUG,KAInBH,IAAUM,OAAOC,WACXP,IAAUG,KAAKI,WACpBP,IAAUC,MAAM,CACrBrB,GAAIoB,IAAUM,SAIU,CAC5B0F,aAAchG,IAAUM,OACxBuF,YAAa7F,IAAUS,OACvBwF,kBAAmBjG,IAAUM,OAC7B4F,sBAAuBlG,IAAUM,OACjC6F,2BAA4BnG,IAAUM,OACtC8F,yBAA0BpG,IAAUM,OACpC+F,WAAYrG,IAAUM,OACtBqD,WAAY3D,IAAUS,OACtBsF,eAAgB/F,IAAUM,OAC1BS,KAAMf,IAAUS,OAChB6F,gBAAiBtG,IAAUM,OAC3BiG,4BAA6BvG,IAAUM,OACvCkG,oBAAqBxG,IAAUM,OAC/BmG,eAAgBzG,IAAUS,OAC1BgC,cAAezC,IAAUM,OACzBoG,uBAAwB1G,IAAUM,OAClCqG,kBAAmB3G,IAAUM,OAC7BsG,sBAAuB5G,IAAUM,OACjCuG,2BAA4B7G,IAAUM,OACtCwG,yBAA0B9G,IAAUM,OACpCwF,aAAc9F,IAAUS,OACxBsG,2BAA4B/G,IAAUS,OACtCuG,6BAA8BhH,IAAUS,OACxCwG,uBAAwBjH,IAAUM,OAClC4G,SAAUlH,IAAUM,OACpBI,SAAUV,IAAUS,OACpB0G,yBAA0BnH,IAAUM,SA+I3B8G,GA3IOpH,IAAUC,MAAV,eACT2F,IAEW5F,IAAUG,KACrBH,IAAUS,OACTT,IAAUG,KACTH,IAAUuB,KAAKhB,WACXP,IAAUuB,KAAKhB,WAIZP,IAAUC,MAAV,eACT2F,IAKK5F,IAAUM,OAAOC,WACbP,IAAUM,OAAOC,WACZP,IAAUM,OAAOC,WACnBP,IAAUM,OAAOC,WACzBP,IAAUG,KAAKI,WACbP,IAAUM,OAAOC,WAIzBP,IAAUS,OAAOF,WACZP,IAAUS,OAAOF,WACrBP,IAAUM,OACRN,IAAUM,OACPN,IAAUM,OAAOC,WACfP,IAAUS,OAAOF,WACfP,IAAUG,KACZH,IAAUuB,KAAKhB,WACdP,IAAUG,KACRH,IAAUC,MAAM,CAC5BmF,cAAepF,IAAUM,OACzBgF,cAAetF,IAAUM,OACzB+E,mBAAoBrF,IAAUG,KAC9BoF,mBAAoBvF,IAAUG,OAKvBH,IAAU4B,QACjB5B,IAAUC,MAAM,CACZrB,GAAIoB,IAAUS,OAAOF,WACrB8G,MAAOrH,IAAUS,UAEvBF,WACSP,IAAU4B,QAAQ5B,IAAUwB,QAAQjB,WACpCP,IAAUG,KACbH,IAAUS,OAAOF,WACXP,IAAUsH,YAAY/G,WACjBP,IAAUG,KAIlBH,IAAU4B,QACjB5B,IAAUC,MAAM,CACZrB,GAAIoB,IAAUS,OAAOF,WACrB8G,MAAOrH,IAAUS,UAEvBF,WACSP,IAAU4B,QAAQ5B,IAAUwB,QAAQjB,WACpCP,IAAUG,KACbH,IAAUS,OAAOF,WACXP,IAAUsH,YAAY/G,WAC7BP,IAAUS,OACET,IAAUG,KAIhBH,IAAU4B,QACnB5B,IAAUC,MAAM,CACZZ,SAAUW,IAAU0B,UAAU,CAAC1B,IAAUS,OAAQT,IAAUM,SAC3D1B,GAAIoB,IAAUS,OACdkE,OAAQ3E,IAAUS,OAClBsD,SAAU/D,IAAUM,OACpBQ,OAAQd,IAAUM,OAClBuC,UAAW7C,IAAUS,OACrBqC,SAAU9C,IAAUS,OACpBwC,KAAMjD,IAAUM,OAChB4C,OAAQlD,IAAUM,OAClBI,SAAUV,IAAU0B,UAAU,CAC1B1B,IAAUC,MAAM,CACZU,UAAWX,IAAUS,OACrBG,iBAAkBZ,IAAUS,WAGpC8G,gBAAiBvH,IAAUG,KAC3BqH,mBAAoBxH,IAAUG,KAC9BsH,aAAczH,IAAUG,KACxBuH,cAAe1H,IAAUG,QAGtBH,IAAUG,KACHH,IAAUuB,KACdvB,IAAUuB,KACVvB,IAAUuB,KACFvB,IAAUuB,KACpBvB,IAAUG,KACLH,IAAUG,KAclBH,IAAUC,MAAM,CACrB0H,WAAY3H,IAAUM,OACtBqE,OAAQ3E,IAAUS,OAClB7B,GAAIoB,IAAUS,OACdmH,kBAAmB5H,IAAUG,KAC7B0H,kBAAmB7H,IAAUG,KAC7BO,SAAUV,IAAUC,MAAM,CACtBU,UAAWX,IAAUS,OACrBG,iBAAkBZ,IAAUS,SAEhCqH,SAAU9H,IAAUM,OACpBkD,YAAaxD,IAAUS,OACvB8C,kBAAmBvD,IAAUC,MAAM,CAC/B8H,YAAa/H,IAAUM,OACvB0H,YAAahI,IAAUM,OACvB2H,mBAAoBjI,IAAUM,OAC9B4H,mBAAoBlI,IAAUM,WAGjBN,IAAUuB,KACVvB,IAAUG,KAGiB,CAChDgI,kBAAmB,KACnBC,WAAW,EACXC,oBAAqB,KACrBC,cAAetI,IAAUM,OACzBS,KAAMf,IAAUS,OAChBuD,aAAchE,IAAUS,OACxBsD,SAAU/D,IAAUS,OACpBwE,OAAQjF,IAAUS,OAClB8H,WAAYvI,IAAUM,OACtBQ,OAAQd,IAAUM,OAClBiH,gBAAiBvH,IAAUG,KAC3BqH,mBAAoBxH,IAAUG,KAC9BsH,aAAczH,IAAUG,KACxBuH,cAAe1H,IAAUG,KACzBqI,YAAaxI,IAAUC,MAAM,CACzByE,OAAQ1E,IAAUM,OAClBmI,oBAAqBzI,IAAUG,KAC/BuI,YAAa1I,IAAUS,SAE3BkI,YAAa3I,IAAUC,MAAM,CACzByE,OAAQ1E,IAAUM,OAClBmI,oBAAqBzI,IAAUG,KAC/BuI,YAAa1I,IAAUS,SAE3BmI,QAAS5I,IAAUS,OAAOF,a,GAIbP,IAAU4B,QACnB5B,IAAUC,MAAM,CACZrB,GAAIoB,IAAUS,OACdsD,SAAU/D,IAAUM,OAAOC,WAC3BO,OAAQd,IAAUM,OAClBS,KAAMf,IAAUS,OAChBkH,WAAY3H,IAAUM,OACtBsH,kBAAmB5H,IAAUG,KAC7BoI,WAAYvI,IAAUM,OACtBuH,kBAAmB7H,IAAUG,KAC7BoH,gBAAiBvH,IAAUG,KAAKI,WAChCiH,mBAAoBxH,IAAUG,KAAKI,WACnCkH,aAAczH,IAAUG,KAAKI,WAC7BmH,cAAe1H,IAAUG,KAAKI,WAC9ByD,aAAchE,IAAUS,OACxB+H,YAAaxI,IAAUC,MAAM,CACzByE,OAAQ1E,IAAUM,OAAOC,WACzBkI,oBAAqBzI,IAAUG,KAAKI,WACpCmI,YAAa1I,IAAUS,OAAOF,aAElCoI,YAAa3I,IAAUC,MAAM,CACzByE,OAAQ1E,IAAUM,OAAOC,WACzBkI,oBAAqBzI,IAAUG,KAAKI,WACpCmI,YAAa1I,IAAUS,OAAOF,aAElCsI,cAAe7I,IAAUS,OACzBqI,cAAe9I,IAAUS,UAGtBT,IAAUG,KACHH,IAAUuB,KACdvB,IAAUuB,KACVvB,IAAUuB,KACFvB,IAAUuB,KACpBvB,IAAUG,KACDH,IAAUG,KACdH,IAAUG,KAIlBH,IAAUC,MAAM,CACrB0H,WAAY3H,IAAUM,OAAOC,WAC7B3B,GAAIoB,IAAUS,OAAOF,WACrBqH,kBAAmB5H,IAAUG,KAAKI,WAClCsH,kBAAmB7H,IAAUG,KAAKI,WAClCQ,KAAMf,IAAUS,OAAOF,WACvByD,aAAchE,IAAUS,OAAOF,WAC/BwD,SAAU/D,IAAUS,OAAOF,WAC3BgI,WAAYvI,IAAUM,OAAOC,WAC7BO,OAAQd,IAAUM,OAAOC,WACzBgH,gBAAiBvH,IAAUG,KAAKI,WAChCiH,mBAAoBxH,IAAUG,KAAKI,WACnCkH,aAAczH,IAAUG,KAAKI,WAC7BmH,cAAe1H,IAAUG,KAAKI,WAC9BiI,YAAaxI,IAAUC,MAAM,CACzByE,OAAQ1E,IAAUM,OAAOC,WACzBkI,oBAAqBzI,IAAUG,KAAKI,WACpCmI,YAAa1I,IAAUS,OAAOF,aAC/BA,WACHoI,YAAa3I,IAAUC,MAAM,CACzByE,OAAQ1E,IAAUM,OAAOC,WACzBkI,oBAAqBzI,IAAUG,KAAKI,WACpCmI,YAAa1I,IAAUS,OAAOF,aAC/BA,WACHsI,cAAe7I,IAAUS,OAAOF,WAChCuI,cAAe9I,IAAUS,OAAOF,aACjCA,WACMP,IAAUS,OAAOF,WAIZP,IAAUS,OAAOF,WACLP,IAAUuB,KAAKhB,WACpBP,IAAUC,MAAM,CACjC8I,kBAAmB/I,IAAUM,OAC7B0I,UAAWhJ,IAAUM,OACrB2I,WAAYjJ,IAAUS,OACtByI,SAAUlJ,IAAUS,OACpB0I,YAAanJ,IAAUM,OACvB8I,WAAYpJ,IAAUM,OACtB+I,YAAarJ,IAAUM,OACvBgJ,YAAatJ,IAAUM,OACvBiJ,QAASvJ,IAAUM,SACpBC,WAIGP,IAAUG,KACNH,IAAU0B,UAAU,CAC1B1B,IAAU4B,QAAQ5B,IAAU6B,MAC5B7B,IAAU6B,OACXtB,WAIIP,IAAU4B,QACb5B,IAAUC,MAAM,CACZc,KAAMf,IAAUS,OAAOF,WACvB3B,GAAIoB,IAAUM,OAAOC,cAGdP,IAAUM,OAAOC,WACjBP,IAAUM,OAAOC,WACrBP,IAAUG,KAAKI,WACZP,IAAUuB,KAAKhB,WACVP,IAAUG,KAAKI,WACjBP,IAAUG,KAAKI,WAChBP,IAAUuB,KAAKhB,WAIfP,IAAUC,MAAM,CAC5B+F,aAAchG,IAAUM,OACxBqD,WAAY3D,IAAUS,OACtBqF,aAAc9F,IAAUS,OACxB6F,gBAAiBtG,IAAUM,OAC3B0G,6BAA8BhH,IAAUS,OACxCsG,2BAA4B/G,IAAUS,OACtC8F,4BAA6BvG,IAAUM,OACvCoG,uBAAwB1G,IAAUM,OAClCkJ,mBAAoBxJ,IAAUS,OAC9BgC,cAAezC,IAAUS,OACzBoF,YAAa7F,IAAUS,OACvB4F,WAAYrG,IAAUS,OACtBC,SAAUV,IAAUC,MAAM,CACtBU,UAAWX,IAAUS,WAGjBT,IAAUG,KAAKI,WACTP,IAAUG,KACVH,IAAUuB,KAUtBvB,IAAUS,OAAOF,WACfP,IAAUS,OAAOF,WACXP,IAAUS,OAAOF,WAClBP,IAAUC,MAAM,CACzBkD,WAAYnD,IAAUC,MAAM,CACxBmD,OAAQpD,IAAUM,OAAOC,WACzB8C,OAAQrD,IAAUM,OAAOC,WACzB+C,aAActD,IAAUM,OAAOC,WAC/BG,SAAUV,IAAUC,MAAM,CACtBU,UAAWX,IAAUS,SAEzB8C,kBAAmBvD,IAAUwB,OAC7BgC,YAAaxD,IAAUM,OAAOC,aAElCkJ,eAAgBzJ,IAAUC,MAAM,CAC5ByJ,eAAgB1J,IAAUC,MAAM,CAC5B0J,2BAA4B3J,IAAUM,OAAOC,aAEjDqJ,mBAAoB5J,IAAUG,KAAKI,aAEvCsJ,YAAa7J,IAAU2B,MAAMpB,WAC7BuJ,QAAS9J,IAAUC,MAAM,CACrB0D,WAAY3D,IAAUS,OAAOF,WAC7BwG,2BAA4B/G,IAAUS,OAAOF,WAC7CyG,6BAA8BhH,IAAUS,OAAOF,WAC/CiG,oBAAqBxG,IAAUM,OAAOC,WACtCwJ,eAAgB/J,IAAUM,WAE/BC,WACiBP,IAAUuB,KAAKhB,WACZP,IAAUuB,KAAKhB,WAIhCP,IAAUS,OACRT,IAAUS,OACJT,IAAUS,OACXT,IAAUC,MAAM,CACzBkD,WAAYnD,IAAUC,MAAM,CACxBmD,OAAQpD,IAAUM,OAAOC,WACzB8C,OAAQrD,IAAUM,OAAOC,WACzB+C,aAActD,IAAUM,OAAOC,WAC/BG,SAAUV,IAAUC,MAAM,CACtBU,UAAWX,IAAUS,SAEzB8C,kBAAmBvD,IAAUwB,OAC7BgC,YAAaxD,IAAUM,OAAOC,aAElCkJ,eAAgBzJ,IAAUC,MAAM,CAC5ByJ,eAAgB1J,IAAUC,MAAM,CAC5B0J,2BAA4B3J,IAAUM,OAAOC,aAEjDqJ,mBAAoB5J,IAAUG,KAAKI,aAEvCsJ,YAAa7J,IAAU2B,MACvBmI,QAAS9J,IAAUC,MAAM,CACrB0D,WAAY3D,IAAUS,OAAOF,WAC7BwG,2BAA4B/G,IAAUS,OAAOF,WAC7CyG,6BAA8BhH,IAAUS,OAAOF,WAC/CiG,oBAAqBxG,IAAUM,OAAOC,eAMpCP,IAAU4B,QAChB5B,IAAUC,MAAM,CACZrB,GAAIoB,IAAUM,OAAOC,WACrBsC,UAAW7C,IAAUS,OAAOF,WAC5BuC,SAAU9C,IAAUS,OAAOF,WAC3BlB,SAAUW,IAAUM,OAAOC,WAC3ByJ,MAAOhK,IAAUS,OACjB/B,MAAOsB,IAAUS,OACjBsD,SAAU/D,IAAUM,OACpB0D,aAAchE,IAAUS,UAGhBT,IAAUG,KACXH,IAAUG,KACVH,IAAUuB,KAIZvB,IAAUS,OACjBT,IAAUS,OAAOF,WACTP,IAAUS,OAAOF,WAClBP,IAAUS,OAAOF,WACjBP,IAAUwB,OAAOjB,WACdP,IAAUG,KAAKI,WACrBP,IAAU2B,MAAMpB,WACHP,IAAUuB,KAAKhB,WAClBP,IAAUuB,KAAKhB,WAItBP,IAAUwB,OAAOjB,WACfP,IAAUG,KAAKI,WACLP,IAAUG,KAAKI,WACjBP,IAAUG,KAChBH,IAAUuB,KAAKhB,WAClBP,IAAUuB,KAAKhB,WACvBP,IAAUwB,OAAOjB,WACbP,IAAU2B,MAAMpB,WACVP,IAAUG,KAAKI,WAQ1BP,IAAUS,OAAOF,WACTP,IAAUS,OACVT,IAAUuB,KAAKhB,WACPP,IAAUG,KAAKI,WACpBP,IAAUS,OAAOF,WAIrBP,IAAUG,KAAKI,WACdP,IAAUC,MAAM,CACzBuC,UAAWxC,IAAUM,OACrB2J,UAAWjK,IAAUS,OACrBgD,kBAAmBzD,IAAUC,MAAM,CAC/BU,UAAWX,IAAUS,OACrBG,iBAAkBZ,IAAUS,SAEhCyJ,gBAAiBlK,IAAUS,OAC3BgC,cAAezC,IAAUM,OACzB6J,UAAWnK,IAAUS,SAEVT,IAAUG,KACPH,IAAUG,KACbH,IAAUuB,KAWjBvB,IAAUM,OACHN,IAAUG,KACJH,IAAUuB,KAIpBvB,IAAUS,OAAOF,WACVP,IAAUuB,KACdvB,IAAUuB,KACVvB,IAAUuB,KACFvB,IAAUuB,KACpBvB,IAAUG,KACLH,IAAUG,KACfH,IAAUG,KACUH,IAAUG,KAAKI,WAIlCP,IAAUuB,KAAKhB,WACfP,IAAUuB,KAAKhB,WACbP,IAAUuB,KACnBvB,IAAUC,MAAM,CAClBc,KAAMf,IAAUS,OAAOF,WACvB6J,OAAQpK,IAAU0B,UAAU,CAAC1B,IAAUS,OAAQT,IAAUM,WAC1DC,WACcP,IAAU2B,MAAMpB,WACXP,IAAUG,KAAKI,WAChBP,IAAUG,KACnBH,IAAUG,KAAKI,WAChBP,IAAUG,KACTH,IAAUG,KAAKI,WACdP,IAAU2B,MAAMpB,WACnBP,IAAUG,KAAKI,WACMP,IAAUG,KAAKI,WAChCP,IAAUG,KAAKI,WAIXP,IAAU4B,QAAQ5B,IAAUC,MAAM,CAChDrB,GAAIoB,IAAUM,OAAOC,WACrB8J,SAAUrK,IAAUS,OAAOF,WAC3B+J,cAAetK,IAAUM,OAAOC,WAChCgK,gBAAiBvK,IAAUM,OAAOC,WAClCiK,kBAAmBxK,IAAUM,OAAOC,WACpCkK,6BAA8BzK,IAAUM,OAAOC,WAC/CO,OAAQd,IAAUM,OAAOC,WACzB2E,KAAMlF,IAAUM,OAAOC,WACvB4E,eAAgBnF,IAAUC,MAAM,CAC5BmF,cAAepF,IAAUS,OACzB4E,mBAAoBrF,IAAUG,KAC9BmF,cAAetF,IAAUS,OACzB8E,mBAAoBvF,IAAUG,UAG3BH,IAAUG,KACRH,IAAUM,OAIdN,IAAUC,MAAM,CACrBrB,GAAIoB,IAAUM,OAAOC,WACrB8J,SAAUrK,IAAUS,OAAOF,WAC3B+J,cAAetK,IAAUM,OAAOC,WAChCgK,gBAAiBvK,IAAUM,OAAOC,WAClCiK,kBAAmBxK,IAAUM,OAAOC,WACpCkK,6BAA8BzK,IAAUM,OAAOC,WAC/CO,OAAQd,IAAUS,OAAOF,WACzB2E,KAAMlF,IAAUM,OAAOC,WACvB4E,eAAgBnF,IAAUC,MAAM,CAC5BmF,cAAepF,IAAUS,OACzB4E,mBAAoBrF,IAAUG,KAC9BmF,cAAetF,IAAUS,OACzB8E,mBAAoBvF,IAAUG,OAC/BI,aACJA,WACMP,IAAUS,OAAOF,WAIbP,IAAUM,OAAOC,WACfP,IAAU2B,MAAMpB,WAIvBP,IAAUG,KAAKI,WACEP,IAAUG,KAC1BH,IAAUuB,KAAKhB,WACGP,IAAUuB,KAAKhB,WACpBP,IAAUuB,KACjBvB,IAAUG,KACfH,IAAUC,MAAM,CACtByK,mBAAoB1K,IAAUG,KAAKI,WACnCO,OAAQd,IAAUM,OAAOC,WACzB8J,SAAUrK,IAAUS,OAAOF,WAC3BmD,eAAgB1D,IAAUC,MAAM,CAC5BrB,GAAIoB,IAAUM,OAAOC,aACtBA,aAEWP,IAAUwB,OACrBxB,IAAU4B,QAAQ5B,IAAUwB,QAalBxB,IAAUuB,KAAKhB,WACdP,IAAUuB,KAAKhB,WAC1BP,IAAU4B,QAAQ5B,IAAUC,MAAM,CACrC2C,SAAU5C,IAAU4B,QAAQ5B,IAAUC,MAAM,CACxC4C,UAAW7C,IAAUS,OAAOF,WAC5BuC,SAAU9C,IAAUS,OAAOF,cAC3BA,WACJmK,mBAAoB1K,IAAUG,KAAKI,WACnC3B,GAAIoB,IAAUM,OAAOC,WACrBQ,KAAMf,IAAUS,OAAOF,cACvBA,WACuBP,IAAUG,KAAKI,WAI1BP,IAAUuB,KAAKhB,WACrBP,IAAU4B,QAAQ5B,IAAUC,MAAM,CACxCrB,GAAIoB,IAAUM,OAAOC,WACrBsC,UAAW7C,IAAUS,OAAOF,WAC5BuC,SAAU9C,IAAUS,OAAOF,cAC3BA,WACeP,IAAUG,KAAKI,WACvBP,IAAUG,KAAKI,WAILP,IAAUuB,KAAKhB,WACnBP,IAAUS,OAChBT,IAAUG,KAAKI,WAQRP,IAAUC,MAAM,CAC9B2D,gBAAiB5D,IAAUM,OAAOC,WAClCoK,UAAW3K,IAAUM,OAAOC,WAC5BqK,WAAY5K,IAAUM,OAAOC,WAC7BsD,MAAO7D,IAAUM,OAAOC,WACxBsK,eAAgB7K,IAAUS,OAAOF,aAClCA,WACoBP,IAAUuB,KAAKhB,WACxBP,IAAUS,OAAOF,WACpBP,IAAUM,OAAOC,W,MC1vC1BuK,EAAiBC,IAAMC,gBAMtB,SAASC,EAAT,GAA+C,IAAbhJ,EAAY,EAAZA,SAC/BiJ,EAA+BC,kBAAQrL,GAAoCsL,MAC3EC,EAAgCF,kBAAQrL,GAAqCsL,MACnF,EAA0BE,mBAAS,IAAnC,mBAAOC,EAAP,KAAcC,EAAd,KAEAC,qBAAU,WACND,EAAS,CACL1L,aAAc,CACV4L,oBAAqBR,EACrBS,qBAAsBN,OAG/B,IAEH,IAAMO,EAAgBC,mBAAQ,iBAAO,CACjCC,QAASP,KACT,CAACA,IAML,OACI,cAACT,EAAeiB,SAAhB,CAAyBX,MAAOQ,EAAhC,SACK3J,I,0GCnBE+J,EAjBK,G,kBCMhBC,EACAC,QAAQC,IAAI,YAAaF,GAEzBC,QAAQC,IAAI,6BAGhB,IACM1M,EAAW,UAAMH,EAAYI,QAAlB,YADDF,SAEVG,EAAa,iBACbC,EAAqBN,EAAYI,QAGjC0M,EAAa,gBACbC,EAAgB,gBAChBC,EAAgB,cAQhBC,EAAQ,CACVC,QAAQ,mBAAD,OAAqBJ,EAArB,wBACPK,YAAY,mBAAD,OAAqBL,EAArB,oBACXM,YAAa,8DACbC,cAAe,6MACfC,qBAAqB,mBAAD,OAAqBR,EAArB,sEAIlBS,EAAY,2BAEZC,GAAqBtN,6cAAYuN,uBAAyB,wBAC1DC,QAAexN,EAMfyN,GAAyB,kBAKzBC,GAAgB,qDAEhBC,GAAgB,aAClBC,QAAS,yBACTC,iBAAkB,wBAClBC,eAAgB,wBAChBC,aAToB,uCAUpBC,QAAQ,oBAAD,OAAsBpB,GAC7BqB,eAAe,6BAAD,OAA+BrB,GAC7CsB,cAAc,4BAAD,OAA8BtB,GAC3CuB,YAAavB,EACbwB,WAAYvB,EACZwB,eAAgBvB,EAChBwB,QAzCiB,uBA0CjBC,OAAQlB,EACRN,QACAyB,WAAY,6BACZC,eAAgB,sCAChBC,UA/BiB,6CAgCjBpB,sBACAqB,UAAU,EACVnB,gBACAoB,WA/CwB,IAgDxBC,QAASpB,GACTqB,OAAO,kBAAD,OAAoBlC,GAC1BmC,aAAa,EACbC,WAAYtB,IACRjB,GAAa,IAGfwC,GAA+B,SAACC,EAAQC,GAC1C,MAAM,2MAAN,OAE8JD,EAF9J,g14BAIwEC,EAJxE,kEAI+IA,EAJ/I,4IAK2HA,EAL3H,kCAUEC,GAAqB,SAACC,EAAiBF,GACzC,IAAML,EAAM,kBAAcO,EAAd,gBAAqCzC,GAC3C0C,EAAY,kBAAcD,EAAd,uBAA4CzC,GACxDsC,EAASlP,6cAAYuP,SAAZ,kBAAkCF,EAAlC,gBAAyDzC,GAClE4C,EAAgBxP,6cAAYyP,gBAAZ,kBAAyCJ,EAAzC,wBAAwEzC,GACxF8C,EAAY,mCAA+B9C,GAC3C+C,EAA0C,MAAjBR,EAAwBF,GAA6BC,EAAQC,GAAiB,GAE7G,MAAO,CACHhB,YAAanO,6cAAYmO,aAAevB,EACxCwB,WAAYpO,6cAAYoO,YAAcvB,EACtCwB,eAAgBrO,6cAAYqO,gBAAkBvB,EAC9CiB,aAAc/N,uCACd4N,QAAS5N,6cAAY4P,SAAZ,kBAAkCP,EAAlC,gBAAyDzC,GAClEiD,YAAa7P,6cAAY8P,aAAZ,UAA8BT,EAA9B,gBAAqDzC,GAClEiB,iBAAkB7N,6cAAY+P,kBAAZ,kBAA2CV,EAA3C,YAA8DzC,GAChFoB,QAASkB,EACT1B,gBACAS,eAAgBuB,EAChBtB,cAAewB,EACfM,aAAchQ,6cAAYiQ,cAAZ,kBAAuCZ,EAAvC,gBAA8DzC,GAC5EsD,iBAAkBlQ,6cAAYiQ,cAAZ,UAA+BZ,EAA/B,gBAAsDzC,GACxE0B,QA5FW,6DA6FXC,OAAQlB,EACRN,QACAyB,WAAY,6BACZC,eAAgB,sCAChBC,UAAW1O,6CACXsN,sBACAwB,SACAF,WAAYuB,IAAQb,EAAcnP,EAAYF,GAC9CmQ,WAhFkB,mCAiFlBC,cAAe,mBACfxB,QAASpB,GACTkC,yBACAX,WAAYtB,KAId4C,GAAU,2BAAuB1D,GACjC2D,GAAgB,kCAA8B3D,GAC9C4D,GAAaxQ,6cAAYuP,SAAZ,sBAAsC3C,GACnD6D,GAAoBzQ,6cAAYyP,gBAAZ,8BAAqD7C,GACzE8D,GAAY,6BAAyB9D,GACrC+D,GAAqB,CACvBxC,YAAanO,6cAAYmO,aAAevB,EACxCwB,WAAYpO,6cAAYoO,YAAcvB,EACtCkB,aAAc/N,uCACdqO,eAAgBrO,6cAAYqO,gBAAkBvB,EAC9Cc,QAAS5N,6cAAY4P,SAAZ,sBAAsChD,GAC/CiB,iBAAkB7N,6cAAY+P,kBAAZ,kBAA2CnD,GAC7DqB,eAAgBwC,GAChBzC,QAASwC,GACTtC,cAAewC,GACfpC,QA1HgB,6DA2HhBd,gBACAT,QACAyB,WAAY,6BACZC,eAAgBzO,6cAAY4Q,kBAAoB,sCAChDlC,UAAW1O,6CACXsN,sBACAiB,OAAQvO,2BACR8O,OAAQwB,GACR1B,WAAYuB,IAAQI,GAAkBpQ,EAAYF,GAClDmQ,WAlHmB,mCAmHnBC,eAAe,EACfxB,QAjHwB,kBAkHxBc,uBAAwBV,GAA6BuB,GAAY,WACjExB,WA9GmB,qDAiHjB6B,GAAmBzB,GAAmB,KAAM,WAC5C0B,GAAmB1B,GAAmB,KAAM,WAC5C2B,GAAqB3B,GAAmB,OAAQ,WAChD4B,GAAsB5B,GAAmB,QAAS,WAClD6B,GAAsB7B,GAAmB,QAAS,WAClD8B,GAAsB9B,GAAmB,QAAS,WAClD+B,GAAsB/B,GAAmB,QAAS,WAClDgC,GAAsBhC,GAAmB,QAAS,WAClDiC,GAAsBjC,GAAmB,QAAS,WAClDkC,GAAsBlC,GAAmB,QAAS,WAClDmC,GAAsBnC,GAAmB,QAAS,MAClDoC,GAAuBpC,GAAmB,SAAU,MACpDqC,GAAuBrC,GAAmB,SAAU,MACpDsC,GAAatC,GAAmB,KAAM,WAExCuC,GAAShE,GASb,QANI3N,6cAAY4R,eACZ5R,SAGFJ,eAGE,IAAK,OACD+R,GAAShB,GACT,MACJ,IAAK,KACDgB,GAASd,GACT,MACJ,IAAK,KACDc,GAASb,GACT,MACJ,IAAK,OAGL,IAAK,QACDa,GAASZ,GACT,MACJ,IAAK,QACDY,GAASX,GACT,MACJ,IAAK,QACDW,GAASV,GACT,MACJ,IAAK,QACDU,GAAST,GACT,MACJ,IAAK,QACDS,GAASR,GACT,MACJ,IAAK,QACDQ,GAASP,GACT,MACJ,IAAK,QACDO,GAASN,GACT,MACJ,IAAK,QACDM,GAASL,GACT,MACJ,IAAK,QACDK,GAASJ,GACT,MACJ,IAAK,SACDI,GAASH,GACT,MACJ,IAAK,SACDG,GAASF,GACT,MACJ,IAAK,KACDE,GAASD,GACT,MACJ,QACIC,GAAShE,GAIjBgE,GAAOxR,WAAa0R,IAAgB1R,WACpCwR,GAAO1R,YAAcA,EACrB0R,GAAOvR,mBAAqBA,EAC5BuR,GAAOtR,kBApOmB,SAsOXsR,UCtPFG,GACG,EADHA,GAEI,EAGJC,GACI,EADJA,GAEQ,EAGRC,GACA,EADAA,GAEA,EAFAA,GAGH,EAGGC,GACE,EADFA,GAEsB,EAFtBA,GAIC,EAJDA,GAKA,EALAA,GAMG,EANHA,GAOE,EAPFA,GAQS,EAGTC,GAEE,EAGFC,GACM,EADNA,GAEiB,EAFjBA,GAGG,EAHHA,GAIG,EAJHA,GAKE,EAGFC,GACI,EADJA,GAEY,EAFZA,GAGQ,EAGRC,GACH,EADGA,GAED,EAGCC,GACC,EADDA,GAED,EAICC,GAGA,EASAC,GACa,EADbA,GAEc,EAFdA,GAKiB,EALjBA,GAMkB,EAKlBC,GACF,EADEA,GAED,EAGCC,GACC,EADDA,GAEK,EAFLA,GAGK,EAHLA,GAIS,EAJTA,GAKW,EAGXC,GACE,EADFA,GAEK,EAFLA,GAGH,EAGGC,GACE,CAAExT,GAAI,EAAGwM,MAAO,OADlBgH,GAEG,CAAExT,GAAI,EAAGwM,MAAO,QAGnBiH,GACc,EAIdC,GACC,EADDA,GAEA,EAGAC,GAAsB,CAC/BC,KAAM,GAGGC,GAAc,CACvB,CAAE7T,GAvDK,EAuDwBwM,MAAO,MAAO/D,MAAO,QAASxB,YAAa,SAC1E,CAAEjH,GAvDI,EAuDwBwM,MAAO,IAAK/D,MAAO,IAAKxB,YAAa,QACnE,CAAEjH,GAvDM,EAuDwBwM,MAAO,IAAK/D,MAAO,IAAKxB,YAAa,WAY5D6M,GAAe,CACxB,CAAE9T,GAAI0S,GAA+BzL,YAAa,mBAClD,CAAEjH,GAAI0S,GAAgCzL,YAAa,gBAG1C8M,GAA0B,CACnC,CAAE/T,GAAI0T,GAAkCzM,YAAa,YACrD,CAAEjH,GAAI0T,GAAiCzM,YAAa,YAG3C+M,GAAsB,CAC/B,CAAEhU,GAAI2S,GAA4B1L,YAAa,eAC/C,CAAEjH,GAAI2S,GAAgC1L,YAAa,kBAG1CgN,GAAqB,CAC9B,CAAEjU,GAAI+S,GAAwC9L,YAAa,sBAC3D,CAAEjH,GAAI+S,GAAmD9L,YAAa,gCACtE,CAAEjH,GAAI+S,GAAqC9L,YAAa,cACxD,CAAEjH,GAAI+S,GAAqC9L,YAAa,cACxD,CAAEjH,GAAI+S,GAAoC9L,YAAa,cAG9CiN,GAAyB,CAClC,CAAElU,GAAIgT,GAA0C/L,YAAa,eAC7D,CAAEjH,GAAIgT,GAAkD/L,YAAa,uBACrE,CAAEjH,GAAIgT,GAA8C/L,YAAa,eAGxDkN,GAAgB,CACzB,CAAEnU,GAAI,EAAGiH,YAAa,UACtB,CAAEjH,GAAI,EAAGiH,YAAa,UACtB,CAAEjH,GAAI,EAAGiH,YAAa,UACtB,CAAEjH,GAAI,EAAGiH,YAAa,WACtB,CAAEjH,GAAI,EAAGiH,YAAa,cAGbmN,GAAY,CACrB,CAAEpU,GAAIqT,GAAuBpM,YAAa,SAC1C,CAAEjH,GAAIqT,GAAwBpM,YAAa,WAGlCoN,GAAwB,CACjC,CAAErU,GAAIiT,GAAkBhM,YAAa,QACrC,CAAEjH,GAAIiT,GAAoBhM,YAAa,WAG9BqN,GAA0B,CACnC,CAAEtU,GAAI4S,GAA0B3L,YAAa,WAC7C,CAAEjH,GAAI4S,GAA0B3L,YAAa,WAC7C,CAAEjH,GAAI4S,GAAuB3L,YAAa,wBAGjCsN,GAAY,CACrB,CAAEvU,GAAIyT,GAAwCxM,YAAa,yBAC3D,CAAEjH,GAlFkB,EAkFuBiH,YAAa,uBAG/CuN,GAAW,CACpB,CAAExU,GAAI,EAAGiH,YAAa,UACtB,CAAEjH,GAAI,EAAGiH,YAAa,UACtB,CAAEjH,GAAI,EAAGiH,YAAa,WACtB,CAAEjH,GAAI,EAAGiH,YAAa,aACtB,CAAEjH,GAAI,EAAGiH,YAAa,YACtB,CAAEjH,GAAI,EAAGiH,YAAa,UACtB,CAAEjH,GAAI,EAAGiH,YAAa,aAGbwN,GAAsB,CAC/B,CAAEzU,GAAIkT,GAAwBjM,YAAa,YAC3C,CAAEjH,GAAIkT,GAAsBjM,YAAa,UACzC,CAAEjH,GAtJmB,EAsJoBiH,YAAa,sBAG7CyN,GAAmB,CAC5B,CAAE1U,GAAI6S,GAAuB5L,YAAa,aAC1C,CAAEjH,GAAI6S,GAA2C5L,YAAa,iCAC9D,CAAEjH,GAAI6S,GAAuB5L,YAAa,aAC1C,CAAEjH,GAAI6S,GAAsB5L,YAAa,YACzC,CAAEjH,GAAI6S,GAAqB5L,YAAa,WACxC,CAAEjH,GAAI6S,GAAwB5L,YAAa,cAC3C,CAAEjH,GAAI6S,GAA8B5L,YAAa,qBAGxC0N,GAAsB,CAC/B,CAAE3U,GAAIsT,GAA4BrM,YAAa,YAC/C,CAAEjH,GAAIsT,GAAgCrM,YAAa,gBACnD,CAAEjH,GAAIsT,GAAgCrM,YAAa,gBACnD,CAAEjH,GAAIsT,GAAsCrM,YAAa,6BACzD,CAAEjH,GAAIsT,GAAoCrM,YAAa,4BAS9C2N,GAAwB,CACjC,CAAE5U,GANQ,EAMsBiH,YAAa,YAC7C,CAAEjH,GANW,EAMsBiH,YAAa,eAChD,CAAEjH,GANI,EAMsBiH,YAAa,SAGhC4N,GACH,EADGA,GAEF,EAFEA,GAGA,GAGAC,GAA8B,CACvC,CAAE9U,GAAI6U,GAA2B5N,YAAa,uBAC9C,CAAEjH,GAAI6U,GAA4B5N,YAAa,uBAC/C,CAAEjH,GAAI6U,GAA8B5N,YAAa,yBAQxC8N,GACD,EADCA,GAEG,EAaHC,GAAe,SAAChV,EAAIiV,GAC7B,OAAOA,EAAMC,MAAK,SAACC,GAAD,OAAUA,EAAKnV,KAAOA,MAG/BoV,GACJ,EADIA,GAEF,EAFEA,GAGL,EAHKA,GAIA,EAGAC,GAA2B,CACpC,EAAG,MACH,EAAG,QACH,EAAG,MAGMC,GACF,YADEA,GAED,aAFCA,GAGJ,UAGIC,GAAwB,CACjC,EAAG,kBACH,EAAG,wBACH,EAAG,iBACH,EAAG,kBACH,EAAG,wBACH,EAAG,mBAGMC,GACe,EADfA,GAImB,EAKnBC,GAAgC,CACzC,CAAEzV,GAAIwV,GAA8CvO,YAAa,mBACjE,CAAEjH,GATkC,EAS4BiH,YAAa,yBAC7E,CAAEjH,GAT2B,EAS4BiH,YAAa,mBAG7DyO,GAAoC,CAC7C,CAAE1V,GAAIwV,GAAkDvO,YAAa,mBACrE,CAAEjH,GAZsC,EAY4BiH,YAAa,yBACjF,CAAEjH,GAZgC,EAY4BiH,YAAa,oBAGlE0O,GACG,YADHA,GAIJ,MAJIA,GAKH,OAGGC,GAAsB,CAC/B,EAAG,WACH,EAAG,aACH,EAAG,QAGMC,GAAc,CACvBC,IAAK,MACLC,IAAK,MACLC,KAAM,QCzUGC,GAAsB,WAC/B,OAAI1D,GAAOhD,SANJ2G,IAAMC,OAAO,CAChBC,QAAS,SAQNF,IAAMC,OAAO,CAChBC,QAAS7D,GAAO3D,QAChByH,iBAAiB,KAcZC,GAA6B,WACtC,OAAI/D,GAAOhD,SANJ2G,IAAMC,OAAO,CAChBC,QAAS,iBAQNF,IAAMC,OAAO,CAChBC,QAAS7D,GAAO1D,eAChBwH,iBAAiB,KAUZE,GAA4B,WACrC,OAAIhE,GAAOhD,SANJ2G,IAAMC,OAAO,CAChBC,QAAS,gBAQNF,IAAMC,OAAO,CAChBC,QAAS7D,GAAOzD,cAChBuH,iBAAiB,KC7CnBG,GAA0BF,KAC1BG,GAAuBR,KAErBS,GAAWxD,GAENyD,GAAiB,SAAC/W,EAASgX,GACpC,IAAMC,EAAG,uCAAmCjX,EAAnC,eAAiDgX,GAC1D,OAAOJ,GAAwBM,IAAID,IAgB1BE,GAAqB,SAACnT,EAAWoT,GAC1C,IAAMH,EAAG,+BAA2BjT,EAA3B,oBACT,OAAO4S,GAAwBM,IAAID,EAAK,CACpCI,OAAQD,EACRE,iBAAkB,SAACD,GAAD,OAAYE,YAAsBF,EAAQ,CAAEG,YAAa,eAItEC,GAAuB,SAACC,EAAeC,GAEhD,OAAOD,EAAcE,KADZ,6BACsBD,IAGtBE,GAAuB,SAACH,EAAeC,GAEhD,OAAOD,EAAcE,KADZ,oCACsBD,IAGtBG,GAAaC,YAAU,CAChCC,YAAa,aACbC,UC3CA,SAAC,GAAD,IAAGC,EAAH,EAAGA,QAAH,8CACA,2DAAAC,EAAA,6DAASlB,EAAT,EAASA,IAAKmB,EAAd,EAAcA,OAAQC,EAAtB,EAAsBA,KACZC,EADV,UAC0BJ,GAD1B,OACoCjB,GAC1BsB,EAAe5F,GAAOhD,SACtB6I,EAAiBD,EAAY,sBAAkBD,GAAlB,UAAoC3F,GAAO1D,gBAA3C,OAA4DqJ,GAHnG,kBAM6BhC,IAAM,CAAEW,IAAKuB,EAAgBJ,SAAQC,OAAM5B,iBAAkB8B,IAN1F,cAMcE,EANd,yBAOe,CAAEJ,KAAMI,EAAOJ,OAP9B,yCAScK,EATd,KAUcC,EAdwB,SAevB,OAAHD,QAAG,IAAHA,GAAA,UAAAA,EAAKE,gBAAL,mBAAeP,YAAf,eAAqBQ,mBAArB,OACMH,QADN,IACMA,GADN,UACMA,EAAKE,gBADX,iBACM,EAAeP,YADrB,aACM,EAAqBS,QAD3B,UAEMJ,EAAIE,gBAFV,iBAEM,EAAcP,YAFpB,aAEM,EAAoBU,eAbtC,kBAee,CACHC,MAAO,CAAEC,OAAM,UAAEP,EAAIE,gBAAN,aAAE,EAAcK,OAAQC,QAASP,GAAgB,QAhB5E,0DADA,sDD2CWQ,CAAe,CACtBjB,QAAS,KAEbkB,SAAU,CACN,iBACA,aACA,sBACA,cACA,qBACA,UACA,kBACA,gBACA,mBACA,oBACA,OACA,eACA,gBACA,UACA,oBACA,WACA,gBACA,iBACA,eACA,yBACA,qBACA,gBACA,eACA,qBACA,qBACA,oBACA,4BAEJC,UAAW,SAACC,GAAD,MAAY,CAEnBC,iBAAkBD,EAAME,MAAM,CAC1BA,MAAO,SAAClQ,GAAD,MAAe,CAAE2N,IAAI,eAAD,OAAiB3N,EAAjB,YAAqC8O,OAAQ,QACxEqB,aAAc,SAAChB,EAAQO,EAAO1P,GAAhB,MAA6B,CAAC,CAAEiM,KAAM,iBAAkBnV,GAAIkJ,OAE9EoQ,cAAeJ,EAAME,MAAM,CACvBA,MAAO,SAAChS,GAAD,MAAmB,CAAEyP,IAAI,2BAAD,OAA6BzP,GAAgB4Q,OAAQ,QACpFqB,aAAc,SAAChB,EAAQO,EAAOxR,GAAhB,MAAiC,CAAC,CAAE+N,KAAM,aAAcnV,GAAIoH,OAE9EmS,sBAAuBL,EAAME,MAAM,CAC/BA,MAAO,gBAAGhS,EAAH,EAAGA,aAAcoS,EAAjB,EAAiBA,WAAYC,EAA7B,EAA6BA,SAA7B,MAA6C,CAChD5C,IAAI,2BAAD,OAA6BzP,EAA7B,gCAAiEoS,EAAjE,qBAAwFC,GAC3FzB,OAAQ,QAEZqB,aAAc,SAAChB,EAAQO,EAAOxR,GAAhB,MAAiC,CAAC,CAAE+N,KAAM,sBAAuBnV,GAAIoH,OAEvFsS,cAAeR,EAAME,MAAM,CACvBA,MAAO,SAAChS,GAAD,MAAmB,CAAEyP,IAAI,2BAAD,OAA6BzP,EAA7B,eAAwD4Q,OAAQ,QAC/FqB,aAAc,SAAChB,EAAQO,EAAOxR,GAAhB,MAAiC,CAAC,CAAE+N,KAAM,cAAenV,GAAIoH,OAE/EuS,qBAAsBT,EAAME,MAAM,CAC9BA,MAAO,SAAChS,GAAD,MAAmB,CACtByP,IAAI,2BAAD,OAA6BzP,EAA7B,YACH4Q,OAAQ,QAEZqB,aAAc,SAAChB,EAAQO,EAAOxR,GAAhB,MAAiC,CAAC,CAAE+N,KAAM,qBAAsBnV,GAAIoH,OAEtFwS,WAAYV,EAAME,MAAM,CACpBA,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,GAAaoU,OAAQ,QAC3E6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOhV,GAAhB,MAA8B,CAAC,CAAEuR,KAAM,UAAWnV,GAAI4D,OAExEkW,kBAAmBZ,EAAME,MAAM,CAC3BA,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,EAA1B,YAA+CoU,OAAQ,QACnF6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOhV,GAAhB,MAA8B,CAAC,CAAEuR,KAAM,kBAAmBnV,GAAI4D,OAEhFmW,gBAAiBb,EAAME,MAAM,CACzBA,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,EAA1B,UAA6CoU,OAAQ,QACjF6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOhV,GAAhB,MAA8B,CAAC,CAAEuR,KAAM,gBAAiBnV,GAAI4D,OAE9EoW,mBAAoBd,EAAME,MAAM,CAC5BA,MAAO,gBAAGxV,EAAH,EAAGA,UAAWqW,EAAd,EAAcA,kBAAd,MAAuC,CAC1CpD,IAAI,wBAAD,OAA0BjT,EAA1B,wCAAmEqW,GACtEjC,OAAQ,QAEZ6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,mBAAoBnV,GAAIka,EAAItW,eAE/EuW,yBAA0BjB,EAAME,MAAM,CAClCA,MAAO,gBAAGxV,EAAH,EAAGA,UAAWqW,EAAd,EAAcA,kBAAd,MAAuC,CAC1CpD,IAAI,wBAAD,OAA0BjT,EAA1B,8CAAyEqW,GAC5EjC,OAAQ,QAEZ6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,2BAA4BnV,GAAIka,EAAItW,eAEvFwW,oBAAqBlB,EAAME,MAAM,CAC7BA,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,EAA1B,kBAAqDoU,OAAQ,QACzF6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOhV,GAAhB,MAA8B,CAAC,CAAEuR,KAAM,oBAAqBnV,GAAI4D,OAElFyW,QAASnB,EAAME,MAAM,CACjBA,MAAO,SAAClX,GAAD,MAAa,CAAE2U,IAAI,qBAAD,OAAuB3U,GAAU8V,OAAQ,QAClEqB,aAAc,SAAChB,EAAQO,EAAO1W,GAAhB,MAA2B,CAAC,CAAEiT,KAAM,OAAQnV,GAAIkC,OAElEoY,eAAgBpB,EAAME,MAAM,CACxBA,MAAO,SAAClX,GAAD,MAAa,CAAE2U,IAAI,qBAAD,OAAuB3U,EAAvB,YAAyC8V,OAAQ,QAC1EqB,aAAc,SAAChB,EAAQO,EAAO1W,GAAhB,MAA2B,CAAC,CAAEiT,KAAM,eAAgBnV,GAAIkC,OAE1EqY,gBAAiBrB,EAAME,MAAM,CACzBA,MAAO,SAAClX,GAAD,MAAa,CAAE2U,IAAI,qBAAD,OAAuB3U,EAAvB,aAA0C8V,OAAQ,QAC3EqB,aAAc,SAAChB,EAAQO,EAAO1W,GAAhB,MAA2B,CAAC,CAAEiT,KAAM,gBAAiBnV,GAAIkC,OAE3EsY,sBAAuBtB,EAAME,MAAM,CAC/BA,MAAO,SAAClX,GAAD,MAAa,CAAE2U,IAAI,qBAAD,OAAuB3U,EAAvB,mBAAgD8V,OAAQ,QACjFqB,aAAc,SAAChB,EAAQO,EAAO1W,GAAhB,MAA2B,CAAC,CAAEiT,KAAM,gBAAiBnV,GAAIkC,OAE3EuY,oBAAqBvB,EAAME,MAAM,CAC7BA,MAAO,SAAClX,GAAD,MAAa,CAAE2U,IAAI,qBAAD,OAAuB3U,EAAvB,sBAAmD8V,OAAQ,QACpFqB,aAAc,CAAC,uBAEnBqB,WAAYxB,EAAME,MAAM,CACpBA,MAAO,SAAClX,GAAD,MAAa,CAAE2U,IAAI,qBAAD,OAAuB3U,EAAvB,YAAyC8V,OAAQ,QAC1E2C,kBAAmB,SAACnC,GAAc,IAAD,EAI7B,OAHa,OAAGA,QAAH,IAAGA,GAAH,UAAGA,EAAUoC,mBAAb,aAAG,EAAuBC,KAAI,SAACC,GACxC,OAAO,2BAAKA,GAAZ,IAAoB5Y,OAAM,OAAEsW,QAAF,IAAEA,OAAF,EAAEA,EAAUtW,aAI9CmX,aAAc,SAAChB,EAAQO,EAAO1W,GAAhB,MAA2B,CAAC,CAAEiT,KAAM,UAAWnV,GAAIkC,OAErE6Y,YAAa7B,EAAME,MAAM,CACrBA,MAAO,SAAC4B,GAAD,MAAiB,CAAEnE,IAAI,yBAAD,OAA2BmE,GAAchD,OAAQ,QAC9E6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOoC,GAAhB,MAA+B,CAAC,CAAE7F,KAAM,WAAYnV,GAAIgb,OAE1EC,gBAAiB/B,EAAME,MAAM,CACzBA,MAAO,SAAC3X,GAAD,MAAkB,CAAEoV,IAAI,2BAAD,OAA6BpV,EAA7B,YAAoDuW,OAAQ,QAC1F6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOnX,GAAhB,MAAgC,CAAC,CAAE0T,KAAM,gBAAiBnV,GAAIyB,OAEhFyZ,iBAAkBhC,EAAME,MAAM,CAC1BA,MAAO,SAAC3X,GAAD,MAAkB,CAAEoV,IAAI,2BAAD,OAA6BpV,EAA7B,kBAA0DuW,OAAQ,QAChG6B,kBAAmB,EACnBR,aAAc,SAAChB,EAAQO,EAAOnX,GAAhB,MAAgC,CAAC,CAAE0T,KAAM,iBAAkBnV,GAAIyB,OAEjF0Z,yBAA0BjC,EAAME,MAAM,CAClCA,MAAO,YAAiC,IAA9B3X,EAA6B,EAA7BA,YAAa2Z,EAAgB,EAAhBA,UAOnB,MAAO,CAAEvE,IALLuE,EACU,kCAA8B3Z,EAA9B,6BAA8D2Z,GAE9D,kCAA8B3Z,EAA9B,WAEYuW,OAAQ,UAG1CqD,eAAgBnC,EAAME,MAAM,CACxBA,MAAO,iBAAO,CAAEvC,IAAI,2BAA6BmB,OAAQ,QACzDqB,aAAc,iBAAM,CAAC,CAAElE,KAAM,oBAEjCmG,yBAA0BpC,EAAME,MAAM,CAClCA,MAAO,gBAAGxV,EAAH,EAAGA,UAAWnD,EAAd,EAAcA,SAAd,MAA8B,CAAEoW,IAAI,uBAAD,OAAyBjT,EAAzB,0CAAoEnD,GAAYuX,OAAQ,QAClIqB,aAAc,SAAChB,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,yBAA0BnV,GAAIka,EAAIzZ,YACjFoZ,kBAAmB,IAEvB0B,qBAAsBrC,EAAME,MAAM,CAC9BA,MAAO,SAAClQ,GAAD,MAAe,CAAE2N,IAAI,eAAD,OAAiB3N,EAAjB,gBAAyC8O,OAAQ,QAC5EqB,aAAc,SAAChB,EAAQO,EAAO1P,GAAhB,MAA6B,CAAC,CAAEiM,KAAM,qBAAsBnV,GAAIkJ,OAElFsS,gBAAiBtC,EAAME,MAAM,CACzBA,MAAO,SAAChS,GAAD,MAAmB,CAAEyP,IAAI,2BAAD,OAA6BzP,EAA7B,iBAA0D4Q,OAAQ,QACjGqB,aAAc,SAAChB,EAAQO,EAAOxR,GAAhB,MAAiC,CAAC,CAAE+N,KAAM,gBAAiBnV,GAAIoH,OAEjFqU,eAAgBvC,EAAME,MAAM,CACxBA,MAAO,iBAAO,CAAEvC,IAAI,yBAA2BmB,OAAQ,QACvDqB,aAAc,iBAAM,CAAC,CAAElE,KAAM,oBAEjCuG,oBAAqBxC,EAAME,MAAM,CAC7BA,MAAO,SAAC3X,GAAD,MAAkB,CAAEoV,IAAI,2BAAD,OAA6BpV,EAA7B,YAAoDuW,OAAQ,QAC1FqB,aAAc,SAAChB,EAAQO,EAAOnX,GAAhB,MAAgC,CAAC,CAAE0T,KAAM,qBAAsBnV,GAAIyB,OAErFka,oBAAqBzC,EAAME,MAAM,CAC7BA,MAAO,SAAC3X,GAAD,MAAkB,CAAEoV,IAAI,2BAAD,OAA6BpV,EAA7B,YAAoDuW,OAAQ,QAC1FqB,aAAc,SAAChB,EAAQO,EAAOnX,GAAhB,MAAgC,CAAC,CAAE0T,KAAM,qBAAsBnV,GAAIyB,OAErFma,oBAAqB1C,EAAME,MAAM,CAC7BA,MAAO,iBAAO,CAAEvC,IAAI,+BAAiCmB,OAAQ,QAC7D2C,kBAAmB,SAACnC,GAIhB,OAH2BA,EAASqC,KAAI,SAACgB,GACrC,MAAO,CAAE7b,GAAI6b,EAAQrP,MAAOvF,YAAa4U,EAAQpT,WAIzD4Q,aAAc,iBAAM,CAAC,CAAElE,KAAM,yBAKjC2G,iBAAkB5C,EAAM6C,SAAS,CAC7B3C,MAAO,SAAC7U,GAAD,MAAiB,CAAEsS,IAAI,0BAA4BmB,OAAQ,OAAQC,KAAM1T,IAChFyX,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,iBAAkBnV,GAAIka,EAAIhR,cAEhF+S,aAAc/C,EAAM6C,SAAS,CACzB3C,MAAO,gBAAGhS,EAAH,EAAGA,aAAc8U,EAAjB,EAAiBA,UAAjB,MAAkC,CACrCrF,IAAI,2BAAD,OAA6BzP,EAA7B,eACH4Q,OAAQ,OACRC,KAAMiE,IAEVF,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,aAAcnV,GAAIka,EAAI9S,kBAE5E+U,cAAejD,EAAM6C,SAAS,CAC1B3C,MAAO,SAAClO,GAAD,MAAc,CAAE2L,IAAI,uBAAyBmB,OAAQ,OAAQC,KAAM/M,IAC1E8Q,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,sBAAuBnV,GAAIka,EAAI9S,kBAErFgV,qBAAsBlD,EAAM6C,SAAS,CACjC3C,MAAO,SAACiD,GAAD,MAAuB,CAAExF,IAAI,6CAA+CmB,OAAQ,OAAQC,KAAMoE,MAE7GC,iBAAkBpD,EAAM6C,SAAS,CAC7B3C,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,EAA1B,oBAAuDoU,OAAQ,SAC3FgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,kBAAmBnV,GAAIka,EAAItW,eAEjF2Y,oBAAqBrD,EAAM6C,SAAS,CAChC3C,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,EAA1B,2BAA8DoU,OAAQ,SAClGgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,mBAAoBnV,GAAIka,EAAItW,eAElF4Y,eAAgBtD,EAAM6C,SAAS,CAC3B3C,MAAO,gBAAGxV,EAAH,EAAGA,UAAH,EAAcoX,WAAd,MAAgC,CAAEnE,IAAI,wBAAD,OAA0BjT,EAA1B,cAAiDoU,OAAQ,SACrGgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,mBAAoBnV,GAAIka,EAAItW,WACpC,CAAEuR,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,kBAAmBnV,GAAIka,EAAItW,WACnC,CAAEuR,KAAM,oBAAqBnV,GAAIka,EAAItW,WACrC,CAAEuR,KAAM,gBAAiBnV,GAAIka,EAAItW,eAGzC6Y,gBAAiBvD,EAAM6C,SAAS,CAC5B3C,MAAO,gBAAGxV,EAAH,EAAGA,UAAWqU,EAAd,EAAcA,KAAd,EAAoB+C,WAApB,MAAsC,CAAEnE,IAAI,wBAAD,OAA0BjT,EAA1B,cAAiDoU,OAAQ,OAAQC,SACnH+D,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,mBAAoBnV,GAAIka,EAAItW,WACpC,CAAEuR,KAAM,kBAAmBnV,GAAIka,EAAItW,WACnC,CAAEuR,KAAM,oBAAqBnV,GAAIka,EAAItW,WACrC,CAAEuR,KAAM,gBAAiBnV,GAAIka,EAAItW,eAGzC8Y,WAAYxD,EAAM6C,SAAS,CACvB3C,MAAO,SAACuD,GAAD,MAAW,CAAE9F,IAAI,oBAAsBmB,OAAQ,OAAQC,KAAM0E,IACpEX,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,gBAAiBnV,GAAIka,EAAItW,eAE/EgZ,WAAY1D,EAAM6C,SAAS,CACvB3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAQ2a,EAAX,EAAWA,QAAX,MAA0B,CAAEhG,IAAI,qBAAD,OAAuB3U,EAAvB,aAA0C8V,OAAQ,OAAQC,KAAM4E,IACtGb,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,eAAgBnV,GAAIka,EAAIhY,YAGxC4a,mBAAoB5D,EAAM6C,SAAS,CAC/B3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAQ4W,EAAX,EAAWA,QAASiE,EAApB,EAAoBA,gBAApB,MAA2C,CAC9ClG,IAAI,qBAAD,OAAuB3U,EAAvB,YACH8V,OAAQ,OACRC,KAAM,CAAEa,UAASiE,uBAGzBC,wBAAyB9D,EAAM6C,SAAS,CACpC3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAQ+a,EAAX,EAAWA,IAAX,MAAsB,CAAEpG,IAAI,qBAAD,OAAuB3U,EAAvB,8BAA2D8V,OAAQ,OAAQC,KAAM,CAAEgF,WAEzHC,gBAAiBhE,EAAM6C,SAAS,CAC5B3C,MAAO,gBAAG4B,EAAH,EAAGA,WAAuB/C,GAA1B,EAAerU,UAAf,EAA0BqU,MAA1B,MAAsC,CAAEpB,IAAI,yBAAD,OAA2BmE,EAA3B,YAAiDhD,OAAQ,OAAQC,SACnH+D,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,kBAAmBnV,GAAIka,EAAItW,WACnC,CAAEuR,KAAM,oBAAqBnV,GAAIka,EAAItW,WACrC,CAAEuR,KAAM,gBAAiBnV,GAAIka,EAAItW,WACjC,CAAEuR,KAAM,mBAAoBnV,GAAIka,EAAItW,eAG5CuZ,sBAAuBjE,EAAM6C,SAAS,CAClC3C,MAAO,gBAAGgE,EAAH,EAAGA,cAAeC,EAAlB,EAAkBA,YAAlB,EAA+B5b,YAA/B,MAAkD,CACrDoV,IAAI,6BAAD,OAA+BuG,EAA/B,sBACHpF,OAAQ,OACRC,KAAMoF,IAEVrB,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,iBAAkBnV,GAAIka,EAAIzY,iBAEhF6b,qBAAsBpE,EAAM6C,SAAS,CACjC3C,MAAO,SAACxV,GAAD,MAAgB,CAAEiT,IAAI,wBAAD,OAA0BjT,EAA1B,iBAAoDoU,OAAQ,SACxFgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,kBAAmBnV,GAAIka,EAAItW,eAEjF2Z,mBAAoBrE,EAAM6C,SAAS,CAC/B3C,MAAO,gBAAGxV,EAAH,EAAGA,UAAW4Z,EAAd,EAAcA,SAAd,MAA8B,CAAE3G,IAAI,wBAAD,OAA0BjT,EAA1B,cAAiDoU,OAAQ,OAAQC,KAAMuF,IACjHxB,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,gBAAiBnV,GAAIka,EAAItW,eAE/E6Z,uBAAwBvE,EAAM6C,SAAS,CACnC3C,MAAO,gBAAGxV,EAAH,EAAGA,UAAW8Z,EAAd,EAAcA,aAAd,MAAkC,CAAE7G,IAAI,wBAAD,OAA0BjT,EAA1B,yBAA4DoU,OAAQ,OAAQC,KAAM,CAAEyF,oBAKtIC,iBAAkBzE,EAAM6C,SAAS,CAC7B3C,MAAO,gBAAG4B,EAAH,EAAGA,WAAY4C,EAAf,EAAeA,SAAf,MAA+B,CAAE/G,IAAI,yBAAD,OAA2BmE,EAA3B,cAAmDhD,OAAQ,MAAOC,KAAM2F,IACnH5B,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,WAAYnV,GAAIka,EAAIc,gBAE1E6C,aAAc3E,EAAM6C,SAAS,CACzB3C,MAAO,gBAAG4B,EAAH,EAAGA,WAAY8C,EAAf,EAAeA,SAAf,MAA+B,CAAEjH,IAAI,yBAAD,OAA2BmE,EAA3B,kBAAuDhD,OAAQ,MAAOC,KAAM6F,IACvH9B,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,WAAYnV,GAAIka,EAAIc,gBAE1E+C,iBAAkB7E,EAAM6C,SAAS,CAC7B3C,MAAO,gBAAGhS,EAAH,EAAGA,aAAc7C,EAAjB,EAAiBA,WAAjB,EAA6B2E,SAA7B,MAA6C,CAChD2N,IAAI,2BAAD,OAA6BzP,GAChC4Q,OAAQ,MACRC,KAAM1T,IAEVyX,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,aAAcnV,GAAIka,EAAI9S,cAC9B,CAAE+N,KAAM,iBAAkBnV,GAAIka,EAAIhR,cAG1C8U,cAAe9E,EAAM6C,SAAS,CAC1B3C,MAAO,gBAAGxV,EAAH,EAAGA,UAAWsH,EAAd,EAAcA,QAAd,EAAuB9D,aAAvB,MAA2C,CAAEyP,IAAI,wBAAD,OAA0BjT,GAAaoU,OAAQ,MAAOC,KAAM/M,IACnH8Q,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,sBAAuBnV,GAAIka,EAAI9S,kBAG/C6W,WAAY/E,EAAM6C,SAAS,CACvB3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAQya,EAAX,EAAWA,KAAX,EAAiB/Y,UAAjB,MAAkC,CAAEiT,IAAI,qBAAD,OAAuB3U,GAAU8V,OAAQ,MAAOC,KAAM0E,IACpGX,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,gBAAiBnV,GAAIka,EAAItW,WACjC,CAAEuR,KAAM,eAAgBnV,GAAIka,EAAIhY,YAGxCgc,wBAAyBhF,EAAM6C,SAAS,CACpC3C,MAAO,gBAAG4B,EAAH,EAAGA,WAAH,EAAepX,UAAf,MAAgC,CAAEiT,IAAI,yBAAD,OAA2BmE,EAA3B,cAAmDhD,OAAQ,QACvGgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,mBAAoBnV,GAAIka,EAAItW,WACpC,CAAEuR,KAAM,kBAAmBnV,GAAIka,EAAItW,WACnC,CAAEuR,KAAM,oBAAqBnV,GAAIka,EAAItW,WACrC,CAAEuR,KAAM,gBAAiBnV,GAAIka,EAAItW,eAGzCua,yBAA0BjF,EAAM6C,SAAS,CACrC3C,MAAO,cAAGxV,UAAH,IAAc1B,EAAd,EAAcA,OAAQkc,EAAtB,EAAsBA,gBAAtB,EAAuCC,aAAvC,MAA2D,CAC9DxH,IAAI,qBAAD,OAAuB3U,EAAvB,wBACH8V,OAAQ,MACRC,KAAMmG,IAEVpC,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAC7B,IAAIoE,EAAO,CACP,CAAEnJ,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,gBAAiBnV,GAAIka,EAAItW,YAKrC,OAHIsW,EAAImE,eAAiB3H,KACrB4H,EAAI,sBAAOA,GAAP,CAAa,CAAEnJ,KAAM,UAAWnV,GAAIka,EAAIhY,WAEzCoc,KAGfC,uBAAwBrF,EAAM6C,SAAS,CACnC3C,MAAO,gBAAG3X,EAAH,EAAGA,YAAoC+c,GAAvC,EAAgB5a,UAAhB,EAA2BoX,WAA3B,EAAuCwD,WAAvC,MAAwD,CAC3D3H,IAAI,2BAAD,OAA6BpV,GAChCuW,OAAQ,MACRC,KAAMuG,IAEVxC,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,gBAAiBnV,GAAIka,EAAIzY,aACjC,CAAE0T,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,iBAAkBnV,GAAIka,EAAIzY,aAClC,CAAE0T,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,mBAAoBnV,GAAIka,EAAItW,eAG5C6a,4BAA6BvF,EAAM6C,SAAS,CACxC3C,MAAO,gBAAG3X,EAAH,EAAGA,YAAoCwW,GAAvC,EAAgBrU,UAAhB,EAA2BoX,WAA3B,EAAuC/C,MAAvC,MAAmD,CACtDpB,IAAI,2BAAD,OAA6BpV,EAA7B,kBACHuW,OAAQ,MACRC,SAEJ+D,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,gBAAiBnV,GAAIka,EAAIzY,aACjC,CAAE0T,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,iBAAkBnV,GAAIka,EAAIzY,aAClC,CAAE0T,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,mBAAoBnV,GAAIka,EAAItW,eAG5C8a,yBAA0BxF,EAAM6C,SAAS,CACrC3C,MAAO,gBAAG3X,EAAH,EAAGA,YAAakd,EAAhB,EAAgBA,mBAAhB,EAAoC3D,WAApC,EAAgDpX,UAAhD,MAAiE,CACpEiT,IAAI,2BAAD,OAA6BpV,EAA7B,cACHuW,OAAQ,MACRC,KAAM0G,IAEV3C,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,gBAAiBnV,GAAIka,EAAIzY,aACjC,CAAE0T,KAAM,WAAYnV,GAAIka,EAAIc,YAC5B,CAAE7F,KAAM,iBAAkBnV,GAAIka,EAAIzY,aAClC,CAAE0T,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,kBAAmBnV,GAAIka,EAAItW,WACnC,CAAEuR,KAAM,oBAAqBnV,GAAIka,EAAItW,eAG7Cgb,wBAAyB1F,EAAM6C,SAAS,CACpC3C,MAAO,gBAAGgE,EAAH,EAAGA,cAAeC,EAAlB,EAAkBA,YAAlB,EAA+B5b,YAA/B,MAAkD,CACrDoV,IAAI,6BAAD,OAA+BuG,EAA/B,sBACHpF,OAAQ,MACRC,KAAMoF,IAEVrB,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,iBAAkBnV,GAAIka,EAAIzY,iBAEhFod,iBAAkB3F,EAAM6C,SAAS,CAC7B3C,MAAO,gBAAG3Y,EAAH,EAAGA,SAAUqe,EAAb,EAAaA,WAAYC,EAAzB,EAAyBA,SAAzB,EAAmCnb,UAAnC,MAAoD,CACvDiT,IAAI,+BACJmB,OAAQ,MACRC,KAAM,CAAExX,WAAUqe,aAAYC,cAElC/C,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,gBACR,CAAEA,KAAM,UAAWnV,GAAIka,EAAI4E,YAC3B,CAAE3J,KAAM,UAAWnV,GAAIka,EAAI6E,UAC3B,CAAE5J,KAAM,gBAAiBnV,GAAIka,EAAItW,WACjC,CAAEuR,KAAM,OAAQnV,GAAIka,EAAI4E,YACxB,CAAE3J,KAAM,OAAQnV,GAAIka,EAAI6E,UACxB,CAAE5J,KAAM,eAAgBnV,GAAIka,EAAI4E,YAChC,CAAE3J,KAAM,eAAgBnV,GAAIka,EAAI6E,UAChC,CAAE5J,KAAM,yBAA0BnV,GAAIka,EAAIzZ,cAGlDue,iBAAkB9F,EAAM6C,SAAS,CAC7B3C,MAAO,gBAAG3Y,EAAH,EAAGA,SAAUqe,EAAb,EAAaA,WAAYG,EAAzB,EAAyBA,UAAWpW,EAApC,EAAoCA,aAApC,EAAkDjF,UAAlD,MAAmE,CACtEiT,IAAI,+BACJmB,OAAQ,MACRC,KAAM,CAAExX,WAAUqe,aAAYG,YAAWpW,kBAE7CmT,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAC7B,IAAMoE,EAAO,CACT,CAAEnJ,KAAM,gBACR,CAAEA,KAAM,eAAgBnV,GAAIka,EAAI4E,YAChC,CAAE3J,KAAM,UAAWnV,GAAIka,EAAI4E,YAC3B,CAAE3J,KAAM,gBAAiBnV,GAAIka,EAAItW,WACjC,CAAEuR,KAAM,OAAQnV,GAAIka,EAAI4E,YACxB,CAAE3J,KAAM,yBAA0BnV,GAAIka,EAAIzZ,WAU9C,OARAyZ,EAAI+E,UAAUC,SAAQ,SAAChd,GACnB,IAAMid,EAAU,CACZ,CAAEhK,KAAM,UAAWnV,GAAIkC,GACvB,CAAEiT,KAAM,OAAQnV,GAAIkC,GACpB,CAAEiT,KAAM,eAAgBnV,GAAIkC,IAEhCoc,EAAKc,KAAL,MAAAd,EAAaa,MAEVb,KAGfe,yBAA0BnG,EAAM6C,SAAS,CACrC3C,MAAO,gBAAG3Y,EAAH,EAAGA,SAAUyB,EAAb,EAAaA,OAAb,EAAqB0B,UAArB,MAAsC,CACzCiT,IAAI,4CACJmB,OAAQ,MACRC,KAAM,CAAExX,WAAUyB,YAEtB8Z,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,gBACR,CAAEA,KAAM,eAAgBnV,GAAIka,EAAIhY,QAChC,CAAEiT,KAAM,UAAWnV,GAAIka,EAAIhY,QAC3B,CAAEiT,KAAM,gBAAiBnV,GAAIka,EAAItW,WACjC,CAAEuR,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,yBAA0BnV,GAAIka,EAAIzZ,cAGlD6e,+BAAgCpG,EAAM6C,SAAS,CAC3C3C,MAAO,gBAAGmG,EAAH,EAAGA,cAAeC,EAAlB,EAAkBA,2BAA4B/d,EAA9C,EAA8CA,YAA9C,MAAiE,CACpEoV,IAAI,2BAAD,OAA6BpV,EAA7B,uBACHuW,OAAQ,MACRC,KAAM,CAAEsH,gBAAeC,gCAE3BxD,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,qBAAsBnV,GAAIka,EAAIzY,iBAG9Cge,uBAAwBvG,EAAM6C,SAAS,CACnC3C,MAAO,gBAAG3X,EAAH,EAAGA,YAAaie,EAAhB,EAAgBA,QAAhB,MAA+B,CAClC7I,IAAI,2BAAD,OAA6BpV,EAA7B,YACHuW,OAAQ,MACRC,KAAMyH,IAEV1D,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,qBAAsBnV,GAAIka,EAAIzY,aACtC,CAAE0T,KAAM,iBAAkBnV,GAAIka,EAAIzY,iBAG1Cke,2BAA4BzG,EAAM6C,SAAS,CACvC3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAQqd,EAAX,EAAWA,cAAe9d,EAA1B,EAA0BA,YAA1B,MAA6C,CAChDoV,IAAI,2BAAD,OAA6BpV,EAA7B,cACHuW,OAAQ,MACRC,KAAM,CAAE/V,SAAQqd,gBAAe9d,iBAEnCua,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,qBAAsBnV,GAAIka,EAAIzY,iBAG9Cme,4BAA6B1G,EAAM6C,SAAS,CACxC3C,MAAO,gBAAG3X,EAAH,EAAGA,YAAaoe,EAAhB,EAAgBA,eAAgBC,EAAhC,EAAgCA,wBAAhC,MAA+D,CAClEjJ,IAAI,2BAAD,OAA6BpV,EAA7B,oBACHuW,OAAQ,MACRC,KAAM,CAAE4H,iBAAgBC,6BAE5B9D,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,iBAAkBnV,GAAIka,EAAIzY,iBAM1Cse,gBAAiB7G,EAAM6C,SAAS,CAC5B3C,MAAO,gBAAGhS,EAAH,EAAGA,aAAc4Y,EAAjB,EAAiBA,YAAjB,MAAoC,CACvCnJ,IAAI,2BAAD,OAA6BzP,EAA7B,uBAAwD4Y,GAC3DhI,OAAQ,WAEZgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CAAC,CAAE/E,KAAM,aAAcnV,GAAIka,EAAI9S,kBAE5E6Y,WAAY/G,EAAM6C,SAAS,CACvB3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAH,EAAW0B,UAAX,MAA4B,CAAEiT,IAAI,qBAAD,OAAuB3U,GAAU8V,OAAQ,WACjFgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,gBAAiBnV,GAAIka,EAAItW,aAErCiW,kBAAmB,IAEvBqG,cAAehH,EAAM6C,SAAS,CAC1B3C,MAAO,gBAAGlX,EAAH,EAAGA,OAAQie,EAAX,EAAWA,UAAX,MAA4B,CAAEtJ,IAAI,qBAAD,OAAuB3U,EAAvB,qBAA0Cie,GAAanI,OAAQ,WACvGgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,OAAQnV,GAAIka,EAAIhY,QACxB,CAAEiT,KAAM,eAAgBnV,GAAIka,EAAIhY,YAGxCke,eAAgBlH,EAAM6C,SAAS,CAC3B3C,MAAO,gBAAG4B,EAAH,EAAGA,WAAH,EAAepX,UAAf,MAAgC,CAAEiT,IAAI,yBAAD,OAA2BmE,GAAchD,OAAQ,WAC7FgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,gBAAiBnV,GAAIka,EAAItW,WACjC,CAAEuR,KAAM,UAAWnV,GAAIka,EAAItW,WAC3B,CAAEuR,KAAM,mBAAoBnV,GAAIka,EAAItW,WACpC,CAAEuR,KAAM,WAAYnV,GAAIka,EAAIc,gBAGpCqF,cAAenH,EAAM6C,SAAS,CAC1B3C,MAAO,gBAAGxV,EAAH,EAAGA,UAAH,EAAcwD,aAAd,MAAkC,CAAEyP,IAAI,wBAAD,OAA0BjT,GAAaoU,OAAQ,WAC7FgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,sBAAuBnV,GAAIka,EAAI9S,cACvC,CAAE+N,KAAM,kBAAmBnV,GAAIka,EAAItW,WACnC,CAAEuR,KAAM,UAAWnV,GAAIka,EAAItW,eAGnC0c,eAAgBpH,EAAM6C,SAAS,CAC3B3C,MAAO,gBAAE3X,EAAF,EAAEA,YAAF,MAAoB,CAAEoV,IAAI,6BAAD,OAA+BpV,EAA/B,UAAoDuW,OAAQ,WAC5FgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,iBAAkBnV,GAAIka,EAAIzY,aAClC,CAAE0T,KAAM,qBAAsBnV,GAAIka,EAAIzY,iBAG9C8e,oBAAqBrH,EAAM6C,SAAS,CAChC3C,MAAO,gBAAE4B,EAAF,EAAEA,WAAYwF,EAAd,EAAcA,QAAd,MAA4B,CAAE3J,IAAI,yBAAD,OAA2BmE,EAA3B,iBAAsDhD,OAAQ,SAAUC,KAAM,CAAEuI,aACxHxE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,WAAYnV,GAAIka,EAAIc,gBAGpCyF,gBAAiBvH,EAAM6C,SAAS,CAC5B3C,MAAO,gBAAE3X,EAAF,EAAEA,YAAF,MAAoB,CAAEoV,IAAI,2BAAD,OAA6BpV,GAAeuW,OAAQ,WACpFgE,gBAAiB,SAAC3D,EAAQO,EAAOsB,GAAhB,MAAwB,CACrC,CAAE/E,KAAM,iBAAkBnV,GAAIka,EAAIzY,aAClC,CAAE0T,KAAM,qBAAsBnV,GAAIka,EAAIzY,qBAOlDif,GAwEAhJ,GAxEAgJ,4BACAC,GAuEAjJ,GAvEAiJ,wBACAC,GAsEAlJ,GAtEAkJ,yBACAC,GAqEAnJ,GArEAmJ,sBACAC,GAoEApJ,GApEAoJ,8BACAC,GAmEArJ,GAnEAqJ,sBAEAC,IAiEAtJ,GAlEAuJ,6BAkEAvJ,GAjEAsJ,oBACAE,GAgEAxJ,GAhEAwJ,0BACAC,GA+DAzJ,GA/DAyJ,wBACAC,GA8DA1J,GA9DA0J,2BACAC,GA6DA3J,GA7DA2J,qCACAC,GA4DA5J,GA5DA4J,4BACAC,GA2DA7J,GA3DA6J,gBACAC,GA0DA9J,GA1DA8J,uBACAC,GAyDA/J,GAzDA+J,4BACAC,GAwDAhK,GAxDAgK,mBAEAC,IAsDAjK,GAvDAkK,oBAuDAlK,GAtDAiK,yBACAE,GAqDAnK,GArDAmK,yBACAC,GAoDApK,GApDAoK,wBACAC,GAmDArK,GAnDAqK,kCACAC,GAkDAtK,GAlDAsK,iCACAC,GAiDAvK,GAjDAuK,uBACAC,GAgDAxK,GAhDAwK,iCACAC,GA+CAzK,GA/CAyK,6BACAC,GA8CA1K,GA9CA0K,wBACAC,GA6CA3K,GA7CA2K,uBACAC,GA4CA5K,GA5CA4K,4BACAC,GA2CA7K,GA3CA6K,4BACAC,GA0CA9K,GA1CA8K,4BACAC,GAyCA/K,GAzCA+K,4BACAC,GAwCAhL,GAxCAgL,wBACAC,GAuCAjL,GAvCAiL,yBACAC,GAsCAlL,GAtCAkL,gCACAC,GAqCAnL,GArCAmL,4BACAC,GAoCApL,GApCAoL,+BACAC,GAmCArL,GAnCAqL,0BACAC,GAkCAtL,GAlCAsL,2BACAC,GAiCAvL,GAjCAuL,2BACAC,GAgCAxL,GAhCAwL,sBACAC,GA+BAzL,GA/BAyL,sBACAC,GA8BA1L,GA9BA0L,8BACAC,GA6BA3L,GA7BA2L,mCACAC,GA4BA5L,GA5BA4L,iCACAC,GA2BA7L,GA3BA6L,gCACAC,GA0BA9L,GA1BA8L,8BACAC,GAyBA/L,GAzBA+L,kCACAC,GAwBAhM,GAxBAgM,4BACAC,GAuBAjM,GAvBAiM,yBACAC,GAsBAlM,GAtBAkM,sBACAC,GAqBAnM,GArBAmM,oCACAC,GAoBApM,GApBAoM,kCACAC,GAmBArM,GAnBAqM,uCACAC,GAkBAtM,GAlBAsM,oCACAC,GAiBAvM,GAjBAuM,mCACAC,GAgBAxM,GAhBAwM,mCACAC,GAeAzM,GAfAyM,4BACAC,GAcA1M,GAdA0M,4BACAC,GAaA3M,GAbA2M,oCACAC,GAYA5M,GAZA4M,0CACAC,GAWA7M,GAXA6M,kCACAC,GAUA9M,GAVA8M,sCACAC,GASA/M,GATA+M,uCACAC,GAQAhN,GARAgN,2BACAC,GAOAjN,GAPAiN,sBACAC,GAMAlN,GANAkN,yBACAC,GAKAnN,GALAmN,0BACAC,GAIApN,GAJAoN,yBACAC,GAGArN,GAHAqN,0BACAC,GAEAtN,GAFAsN,+BACAC,GACAvN,GADAuN,2BEtrBSC,GAAcC,2BAAiB,mBAAD,sBAAqB,8BAAApN,EAAA,+EFarDtB,GAAqBK,IAArB,mBEbqD,cAElDsO,EAFkD,yBAGjDA,EAAInN,MAH6C,sCAKxDhZ,OAAOiE,KAAP,UAAeqP,GAAO/D,QAAtB,2BAAgDvP,OAAO6C,SAASujB,MAAQ,SACpD,CAChBljB,KAAM,mBACN2W,SAAS,eAAIN,SAASP,YAAb,eAAmBa,UAAW,KAAIN,SAAS8M,YARA,0DCDnDC,GAAiBJ,2BAAiB,sBAAD,sBAAwB,8BAAApN,EAAA,+EHuB3DvB,GAAwBM,IADnB,4CGtBsD,cAExD0B,EAFwD,yBAGvDA,EAASP,MAH8C,sCAK1C,CAChB9V,KAAM,oBACN2W,SAAS,eAAIN,SAASP,YAAb,eAAmBa,UAAW,KAAIN,SAAS8M,YAPM,0DAazDE,GAAqBL,2BAAiB,0BAAD,sBAA4B,8BAAApN,EAAA,+EHKnEtB,GAAqBK,IAArB,uBGLmE,cAEhE0B,EAFgE,yBAG/DA,EAASP,MAHsD,sCAKlD,CAChB9V,KAAM,oBACN2W,SAAS,eAAIN,SAASP,YAAb,eAAmBa,UAAW,KAAIN,SAAS8M,YAPc,0D,6DCJvE,SAASG,GAAgB/V,EAAQgW,GAEpC,IAPc,eACsBC,KAMjBD,GAAU,CAIzB,MAHc,6BACYC,KAAKD,GAGpB3U,IAAQrB,GAAU,GAAIgW,GAG1B3U,IAAQwB,GAAO/C,WAAYkW,GAGtC,OAAOA,E,wECaIE,GAnCH,SAAC,GAA0E,IAG/EC,EACAC,EAJOC,EAAuE,EAAvEA,OAAQC,EAA+D,EAA/DA,aAAcC,EAAiD,EAAjDA,IAAKC,EAA4C,EAA5CA,IAAKC,EAAuC,EAAvCA,aAAcC,EAAyB,EAAzBA,UAAcC,EAAW,mBAC1E3W,EAAW6C,GAAX7C,OACOA,IAIPqW,IACAF,EAAYM,EAAeJ,EDkBhC,SAA4BA,EAAQrW,GACvC,IAAM4W,EAAeC,KAAOC,MAAMT,GAIlC,OAHAO,EAAapH,SAAQ,SAAC+G,GAClBA,EAAIpP,IAAM4O,GAAgB/V,EAAQuW,EAAIpP,QAEnC0P,KAAOE,UAAUH,GCvBoBI,CAAmBX,EAAQrW,IAEnEoW,EAASL,GAAgB/V,EAAQuW,IASrC,OACI,+CACQI,GADR,IAEIH,IAAKA,EACLD,IAAKH,GAAU,GACfC,OAAQF,GAAa,GACrBc,IAAK,SAACC,GAZO,IAACC,KAYYD,IAXnBR,GACPA,EAAUS,IAWVC,QAAS,SAACC,GACFf,IACAe,EAAEC,OAAOf,IAAT,UAAkBD,GAClBe,EAAEC,OAAOT,OAAT,UAAqBP,S,oBC9BjCvX,GAA8B8D,GAA9B9D,iBAAkBD,GAAY+D,GAAZ/D,QAEbyY,GAAsB,CAC/B,EAAG,EACH,EAAG,EACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,IAGKC,GAAuB,CAChC,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,MAGA,SAASC,GAAiB3a,GAE7B,OAAIA,EAAQ,EACD,EAEPA,EAAQ,GACD,GAGJnM,OAAOC,KAAK2mB,IAAqB/R,MAAK,SAACkS,GAAD,OAASH,GAAoBG,KAAS5a,MAAU,EAG1F,IAOM6a,GACC,CAAC,EAAG,IADLA,GAEC,CAAC,EAAG,IAFLA,GAGE,CAAC,EAAG,IAGNC,GACJ,MADIA,GAEH,OAGGC,GAIE,IAGFC,GAGA,UAHAA,GAMG,aANHA,GAOC,WAPDA,GAQA,UARAA,GAUC,WAVDA,GAWC,WAXDA,GAYF,QAZEA,GAaH,OAbGA,GAcF,QAdEA,GAeC,WAfDA,GAgBE,YAhBFA,GAiBE,YAGFC,GACF,QADEA,GAEC,WAFDA,GAGH,OAHGA,GAIA,UAJAA,GAKA,UAGAC,GACC,WADDA,GAEC,WAFDA,GAGH,OAHGA,GAIA,UAJAA,GAKE,iBAGFC,GAEG,aAFHA,GAGA,UAHAA,GAIH,OAGGC,GAEa,uBAFbA,GAGK,eAGLC,GAAsB,CAC/B,CAAErb,MAAO,GAAI/D,MAAO,QACpB,CAAE+D,MAAO,GAAI/D,MAAO,QACpB,CAAE+D,MAAO,GAAI/D,MAAO,QACpB,CAAE+D,MAAO,GAAI/D,MAAO,QACpB,CAAE+D,MAAO,IAAK/D,MAAO,SACrB,CAAE+D,MAAO,IAAK/D,MAAO,UAMZqf,GAAkB,CAAEC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAGtCC,GACW,iBADXA,GAEc,sBAFdA,GAGW,iBAHXA,GAIc,sBAGdC,GAA0B,CACnC,CAAEnoB,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,gBAAiByI,MAAO,WAC9B,CAAEzI,GAAI,YAGGooB,GAAkB,CAC3B,CAAEpoB,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,YAGGqoB,GAA6B,CACtC,CAAEroB,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,YAGGsoB,GAA8B,CACvC,CAAEtoB,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,sBAAuByI,MAAO,SACpC,CAAEzI,GAAI,sBAAuByI,MAAO,SACpC,CAAEzI,GAAI,gBAAiByI,MAAO,WAC9B,CAAEzI,GAAI,YAGGuoB,GAAsB,CAC/B,CAAEvoB,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,sBAAuByI,MAAO,SACpC,CAAEzI,GAAI,sBAAuByI,MAAO,SACpC,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,YAGGwoB,GAAiC,CAC1C,CAAExoB,GAAI,sBAAuByI,MAAO,SACpC,CAAEzI,GAAI,sBAAuByI,MAAO,SACpC,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,YAGGyoB,GAA2B,CACpC,CAAEzoB,GAAI,OAAQyI,MAAO,oBACrB,CAAEzI,GAAI,kCACN,CAAEA,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,gBAAiByI,MAAO,mBAGrBigB,GAA+B,CACxC,CAAE1oB,GAAI,OAAQyI,MAAO,oBACrB,CAAEzI,GAAI,kCACN,CAAEA,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,gBAAiByI,MAAO,mBAGrBkgB,GAAqC,CAC9C,CAAE3oB,GAAI,OAAQyI,MAAO,sBACrB,CAAEzI,GAAI,kCACN,CAAEA,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,aAAcyI,MAAO,aAC3B,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,gBAAiByI,MAAO,mBAGrBmgB,GAAyC,CAClD,CAAE5oB,GAAI,OAAQyI,MAAO,sBACrB,CAAEzI,GAAI,kCACN,CAAEA,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,gBAAiByI,MAAO,kBAC9B,CAAEzI,GAAI,gBAAiByI,MAAO,mBAGrBogB,GAA4B,CACrC,CAAE7oB,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,WAAYyI,MAAO,QACzB,CAAEzI,GAAI,wBAAyByI,MAAO,SACtC,CAAEzI,GAAI,wBAAyByI,MAAO,SACtC,CAAEzI,GAAI,gBAAiByI,MAAO,QAC9B,CAAEzI,GAAI,kBAAmByI,MAAO,UAChC,CAAEzI,GAAI,oBAAqByI,MAAO,WAkBzBqgB,GACF,QADEA,GAGG,aAHHA,GAII,cAJJA,GAMI,cANJA,GAOM,gBAPNA,GASG,aATHA,GAUK,eAVLA,GAWS,mBAXTA,GAYK,eAZLA,GAcO,iBAdPA,GAeW,qBAfXA,GAgBM,gBAhBNA,GAiBY,sBAGZC,GAAqB,CAC9BC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,KAAM,QAGGC,GACF,EADEA,GAED,EAFCA,GAGE,EAGFC,GACA,UADAA,GAEE,YAFFA,GAGH,OAHGA,GAID,SAGCC,GACQ,wEADRA,GAEU,gFAFVA,GAGK,yDAHLA,GAIO,+DAGPC,GAAqB,CAC9B,CAAEpE,KAAK,GAAD,OAAK7W,GAAL,WAAuB/F,MAAO,UACpC,CAAE4c,KAAK,GAAD,OAAK7W,GAAL,WAAuB/F,MAAO,UACpC,CAAE4c,KAAK,GAAD,OAAK7W,GAAL,cAA0B/F,MAAO,cAG9BihB,GAAsB,CAC/B,CAAErE,KAAK,GAAD,OAAK5W,GAAL,gBAAqChG,MAAO,SAClD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,oBAAyChG,MAAO,aACtD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,sBAA2ChG,MAAO,gBACxD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,kBAAuChG,MAAO,YACpD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,uBAA4ChG,MAAO,iBAGhDkhB,GAAkB,CAC3B,CAAEtE,KAAK,GAAD,OAAK5W,GAAL,eAAoChG,MAAO,QACjD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,gBAAqChG,MAAO,SAClD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,oBAAyChG,MAAO,QACtD,CAAE4c,KAAM,+CAAgD5c,MAAO,WAC/D,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,mBAAwChG,MAAO,YACrD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,qBAA0ChG,MAAO,cACvD,CAAE4c,KAAM,kCAAmC5c,MAAO,iBAGzCmhB,GAAqB,CAC9B,CAAEvE,KAAM,mDAAoD5c,MAAO,eACnE,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,4BAAiDhG,MAAO,kBAC9D,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,8BAAmDhG,MAAO,sBAChE,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,qBAA0ChG,MAAO,cACvD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,mBAAwChG,MAAO,mBACrD,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,wBAA6ChG,MAAO,oBAC1D,CAAE4c,KAAK,GAAD,OAAK5W,GAAL,0BAA+ChG,MAAO,uBAGnDohB,GAAoB,CAC7B,CAAE7pB,GAAI,EAAGyI,MAAO,IAAK4c,KAAM,6BAC3B,CAAErlB,GAAI,EAAGyI,MAAO,WAAY4c,KAAM,sCAClC,CAAErlB,GAAI,EAAGyI,MAAO,YAAa4c,KAAM,yCACnC,CAAErlB,GAAI,EAAGyI,MAAO,SAAU4c,KAAM,sCAChC,CAAErlB,GAAI,EAAGyI,MAAO,UAAW4c,KAAM,oCAGxByE,GACO,EADPA,GAEc,EAFdA,GAGQ,EAHRA,GAIQ,ECtVbC,GAAWhV,GAENiV,GAAa,SAACC,GACvB,OAAOA,EAAKpP,KAAI,SAAChV,GAAD,OAASqkB,SAAS7pB,OAAOC,KAAK2mB,IAAqB/R,MAAK,SAACkS,GAAD,OAASH,GAAoBG,KAASvhB,UAGrGskB,GAAa,SAAC3d,GACvB,IAAM4d,EAAa5d,EAAM,GACnB6d,EAAW7d,EAAM,GACvB,OAAmB,IAAf4d,GAAoBC,IAAahqB,OAAOC,KAAK2mB,IAAqB1mB,OAC3D,MAEQ,IAAf6pB,EACM,GAAN,OAAUnD,GAAoBoD,GAA9B,cAEAA,IAAahqB,OAAOC,KAAK2mB,IAAqB1mB,OACxC,GAAN,OAAU0mB,GAAoBmD,GAA9B,aAEE,GAAN,OAAUnD,GAAoBmD,GAA9B,eAAgDnD,GAAoBoD,KAG3DC,GAAuB,SAAC,GAAkC,IAAhCjf,EAA+B,EAA/BA,UAA+B,IAApBkf,cAAoB,MAAX,KAAW,EAC5DC,EAAMC,OACNC,EAASD,OAASE,YAClBC,EAAYvf,EAAUwf,MAAM,KAKlC,GAHAL,EAAIM,MAAMZ,SAASU,EAAU,KAAKG,QAAQb,SAASU,EAAU,KAC7DJ,EAAIQ,IAAIN,EAAQ,WAEZH,EACA,OAAOC,EAAID,OAAOA,GAGtB,IAAMO,EAAQN,EAAI1T,IAAI,QAChBiU,EAAUP,EAAI1T,IAAI,UAExB,MAAM,GAAN,OAAUgU,EAAV,YAAmBC,IAGVE,GAAsB,SAACC,GAA+B,IAAvBC,EAAsB,wDAC9D,EAUID,GAAU,GATVE,EADJ,EACIA,WACAC,EAFJ,EAEIA,kBACAC,EAHJ,EAGIA,sBACAC,EAJJ,EAIIA,6BACAC,EALJ,EAKIA,WACAC,EANJ,EAMIA,kBACAC,EAPJ,EAOIA,sBACAC,EARJ,EAQIA,6BACAC,EATJ,EASIA,SAGJ,GAAIT,EAAW,CACX,GAAIC,GAA6B,IAAfA,EACd,MAAO,CAAES,YAAY,EAAM/lB,OAAQulB,GAEvC,GAAIC,GAAmD,IAA1BA,EACzB,MAAO,CAAEO,YAAY,EAAO/lB,OAAQylB,OAErC,CACH,GAAIC,GAA6B,IAAfA,EACd,MAAO,CAAEK,YAAY,EAAM/lB,OAAQ2lB,GAEvC,GAAIC,GAAmD,IAA1BA,EACzB,MAAO,CAAEG,YAAY,EAAO/lB,OAAQ6lB,GAI5C,GAAIC,EAAU,CACV,IAAQE,EAAiCF,EAAjCE,cAAeC,EAAkBH,EAAlBG,cACvB,MAAO,CAAEF,YAAY,EAAO/lB,OAAO,GAAD,OAAKgmB,EAAL,YAAsBC,IAG5D,MAAO,CAAEF,YAAY,EAAO/lB,OAAQ,SAG3BkmB,GAAmC,SAACd,GAC7C,IAAQU,GAAaV,GAAU,IAAvBU,SAGR,MAAO,CAAEC,YAAY,EAAO/lB,QAFL,OAAR8lB,QAAQ,IAARA,OAAA,EAAAA,EAAUK,0BAA2B,OA4B3CC,GAAuB,SAAChB,EAAQC,GACzC,MAAuED,GAAU,GAAzEiB,EAAR,EAAQA,wBAAyBC,EAAjC,EAAiCA,wBAAyBR,EAA1D,EAA0DA,SAE1D,OAAIT,EAIO,CAAErlB,QAH6B,OAAvBsmB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBC,aAAzB,OAAsCT,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAUK,0BAA2B,IAGzEniB,aAF0B,OAAvBsiB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBtiB,eAAwB,OAAR8hB,QAAQ,IAARA,OAAA,EAAAA,EAAUK,0BAA2B,aAAgB,GAEpFpiB,oBADuC,cAAlB,OAAvBuiB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBtiB,cAAuE,eAAlB,OAAvBsiB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBtiB,cAOzG,CAAEhE,QAH6B,OAAvBqmB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBE,aAAzB,OAAsCT,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAUK,0BAA2B,IAGzEniB,aAF0B,OAAvBqiB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBriB,eAAwB,OAAR8hB,QAAQ,IAARA,OAAA,EAAAA,EAAUK,0BAA2B,aAAgB,GAEpFpiB,oBADuC,cAAlB,OAAvBsiB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBriB,cAAuE,eAAlB,OAAvBqiB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBriB,eAInGwiB,GAAmB,SAACplB,EAAcnC,EAAYwlB,GACvD,IAAMvkB,EAAYykB,KAAO8B,IAAIrlB,GAAcslB,OAAM,GAC3CC,EAAUhC,KAAO8B,IAAIxnB,GAAYynB,OAAM,GACvCE,EAAqB1mB,EAAUukB,OAAOA,GACtCoC,EAAmBF,EAAQlC,OAAOA,GAGxC,OAFoBE,KAAOzkB,GAAW4mB,OAAOH,EAAS,OAEjCC,EAAH,UAA2BA,EAA3B,cAAmDC,IAG5DE,GAAkB,SAAC,GAAsD,IAO9EC,EAP0BC,EAAmD,EAAnDA,QAAmD,IAA1CxC,cAA0C,MAAjC,KAAiC,MAA3ByC,oBAA2B,SAC3EC,EAAaxC,OAASyC,QACtBC,EAAY1C,KAAOsC,GAASG,QAG5BE,GAAuBH,GAAcE,IAAcH,GAAkBC,IAAeE,GAAaH,EAYvG,OAPIF,EANmBG,IAAeE,IAAcH,IAAmBC,GAAcE,GAAaH,EAMvFvC,KAAO8B,IAAIQ,GAASP,QAAQxB,IAAI,EAAG,QACnCoC,EACA3C,KAAO8B,IAAIQ,GAASP,QAAQa,SAAS,EAAG,QAExC5C,KAAO8B,IAAIQ,GAASP,QAG3BjC,EACOuC,EAAKvC,OAAOA,GAGhBuC,GAgCEQ,GAA8B,SAAC,GAAkE,IAAhE3oB,EAA+D,EAA/DA,kBAAmBC,EAA4C,EAA5CA,YAA4C,IAA/B2oB,wBAA+B,SACzG,EAAiC5oB,GAAqB,GAA9C6oB,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,UAEnB,GAAI7oB,GAAe4oB,GAAaC,EAAW,CACvC,IAAMC,EAAS9oB,IAAgBmlB,GAAS,MAAQ,OAC1C4D,EAlCsB,SAACC,EAAQC,GACzC,IAAMC,EAAkBC,OAAOC,UAAUJ,GACnCK,EAAkBF,OAAOC,UAAUH,GACnCK,EAAWJ,EAAkBF,EAAOO,QAAQ,GAAKP,EACjDQ,EAAWH,EAAkBJ,EAAOM,QAAQ,GAAKN,EAEvD,MAAM,GAAN,OAAUK,EAAV,cAAwBE,GA4BNC,CAAqBb,EAAWC,GAC9C,OAAOF,EAAgB,UAAMG,EAAN,YAAgBC,GAAUA,EAGrD,MAAO,ICjMHW,GAAuBvZ,GAAXgV,GAAWhV,GACvBwZ,GAAqGnb,GAA3Eob,GAA2Epb,GAArDqb,GAAqDrb,GAA1Bsb,GAA0Btb,GAEhGub,GAAc,SAACluB,EAAUyE,GAClCjG,OAAOiE,KAAP,UAAeqP,GAAO/D,QAAtB,sBAA2C/N,EAA3C,kBAA6DyE,GAAe,UAAU0pB,SA0B7EC,GAAkB,SAACC,GAC5B,cAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAYC,QAAO,SAACC,GAAD,cAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAW1sB,gBAAcuY,KAAI,SAACmU,GAAD,OAAeA,EAAU1sB,iBAGtF2sB,GAAgB,SAACC,GAC1B,GAAIA,GAAkC,kBAAdA,GAApB,OAA8CA,QAA9C,IAA8CA,KAAWC,SAAS,KAAM,CACxE,IAAMpsB,EAAQmsB,EAAUrE,MAAM,KACxBuE,EAAQ,OAAGrsB,QAAH,IAAGA,OAAH,EAAGA,EAAO8X,IAAIkT,QAE5B,OADgB,OAAGqB,QAAH,IAAGA,OAAH,EAAGA,EAAUC,QAAO,SAACC,EAAa3pB,GAAd,OAAgC2pB,EAAc3pB,GAAgBypB,EAAS7uB,UAG/G,OAAOgvB,WAAWL,IAGTM,GAAgB,SAACC,EAAaC,GASvC,OAPIA,GAAeD,EACT,UAAMA,EAAN,QACCA,EACD,UAAMA,GAEH,UAKJE,GAA8B,SAAC9W,GACxC,IACI+W,EAAqB/W,EAIzB,OAHKA,IACD+W,EAHgBxa,IAKbwa,GAGEC,GAA4B,SAACC,GAAD,OAAa,YAAIA,GAASC,MAAK,SAAUhY,EAAGiY,GACjF,OAAOL,GAA2B,OAAC5X,QAAD,IAACA,OAAD,EAACA,EAAGkY,gCAAkCN,GAA2B,OAACK,QAAD,IAACA,OAAD,EAACA,EAAGC,iCACvGhB,GAAa,OAACe,QAAD,IAACA,OAAD,EAACA,EAAGrmB,YAAcslB,GAAa,OAAClX,QAAD,IAACA,OAAD,EAACA,EAAGpO,cAC/C,OAADqmB,QAAC,IAADA,OAAA,EAAAA,EAAGxE,aAAH,OAAgBzT,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAGyT,gBAGV0E,GAAkB,SAACC,GAAgB,IAAD,IACvCvX,EAAQ,KACJ8G,EAA0EyQ,EAA1EzQ,QAAS0Q,EAAiED,EAAjEC,8BAA+BC,EAAkCF,EAAlCE,8BAEhD3Q,EAAQR,SAAQ,SAACoR,GACb,MAAiCA,GAAU,GAC3C,EADA,EAAQxsB,WACkG,GAC1G,EAFA,EAAmBC,WAEuF,GAGpGwsB,EADY,CAHlB,EAAQC,oBAAR,EAAiDC,oBACjD,EAAQD,oBAAR,EAAiDC,qBAGnB1B,QAAO,SAAC/uB,GAAD,OAAQA,KACjB,IAAI0wB,IAAIH,GAAaI,OAASJ,EAAYhwB,SAGlEqY,EAAK,2CAA6C,OAAN0X,QAAM,IAANA,KAAQM,SAAW,UAAY,UAAtE,8BAA8FN,QAA9F,IAA8FA,OAA9F,EAA8FA,EAAQO,oBAInH,IAAMC,EAAkC,IAAIJ,IAAJ,OAAQN,QAAR,IAAQA,OAAR,EAAQA,EAA+B7Q,eAAeoR,QAAtD,OAA+DP,QAA/D,IAA+DA,GAA/D,UAA+DA,EAA+B7Q,qBAA9F,aAA+D,EAA8Chf,QAC/IwwB,EAAkC,IAAIL,IAAJ,OAAQL,QAAR,IAAQA,OAAR,EAAQA,EAA+B9Q,eAAeoR,QAAtD,OAA+DN,QAA/D,IAA+DA,GAA/D,UAA+DA,EAA+B9Q,qBAA9F,aAA+D,EAA8Chf,QAMrJ,OAJIuwB,GAAmCC,KACnCnY,EAAQ,iDAGLA,GAGEoY,GAAuB,SAAC5rB,GACjC,IAAQsK,EAAW6C,GAAX7C,OACR,MAAM,GAAN,OAAUA,EAAV,sBAA8BtK,IAGrB6rB,GAAsB,SAAC9rB,GAChC,MAAM,GAAN,OAAUoN,GAAO/D,QAAjB,qBAAqCrJ,IAG5B+rB,GAA4B,SAACC,GACtC,OAAOA,EAAQtW,KAAI,SAACC,GAChB,IAAQ7W,EAAgD6W,EAAhD7W,UAAWC,EAAqC4W,EAArC5W,SAAUzD,EAA2Bqa,EAA3Bra,SAAUqB,EAAiBgZ,EAAjBhZ,SACvC,MAAO,CACH9B,GAFoD8a,EAAP9a,GAG7CkF,YAAY,GAAD,OAAKjB,EAAL,YAAkBC,GAC7BpC,SAAU,CACNuD,SAAiB,OAARvD,QAAQ,IAARA,OAAA,EAAAA,EAAUC,aAAV,OAAuBD,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAUE,mBAE9CvB,WACA+E,oBAAqB,QAK3B4rB,GAAuB,SAACrZ,EAAGiY,EAAGqB,GAChC,OAAIrB,EAAEqB,GAAWtZ,EAAEsZ,IACP,EAERrB,EAAEqB,GAAWtZ,EAAEsZ,GACR,EAEJ,GAGEC,GAAgB,SAACC,EAAOF,GACjC,OAAOE,IAAUjK,GAAgB,SAACvP,EAAGiY,GAAJ,OAAUoB,GAAqBrZ,EAAGiY,EAAGqB,IAAW,SAACtZ,EAAGiY,GAAJ,OAAWoB,GAAqBrZ,EAAGiY,EAAGqB,KAY9GG,GAAyB,SAACC,EAAiB7sB,GACpD,IAAQ8sB,EAAkBre,GAAXse,EAAWte,GAE1B,IAAmB,OAAfoe,QAAe,IAAfA,OAAA,EAAAA,EAAiBlxB,QAAS,GAAK,OAACkxB,QAAD,IAACA,MAAiBlxB,OAAQ,CACzD,GAAIqE,IAAgB0pB,GAChB,MAAO,CAACC,GAA0BE,IAEtC,GAAI7pB,IAAgBmlB,GAChB,MAAO,CAACyE,GAAsBE,QAE/B,CACH,GAAI+C,EAAgB,KAAOC,GAAS9sB,IAAgBmlB,GAChD,MAAO,CAACyE,IAEZ,GAAIiD,EAAgB,KAAOE,GAAU/sB,IAAgBmlB,GACjD,MAAO,CAAC2E,IAEZ,GAAI+C,EAAgB,KAAOC,GAAS9sB,IAAgB0pB,GAChD,MAAO,CAACC,IAEZ,GAAIkD,EAAgB,KAAOE,GAAU/sB,IAAgB0pB,GACjD,MAAO,CAACG,IAIhB,MAAO,I,qBCzIImD,GAjCS,SAAC,GAA8G,IAG/HC,EAHmB/Z,EAA2G,EAA3GA,QAASkO,EAAkG,EAAlGA,aAAc8L,EAAoF,EAApFA,UAAWC,EAAyE,EAAzEA,OAAQC,EAAiE,EAAjEA,SAAU3uB,EAAuD,EAAvDA,SAAU4uB,EAA6C,EAA7CA,kBAAmBC,EAA0B,EAA1BA,MAAO/L,EAAmB,EAAnBA,aACzGgM,EAAWJ,EAAOK,QAClBC,EDI4B,SAAC,GAAsC,IAApCva,EAAmC,EAAnCA,QAASqa,EAA0B,EAA1BA,SAAUL,EAAgB,EAAhBA,UACxD,MAAM,GAAN,OAAUha,GAAV,OAAoBqa,EAApB,yBAA6CL,EAA7C,sBACGha,GADH,OACaqa,EADb,yBACsCL,EADtC,sBAEGha,GAFH,OAEaqa,EAFb,yBAEsCL,EAFtC,OCL4BQ,CAAuB,CAAExa,UAASqa,WAAUL,cAIpED,EADAM,EACS,UAAMra,GAAN,OAAgBqa,GAEbnM,EAWhB,OACI,sBAAKuM,UAAS,UAAKC,KAAOC,gBAAZ,YAA+BT,EAAWQ,KAAOR,GAAY,GAA7D,YAAmEC,GAAqB,IAAMC,MAAOA,EAAnH,UACI,cAAC,GAAD,CACIjM,IAAK4L,EACL9L,OAAQsM,EACRrM,aAAcA,EACdI,UAdc,SAACsM,GACvB,IAAM7L,EAAM6L,EACZ,GAAI7L,EAAK,CACL,IAAMZ,EAAMY,EAAI8L,WAAa9L,EAAI8L,WAAa9L,EAAIZ,IAClDY,EAAI+L,WAAWV,MAAMO,gBAArB,eAA+CxM,EAA/C,QAWIE,aAAcA,IAEjB9iB,M,oEC5BPwvB,G,mKACF,SAAUhzB,GACN,OAAO,mEAAgBO,aAAgBP,Q,GAFtBJ,KAAIqzB,MAMd,IACXrtB,UAAW,IAAIotB,GACfE,aAAc,IAAIF,GAClBG,0BAA2B,IAAIH,GAC/BI,gBAAiB,IAAIJ,ICTVK,GAJU,SAACC,GACtB,OAAO,SAACC,GAAD,OAAW,cAACD,EAAD,2BAAsBC,GAAtB,IAA6BC,aAAcC,QCE3DC,GAAUC,sBAAY,CACxBrxB,KAAM,KACNsxB,aANiB,CACjBC,cAAc,GAMdC,SAAU,CACNC,YADM,SACMjnB,EAAOknB,GACflnB,EAAM+mB,aAAeG,EAAOC,SAEhCC,eAJM,SAISpnB,GACXA,EAAM+mB,cAAgB/mB,EAAM+mB,iBAKjC,GAAwCH,GAAQS,QAAxCJ,GAAR,GAAQA,YAAaG,GAArB,GAAqBA,eACbR,MAAf,Q,4BCCeU,GAnBK,SAAC,GAAsC,IACnDhtB,EADeitB,EAAmC,EAAnCA,iBAAkBC,EAAiB,EAAjBA,WAYrC,MANgC,kBAArBD,GAA6D,kBAArBA,EAC/CjtB,EAAcitB,EACqB,kBAArBA,IACdjtB,EAAyCitB,EANjBnF,OAAOqF,SAASC,KAAK,aAS1CF,EACH,+BAAOltB,IAEP,sBAAMsrB,UAAU,gBAAhB,SAAiCtrB,KCjB1B,OAA0B,wCCA1B,OAA0B,+CCA1B,OAA0B,+CCA1B,OAA0B,6CCA1B,OAA0B,gDCA1B,OAA0B,8CCA1B,OAA0B,+C,UCMnCqtB,GAAU,SAAClB,GACb,IAAQmB,EAA+CnB,EAA/CmB,KAAM5D,EAAyCyC,EAAzCzC,KAAMzK,EAAmCkN,EAAnClN,IAAKgM,EAA8BkB,EAA9BlB,MAAOsC,EAAuBpB,EAAvBoB,UAAWC,EAAYrB,EAAZqB,QAI3C,OAHID,IACAtC,EAAMwC,OAAS,WAGf,cAACC,GAAA,EAAD,CAAMzC,MAAK,aAAI0C,MAAOjE,EAAMkE,OAAQlE,EAAMmE,SAAU,QAASC,SAAU,QAAS1vB,QAAS,QAAW6sB,GAASuC,QAASA,EAAtH,SACI,qBAAKxO,IAAKsO,EAAMrO,IAAKA,OASjCoO,GAAQU,aAAR,e3BuDuC,CACnCT,KAAM,KACN5D,KAAM,K2BrDK2D,U,UCxBTW,GAAI,CAAEC,wBAECC,GAAwB,CACjCC,MAAO,CACHhyB,MAAO,qBACP6D,YACI,6MAERouB,QAAS,CACLjyB,MAAO,UACP6D,YAAa,4EAEjBquB,SAAU,CACNlyB,MAAO,kBACP6D,YACI,yHAERsuB,UAAW,CACPnyB,MAAO,mBACP6D,YACI,6aAINuuB,GAAe,CAAC,YAAa,WAAY,SAezCC,GAAkB,SAACC,EAAcC,GACnC,OAAIA,GAAeA,EAAc,GAAKH,GAAarG,SAASuG,GACjDA,EAMPC,GAAeA,EAAc,EAEtB,YAEJ,WAGLC,GAAoB,SAACF,EAAcC,EAAaE,GAClD,OAAIF,GAAeA,EAAc,GAAKH,GAAarG,SAASuG,GACjDG,EAEPF,GAAeA,EAAc,EACtB,EAEJE,G,oBC/DEC,GAAO,SAAC3zB,EAAMixB,GAAW,IAAD,EACjC,UAAIn0B,cAAJ,OAAI,EAAQ82B,WACR92B,OAAO82B,UAAU3W,KAAjB,aACI4W,MAAO7zB,GACJixB,KAKF6C,GAAgB,SAAC,GAAqC,IAAnCr2B,EAAkC,EAAlCA,QAASkC,EAAyB,EAAzBA,SAAUo0B,EAAe,EAAfA,SACzCC,EAAQ,GAUd,OATID,IACAC,EAAM,iBAAmBD,GAEzBt2B,IACAu2B,EAAM,gBAAkBv2B,GAExBkC,IACAq0B,EAAM,iBAAmBr0B,GAEtBq0B,GCeH3nB,GAAqB+D,GAArB/D,QAASI,GAAY2D,GAAZ3D,QACXwnB,GAAqB,CACvBC,MAAO,CAAEpxB,MAAO,EAAGqxB,KAAM,IACzBC,SAAU,CAAEtxB,MAAO,EAAGqxB,KAAM,IAC5BE,OAAQ,CAAEvxB,MAAO,EAAGqxB,KAAM,IAC1BG,YAAa,CAAExxB,MAAO,EAAGqxB,KAAM,IAC/BxG,QAAS,CAAE7qB,MAAO,EAAGqxB,KAAM,KA2tBhBI,GAxtBM,WAAO,IAAD,IACfxpB,E7BpCDypB,qBAAWzqB,G6BoCVgB,QACF0pB,EAAWC,eACXC,EAAYC,iBAAO,MACnBC,EAAaD,iBAAO,MACpBE,EAAWF,iBAAO,MAChBG,EAAgBC,uBAAY,SAACxqB,GAAD,cAAWA,QAAX,IAAWA,OAAX,EAAWA,EAAO9M,QAA9Cq3B,YACA1I,EAAqGpb,GAA/Esb,EAA+Etb,GAAxDmb,EAAwDnb,GAA9Bqb,EAA8Brb,GAC7G,EAAkC1G,oBAAS,GAA3C,mBAAOlD,EAAP,KAAkB4tB,EAAlB,KACA,EAAwC1qB,oBAAS,GAAjD,mBAAO2qB,EAAP,KAAqBC,EAArB,KACA,EAAsC5qB,mBAAS,IAA/C,mBAAO6qB,EAAP,KAAoBC,EAApB,KACA,EAAsC9qB,oBAAS,GAA/C,mBAAO+qB,EAAP,KAAoBC,EAApB,KACA,EAAsChrB,mBAAS0pB,IAA/C,mBAAOuB,EAAP,KAAoBC,EAApB,KAEQvB,EAAkDsB,EAAlDtB,MAAOE,EAA2CoB,EAA3CpB,SAAUC,EAAiCmB,EAAjCnB,OAAQC,EAAyBkB,EAAzBlB,YAAa3G,EAAY6H,EAAZ7H,QACxC+H,EAA0B,OAAG3qB,QAAH,IAAGA,GAAH,UAAGA,EAAShM,oBAAZ,aAAG,EAAuB4L,oBACpDgrB,EAA2B,OAAG5qB,QAAH,IAAGA,GAAH,UAAGA,EAAShM,oBAAZ,aAAG,EAAuB6L,qBAErDgrB,EACc,IAAhB1B,EAAMpxB,OACa,IAAnBsxB,EAAStxB,OACQ,IAAjBuxB,EAAOvxB,OACe,IAAtBwxB,EAAYxxB,OACM,IAAlB6qB,EAAQ7qB,QACPuE,GACDiuB,GACAF,EAEES,EACF3B,EAAMpxB,MAAQ,GAAKsxB,EAAStxB,MAAQ,GAAKuxB,EAAOvxB,MAAQ,GAAKwxB,EAAYxxB,MAAQ,GAAK6qB,EAAQ7qB,MAAQ,GAAKuE,EAE/GqD,qBAAU,WACN,IAAMorB,EAAgB,uCAAG,wCAAAlgB,EAAA,6DACfT,EAAgBrB,MAChBgB,EAAS,IAAIihB,iBAEZC,OAAO,QAASZ,GACvBtgB,EAAOkhB,OAAO,MAAO,IACrBlhB,EAAOkhB,OAAO,OAAQ,GACtBlhB,EAAOkhB,OAAO,oBAAoB,GAE5BC,EATe,UASAxpB,GATA,sBASqBqI,IACpCohB,EAASvB,EAAUwB,UAGrBD,IAbiB,UAgBE/gB,EAClBR,IAAIshB,EAAW,CACZG,YAAa,IAAIC,eAAY,SAACC,GAC1B3B,EAAUwB,QAAUG,KAExBxhB,WAEHyhB,OAAM,SAAC9f,GACC+f,mBAAS/f,IACVwe,GAAa,MAzBJ,QA6BrB,QAbM5e,EAhBe,cA6BrB,IAAIA,KAAUP,OACFA,EAASO,EAATP,KACF2gB,EAAa,CACfvC,MAAK,OAAEpe,QAAF,IAAEA,OAAF,EAAEA,EAAMoe,MACbG,OAAM,OAAEve,QAAF,IAAEA,OAAF,EAAEA,EAAMue,OACd1G,QAAO,OAAE7X,QAAF,IAAEA,OAAF,EAAEA,EAAM6X,QACf2G,YAAW,OAAExe,QAAF,IAAEA,OAAF,EAAEA,EAAMwe,YACnBF,SAAQ,OAAEte,QAAF,IAAEA,OAAF,EAAEA,EAAMwe,aAEpBmB,EAAegB,GACfxB,GAAa,GACbM,GAAe,IAxCE,4CAAH,qDA2ClBluB,GAAe+tB,EAAYh3B,QAC3B03B,MAEL,CAACzuB,EAAW+tB,IAEf,IAAMsB,EAAqBC,uBAAY,SAAC9C,GAChCgB,IAAeA,EAAWsB,QAAQS,SAAS/C,EAAMhP,SACjDsQ,GAAgB,KAErB,IAEHzqB,qBAAU,WAEN,OADA3N,SAAS85B,iBAAiB,YAAaH,GAChC,WACH35B,SAAS+5B,oBAAoB,YAAaJ,MAE/C,CAACA,IAEJ,IAuCMK,EAAiB,uCAAG,WAAOlD,EAAOmD,GAAd,eAAAphB,EAAA,sDAClBie,GACAA,EAAMoD,iBAEV9B,GAAgB,GAEVrgB,EAAS,IAAIihB,gBAEfX,GACAtgB,EAAOkhB,OAAO,QAASZ,GAE3BtgB,EAAOkhB,OAAO,SAAU,GACxBlhB,EAAOkhB,OAAO,SAAU,IACxBlhB,EAAOkhB,OAAO,UAAW,YACzBlhB,EAAOkhB,OAAO,cAAe,WAC7BlhB,EAAOkhB,OAAO,iBAAkB,GAChClhB,EAAOkhB,OAAO,OAAQgB,GAEtBl6B,OAAO6C,SAAP,UAAqB0M,GAArB,mBAAuCyI,GAlBjB,4CAAH,wDA6CjBoiB,EAAwB,SAACF,GAC3B7B,GAAgB,GAChBr4B,OAAO6C,SAAP,UAAqB0M,GAArB,iGAAqH2qB,IAGnHG,GAA8B,SAACpwB,GAAD,OAAc,SAAC8sB,GAC/CA,EAAMoD,iBACN9B,GAAgB,GAChBV,EAAS,kBAAD,OAAmB1tB,MAGzBqwB,GAAe,SAACrO,EAAQsO,GAC1B,IAAQt0B,EAAyEgmB,EAAzEhmB,YAAau0B,EAA4DvO,EAA5DuO,iBAAkB1zB,EAA0CmlB,EAA1CnlB,OAAQjE,EAAkCopB,EAAlCppB,SAAU0D,EAAwB0lB,EAAxB1lB,oBAEnDM,EFzKkB,SAACA,EAAQ4zB,EAAeC,GACpD,IACIC,EADEh3B,EAAS,GAEXi3B,GAAiB,EAErB,OAAQ/zB,EAAOg0B,cACX,IAAK,aACDF,EAAW9zB,EAAOi0B,aAClBn3B,EAAOiW,OAAS4c,GAAgB3vB,EAAOk0B,mBAAoBl0B,EAAOi0B,cAClEn3B,EAAOq3B,UAAY,UACnBr3B,EAAOs3B,UAA8B,UAAlBt3B,EAAOiW,OAAqB,EAAI,EACnDjW,EAAOu3B,SAAWvE,GAAkB9vB,EAAOk0B,mBAAoBl0B,EAAOi0B,aAAcj0B,EAAOs0B,sBAC3F,MACJ,IAAK,aACDR,EAAW9zB,EAAOu0B,aAClBz3B,EAAOiW,OAAS4c,GAAgB3vB,EAAOw0B,mBAAoBx0B,EAAOu0B,cAClEz3B,EAAOq3B,UAAY,UACnBr3B,EAAOs3B,UAA8B,UAAlBt3B,EAAOiW,OAAqB,EAAI,EACnDjW,EAAOu3B,SAAWvE,GAAkB9vB,EAAOw0B,mBAAoBx0B,EAAOu0B,aAAcv0B,EAAOy0B,sBAC3F,MACJ,IAAK,qBACDX,EAAW9zB,EAAOiD,WAClBnG,EAAOiW,OAAS4c,GAAgB3vB,EAAO00B,oBAAqB10B,EAAOiD,YACnE8wB,GAAiB,EACjBj3B,EAAOq3B,UAAY,UACnBr3B,EAAOs3B,UAA8B,UAAlBt3B,EAAOiW,OAAqB,EAAI,EACnDjW,EAAOu3B,SAAWvE,GAAkB9vB,EAAO00B,oBAAqB10B,EAAOiD,WAAYjD,EAAO20B,uBAC1F,MACJ,QACIb,EAAW9zB,EAAO6D,WAClB/G,EAAOiW,OAAS4c,GAAgB3vB,EAAO40B,oBAAqB50B,EAAO6D,YACnEkwB,GAAiB,EACjBj3B,EAAOq3B,UAAY,UACnBr3B,EAAOs3B,UAA8B,UAAlBt3B,EAAOiW,OAAqB,EAAI,EACnDjW,EAAOu3B,SAAWvE,GAAkB9vB,EAAO40B,oBAAqB50B,EAAO6D,WAAY7D,EAAO60B,uBAG9Ff,GAAgC,kBAAbA,IACnBA,EAAWrK,WAAWqK,IAIJ,cAAlBh3B,EAAOiW,OACPjW,EAAOg4B,QAAU,UAEjBh4B,EAAOg4B,QAAU,MAIC,cAAlBh4B,EAAOiW,SACPjW,EAAOQ,MAAQ,aAGnBR,EAAOi4B,YAAcjB,EAEhBA,GAAyB,IAAbA,GAAoC,YAAlBh3B,EAAOiW,QAItCjW,EAAO4J,MAAP,UAAkBotB,EAASzL,QAAQ,IAE/BvrB,EAAO4J,MAAP,UADAktB,GAAiBC,EACCC,EAASzL,QAAQ,GAEjB2M,KAAKt4B,MAAMo3B,MAPjCh3B,EAAO4J,MAAQ,KACf5J,EAAOs3B,UAAY,GAWF,OAAjBt3B,EAAO4J,MACP5J,EAAOm4B,aAAP,UAAyB7Q,SAAStnB,EAAO4J,QAEzC5J,EAAOm4B,aAAen4B,EAAO4J,MAIjC,IAAMwuB,EAAcp4B,EAAO4J,MAAMqe,MAAM,KACvC,GAAImQ,EAAYz6B,OAAS,EAAG,CAAC,IAAD,cACGy6B,EADH,GACrBp4B,EAAOq4B,cADc,UAGxBr4B,EAAOq4B,cAAgB,GAU3B,OANAr4B,EAAOs4B,SAAWrB,EAGlBj3B,EAAOu4B,UAAYhG,GAAsBvyB,EAAOiW,OAAOrY,eAAe4C,MACtER,EAAOw4B,gBAAkBjG,GAAsBvyB,EAAOiW,OAAOrY,eAAeyG,YAErErE,EEgFYy4B,CF7EW,SAAC,GAAqC,IAAnCnQ,EAAkC,EAAlCA,OAAQoQ,EAA0B,EAA1BA,WAAYV,EAAc,EAAdA,QAC/CW,EAA0B,CAAC,WAAY,WACvCC,EAAkBtQ,EAAS+J,GAAEC,UAAUhK,GAAU,GAwFvD,OArFIoQ,GAAcV,EAGNY,EAAgB1B,aAFL,YAAfwB,EACgB,eAAZV,EAC+B,qBAEA,aAEhB,eAAZA,EACwB,qBAEA,aAE5BU,EAEY,YAAfA,EACIpQ,EAAOvhB,YAAcuhB,EAAOvhB,WAAa,IAAM4xB,EAAwBpM,SAASjE,EAAOwP,qBACvFc,EAAgB1B,aAAe,qBAE/B0B,EAAgB1B,aAAe,aAG5B5O,EAAOniB,YAAcmiB,EAAOniB,WAAa,IAAMwyB,EAAwBpM,SAASjE,EAAOsP,qBAC9FgB,EAAgB1B,aAAe,qBAE/B0B,EAAgB1B,aAAe,aAE5Bc,EAES,eAAZA,EACI1P,EAAOvhB,YAAcuhB,EAAOvhB,WAAa,IAAM4xB,EAAwBpM,SAASjE,EAAOwP,qBACvFc,EAAgB1B,aAAe,qBACxB5O,EAAOniB,YAAcmiB,EAAOniB,WAAa,IAAMwyB,EAAwBpM,SAASjE,EAAOsP,qBAC9FgB,EAAgB1B,aAAe,sBAE/B0B,EAAgB1B,aAAe,qBAC3B5O,EAAOvhB,YAAcuhB,EAAOvhB,WAAa,GAAoC,aAA/BuhB,EAAOwP,sBAIrDc,EAAgBd,oBAAsB,UACtCc,EAAgB7xB,WAAa,IAI9BuhB,EAAO6O,cAAgB7O,EAAO6O,aAAe,IAAMwB,EAAwBpM,SAASjE,EAAO8O,oBAClGwB,EAAgB1B,aAAe,aACxB5O,EAAOmP,cAAgBnP,EAAOmP,aAAe,IAAMkB,EAAwBpM,SAASjE,EAAOoP,oBAClGkB,EAAgB1B,aAAe,cAE/B0B,EAAgB1B,aAAe,aAC3B5O,EAAO6O,cAAgB7O,EAAO6O,aAAe,GAAmC,aAA9B7O,EAAO8O,qBAIzDwB,EAAgBxB,mBAAqB,UACrCwB,EAAgBzB,aAAe,IAMhC7O,EAAO4O,eAMP5O,EAAOvhB,YAAcuhB,EAAOvhB,WAAa,IAAM4xB,EAAwBpM,SAASjE,EAAOwP,qBAC9Fc,EAAgB1B,aAAe,qBACxB5O,EAAOniB,YAAcmiB,EAAOniB,WAAa,IAAMwyB,EAAwBpM,SAASjE,EAAOsP,qBAC9FgB,EAAgB1B,aAAe,qBACxB5O,EAAO6O,cAAgB7O,EAAO6O,aAAe,IAAMwB,EAAwBpM,SAASjE,EAAO8O,oBAClGwB,EAAgB1B,aAAe,aACxB5O,EAAOmP,cAAgBnP,EAAOmP,aAAe,IAAMkB,EAAwBpM,SAASjE,EAAOoP,oBAClGkB,EAAgB1B,aAAe,cAE/B0B,EAAgB1B,aAAe,aAC3B5O,EAAO6O,cAAgB7O,EAAO6O,aAAe,GAAmC,aAA9B7O,EAAO8O,qBAIzDwB,EAAgBxB,mBAAqB,UACrCwB,EAAgBzB,aAAe,KAGhCyB,EEb6BC,CAAmB,CAAEvQ,YAD/B,GAElBjkB,EAAc,GAGdA,EADAwyB,EACc,CAACA,GAED33B,GAAYA,EAASuD,QAAU,CAACvD,EAASuD,SAAW,GAEtE,IAAM6uB,EAAgB,sBAAQnuB,EAAS,CAACA,EAAO21B,OAAO,IAAM,IAAtC,YAA8Cz0B,IAEpE,OACIuyB,EA7LqB,GA8LjB,8CACIjH,UAAS,cAASC,KAAOmJ,4BACzBlH,QAAS,kBAxCC,SAACvJ,GACvBjsB,OAAO6C,SAAP,UAAqB0M,GAArB,qBAAyC0c,EAAOlrB,IAuCrB47B,CAAkB1Q,KAE7B+K,GAAc,CACdC,SAAU,uBACVt2B,QAAQ,8BAAD,OAAgCsrB,EAAOlrB,GAAvC,qBAAsDu3B,GAC7Dz1B,SAAU,mBAPlB,cAUI,qBAAKywB,UAAU,QAAf,SACI,cAAC,GAAD,CACIza,QAAQ,cACRkO,aAAc6V,GACd9J,OAAQvsB,EACRssB,UAAU,YACVE,SAAS,2BAGjB,sBAAKO,UAAU,SAAf,UACI,sBAAKA,UAAS,UAAKC,KAAOrwB,KAAZ,kBAAd,UACI,yCAAU+C,EAAV,OACCY,EAAOo1B,SAAW,cAAC,GAAD,CAAS3G,KAAMuH,GAAcnL,KAAK,OAAOzK,IAAI,aAAgB,MAEpF,qBAAKqM,UAAS,UAAKC,KAAOuJ,MAAZ,kBAAd,SACI,cAAC,GAAD,CAAa7H,iBAAkBA,YAzB3C,WAGasF,KA8BnBwC,GAAe,SAACC,EAAYzC,GAC9B,IAAQx5B,EAAmDi8B,EAAnDj8B,GAAImC,EAA+C85B,EAA/C95B,KAAML,EAAyCm6B,EAAzCn6B,SAAUo6B,EAA+BD,EAA/BC,gBAAiBC,EAAcF,EAAdE,UAC7C,EAAmCF,EAAWG,OAAtCl3B,EAAR,EAAQA,YAAam3B,EAArB,EAAqBA,UACfC,EAAWJ,EAAe,mBAAeA,EAAf,iBAAgD,KAC1EhI,EAAgB,YAAQpyB,GAAYA,EAASuD,QAAU,CAACvD,EAASuD,SAAW,IAC5Ek3B,EAAap6B,GAAQ+C,GAAem3B,EAC1C,OACI7C,EAtOqB,GAuOjB,2CACInU,KAAI,mBAAcrlB,IAEdi2B,GAAc,CACdC,SAAU,uBACVt2B,QAAQ,wBAAD,OAA0BI,EAA1B,qBAAyCu3B,GAChDz1B,SAAU,mBANlB,aASI,sBAAKywB,UAAS,cAASC,KAAOmJ,4BAA9B,UACI,qBAAKpJ,UAAU,QAAf,SACK+J,EACG,cAAC,GAAD,CACI/J,UAAWC,KAAOgK,gCAClBvW,IAAKqW,EACLvW,OAAM,UAAKuW,EAAL,qBAA0BA,EAA1B,wBAAkDA,EAAlD,eACNxV,QAAS,SAACC,GACNA,EAAEC,OAAOf,IAAM,kCACfc,EAAEC,OAAOT,OAAS,qCAI1B,cAAC,GAAD,CAAKgM,UAAWC,KAAOgK,gCAAiCvW,IAAKkW,EAAYM,GAAcC,OAG/F,sBAAKnK,UAAU,SAAf,UACI,mBAAGA,UAAS,UAAKC,KAAOrwB,KAAZ,oCAAZ,SAAiEo6B,IACjE,mBAAGhK,UAAS,UAAKC,KAAOrwB,KAAZ,oCAAZ,SAAiEo6B,IACjE,qBAAKhK,UAAS,UAAKC,KAAOuJ,MAAZ,kBAAd,SACI,cAAC,GAAD,CAAa7H,iBAAkBA,cA7B/C,WAEasF,KAoCnBmD,GAAa,SAACC,EAAMpD,GACtB,IAAQx5B,EAAoC48B,EAApC58B,GAAImC,EAAgCy6B,EAAhCz6B,KAAML,EAA0B86B,EAA1B96B,SAAU+6B,EAAgBD,EAAhBC,YACtB3I,EAAgB,sBACdpyB,GAAYA,EAASuD,QAAU,CAACvD,GAAYA,EAASuD,SAAW,IADlD,YAEdw3B,GAAeA,GAAe,GAAK,CAAC,GAAD,OAAIA,EAAJ,kBAAyBA,GAAeA,EAAc,EAAI,IAAM,KAAQ,KAEnH,OAAOrD,EAAQ,EACX,8CACIjH,UAAS,cAASC,KAAOmJ,4BACzBlH,QAAS,kBAtHG,SAACmI,GACrB39B,OAAO6C,SAAP,UAAqB0M,GAArB,kBAAsCouB,EAAK58B,IAqHpB88B,CAAgBF,KAE3B3G,GAAc,CACdC,SAAU,uBACVt2B,QAAQ,sBAAD,OAAwBI,EAAxB,qBAAuCu3B,GAC9Cz1B,SAAU,mBAPlB,cAUI,qBAAKywB,UAAU,QAAf,SACI,cAAC,GAAD,CAAKA,UAAWC,KAAOgK,gCAAiCvW,IAAK8W,OAEjE,sBAAKxK,UAAU,SAAf,UACI,mBAAGA,UAAS,UAAKC,KAAOrwB,KAAZ,kBAAZ,SAA+CA,IAC/C,qBAAKowB,UAAS,UAAKC,KAAOuJ,MAAZ,kBAAd,SACI,cAAC,GAAD,CAAa7H,iBAAkBA,YAhB3C,WAGasF,IAiBb,MAGFwD,GAAc,SAAChH,EAAOwD,GACxB,IAAQx5B,EAAwCg2B,EAAxCh2B,GAAImC,EAAoC6zB,EAApC7zB,KAAM86B,EAA8BjH,EAA9BiH,cAAeC,EAAelH,EAAfkH,WAC3BhJ,EAAmB,GAIzB,OAHI+I,GACA/I,EAAiB9U,KF5UK,SAAC6d,EAAeE,GAC9C,IAAQC,EAA+FH,EAA/FG,eAAgBC,EAA+EJ,EAA/EI,aAAcC,EAAiEL,EAAjEK,gBAAiBC,EAAgDN,EAAhDM,cAAeC,EAAiCP,EAAjCO,eAAgBC,EAAiBR,EAAjBQ,aACtF,OAAIH,IAAoBC,EAChBH,IAAmBC,EACb,GAAN,OAAUC,EAAV,YAA6BF,GAA7B,OAA8CD,EAAQ,YAAQK,GAAmB,IAE/E,GAAN,OAAUF,EAAV,YAA6BF,EAA7B,cAAiDC,GAAjD,OAAgEF,EAAQ,YAAQK,GAAmB,IAEjG,GAAN,OAAUF,EAAV,YAA6BF,GAA7B,OAA8CD,EAAQ,YAAQK,GAAmB,GAAjF,cAAyFD,EAAzF,YAA0GF,GAA1G,OACIF,EAAQ,YAAQM,GAAiB,IEmUPC,CAAmBT,EAAeC,GAAmC,cAArBA,EAAW1wB,QAGjFgtB,EAlTqB,GAmTjB,8CACIjH,UAAS,cAASC,KAAOmJ,4BACzBlH,QAAS,kBAzJA,SAACuB,GACtB/2B,OAAO6C,SAAP,UAAqB0M,GAArB,mBAAuCwnB,EAAMh2B,IAwJlB29B,CAAiB3H,KAE5BC,GAAc,CACdC,SAAU,uBACVt2B,QAAQ,uBAAD,OAAyBI,EAAzB,qBAAwCu3B,GAC/Cz1B,SAAU,mBAPlB,cAUI,qBAAKywB,UAAU,QAAf,SACI,cAAC,GAAD,CAAKA,UAAWC,KAAOgK,gCAAiCvW,IAAK2X,OAEjE,sBAAKrL,UAAU,SAAf,UACI,mBAAGA,UAAS,UAAKC,KAAOrwB,KAAZ,kBAAZ,SAA+CA,IAC/C,qBAAKowB,UAAS,UAAKC,KAAOuJ,MAAZ,kBAAd,SACI,cAAC,GAAD,CAAa7H,iBAAkBA,YAhB3C,WAGasF,KAoXzB,OACI,8BACI,qBAAKjH,UAAU,MAAf,SACI,qBAAKA,UAAU,+BAAf,SACI,sBAAKA,UAAS,UAAKC,KAAOqL,sBAAZ,YAAqCrL,KAAOsL,mBAAqBnX,IAAKqQ,EAApF,UACI,sBAAKzE,UAAWC,KAAOuL,2BAAvB,UACI,sBAAMxL,UAAS,mBAAc8E,GAAgB7E,KAAOwL,uBAArC,YAA+DxL,KAAOyL,cAArF,SACI,cAAC,GAAD,CAAS1J,KAAM2J,GAAYvN,KAAK,OAAOzK,IAAI,SAASgM,MAAO,CAAEiM,UAAW,OAE5E,uBACIhpB,KAAK,OACLwR,IAAKsQ,EACL1E,UAAS,uBAAkBC,KAAO4L,kBAAzB,YAA8C/G,GAAgB,iBACvEgH,QAlmBR,SAACrI,GACjB,IAAM5c,EAAQ4c,EAAMhP,OAAOxa,MAEvB4M,EAAM7Y,OAAS,EACG,UAAdy1B,EAAM5O,MACNgQ,GAAa,GACbE,GAAgB,GAChBE,EAAepe,IAGnBoe,EAAe,IAEnBI,EAAexB,IACfkB,GAAgB,IAslBQgH,QAnlBR,SAACtI,GACjB,IAAQhP,EAAWgP,EAAXhP,OACRuX,YAAW,WACP,IAAMnlB,EAAQ4N,EAAOxa,MAAMgyB,OACvBplB,EAAM7Y,OAAS,EACG,UAAdy1B,EAAM5O,MACNgQ,GAAa,GACbE,GAAgB,GAChBE,EAAepe,IAGnBoe,EAAe,IAEnBI,EAAexB,IACfkB,GAAgB,KACjB,MAqkBqBmH,QAzmBN,WAClBnH,GAAgB,GAChBL,EAASqB,QAAQ9rB,MAAQ+qB,GAwmBDmH,YAAY,aAEbnH,EAAYh3B,QACX,sBACIgyB,UAAS,oDAA+CC,KAAOmM,eAC/DlK,QAAS,kBAljBrCwC,EAASqB,QAAQ9rB,MAAQ,GACzBorB,EAAexB,IACfoB,EAAe,IACfF,GAAgB,GAChBI,GAAe,QAEf6G,YAAW,WACPtH,EAASqB,QAAQ1J,UAClB,WA8iBcyI,GAAgB,qBAAK9E,UAAWC,KAAOoM,8BAAvB,SAxXd,WACnB,IAAMC,IAAatH,EAAYh3B,OACzBu+B,IAAmB,OAAC5H,QAAD,IAACA,MAAa6H,mBACjCC,IAAuB,OAAC9H,QAAD,IAACA,MAAa+H,uBAC3C,OACI,sBAAK1M,UAAWC,KAAO0M,qBAAvB,WACML,GACE,sBAAKtM,UAAU,iBAAf,UACI,qBAAKA,UAAU,+BAAf,uCACA,sBAAKA,UAAU,iBAAf,UACI,cAAC4M,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,aACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,UACRkC,SAAU,uBAPlB,0BAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,YACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,aACRkC,SAAU,uBAPlB,6BAYCg9B,GACG,qCACI,cAACK,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,iBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,eACRkC,SAAU,uBAPlB,+BAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS6E,GAA4B9K,IACjCyH,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,oBACRkC,SAAU,uBAPlB,oCAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS6E,GAA4B5K,IACjCuH,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,qBACRkC,SAAU,uBAPlB,qCAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,mBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,sBACRkC,SAAU,uBAPlB,yCAcR,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,WACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,QACRkC,SAAU,uBAPlB,wBAYCg9B,GACG,qCACI,cAACK,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,cACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,WACRkC,SAAU,uBAPlB,2BAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,iBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,eACRkC,SAAU,uBAPlB,+BAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,cACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,YACRkC,SAAU,uBAPlB,4BAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsBgG,gBACjCpJ,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,eACRkC,SAAU,uBAPlB,+BAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,oBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,kBACRkC,SAAU,uBAPlB,kCAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,qBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,mBACRkC,SAAU,uBAPlB,mCAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,qBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,mBACRkC,SAAU,uBAPlB,mCAYA,cAACq9B,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,WACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,QACRkC,SAAU,uBAPlB,2BAcPk9B,GACG,qCACI,cAACG,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS,kBAAM4E,EAAsB,gBACjCpD,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,aACRkC,SAAU,uBAPlB,6BAYC+1B,GACG,cAACsH,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS6E,GAA4B/K,IACjC0H,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,wBACRkC,SAAU,uBAPlB,wCAaHg2B,GACG,cAACqH,GAAA,EAAD,yBACIC,QAAQ,OACRzO,KAAK,QACL8D,QAAS6E,GAA4B7K,IACjCwH,GAAc,CACdC,SAAU,yBACVt2B,QAAQ,yBACRkC,SAAU,uBAPlB,kDAkBvBi2B,GAAgB,qBAAKxF,UAAWC,KAAO8M,8BAAvB,8BAChBtH,GACG,sBAAKzF,UAAWC,KAAO+M,4BAAvB,YACM,OAACzP,QAAD,IAACA,MAASwG,KAAK/1B,SACb,qCACI,sBAAKgyB,UAAWC,KAAOgN,gBAAvB,oBAEI,eAACL,GAAA,EAAD,yBACI1K,QAAS,SAAC1N,GAAD,OAAOmS,EAAkBnS,EAAG,aACjCkP,GAAc,CACdC,SAAU,wBACVt2B,QAAQ,oBAAD,OAAsB23B,GAC7Bz1B,SAAU,uBALlB,yBAQY,mBAAGywB,UAAU,oDAG5BzC,EAAQwG,KAAKzb,KAAI,SAACqQ,EAAQuU,GAAT,OAAelG,GAAarO,EAAOwU,OAAQD,WAInE,OAACjJ,QAAD,IAACA,MAAQF,KAAK/1B,SACZ,qCACI,sBAAKgyB,UAAWC,KAAOgN,gBAAvB,mBAEI,eAACL,GAAA,EAAD,yBACI1K,QAAS,SAAC1N,GAAD,OAAOmS,EAAkBnS,EAAG,YACjCkP,GAAc,CACdC,SAAU,wBACVt2B,QAAQ,mBAAD,OAAqB23B,GAC5Bz1B,SAAU,uBALlB,yBAQY,mBAAGywB,UAAU,oDAG5BiE,EAAOF,KAAKzb,KAAI,SAACmb,EAAOyJ,GAAR,OAAczC,GAAYhH,EAAM0J,OAAQD,WAG/D,OAAClJ,QAAD,IAACA,MAAUD,KAAK/1B,SACd,qCACI,sBAAKgyB,UAAWC,KAAOgN,gBAAvB,qBAEI,eAACL,GAAA,EAAD,yBACI1K,QAAS,SAAC1N,GAAD,OAAOmS,EAAkBnS,EAAG,cACjCkP,GAAc,CACdC,SAAU,wBACVt2B,QAAQ,qBAAD,OAAuB23B,GAC9Bz1B,SAAU,uBALlB,yBAQY,mBAAGywB,UAAU,oDAG5BgE,EAASD,KAAKzb,KAAI,SAACuhB,EAAQqD,GAAT,OAAezD,GAAaI,EAAOsD,OAAQD,WAGpE,OAAChJ,QAAD,IAACA,MAAaH,KAAK/1B,SACjB,qCACI,sBAAKgyB,UAAWC,KAAOgN,gBAAvB,yBAEI,eAACL,GAAA,EAAD,yBACI1K,QAAS,SAAC1N,GAAD,OAAOmS,EAAkBnS,EAAG,iBACjCkP,GAAc,CACdC,SAAU,wBACVt2B,QAAQ,yBAAD,OAA2B23B,GAClCz1B,SAAU,uBALlB,yBAQY,mBAAGywB,UAAU,oDAG5BkE,EAAYH,KAAKzb,KAAI,SAACuhB,EAAQqD,GAAT,OAAezD,GAAaI,EAAOsD,OAAQD,WAGvE,OAACpJ,QAAD,IAACA,MAAOC,KAAK/1B,SACX,qCACI,sBAAKgyB,UAAWC,KAAOgN,gBAAvB,kBAEI,eAACL,GAAA,EAAD,yBACI1K,QAAS,SAAC1N,GAAD,OAAOmS,EAAkBnS,EAAG,WACjCkP,GAAc,CACdC,SAAU,wBACVt2B,QAAQ,kBAAD,OAAoB23B,GAC3Bz1B,SAAU,uBALlB,yBAQY,mBAAGywB,UAAU,oDAG5B8D,EAAMC,KAAKzb,KAAI,SAAC+hB,EAAM6C,GAAP,OAAa9C,GAAWC,EAAK8C,OAAQD,SAG5Dj2B,GACG,sBAAK+oB,UAAWC,KAAOmN,QAAvB,UACI,mBAAGpN,UAAU,gCADjB,sBAoCoEqN,eC5vBjF,OAA0B,sCCA1B,OAA0B,sCCA1B,OAA0B,yC,oBCwMnCC,GAAqB,CACvB9L,mBAWWb,UAAiB4M,mBARhC,YACI,MAAO,CAAEC,KADsB,EAARA,QAQ8BF,GAAzBC,EA/LjB,SAAC1M,GAAW,IAAD,EACd2M,EAAuB3M,EAAvB2M,KAAM1M,EAAiBD,EAAjBC,aACR2M,IAAoBD,EAAKlgC,KAU/B,OACI,qBAAK0yB,UAAU,iBAAf,SACI,sBAAKA,UAAS,yDAAoDC,KAAOyN,KAAzE,UACI,cAACC,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOg7B,SAAS,OAAOC,WAAW,SAA/C,UACI,gDACInrB,KAAK,SACLod,UAAU,eACVkC,QAhBA,WAIhBh1B,KAAI8gC,kBAagBtK,GAAc,CACdC,SAAU,SACVp0B,SAAU,aACVlC,QAAQ,cAPhB,aAUI,cAAC,GAAD,CAAKqmB,IAAI,2CAEb,sBAAKsM,UAAU,+CAAf,UACI,cAAC,GAAD,CAAcwN,KAAMA,IACpB,yBAAQ5qB,KAAK,SAASod,UAAS,UAAKC,KAAOgO,UAAZ,sBAA2C/L,QAASrB,EAAMqN,YAAzF,UACI,sBAAMlO,UAAU,UAAhB,yBACA,sBAAKA,UAAU,4CAAf,UACI,yBACA,yBACA,mCAIVwN,EAAKlgC,MACH,qBAAI0yB,UAAS,UAAKC,KAAOyN,IAAZ,wCAAb,UACI,oBAAI1N,UAAU,WAAd,SACI,2CACIlN,KAAI,UAAK9S,GAAO/D,QAAZ,WACAynB,GAAc,CACdC,SAAU,UACVp0B,SAAU,aACVlC,QAAS,0BALjB,4BAWJ,oBAAI2yB,UAAU,WAAd,SACI,2CACIA,UAAS,yCAAoCC,KAAOkO,SACpDrb,KAAI,UAAK9S,GAAO/D,QAAZ,UACAynB,GAAc,CACdC,SAAU,UACVp0B,SAAU,aACVlC,QAAS,uBANjB,4BAcXmgC,EAAKlgC,MACF,qCACI,sBAAK0yB,UAAS,UAAKC,KAAOyN,IAAZ,gCAAd,UACI,qBAAK1N,UAAS,UAAKC,KAAOmO,QAAZ,8BAAyCZ,EAAKlgC,KAAO2yB,KAAOoO,OAAS,IAAnF,SACI,2CACIrO,UAAU,YACVlN,KAAI,UAAK9S,GAAO/D,QAAZ,UACAynB,GAAc,CACdC,SAAU,SACVp0B,SAAU,aACVlC,QAAS,UANjB,yBAYJ,qBAAK2yB,UAAS,UAAKC,KAAOmO,QAAZ,8BAAyCZ,EAAKlgC,KAAO2yB,KAAOoO,OAAS,IAAnF,SACI,2CACIrO,UAAU,sBACVlN,KAAI,UAAK9S,GAAO/D,QAAZ,aACAynB,GAAc,CACdC,SAAU,SACVp0B,SAAU,aACVlC,QAAS,aANjB,6BAYS,OAAZyzB,QAAY,IAAZA,GAAA,UAAAA,EAAc5tB,iBAAd,eAAyBC,UAAUq6B,EAAKlgC,QACrC,qBAAK0yB,UAAS,UAAKC,KAAOmO,QAAZ,8BAAyCZ,EAAKlgC,KAAO2yB,KAAOoO,OAAS,IAAnF,SACI,2CACIrO,UAAU,YACVlN,KAAK,UACD4Q,GAAc,CACdC,SAAU,SACVp0B,SAAU,aACVlC,QAAS,cANjB,gCAcZ,qBAAK2yB,UAAS,UAAKC,KAAOyN,IAAZ,4DAAd,SACI,yBACI1N,UAAS,UAAKC,KAAOgO,UAAZ,8BAA2CT,EAAKlgC,KAAO2yB,KAAOoO,OAAS,GAAvE,YAA6EpO,KAAOqO,YAC7F1rB,KAAK,SACLsf,QAAS,kBAAMrB,EAAMW,kBAHzB,UAKI,sBAAMxB,UAAU,UAAhB,yBACA,qBAAKA,UAAU,qCAAf,SACI,cAAC,GAAD,CACIza,QAAQ,cACRkO,aAAc8a,GACd/O,OAAQgO,EAAKlgC,KAAK0F,cAAgBw6B,EAAKlgC,KAAK0F,cAAcC,oBAAsB,KAChFssB,UAAU,YACVG,kBAAkB,0BASjD+N,GACG,qBAAKzN,UAAU,8BAA8BL,MAAO,CAAE6O,SAAU,YAAhE,SACI,sBAAKxO,UAAU,0DAAf,UACKyN,GACG,4CACIzN,UAAWC,KAAOwO,cAClB3b,KAAI,UAAK9S,GAAO/D,QAAZ,UACAynB,GAAc,CACdC,SAAU,SACVp0B,SAAU,aACVlC,QAAS,UANjB,cASI,qBAAKqmB,IAAKgb,GAAU/a,IAAI,SACxB,qBAAKqM,UAAU,QAAf,sBAGPyN,GACG,4CACIzN,UAAWC,KAAOwO,cAClB3b,KAAI,UAAK9S,GAAO/D,QAAZ,aACAynB,GAAc,CACdC,SAAU,SACVp0B,SAAU,aACVlC,QAAS,aANjB,cASI,qBAAKqmB,IAAKib,GAAUhb,IAAI,YACxB,qBAAKqM,UAAU,QAAf,yBAGR,yBAAQpd,KAAK,SAASod,UAAWC,KAAOwO,cAAevM,QAAS,kBAAMrB,EAAMW,kBAA5E,UACI,cAAC,GAAD,CAAKxB,UAAU,SAAStM,IAAI,mCAC5B,qBAAKsM,UAAU,QAAf,mC,iHCjLjB4O,GATD,SAAC,GAAD,IAAGC,EAAH,EAAGA,QAASj/B,EAAZ,EAAYA,KAAMk/B,EAAlB,EAAkBA,SAAU54B,EAA5B,EAA4BA,MAA5B,IAAmC9G,kBAAnC,SAA0D0kB,EAA1D,0BACV,cAAC,KAAD,CACIlkB,KAAMA,EACNi/B,QAASA,EACTE,MAAO,CAAEC,SAAU5/B,GACnB6/B,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OAAe,cAACC,GAAA,EAAD,uCAAeD,GAAWpb,GAA1B,IAAgCzN,MAAOyoB,EAAUM,WAAS,EAACJ,SAAU5/B,EAAY8G,MAAOA,S,wCCExGm5B,GANU,SAAC,GAAD,QAAGjR,YAAH,MAAU,GAAV,EAAckR,EAAd,EAAcA,gBAAoBzO,EAAlC,0BACrB,cAACgN,EAAA,EAAD,CAAKpY,GAAI,EAAG3iB,QAAQ,OAAOy8B,eAAe,SAASC,QAASF,EAAiBvB,WAAW,SAAxF,SACI,cAAC0B,GAAA,EAAD,aAAkBrR,KAAMA,GAAUyC,O,oDCEpC5M,GAAQnnB,EAAQ,KAEhB4iC,GAAsB,CAAE3J,QAAS,MAwGxB4J,GAtGc,SAAC,GAAyC,IAAvCT,EAAsC,EAAtCA,MAAO7oB,EAA+B,EAA/BA,MAAOnQ,EAAwB,EAAxBA,MAAO9G,EAAiB,EAAjBA,WACjD,EAAoC+K,mBAAS,IAA7C,mBAAOy1B,EAAP,KAAmBC,EAAnB,KACA,EAA8B11B,mBAAS,IAAvC,mBAAO21B,EAAP,KAAgBC,EAAhB,KAEMC,EAAsBt1B,mBACxB,kBACIu1B,MAAS,SAACC,EAASC,GACfT,GAAoB3J,QAAQiK,oBAAoBE,EAASC,KAC1D,OACP,IAmCJ,OAhCA71B,qBAAU,WACN,IAAI81B,GAAS,EAKb,IAHKV,GAAoB3J,SAAWr5B,OAAO2jC,SACvCX,GAAoB3J,QAAU,IAAIr5B,OAAO2jC,OAAOC,KAAKC,OAAOC,qBAE3Dd,GAAoB3J,QAAzB,CAIA,GAAmB,KAAf6J,EAiBJ,OAZAI,EAAoB,CAAES,MAAOb,IAAc,SAACc,GACxC,GAAIN,EAAQ,CACR,IAAIO,EAAa,GAEbD,IACAC,EAAU,sBAAOA,GAAP,YAAsBD,KAGpCX,EAAWY,OAIZ,WACHP,GAAS,GAjBTL,EAAW,OAmBhB,CAACH,IAGA,cAACgB,GAAA,EAAD,2BACQ1B,GADR,IAEIzhC,GAAG,2BACHojC,eAAgB,SAACC,GAAD,MAA+B,kBAAXA,EAAsBA,EAASA,EAAOp8B,aAC1Eq8B,cAAe,SAACC,GAAD,OAAOA,GACtBlB,QAAO,CAAGZ,EAAMj1B,OAAT,mBAAmB61B,IAC1BmB,cAAY,EACZC,oBAAkB,EAClBC,uBAAqB,EACrBC,SAAU,SAAC1O,EAAG2O,GACNA,IACAnC,EAAMkC,SAASC,GACftB,EAAWsB,EAAQ,CAAIA,GAAJ,mBAAiBvB,IAAWA,KAGvDwB,cAAe,SAAC5O,EAAG6O,GACf1B,EAAc0B,IAElBC,YAAa,SAAC9sB,GAAD,OAAY,cAACyqB,GAAA,EAAD,2BAAezqB,GAAf,IAAuBsqB,SAAU5/B,EAAYiX,MAAOA,EAAOnQ,MAAOA,EAAOk5B,WAAS,MAC3GqC,aAAc,SAAC5Q,EAAOiQ,GAClB,IAAM/9B,EAAU+9B,EAAOY,sBAAsBC,6BACvCC,EAAQ3d,GACV6c,EAAOY,sBAAsBG,UAC7B9+B,EAAQuV,KAAI,SAACwpB,GAAD,MAAW,CAACA,EAAM3Z,OAAQ2Z,EAAM3Z,OAAS2Z,EAAM9jC,YAG/D,OACI,8CAAQ6yB,GAAR,aACI,eAACkR,GAAA,EAAD,CAAMC,WAAS,EAACjE,WAAW,SAA3B,UACI,cAACgE,GAAA,EAAD,CAAME,MAAI,EAAV,SACI,cAACpE,EAAA,EAAD,CAAKqE,UAAWC,KAAgBC,GAAI,CAAEC,MAAO,iBAAkBC,GAAI,OAEvE,eAACP,GAAA,EAAD,CAAME,MAAI,EAACM,IAAE,EAAb,UACKX,EAAMtpB,KAAI,SAACkqB,EAAMvL,GAAP,OACP,sBAGItH,MAAO,CACH8S,WAAYD,EAAKE,UAAY,IAAM,KAJ3C,SAOKF,EAAKG,MALD1L,MASb,cAAC2L,GAAA,EAAD,CAAY/F,QAAQ,QAAQwF,MAAM,iBAAlC,SACKvB,EAAOY,sBAAsBmB,+BC3FnDC,GATE,SAAC,GAAD,IAAGjE,EAAH,EAAGA,QAASj/B,EAAZ,EAAYA,KAAMk/B,EAAlB,EAAkBA,SAAU54B,EAA5B,EAA4BA,MAA5B,IAAmC9G,kBAAnC,gBACb,cAAC,KAAD,CACIQ,KAAMA,EACNi/B,QAASA,EACTE,MAAO,CAAEC,SAAU5/B,GACnB6/B,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OAAe,cAAC,GAAD,CAAsBh5B,MAAOA,EAAOg5B,MAAOA,EAAO7oB,MAAOyoB,EAAU1/B,WAAYA,Q,UCmD/F2jC,GApDA,SAAC,GAA0D,IAAxD78B,EAAuD,EAAvDA,MAAOg5B,EAAgD,EAAhDA,MAAOL,EAAyC,EAAzCA,QAASmE,EAAgC,EAAhCA,cAAeC,EAAiB,EAAjBA,WAC5C1vB,EAAmBD,GAAnBC,IAAKC,EAAcF,GAAdE,IAAKC,EAASH,GAATG,KA6BlB,OACI,cAAC,KAAD,CACIorB,QAASA,EACTj/B,KAAMs/B,EACND,OAAQ,YAAqC,IAAD,IAAjCC,MAASkC,EAAwB,EAAxBA,SAAUn3B,EAAc,EAAdA,MAC1B,EAhCU,SAACA,GAAW,IAAD,QACzBi5B,EACApgC,EACAqgC,EAAO,EAEX,OAAQF,GACJ,KAAK1vB,EACD2vB,EAAeplC,OAAOC,KAAK2mB,IAAqB1mB,OAChD8E,EAAU8kB,GAAW3d,GACrB,MACJ,KAAKuJ,EACD0vB,EAAe,GACfpgC,EAAO,oBAAMmH,EAAM,UAAZ,aAAM,EAAU2hB,QAAQ,GAAxB,wBAAgC3hB,EAAM,UAAtC,aAAgC,EAAU2hB,QAAQ,IACzDuX,EAAO,GACP,MACJ,KAAK1vB,EACDyvB,EAAe,GACfpgC,EAAO,oBAAMmH,EAAM,UAAZ,aAAM,EAAU2hB,QAAQ,GAAxB,wBAAgC3hB,EAAM,UAAtC,aAAgC,EAAU2hB,QAAQ,IACzDuX,EAAO,GACP,MACJ,QACID,EAAe,GACfpgC,EAAU,GAElB,MAAO,CAAEogC,eAAcpgC,UAASqgC,QAQgBC,CAAcn5B,GAA9Ci5B,EAAR,EAAQA,aAAcpgC,EAAtB,EAAsBA,QAASqgC,EAA/B,EAA+BA,KAC/B,OACI,sBAAKnT,UAAU,wCAAf,UACI,sBAAKA,UAAU,cAAf,UACI,uBAAOqT,QAASnE,EAAOlP,UAAWgT,EAAgB,UAAY,GAA9D,SACK98B,IAEL,qBAAK8pB,UAAU,gBAAf,SAAgCltB,OAEpC,cAAC,KAAD,CAAWmH,MAAOA,EAAOm3B,SAAUA,EAAUkC,IAAKJ,EAAcK,IAAK,EAAGJ,KAAMA,W,wKCOvFK,GAlDA,SAAC3S,GACZ,IACIgO,EAWAhO,EAXAgO,QACA4E,EAUA5S,EAVA4S,YAFJ,EAYI5S,EATAzxB,kBAHJ,SAII8G,EAQA2qB,EARA3qB,MACAuB,EAOAopB,EAPAppB,QACA7H,EAMAixB,EANAjxB,KACAkgC,EAKAjP,EALAiP,QACAhB,EAIAjO,EAJAiO,SACA4E,EAGA7S,EAHA6S,WACAC,EAEA9S,EAFA8S,eACG7f,EAXP,aAYI+M,EAZJ,IAcA,OACI,cAAC,KAAD,CACIjxB,KAAMA,EACNm/B,MAAO,CAAEC,SAAU5/B,GACnBy/B,QAASA,EACTI,OAAQ,gBAAGC,EAAH,EAAGA,MAAgBkC,EAAnB,EAAUlC,MAASkC,SAAnB,OACJ,eAACwC,GAAA,EAAD,CAAaxE,UAAWqE,EAAxB,UACI,cAACI,GAAA,EAAD,CAAYpmC,GAAIgK,EAAhB,SAA0BvB,IAC1B,cAAC,KAAD,uCACQg5B,GACApb,GAFR,IAGIsd,SAAU,SAACn3B,GACPm3B,EAASn3B,GACL05B,GACAA,EAAe15B,IAGvBm1B,UAAWqE,EACXv9B,MAAOA,EACPuB,QAASA,EACT4O,MAAOyoB,EAZX,SAcKgB,EAAQxnB,KAAI,SAACwoB,GAAD,OACT,cAACgD,GAAA,EAAD,CAA0B75B,MAAO62B,EAAOrjC,GAAxC,SACKqjC,EAAOp8B,aADGo8B,EAAOrjC,UAK7BqhC,GAAY4E,GAAc,cAACK,GAAA,EAAD,UAAiBL,W,UC5C1DM,GAAmB,SAAC,GAAD,IAAG99B,EAAH,EAAGA,MAAO+9B,EAAV,EAAUA,aAActU,EAAxB,EAAwBA,MAAxB,OACrB,cAACkO,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAnC,SACI,cAAC2E,GAAA,EAAD,CACI9B,GAAIzS,EACJwU,SAAUF,EACVrxB,KAAK,SACLwqB,QAAS6G,EACTpH,QAAQ,OACRuH,iBAAkB,cAAC3E,GAAA,EAAD,CAAkB4C,MAAM,UAAUjU,KAAM,KAN9D,SAQKloB,OASb89B,GAAiBvR,aAAjB,ezC6hBgD,CAC5C9C,MAAO,KyC1hBIqU,UCrBTK,GAAe,SAAC,GAA2L,IAAD,IAAxLC,yBAAwL,aAA7JC,yBAA6J,aAAlI7H,6BAAkI,aAAnGF,yBAAmG,SAAxEgI,EAAwE,EAAxEA,iBAAwE,IAAtDC,uBAAsD,MAApC,GAAoC,EAAhCv+B,EAAgC,EAAhCA,MAAgC,IAAzB9G,kBAAyB,SACtMm1B,EAAYC,iBAAO,MAEzB,EAA0BrqB,mBAAS,IAAnC,mBAAO0M,EAAP,KAAc6tB,EAAd,KACA,EAAkCv6B,oBAAS,GAA3C,mBAAOlD,EAAP,KAAkB4tB,EAAlB,KACA,EAA0C1qB,mBAAS,IAAnD,mBAAOw6B,EAAP,KAAsBC,EAAtB,KACM5P,ECdiB,SAAC/qB,EAAO46B,GAC/B,MAA4C16B,mBAASF,GAArD,mBAAO66B,EAAP,KAAuBC,EAAvB,KAYA,OAVAz6B,qBAAU,WACN,IAAM06B,EAAUhJ,YAAW,WACvB+I,EAAkB96B,KACnB46B,GAEH,OAAO,WACHI,aAAaD,MAElB,CAAC/6B,EAAO46B,IAEJC,EDCaI,CAAYruB,EAAO,KACjC9B,EAAgBrB,KAQtBpJ,qBAAU,WACN,IAAMorB,EAAgB,uCAAG,oCAAAlgB,EAAA,6DACrBqf,GAAa,IACPngB,EAAS,IAAIihB,iBACZC,OAAO,QAASZ,GACvBtgB,EAAOkhB,OAAO,MAlBF,IAmBZlhB,EAAOkhB,OAAO,gBAAgB,GAC9BlhB,EAAOkhB,OAAO,yBAAyB,GACvClhB,EAAOkhB,OAAO,qBAAqB,GAE/B0O,GACA5vB,EAAOkhB,OAAO,SAAU,cAGxB2O,GACA7vB,EAAOkhB,OAAO,SAAU,YAGxB8G,GACAhoB,EAAOywB,OAAO,yBAAyB,GAGvC3I,GACA9nB,EAAOywB,OAAO,qBAAqB,IAGjCrP,EAASvB,EAAUwB,UAErBD,IA3BiB,UA8BE/gB,EAClBR,IAAI,oBAAqB,CACtByhB,YAAa,IAAIC,eAAY,SAACC,GAC1B3B,EAAUwB,QAAUG,KAExBxhB,WAEHyhB,OAAM,SAAC9f,GACC+f,mBAAS/f,IACVwe,GAAa,MAvCJ,QA2CrB,QAbM5e,EA9Be,cA2CrB,IAAIA,KAAUP,OACFqe,EAAS9d,EAASP,KAAlBqe,KACFqR,EAAerR,EAAKvH,QAAO,SAAC6Y,GAC9B,OAAOZ,EAAgBa,OAAM,SAAC3c,GAAD,OAAYA,EAAOzqB,WAAamnC,EAAIlI,OAAOj/B,eAG5E0mC,EADgBQ,GAEhBvQ,GAAa,IAlDI,4CAAH,qDAsDlBG,EAAYh3B,OAAS,GACrB03B,MAEL,CAACV,IAEJ,IAAMuQ,EAAsB,SAAC3wB,IACV,OAAXA,QAAW,IAAXA,OAAA,EAAAA,EAAa5W,QAAS,GACtB0mC,EAAS9vB,GACTgwB,EAAiB,MAEjBF,EAAS,IACTE,EAAiB,MAgBnBY,EAAiB,SAAC7c,GACpB6b,EAAiB7b,GAxFjBkM,GAAa,GACb+P,EAAiB,IACjBF,EAAS,KA0Fb,OACI,cAAC9D,GAAA,EAAD,CACInjC,GAAG,gBACHsjC,cAAe,SAACC,GAAD,OAAOA,GACtBjF,QAjBmB,SAACtI,GACxB,IAAQhP,EAAWgP,EAAXhP,OACRuX,YAAW,WACP,IAAMpnB,EAAc6P,EAAOxa,MAAMgyB,OACjCsJ,EAAoB3wB,KACrB,MAaCkrB,QAAS6E,EACTvH,QAASn2B,EACT45B,eAAgB,SAACC,GAAD,aAAmB,OAANA,QAAM,IAANA,GAAA,UAAAA,EAAQ3D,cAAR,SAAgBx6B,YAAcm+B,EAAO3D,OAAOx6B,YAAc,IACvF8iC,qBAAsB,SAAC3E,EAAQ72B,GAAT,aAAyB,OAAN62B,QAAM,IAANA,GAAA,UAAAA,EAAQ3D,cAAR,eAAgB1/B,MAAOwM,EAAMkzB,OAAO1/B,IAC7E6jC,cAAe,SAAC5O,EAAGzoB,EAAOy7B,IACjBz7B,GAAmB,KAAVA,GAA4B,UAAXy7B,GA3Bf,SAACz7B,GACzBs7B,EAAoBt7B,GA2BR07B,CAAoB17B,IAG5Bm3B,SAAU,SAAC1O,EAAG2O,GACNA,GACAmE,EAAenE,EAASlE,SAGhCqE,YAAa,SAAC9sB,GAAD,OACT,cAACyqB,GAAA,EAAD,2BACQzqB,GADR,IAEI0qB,WAAS,EACTJ,SAAU5/B,EACV8G,MAAOA,EACP0/B,WAAU,2BACHlxB,EAAOkxB,YADJ,IAENC,aAAc,mCAAGnxB,EAAOkxB,WAAWC,qBAI/CpE,aAAc,SAACqE,EAAahF,GACxB,OAA6D,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ3D,SAAU,GAAjEl6B,EAAR,EAAQA,oBAAqBN,EAA7B,EAA6BA,YAAapD,EAA1C,EAA0CA,SAC1C,OACI,wDAAQumC,GAAR,IAAqBjhB,IAAG,OAAEic,QAAF,IAAEA,OAAF,EAAEA,EAAQ3D,OAAO1/B,KACrC,eAACskC,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QAAS,EAAGhI,WAAW,SAAvC,UACI,cAACgE,GAAA,EAAD,CAAME,MAAI,EAAV,SACI,cAAC,GAAD,CACI1sB,QAAQ,cACRkO,aAAa,kCACb+L,OAAQvsB,EACRssB,UAAU,UACVE,SAAS,2BAGjB,eAACsS,GAAA,EAAD,CAAME,MAAI,EAAV,UACI,cAACW,GAAA,EAAD,UAAajgC,IACb,cAACigC,GAAA,EAAD,CAAYR,GAAI,CAAEC,MAAO,OAAQjU,KAAM,IAAvC,gBAA8C7uB,QAA9C,IAA8CA,OAA9C,EAA8CA,EAAUuD,qBAcxFuhC,GAAa5R,aAAb,e1CsC4C,CACxC6R,mBAAmB,EACnBC,mBAAmB,EACnB7H,uBAAuB,EACvBF,mBAAmB,EACnBiI,gBAAiB,K0CvCNJ,U,uEExIA2B,GAnCgB,SAAC,GAA2D,IAAzDrd,EAAwD,EAAxDA,OAAQsd,EAAgD,EAAhDA,eAAgBC,EAAgC,EAAhCA,iBAAqBpiB,EAAW,mBAC9EnhB,EAA+CgmB,EAA/ChmB,YAAapD,EAAkCopB,EAAlCppB,SAAU0D,EAAwB0lB,EAAxB1lB,oBAM/B,OACI,cAACkjC,GAAA,EAAD,2BAAWriB,GAAX,IAAiBse,GAAI,CAAE5c,GAAI,EAAGC,GAAI,EAAG2gB,GAAI,GAAzC,SACI,eAACrE,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QAAS,EAAGhI,WAAW,SAAvC,UACI,cAACgE,GAAA,EAAD,CAAME,MAAI,EAACn/B,QAAS,CAAEy/B,GAAI,OAAQ8D,GAAI,SAAtC,SACI,cAAC,GAAD,CACI9wB,QAAQ,cACRkO,aAAa,kCACb+L,OAAQvsB,EACRssB,UAAU,UACVE,SAAS,2BAGjB,eAACsS,GAAA,EAAD,CAAME,MAAI,EAAV,UACI,cAACW,GAAA,EAAD,CAAY/F,QAAQ,QAApB,SAA6Bl6B,IAC7B,cAACigC,GAAA,EAAD,CAAY/F,QAAQ,eAApB,gBAAoCt9B,QAApC,IAAoCA,OAApC,EAAoCA,EAAUuD,aAEjDojC,GACG,cAACnE,GAAA,EAAD,CAAME,MAAI,EAACqE,GAAG,OAAd,SACI,cAACzI,EAAA,EAAD,CAAK7N,UAAU,aAAakC,QAtBnB,WACzB+T,EAAetd,IAqBC,SACI,cAAC,KAAD,eChCtB4d,GAAW,CAAExQ,QAAS,MAEfyQ,GAAe,uCAAG,WAAOjnC,GAAP,yBAAAiW,EAAA,6DACrB0qB,EAAU,CAAEuG,QAASlnC,EAASmnC,WAE/BH,GAASxQ,SAAWr5B,OAAO2jC,SAC5BkG,GAASxQ,QAAU,IAAIr5B,OAAO2jC,OAAOC,KAAKqG,UAG1CC,EAAiB,KAPM,SASrBL,GAASxQ,QAAQ8Q,QAAQ3G,GAAS,SAACQ,EAASpqB,GAC1CA,IAAW5Z,OAAO2jC,OAAOC,KAAKC,OAAOuG,oBAAoBC,IAAMrG,IAC/DkG,EAAiBlG,EAAQ,OAXN,WAevBkG,EAfuB,uBAgBfI,GAhBe,EAgBoCJ,GAAnDI,kBAA6BP,EAhBd,EAgBIC,SAAmBO,EAhBvB,EAgBuBA,SAhBvB,kBAiBhB,CACHR,UACAhnC,iBAAkBunC,EAClBxnC,UAAWD,EAASmiC,sBAAsBG,UAC1Cv9B,IAAK2iC,EAAS1nC,SAAS+E,MACvBC,IAAK0iC,EAAS1nC,SAASgF,QAtBJ,2CAAH,sDA2Bf2iC,GAA8B,uCAAG,WAAO5iC,EAAKC,GAAZ,uBAAAiR,EAAA,6DACrC+wB,GAASxQ,SAAWr5B,OAAO2jC,SAC5BkG,GAASxQ,QAAU,IAAIr5B,OAAO2jC,OAAOC,KAAKqG,UAG1CC,EAAiB,KACfO,EAAS,CAAE7iC,MAAKC,OANoB,SAOpCgiC,GAASxQ,QAAQ8Q,QAAQ,CAAEtnC,SAAU4nC,IAAU,SAACzG,EAASpqB,GACvDA,IAAW5Z,OAAO2jC,OAAOC,KAAKC,OAAOuG,oBAAoBC,IAAMrG,IAC/DkG,EAAiBlG,EAAQ,OATS,WAatCkG,EAbsC,wBAc9BQ,EAAuBR,EAAvBQ,mBACFC,EAAOD,EAAmBz0B,MAAK,SAAC20B,GAAD,OAAUA,EAAK50B,MAAMka,SAAS,eAC7DxiB,EAAQg9B,EAAmBz0B,MAAK,SAAC20B,GAAD,OAAUA,EAAK50B,MAAMka,SAAS,kCAhB9B,mCAiB5Bya,QAjB4B,IAiB5BA,OAjB4B,EAiB5BA,EAAME,UAjBsB,oBAiBRn9B,QAjBQ,IAiBRA,OAjBQ,EAiBRA,EAAOo9B,aAjBC,4CAAH,wDAqB9BC,GAA6B,uCAAG,oCAAAjyB,EAAA,6DACrCkyB,EAAgB,KACd5H,EAAU,CACZ6H,oBAAoB,EACpBC,QAAS,IACTC,WAAY,KALyB,SAOlB,IAAIC,SAAQ,SAACC,EAASC,GACzCC,UAAUC,YAAYC,mBAAmBJ,EAASC,EAAQlI,MAC3D3J,OAAM,SAAC9f,GACNqxB,EAAgBrxB,KAVqB,cAOnCmoB,EAPmC,yBAalC,CACHl6B,IAAG,OAAEk6B,QAAF,IAAEA,GAAF,UAAEA,EAAU4J,cAAZ,aAAE,EAAkBC,SACvB9jC,IAAG,OAAEi6B,QAAF,IAAEA,GAAF,UAAEA,EAAU4J,cAAZ,aAAE,EAAkBE,UACvBjyB,MAAOqxB,IAhB8B,2CAAH,qDC3CpCa,GAAkBtX,sBAAY,CAChCrxB,KAAM,aACNsxB,aAPiB,CACjBsX,QAAQ,EACRnyB,MAAO,MAMP+a,SAAU,CACNqX,eADM,SACSr+B,EAAOknB,GAClBlnB,EAAMo+B,QAAS,EACfp+B,EAAMiM,MAAQib,EAAOC,SAGzBmX,eANM,SAMSt+B,GACXA,EAAMo+B,QAAS,MAKpB,GAA2CD,GAAgB9W,QAAnDgX,GAAR,GAAQA,eAAgBC,GAAxB,GAAwBA,eAChBH,MAAf,QCjBMI,GAAyB1X,sBAAY,CACvCrxB,KAAM,oBACNsxB,aANiB,CACjB7uB,YAAa,MAMb+uB,SAAU,CACNwX,eADM,SACSx+B,EAAOknB,GAClBlnB,EAAM/H,YAAcivB,EAAOC,YAKxBqX,GAAmBD,GAAuBlX,QAA1CmX,eACAD,MAAf,Q,+ECYME,GAAuB,SAAC,GAAwF,IAAtFC,EAAqF,EAArFA,WAAqF,IAAzE9hC,yBAAyE,MAArD,KAAqD,EAA/CE,EAA+C,EAA/CA,oBAAqB6hC,EAA0B,EAA1BA,oBAC/E1f,EAAkCvE,GAAxBkkB,EAAwBlkB,GAAdmkB,EAAcnkB,GAClC0C,EAAWhV,GACXgB,EAAmBF,GAAnBE,IAAKC,EAAcH,GAAdG,KAAMF,EAAQD,GAARC,IACnB,EAA2B2M,KAApB3G,EAAP,oBACA,EAAqD4H,KAArD,mBAAO3F,EAAP,KAAsC0tB,EAAtC,KAA2BC,UACrBz0B,EAAS00B,eACTC,EAAWC,wBACXjV,EAAWC,eACXzvB,EAAY,OAAG6P,QAAH,IAAGA,OAAH,EAAGA,EAAQ7P,aAE7B,EAAgDsF,qBAAhD,mBAAOo/B,EAAP,KAAyBC,EAAzB,KACA,EAAsDr/B,qBAAtD,mBAAOs/B,EAAP,KAA4BC,EAA5B,KACA,EAAgCv/B,qBAAhC,mBAAOxD,EAAP,KAAiBgjC,EAAjB,KACQtnC,EAAgBuyB,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,YACFunC,EAAad,EAAa,eAAiB,oBAC3Ce,EAAgB,CAClBjqC,KAAM,GACNL,SAAU,GACVoH,SAAUghB,SAAQ,OAACjT,QAAD,IAACA,OAAD,EAACA,EAAQ/N,UAC3BxE,aAAc,GACd2nC,QAAS,GACTd,WACAe,sBAAuB,IAG3B,EAKIC,aAAQ,CAAEH,gBAAeI,KAAM,QAJ/BC,EADJ,EACIA,aACAC,EAFJ,EAEIA,MAFJ,IAGIC,UAAaC,EAHjB,EAGiBA,OAAQC,EAHzB,EAGyBA,YAAarG,EAHtC,EAGsCA,aAClCpF,EAJJ,EAIIA,QAGJv0B,qBAAU,WACN,GAAIjI,EAAa,CACb,IAAMkoC,EAAYloC,IAAgBmlB,EAAS6B,EAAW4f,EACtDkB,EAAM,2BAAKN,GAAN,IAAqBE,sBAAuBQ,QAEtD,IAEHjgC,qBAAU,WACN,GAAIw+B,GAAc9hC,EAAmB,CACjC,IACI9E,EAOA8E,EAPA9E,OACAD,EAMA+E,EANA/E,OACA1C,EAKAyH,EALAzH,SACUirC,EAIVxjC,EAJAL,SACa8jC,EAGbzjC,EAHA3E,YACAD,EAEA4E,EAFA5E,kBACGsoC,EAPP,aAQI1jC,EARJ,IAUM2jC,GAA6B,OAARprC,QAAQ,IAARA,OAAA,EAAAA,EAAUC,aAAV,OAAuBD,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAUE,mBAAoB,GAC1EmrC,EAAe,CAACjjB,SAAS/C,GAAiB3iB,IAAU0lB,SAAS/C,GAAiB1iB,KACpF,EAAiCE,GAAqB,GAChDyoC,EAAkB,CADxB,EAAQ5f,UAAR,EAAmBC,WAGb4f,EAAQ,2BACPJ,GADO,IAEVnrC,SAAUorC,EACV3B,SAAU4B,EACVb,sBAAuBc,IAG3BrB,EAAoBjqC,GACpBoqC,EAAYa,GACZnB,EAAST,GAAe6B,IACxBN,EAAMW,MAEX,CAAC9jC,IAEJsD,qBAAU,WACF4+B,GACAhiC,MAEL,CAACgiC,IAEJ,IAAM6B,GAAgB,uCAAG,WAAOC,GAAP,6BAAAx1B,EAAA,yDACfxT,EADe,eACGgpC,GADH,cAEIhpC,EAAWgnC,SAFf,GAEd/mC,EAFc,KAENC,EAFM,mBAGUF,EAAW+nC,sBAHrB,GAGd9e,EAHc,KAGHC,EAHG,MAKjBof,EAAY/qC,SALK,iCAMeinC,GAAgBxkC,EAAWzC,UAN1C,OAMX0rC,EANW,OAOjBjpC,EAAWzC,SAAW0rC,EAPL,wBASjBjpC,EAAWzC,SAAWgqC,EATL,WAYrBvnC,EAAWC,OAASyiB,GAAoBziB,GACxCD,EAAWE,OAASwiB,GAAoBxiB,GACxCF,EAAWI,kBAAoB,GAE/BJ,EAAWI,kBAAkB6oB,UAAYA,EACzCjpB,EAAWI,kBAAkB8oB,UAAYA,SAElClpB,EAAWgnC,gBACXhnC,EAAW+nC,uBAEdjB,EAtBiB,4CAwBPttB,EAAiB,CAAE3W,eAAc7C,aAAY2E,aAAYukC,SAxBlD,2DA0Bb7B,EAASZ,GAAe,EAAD,KA1BV,uCA6BjBzmC,EAAWmpC,4BAA8B1B,EAAoBvrC,SA7B5C,oBA+BPqb,EAAiBvX,GAAYkpC,SA/BtB,QAgCb7W,EAAS,YAAD,cAAa3f,QAAb,IAAaA,OAAb,EAAaA,EAAQ/N,WAhChB,mDAkCb0iC,EAASZ,GAAe,EAAD,KAlCV,mEAAH,sDA+ChB2C,GAAqB/oC,IAAgBmlB,EAE3C,OACI,cAACmW,GAAA,EAAD,UACI,eAACoE,GAAA,EAAD,CAAMxC,eAAe,SAAS8L,GAAI,EAAlC,WACMvC,GACE,eAACjL,EAAA,EAAD,CAAKuI,GAAI,EAAT,UACI,cAACxD,GAAA,EAAD,CAAY/F,QAAQ,KAApB,+BACA,cAACyO,GAAA,EAAD,OAGPxC,GAAcC,EACX,cAAC,GAAD,IAEA,uBAAMwC,SAAUrB,EAAaa,IAA7B,UACI,eAAC5E,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,cAACqd,GAAA,EAAD,CAAY/F,QAAQ,KAApB,gCACA,eAACkF,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,QpCrCjB,EoCqCN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,OACLsG,MAAM,kBACN44B,WAAYuL,EAAOzqC,KACnBR,YAAU,EACVy/B,QAASA,EACT6E,WAAW,eAGnB,cAAC3B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAU5rC,KAAK,WAAWsG,MAAM,iBAAiBmQ,QAASg0B,EAAO9qC,SAAUs/B,QAASA,MAExF,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI3iC,KAAK,UACLsG,MAAM,uBACN44B,WAAYuL,EAAOP,QACnBjL,QAASA,EACT4M,WAAS,EACT/H,WAAW,4DACXgI,QAAS,EACTtM,WAAS,aAKvB0J,GACE,eAAC3C,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,cAACqd,GAAA,EAAD,CAAY/F,QAAQ,KAApB,kCACA,cAACkF,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,QpCpErB,EoCoEF,SACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACKkH,EACG,cAAC,GAAD,CACI9gB,OAAQ8gB,EACRxD,eAzDF,WACtCyD,EAAuB,OAyDiBxD,kBAAgB,EAChBrJ,QAAQ,WACR8O,UAAW,IAGf,cAAC,GAAD,CACInH,iBApEL,SAAC7qB,GACpC+vB,EAAuB/vB,IAoEiB4qB,mBAAiB,EACjBr+B,MAAM,oCAO9B,eAACigC,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,cAACqd,GAAA,EAAD,CAAY/F,QAAQ,KAApB,iCACA,eAACkF,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,QpC3FjB,EoC2FN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI3iC,KAAK,eACLsG,MAAM,SACN45B,QAASxuB,GACT7J,QAAQ,eACRg8B,aAAW,EACX5E,QAASA,EACTC,WAAYuL,EAAOloC,aACnB/C,YAAU,EACVskC,WAAW,eAGnB,cAAC3B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC1E,EAAA,EAAD,CAAKrY,GAAI,EAAT,SACI,cAAC,GAAD,CACI0Z,MAAM,wBACN+D,WAAYmI,GAAqB53B,EAAMC,EACvCvN,MAAOklC,GAAqB,aAAe,eAC3C/0B,MAAOg0B,EAAON,sBACdlL,QAASA,QAIrB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC1E,EAAA,EAAD,CAAKrY,GAAI,EAAT,SACI,cAAC,GAAD,CAAQ0Z,MAAM,WAAW+D,WAAY1vB,EAAKrN,MAAM,MAAMmQ,MAAOg0B,EAAOrB,SAAUnK,QAASA,cAKvG,cAAC,GAAD,CAAkB34B,MAAO0jC,EAAY3F,aAAcA,aAY3E4E,GAAqBpW,aAArB,eACOxsB,GAGQ4iC,UC1QA+C,GAFc,kBAAM,cAAC,GAAD,CAAsB9C,YAAY,K,kDCsCtD+C,GAhCQ,SAAC,GAAsF,IAApFhN,EAAmF,EAAnFA,QAASj/B,EAA0E,EAA1EA,KAAMsG,EAAoE,EAApEA,MAAoE,IAA7D9G,kBAA6D,SAAzC0sC,EAAyC,EAAzCA,YAAaC,EAA4B,EAA5BA,QAASC,EAAmB,EAAnBA,aAOtF,OACI,cAACC,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAAC,KAAD,CACIvsC,KAAMA,EACNi/B,QAASA,EACTE,MAAO,CAAEC,SAAU5/B,GACnB6/B,OAAQ,oBAAGC,MAASkC,EAAZ,EAAYA,SAAUn3B,EAAtB,EAAsBA,MAAtB,OACJ,cAAC,KAAD,CACI/D,MAAOA,EACPkmC,YtC0GM,uBsCzGNN,YAAaA,EACb7hC,MAAOA,EACPm3B,SAAU,SAAC5c,GAlBJ,IAAC+F,EAmBJ6W,EAAS5c,GAnBL+F,EAoBe/F,EAnBnCwnB,GACAA,EAAazhB,IAoBD8hB,YAAaN,EACbvK,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,2BAAemN,GAAf,IAA2BlN,WAAS,c,wCCxB1EmN,GARM,WACjB,OACI,sBAAKC,MAAM,6BAA6Bna,MAAM,KAAKC,OAAO,KAAKma,QAAQ,YAAYC,KAAK,OAAxF,UACI,sBAAMC,SAAS,UAAUC,SAAS,UAAUC,EAAE,oSAAoSH,KAAK,YACvV,wBAAQI,GAAG,OAAOC,GAAG,KAAKC,EAAE,OAAOC,OAAO,gBCKhDC,GAAQ,SAAC,GAAD,IAAGvsC,EAAH,EAAGA,KAAMC,EAAT,EAASA,QAASC,EAAlB,EAAkBA,MAAO0V,EAAzB,EAAyBA,QAAS42B,EAAlC,EAAkCA,aAAcn3B,EAAhD,EAAgDA,aAAco3B,EAA9D,EAA8DA,YAAaC,EAA3E,EAA2EA,SAAUC,EAArF,EAAqFA,YAArF,OACV,eAACC,GAAA,EAAD,CAAQ3P,SAAS,KAAKj9B,KAAMA,EAAMC,QAASA,EAAS,kBAAgB,qBAAqB,mBAAiB,2BAA2BwhC,GAAI,CAAEoL,EAAG,GAA9I,UACI,eAACC,GAAA,EAAD,WACKN,GACG,cAAC,GAAD,IAEJ,cAAC,aAAD,CAAYxd,MAAO,CAAE+d,QAAS,SAAW/Z,SAAUnN,GAAmBG,QAASyH,KAAM7H,GAA6B9oB,GAAG,qBAArH,SACKoD,IAEL,cAAC,aAAD,CAAY8yB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA6B9oB,GAAG,2BAA1F,SACK8Y,SAGNP,GACC,cAACy3B,GAAA,EAAD,UACI,cAACE,GAAA,EAAD,CAAmB3d,UAAU,aAAa4d,MAAM,SAASnwC,GAAG,qBAA5D,SACKuY,MAIb,eAAC63B,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAUiO,EAAG,GAAlD,UACKJ,GACG,cAAC,SAAD,CAAQhL,GAAI,CAAE/P,MAAO,OAASsB,SAAUnN,GAAmBE,UAAWwL,QAAStxB,EAA/E,SACKwsC,IAGRC,GACG,cAAC,SAAD,CAAQjL,GAAI,CAAE/P,MAAO,OAASsB,SAAUnN,GAAmBC,QAASyL,QAASmb,EAA7E,SACKC,WAWrBJ,GAAMza,aAAN,epDoHqC,CACjC9xB,MAAM,EACNE,MAAO,KACPusC,YAAa,KACb72B,QAAS,KACTP,aAAc,OoDrHHk3B,U,mEC5BAY,GAlBI,SAAC,GAAD,IAAGjP,EAAH,EAAGA,QAASj/B,EAAZ,EAAYA,KAAMkgC,EAAlB,EAAkBA,QAASsC,EAA3B,EAA2BA,GAAOte,EAAlC,0BACf,cAAC,KAAD,CACIlkB,KAAMA,EACNi/B,QAASA,EACTI,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,cAAC,KAAD,uCAAmBA,GAAWpb,GAA9B,aACKgc,EAAQxnB,KAAI,SAACwoB,GAAD,OACT,cAACiN,GAAA,EAAD,CAAkC9jC,MAAO62B,EAAOrjC,GAAIyI,MAAO46B,EAAOp8B,YAAam6B,QAAS,cAACmP,GAAA,EAAD,IAAW5L,GAAIA,GAAhFtB,EAAOrjC,cCkNnCwwC,GAnNY,SAAC,GAA+D,IAA7DC,EAA4D,EAA5DA,YAAarP,EAA+C,EAA/CA,QAASwL,EAAsC,EAAtCA,OAAQ8D,EAA8B,EAA9BA,WAAY9rC,EAAkB,EAAlBA,YAC5D+rC,EAA2B/9B,GAAlBg+B,EAAkBh+B,GAATi+B,EAASj+B,GAE7Bk+B,EADgBlsC,IAAgBmQ,GACDd,GAAqBC,GAEpD68B,EAAU,WACZ,OACI,qCACI,cAAC3Q,EAAA,EAAD,CAAKwN,GAAI,EAAGjF,GAAI,EAAhB,SACI,cAACkF,GAAA,EAAD,wBAEJ,eAACvJ,GAAA,EAAD,CAAMK,GAAI,CAAE1c,GAAI,GAAKsc,WAAS,EAAC+D,Q1C4Gb,E0C5GlB,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,oBACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,cAACC,GAAA,EAAD,yBACIgF,SAAUgK,GACNjP,GAFR,IAGIh5B,MAAM,iCACNk5B,WAAS,EACTxsB,KAAK,SACL05B,WAAY,CAAE/I,IAAK,WAKnC,cAACxB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,wBACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,cAACC,GAAA,EAAD,2BACQD,GADR,IAEIiF,SAAUgK,EACVjoC,MAAM,uBACNk5B,WAAS,EACTxsB,KAAK,SACL05B,WAAY,CAAE/I,IAAK,cAMvC,eAACxB,GAAA,EAAD,CAAMK,GAAI,CAAE1c,GAAI,GAAKsc,WAAS,EAAC+D,Q1CwEb,E0CxElB,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,6BACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,eAAC0E,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,+BAAf,4BACA,cAAC,KAAD,2BACQyhC,GADR,IAEIh5B,MAAM,iBACNmQ,QAASg0B,EAAO3kC,2BAChB+B,QAAQ,+BACR26B,GAAI,CAAEqM,SAAU,KALpB,SAOKF,EAAaj2B,KAAI,SAACo2B,GAAD,OACd,cAAC5K,GAAA,EAAD,CAA+B75B,MAAOykC,EAAYjxC,GAAlD,SACKixC,EAAYhqC,aADFgqC,EAAYjxC,kBASnD,cAACskC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,2BACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,eAAC0E,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,uCAAf,qCACA,cAAC,KAAD,2BACQyhC,GADR,IAEIh5B,MAAM,0BACNmQ,QAASg0B,EAAO1kC,yBAChB8B,QAAQ,uCACR26B,GAAI,CAAEqM,SAAU,KALpB,SAOK78B,GAAc0G,KAAI,SAACq2B,GAAD,OACf,cAAC7K,GAAA,EAAD,CAA4B75B,MAAO0kC,EAASlxC,GAA5C,SACKkxC,EAASjqC,aADCiqC,EAASlxC,yBAc1DmxC,EAAU,kBACZ,qCACI,cAAC/Q,EAAA,EAAD,CAAKwN,GAAI,EAAGjF,GAAI,EAAhB,SACI,cAACkF,GAAA,EAAD,wBAEJ,eAACvJ,GAAA,EAAD,CAAMK,GAAI,CAAE1c,GAAI,GAAKsc,WAAS,EAAC+D,Q1CWT,E0CXtB,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,oBACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,cAACC,GAAA,EAAD,2BACQD,GADR,IAEIiF,SAAUgK,EACVjoC,MAAM,iCACNk5B,WAAS,EACTxsB,KAAK,SACL05B,WAAY,CAAE/I,IAAK,WAKnC,cAACxB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,wBACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,cAACC,GAAA,EAAD,2BACQD,GADR,IAEIiF,SAAUgK,EACVjoC,MAAM,uBACNk5B,WAAS,EACTxsB,KAAK,SACL05B,WAAY,CAAE/I,IAAK,cAMvC,eAACxB,GAAA,EAAD,CAAMK,GAAI,CAAE1c,GAAI,GAAKsc,WAAS,EAAC+D,Q1CzBT,E0CyBtB,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,6BACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,eAAC0E,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,+BAAf,4BACA,cAAC,KAAD,2BACQyhC,GADR,IAEIh5B,MAAM,iBACNmQ,QAASg0B,EAAOrlC,2BAChByC,QAAQ,+BAJZ,SAMK8mC,EAAaj2B,KAAI,SAACo2B,GAAD,OACd,cAAC5K,GAAA,EAAD,CAA+B75B,MAAOykC,EAAYjxC,GAAlD,SACKixC,EAAYhqC,aADFgqC,EAAYjxC,kBASnD,cAACskC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,KAAD,CACI5rC,KAAK,2BACLi/B,QAASA,EACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,eAAC0E,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,wCAAf,qCACA,cAAC,KAAD,2BACQyhC,GADR,IAEIh5B,MAAM,0BACNmQ,QAASg0B,EAAOplC,yBAChBwC,QAAQ,uCAJZ,SAMKmK,GAAc0G,KAAI,SAACq2B,GAAD,OACf,cAAC7K,GAAA,EAAD,CAA4B75B,MAAO0kC,EAASlxC,GAA5C,SACKkxC,EAASjqC,aADCiqC,EAASlxC,yBAa5D,OACI,gCACKywC,IAAgBE,GAAW,cAACI,EAAD,IAC3BN,IAAgBG,GAAW,cAACO,EAAD,IAC3BV,IAAgBI,GACb,gCACI,cAACE,EAAD,IACA,cAACI,EAAD,WCtNZC,GAAe1+B,GA0CV2+B,GAAgC,SAACnmC,GAC1C,IAAQhE,EAAsFgE,EAAtFhE,aAAcnC,EAAwEmG,EAAxEnG,WAAYwD,EAA4D2C,EAA5D3C,yBAA0B1E,EAAkCqH,EAAlCrH,cAAesD,EAAmB+D,EAAnB/D,eAC3E,GAAItD,IAAkButC,GAAY,OAAO,EACzC,IAAKlqC,IAAiBnC,IAAewD,EAA0B,OAAO,EAEtE,IAAM+oC,EAAqB7mB,KAAO1lB,GAAYwsC,KAAK9mB,KAAOvjB,GAAe,UAAY,EAE/EsqC,EACFjpC,IAA6BoK,GACvB2+B,EACAxW,KAAK2W,MAAMH,EAAqB/oC,GAE1C,OAAKipC,IAGArqC,EAAiBqqC,G,qPCApBE,GAAoB,SAAC,GAAwE,IAAtE7pC,EAAqE,EAArEA,eAAgBwjC,EAAqD,EAArDA,WAAYsG,EAAyC,EAAzCA,iBAAkBC,EAAuB,EAAvBA,iBACjEhb,EAAWC,eACX5f,EAAS00B,eACTC,EAAWC,wBACTjnC,EAAgBuyB,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,YAEFhB,EAAS,OAAGqT,QAAH,IAAGA,OAAH,EAAGA,EAAQrT,UAClBiuC,EAAS5+B,GACT6+B,EAAgBn/B,GAChBy+B,EAAe1+B,GACfqX,EAAWhV,GACXg9B,EAA0Bt+B,GAC1Bo9B,EAA2Bj+B,GAArBg+B,EAAqBh+B,GAAZ+9B,EAAY/9B,GAC3Bo/B,EAAyBn9B,GAAnBo9B,EAAmBp9B,GAAZq9B,EAAYr9B,GACzBs9B,EAAuD38B,GAA/B48B,EAA+B58B,GAC/D,EAAsF3N,GAAkB,GAAhGwqC,EAAR,EAAQA,qBAAsBC,EAA9B,EAA8BA,iBAAkBC,EAAhD,EAAgDA,qBAAsBC,EAAtE,EAAsEA,YAChEC,EAAkB7tC,IAAgBmlB,EAClCoiB,EAAad,EAAa,eAAiB,iBAC3CqH,EAAsBJ,GAAoBC,EAC1CI,EAAuBF,EAAkBh9B,GAAgCC,GAE/E,EAAkChJ,mBAAS+d,QAA3C,mBAAOzkB,EAAP,KAAkB4sC,EAAlB,KACA,EAA0DlmC,mBAAS+d,QAAnE,mBAAOooB,EAAP,KAA8BC,EAA9B,KACA,EAA8CpmC,qBAA9C,mBAAOqmC,EAAP,KAAwBC,EAAxB,KACA,EAAsCtmC,mBAAS,IAA/C,mBAAO+jC,GAAP,KAAoBwC,GAApB,KACA,GAAgDvmC,qBAAhD,qBAAOo/B,GAAP,MAAyBC,GAAzB,MACA,GAAsDr/B,oBAAS,GAA/D,qBAAOwmC,GAAP,MAA4BC,GAA5B,MACA,GAAwCzmC,mBAASwd,SAAQ,OAACjT,QAAD,IAACA,OAAD,EAACA,EAAQ7P,eAAiBgsC,cAAnF,qBAAOhsC,GAAP,MAAqBisC,GAArB,MACA,GAAkD3mC,mBAAS,GAA3D,qBAAO4mC,GAAP,MAA0BC,GAA1B,MACA,GAAkE7mC,oBAAS,GAA3E,qBAAO8mC,GAAP,MAAkCC,GAAlC,MACA,GAA4D/mC,mBAAS+lC,EAAkBN,EAAyBC,GAAhH,qBAAOsB,GAAP,MAA+BC,GAA/B,MACA,GAA4DjnC,mBAAS,MAArE,qBAAOknC,GAAP,MAA+BC,GAA/B,MAEA,GAAwBlxB,KAAjBxG,GAAP,qBACA,GAAkDwH,KAAlD,qBAAO3F,GAAP,MAAmCytB,GAAnC,MAAwBC,UACxB,GAAsE3qB,GAAsB3Z,IAA9E0sC,GAAd,GAAQ77B,KAA8B87B,GAAtC,GAA2BvqC,UAAiCoP,GAA5D,GAA4DA,MAExDA,IACAgzB,EAASZ,GAAepyB,KAG5B,IAAMwzB,GAAgB,CAClBhlC,aAAc8iB,SAAQ,OAACjT,QAAD,IAACA,OAAD,EAACA,EAAQ7P,cAC/BH,YAAa,GACbI,kBAAmB,GACnBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,yBAA0B,GAC1BC,WAAYsqC,EACZhtC,WAAY0lB,OAASO,IAAI,EAAG,QAC5B7jB,eAAgB,GAChBhF,KAAM,GACNuF,gBAAiB,EACjBC,4BAA6B,EAC7BC,oBAAqBiqC,EACrBjnC,mBAAoB+lC,EACpB9sC,cAAe,GACfkE,kBAAmB,GACnBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,yBAA0B,GAC1BhB,aAAcujB,OAASO,IAAI,EAAG,QAC9B7iB,2BAA4BsiB,OAASO,IAAI,EAAG,QAAQA,IAAI,EAAG,QAC3D5iB,6BAA8BqiB,OAASO,IAAI,EAAG,QAC9C3iB,uBAAwB,EACxBC,SAAU,GACVxG,SAAU,GACVyG,yBAA0BupC,GAG9B,GASIvF,aAAQ,CAAEH,iBAAeI,KAAM,QAR/BC,GADJ,GACIA,aADJ,MAEIE,UAAaC,GAFjB,GAEiBA,OAAQC,GAFzB,GAEyBA,YAAarG,GAFtC,GAEsCA,aAClCpF,GAHJ,GAGIA,QACAsL,GAJJ,GAIIA,MACAsH,GALJ,GAKIA,UACAC,GANJ,GAMIA,SACAC,GAPJ,GAOIA,SACAC,GARJ,GAQIA,YAGJtnC,qBAAU,WACN,GAAIw+B,GAAcxjC,EAAgB,CAC9B,IACkBusC,EAadvsC,EAbAT,aACArC,EAYA8C,EAZA9C,WACAmC,EAWAW,EAXAX,aACAQ,EAUAG,EAVAH,gBACAU,EASAP,EATAO,6BACAD,EAQAN,EARAM,2BACAR,EAOAE,EAPAF,4BACAiD,EAMA/C,EANA+C,mBACA/G,EAKAgE,EALAhE,cACAoD,EAIAY,EAJAZ,YACAa,EAGAD,EAHAC,uBACAL,EAEAI,EAFAJ,WACG4sC,EAbP,aAcIxsC,EAdJ,IAgBAwrC,GAAgBe,GAChBT,GAA0B7rC,GAE1B,IAEkB,EAMdulC,EARAiH,EAAkB,GAEtB,GADqBzwC,IAAkButC,EAEnCkD,GAAkB,UAAAzsC,EAAe/F,gBAAf,eAAyBC,YAAa,GACxDgqC,GAAoBlkC,EAAe/F,UACnCqxC,IAAuB,GAMvB9F,EADAziC,IAAuBimC,EACf,uCACDzE,IACAiI,GAFC,IAGJxwC,gBACA4D,aACAR,YAAaA,GAAe,GAC5BS,kBACAC,8BACAiD,qBACA9I,SAAUwyC,EACVvvC,WAAY8nB,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAAQ,KAAMyC,cAAc,IAC/E9lB,aAAc2lB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAAQ,KAAMyC,cAAc,IACnF5kB,6BAA8BykB,GAAgB,CAAEE,QAAS3kB,EAA8BmiB,OAAQ,KAAMyC,cAAc,IACnH7kB,2BAA4B0kB,GAAgB,CAAEE,QAAS5kB,EAA4BoiB,OAAQ,KAAMyC,cAAc,MAG3G,2BACDqnB,GADC,IAEJ5sC,aACAC,kBACAC,8BACAiD,qBACA/G,gBACAoD,YAAaA,GAAe,GAC5BnF,SAAUwyC,EACVvvC,WAAY8nB,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAAQ,KAAMyC,cAAc,IAC/E9lB,aAAc2lB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAAQ,KAAMyC,cAAc,IACnF5kB,6BAA8BykB,GAAgB,CAAEE,QAAS3kB,EAA8BmiB,OAAQ,KAAMyC,cAAc,IACnH7kB,2BAA4B0kB,GAAgB,CAAEE,QAAS5kB,EAA4BoiB,OAAQ,KAAMyC,cAAc,MAGvHgmB,EAAmB9oB,SAASxiB,GAAmBwiB,SAASviB,IACxD4rC,GAAqB5rC,GACrB+kC,GAAMW,GACN4F,GAAeroC,GACfghC,EAAST,GAAc,OAACtjC,QAAD,IAACA,OAAD,EAACA,EAAgBjD,iBAE7C,CAACiD,IAEJgF,qBAAU,WACF4+B,IACAmG,MAEL,CAACnG,KAEJ5+B,qBAAU,WACFinC,KAAgBzI,IAChBkI,GAAoB,OAACO,SAAD,IAACA,QAAD,EAACA,GAAansC,6BAClCqrC,EAAkB,OAACc,SAAD,IAACA,QAAD,EAACA,GAAansC,gCAErC,CAACmsC,KAEJ,IAAMxG,GAAgB,uCAAG,WAAOC,GAAP,eAAAx1B,EAAA,0DACf7M,EADe,eACAqiC,IAEbrmC,aAAe2lB,GAAgB,CAAEE,QAAS7hB,EAAQhE,aAAcqjB,OAAQ,KAAMyC,cAAc,IAAQunB,cAC5GrpC,EAAQnG,WAAa8nB,GAAgB,CAAEE,QAAS7hB,EAAQnG,WAAYwlB,OAAQ,KAAMyC,cAAc,IAAQunB,cACxGrpC,EAAQ9C,6BAA+BykB,GAAgB,CAAEE,QAAS7hB,EAAQ9C,6BAA8BmiB,OAAQ,KAAMyC,cAAc,IAAQunB,cAC5IrpC,EAAQ/C,2BAA6B0kB,GAAgB,CAAEE,QAAS7hB,EAAQ/C,2BAA4BoiB,OAAQ,KAAMyC,cAAc,IAAQunB,cACxIrpC,EAAQjE,YAAoD,IAAtCiE,EAAQjE,YAAYu3B,OAAOj+B,OAAe,KAAO2K,EAAQjE,YAC/EiE,EAAQN,mBAAqB6lC,GAC7BvlC,EAAQpD,uBAAyB4rC,GAE5BrI,IACDngC,EAAQvD,4BAA8B2rC,IAGtC7C,KAAgBE,UACTzlC,EAAQ7D,yBACR6D,EAAQ5D,6BACR4D,EAAQ3D,kCACR2D,EAAQ1D,0BACRipC,KAAgBG,WAChB1lC,EAAQnD,yBACRmD,EAAQlD,6BACRkD,EAAQjD,kCACRiD,EAAQhD,0BAGC8rC,GAAU,mBAEV5C,EA7BC,2BA8BVlmC,EAAQ3C,0BAEXskC,GAAY/qC,SAhCC,kCAiCYinC,GAAgBwE,EAAWzrC,UAjCvC,QAiCboJ,EAAQpJ,SAjCK,+BAmCboJ,EAAQpJ,SAAWgqC,GAnCN,uCAsCV5gC,EAAQpJ,SAtCE,YAyCjBupC,EAzCiB,4CA2CPrtB,GAAc,CAAEpa,YAAWsH,UAAS9D,kBAAgBqmC,SA3C7C,2DA6Cb7B,EAASZ,GAAe,EAAD,KA7CV,2DAiDP7uB,GAAcjR,GAASuiC,SAjDhB,QAkDb7W,EAAS,uBAAD,cAAwB3f,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAQ7P,aAAhC,WAAuD,CAAEuF,MAAO,CAAE6nC,UAAWhtB,MAlDxE,mDAoDbokB,EAASZ,GAAe,EAAD,KApDV,mEAAH,sDAwItB,OACI,cAAC9K,GAAA,EAAD,UACI,eAACoE,GAAA,EAAD,CAAMxC,eAAe,SAAS8L,GAAI,EAAlC,WACMvC,GACE,eAACjL,EAAA,EAAD,CAAKuI,GAAI,EAAT,UACI,cAACxD,GAAA,EAAD,CAAY/F,QAAQ,KAApB,4BACA,cAACyO,GAAA,EAAD,OAGPxC,GAAcsG,GAAoBoC,GAC/B,cAAC,GAAD,IAEA,uBAAMjG,SAAUrB,GAAaa,IAA7B,UACI,eAAC5E,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,cAACqd,GAAA,EAAD,CAAY/F,QAAQ,KAApB,qBACA,eAACkF,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q5CpPjB,E4CoPN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAO5rC,KAAK,OAAOsG,MAAM,eAAe9G,YAAU,EAAC0/B,WAAYuL,GAAOzqC,KAAMi/B,QAASA,OAEzF,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACIpsC,YAAU,EACV+kC,SAAUgM,EACVrR,WAAYuL,GAAO/oC,cACnB1B,KAAK,gBACLsG,MAAM,eACNuB,QAAQ,qBACRq4B,QAASvuB,GACTstB,QAASA,GACT8E,eAvFF,SAAClQ,GAC/B,IAAMye,EAAeze,EAAMhP,OAAOxa,QAAU4kC,EAC5C+B,GAAuBsB,IAsFSzO,aAAW,SAItBkN,IACG,eAAC5O,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q5CxQrB,E4CwQF,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI3iC,KAAK,WACLsG,MAAM,2BACNmQ,QAASg0B,GAAO9qC,SAChBs/B,QAASA,OAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI4B,SAAU8L,EACVrwC,KAAK,aACLsG,MAAM,YACNuB,QAAQ,uBACRq4B,QAAS9tB,GACT6sB,QAASA,GACT4E,aAAW,SAK3B,eAAC1B,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q5C9RjB,E4C8RN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,eACLsG,MAAM,qBACN6lC,QAASjD,EAAa,KAAO5gB,OAC7B4jB,YA/WpB,GAgXoBE,aAlIC,SAACzhB,GAClC8lB,EAAa9lB,IAkImBsU,QAASA,OAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,aACLsG,MAAM,mBACN6lC,QAASjD,EAAa,KAAOrlC,EAC7BqoC,YAzXpB,GA0XoBjN,QAASA,UAIrB,cAACkD,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q5CnTjB,E4CmTN,UAEM4K,IACE,qCACI,cAAC5O,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACIrH,SAAUgM,EACVvwC,KAAK,2BACLsG,MAAM,kBACNuB,QAAQ,6BACRq4B,QAASruB,GACTotB,QAASA,GACT4E,aAAW,MAGnB,cAAC1B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,eAAC5H,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,gCAAf,iCACA,cAAC,KAAD,CACI2jC,SApHd,SAAC3N,GAAW,IAAD,EACnC0e,EAAS,OAAG1e,QAAH,IAAGA,GAAH,UAAGA,EAAOhP,cAAV,aAAG,EAAexa,MAE7BkoC,IAAchB,KACdD,IAA6B,GAC7BI,GAA0Ba,KAgHcloC,MAAOknC,GACPjrC,MAAM,sBACNuB,QAAQ,gCAJZ,SAMK2oC,EAAqB93B,KAAI,SAAC85B,GAAD,OACtB,cAACtO,GAAA,EAAD,CAAyB75B,MAAK,OAAEmoC,QAAF,IAAEA,OAAF,EAAEA,EAAM30C,GAAtC,gBACK20C,QADL,IACKA,OADL,EACKA,EAAM1tC,aADX,OAAe0tC,QAAf,IAAeA,OAAf,EAAeA,EAAM30C,mBAUjD,cAAC,GAAD,CACIohC,QAASA,GACTj/B,KAAK,cACL6rC,WAAS,EACTC,QAAS,EACT5M,WAAYuL,GAAO3lC,YACnBwB,MAAM,cACNw9B,WAAW,8DAGnB,eAACyC,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,eAACwc,GAAA,EAAD,CAAMC,WAAS,EAACjE,WAAW,SAASgI,Q5CjW9B,E4CiWN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC5I,GAAA,EAAD,CAAY/F,QAAQ,KAApB,iCAEJ,cAACkF,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,eAAC5H,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,qBAAf,yBACA,cAAC,KAAD,CACI0mC,SAAUgM,EACV/O,SA3MN,SAAC3N,GAC/Bid,GAAejd,EAAMhP,OAAOxa,QA2MQA,MAAOikC,GACPhoC,MAAM,cACNuB,QAAQ,qBALZ,SAOKsK,GAAwBuG,KAAI,SAAC3P,GAAD,OACzB,cAACm7B,GAAA,EAAD,CAA2B75B,MAAOtB,EAAQlL,GAA1C,SACKkL,EAAQjE,aADEiE,EAAQlL,iBAQ3C,cAAC,GAAD,CACI4E,YAAaA,EACb8rC,WAAYgC,EACZjC,YAAaA,GACbrP,QAASA,GACTwL,OAAQA,QAGhB,eAAClE,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,cAACqd,GAAA,EAAD,CAAY/F,QAAQ,KAApB,+BACA,eAACkF,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAACjE,WAAW,SAASgI,Q5ClYrC,E4CkYN,UACI,eAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,UACI,cAAC5I,GAAA,EAAD,6BACA,cAACA,GAAA,EAAD,CAAY/F,QAAQ,UAApB,sDAEJ,cAACkF,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAY6G,KAAG,EAACzyC,KAAK,sBAAsBkgC,QAAShuB,GAAuB+sB,QAASA,UAG5F,eAACkD,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q5C3YjB,E4C2YN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,+BACLsG,MAAM,0BACN8lC,aAzOQ,SAACzhB,GACzCgmB,EAAyBhmB,IAyOOuhB,YA5dpB,GA6doBC,QAASjD,EAAa,KAAO5gB,OAASO,IAAI,EAAG,QAC7CoW,QAASA,OAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,6BACLsG,MAAM,wBACN4lC,YArepB,GAseoBC,QAASjD,EAAa,KAAOwH,EAC7BzR,QAASA,UAIrB,eAACkD,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q5ChajB,E4CgaN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACKmF,GACG,cAAC,GAAD,CACIhN,eAnOF,SAAClQ,GAEnC,OADmBA,EAAMhP,OAAOxa,OAE5B,KAAKwlC,EACDiC,GAAS,iBAAkB,GAC3B,MACJ,KAAKhC,EACDgC,GAAS,iBAAkB,GAC3B,MACJ,KAAK/B,EACD+B,GAAS,iBAAkB,KA0NCtyC,YAAU,EACV+kC,SAAUgM,EACVrR,WAAYuL,GAAOtkC,SACnBnG,KAAK,WACLsG,MAAM,YACNuB,QAAQ,6BACRq4B,QAASvtB,GACTssB,QAASA,GACT4E,aAAW,IAGf,cAAC,GAAD,CACIrkC,YAAU,EACV+kC,SAAUgM,EACVvwC,KAAK,WACLsG,MAAM,YACN0M,KAAK,SACLksB,WAAYuL,GAAOtkC,SACnBumC,WAAY,CAAE/I,IAAK,GACnB1E,QAASA,QAInB8R,IACE,eAAC5O,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,UACI,cAAC,GAAD,CACIrH,SAAUgM,EACV/wC,YAAU,EACVQ,KAAK,iBACLsG,MAAM,mBACN0M,KAAK,SACLksB,WAAYuL,GAAOzlC,eACnB0nC,WAAY,CAAE/I,IAAK,GACnB1E,QAASA,GACTuC,SAvRN,SAAC3N,GAC/Bme,GAAY,kBACZF,GAAS,iBAAkBje,EAAMhP,OAAOxa,OACxC,IAAMtB,EAAU8oC,KAEE3C,GAA8B,2BACzCnmC,GADwC,IAE3C/D,gBAAiB6uB,EAAMhP,OAAOxa,UAI9B0nC,GAAS,iBAAkB,CAAE/+B,KAAM,SAAU2D,QArQxB,kEAmhBQ8zB,GAAOzlC,gBACJ,cAACg+B,GAAA,EAAD,CAAY/F,QAAQ,QAAQ7M,UAAU,cAAtC,SACKqa,GAAOzlC,eAAe2R,mBAO/C,eAAC4vB,GAAA,EAAD,CAAO/D,GAAI7c,GAAX,UACI,cAACqd,GAAA,EAAD,CAAY/F,QAAQ,KAApB,yBACA,eAACgB,EAAA,EAAD,CAAKuI,GAAI,EAAGtjC,QAAQ,OAAOy8B,eAAe,WAA1C,UACI,cAAC1B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASuE,GAAI,EAA5C,SACI,cAACM,GAAA,EAAD,yCAEJ,cAAC,KAAD,CACIhjC,KAAK,kBACLi/B,QAASA,GACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,oBAAGC,MAASkC,EAAZ,EAAYA,SAAUn3B,EAAtB,EAAsBA,MAAtB,OACJ,cAACk1B,GAAA,EAAD,CACIgF,SAAU2L,EACV7lC,MAAOA,EACP4yB,QAAQ,SACR+I,WAAY,CACR0M,eAAgB,cAACC,GAAA,EAAD,CAAgB/T,SAAS,QAAzB,gBAEpB8N,WAAY,CAAE3c,MAAO,CAAE6iB,UAAW,QAASngB,MAAO,KAClD+O,SAAU,SAAC5c,GACP4c,EAAS5c,GAhVxB,SAACA,GAC1B,IAAMiuB,EAAW9qB,SAASnD,EAAEC,OAAOxa,OAC9BuhB,OAAOknB,MAAMD,GAGdhC,EAAmBM,IAFnBN,EAAmB9oB,SAASnD,EAAEC,OAAOxa,OAAS8mC,IA8UV4B,CAAqBnuB,YAMzC,cAACoe,GAAA,EAAD,CAAYN,GAAI,IAAKsL,MAAM,QAA3B,gCACqBmD,MAErB,cAACnO,GAAA,EAAD,CAAYN,GAAI,IAAKsL,MAAM,QAA3B,sCAC2B4C,QAG/B,cAAC,GAAD,CAAkBtqC,MAAO0jC,EAAY3F,aAAcA,QAG3D,cAAC,GAAD,CACIoJ,SA7RkB,WAC9B6D,IAA6B,GAC7BE,GAA0BC,KA4Rd/D,YAAY,cACZF,YAAY,aACZzsC,KAAMswC,GACNrwC,QA5Re,WAC3BswC,IAA6B,GAC7BI,GAA0B,OA2RdzwC,MAAM,yBACN0V,QAAO,qEAAgEvD,GAAsBq+B,IAAtF,aAW3BlC,GAAkB1c,aAAlB,exD8TiD,CAC7CntB,eAAgB,KAChB2B,WAAW,EACXooC,iBAAkB,OwD7TPF,UC5oBAyD,GAFW,kBAAM,cAAC,GAAD,CAAmB9J,YAAY,K,uGCSlD+J,GAAiBC,aAAOC,KAAPD,EAAiB,kBAAgB,CAC3D,qBAAsB,CAClBxT,gBAFuC,EAAG0T,MAEnBC,QAAQ3hB,OAAO4hB,OAE1C,mCAAoC,CAChCC,OAAQ,OAQHC,IAJsBN,aAAOtP,KAAPsP,EAAe,kBAAgB,CAC9D,SAAU,CAAEO,kBADkC,EAAGL,MACZM,UAAUC,kBAGrBT,aAAO3T,KAAW,CAC5CqU,kBAAmB,SAACC,GAAD,MAAmB,mBAATA,IADHX,EAE3B,oBAAGY,sBAAH,aAA2BC,QAA3B,MAAkD,CACjD,yEAA0E,CACtE7wC,QAAS,QAEb,uBAAwB,CACpB8wC,cAAe,aAEnB,2BAA4B,CACxB,UAAW,CACPpB,UAAW,UAEf,aAAc,CACVqB,iBAAkBH,EAAiB,EAAI,GAE3CI,aAAc,EACdC,wBAAyBL,EAAiB,EAAI,EAC9CM,qBAAsBN,EAAiB,EAAI,GAG/ClB,UAAW,SACXngB,MAAO,GACPC,OAAQ,GACR6R,cAtBD,SAuBC,6DAA8D,CAC1D8P,iBAAkB,aAIbC,GAAyBpB,aAAO3T,KAAP2T,EAAkB,iBAAO,CAC3D,yEAA0E,CACtEhwC,QAAS,OACTmxC,iBAAkB,QAEtB,uBAAwB,CACpBL,cAAe,aAEnB,2BAA4B,CACxB,UAAW,CACPpB,UAAW,UAEf,aAAc,CACV2B,gBAAiB,GAErB3B,UAAW,SACXsB,aAAc,EACdM,oBAAqB,EACrBC,uBAAwB,GAE5BC,QAAS,OACTjiB,MAAO,GACPC,OAAQ,OAGCiiB,GAAiBzB,aAAOlQ,KAAPkQ,EAAmB,kBAAgB,CAC7DtU,SAAU,WACVhM,SAAU,GACVgiB,IAAK,EACLC,MAAO,GACPpS,MAL6C,EAAG2Q,MAKnCM,UAAUoB,aAQdC,IALgB7B,aAAO8B,KAAP9B,EAAyB,gBAAGE,EAAH,EAAGA,MAAH,MAAgB,CAClE1T,gBAAiB0T,EAAMM,UAAUuB,KACjCxS,MAAO2Q,EAAMM,UAAUwB,UAGQhC,aAAOlQ,KAAY,CAClD4Q,kBAAmB,SAACC,GAAD,MAAmB,YAATA,GAA+B,aAATA,IADpBX,EAEhC,YAAmC,IAAhCE,EAA+B,EAA/BA,MAAO+B,EAAwB,EAAxBA,QAAS3zC,EAAe,EAAfA,SAClB,OAAI2zC,EACO,CACH1S,MAAO2Q,EAAMM,UAAU0B,MAG3B5zC,EACO,CACHihC,MAAO2Q,EAAMM,UAAU2B,MACvBxS,WAAYuQ,EAAMkC,WAAWC,kBAG9B,CACH9S,MAAO2Q,EAAMM,UAAU2B,WAUlBG,IANgCtC,aAAO6B,GAAP7B,EAA4B,iBAAO,CAC5EtgB,SAAU,GACV6iB,WAAY,GACZC,YAAa,MAGSxC,aAAO/Q,KAAP+Q,EAAa,gBAAGE,EAAH,EAAGA,MAAH,MAAgB,CACnD3Q,MAAO2Q,EAAMC,QAAQsC,OAAON,MAC5BvH,QAASsF,EAAMjN,QAAQ,QAGdyP,GAAsB1C,aAAO2C,KAAP3C,EAAa,iBAAO,CACnDtgB,SAAU,WAyBDkjB,IAtBmB5C,aAAOlW,KAAPkW,EAAe,iBAAO,CAClD,UAAW,CACP6C,WAAY,QAEhB7yC,QAAS,OACTy8B,eAAgB,aAChBmO,QAAS,EACTkI,UAAW,EACXnH,SAAU,EACVhM,WAAY,SACZoT,cAAe,WAGc/C,aAAOlQ,KAAPkQ,EAAmB,kBAAgB,CAChEtgB,SAAU,GACVsjB,WAAY,OACZC,cAAe,EACftT,WAAY,IACZJ,MALgD,EAAG2Q,MAKtCM,UAAUoB,SACvBmB,cAAe,gBAGS/C,aAAOkD,KAAPlD,EAAe,gBAAGE,EAAH,EAAGA,MAAH,MAAgB,CACvD3gB,MAAO,GACPC,OAAQ,GACRob,QAAS,EACT,0BAA2B,CACvBA,QAAS,EACTuI,OAAQ,EACRC,mBAAoB,QACpB,gBAAiB,CACbC,UAAW,mBACX9T,MAAO2Q,EAAMM,UAAUwB,MACvB,uBAAwB,CACpBxV,gBAAiB0T,EAAMM,UAAU8C,aACjCC,QAAS,EACTlD,OAAQ,GAEZ,oCAAqC,CACjCkD,QAAS,MAIrB,qBAAsB,CAClBhkB,MAAO,GACPC,OAAQ,IAEZ,qBAAsB,CAClBwhB,aAAc,GACdxU,gBAAiB0T,EAAMM,UAAUgD,YACjCD,QAAS,QAIJE,GAAgBzD,cAAO,gBAAG9iB,EAAH,EAAGA,UAAca,EAAjB,0BAChC,cAAC2lB,GAAA,EAAD,2BAAa3lB,GAAb,IAAoB4lB,QAAS,CAAEC,OAAQ1mB,QADd8iB,EAE1B,kBAAGE,EAAH,EAAGA,MAAH,wCACQ2D,KAAeC,SAAY,CAC9BtX,gBAAiB0T,EAAMM,UAAUuD,YACjCC,UAAW9D,EAAM+D,QAAQ,GACzB1U,MAAO2Q,EAAMC,QAAQsC,OAAON,MAC5BvH,QAAS,EACTlb,SAAU,GACViQ,WAAY,IACZ+P,UAAW,SACXwE,WAAYhE,EAAMkC,WAAW+B,UAAUD,aAT5C,4BAWQL,KAAeO,OAAU,CAC5B7U,MAAO2Q,EAAMM,UAAUuD,YACvB,YAAa,CACTvX,gBAAiB0T,EAAMM,UAAUuD,YACjC1D,OAAQ,oBAfjB,K,qECnFYgE,GAhFM,SAACtmB,GAClB,IAAMmiB,EAAQoE,eACNC,EAAmGxmB,EAAnGwmB,UAAWC,EAAwFzmB,EAAxFymB,UAAWrwC,EAA6E4pB,EAA7E5pB,UAAWswC,EAAkE1mB,EAAlE0mB,OAAQC,EAA0D3mB,EAA1D2mB,aAAjD,EAA2G3mB,EAA5ChwB,aAA/D,MAAuE,KAAvE,IAA2GgwB,EAA9B4mB,yBAA7E,SACA,EAAkCttC,mBAAS4a,IAA3C,mBAAO2yB,EAAP,KAAkBC,EAAlB,KACA,EAA0CxtC,mBAASotC,GAAnD,mBAAOK,EAAP,KAAsBC,EAAtB,KACM9E,EAAWyE,EASjB,OACI,eAACrR,GAAA,EAAD,CAAO/D,GAAI,CAAE/P,MAAO,OAAQ+T,GAAI,GAAhC,UACKvlC,GACG,cAACi3C,GAAA,EAAD,CAAS1V,GAAI,CAAE2V,GAAI,CAAEC,GAAI,GAAKC,GAAI,CAAE1V,GAAI,EAAGyV,GAAI,IAA/C,SACI,cAACpV,GAAA,EAAD,CAAYR,GAAI,CAAE8V,KAAM,YAAcrb,QAAQ,KAAKp/B,GAAG,aAAaykC,UAAU,MAA7E,SACKrhC,MAIb,cAACs3C,GAAA,EAAD,UACKlxC,EACG,cAAC,GAAD,IAEA,eAACmxC,GAAA,EAAD,CAAOhW,GAAI,CAAEqM,SAAU,KAAO,kBAAgB,aAAargB,KAAK,SAAhE,UACI,cAACiqB,GAAA,EAAD,UACI,cAAC,KAAD,UACKhB,EAAU/+B,KAAI,SAACggC,GAAD,OACX,cAACC,GAAA,EAAD,CAEI3K,MAAM,OACNF,QAAQ,SACR8K,cAAeZ,IAAkBU,EAAS76C,IAAKi6C,EAJnD,SAMI,cAACe,GAAA,EAAD,CACItU,SAAUsT,EACViB,cAAeJ,EAASpyC,MACxBk6B,OAAQwX,IAAkBU,EAAS76C,GACnCk7C,UAAWf,IAAkBU,EAAS76C,GAAKi6C,EAAY3yB,GACvDmN,SAnCb0mB,EAmCwCN,EAAS76C,GAnCpC,SAACg2B,GACrCA,EAAMoD,iBAEN8gB,EADoBC,IAAkBgB,GAAYlB,IAAc3yB,GACrCA,GAAgBA,IAC3C8yB,EAAiBe,KAgCmBxW,GAAI,CAAEyW,WAAY,UANtB,SAQI,qCACKP,EAASpyC,MACO,wBAAhBoyC,EAAS76C,IACN,cAAC,mBAAD,CAAkB4kC,MAAO2Q,EAAMM,UAAU2B,MAAO7mB,KAAM,KAEzC,wBAAhBkqB,EAAS76C,IACN,cAAC,mBAAD,CAAkB4kC,MAAO2Q,EAAMM,UAAU2B,MAAO5iB,MAAO,GAAIC,OAAQ,WAnB1EgmB,EAAS76C,IAzBxB,IAACm7C,SAoDP,cAACE,GAAA,EAAD,UACKxB,GACGA,EACKyB,QACAvrB,KAAKuB,GAAc2oB,EAAWE,IAC9Bt/B,KAAI,SAAC5C,EAAMuhB,GACR,IAAMxvB,EAAO,gBAAYwvB,GACzB,OAAO,cAAC8b,EAAD,CAAwBiG,QAAStjC,EAAMjO,QAASA,GAAjCiO,EAAKjY,kBChCpDw7C,GA5CU,SAAC,GAA4D,IAAD,IAAzDC,yBAAyD,MAArC,GAAqC,EAAjCjyC,EAAiC,EAAjCA,UAAWkyC,EAAsB,EAAtBA,gBACnD92C,EAAgBuyB,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,YACR,EAAsC8H,mBAAS,IAA/C,mBAAOivC,EAAP,KAAoBC,EAApB,KACMhC,E/CsKC,CACH,CAAE55C,GAAI,OAAQyI,MAAO,mBACrB,CAAEzI,GAAI,MAAOyI,MAAO,OACpB,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,QAASyI,M+C1K2B7D,I/CqKVmQ,GAAsB,MAAQ,QAM9D,CAAE/U,GAAI,U+CzKV6M,qBAAU,WACN,GAAI4uC,EAAmB,CACnB,IAAMI,E9CAuB,SAACF,EAAa/2C,GACnD,OAAO+2C,EAAY9gC,KAAI,SAACtW,GACpB,IAAQvE,EAA8DuE,EAA9DvE,GAAImC,EAA0DoC,EAA1DpC,KAAMuC,EAAoDH,EAApDG,aAAcF,EAAsCD,EAAtCC,OAAQC,EAA8BF,EAA9BE,OAAQE,EAAsBJ,EAAtBI,kBAC1Cm3C,EAAajoC,GAAYqB,MAAK,SAACnP,GAAD,OAAYA,EAAO/F,KAAO0E,KACxDq3C,EAAU/xB,GAAW,CAACxlB,EAAQC,IAGpC,MAAO,CACHzE,KACAmC,OACA0D,IALQskB,GAAW4xB,GAMnBh2C,OAAM,OAAE+1C,QAAF,IAAEA,OAAF,EAAEA,EAAY70C,YACpB0mB,MAAOL,GAA4B,CAAE3oB,oBAAmBC,oB8CZ3Bo3C,CAA0BP,EAAmB72C,GAC1Eg3C,EAAeC,MAEpB,CAACJ,EAAmB72C,IAuBvB,OACI,cAAC,GAAD,CACIi1C,UAAW8B,EACX/B,UAAWA,EACXpwC,UAAWA,EACXswC,OAAO,OACPC,aA3BmB,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QAC3BhK,EAAiCu7C,EAAjCv7C,GAAImC,EAA6Bo5C,EAA7Bp5C,KAAM0D,EAAuB01C,EAAvB11C,IAAKE,EAAkBw1C,EAAlBx1C,OAAQ4nB,EAAU4tB,EAAV5tB,MAK/B,OACI,eAACynB,GAAD,CAAgBK,OAAK,EAACwG,UAAW,EAAjC,UACI,cAACnB,GAAA,EAAD,CAAWrW,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMtnB,MAAM,MAAMqb,QAAQ,SAAvE,SACK9tC,IAEL,cAAC24C,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SAAyBtqC,IACzB,cAACi1C,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SAAyBpqC,IACzB,cAAC+0C,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SAAyBxiB,IACzB,cAACmtB,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SACI,cAAChR,GAAA,EAAD,CAAQ1K,QAAS,WAXzBinB,EAW+D17C,IAAvD,wBARiCA,OCOtCm8C,GA5BQ,SAAC,GAAsD,IAAD,IAAnDR,mBAAmD,MAArC,GAAqC,EAAjCD,EAAiC,EAAjCA,gBAAiBlyC,EAAgB,EAAhBA,UAKzD,OACI,mCACKA,EACG,cAAC,GAAD,IAEA,cAAC42B,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACM+N,EAAYp7C,OAKV,cAAC,GAAD,CACIk7C,kBAAmBE,EACnBnyC,UAAWA,EACXkyC,gBAlBM,SAACt0C,GAC3Bs0C,EAAgBt0C,MAUA,cAAC+9B,GAAA,EAAD,CAAYgL,MAAM,SAAS/Q,QAAQ,KAAnC,oECkETgd,GArEQ,SAAC,GAAgG,IAA9F5yC,EAA6F,EAA7FA,UAAW6yC,EAAkF,EAAlFA,WAAYC,EAAsE,EAAtEA,iBAAkBpzC,EAAoD,EAApDA,SAAUqzC,EAA0C,EAA1CA,kBAAmBC,EAAuB,EAAvBA,iBACtF5lB,EAAWC,eACX+U,EAAWC,wBAEjBh/B,qBAAU,WACFwvC,GACAzQ,EAAST,GAAc,OAACkR,QAAD,IAACA,OAAD,EAACA,EAAYz3C,gBAEzC,CAACy3C,IAeJ,OACI,eAACnc,GAAA,EAAD,WACK12B,GAAa,cAAC,GAAD,IACb6yC,GACG,eAACjc,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAACzI,GAAA,EAAD,CAAYld,GAAI,EAAGmX,QAAQ,KAA3B,8BAGA,eAACgB,EAAA,EAAD,CAAKwN,GAAI,EAAGvoC,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAArE,UACKic,IAAqC,OAAhBD,QAAgB,IAAhBA,OAAA,EAAAA,EAAkB/7C,QAAS,EAC7C,eAAC4lC,GAAA,EAAD,CAAaxB,GAAI,CAAE/P,MAAO,KAA1B,UACI,cAACwR,GAAA,EAAD,CAAYpmC,GAAG,gBAAf,2BACA,cAAC,KAAD,CACIwM,MAAOtD,GAAY,GACnBT,MAAM,gBACNuB,QAAQ,gBACR25B,SArBH,SAAC3N,GAAW,IAAD,EAC9Bh2B,EAAE,OAAGg2B,QAAH,IAAGA,GAAH,UAAGA,EAAOhP,cAAV,aAAG,EAAexa,MAC1BgwC,EAAiBx8C,IAeO,gBAMKs8C,QANL,IAMKA,OANL,EAMKA,EAAkBzhC,KAAI,SAACwoB,GAAD,OACnB,cAACgD,GAAA,EAAD,CAA0B75B,MAAO62B,EAAOrjC,GAAxC,SACKqjC,EAAOp8B,aADGo8B,EAAOrjC,YAOlC,cAACmlC,GAAA,EAAD,CAAY/F,QAAQ,KAApB,SAA0Bid,EAAWl6C,OAEzC,cAACi+B,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACI,cAACkX,GAAA,EAAD,CAAQ1K,QA1CQ,WACpCmC,EAAS,YAAD,OAAa1tB,EAAb,wBAyC8Dk2B,QAAQ,OAA1D,wCAKR,cAACyO,GAAA,EAAD,IACA,cAAC,GAAD,CACI8N,YAAaU,EAAWV,YACxBnyC,UAAWA,EACXkyC,gBA/CU,SAACt0C,GAC3BwvB,EAAS,uBAAD,OAAwBxvB,EAAxB,sBCyCDq1C,GAjEW,WACtB,IAAM7Q,EAAWC,wBACXjV,EAAWC,eACT3tB,EAAayiC,eAAbziC,SACR,EAAgDwD,mBAAS,IAAzD,mBAAO4vC,EAAP,KAAyBI,EAAzB,KACA,EAAkDhwC,oBAAS,GAA3D,mBAAO6vC,EAAP,KAA0BI,EAA1B,KAEA,EAAqF/7B,GAAyBsJ,SAAShhB,IAAzGmzC,EAAd,EAAQpkC,KAA6B2kC,EAArC,EAA0BpzC,UAAuCqzC,EAAjE,EAA0DjkC,MAC1D,EAAkGyJ,KAApFy6B,EAAd,EAAQ7kC,KAA8B8kC,EAAtC,EAA2BvzC,UAA6CwzC,EAAxE,EAAiEpkC,MAE3DpP,EAAYozC,GAAuBG,EAErCF,GACAjR,EAASZ,GAAe6R,IAGxBG,GACApR,EAASZ,GAAegS,IAG5BnwC,qBAAU,WAKN,GAJIwvC,GACAzQ,EAAST,GAAc,OAACkR,QAAD,IAACA,OAAD,EAACA,EAAYz3C,cAGpCk4C,EAAa,CAAC,IAAD,IACPG,GAA2B,OAAXH,QAAW,IAAXA,GAAA,UAAAA,EAAaI,eAAb,eAAsBC,SAAU,GAChDC,GAA+B,OAAXN,QAAW,IAAXA,GAAA,UAAAA,EAAaI,eAAb,eAAsBG,aAAc,GACxDC,EAAmB,sBAAIL,GAAJ,YAAsBG,IAAmBviC,KAAI,SAAC0iC,GACnE,MACI,CAAEv9C,GAAIu9C,EAAOv9C,GAAIiH,YAAas2C,EAAOp7C,SAIvCq7C,EADqBF,EAAiBziC,KAAI,SAAC0iC,GAAD,OAAYA,EAAOv9C,MACtBmvB,SAASjF,SAAShhB,IAE/DyzC,EAAqBa,GACrBd,EAAoBY,MAEzB,CAACjB,EAAYS,IAEZD,GACAjR,EAASZ,GAAe6R,IAGxBG,GACApR,EAASZ,GAAegS,IAO5B,OACI,cAACS,GAAD,CACIpB,WAAYA,EACZC,iBAAkBA,EAClBpzC,SAAUA,EACVM,UAAWA,EACX+yC,kBAAmBA,EACnBC,iBAXuB,SAACx8C,GAC5B42B,EAAS,YAAD,OAAa52B,Q,4DCvDhB09C,GAAoBv4B,2BAAiB,uBAAD,uCAAyB,WAAOlN,GAAP,uBAAAF,EAAA,6DAC9DnY,GAD8D,EACvCqY,GAAQ,IAA/BrY,QAASgX,EADqD,EACrDA,UADqD,kBAG3CD,GAAe/W,EAASgX,GAHmB,cAG5D4B,EAH4D,yBAI3DA,EAASP,MAJkD,sCAM9C,CAChB9V,KAAM,4BACN2W,SAAS,eAAIN,SAASP,YAAb,eAAmBa,UAAW,KAAIN,SAAS8M,YARU,yDAAzB,uDCuFlCq4B,GA/EK,SAAC,GAA0F,IAAxF/9C,EAAuF,EAAvFA,QAASgX,EAA8E,EAA9EA,UAAWgnC,EAAmE,EAAnEA,uBAAwBC,EAA2C,EAA3CA,oBAA2C,IAAtBC,eAAsB,SACpGlS,EAAWC,wBACjB,EAA0B1U,uBAAY,SAACxqB,GAAD,OAAWA,EAAMoxC,eAA/C9lC,EAAR,EAAQA,KAAM0nB,EAAd,EAAcA,QACNqe,EAA8Br2B,GAAlBs2B,EAAkBt2B,GAATu2B,EAASv2B,GAC9B41B,EAAsCtlC,EAAtCslC,OAAQh5C,EAA8B0T,EAA9B1T,WAAY2G,EAAkB+M,EAAlB/M,QAASyR,EAAS1E,EAAT0E,KAC/BwhC,EAAS,0BAAeZ,QAAf,IAAeA,OAAf,EAAeA,EAAQv9C,IAChCo+C,EAAa,qCAA0B75C,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAYvE,GAAtC,WACbq+C,EAAaP,EAAO,kCAAuB5yC,QAAvB,IAAuBA,OAAvB,EAAuBA,EAASlL,GAAhC,6CAAkEkL,QAAlE,IAAkEA,OAAlE,EAAkEA,EAASlL,IAErG6M,qBAAU,WACqB,IAAD,EAAtBjN,GAAWgX,IACNqB,IAAQ,UAAAA,EAAKrY,UAAL,eAAeI,MAAOkqB,SAAStT,IACxCg1B,EAAS8R,GAAkB,CAAE99C,UAASgX,kBAG/C,IAEH/J,qBAAU,WACF+wC,IACAhS,EAAS8R,GAAkB,CAAE99C,UAASgX,eACtCinC,OAEL,CAACD,IAEJ,IAAMU,EAAe,WACjB,IAAI71C,EACJ,OAAQ7I,GACJ,KAAKo+C,EACDv1C,EAAK,OAAGlE,QAAH,IAAGA,OAAH,EAAGA,EAAYpC,KACpB,MACJ,KAAK87C,EACDx1C,EAAK,OAAGyC,QAAH,IAAGA,OAAH,EAAGA,EAAS/I,KACjB,MACJ,KAAK+7C,EACDz1C,EAAK,OAAGkU,QAAH,IAAGA,OAAH,EAAGA,EAAMxa,KACd,MACJ,QACIsG,EAAQ,GAEhB,OAAOA,GAGL81C,EAAmB,SAAC1nC,EAAK1U,EAAMq8C,EAAkBC,GACnD,OAAID,EACO,cAACrZ,GAAA,EAAD,UAAamZ,MAGpBG,EACO,cAAC,IAAD,CAAMC,GAAI7nC,EAAV,SAAgB1U,IAGpB,MAGLw8C,GAAgC,OAAVp6C,QAAU,IAAVA,OAAA,EAAAA,EAAYvE,MAAZ,OAAkBuE,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAYpC,OAAQvC,IAAYo+C,EACxEY,GAAqC,OAAVr6C,QAAU,IAAVA,OAAA,EAAAA,EAAYvE,MAAZ,OAAkBuE,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAYpC,QAASvC,IAAYq+C,GAAWr+C,IAAYs+C,GACrGW,GAA0B,OAAP3zC,QAAO,IAAPA,OAAA,EAAAA,EAASlL,MAAT,OAAekL,QAAf,IAAeA,OAAf,EAAeA,EAAS/I,OAAQvC,IAAYq+C,EAC/Da,GAA+B,OAAP5zC,QAAO,IAAPA,OAAA,EAAAA,EAASlL,MAAT,OAAekL,QAAf,IAAeA,OAAf,EAAeA,EAAS/I,OAAQvC,IAAYs+C,EACpEa,GAAoB,OAAJpiC,QAAI,IAAJA,OAAA,EAAAA,EAAM3c,MAAN,OAAY2c,QAAZ,IAAYA,OAAZ,EAAYA,EAAMxa,OAAQvC,IAAYs+C,EAE5D,OACI,sBAAKc,KAAK,eAAV,UACKrf,GACG,cAACS,EAAA,EAAD,CAAKuE,GAAI,CAAE/P,MAAO,OAAlB,SACI,cAACqqB,GAAA,EAAD,MAGPhnC,GACG,eAAC,KAAD,CAAgBinC,UAAU,SAAI,aAAW,aAAzC,UACKpB,IAAO,OAAIP,QAAJ,IAAIA,OAAJ,EAAIA,EAAQv9C,MAAnB,OAAyBu9C,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAQp7C,OAAQ,cAAC,IAAD,CAAMu8C,GAAIP,EAAV,SAAsBZ,EAAOp7C,OACtE27C,GAAWS,EAAiBH,EAAD,OAAgB75C,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAYpC,KAAMw8C,EAAqBC,GAClFL,EAAiBF,EAAD,OAAanzC,QAAb,IAAaA,OAAb,EAAaA,EAAS/I,KAAM08C,EAAkBC,GAC9DC,GAAiB,cAAC5Z,GAAA,EAAD,iBAAaxoB,QAAb,IAAaA,OAAb,EAAaA,EAAMxa,cC5EnDg9C,GAAoB3rB,sBAAY,CAClCrxB,KAAM,eACNsxB,aARiB,CACjBsX,QAAQ,EACR3nC,MAAO,KACP0V,QAAS,MAMT6a,SAAU,CACNyrB,UADM,SACIzyC,EAAOknB,GACblnB,EAAMo+B,QAAS,EACfp+B,EAAMvJ,MAAQywB,EAAOC,QAAQ1wB,MAC7BuJ,EAAMmM,QAAU+a,EAAOC,QAAQhb,SAGnCumC,UAPM,SAOI1yC,GACNA,EAAMo+B,QAAS,MAKpB,GAAiCoU,GAAkBnrB,QAA3CorB,GAAR,GAAQA,UAAWC,GAAnB,GAAmBA,UACXF,MAAf,QCuHeG,GAjIW,SAAC,GAAsG,IAAD,IAAnGnuB,eAAmG,MAAzF,GAAyF,EAArFouB,EAAqF,EAArFA,eAAgBC,EAAqE,EAArEA,cAAeC,EAAsD,EAAtDA,WAAYC,EAA0C,EAA1CA,gBAAiBC,EAAyB,EAAzBA,mBAC3FC,EAAiBh4B,GACnBgkB,EAAWC,wBACjB,EAA8Cn/B,mBAAS,IAAvD,mBAAOmzC,EAAP,KAAwBC,EAAxB,KACA,EAA0DpzC,oBAAS,GAAnE,mBAAOqzC,EAAP,KAA8BC,EAA9B,KACA,EAAgDtzC,oBAAS,GAAzD,mBAAOuzC,EAAP,KAAyBC,EAAzB,KACA,EAAwDxzC,qBAAxD,mBAAOyzC,EAAP,KAA6BC,EAA7B,KAIAvzC,qBAAU,WACN,UAAIskB,QAAJ,IAAIA,KAAS5wB,OAAQ,CACjB,IAAM8/C,EAAgBnvB,GAA0BC,GAChD2uB,EAAmBO,MAExB,CAAClvB,IAEJ,IAoCMmvB,EAA2B,SAACxlC,GAC9BslC,EAAwBtlC,GACxBolC,GAAoB,GACpBF,GAAyB,IAyBvBnsB,EAASosB,EAAmB,SAAW,MACvCM,EAAcN,EAvBW,WAC3BD,GAAyB,IArDQ,KAWtB,OAAP7uB,QAAO,IAAPA,OAAA,EAAAA,EAAS5wB,UACTqrC,EACIwT,GAAU,CACNoB,SAAS,EACTp9C,MAAO,QACP0V,QAAQ,qCAAD,OAAuC2mC,OAG/C,KAsCPE,EAAmBQ,IAIK,WAC5BH,GAAyB,IA7DG,KAyBjB,OAAP7uB,QAAO,IAAPA,OAAA,EAAAA,EAAS5wB,SAAsCk/C,IAAeG,IAC9DhU,EACIwT,GAAU,CACNoB,SAAS,EACTp9C,MAAO,QACP0V,QAAQ,8CAGT,KAgCP4mC,EAAgBS,IAUlBM,EAAU,UAAM5sB,EAAN,YAAgB4rB,GAC1BiB,EAAY,0CAA+B7sB,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQrzB,cAAvC,mBAAwD2/C,QAAxD,IAAwDA,OAAxD,EAAwDA,EAAsBj7C,YAA9E,iBAAkGu6C,EAAlG,KAElB,OAAOD,EACH,cAAC,GAAD,IAEA,qCACI,cAACpf,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACI,cAAC,GAAD,CACI8e,iBA7Cc,SAACjsB,GAC3BslC,EAAwBtlC,GACxBolC,GAAoB,GACpBF,GAAyB,IA2CblZ,mBAAiB,EACjBE,gBAAiB6Y,EACjBp3C,MAAK,cAASg3C,OAGtB,eAACrf,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAACzI,GAAA,EAAD,CAAY/F,QAAQ,KAApB,2BAAqCqgB,EAArC,OACA,cAAC5R,GAAA,EAAD,IACA,cAACzN,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACK2R,EACG,cAAC,GAAD,IAEAM,EAAgBhlC,KAAI,SAACqQ,GAAD,OAChB,cAAC,GAAD,CAEIA,OAAQA,EACRsd,eAAgB8X,EAChB7X,kBAAgB,GAHXvd,EAAOlrB,YAShC,cAAC,GAAD,CACI4vC,SAAU2Q,EACV1Q,YAAY,UACZF,YAAY,SACZzsC,KAAM68C,EACN58C,QA5Ce,WACvB68C,GAAyB,IA4CjB58C,MAAOq9C,EACP3nC,QAAS4nC,Q,oEChInB9G,GAAY,CACd,CAAE55C,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,YAAayI,MAAO,cAC1B,CAAEzI,GAAI,SACN,CAAEA,GAAI,SA8DK2gD,GA3DO,SAAC,GAAuF,IAAD,IAApFC,0BAAoF,MAA/D,GAA+D,EAA3Dp3C,EAA2D,EAA3DA,UAAWq3C,EAAgD,EAAhDA,cAAeC,EAAiC,EAAjCA,YAAaC,EAAoB,EAApBA,cACrF,EAAgCr0C,mBAAS,IAAzC,mBAAOs0C,EAAP,KAAiBC,EAAjB,KAEAp0C,qBAAU,WACN,IAAMq0C,EAAoBN,EAAmB/lC,KAAI,SAAC3P,GAC9C,IAAQrH,EAAwEqH,EAAxErH,cAAe+D,EAAyDsD,EAAzDtD,oBAAqBV,EAAoCgE,EAApChE,aAAiBmtC,EAA7D,aAAgFnpC,EAAhF,IACMi2C,EAAcnsC,GAAanR,EAAeiQ,IAC1CstC,EAAgBpsC,GAAapN,EAAqByM,IAExD,OAAO,2BACAggC,GADP,IAEIl/B,KAAMgsC,EAAYl6C,YAClB4R,OAAQuoC,EAAcn6C,YACtBjB,UAAW6mB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAAQ,sBAIpE02B,EAAYC,KACb,CAACN,IAsCJ,OAAO,cAAC,GAAD,CAAc9G,OAAO,OAAOD,UAAWmH,EAAUpH,UAAWA,GAAWpwC,UAAWA,EAAWuwC,aApC5E,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QACxBhK,EAA4Du7C,EAA5Dv7C,GAAImC,EAAwDo5C,EAAxDp5C,KAAMgT,EAAkDomC,EAAlDpmC,KAAM0D,EAA4C0iC,EAA5C1iC,OAAQ7S,EAAoCu1C,EAApCv1C,UAAWqsC,EAAyBkJ,EAAzBlJ,qBAc3C,OACI,eAAC+C,GAAD,CAAgBK,OAAK,EAACwG,UAAW,EAAjC,UACI,cAACnB,GAAA,EAAD,CAAWrW,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMtnB,MAAM,MAAMqb,QAAQ,SAAvE,SACK9tC,IAEL,cAAC24C,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SAAyBh7B,IACzB,cAAC2lC,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SAAyBt3B,IACzB,cAACiiC,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SAAyBnqC,IACzB,cAAC80C,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SACI,cAAChR,GAAA,EAAD,CAAQ1K,QArBM,WACtBosB,EAAc7gD,IAoBN,sBAEJ,cAAC86C,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SACI,cAAChR,GAAA,EAAD,CAAQ1K,QAhBQ,WACxBssB,EAAc/gD,EAAIqyC,IAeV,sBAEJ,cAACyI,GAAA,EAAD,CAAW3K,MAAM,OAAjB,SACI,cAAChR,GAAA,EAAD,CAAQ1K,QAvBM,WACtBqsB,EAAY9gD,IAsBJ,sBAdiCA,OCwBtCqhD,GAnEK,SAAC,GAAkG,IAAhGL,EAA+F,EAA/FA,SAAU55C,EAAqF,EAArFA,aAAcoC,EAAuE,EAAvEA,UAAW83C,EAA4D,EAA5DA,gBAAiBC,EAA2C,EAA3CA,aAAcC,EAA6B,EAA7BA,UAAWC,EAAkB,EAAlBA,YAC1F7qB,EAAWC,eAuBjB,OACI,eAACqJ,GAAA,EAAD,WACI,cAACE,EAAA,EAAD,CAAKnY,GAAI,EAAG5iB,QAAQ,OAAOy8B,eAAe,WAAW4f,aAAa,SAAlE,SACI,cAACviB,GAAA,EAAD,CAAQ1K,QAxBe,WAC/BmC,EAAS,YAAD,OAAaxvB,EAAb,qBAuB6Cg4B,QAAQ,OAArD,kCAIH51B,EACG,cAAC,GAAD,IAEA,cAAC42B,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACK,OAACoT,QAAD,IAACA,KAAUzgD,OAKR,qCACI,cAAC,GAAD,CACIqgD,mBAAoBI,EACpBH,cApCA,SAACj9C,GACzBgzB,EAAS,oBAAD,OAAqBhzB,EAArB,aAoCgBm9C,cA7BA,SAACn9C,EAAWyuC,GACpCiP,EAAgB19C,EAAWyuC,IA6BHyO,YAlCF,SAACl9C,GACvBgzB,EAAS,oBAAD,OAAqBhzB,OAmCR49C,EAAY,GACT,cAACphB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAnC,SACI,cAAC6f,GAAA,EAAD,CACIviB,QAAQ,OACRwF,MAAM,UACNgd,KAAMH,EACNI,MAAOL,GAAa,EACpB7d,SAnCT,SAAC3N,EAAO4rB,GAC/B5rB,EAAMoD,iBACNmoB,EAAaK,WAeG,cAACzc,GAAA,EAAD,CAAYgL,MAAM,SAAS/Q,QAAQ,KAAnC,sECwKT0iB,GA1Lc,WACzB,IAAMhgD,EAAWigD,eACXnW,EAAWC,wBACTzkC,EAAiBukC,eAAjBvkC,aACA42C,EAAer2B,GACfq6B,EAAyBp6B,GACzBq6B,EAAkCz6B,GAAzB06B,EAAyB16B,GAAf26B,EAAe36B,GAC1C,EAAkC9a,mBAASw1C,GAA3C,mBAAO1N,EAAP,KAAkB4N,EAAlB,KACA,EAA4D11C,oBAAS,GAArE,mBAAOkxC,EAAP,KAA+ByE,EAA/B,KACA,EAA4D31C,oBAAS,GAArE,mBAAO41C,EAAP,KAA+BC,EAA/B,KACA,EAA8C71C,oBAAS,GAAvD,mBAAO81C,EAAP,KAAwBC,EAAxB,KACA,EAAkD/1C,mBAAS,MAA3D,mBAAOg2C,EAAP,KAA0BC,EAA1B,KACA,EAAoCj2C,mBAAS,GAA7C,mBAAO8M,EAAP,KAAmBopC,EAAnB,KAOA,EAKI/hC,GAAsBqJ,SAAS9iB,IAJzBmC,EADV,EACI0O,KACWqzB,EAFf,EAEI9hC,UACOq5C,EAHX,EAGIjqC,MACAkqC,EAJJ,EAIIA,qBAGJ,EClDoC,SAAC17C,EAAcoS,GACnD,IACMoyB,EAAWC,wBACjB,EAA4Cn/B,mBAAS,IAArD,mBAAOq2C,EAAP,KAAuBC,EAAvB,KACA,EAAoCt2C,mBAAS,MAA7C,mBAAOu2C,EAAP,KAAmBC,EAAnB,KAEA,EAIIpiC,GAA8B,CAAE1Z,eAAcoS,aAAYC,SAT7C,KAMPunC,EADV,EACI/oC,KACWkrC,EAFf,EAEI35C,UACO45C,EAHX,EAGIxqC,MAgBJ,OAbIwqC,GACAxX,EAASZ,GAAeoY,IAG5Bv2C,qBAAU,WACN,GAAIm0C,EAAU,CACV,MAAgCA,GAAY,GAApC/d,EAAR,EAAQA,QAASogB,EAAjB,EAAiBA,WACXC,EAAQxoB,KAAKyoB,KAAKF,EAlBf,IAmBTH,EAAcI,GACdN,EAAkB/f,MAEvB,CAAC+d,IAEG,CAAE+B,iBAAgBE,aAAYE,qBDyBqBK,CAAyBt5B,SAAS9iB,GAAeoS,GAAnGupC,EAAR,EAAQA,eAAgBI,EAAxB,EAAwBA,kBAAmBF,EAA3C,EAA2CA,WAE3C,EAAyDvgC,KAAzD,mBAAOzG,EAAP,KAAkCwnC,EAAlC,KAAuBj6C,UACvB,EAA8Dkb,KAA9D,mBAAO3E,GAAP,KAAqC2jC,GAArC,KAA0Bl6C,UAC1B,GAA0Dsb,KAA1D,qBAAOzE,GAAP,MAAmCsjC,GAAnC,MAAwBn6C,UAClBo6C,GAAuBH,GAAqBC,IAAuBZ,EACnEe,GAAoBV,GAAqBQ,GAE3Cd,GACAjX,EAASZ,GAAe6X,IAG5Bh2C,qBAAU,WAAO,IAAD,EACoB,EAAhC,OAAI/K,QAAJ,IAAIA,GAAJ,UAAIA,EAAU6K,aAAd,OAAI,EAAiB6nC,WACjB4N,EAAY,OAACtgD,QAAD,IAACA,GAAD,UAACA,EAAU6K,aAAX,aAAC,EAAiB6nC,aAEnC,IAEH3nC,qBAAU,WACFtD,GACAqiC,EAAST,GAAc,OAAC5hC,QAAD,IAACA,OAAD,EAACA,EAAmB3E,gBAEhD,CAAC2E,IAEJ,IAaMu6C,GAAiC,uCAAG,WAAOC,GAAP,SAAAhsC,EAAA,+EAE5BgI,GAAgB,CAAE3Y,eAAc4Y,YAAa+jC,EAAiB/jD,KAFlC,sDAIlC4rC,EAASZ,GAAe,EAAD,KAJW,wDAAH,sDAQjCgZ,GAA8B,uCAAG,WAAOC,GAAP,SAAAlsC,EAAA,+EAEzBkE,EAAa,CAAE7U,eAAc8U,UAAW,CAAEzb,SAAUwjD,EAAexjD,YAAcgtC,SAFxD,sDAI/B7B,EAASZ,GAAe,EAAD,KAJQ,wDAAH,sDAQ9BkZ,GAAqB,uCAAG,WAAOtgD,EAAWyuC,GAAlB,SAAAt6B,EAAA,sDACtBs6B,EACAoQ,GAAmB,IAEnBE,EAAqB/+C,GACrB2+C,GAA0B,IALJ,2CAAH,wDASrB4B,GAAuB,uCAAG,sBAAApsC,EAAA,6DAC5BwqC,GAA0B,GADE,kBAIlBliC,GAAc,CAAEzc,UAAW8+C,EAAmBt7C,iBAAgBqmC,SAJ5C,sDAMxB7B,EAASZ,GAAe,EAAD,KANC,wDAAH,qDAcvBoZ,GAAgC,WAClC3B,GAAmB,IAOjB4B,GAAO,CAACnC,EAAUC,EAAYF,GACpC,OACI,cAAC/hB,GAAA,EAAD,CAAWokB,OAAK,EAAhB,SACI,eAAClkB,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAAC,GAAD,CACIkQ,SAAO,EACPl+C,QAASo+C,EACTJ,uBAAwBA,EACxBC,oBAhEkB,WAC9BwE,GAA0B,IAgEdzrC,UAAWxP,IAEf,cAAC+9B,GAAA,EAAD,CAAYld,GAAI,EAAGmX,QAAQ,KAA3B,+BAGA,cAACyO,GAAA,EAAD,IACA,eAAC0W,GAAA,EAAD,CAAY/3C,MAAOgoC,EAAnB,UACI,cAACpU,EAAA,EAAD,UACI,cAACokB,GAAA,EAAD,CAAS7gB,SA7EL,SAAC1O,EAAGzoB,GACxB41C,EAAa51C,IA4EuC,aAAW,kBAA/C,SACK63C,GAAKxpC,KAAI,SAAC4pC,GAAD,OACN,cAACC,GAAA,EAAD,CAAej8C,MAAOg8C,EAAKj4C,MAAOi4C,GAAxBA,UAItB,cAAC5W,GAAA,EAAD,IACA,cAAC8W,GAAA,EAAD,CAAyBn4C,MAAO01C,EAAUvd,GAAI,CAAEoL,EAAG,GAAnD,SACI,cAAC,GAAD,CACIiR,SAAU+B,EACV37C,aAAcA,EACdoC,UAAWq6C,GACXvC,gBAAiB4C,GACjB3C,aAlCG,SAACK,GACxBgB,EAAchB,IAkCMJ,UAAWyB,EACXxB,YAAajoC,KARN0oC,GAWf,cAACyC,GAAA,EAAD,CAA2Bn4C,MAAO21C,EAAYxd,GAAI,CAAEoL,EAAG,GAAvD,SACI,cAAC,GAAD,CACI0P,WAAYuC,EACZx4C,UAAW8hC,EACXna,QAAO,OAAE5nB,QAAF,IAAEA,OAAF,EAAEA,EAAmBq7C,qBAC5BrF,eAAgBqE,GAChBlE,gBAAiBsE,GACjBrE,mBAAoBmE,MAPb3B,GAUf,cAACwC,GAAA,EAAD,CAAwBn4C,MAAOy1C,EAAStd,GAAI,CAAEoL,EAAG,GAAjD,SACI,cAAC,GAAD,CACI1E,YAAU,EACV9hC,kBAAmBA,EACnB+hC,oBAAqBA,EACrB7hC,oBAtGU,WAC9B44C,GAA0B,GAC1BD,EAAaF,OA+FcD,MASnB,cAAC,GAAD,CACI/+C,KAAMo/C,EACNl/C,MAAM,iBACN0V,QAtJZ,wJAuJY62B,YAAY,SACZC,SAAUuU,GACVtU,YAAY,SACZ1sC,QAzEiB,WAC7Bo/C,GAA0B,MA0ElB,cAAC,GAAD,CACIr/C,KAAMs/C,EACNp/C,MAAM,oBACN0V,QAjKZ,6GAkKY+2B,YAAY,OACZ1sC,QAASihD,GACTxU,SAAUwU,W,gJElMxBxK,GAAY,CACd,CAAE55C,GAAIuT,GAAwB9K,MAAO,aACrC,CAAEzI,GAAI,eAAgByI,MAAO,WAAYuxC,mBAAmB,GAC5D,CAAEh6C,GAAIuT,GAA2B9K,MAAO,WACxC,CAAEzI,GAAI,uBAAwByI,MAAO,QAASuxC,mBAAmB,GACjE,CAAEh6C,GAAI,uBAAwByI,MAAO,QAASuxC,mBAAmB,GACjE,CAAEh6C,GAAI,SAAUyI,MAAO,SAAUuxC,mBAAmB,GACpD,CAAEh6C,GAAIuT,GAAmB9K,MAAO,QAChC,CAAEzI,GAAI,aAKJ6kD,GAAgB,SAAC,GAShB,IAAD,IARFC,oBAQE,MARa,GAQb,EAPFt7C,EAOE,EAPFA,UACAu7C,EAME,EANFA,eACA9K,EAKE,EALFA,UACA+K,EAIE,EAJFA,gBACAC,EAGE,EAHFA,eACAC,EAEE,EAFFA,aACAC,EACE,EADFA,gBAEA,EAA0Bz4C,mBAAS,IAAnC,mBAAO04C,EAAP,KAAcC,EAAd,KACM9P,EAAQoE,eACN2L,EAA4Dx8B,GAA7Cy8B,EAA6Cz8B,GAA/B08B,EAA+B18B,GAAnB28B,EAAmB38B,GAC5DG,EAAcF,GAAdE,UACFy8B,EAAkB,CAAEC,aAAc,OAAQxlB,SAAU,SACpDylB,EAAuB,CAAED,aAAc,OAAQxlB,SAAU,SAE/DtzB,qBAAU,WACN,IAAMg5C,EAAiBf,EAAajqC,KAAI,SAAC8B,GACrC,IAAQ3Y,EAA4E2Y,EAA5E3Y,SAAUI,EAAkEuY,EAAlEvY,kBAAmBD,EAA+CwY,EAA/CxY,oBAAqBE,EAA0BsY,EAA1BtY,KAAMC,EAAoBqY,EAApBrY,OAAW+hB,EAA3E,aAAoF1J,EAApF,IACMxW,EAAenC,EAASs3C,MAAM,EAtBnB,GAsB4CzgC,KAAI,SAACgC,GAAD,uBAAgBA,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAS5Y,UAAzB,mBAAsC4Y,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAS3Y,aAE1G8B,EAAY6mB,GAAgB,CAAEE,QAAS5oB,EAAqBomB,OAD/C,OAEbkC,EAAUI,GAAgB,CAAEE,QAAS3oB,EAAmBmmB,OAF3C,OAGnB,OAAO,2BACAlE,GADP,IAEIlgB,eACAC,aAAa,GAAD,OAAKJ,EAAL,cAAoBymB,GAChCpmB,OAAO,GAAD,OAAKhC,EAAL,cAAeC,GACrBwhD,WAAU,OAAEd,QAAF,IAAEA,OAAF,EAAEA,EAAiB71B,SAASxS,EAAK3c,SAGnDqlD,EAASQ,KACV,CAACf,IAmFJ,OAAmB,OAAZA,QAAY,IAAZA,KAAcvkD,SAAWiJ,EAC5B,cAAC,gBAAD,CACIowC,UAAWA,GACXC,UAAWuL,EACXnL,UAAWA,EACX8K,eAAgBA,EAChBhL,aAnFa,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QACrBhK,EAAqGu7C,EAArGv7C,GAAImC,EAAiGo5C,EAAjGp5C,KAAM+D,EAA2Fq1C,EAA3Fr1C,gBAAiBxC,EAA0E63C,EAA1E73C,YAAayC,EAA6Do1C,EAA7Dp1C,aAAcC,EAA+Cm1C,EAA/Cn1C,aAAcC,EAAiCk1C,EAAjCl1C,OAAQC,EAAyBi1C,EAAzBj1C,KAAMC,EAAmBg1C,EAAnBh1C,eAEpFw/C,EAAO,iBAAa/lD,GAOpBgmD,EAAiBhB,EAAgB71B,SAASnvB,GAMhD,OACI,eAAC,KAAD,CAAUi8C,UAAW,EAAYtX,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAUwB,OAAxE,UACI,cAACyD,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBjhB,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMtnB,MAAM,MAArF,SACI,cAAC,uBAAD,CACIqxB,mBAAmB,UACnBC,eAAgBZ,EAChBa,aAAa,OACbC,YAAY,OACZ/gC,KAAM0gC,EACNM,aAAa,QACblkD,KAAMA,EACN4yB,SAAUwwB,EACVe,SAAQ,UAAKpgD,EAAL,gBAGhB,cAAC40C,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,MAA1D,gBACKzuB,QADL,IACKA,OADL,EACKA,EAAc0U,KAAI,SAACgC,GAAD,OACf,cAAC,aAAD,CAAYqZ,SAAUjN,EAAW0H,KAAM40B,EAAvC,SACK1oC,GADqDA,QAKlE,cAACi+B,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,MAA1D,SACI,eAAC2xB,GAAA,EAAD,WACI,cAAC,aAAD,CAAYrwB,SAAUjN,EAAW0H,KAAM40B,EAAvC,SACK7hD,IAEL,cAAC,aAAD,CAAYwyB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKp/C,SAIb,cAAC00C,GAAA,EAAD,CAAWnW,GAAE,eAAOihB,GAAwBzV,MAAM,OAAOvb,MAAM,KAA/D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKh2B,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBC,cAAjB,OAAgCD,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBE,wBAGtE,cAACq0C,GAAA,EAAD,CAAWnW,GAAE,eAAOihB,GAAwBzV,MAAM,OAAOvb,MAAM,KAA/D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKh2B,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBG,cAAjB,OAAgCH,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBI,wBAGtE,cAACm0C,GAAA,EAAD,CAAWnW,GAAE,eAAOihB,GAAwBzV,MAAM,OAAOvb,MAAM,KAA/D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKn/C,MAGT,cAACy0C,GAAA,EAAD,CAAWnW,GAAE,eAAOihB,GAAwBzV,MAAM,OAAOvb,MAAM,KAA/D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKl/C,MAGT,cAACw0C,GAAA,EAAD,CAAWnW,GAAE,eAAOihB,GAAwBhxB,MAAM,KAAlD,SACI,cAAC,SAAD,CAAQH,QAhES,WACzB,IAAM+xB,EAAepB,EAAMlwC,MAAK,SAACyH,GAAD,OAAUA,EAAK3c,KAAOA,KACtDilD,EAAejlD,EAAIwmD,IA8D4B9f,SAAUye,GAAmBa,EAAgB9vB,SAAUjN,EAA9F,qBApDqBjpB,IAmE7BymD,sBAxF4B,SAACtL,GACjC+J,EAAa/J,MA0Fb,qCACI,cAAC,aAAD,CAAYjlB,SAAUjN,EAAW0H,KAAM80B,EAAgB9c,GAAI,EAA3D,oBAGA,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM60B,EAAvC,8DAWZX,GAAc7vB,aAAd,exEwE6C,CACzC8vB,aAAc,KwErEHD,U,oECrKT6B,GAAoB,SAACtzB,GACvB,IAAQ/vB,EAAqD+vB,EAArD/vB,SAAUF,EAA2CiwB,EAA3CjwB,QAASG,EAAkC8vB,EAAlC9vB,oBAAwBqjD,EAAnD,aAA6DvzB,EAA7D,IAEA,OACI,eAACwzB,GAAA,EAAD,yBAAazW,MAAM,SAASxL,GAAI,CAAEiJ,GAAI,EAAGmC,EAAG,IAAS4W,GAArD,cACKtjD,EACAF,IAAYG,EACT,cAACujD,GAAA,EAAD,CACI,aAAW,QACXpyB,QAAStxB,EACTwhC,GAAI,CACA5D,SAAU,WACViW,MAAO,EACPD,IAAK,EACLnS,MAAO,SAAC2Q,GAAD,OAAWA,EAAMC,QAAQ+B,KAAK,OAP7C,SAUI,cAAC,KAAD,MAEJ,UAKVuP,GAAkB,SAAC1zB,GACrB,IAAQlwB,EAAmCkwB,EAAnClwB,KAAMC,EAA6BiwB,EAA7BjwB,QAASC,EAAoBgwB,EAApBhwB,MAAOC,EAAa+vB,EAAb/vB,SAC9B,OACI,eAACysC,GAAA,EAAD,CAAQ5sC,KAAMA,EAAM6jD,aAAW,EAAC5jD,QAASA,EAAzC,UACI,cAAC,GAAD,2BAAuBiwB,GAAvB,aAA+BhwB,KAC9BC,MASbyjD,GAAgB9xB,aAAhB,eACO7zB,GAGQ2lD,UCJAE,GAjCmB,SAAC,GAA8E,IAAD,IAA3E9jD,YAA2E,SAA7D+jD,EAA6D,EAA7DA,WAAYC,EAAiD,EAAjDA,WAAY/jD,EAAqC,EAArCA,QAASgkD,EAA4B,EAA5BA,YAAaxjB,EAAe,EAAfA,SACvFoE,EAAiB,SAAC/R,GACpB2N,EAAS3N,IAGPoxB,EAA2B,IAAfF,EAAmB,OAAS,QAE9C,OACI,eAAC,GAAD,CAAiBhkD,KAAMA,EAAMC,QAASA,EAASC,MAAK,wBAAmB8jD,EAAnB,YAAiCE,GAArF,UACI,cAACpX,GAAA,EAAD,UACI,eAAC7J,GAAA,EAAD,CAAaxB,GAAI,CAAE0iB,EAAG,GAAK5iB,UAAU,WAAWrF,QAAQ,WAAxD,UACI,cAAC+F,GAAA,EAAD,CAAYR,GAAI,CAAEgE,GAAI,GAAtB,2DACA,eAAC2e,GAAA,EAAD,WACI,cAAChX,GAAA,EAAD,CACIlP,QAAS,cAACmmB,GAAA,EAAD,CAAUC,QAASP,EAAWQ,eAAgB9jB,SAAUoE,EAAgB5lC,KAAK,mBACtFsG,MAAM,8CAEV,cAAC6nC,GAAA,EAAD,CACIlP,QAAS,cAACmmB,GAAA,EAAD,CAAUC,QAASP,EAAWS,cAAe/jB,SAAUoE,EAAgB5lC,KAAK,kBACrFsG,MAAM,sDAKtB,cAAC2nC,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAU6lB,GAAI,EAAG/Z,GAAI,GAA1D,SACI,cAACzO,GAAA,EAAD,CAAQ1K,QAAS0yB,EAAa/nB,QAAQ,OAAOzO,KAAK,QAAlD,0BCTVi3B,GAAaz7C,IAAM07C,YAAW,SAAoBz0B,EAAOzM,GAC3D,OAAO,cAACmhC,GAAA,EAAD,aAAO5M,UAAU,KAAKv0B,IAAKA,GAASyM,OAyRhC20B,GAtRO,SAAC,GAuBhB,IAtBHhd,EAsBE,EAtBFA,OACAid,EAqBE,EArBFA,iBACAC,EAoBE,EApBFA,eACA9kD,EAmBE,EAnBFA,QACAiiD,EAkBE,EAlBFA,MACA8C,EAiBE,EAjBFA,SACAC,EAgBE,EAhBFA,iBACA1G,EAeE,EAfFA,YACAD,EAcE,EAdFA,UAcE,IAbF7F,mBAaE,MAbY,GAaZ,MAZFqF,gBAYE,MAZS,GAYT,EAXFoH,EAWE,EAXFA,qBAWE,IAVFC,0BAUE,MAVmB,GAUnB,EATFC,EASE,EATFA,mBACAC,EAQE,EARFA,gBACAC,EAOE,EAPFA,aACAjH,EAME,EANFA,aACA2D,EAKE,EALFA,aACAuD,EAIE,EAJFA,uBACAC,EAGE,EAHFA,WACA3D,EAEE,EAFFA,eACA9K,EACE,EADFA,UAEM1E,EAAQoE,eACN3wB,EAAgCD,GAAhCC,QAASE,EAAuBH,GAAvBG,QAASD,EAAcF,GAAdE,UAClB0/B,EAAkE7/B,GAArD8/B,EAAqD9/B,GAAhCw8B,EAAgCx8B,GAAjBy8B,EAAiBz8B,GAC1E,EAA8Cpc,mBAAS,IAAvD,mBAAOs4C,EAAP,KAAwB6D,EAAxB,KACA,EAAoCn8C,mBAAS,IAA7C,mBAAOo8C,EAAP,KAAmBC,EAAnB,KACA,EAAkCr8C,qBAAlC,mBAAOs8C,EAAP,KAAkBC,EAAlB,KACA,EAA0Dv8C,oBAAS,GAAnE,oBAAOw8C,GAAP,MAA8BC,GAA9B,MACA,GAAsDz8C,oBAAS,GAA/D,qBAAO08C,GAAP,MAA4BC,GAA5B,MACA,GAA0C38C,mBAAS,CAAE+6C,gBAAgB,EAAOC,eAAe,IAA3F,qBAAO4B,GAAP,MAAsBC,GAAtB,MAEMC,KAAe,OAACxI,QAAD,IAACA,MAAUzgD,QAC1BkpD,GAAoBD,GAAwC,kBAA1B,wBAClCE,IAAmBrB,EAAmB9nD,OAE5CsM,qBAAU,WACN,IAAMq6C,EAAaiB,EAAmBW,EAAWvoD,OACjD0oD,EAAa/B,KACd,CAAC4B,IAEJj8C,qBAAU,WACNo8C,EAAad,KACd,CAACA,IA4FJ,OACI,eAACrY,GAAA,EAAD,CAAQ6Z,WAAY,CAAEz3B,MAAO,CAAE2P,gBAAiB0T,EAAMM,UAAU+T,WAAcC,YAAU,EAAC3mD,KAAM6nC,EAAQ5nC,QAASA,EAAS2mD,oBAAqBlC,GAA9I,UACI,cAACmC,GAAA,EAAD,CAAQplB,GAAI,CAAE5D,SAAU,WAAYc,gBAAiB0T,EAAMM,UAAU2B,OAArE,SACI,cAAC6C,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,cAAC,aAAD,CAAYpK,SAAUhN,EAASyH,KAAMg4B,EAArC,kCAGA,cAAC9B,GAAA,EAAD,CAAYmD,KAAK,QAAQplB,MAAM,UAAUnQ,QAAStxB,EAAS,aAAW,QAAtE,SACI,cAAC,KAAD,eAMpB,cAACi9B,EAAA,EAAD,CAAK6pB,GAAI,EAAGtC,GAAI,EAAGhjB,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAUwB,MAAOsO,aAAa,aAAD,OAAepQ,EAAMM,UAAUqU,YAA5G,SACI,cAAChqB,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,eAAC6F,GAAA,EAAD,CAAaxB,GAAI,CAAE/P,MAAO,IAAKiQ,GAAI,GAAnC,UACI,cAACuB,GAAA,EAAD,CAAYpmC,GAAG,oBAAf,+BACA,cAAC,KAAD,CACI0mC,SAAUshB,EACVx7C,MAAO47C,GAAwB,GAC/B3/C,MAAM,oBACNuB,QAAQ,oBACR25B,SA9GK,SAAC3N,GAC9BsyB,EAAmBtyB,EAAMhP,OAAOxa,QAwGZ,gBAOKmvC,QAPL,IAOKA,OAPL,EAOKA,EAAa9gC,KAAI,SAACwoB,GAAD,OACd,cAACgD,GAAA,EAAD,CAA0B75B,MAAO62B,EAAOrjC,GAAxC,SACKqjC,EAAOlhC,MADGkhC,EAAOrjC,YAMlC,eAACmmC,GAAA,EAAD,CAAaxB,GAAI,CAAE/P,MAAO,KAA1B,UACI,cAACwR,GAAA,EAAD,CAAYpmC,GAAG,iBAAf,SAAiCypD,KACjC,eAAC,KAAD,CACIj9C,MAAO67C,EACP5/C,MAAOghD,GACPvmD,KAAMkmD,GACNe,OAAQ,kBAAMd,IAAuB,IACrClmD,QA/CS,WACjCkmD,IAAuB,GACvBZ,KA8CwB2B,UAAQ,EACR1jB,UAAW8iB,IAAexB,EAC1Bh+C,QAAQ,iBACR25B,SA9HG,SAAC3N,GAC5BuyB,EAAgBvyB,EAAMhP,OAAOxa,QA8HL69C,YAAa,SAACC,GAAD,OApFZC,EAoF8CD,EAAUtJ,EAnFrD3xB,QAAO,SAACm7B,EAA4BnnB,GAI5D,OAHIknB,EAAgBp7B,SAASkU,EAAOz/B,YAChC4mD,EAA2BprC,KAAKikB,EAAO3/B,aAEpC8mD,IACR,IAEgBn2B,KAAK,MARA,IAACk2B,GA0EL,iBAYKvJ,QAZL,IAYKA,OAZL,EAYKA,EAAUnmC,KAAI,SAACwoB,GAAD,OACX,eAACgD,GAAA,EAAD,CAAiC75B,MAAO62B,EAAOz/B,UAA/C,UACI,cAAC2jD,GAAA,EAAD,CAAUC,SAA2B,OAAlBa,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBoC,QAAQpnB,EAAOz/B,aAAc,IACpE,cAAC,aAAD,UAAay/B,EAAO3/B,gBAFT2/B,EAAOz/B,cAK1B,cAACw8B,EAAA,EAAD,CAAKwN,GAAI,EAAGyL,UAAU,yBAAyBh0C,QAAQ,OAAOy8B,eAAe,SAASmoB,GAAI,EAAGliC,GAAI,EAAjG,SACI,cAAC,SAAD,CAAQ2e,SAAUgjB,GAAiB/nB,WAAS,EAACvC,QAAQ,OAAO3K,QApIjE,SAACuB,GACxBA,EAAMoD,iBACNiwB,IAAuB,GACvBb,KAiI4B,kCASxB,eAACtoB,GAAA,EAAD,CAAWC,SAAS,KAApB,UACI,eAACmE,GAAA,EAAD,CAAMzP,OAAO,QAAQ0P,WAAS,EAA9B,UACI,cAACD,GAAA,EAAD,CAAME,MAAI,EAACkmB,YAAa,EAAG3c,GAAI,EAAGpJ,GAAI,CAAEgmB,YAAapV,EAAMM,UAAUqU,WAArE,SACI,eAAC9pB,EAAA,EAAD,CAAKoa,GAAI,EAAG5M,GAAI,EAAhB,UACKqa,EACG,cAAC,GAAD,IAEA,qCACI,cAAC,GAAD,CACI9C,gBAAiB6D,IAAcd,EAC/BpD,aAAcM,EACd57C,UAAWy+C,EACXlD,eAAgBA,EAChB9K,UAAWA,EACXiL,aAxHD,SAAC/J,GAChC+J,EAAa/J,IAwHmB6J,gBAAiBA,EACjBC,eAvJP,SAACjlD,EAAI2c,GAC9B,GAAIqoC,EAAgB71B,SAASnvB,GAAK,CAC9B,IAAM4qD,EAAyB5F,EAAgBj2B,QAAO,SAAC7sB,GAAD,OAAYA,IAAWlC,KACvE6qD,EAAoB/B,EAAW/5B,QAAO,SAAC+7B,GAAD,OAAeA,EAAU9qD,KAAO2c,EAAK3c,MAEjF6oD,EAAmB+B,GACnB7B,EAAc8B,OACX,CACH,IAAME,EAAW,sBAAO/F,GAAP,CAAwBhlD,IACrC+qD,EAAYxqD,QAAU2nD,EAAWC,IACjCU,EAAmBkC,GACnBhC,EAAc,GAAD,mBAAKD,GAAL,CAAiBnsC,UA8IT6kC,EAAY,GACT,cAACG,GAAA,EAAD,CACIviB,QAAQ,OACRwF,MAAM,UACNgd,KAAMH,EACNI,MAAOL,GAAa,EACpB7d,SAvIb,SAAC3N,EAAO4rB,GAC/B5rB,EAAMoD,iBACNmoB,EAAaK,SA0IO,cAACvH,GAAA,EAAD,SAGR,cAAC/V,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAf,SACI,eAAC3N,EAAA,EAAD,CAAKka,GAAI,EAAG1M,GAAI,EAAhB,UACI,cAAC,aAAD,CAAY1X,SAAUjN,EAAW0H,KAAMi4B,EAAvC,mCAAgFI,EAAhF,YAA6Fd,EAA7F,OACCY,EAAWjuC,KAAI,SAAC8B,GAAD,OACZ,cAAC+rB,GAAA,EAAD,CAAqB/D,GAAI,CAAE1c,GAAI,GAA/B,SACI,eAACmY,EAAA,EAAD,CAAK2P,EAAG,EAAG1qC,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAApE,UACI,cAAC,uBAAD,CAAsBn+B,KAAI,OAAEwa,QAAF,IAAEA,OAAF,EAAEA,EAAMxa,KAAMkjB,KAAI,wBAAY1I,QAAZ,IAAYA,OAAZ,EAAYA,EAAM3c,IAAMsmD,SAAQ,iBAAK3pC,QAAL,IAAKA,OAAL,EAAKA,EAAMzW,gBAAX,YAAsC6uB,SAAUwwB,EAAcc,aAAa,QAAQD,YAAY,OAAOD,aAAa,OAAOD,eAAgBZ,IACtN,cAACuB,GAAA,EAAD,CAAYpyB,QAAS,kBA9J7B,SAACz0B,EAAI2c,GAC7B,IAAMiuC,EAAsB,OAAG5F,QAAH,IAAGA,OAAH,EAAGA,EAAiBj2B,QAAO,SAAC7sB,GAAD,OAAYA,IAAWlC,KACxE6qD,EAAiB,OAAG/B,QAAH,IAAGA,OAAH,EAAGA,EAAY/5B,QAAO,SAAC+7B,GAAD,OAAeA,EAAU9qD,KAAO2c,EAAK3c,MAElF6oD,EAAmB+B,GACnB7B,EAAc8B,GAyJ6CG,CAAmB,OAACruC,QAAD,IAACA,OAAD,EAACA,EAAM3c,GAAI2c,IAAOgoB,GAAI,CAAE,UAAW,CAAE0R,aAAc,QAAjG,SACI,cAAC,aAAD,CAAY1lB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUoV,YAJ7CtuC,EAAK3c,eAYjC,cAAC,GAAD,CACIkD,KAAMgmD,GACNjC,WAAYqC,GACZpC,WAAU,OAAElC,QAAF,IAAEA,OAAF,EAAEA,EAAiBzkD,OAC7B4C,QA3IuB,WACnCgmD,IAAyB,IA2IbxlB,SAxImB,SAAC3N,GAChCuzB,GAAiB,2BACVD,IADS,mBAEXtzB,EAAMhP,OAAO7kB,KAAO6zB,EAAMhP,OAAOwgC,YAsI1BL,YAlIU,WACtBuB,EAAWY,GAAetE,GAC1BmE,IAAyB,GAhFzBJ,EAAc,IACdQ,GAAiB,CAAE9B,gBAAgB,EAAOC,eAAe,IACzDmB,EAAmB,UAiNf,cAACkB,GAAA,EAAD,CAAQhpB,SAAS,QAAQ4D,GAAI,CAAEoS,IAAK,OAAQmU,OAAQ,EAAGrpB,gBAAiB0T,EAAMM,UAAUwB,OAAxF,SACI,cAACgD,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,cAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,cAAC,SAAD,CAAQ4E,UAAWse,EAAgBzkD,OAAQk0B,QAxJrC,WAC1B00B,IAAyB,IAuJsEjzB,SAAUlN,EAArF,mCC9IbmiC,GAjJU,SAAC,GAA6F,IAA3FvnD,EAA0F,EAA1FA,UAAWsF,EAA+E,EAA/EA,SAAU9B,EAAqE,EAArEA,aAAc2jC,EAAuD,EAAvDA,OAAQ5nC,EAA+C,EAA/CA,QAAS+kD,EAAsC,EAAtCA,SAAUc,EAA4B,EAA5BA,UAAWN,EAAiB,EAAjBA,WAC3F9c,EAAWC,wBACTuf,EAA0B53C,GAAf63C,EAAe73C,GAC1B83C,EAAc/3C,GACtB,EAAwD7G,mBAAS,MAAjE,mBAAO07C,EAAP,KAA6BmD,EAA7B,KACA,EAAoD7+C,mBAAS,IAA7D,mBAAO27C,EAAP,KAA2BmD,EAA3B,KACA,EAAoD9+C,mBAAS,IAA7D,mBAAO++C,EAAP,KAA2BC,EAA3B,KACA,EAAkCh/C,mBAAS0+C,GAA3C,mBAAOnR,EAAP,KAAkBC,EAAlB,KACA,EAA4CxtC,mBAAS4+C,GAArD,mBAAOvG,EAAP,KAAuB4G,EAAvB,KACA,EAAwCj/C,mBAAS,IAAjD,mBAAOk/C,EAAP,KAAqBC,EAArB,KACA,EAAoCn/C,mBAAS,GAA7C,mBAAO8M,EAAP,KAAmBopC,EAAnB,KACA,EAA0DzgC,GAA6BjZ,EAAU,CAAE4iD,MAAO/gB,IAAlG9yB,EAAR,EAAQA,KAAkB8zC,EAA1B,EAAcC,WAAkCpzC,EAAhD,EAAgDA,MAEhD,EAIIwJ,GAAwBgmC,EAAsB,CAAE0D,MAAO/gB,IAAWqd,IAH5D6D,EADV,EACIh0C,KACYi0C,EAFhB,EAEIF,WACOG,GAHX,EAGIvzC,MAGEwzC,GAAgBxzC,GAASuzC,GACzB3iD,GAAYuiD,GAAwBG,EAE1C,GCzBkC,SAACtoD,EAAWyoD,EAAYvS,EAAQG,EAAWzgC,GAC7E,IACMoyB,EAAWC,wBAEjB,EAAkDn/B,mBAAS,IAA3D,mBAAO4/C,EAAP,KAA0BC,EAA1B,KACA,EAAkD7/C,oBAAS,GAA3D,mBAAO8/C,EAAP,KAA0BC,EAA1B,KACA,EAAoC//C,mBAAS,MAA7C,mBAAOu2C,EAAP,KAAmBC,EAAnB,KACA,EAA8Bx2C,oBAAS,GAAvC,mBAAOggD,EAAP,KAAgBC,EAAhB,KA6CA,OAlCA9/C,qBAAU,WACN,IAAM+/C,EAAc,uCAAG,sCAAA70C,EAAA,6DACnB00C,GAAqB,GAEfz1C,EAAa,CACf61C,eAAgBR,GAAc,GAC9Bh7B,QAASyoB,EACTgT,YAAa7S,EAAUj6C,GACvBwZ,aACAC,SA1BK,IAkBU,SAWI1C,GAAmBnT,EAAWoT,GAAY0hB,OAAM,SAACq0B,GACpEN,GAAqB,GACrB7gB,EAASZ,GAAe+hB,OAbT,OAgBnB,QALMv0C,EAXa,cAgBnB,IAAIA,KAAUP,OAAO,EACeO,EAASP,KAAjCgrB,EADQ,EACRA,QAASogB,EADD,EACCA,WACXC,EAAQxoB,KAAKyoB,KAAKF,EApCnB,IAsCLH,EAAcI,GACdiJ,EAAqBtpB,GACrBwpB,GAAqB,IAGzBE,GAAW,GAzBQ,2CAAH,qDA4BhBD,GACAE,MAEL,CAACF,IAEG,CAAEJ,oBAAmBE,oBAAmBQ,cA3CzB,WAClBL,GAAW,IA0C+CM,mBAvCnC,WACvB/J,EAAc,MACdqJ,EAAqB,KAqCyDtJ,cD3BciK,CAC5FtpD,EACAykD,EACAtD,EACA9K,EACAzgC,GALI8yC,GAAR,GAAQA,kBAAmBE,GAA3B,GAA2BA,kBAAmBQ,GAA9C,GAA8CA,cAAeC,GAA7D,GAA6DA,mBAAoBhK,GAAjF,GAAiFA,WAQ7EmJ,IACAxgB,EAASZ,GAAeohB,KAG5Bv/C,qBAAU,WACFzF,GACAmkD,EAAwBnkD,KAE7B,CAACA,IAEJyF,qBAAU,WAAO,IAAD,EACZ,UAAIo/C,QAAJ,IAAIA,GAAJ,UAAIA,EAAwBhpB,eAA5B,OAAI,EAAiC1iC,OAAQ,CACzC,IAAM4sD,EAAuBlB,EAAuBhpB,QAAQlU,QAAO,SAAC1W,GAAD,OAAYA,EAAOzU,YAAcA,KAC9FyoD,EAAac,EAAqBtyC,KAAI,SAAC3P,GAAD,OAAaA,EAAQtH,aACjEioD,EAAgBsB,GAEhB,OAAId,QAAJ,IAAIA,KAAY9rD,QACZirD,EAAsBa,GACtBX,EAAsBW,GACtBW,OAEAxB,EAAsB,IACtBE,EAAsB,QAG/B,CAACO,IAEJp/C,qBAAU,WACU,OAAZ++C,QAAY,IAAZA,KAAcrrD,QAAUwqC,GACxBiiB,OAEL,CAACpB,EAAc7gB,IAElB,IAAMqiB,GAAc,uCAAG,WAAO9D,EAAe+D,GAAtB,iBAAAt1C,EAAA,sDACnB5U,IACQukD,EAAkC4B,EAAlC5B,cAAeD,EAAmB6B,EAAnB7B,eAQvBiB,EAPoB,CAChB9kD,YACAypD,UACA3F,gBACAD,mBAPe,2CAAH,wDAsDpB,OACI,cAAC,GAAD,CACI9L,YAAW,OAAE1jC,QAAF,IAAEA,OAAF,EAAEA,EAAM0jC,YACnB8F,YAAajoC,EACb2uC,iBAAkBa,EAClBhB,iBAAkBx+C,GAClBy+C,eAAgBuE,GAChBzhB,OAAQA,EACRmd,SAAUA,EACVM,aAnCmB,WACvB5F,EAAc,GACd8I,EAAsBrD,GACtB2E,MAiCI7pD,QAnD0B,WAC9BA,KAmDImlD,mBAhDyB,SAACtoD,GAC9BitD,KACApB,EAAgB,IAChBjJ,EAAc,GACd2I,EAAwBvrD,IA6CpBuhD,aAhCmB,SAACK,GACxBgB,EAAchB,GACdoL,MA+BIzE,gBA3CyB,SAAC8D,GAC9Bb,EAAsBa,IA2ClBnH,aAzBmB,SAAC/J,GACpBA,IAAa4J,EAEb7K,EADsBD,IAAcmR,EAAYC,EAAaD,GAG7DlR,EAAakR,GAEjBO,EAAkBxQ,GAClB6R,MAkBItE,WAAY0E,GACZ3E,uBA/B6B,WACjC+C,EAAsBC,IA+BlBjK,UAAWyB,GACXmF,qBAAsBA,EACtBC,mBAAoBA,EACpBrH,SAAU4K,EACV7G,eAAgBA,EAChB9K,UAAWA,EAAUztC,MACrB44C,MAAOkH,ME3IbgB,GAA8B,SAAC,GAAwG,IAAtGpqD,EAAqG,EAArGA,KAAMC,EAA+F,EAA/FA,QAASC,EAAsF,EAAtFA,MAAO0V,EAA+E,EAA/EA,QAASy0C,EAAsE,EAAtEA,cAAeh1C,EAAuD,EAAvDA,aAAco3B,EAAyC,EAAzCA,YAAaC,EAA4B,EAA5BA,SAAUC,EAAkB,EAAlBA,YACtH,EAAgDnjC,oBAAS,GAAzD,mBAAO8gD,EAAP,KAAyBC,EAAzB,KAUA,OACI,cAAC3d,GAAA,EAAD,CAAQ5sC,KAAMA,EAAMC,QAASA,EAAS,kBAAgB,qBAAqB,mBAAiB,2BAA5F,SACI,eAACi9B,EAAA,EAAD,CAAK2P,EAAG,EAAR,YACO3sC,GACC,cAAC,aAAD,CAAY8yB,SAAS,YAAYvF,KAAK,eAAtC,SACKvtB,IAIT,cAAC,aAAD,CAAY8yB,SAAS,YAAYvF,KAAK,cAAcs5B,GAAI,EAAxD,SACKnxC,MAEFP,GACC,cAAC23B,GAAA,EAAD,CAAmB3d,UAAU,aAAa4d,MAAM,SAASnwC,GAAG,qBAAqBiqD,GAAI,EAArF,SACK1xC,IAGT,cAAC,aAAD,CAAY2d,SAAS,YAAYvF,KAAK,cAAcs5B,GAAI,EAAGtC,GAAI,EAA/D,SACI,cAACrX,GAAA,EAAD,CAAkBlP,QAAS,cAACmmB,GAAA,EAAD,CAAUC,QAASgG,EAAkB7pB,SAtBnD,SAAC3N,GAC1By3B,EAAoBz3B,EAAMhP,OAAOwgC,YAqB+E/+C,MAAO8kD,MAE/G,eAACnd,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAU6lB,GAAI,GAAnD,UACKhY,GACG,cAAC,SAAD,CAAQzZ,SAAS,YAAYzB,QAAStxB,EAAtC,SACKwsC,IAGRC,GACG,cAAC,SAAD,CAAQ1Z,SAAS,UAAUzB,QAnCf,WAC5Bmb,EAAS,CAAE4d,sBAkCK,SACK3d,aAa7Byd,GAA4Bt4B,aAA5B,e9EuF2D,CACvD9xB,MAAM,EACNE,MAAO,KACPusC,YAAa,KACb72B,QAAS,KACTP,aAAc,O8ExFH+0C,U,0BCzDTI,GAAkBrY,aAAOvF,KAAPuF,EAAe,gBAAGE,EAAH,EAAGA,MAAH,MAAgB,CACnD,2BAA4B,CACxBtF,QAASsF,EAAMjN,QAAQ,IAE3B,2BAA4B,CACxB2H,QAASsF,EAAMjN,QAAQ,QAIzBqlB,GAAuB,SAACv6B,GAC1B,IAAQ/vB,EAAgC+vB,EAAhC/vB,SAAUF,EAAsBiwB,EAAtBjwB,QAAYwjD,EAA9B,aAAwCvzB,EAAxC,IAEA,OACI,eAACwzB,GAAA,EAAD,yBAAajiB,GAAI,CAAE0iB,EAAG,EAAGtX,EAAG,IAAS4W,GAArC,cACKtjD,EACAF,GACG,cAAC0jD,GAAA,EAAD,CACI,aAAW,QACXpyB,QAAStxB,EACTwhC,GAAI,CACA5D,SAAU,WACViW,MAAO,EACPD,IAAK,EACLnS,MAAO,SAAC2Q,GAAD,OAAWA,EAAMC,QAAQ+B,KAAK,OAP7C,SAUI,cAAC,KAAD,WAWdqW,GAAsB,SAACx6B,GACzB,IAAQhwB,EAAmCgwB,EAAnChwB,MAAOD,EAA4BiwB,EAA5BjwB,QAASD,EAAmBkwB,EAAnBlwB,KAAMG,EAAa+vB,EAAb/vB,SAE9B,OACI,eAACqqD,GAAD,CAAiB/rB,WAAS,EAACx+B,QAASA,EAAS,kBAAgB,0BAA0BD,KAAMA,EAA7F,UACI,cAAC,GAAD,CAAsBitC,MAAM,SAASnwC,GAAG,0BAA0BmD,QAASA,EAA3E,SACKC,IAEJC,MASbuqD,GAAoB54B,aAApB,eACOzxB,GAGQqqD,U,UCtDTC,GAAY,CACdlE,WAAY,CACRz3B,MAAO,CACH47B,UAAWC,IACXn5B,MAAO,OA8CJo5B,GA9BK,SAAC,GAAD,IAAG5sB,EAAH,EAAGA,QAAS4E,EAAZ,EAAYA,YAAZ,IAAyBrkC,kBAAzB,SAA6C8G,EAA7C,EAA6CA,MAAOuB,EAApD,EAAoDA,QAAS7H,EAA7D,EAA6DA,KAAMkgC,EAAnE,EAAmEA,QAAShB,EAA5E,EAA4EA,SAA5E,OAChB,cAAC,KAAD,CACIl/B,KAAMA,EACNm/B,MAAO,CAAEC,SAAU5/B,GACnBy/B,QAASA,EACTI,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,eAAC0E,GAAA,EAAD,CAAaxE,UAAWqE,EAAxB,UACI,cAACI,GAAA,EAAD,CAAYpmC,GAAIgK,EAAhB,SAA0BvB,IAC1B,cAAC,KAAD,2BACQg5B,GADR,IAEIz3B,QAASA,EACThK,GAAE,UAAKmC,EAAL,6BACFioD,UAAQ,EACRpnB,MAAO,cAACirB,GAAA,EAAD,CAAexlD,MAAOA,IAC7B4hD,YAAa,SAACC,GAAD,OAzBE,SAACC,EAAiBloB,GAQjD,OAP2BA,EAAQhT,QAAO,SAACm7B,EAA4BnnB,GAInE,OAHIknB,EAAgBp7B,SAASkU,EAAOrjC,KAChCwqD,EAA2BprC,KAAKikB,EAAOp8B,aAEpCujD,IACR,IAEuBn2B,KAAK,MAiBY65B,CAAoB5D,EAAUjoB,IACzDwrB,UAAWA,GACXj1C,MAAOyoB,EARX,SAUKgB,EAAQxnB,KAAI,SAACwoB,GAAD,OACT,eAACgD,GAAA,EAAD,CAA0B75B,MAAO62B,EAAOrjC,GAAxC,UACI,cAACunD,GAAA,EAAD,CAAUC,QAAS/lB,EAAMj1B,MAAMi+C,QAAQpnB,EAAOrjC,KAAO,IACrD,cAACmlC,GAAA,EAAD,UAAa9B,EAAOp8B,gBAFTo8B,EAAOrjC,iBC8B/BmuD,GApES,SAAC,GAA0E,IAAxEC,EAAuE,EAAvEA,eAAgBjrD,EAAuD,EAAvDA,QAASD,EAA8C,EAA9CA,KAAM4qC,EAAwC,EAAxCA,SAAUugB,EAA8B,EAA9BA,wBAChE,EAAsD3hD,oBAAS,GAA/D,mBAAO4hD,EAAP,KAA4BC,EAA5B,KAGA,EAMIhiB,aAAQ,CAAEH,cAPQ,CAAEihB,QAAS,IAOJ7gB,KAAM,QAL/BC,EADJ,EACIA,aACAE,EAFJ,EAEIA,UACaC,EAHjB,EAGID,UAAaC,OACbxL,EAJJ,EAIIA,QACAsL,EALJ,EAKIA,MAGJ7/B,qBAAU,WACF8/B,EAAU6hB,qBACV9hB,EAAM,CAAE2gB,QAAS,KACjBkB,GAAuB,MAE5B,CAAC5hB,EAAWD,IAUf,OACI,cAAC,GAAD,CAAqBtpC,MAAM,cAAcD,QAASA,EAASD,KAAMA,EAAM4qC,SAAUA,EAAjF,SACI,uBAAMA,SAAUrB,GAVC,SAACgiB,GACtB3gB,EAAS2gB,EAAOpB,QAASiB,MASrB,UACI,eAACte,GAAA,EAAD,CAAerL,GAAI,CAAEoL,EAAG,GAAK2e,UAAQ,EAArC,UACKL,GAA2B,cAAC,GAAD,MACzBD,EAAe7tD,QACd,qCACI,cAAC4kC,GAAA,EAAD,CAAYgL,MAAM,SAASwe,cAAY,EAACC,aAAa,OAArD,4DAGA,cAAC,GAAD,CACIzsD,KAAK,UACLsG,MAAM,QACN45B,QAAS+rB,EACTpkD,QAAQ,aACRg8B,aAAW,EACX5E,QAASA,EACTC,WAAYuL,EAAOjwB,KACnBhb,YAAU,EACVskC,WAAW,aAEf,cAACqK,GAAA,EAAD,CACI3L,GAAI,CAAEiJ,GAAI,GACVxM,QACI,cAACmmB,GAAA,EAAD,CAAUC,QAAS8G,EAAqB3qB,SA5BzC,SAAC3N,GAC5Bu4B,EAAuBv4B,EAAMhP,OAAOwgC,UA2BkErlD,KAAK,sBAEnFsG,MAAM,4BAKtB,cAAC2nC,GAAA,EAAD,CAAezL,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,UAAtD,SACI,cAAC3C,GAAA,EAAD,CAAQC,QAAQ,OAAOyvB,WAAS,EAAC15C,KAAK,SAAtC,4B,0CCtDd25C,GAAkB,SAAC17B,GACrB,IAAMmiB,EAAQoE,eACNx2C,EAAqDiwB,EAArDjwB,QAASD,EAA4CkwB,EAA5ClwB,KAAM4qC,EAAsC1a,EAAtC0a,SAAUihB,EAA4B37B,EAA5B27B,gBAAiBC,EAAW57B,EAAX47B,OAE5CC,EAAqB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAiBl0C,KAAI,SAAC8B,GAChD,MAAO,CACHza,OAAM,OAAEya,QAAF,IAAEA,OAAF,EAAEA,EAAM3c,GACdmC,KAAI,OAAEwa,QAAF,IAAEA,OAAF,EAAEA,EAAMxa,KACZ+sD,KAAI,OAAEvyC,QAAF,IAAEA,OAAF,EAAEA,EAAMuyC,KACZ3oD,eAAc,OAAEoW,QAAF,IAAEA,OAAF,EAAEA,EAAMpW,mBAGxB4oD,EAAiB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAuB3T,QAAQvsB,QAAO,SAACpS,GAAD,QAAYA,EAAKuyC,QAC3EE,GAA+B,OAAjBD,QAAiB,IAAjBA,OAAA,EAAAA,EAAmBp/B,MAAK,SAAChY,EAAGiY,GAAJ,OAAUT,WAAWxX,EAAEm3C,MAAQ3/B,WAAWS,EAAEk/B,WAAU,GAE5F9iB,EAAgBgjB,EAAY7uD,SAAWwuD,EAAgBxuD,OAAS,CAClE8uD,UAAWD,GACX,CACAC,UAAU,GAAD,mBAAMD,GAAN,CAAmB,CAAEjtD,KAAM,OAGxC,EAMIoqC,aAAQ,CAAEH,gBAAeI,KAAM,QAL/BC,EADJ,EACIA,aACaG,EAFjB,EAEID,UAAaC,OACbxL,EAHJ,EAGIA,QACAkuB,EAJJ,EAIIA,SACAC,EALJ,EAKIA,MAGJ,EAAmCC,aAAc,CAC7CpuB,UACAj/B,KAAM,YACNm/B,MAAO,CAAEmuB,UAAW,KAHhBC,EAAR,EAAQA,OAAQv3B,EAAhB,EAAgBA,OAAQw3B,EAAxB,EAAwBA,OAMlBC,EAAgB,+BAAoBb,QAApB,IAAoBA,OAApB,EAAoBA,EAAiBxuD,OAArC,wBAEhB+sC,EAAmB,SAACmhB,GACtB3gB,EAAS2gB,EAAOY,YAGdQ,EAAkBN,EAAM,YAAanjB,GACrC0jB,EAAmBJ,EAAO70C,KAAI,SAAC4mB,EAAOjI,GACxC,OAAO,2BACAiI,GACAouB,EAAgBr2B,OAIrBu2B,EAAsBD,EAAiBvvD,QAAU,GAAKuvD,EAAiB,GAAG5tD,OAOhF,OACI,cAAC,gBAAD,CACIiB,QAASA,EACT4nC,OAAQ7nC,EACR8sD,UAAU,eACVC,cAAeF,EAAqB,aAAe,OACnDG,iBAAkBH,EAAqBtjB,EAAaa,GAAoB,kBAAM0hB,KALlF,SAOI,cAAC5uB,EAAA,EAAD,CAAKuE,GAAI,CAAE9P,OAAQ,OAAQiN,eAAgB,SAAUlN,MAAO,OAAQvvB,QAAS,OAAQ8qD,UAAW,UAAhG,SACI,cAAC/vB,EAAA,EAAD,CAAK6pB,GAAI,EAAGtlB,GAAI,CAAE/P,MAAO,SAAzB,SACI,sBAAMkZ,SAAUrB,EAAaa,GAA7B,SACI,eAAC0C,GAAA,EAAD,WACI,cAAC,aAAD,CAAY9Z,SAAS,YAAYvF,KAAK,cAAtC,SACKi/B,IAGJE,EAAiBj1C,KAAI,SAAC2pB,EAAMhL,GACzB,OACI,eAAC4G,EAAA,EAAD,CAAmB6pB,GAAI,EAAGtlB,GAAI,CAAEt/B,QAAS,OAAQi7B,WAAY,UAA7D,UACI,eAAC,aAAD,CAAYqE,GAAI,CAAEyrB,aAAc,MAAOx7B,MAAO,QAAUsB,SAAS,YAAYvF,KAAK,SAAlF,UACK6I,EAAQ,EADb,OAIA,eAAC2M,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,yBAAf,yBACA,cAAC,KAAD,yBACIyI,MAAM,cACNmQ,QAASg0B,EAAOyiB,UAChBrlD,QAAQ,yBACRhK,GAAG,yBACHqwD,aAAc7rB,EAAKtiC,OACnByiC,GAAI,CAAE/P,MAAO,QACby1B,YAAa,SAAC79C,GAAD,OArCzB,SAACtK,GAC7B,IAAMskD,EAAY,OAAGyI,QAAH,IAAGA,OAAH,EAAGA,EAAuB/5C,MAAK,SAACyH,GAAD,OAAc,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMza,UAAWA,KAC5E,MAAM,GAAN,cAAUskD,QAAV,IAAUA,OAAV,EAAUA,EAAcrkD,MAmCwCmuD,CAAwB9jD,KAC5C8iD,EAAS,aAAD,OAAc91B,EAAd,aARhB,aAUKy1B,EACIlgC,QAAO,SAACwhC,GACL,IAAMC,IAA6BV,EAAiB56C,MAAK,SAACsxC,GAAD,OAAkBA,EAAatkD,SAAWquD,EAAeruD,UAGlH,OAFsCquD,EAAeruD,SAAWsiC,EAAKtiC,OAE3BquD,EACtCC,OAAJ,EACOD,KAEV11C,KAAI,SAAC8B,GAAD,mBACD,cAAC0pB,GAAA,EAAD,CAA4B75B,MAAOmQ,EAAKza,OAAxC,SACI,eAACoiC,GAAA,EAAD,CAAMC,WAAS,EAAf,UACI,cAACD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,SACI,cAAC,aAAD,CAAY5O,SAAS,YAAYvF,KAAK,aAAa8/B,QAAM,EAAC37B,SAAS,SAAS47B,aAAa,WAAzF,SAAqG/zC,EAAKxa,SAE9G,eAACmiC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG6rB,IAAK,GAAKtrD,QAAQ,OAApC,UACI,cAAC,aAAD,CAAY6wB,SAAS,YAAYvF,KAAK,eAAtC,qBACA,cAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,aAAtC,SAAoDnB,GAAa,OAAC7S,QAAD,IAACA,GAAD,UAACA,EAAMpW,sBAAP,aAAC,EAAsBC,cAAvB,OAAsCmW,QAAtC,IAAsCA,GAAtC,UAAsCA,EAAMpW,sBAA5C,aAAsC,EAAsBE,yBAEjI,eAAC69B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG6rB,IAAK,GAAKtrD,QAAQ,OAApC,UACI,cAAC,aAAD,CAAY6wB,SAAS,YAAYvF,KAAK,eAAtC,oBACA,cAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,aAAtC,SAAoDnB,GAAa,OAAC7S,QAAD,IAACA,GAAD,UAACA,EAAMpW,sBAAP,aAAC,EAAsBG,cAAvB,OAAsCiW,QAAtC,IAAsCA,GAAtC,UAAsCA,EAAMpW,sBAA5C,aAAsC,EAAsBI,6BAX1HgW,EAAKza,kBAkBpB,OAAf6sD,QAAe,IAAfA,OAAA,EAAAA,EAAiBxuD,WAAjB,OAA4BuvD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAkBvvD,QAAS,KACpD,wBAAQk0B,QAAS,kBAAM0D,EAAO,CAAEh2B,KAAM,GAAID,OAAQ,KAAMgtD,KAAM,QAASh9B,MAAO,CAAEgmB,WAAY,OAAQxC,OAAQ,OAAQkC,WAAY,QAAUziC,KAAK,SAA/I,SACI,cAAC,KAAD,CAAkBwvB,GAAI,CAAEC,MAAO2Q,EAAMM,UAAUuB,KAAMriB,SAAU,YAGzC,KAAb,OAAhB+6B,QAAgB,IAAhBA,OAAA,EAAAA,EAAkBvvD,QACf,wBAAQk0B,QAAS,kBAAMk7B,EAAOn2B,IAAQtH,MAAO,CAAEgmB,WAAY,OAAQxC,OAAQ,QAAUvgC,KAAK,SAA1F,SACI,cAAC,KAAD,CAAyBwvB,GAAI,CAAEC,MAAO2Q,EAAMM,UAAUuB,KAAMriB,SAAU,YAE1E,OAtDEyP,EAAKxkC,mBAsEnD8uD,GAAgB95B,aAAhB,elFzE+C,CAC3C9xB,MAAM,EACN6rD,gBAAiB,KkF2END,UC3FA8B,GAhEK,SAAC,GAOd,IAAD,QANFC,kBAME,MANW,GAMX,MALFC,sBAKE,MALe,GAKf,MAJFC,2BAIE,MAJoB,GAIpB,MAHFC,yBAGE,MAHkB,GAGlB,MAFF7lC,iBAEE,aADFvmB,mBACE,MADY,GACZ,EACI2wC,EAAQoE,eACN1wB,EAAcF,GAAdE,UACAs8B,EAA6Bz8B,GAAf08B,EAAe18B,GAG/BmoC,EAAwB,UAAGj8C,GAAa+7C,EAFxBnsD,IAAgBmQ,GACDd,GAAqBC,WAC5B,aAAG,EAAiDjN,YAC5EiqD,EAAoB,UAAGl8C,GAAag8C,EAAmB78C,WAAnC,aAAG,EAAgDlN,YAEvEkqD,EAAahmC,EAAY,UAAY,UAE3C,OACI,qCACI,eAACiV,EAAA,EAAD,CAAKuI,GAAI,IAAKtjC,QAAQ,OAAOy8B,eAAe,gBAA5C,UACI,eAAC1B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,eAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,UACKD,EADL,uBAGA,cAAC,aAAD,CAAYj7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKqL,OAGT,eAACzwB,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,kCAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKsL,UAIb,eAAC1wB,EAAA,EAAD,CAAKuI,GAAI,IAAKtjC,QAAQ,OAAOy8B,eAAe,gBAA5C,UACI,eAAC1B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,4BAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKyL,OAGT,eAAC7wB,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,qCAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK0L,c,UCjDnBtJ,GAAaz7C,IAAM07C,YAAW,SAAoBz0B,EAAOzM,GAC3D,OAAO,cAACmhC,GAAA,EAAD,aAAO5M,UAAU,KAAKv0B,IAAKA,GAASyM,OA2ChCi+B,GAxCO,SAAC,GAA6F,IAA3FjuD,EAA0F,EAA1FA,MAAOC,EAAmF,EAAnFA,SAAUiuD,EAAyE,EAAzEA,SAAUC,EAA+D,EAA/DA,WAAYxmB,EAAmD,EAAnDA,OAAQ5nC,EAA2C,EAA3CA,QAA2C,IAAlCquD,2BAAkC,SACzGjc,EAAQoE,eACN3wB,EAAqBD,GAArBC,QAASE,EAAYH,GAAZG,QACTy/B,EAAgB7/B,GAExB,OACI,eAACgnB,GAAA,EAAD,CAAQ6Z,WAAY,CAAEz3B,MAAO,CAAE2P,gBAAiB0T,EAAMM,UAAU+T,WAAcC,YAAU,EAAC3mD,KAAM6nC,EAAQ5nC,QAASA,EAAS2mD,oBAAqBlC,GAA9I,UACI,cAACmC,GAAA,EAAD,CAAQplB,GAAI,CAAE5D,SAAU,WAAYc,gBAAiB0T,EAAMM,UAAU2B,OAArE,SACI,cAAC6C,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,cAAC,aAAD,CAAYpK,SAAUhN,EAASyH,KAAMg4B,EAArC,SACKvlD,IAEL,cAACyjD,GAAA,EAAD,CAAYmD,KAAK,QAAQplB,MAAM,UAAUnQ,QAAStxB,EAAS,aAAW,QAAtE,SACI,cAAC,KAAD,eAMpB,cAAC+8B,GAAA,EAAD,CAAWC,SAAS,KAApB,SACK98B,IAEL,cAAC0mD,GAAA,EAAD,CAAQhpB,SAAS,QAAQ4D,GAAI,CAAEoS,IAAK,OAAQmU,OAAQ,EAAGrpB,gBAAiB0T,EAAMM,UAAUwB,OAAxF,SACI,cAACgD,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,cAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,cAAC,SAAD,CAAQ4E,SAAU8qB,EAAqB/8B,QAAS88B,EAAYr7B,SAAUlN,EAAtE,SACKsoC,gB,UCjBlBG,GAvBI,SAACr+B,GAChB,IAAQgO,EAA6ChO,EAA7CgO,QAASj/B,EAAoCixB,EAApCjxB,KAAMsG,EAA8B2qB,EAA9B3qB,MAAvB,EAAqD2qB,EAAvBzxB,kBAA9B,SAEA,OACI,cAAC6sC,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAAC,KAAD,CACIvsC,KAAMA,EACNi/B,QAASA,EACTuT,KAAM,CAAEpT,SAAU5/B,GAClB6/B,OAAQ,oBAAGC,MAASkC,EAAZ,EAAYA,SAAUn3B,EAAtB,EAAsBA,MAAtB,OACJ,cAAC,KAAD,CACI/D,MAAOA,EACP+D,MAAOA,EACPm3B,SAAUA,EACV0K,YAAa,EACbtK,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,aAAWC,WAAS,GAAKkN,a,2QC6rB/D6iB,GAtpBY,SAAC,GAAyG,IAAD,IAAtG7pD,sBAAsG,MAArF,GAAqF,MAAjF8pC,wBAAiF,aAAvDvuC,aAAuD,MAA/C,GAA+C,MAA3C2nC,cAA2C,SAA3B5nC,EAA2B,EAA3BA,QAASwuD,EAAkB,EAAlBA,YACxG16C,EAAS00B,eACT4J,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA2oC,EAA8D9oC,GAA1C08B,EAA0C18B,GAA9B+oC,EAA8B/oC,GAAhB6/B,EAAgB7/B,GAChE8iB,EAAWC,wBACTjnC,EAAgBuyB,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,YAEFhB,EAAS,OAAGqT,QAAH,IAAGA,OAAH,EAAGA,EAAQrT,UAClBiuC,EAAiB5+B,GAAX6+C,EAAW7+C,GACjB6+B,EAAgBn/B,GAChBy+B,EAAe1+B,GACfq/B,EAA0Bt+B,GAC1Bo9B,EAA2Bj+B,GAArBg+B,EAAqBh+B,GAAZ+9B,EAAY/9B,GAC3Bo/B,EAAyBn9B,GAAnBo9B,EAAmBp9B,GAAZq9B,EAAYr9B,GACzBs9B,EAAuD38B,GAA/B48B,EAA+B58B,GAC/D,EAAsF3N,GAAkB,GAAhGwqC,EAAR,EAAQA,qBAAsBC,EAA9B,EAA8BA,iBAAkBC,EAAhD,EAAgDA,qBAAsBC,EAAtE,EAAsEA,YAChEE,EAAsBJ,GAAoBC,EAC1Cwf,GAA4B,OAAdlqD,QAAc,IAAdA,OAAA,EAAAA,EAAgBD,uBAAwBiqC,EACtDY,EAAkB7tC,IAAgBmQ,GAClC49B,EAAuBF,EAAkBh9B,GAAgCC,GAE/E,EAAkEhJ,oBAAS,GAA3E,mBAAOslD,GAAP,KAAkCC,GAAlC,KACA,GAAgFvlD,mBAASmlC,GAAzF,qBAAOqgB,GAAP,MAAyCC,GAAzC,MACA,GAAkCzlD,mBAAQ,OAAC7E,QAAD,IAACA,OAAD,EAACA,EAAgBX,cAA3D,qBAAOlB,GAAP,MAAkB4sC,GAAlB,MACA,GAA8BlmC,mBAAQ,OAAC7E,QAAD,IAACA,OAAD,EAACA,EAAgB9C,YAAvD,qBAAO0nB,GAAP,MAAgB2lC,GAAhB,MACA,GAA0D1lD,mBAAQ,OAAC7E,QAAD,IAACA,OAAD,EAACA,EAAgBO,8BAAnF,qBAAOiqD,GAAP,MAA8BC,GAA9B,MACA,GAAsD5lD,mBAAQ,OAAC7E,QAAD,IAACA,OAAD,EAACA,EAAgBM,4BAA/E,qBAAOoqD,GAAP,MAA4BC,GAA5B,MACA,GAA8C9lD,qBAA9C,qBAAOqmC,GAAP,MAAwBC,GAAxB,MACA,GAAsCtmC,mBAAS,IAA/C,qBAAO+jC,GAAP,MAAoBwC,GAApB,MACA,GAAgDvmC,qBAAhD,qBAAOo/B,GAAP,MAAyBC,GAAzB,MACA,GAAgDr/B,qBAAhD,qBAAO+lD,GAAP,MAAyBC,GAAzB,MACA,GAAsDhmD,oBAAS,GAA/D,qBAAOwmC,GAAP,MAA4BC,GAA5B,MACA,GAAwCzmC,mBAASwd,SAAQ,OAACjT,QAAD,IAACA,OAAD,EAACA,EAAQ7P,eAAiBgsC,cAAnF,qBAAOhsC,GAAP,MAAqBisC,GAArB,MACA,GAAkD3mC,mBAAS,GAA3D,qBAAO4mC,GAAP,MAA0BC,GAA1B,MACA,GAAkE7mC,oBAAS,GAA3E,qBAAO8mC,GAAP,MAAkCC,GAAlC,MACA,GAA4D/mC,mBACxD+lC,EAAkBN,EAAyBC,GAD/C,qBAAOsB,GAAP,MAA+BC,GAA/B,MAGA,GAA4DjnC,mBAAS,MAArE,qBAAOknC,GAAP,MAA+BC,GAA/B,MAEM8e,GAAgCX,GAA4B,OAAS,SAC3E,GAAwBruC,KAAjB3F,GAAP,qBACA,GAAmD+C,GAAsB3Z,IAAtD2sC,GAAnB,GAAQvqC,UAAiCoP,GAAzC,GAAyCA,MAErCA,IACAgzB,EAASZ,GAAepyB,KAG5B,IAAMwzB,GAAgB,CAClBhlC,aAAc8iB,SAAQ,OAACjT,QAAD,IAACA,OAAD,EAACA,EAAQ7P,cAC/BH,YAAa,GACbI,kBAAmB,GACnBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,yBAA0B,GAC1BC,WAAYsqC,EACZhtC,WAAY0lB,OAASO,IAAI,EAAG,QAC5B7jB,eAAgB,GAChBhF,KAAM,GACNuF,gBAAiB,EACjBC,4BAA6B,EAC7BC,oBAAqBiqC,EACrBhqC,eAAgB8oC,EAChB9sC,cAAe,GACfkE,kBAAmB,GACnBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,yBAA0B,GAC1BhB,aAAcujB,OAASO,IAAI,EAAG,QAC9B7iB,2BAA4BsiB,OAASO,IAAI,EAAG,QAAQA,IAAI,EAAG,QAC3D5iB,6BAA8BqiB,OAASO,IAAI,EAAG,QAC9C3iB,uBAAwB,EACxBC,SAAU,GACVxG,SAAU,GACVyG,yBAA0BupC,GAG9B,GASIvF,aAAQ,CAAEH,iBAAeI,KAAM,QAR/BC,GADJ,GACIA,aADJ,MAEIE,UAAaC,GAFjB,GAEiBA,OAAQC,GAFzB,GAEyBA,YACrBzL,GAHJ,GAGIA,QACAsL,GAJJ,GAIIA,MACAsH,GALJ,GAKIA,UACAC,GANJ,GAMIA,SACAC,GAPJ,GAOIA,SACAC,GARJ,GAQIA,YAGJtnC,qBAAU,WACN,GAAIhF,EAAgB,CAChB,IACkBusC,EAcdvsC,EAdAT,aACArC,EAaA8C,EAbA9C,WACAmC,EAYAW,EAZAX,aACAQ,EAWAG,EAXAH,gBACAU,EAUAP,EAVAO,6BACAD,EASAN,EATAM,2BACAR,EAQAE,EARAF,4BACAiD,EAOA/C,EAPA+C,mBACA/G,EAMAgE,EANAhE,cACAiE,EAKAD,EALAC,uBACAF,EAIAC,EAJAD,oBACAX,EAGAY,EAHAZ,YACAQ,EAEAI,EAFAJ,WACG4sC,EAdP,aAeIxsC,EAfJ,IAiBAwrC,GAAgBe,GAChBT,GAAyB,OAAC7rC,QAAD,IAACA,IAA0B4rC,IAEpD,IAEkB,EAMdrG,EARAiH,EAAkB,GAEtB,GADqBzwC,IAAkButC,EAEnCkD,GAAgC,OAAdzsC,QAAc,IAAdA,GAAA,UAAAA,EAAgB/F,gBAAhB,eAA0BC,YAAa,GACzDgqC,GAAmB,OAAClkC,QAAD,IAACA,OAAD,EAACA,EAAgB/F,UACpCqxC,IAAuB,GAMvB9F,EADAziC,IAAuBimC,EACf,uCACDzE,IACAiI,GAFC,IAGJxwC,gBACA4D,aACAR,YAAaA,GAAe,GAC5BS,kBACAE,sBACAD,8BACAiD,qBACA9I,SAAUwyC,EACVvvC,WAAY8nB,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAAQ,KAAMyC,cAAc,IAC/E9lB,aAAc2lB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAAQ,KAAMyC,cAAc,IACnF5kB,6BAA8BykB,GAAgB,CAC1CE,QAAS3kB,EACTmiB,OAAQ,KACRyC,cAAc,IAElB7kB,2BAA4B0kB,GAAgB,CAAEE,QAAS5kB,EAA4BoiB,OAAQ,KAAMyC,cAAc,MAG3G,2BACDqnB,GADC,IAEJ5sC,aACAC,kBACAC,8BACAiD,qBACAhD,sBACA/D,gBACAoD,YAAaA,GAAe,GAC5BnF,SAAUwyC,EACVvvC,WAAY8nB,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAAQ,KAAMyC,cAAc,IAC/E9lB,aAAc2lB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAAQ,KAAMyC,cAAc,IACnF5kB,6BAA8BykB,GAAgB,CAC1CE,QAAS3kB,EACTmiB,OAAQ,KACRyC,cAAc,IAElB7kB,2BAA4B0kB,GAAgB,CAAEE,QAAS5kB,EAA4BoiB,OAAQ,KAAMyC,cAAc,MAIvHilC,GAA6BF,GAC7B/e,GAAmB9oB,SAASxiB,GAAmBwiB,SAASviB,IACxD4rC,GAAqB5rC,GACrB+qD,GAAoBrlB,GACpBX,GAAMW,GACN4F,GAAeroC,GACfghC,EAAST,GAAc,OAACtjC,QAAD,IAACA,OAAD,EAACA,EAAgBjD,iBAE7C,CAACiD,IAEJ,IAAM+qD,GAAc,SAACC,GACjB,OAAOhmC,GAAgB,CAAEE,QAAStC,KAAOooC,GAAate,cAAehqB,OAAQ,gBAG3EuoC,GAAc,SAAC/lC,GACjB,IAAM8lC,EAAchmC,GAAgB,CAAEE,UAASxC,OAAQ,KAAMyC,cAAc,IAAQunB,cAC7Ewe,EAASF,EAAYpI,QAAQ,KACnC,OAAOoI,EAAYG,UAAUD,IAS3BzlB,GAAgB,uCAAG,WAAOC,GAAP,eAAAx1B,EAAA,0DACf7M,EADe,eACAqiC,IAEbrmC,aAAR,UAA0B0rD,GAAY5sD,KAAtC,OAAmD8sD,GAAY5nD,EAAQhE,eACvEgE,EAAQnG,WAAR,UAAwB6tD,GAAYnmC,KAApC,OAA+CqmC,GAAY5nD,EAAQnG,aACnEmG,EAAQ9C,6BAAR,UAA0CwqD,GAAYP,KAAtD,OAA+ES,GAAY5nD,EAAQ9C,+BACnG8C,EAAQ/C,2BAAR,UAAwCyqD,GAAYL,KAApD,OAA2EO,GAAY5nD,EAAQ/C,6BAC/F+C,EAAQjE,YAAoD,IAAtCiE,EAAQjE,YAAYu3B,OAAOj+B,OAAe,KAAO2K,EAAQjE,YAC/EiE,EAAQN,mBAAqB6lC,GAC7BvlC,EAAQtD,oBAAsBsqD,GAC9BhnD,EAAQpD,uBAAyB4rC,GAE7BjD,KAAgBE,WACTzlC,EAAQ7D,yBACR6D,EAAQ5D,6BACR4D,EAAQ3D,kCACR2D,EAAQ1D,0BAGfipC,KAAgBG,WACT1lC,EAAQnD,yBACRmD,EAAQlD,6BACRkD,EAAQjD,kCACRiD,EAAQhD,0BAGC8rC,GAAU,mBAEV5C,EA5BC,2BA6BVlmC,EAAQ3C,0BAEXskC,GAAY/qC,SA/BC,kCAgCYinC,GAAgBwE,EAAWzrC,UAhCvC,QAgCboJ,EAAQpJ,SAhCK,+BAkCboJ,EAAQpJ,SAAWgqC,GAlCN,uCAqCV5gC,EAAQpJ,SArCE,mCAyCXkc,GAAc,CAAEpa,YAAWsH,UAAS9D,kBAAgBqmC,SAzCzC,2DA2CjB7B,EAASZ,GAAe,EAAD,KA3CN,2DAAH,sDAgJtB,OACI,cAAC,GAAD,CAAeD,OAAQA,EAAQ3nC,MAAOA,EAAOkuD,SAAS,OAAOnuD,QA3B3C,WAClB8uD,GAA6BF,GAC7B9e,GAAc,OAACprC,QAAD,IAACA,OAAD,EAACA,EAAgB+C,oBAC/B8hC,GAAM+lB,IACNtvD,KAuBqFouD,WAhCpE,WACjB9kB,GAAaa,GAAbb,GACAklB,KA8BA,SACI,eAACrtB,GAAA,EAAD,CAAMxC,eAAe,SAAS8L,GAAI,EAAGjF,GAAI,GAAzC,UACKgJ,GAAoBoC,GACjB,cAAC,GAAD,IAEA,iCACI,cAAC,aAAD,CAAYpL,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,qBAGA,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,EAAG0Q,UAAW,QAArC,UACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAAC+D,Q1ElRV,E0EkRN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAO5rC,KAAK,OAAOsG,MAAM,eAAe9G,YAAU,EAAC0/B,WAAYuL,GAAOzqC,KAAMi/B,QAASA,OAEzF,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACIpsC,YAAU,EACV+kC,SAAUgM,EACVrR,WAAYuL,GAAO/oC,cACnB1B,KAAK,gBACLsG,MAAM,eACNuB,QAAQ,qBACRq4B,QAASvuB,GACTstB,QAASA,GACT8E,eA7FF,SAAClQ,GAC/B,IAAMye,EAAeze,EAAMhP,OAAOxa,QAAU4kC,EAC5C+B,GAAuBsB,IA4FSzO,aAAW,MAGnB,eAAC1B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,WACMmF,IACE,eAAC/M,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,gCAAf,iCACA,cAAC,KAAD,CACI2jC,SArDV,SAAC3N,GAAW,IAAD,EACnC0e,EAAS,OAAG1e,QAAH,IAAGA,GAAH,UAAGA,EAAOhP,cAAV,aAAG,EAAexa,MAE7BkoC,IAAchB,KACdD,IAA6B,GAC7BI,GAA0Ba,KAiDUloC,MAAOknC,GACPjrC,MAAM,sBACNuB,QAAQ,gCAJZ,SAMK2oC,EAAqB93B,KAAI,SAAC85B,GAAD,OACtB,cAACtO,GAAA,EAAD,CAAyB75B,MAAK,OAAEmoC,QAAF,IAAEA,OAAF,EAAEA,EAAM30C,GAAtC,gBACK20C,QADL,IACKA,OADL,EACKA,EAAM1tC,aADX,OAAe0tC,QAAf,IAAeA,OAAf,EAAeA,EAAM30C,YAOpCkzC,IACG,cAAC,GAAD,CACIxM,SAAU8L,EACVrwC,KAAK,aACLsG,MAAM,YACNuB,QAAQ,kBACRq4B,QAAS9tB,GACT6sB,QAASA,GACT4E,aAAW,UAK1BkN,IACG,cAAC5O,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q1EpUrB,E0EoUF,SACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI3iC,KAAK,WACLsG,MAAM,2BACNmQ,QAASg0B,GAAO9qC,SAChBs/B,QAASA,UAKvB8R,IACE,cAAC5O,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q1EhVrB,E0EgVF,SACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI4B,SAAUgM,EACVvwC,KAAK,2BACLsG,MAAM,kBACNuB,QAAQ,6BACRq4B,QAASruB,GACTotB,QAASA,GACT4E,aAAW,QAK3B,eAAC1B,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q1E9VjB,E0E8VN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAACS,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAACukB,GAAA,EAAD,CACI9wD,KAAK,eACLsG,MAAM,qBACN+D,MAAOxG,GACP29B,SAlLH,SAAC7W,GAClC8lB,GAAa9lB,IAkLuBsU,QAASA,GACT2C,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,yBAAWH,UAAQ,GAAKsN,GAAxB,IAAoClN,WAAS,EAAC/oB,OAAO,YAI9F,cAAC0rB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAY5rC,KAAK,eAAesG,MAAM,qBAAqB24B,QAASA,OAExE,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAACS,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAACukB,GAAA,EAAD,CACI9wD,KAAK,aACLsG,MAAM,mBACN+D,MAAOigB,GACPkX,SA7LL,SAAC7W,GAChCslC,GAAWtlC,IA6LyBsU,QAASA,GACT2C,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,yBAAWH,UAAQ,GAAKsN,GAAxB,IAAoClN,WAAS,EAAC/oB,OAAO,YAI9F,cAAC0rB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAY5rC,KAAK,aAAasG,MAAM,mBAAmB24B,QAASA,UAGxE,cAACkD,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q1E9XjB,E0E8XN,SACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC,GAAD,CACI1D,QAASA,GACTj/B,KAAK,cACL6rC,WAAS,EACTC,QAAS,EACT5M,WAAYuL,GAAO3lC,YACnBwB,MAAM,uBAKtB,cAAC,aAAD,CAAYkgC,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,+BAGA,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,EAAG0Q,UAAW,QAArC,UACI,cAAC/U,GAAA,EAAD,CAAMC,WAAS,EAACjE,WAAW,SAASgI,Q1E/Y9B,E0E+YN,SACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,eAACqB,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,qBAAf,yBACA,cAAC,KAAD,CACI0mC,SAAUgM,EACV/O,SAtON,SAAC3N,GAC/Bid,GAAejd,EAAMhP,OAAOxa,QAsOQA,MAAOikC,GACPhoC,MAAM,cACNuB,QAAQ,qBALZ,SAOKsK,GAAwBuG,KAAI,SAAC3P,GAAD,OACzB,cAACm7B,GAAA,EAAD,CAA2B75B,MAAOtB,EAAQlL,GAA1C,SACKkL,EAAQjE,aADEiE,EAAQlL,gBAQ3C,cAAC,GAAD,CACI4E,YAAaA,EACb8rC,WAAYgC,EACZjC,YAAaA,GACbrP,QAASA,GACTwL,OAAQA,QAGhB,cAAC,aAAD,CAAYjE,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,+BAGA,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,EAAG0Q,UAAW,QAArC,UACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAACzC,eAAe,gBAAgBxB,WAAW,SAA1D,UACI,eAACF,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAUjN,EAAW0H,KAAM60B,EAAvC,4BAGA,cAAC,aAAD,CAAYtvB,SAAUjN,EAAW0H,KAAMkhC,EAAvC,sDAIJ,eAACzxB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASqwB,IAAK,EAA7C,UACI,cAAC,aAAD,CAAYz6B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKmN,KAEL,cAAC1a,GAAD,CACI91C,KAAK,sBACLi/B,QAASA,GACTomB,QAASwK,GACTnjB,WAAY,CAAE,aAAa,UAC3BlL,SAhVK,WACrC,IAAMuvB,EAAQhB,KAAqCrgB,EAAOigB,EAASjgB,EACnEogB,IAA6B,SAACkB,GAAD,OAAiBA,KAC9ChB,GAAoCe,YAiVhB,eAAC5uB,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q1ErcjB,E0EqcN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAACS,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAACukB,GAAA,EAAD,CACI9wD,KAAK,+BACLsG,MAAM,0BACN+D,MAAO6lD,GACP1uB,SAjRI,SAAC7W,GACzCwlC,GAAyBxlC,IAiRWsU,QAASA,GACT2C,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,yBAAWH,UAAQ,GAAKsN,GAAxB,IAAoClN,WAAS,EAAC/oB,OAAO,YAI9F,cAAC0rB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAY5rC,KAAK,+BAA+BsG,MAAM,0BAA0B24B,QAASA,OAE7F,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAACS,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAACukB,GAAA,EAAD,CACI9wD,KAAK,6BACLsG,MAAM,wBACN+D,MAAO+lD,GACP5uB,SA5RE,SAAC7W,GACvC0lC,GAAuB1lC,IA4RasU,QAASA,GACT2C,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,yBAAWH,UAAQ,GAAKsN,GAAxB,IAAoClN,WAAS,EAAC/oB,OAAO,YAI9F,cAAC0rB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAY5rC,KAAK,6BAA6BsG,MAAM,wBAAwB24B,QAASA,UAG7F,eAACkD,GAAA,EAAD,CAAMrc,GAAI,EAAGsc,WAAS,EAAC+D,Q1ErejB,E0EqeN,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACKmF,GACG,cAAC,GAAD,CACIhN,eAlRF,SAAClQ,GAEnC,OADmBA,EAAMhP,OAAOxa,OAE5B,KAAKwlC,EACDiC,GAAS,iBAAkB,GAC3B,MACJ,KAAKhC,EACDgC,GAAS,iBAAkB,GAC3B,MACJ,KAAK/B,EACD+B,GAAS,iBAAkB,KAyQCtyC,YAAU,EACV+kC,SAAUgM,EACVrR,WAAYuL,GAAOtkC,SACnBnG,KAAK,WACLsG,MAAM,YACNuB,QAAQ,6BACRq4B,QAASvtB,GACTssB,QAASA,GACT4E,aAAW,IAGf,cAAC,GAAD,CACIrkC,YAAU,EACV+kC,SAAUgM,EACVvwC,KAAK,WACLsG,MAAM,YACN0M,KAAK,SACLksB,WAAYuL,GAAOtkC,SACnBumC,WAAY,CAAE/I,IAAK,GACnB1E,QAASA,QAInB8R,IACE,eAAC5O,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,UACI,cAAC,GAAD,CACIrH,SAAUgM,EACV/wC,YAAU,EACVQ,KAAK,iBACLsG,MAAM,mBACN0M,KAAK,SACLksB,WAAYuL,GAAOzlC,eACnB0nC,WAAY,CAAE/I,IAAK,GACnB1E,QAASA,GACTuC,SApUN,SAAC3N,GAC/Bme,GAAY,kBACZF,GAAS,iBAAkBje,EAAMhP,OAAOxa,OACxC,IAAMtB,EAAU8oC,KAEE3C,GAA8B,2BACzCnmC,GADwC,IAE3C/D,gBAAiB6uB,EAAMhP,OAAOxa,UAI9B0nC,GAAS,iBAAkB,CAAE/+B,KAAM,SAAU2D,QA5RxB,kEAulBQ8zB,GAAOzlC,gBACJ,cAAC,aAAD,CAAY+uB,SAAUjN,EAAW0H,KAAMkhC,EAAcjtB,MAAO2Q,EAAMM,UAAUoV,IAA5E,SACKre,GAAOzlC,eAAe2R,mBAO/C,cAAC,aAAD,CAAY6vB,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,yBAGA,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,EAAG0Q,UAAW,QAArC,UACI,eAACjZ,EAAA,EAAD,CAAKuI,GAAI,EAAGtjC,QAAQ,OAAOy8B,eAAe,WAA1C,UACI,cAAC1B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASuE,GAAI,EAA5C,SACI,cAAC,aAAD,CAAY3O,SAAUjN,EAAW0H,KAAMg4B,EAAvC,wCAIJ,cAAC,KAAD,CACIxmD,KAAK,kBACLi/B,QAASA,GACTE,MAAO,CAAEC,UAAU,GACnBC,OAAQ,oBAAGC,MAASkC,EAAZ,EAAYA,SAAUn3B,EAAtB,EAAsBA,MAAtB,OACJ,cAACk1B,GAAA,EAAD,CACIgF,SAAU2L,EACV7lC,MAAOA,EACP4yB,QAAQ,SACR+I,WAAY,CACR0M,eAAgB,cAACC,GAAA,EAAD,CAAgB/T,SAAS,QAAzB,gBAEpB8N,WAAY,CAAE3c,MAAO,CAAE6iB,UAAW,QAASngB,MAAO,KAClD+O,SAAU,SAAC5c,GACP4c,EAAS5c,GAzYxB,SAACA,GAC1B,IAAMiuB,EAAW9qB,SAASnD,EAAEC,OAAOxa,OAC9BuhB,OAAOknB,MAAMD,GAGdhC,GAAmBM,IAFnBN,GAAmB9oB,SAASnD,EAAEC,OAAOxa,OAAS8mC,IAuYV4B,CAAqBnuB,YAMzC,cAAC,aAAD,CAAY8d,GAAI,IAAKsL,MAAM,QAAQja,SAAUjN,EAAW0H,KAAM60B,EAA9D,gCACqBlS,MAErB,cAAC,aAAD,CAAYzO,GAAI,IAAKsL,MAAM,QAAQja,SAAUjN,EAAW0H,KAAM60B,EAA9D,sCAC2BzS,YAKvC,cAAC,GAAD,CACInD,SAnUkB,WAC9B6D,IAA6B,GAC7BE,GAA0BC,KAkUd/D,YAAY,cACZF,YAAY,aACZzsC,KAAMswC,GACNrwC,QAlUe,WAC3BswC,IAA6B,GAC7BI,GAA0B,OAiUdzwC,MAAM,yBACN0V,QAAO,qEAAgEvD,GAAsBq+B,IAAtF,aCnaZwf,GA/QI,SAAC,GAA6B,IAAD,UAA1BvrD,sBAA0B,MAAT,GAAS,EACtC0tC,EAAQoE,eACd,EAwBI9xC,GAAkB,GAvBlB1F,EADJ,EACIA,KACA0B,EAFJ,EAEIA,cACA4D,EAHJ,EAGIA,WACA3F,EAJJ,EAIIA,SACAmF,EALJ,EAKIA,YACA2D,EANJ,EAMIA,mBACA7C,EAPJ,EAOIA,kBACAC,EARJ,EAQIA,sBACAC,EATJ,EASIA,2BACAC,EAVJ,EAUIA,yBACAtD,EAXJ,EAWIA,YACAyC,EAZJ,EAYIA,kBACAC,EAbJ,EAaIA,sBACAC,EAdJ,EAcIA,2BACAC,EAfJ,EAeIA,yBACAI,EAhBJ,EAgBIA,oBACAU,EAjBJ,EAiBIA,SACAZ,EAlBJ,EAkBIA,gBACAC,EAnBJ,EAmBIA,4BACAT,EApBJ,EAoBIA,aACAnC,EArBJ,EAqBIA,WACAqD,EAtBJ,EAsBIA,6BACAD,EAvBJ,EAuBIA,2BAEI8gB,EAAcF,GAAdE,UACAmoB,EAAe1+B,GACfm+B,EAA2Bj+B,GAArBg+B,EAAqBh+B,GAAZ+9B,EAAY/9B,GAC3Bg/C,EAAiD9oC,GAA7By8B,EAA6Bz8B,GAAf08B,EAAe18B,GACjD+oB,EAAS5+B,GACjB,EAA0CvG,oBAAS,GAAnD,mBAAO2mD,EAAP,KAAsBC,EAAtB,KACMC,EAAuB3rD,IAAwBiqC,EAAO,4BAA8B,kCACpF4C,EAAe5wC,IAAkButC,EACjC2B,EAAkB7oB,SAASxiB,GAAmBwiB,SAASviB,GACvD6rD,EAAU,4BACVC,EAAmB5mC,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAAQipC,IACpEE,GAAiB7mC,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAAQipC,IAChEnB,GAAwBxlC,GAAgB,CAAEE,QAAS3kB,EAA8BmiB,OAAQipC,IACzFjB,GAAsB1lC,GAAgB,CAAEE,QAAS5kB,EAA4BoiB,OAAQipC,IACrFG,GAAqB,UAAG3+C,GAAapK,EAAoB0J,WAApC,aAAG,EAA2DrN,YACnF2sD,GAAmB,UAAG5+C,GAAavN,EAAY8M,WAA5B,aAAG,EAAqCtN,YAC3D4sD,GAAe,UAAG7+C,GAAanR,EAAeiQ,WAA/B,aAAG,EAA2C7M,YAM7D6sD,GAAyB,WAC3BR,GAAiB,IAGrB,OACI,eAAClzB,EAAA,EAAD,CAAKD,SAAU,IAAf,UACI,eAACC,EAAA,EAAD,CAAKuI,GAAI,GAAKtjC,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAAvE,UACI,cAAC,aAAD,CAAYsE,MAAM,QAAQ1O,SAAUjN,EAAW0H,KAAMihC,EAArD,qBAGA,cAAC/K,GAAA,EAAD,CAAYpyB,QAdE,WACtB6+B,GAAiB,IAa+B,aAAW,uBAAnD,SACI,cAAC,WAAD,CAAU1uB,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,UAGhE,eAAC+X,GAAA,EAAD,CAAO/D,GAAI,CAAE5c,GAAI,EAAGkiC,GAAI,EAAGtC,GAAI,GAAKtO,UAAW,OAAQhD,aAAc,EAAG1N,GAAI,GAA5E,UACI,eAACvI,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,kBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKrjD,OAGT,eAACi+B,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,kBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKqO,QAGRpf,GACG,eAACrU,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,uBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKoO,QAIZ9xD,GACG,eAACs+B,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,sBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,gBACK1jD,QADL,IACKA,OADL,EACKA,EAAUE,sBAIvB,eAACo+B,EAAA,EAAD,CAAKuI,GAAI,IAAKtjC,QAAQ,OAAOy8B,eAAe,gBAA5C,UACI,eAAC1B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,wBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKiO,OAGT,eAACrzB,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,8BAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKkO,WAIZzsD,GACG,eAACm5B,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,yBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKv+C,UAKjB,cAACm5B,EAAA,EAAD,CAAKuI,GAAI,IAAT,SACI,cAAC,aAAD,CAAY/D,MAAM,QAAQ1O,SAAUjN,EAAW0H,KAAMihC,EAArD,iCAIJ,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAE5c,GAAI,EAAGkiC,GAAI,EAAGtC,GAAI,GAAKtO,UAAW,OAAQhD,aAAc,EAAG1N,GAAI,GAA5E,UACI,eAACvI,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,yBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKmO,QAGT,cAAC9lB,GAAA,EAAD,CAASlJ,GAAI,CAAEgE,GAAI,KAClB/9B,IAAuB+lC,GACpB,cAAC,GAAD,CACIkgB,WAAY9oD,EACZ+oD,eAAgB9oD,EAChB+oD,oBAAqB9oD,EACrB+oD,kBAAmB9oD,EACnBtD,YAAaA,IAGpBgG,IAAuBgmC,GACpB,cAAC,GAAD,CACIigB,WAAYxpD,EACZypD,eAAgBxpD,EAChBypD,oBAAqBxpD,EACrBypD,kBAAmBxpD,EACnB5C,YAAaA,EACbumB,WAAS,IAGhBvgB,IAAuBimC,GACpB,qCACI,cAAC,GAAD,CACIggB,WAAY9oD,EACZ+oD,eAAgB9oD,EAChB+oD,oBAAqB9oD,EACrB+oD,kBAAmB9oD,EACnBtD,YAAaA,IAEjB,cAACipC,GAAA,EAAD,CAASlJ,GAAI,CAAEgE,GAAI,KACnB,cAAC,GAAD,CACIkoB,WAAYxpD,EACZypD,eAAgBxpD,EAChBypD,oBAAqBxpD,EACrBypD,kBAAmBxpD,EACnB5C,YAAaA,EACbumB,WAAS,UAKzB,cAACiV,EAAA,EAAD,CAAKuI,GAAI,IAAT,SACI,cAAC,aAAD,CAAY/D,MAAM,QAAQ1O,SAAUjN,EAAW0H,KAAMihC,EAArD,iCAIJ,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGsJ,UAAW,OAAQhD,aAAc,EAAG1N,GAAI,GAA3D,UACI,eAACvI,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,4BAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK+N,OAGT,eAACnzB,EAAA,EAAD,CAAKuI,GAAI,IAAKtjC,QAAQ,OAAOy8B,eAAe,gBAA5C,UACI,eAAC1B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,qCAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK6M,QAGT,eAACjyB,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,mCAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK+M,WAIb,eAACnyB,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,uBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKl9C,UAIb,cAAC83B,EAAA,EAAD,CAAKuI,GAAI,IAAT,SACI,cAAC,aAAD,CAAY/D,MAAM,QAAQ1O,SAAUjN,EAAW0H,KAAMihC,EAArD,2BAIJ,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGsJ,UAAW,OAAQhD,aAAc,EAAG1N,GAAI,GAA3D,UACI,eAACvI,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,sCAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,oBACS99C,QAGb,eAAC04B,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,wBAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,oBACS79C,QAGb,eAACy4B,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,8BAGA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,oBACSzS,WAIjB,cAAC,GAAD,CACI3vC,MAAM,yBACNyE,eAAgBA,EAChBkjC,OAAQsoB,EACRlwD,QAAS2wD,GACTnC,YAAamC,S,0CC1RhBE,GAAY,MACZC,GAAY,MAKZC,GAA2B,sBAgC3BC,GAAoB,SAAC,GAAwD,IAAtDpF,EAAqD,EAArDA,gBAAiBqF,EAAoC,EAApCA,mBAAoB51C,EAAgB,EAAhBA,UAC7Dvc,EAAiCuc,EAAjCvc,cAAeM,EAAkBic,EAAlBjc,cACjB8xD,EAA6C,CAAEC,YAAaF,GAVhCE,YACfjlC,QAAO,SAACklC,EAAKC,GAC5B,IAAQvyD,EAAiCuyD,EAAjCvyD,cAAeM,EAAkBiyD,EAAlBjyD,cACjBkyD,EAAU,QAACxyD,QAAD,IAACA,OAAD,EAACA,EAAeC,OAAhB,OAAwBK,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAeL,QACvD,MAAM,GAAN,mBAAWqyD,GAAQE,KACpB,IAAI1lC,QAAO,SAAC/uB,GAAD,QAAUA,KAMlB00D,EAAsB,QAACzyD,QAAD,IAACA,OAAD,EAACA,EAAeC,OAAhB,OAAwBK,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAeL,QAAQ6sB,QAAO,SAAC/uB,GAAD,QAAUA,KAG5F,MAFkE,CAAE+uD,mBAlCvBA,gBACTzT,QACjBvrB,MAAK,SAAChY,EAAGiY,GACxB,IAAM2kC,EAAQ58C,EAAEm3C,KACV0F,EAAQ5kC,EAAEk/B,KAEhB,OAAc,OAAVyF,EACO,EAGG,OAAVC,GACQ,EAGRD,IAAUC,EACH,EAGJrlC,WAAWolC,GAASplC,WAAWqlC,MAkBR7lC,QAAO,SAACyV,GACtC,IAAMqwB,EAA6B,OAAGH,QAAH,IAAGA,OAAH,EAAGA,EAAqBvlC,SAASqV,EAAKxkC,IACnEwwD,EAAwB,OAAG6D,QAAH,IAAGA,OAAH,EAAGA,EAAwBllC,SAASqV,EAAKxkC,IAEvE,OAAI60D,EAAsCrwB,EACrCgsB,OAAL,EAAsChsB,MAKjCswB,GAAkB,SAAC,GAAc,IAAZn4C,EAAW,EAAXA,KAC9B,IAAKA,EAAM,OAAO,KAClB,IAAMo4C,EAAqB,OAAJp4C,QAAI,IAAJA,KAAMuyC,KAAN,iBAAgBvyC,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAMuyC,KAAtB,KAAgC,KACvD,OAAO6F,EAAc,UAAMA,EAAN,mBAAwBp4C,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMxa,MAA9B,iBAA0Cwa,QAA1C,IAA0CA,OAA1C,EAA0CA,EAAMxa,OA4EnE6yD,GAAqB,SAAC,GAA6B,IAA3BC,EAA0B,EAA1BA,OAAQxzD,EAAkB,EAAlBA,YAQlC,OAPuBwzD,EAAO5lC,QAAO,SAACklC,EAAKC,GACvC,OAAIA,EAAIF,YACE,GAAN,mBAAWC,GAAX,YAAmBC,EAAIF,cAEpBC,IACR,IAEmBr/C,MAAK,SAACmvB,GAAD,OAAWA,EAAM5iC,cAAgBA,MAInDyzD,GAAiC,SAAC,GAAD,UAAGC,EAAH,EAAGA,MAAH,cAAeA,QAAf,IAAeA,GAAf,UAAeA,EAAOjgD,MAAK,SAACkgD,GAAD,OA/InC,IA+I6CA,EAAK1zD,iBAA1C,iBAAe,EAA+DuzD,cAA9E,iBAAe,EAAuE//C,MAAK,SAAC1S,GAAD,OAA4B,IAAjBA,EAAMd,iBAA5G,aAAe,EAA4G4yD,aAOnKe,GAA+B,SAAC,GAAwG,IAiBtIC,EACAC,EAlBgCC,EAAqG,EAArGA,cAAeP,EAAsF,EAAtFA,OAAQz2C,EAA8E,EAA9EA,UAA8E,IAAnEi3C,sBAAmE,MAAlD,KAAkD,MAA5CC,qCAA4C,SACnIC,EAAwB,OAAGn3C,QAAH,IAAGA,OAAH,EAAGA,EAAWm3C,yBACtCC,EAAwB,OAAGp3C,QAAH,IAAGA,OAAH,EAAGA,EAAWo3C,yBAEtCC,EAAyBb,GAAmB,CAAEC,SAAQxzD,YAAak0D,IACnEG,EAAyBd,GAAmB,CAAEC,SAAQxzD,YAAam0D,IAEnEG,EAAoB,SAACh1B,GAOvB,OALI00B,GAAkBC,EACb,iBAAaD,EAAb,YAA+B10B,GAE5BkzB,IAOhB,QAAQ,GACJ,KAA2B,OAAtB4B,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBG,kBAAxB,OAA0CF,QAA1C,IAA0CA,OAA1C,EAA0CA,EAAwBE,iBACnEV,EAAyB,CAAEnzD,KAAM6xD,GAAW5xD,OAAQ,MACpDmzD,EAAyB,CAAEpzD,KAAM4zD,EAAkB,GAAI3zD,OAAQ,MAC/D,MAEJ,KAA2B,OAAtB0zD,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBE,kBAAxB,OAA0CH,QAA1C,IAA0CA,OAA1C,EAA0CA,EAAwBG,iBACnEV,EAAyB,CAAEnzD,KAAM4zD,EAAkB,GAAI3zD,OAAQ,MAC/DmzD,EAAyB,CAAEpzD,KAAM6xD,GAAW5xD,OAAQ,MACpD,MAEJ,QACIkzD,EAAyB,CAAEnzD,KAAM4zD,EAAkB,GAAI3zD,OAAQ,MAC/DmzD,EAAyB,CAAEpzD,KAAM4zD,EAAkB,GAAI3zD,OAAQ,MAIvE,MAAO,CACHozD,gBACAF,yBACAC,2BAIKU,GAAoC,SAAC,GAAkH,IAsB5JC,EAtB4CC,EAA+G,EAA/GA,UAAWC,EAAoG,EAApGA,cAAe/zB,EAAqF,EAArFA,QAASg0B,EAA4E,EAA5EA,YAAa9jB,EAA+D,EAA/DA,qBAAsB+jB,EAAyC,EAAzCA,WAAYC,EAA6B,EAA7BA,YAAa/3C,EAAgB,EAAhBA,UACvIvc,EAAkDuc,EAAlDvc,cAAeM,EAAmCic,EAAnCjc,cAAeyzD,EAAoBx3C,EAApBw3C,gBAChCQ,EAA4BF,GAA8B,IAAhBD,GAAqB9jB,EAE/DkkB,EAAa3B,GAAgB,CAAEn4C,KAAM1a,IACrCy0D,EAAa5B,GAAgB,CAAEn4C,KAAMpa,IAE3C,EA7H6C,SAAC,GAA6E,IAA3E8zD,EAA0E,EAA1EA,YAAa9jB,EAA6D,EAA7DA,qBAAsBokB,EAAuC,EAAvCA,gBAAiBC,EAAsB,EAAtBA,gBAMpG,MAAO,CAAEC,UAJW,IAAhBR,GAAqB9jB,IAAyBokB,GAAqBC,EAAkB5C,GAAY2C,EAIjFG,UAFA,IAAhBT,GAAqB9jB,IAAyBqkB,GAAqBD,EAAkB3C,GAAY4C,GAyHpEG,CAAkC,CAAEV,cAAa9jB,uBAAsBokB,gBAAe,OAAE10D,QAAF,IAAEA,OAAF,EAAEA,EAAeC,OAAQ00D,gBAAe,OAAEr0D,QAAF,IAAEA,OAAF,EAAEA,EAAeL,SAAxK20D,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,UAKbtB,EAAgB,CAClBnzB,UACAkoB,gBAAiB,CACbsM,UAAWA,IANSA,GAxMA,IAwMab,EAAmD,GAAZhC,IAOxE8C,UAAWA,IANSA,GAzMA,IAyMad,EAAmD,GAAZhC,KAQ5EmC,YACAC,iBAIJ,QAAQ,GACJ,KAAKI,EAIL,KA1NwB,IA0NnBR,EACDE,EAAmBlC,GACnB,MAEJ,KA/NwB,IA+NnBgC,EACD,IAAI/zD,IAAiBM,EAGjB,OAAO8yD,GAA6B,CAAEG,gBAAeP,OAAQsB,EAAa/3C,cAF1E03C,EAAmBlC,GAIvB,MAEJ,QACIkC,EAAmBjC,GAO3B,MAAO,CAAEuB,gBAAeF,uBAHO,CAAEnzD,KAAMF,EAAgBw0D,EAAaP,EAAkB9zD,OAAM,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAeG,QAG7DmzD,uBAFjB,CAAEpzD,KAAMI,EAAgBm0D,EAAaR,EAAkB9zD,OAAM,OAAEG,QAAF,IAAEA,OAAF,EAAEA,EAAeH,UC/NpG40D,GAAc,WACvB,MAA0BtqD,qBAA1B,mBAAOkoB,EAAP,KAAcqiC,EAAd,KACMC,EAAyB,WAC3BD,EAASh4D,OAAOk4D,aAWpB,OARAtqD,qBAAU,WAGN,OAFAoqD,EAASh4D,OAAOk4D,YAChBl4D,OAAO+5B,iBAAiB,SAAUk+B,GAC3B,WACHj4D,OAAOg6B,oBAAoB,SAAUi+B,MAE1C,IAEItiC,GAlCS,KAkCeA,GAjCd,MAoCNwiC,GAlCK,WAChB,MAA0B1qD,qBAA1B,mBAAOkoB,EAAP,KAAcqiC,EAAd,KACMC,EAAyB,WAC3BD,EAASh4D,OAAOk4D,aAWpB,OARAtqD,qBAAU,WAGN,OAFAoqD,EAASh4D,OAAOk4D,YAChBl4D,OAAO+5B,iBAAiB,SAAUk+B,GAC3B,WACHj4D,OAAOg6B,oBAAoB,SAAUi+B,MAE1C,IAEItiC,GAjBS,KCadyiC,GAAW,CACbl1D,KAAM8xD,GACN7xD,OAAQ,GAGCk1D,GAAsB,SAAC,GAU7B,IATHvI,EASE,EATFA,gBACAqG,EAQE,EARFA,KACAmB,EAOE,EAPFA,YACAgB,EAME,EANFA,YACAC,EAKE,EALFA,YACAC,EAIE,EAJFA,cACAllB,EAGE,EAHFA,qBACAlH,EAEE,EAFFA,WACAirB,EACE,EADFA,WAEQrB,EAAWG,EAAXH,OACFyC,EAAWV,KACjB,EAAkDtqD,mBAAS,GAA3D,mBAAOirD,EAAP,KAA0BC,EAA1B,KACA,EAAoDlrD,mBAAS,IAA7D,mBAAOmrD,EAAP,KAA2BC,EAA3B,KACA,EAAkDprD,mBAAS,IAA3D,mBAAOqrD,EAAP,KAA0BC,EAA1B,KAEMC,EAAe,kBACjBhD,GACIA,EACKp6C,KAAI,SAACrY,GAAW,IAAD,EACI6zD,EAAgB7zD,EAAxBd,OAER,iBAAOc,EAAM8xD,mBAAb,aAAO,EAAmBz5C,KAAI,SAAC2D,GAC3B,IAAQ5c,EAAsD4c,EAAtD5c,UAAWE,EAA2C0c,EAA3C1c,SAAUG,EAAiCuc,EAAjCvc,cAAeM,EAAkBic,EAAlBjc,cAC5C,EF6CS,SAAC,GAAyD,IAAD,IAAtD21D,EAAsD,EAAtDA,aAAcC,EAAwC,EAAxCA,aAAcr2D,EAA0B,EAA1BA,SAAUF,EAAgB,EAAhBA,UAChEw0D,EAAa,OAAGt0D,QAAH,IAAGA,OAAH,EAAGA,EAAUC,UAC1ByxD,EAAa,0BACb2C,EAAYv0D,GAAairB,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQipC,IAEvE4E,GACM,OAAZD,QAAY,IAAZA,OAAA,EAAAA,EAAcv2D,YAAairB,GAAgB,CAAEE,QAASorC,EAAav2D,UAAW2oB,OAAQipC,IAKtF,MAAO,CAAE6E,kBAJiBH,GAAgBE,EAAwBA,EAAwBjC,EAI9DmC,sBAF5BJ,GAAY,OAAIC,QAAJ,IAAIA,GAAJ,UAAIA,EAAcr2D,gBAAlB,OAAI,EAAwBC,UAAxC,OAAoDo2D,QAApD,IAAoDA,GAApD,UAAoDA,EAAcr2D,gBAAlE,aAAoD,EAAwBC,UAAYq0D,GEtDfmC,CAAkB,CAAE/5C,YAAW1c,WAAUF,cAAtFy2D,EAAR,EAAQA,kBAAmBC,EAA3B,EAA2BA,sBAErB5nB,GAAc6B,GAAwC,IAAhB8jB,EACtCmC,IAAmB,OAACv2D,QAAD,IAACA,KAAeG,WAAU,OAACG,QAAD,IAACA,KAAeH,QAE7DigC,EFyEU,SAAC,GAAwD,IAAtD0sB,EAAqD,EAArDA,gBAAiBvwC,EAAoC,EAApCA,UAAW41C,EAAyB,EAAzBA,mBACnE,OAAKrF,EACkBoF,GAAkB,CAAEpF,kBAAiBqF,qBAAoB51C,cAE1D3D,KAAI,SAAC8B,GACvB,IAAMlU,EAAQqsD,GAAgB,CAAEn4C,SAEhC,MAAO,CACH3c,GAAI2c,EAAK3c,GACTyI,YARqB,CAAE45B,QAAS,IE1EJo2B,CAAyB,CAAEj6C,YAAWuwC,kBAAiBqF,mBAAoB5xD,EAAM8xD,cACjG,EAA0E2B,GAAkC,CAAEE,UAAWkC,EAAmBjC,cAAekC,EAAuBj2B,UAASg0B,cAAa9jB,uBAAsB+jB,aAAYC,cAAa/3C,cAA/Og3C,EAAR,EAAQA,cAAeF,EAAvB,EAAuBA,uBAAwBC,EAA/C,EAA+CA,uBAMzCmD,EFOM,SAAC,GAA8D,IAA5DC,EAA2D,EAA3DA,iBAAkBC,EAAyC,EAAzCA,iBAAkBC,EAAuB,EAAvBA,iBACvE,OAAKD,GAAqBC,EAEnB,CAAE/X,YAAa6X,GAF6B,GERLG,CAAqB,CAAEzC,cAAasC,iBAJrC,WACrBnB,EAAYh5C,IAGgEo6C,iBAAkB32D,EAAe42D,iBAAkBt2D,IAC7Hw2D,EFYG,SAAC,GAAyF,IAAvFv6C,EAAsF,EAAtFA,UAAW+4C,EAA2E,EAA3EA,YAAajC,EAA8D,EAA9DA,uBAAwBC,EAAsC,EAAtCA,uBAAwBlzB,EAAc,EAAdA,QAChGw0B,EAAyBx0B,EAAzBw0B,UAAWC,EAAcz0B,EAAdy0B,UACbkC,EAAUnC,IAAc7C,IAAa8C,IAAc9C,GAEzD,OAA0B,OAAtBsB,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBnzD,QAAS6xD,KAAmC,OAAtBuB,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBpzD,QAAS6xD,IAAagF,EACrF,GAGJ,CAAEC,YAAa,kBAAM1B,EAAY/4C,KEpBM06C,CAAkB,CAAE16C,YAAWkyB,aAAY6B,uBAAsBglB,cAAajC,yBAAwBC,yBAAwBlzB,QAAO,OAAEmzB,QAAF,IAAEA,OAAF,EAAEA,EAAejL,kBAEhL,OAAIhY,EAEI,cAAC,WAAD,qCACIlH,WAAYA,EACZ8tB,YAAazB,GACTlC,GAHR,IAIIgD,iBAAkBA,EAClBv2D,cAAeqzD,EACf/yD,cAAegzD,EACf6D,WAAW,iBACPV,GACAK,IAKZroB,EAEI,cAAC,WAAD,aACIrF,WAAYA,EACZ8tB,YAAazB,EACbc,kBAAgB,EAChBv2D,cAAeo1D,GACf90D,cAAe80D,GACfjB,cAAa,OAAEt0D,QAAF,IAAEA,OAAF,EAAEA,EAAUC,UACzBo0D,UAAWkC,GACPU,IAMZ,cAAC,WAAD,yBACI1tB,WAAYA,EACZ8tB,YAAazB,GACTlC,GAHR,IAII6D,gBAAc,EACd11B,SAAU,SAAC6iB,GAAD,OAAkBiR,EAAc,CAAEjR,eAAchoC,eAC1D46C,WAAW,iBACPL,WAMhClsD,qBAAU,WAAO,IAAD,EACNysD,EAAYrB,IACZsB,EAAa,OAAGtE,QAAH,IAAGA,GAAH,UAAGA,EAChBp6C,KAAI,SAACrY,GAAD,MAAY,CACdL,KAAMK,EAAML,gBAFD,aAAG,EAIhBm5C,MAAMqc,EAAmBA,EF5GP,GE6GlB6B,EAAc,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAWhe,MAAMqc,EF7GhB,EE6GsDA,GAE9EG,EAAsByB,GACtBvB,EAAqBwB,KACtB,CAACzK,EAAiBqG,EAAMsC,EAAUnlB,EAAsB0iB,EAAQ0C,IAYnE,MAAO,CACH2B,UAAWvB,EACX0B,WAAY5B,EACZ6B,0BAb8B,kBAAM9B,EAAqBD,EFpHxC,IEkIjBgC,2BAb+B,kBAAM/B,EAAqBD,EFrHzC,IEmIjBiC,mBAXEjC,EFvHsB,KEuHtB,OAAyC1C,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAQ10D,UACnDo3D,KAA4B,OAAN1C,QAAM,IAANA,OAAA,EAAAA,EAAQ10D,QFzHb,IE0HX,OAAN00D,QAAM,IAANA,OAAA,EAAAA,EAAQ10D,QFzHgB,EEmIxBs5D,kBAR4C,IAAtBlC,IClHxBN,GAAW,CACbl1D,KAAM8xD,GACN7xD,OAAQ,GAGC03D,GAA8B,SAAC,GAMrC,IALH/K,EAKE,EALFA,gBACAqG,EAIE,EAJFA,KACAmB,EAGE,EAHFA,YACAhkB,EAEE,EAFFA,qBACA+jB,EACE,EADFA,WAEQrB,EAAWG,EAAXH,OACFyC,EAAWV,KACjB,EAAkDtqD,mBAAS,GAA3D,mBAAOirD,EAAP,KAA0BC,EAA1B,KACA,EAAoDlrD,mBAAS,IAA7D,mBAAOmrD,EAAP,KAA2BC,EAA3B,KACA,EAAkDprD,mBAAS,IAA3D,mBAAOqrD,EAAP,KAA0BC,EAA1B,KAaMC,EAAe,yBACjBhD,QADiB,IACjBA,OADiB,EACjBA,EAAQp6C,KAAI,SAACrY,GAAW,IAAD,EACH6zD,EAAgB7zD,EAAxBd,OAER,iBAAOc,EAAM8xD,mBAAb,aAAO,EAAmBz5C,KAAI,SAAC2D,EAAWgb,GACtC,MAA4Ghb,EAApG5c,iBAAR,MAAoB,KAApB,IAA4G4c,EAAlF1c,gBAA1B,MAAqC,KAArC,IAA4G0c,EAAjEvc,qBAA3C,MAA2D,KAA3D,IAA4Guc,EAA3Cjc,qBAAjE,MAAiF,KAAjF,IAA4Gic,EAArB/c,mBAAvF,MAAqG,GAArG,EACA,EHyD8B,SAAC,GAAyD,IAAD,IAAtDy2D,EAAsD,EAAtDA,aAAcC,EAAwC,EAAxCA,aAAcr2D,EAA0B,EAA1BA,SAAUF,EAAgB,EAAhBA,UAC7Ew0D,EAAa,OAAGt0D,QAAH,IAAGA,OAAH,EAAGA,EAAUC,UAC1ByxD,EAAa,WACbuG,EAAa,SACb5D,EAAYv0D,GAAairB,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQipC,IACvEwG,EAAYp4D,GAAairB,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQwvC,IAEvE3B,GACM,OAAZD,QAAY,IAAZA,OAAA,EAAAA,EAAcv2D,YAAairB,GAAgB,CAAEE,QAASorC,EAAav2D,UAAW2oB,OAAQipC,IAChFyG,GACM,OAAZ9B,QAAY,IAAZA,OAAA,EAAAA,EAAcv2D,YAAairB,GAAgB,CAAEE,QAASorC,EAAav2D,UAAW2oB,OAAQwvC,IAEhFG,EAAqBhC,GAAgB+B,EAAwBA,EAAwBD,EAI3F,MAAO,CAAEG,mBALkBjC,GAAgBE,EAAwBA,EAAwBjC,EAK9DiE,uBAF7BlC,GAAY,OAAIC,QAAJ,IAAIA,GAAJ,UAAIA,EAAcr2D,gBAAlB,OAAI,EAAwBC,UAAxC,OAAoDo2D,QAApD,IAAoDA,GAApD,UAAoDA,EAAcr2D,gBAAlE,aAAoD,EAAwBC,UAAYq0D,EAEnC8D,sBGzEuDG,CAA+B,CAAE77C,YAAW1c,WAAUF,cAAtJ,IAAQu4D,0BAAR,MAA6B,KAA7B,MAAmCC,8BAAnC,MAA4D,KAA5D,MAAkEF,0BAAlE,MAAuF,KAAvF,EAGMxpB,GAAc6B,GADoB,IAAhB8jB,EAElBmC,IAAmB,OAACv2D,QAAD,IAACA,KAAeG,WAAU,OAACG,QAAD,IAACA,KAAeH,QAC7Dk4D,EAtBW,SAACC,EAAY/5C,GACtC,IAAMg6C,EAAaD,EAAWE,WAAU,SAACj4D,GAAD,OAAWA,EAAMxC,KAAOwgB,KAEhE,OAAoB,IAAhBg6C,GAAoC,IAAfA,EACd,KAGWD,EAAWC,EAAa,GACzBr4D,KAcau4D,CAAqBzF,EAAQzyD,EAAMxC,IACvD26D,EAAoBnhC,EACpBohC,EAAa,yBAAqBn5D,GAClCo5D,EAAsC,OAAlB54D,GAA4C,OAAlBM,EAEpD,EHiMyC,SAAC,GAA0J,IAW5M2zD,EAXoDC,EAAuJ,EAAvJA,UAAWC,EAA4I,EAA5IA,cAAe4D,EAA6H,EAA7HA,UAAW3D,EAAkH,EAAlHA,YAAa9jB,EAAqG,EAArGA,qBAAsB+jB,EAA+E,EAA/EA,WAAYC,EAAmE,EAAnEA,YAAa/3C,EAAsD,EAAtDA,UAAW87C,EAA2C,EAA3CA,kBAAmBK,EAAwB,EAAxBA,kBAC/K14D,EAAkDuc,EAAlDvc,cAAeM,EAAmCic,EAAnCjc,cAAeyzD,EAAoBx3C,EAApBw3C,gBAIhCR,EAAgB,CAClBW,YACA6D,YACA5D,iBAIJ,QAAQ,GACJ,KAV8BE,GADG,IAAhBD,GAC2C9jB,EAc5D,KAlQwB,IAkQnByjB,EACDE,EAAmBlC,GACnB,MAEJ,KAvQwB,IAuQnBgC,EACD,IAAI/zD,IAAiBM,EAGjB,OAAO8yD,GAA6B,CAAEG,gBAAeP,OAAQsB,EAAa/3C,YAAW87C,oBAAmB5E,+BAA+B,IAFvIQ,EAAmBlC,GAIvB,MAEJ,QACIkC,EAAmBjC,GAI3B,IAIM6G,EAAsB,SAACC,EAAcC,EAAaC,GACpD,IAL4BC,EAa5B,OAPIH,EACQA,EAAa54D,KACd64D,EACF,iBAAaV,EAAb,aATmBY,EASsCP,EAR3D,CAACO,EAAaA,EAAa,EAAGA,EAAaA,EAAa,IAQsBD,IAEzE/E,GAQhB,MAAO,CAAEV,gBAAeF,uBAHO,CAAEnzD,KAAM24D,EAAoB74D,EAAeq4D,EAAmB,GAAIl4D,OAAM,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAeG,OAAQ8sD,KAAI,OAAEjtD,QAAF,IAAEA,OAAF,EAAEA,EAAeitD,KAAM7pC,MAAmB,OAAbpjB,QAAa,IAAbA,OAAA,EAAAA,EAAeC,SAAf,wBAAmCD,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAeC,SAGnKqzD,uBAFjB,CAAEpzD,KAAM24D,EAAoBv4D,EAAe+3D,EAAmB,GAAIl4D,OAAM,OAAEG,QAAF,IAAEA,OAAF,EAAEA,EAAeH,OAAQ8sD,KAAI,OAAE3sD,QAAF,IAAEA,OAAF,EAAEA,EAAe2sD,KAAM7pC,MAAmB,OAAb9iB,QAAa,IAAbA,OAAA,EAAAA,EAAeL,SAAf,wBAAmCK,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAeL,UGpP9Gi5D,CAA0C,CAAEhF,UAAWgE,EAAoB/D,cAAegE,EAAwBJ,UAAWE,EAAoB7D,cAAa9jB,uBAAsB+jB,aAAYC,cAAa/3C,YAAW87C,oBAAmBK,sBAApU,IAAQnF,qBAAR,MAAwB,GAAxB,MAA4BF,8BAA5B,MAAqD,GAArD,MAAyDC,8BAAzD,MAAkF,GAAlF,EAEA,OAAIhjB,EAEI,cAAC,eAAD,2BACQijB,GADR,IAEIgD,iBAAkBA,EAClBv2D,cAAeqzD,EACf/yD,cAAegzD,EACfqF,cAAeA,EACfC,kBAAmBA,KAK3BnqB,EAEI,cAAC,eAAD,CACI8nB,kBAAgB,EAChBv2D,cAAeo1D,GACf90D,cAAe80D,GACfjB,cAAa,OAAEt0D,QAAF,IAAEA,OAAF,EAAEA,EAAUC,UACzBo0D,UAAWgE,EACXH,UAAWG,EACXS,cAAeA,EACfC,kBAAmBA,IAM3B,cAAC,eAAD,2BACQrF,GADR,IAEIoF,cAAeA,EACfC,kBAAmBA,YAMvChuD,qBAAU,WAAO,IAAD,EACNysD,EAAYrB,IACZsB,EAAa,OAAGtE,QAAH,IAAGA,GAAH,UAAGA,EAChBp6C,KAAI,SAACrY,GAAD,MAAY,CACdL,KAAMK,EAAML,gBAFD,aAAG,EAIhBm5C,MAAMqc,EAAmBA,EHpGP,GGqGlB6B,EAAc,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAWhe,MAAMqc,EHrGhB,EGqGsDA,GAE9EG,EAAsByB,GACtBvB,EAAqBwB,KACtB,CAACzK,EAAiBqG,EAAMsC,EAAUnlB,EAAsB0iB,EAAQ0C,IAYnE,MAAO,CACH2B,UAAWvB,EACX0B,WAAY5B,EACZ6B,0BAb8B,kBAAM9B,EAAqBD,EH5GxC,IG0HjBgC,2BAb+B,kBAAM/B,EAAqBD,EH7GzC,IG2HjBiC,mBAXEjC,EH/GsB,KG+GtB,OAAyC1C,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAQ10D,UACnDo3D,KAA4B,OAAN1C,QAAM,IAANA,OAAA,EAAAA,EAAQ10D,QHjHb,IGkHX,OAAN00D,QAAM,IAANA,OAAA,EAAAA,EAAQ10D,QHjHgB,EG2HxBs5D,kBAR4C,IAAtBlC,ICpDfyD,GAtDW,SAAC,GAQpB,IAPHhG,EAOE,EAPFA,KACA7iB,EAME,EANFA,qBACA/oC,EAKE,EALFA,UACA8sD,EAIE,EAJFA,WACAC,EAGE,EAHFA,YACA8E,EAEE,EAFFA,SAEE,IADFC,oBACE,SACM9vD,EAAW4pD,EAAX5pD,OACR,EAA8HsuD,GAA4B,CAAE1E,OAAMmB,cAAa/qD,SAAQ+mC,uBAAsB+jB,eAArMgD,EAAR,EAAQA,UAAWG,EAAnB,EAAmBA,WAAYE,EAA/B,EAA+BA,2BAA4BD,EAA3D,EAA2DA,0BAA2BE,EAAtF,EAAsFA,iBAAkBC,EAAxG,EAAwGA,kBAElG0B,EAAwB,cAAC,oBAAD,CAAmBF,SAAUA,EAAU/B,UAAWA,EAAWG,WAAYA,IAEjG+B,GACDH,GACG,eAACj7B,EAAA,EAAD,WACI,cAACA,EAAA,EAAD,CAAKW,SAAS,WAAW06B,KAAM,EAAG1kB,IAAK,EAAvC,SACK8iB,EACG,cAAChT,GAAA,EAAD,CAAYpyB,QAASklC,EAArB,SACI,cAAC,KAAD,MAEJ,OAER,cAACv5B,EAAA,EAAD,CAAKW,SAAS,WAAWiW,MAAO,EAAGD,IAAK,EAAxC,SACK6iB,EACG,cAAC/S,GAAA,EAAD,CAAYpyB,QAASilC,EAArB,SACI,cAAC,KAAD,MAEJ,UAMpB,OACI,cAACt5B,EAAA,EAAD,CAAKW,SAAS,WAAd,SACKv3B,EAAa,cAAC,GAAD,IACV,cAAC42B,EAAA,EAAD,UAESk7B,GAAgBhF,IAAiBgF,IAAiBhF,EAC/C,qCACKkF,EACAD,KAEL,UC+CbG,GAxFG,SAAC,GAeZ,IAdHnE,EAcE,EAdFA,YACAC,EAaE,EAbFA,YACAC,EAYE,EAZFA,cACArC,EAWE,EAXFA,KACArG,EAUE,EAVFA,gBACAxc,EASE,EATFA,qBACAopB,EAQE,EARFA,oBACAtwB,EAOE,EAPFA,WACA7hC,EAME,EANFA,UACA8sD,EAKE,EALFA,WACAC,EAIE,EAJFA,YACA8E,EAGE,EAHFA,SACA3F,EAEE,EAFFA,8BACA4F,EACE,EADFA,aAEM/lB,EAAQoE,eACNx3C,EAAiBizD,EAAjBjzD,KAAMqJ,EAAW4pD,EAAX5pD,OACd,EACI8rD,GAAoB,CAChBlC,OACAmB,cACAoF,sBACA5M,kBACAwI,cACAC,cACAC,gBACAjsD,SACA+mC,uBACAlH,aACAirB,eAZAgD,EAAR,EAAQA,UAAWG,EAAnB,EAAmBA,WAAYE,EAA/B,EAA+BA,2BAA4BD,EAA3D,EAA2DA,0BAA2BE,EAAtF,EAAsFA,iBAAkBC,EAAxG,EAAwGA,kBAexG,OACI,mCACKnE,EACG,cAAC,GAAD,CACIN,KAAMA,EACNkB,WAAYA,EACZ+E,SAAUA,EACV9E,YAAaA,EACbhkB,qBAAsBA,EACtB+oB,aAAcA,IAGlB,cAACl7B,EAAA,EAAD,CAAKuE,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,UAA5C,SACKt4B,EACG,cAAC,GAAD,IAEA,eAAC42B,EAAA,EAAD,CAAKwN,GAAI,EAAGjJ,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAUwB,OAAnD,UACI,eAAC/S,GAAA,EAAD,CAAMC,WAAS,EAAC0lB,GAAI,EAAGtC,GAAI,EAA3B,UACI,cAACrjB,GAAA,EAAD,CAAME,MAAI,EAACG,GAAI,CAAE5D,SAAU,WAAYgW,IAAK,QAAUuD,GAAI,EAAGxV,GAAI,EAAjE,SACK+0B,EACG,cAAChT,GAAA,EAAD,CAAYpyB,QAASklC,EAArB,SACI,cAAC,KAAD,MAEJ,OAER,cAACr1B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,SACI,cAAC,aAAD,CACIH,GAAI,CAAEC,MAAO2Q,EAAMM,UAAU2B,MAAOzC,UAAW,UAC/C7e,SAAS,YACTvF,KAAK,eAHT,SAKKxuB,MAGT,cAACmiC,GAAA,EAAD,CAAME,MAAI,EAACG,GAAI,CAAE5D,SAAU,WAAYgW,IAAK,OAAQ1xC,QAAS,OAAQy8B,eAAgB,OAAS0Y,GAAI,EAAG1V,GAAI,EAAzG,SACK80B,EACG,cAAC/S,GAAA,EAAD,CAAYpyB,QAASilC,EAArB,SACI,cAAC,KAAD,MAEJ,UAGZ,cAAC,gBAAD,CAAe2B,SAAUA,EAAU5B,WAAYA,EAAYH,UAAWA,YC/E5FsC,GAAyB,SAAC,GAAmC,IAAjC7M,EAAgC,EAAhCA,gBAAiB8M,EAAe,EAAfA,SAC/C,IAAKA,EAAU,OAAO,EACtB,IAAQ1G,EAAU0G,EAAV1G,MAGF2G,ENsI+B,SAAC,GAAD,IAAGxH,EAAH,EAAGA,YAAH,cAAqBA,QAArB,IAAqBA,OAArB,EAAqBA,EAAajlC,QAAO,SAACklC,EAAKC,GAAS,IAAD,IACtFC,EAAU,QAACD,QAAD,IAACA,GAAD,UAACA,EAAKvyD,qBAAN,aAAC,EAAoBC,OAArB,OAA6BsyD,QAA7B,IAA6BA,GAA7B,UAA6BA,EAAKjyD,qBAAlC,aAA6B,EAAoBL,QACjE,MAAM,GAAN,mBAAWqyD,GAAQE,KACpB,IAAI1lC,QAAO,SAAC/uB,GAAD,QAAUA,KMzIG+7D,CAA0B,CAAEzH,YAD/BY,GAA+B,CAAEC,YAE/C6G,EAAa,OAAGjN,QAAH,IAAGA,OAAH,EAAGA,EAAiBhgC,QAAO,SAACpS,GAAD,cAAUm/C,QAAV,IAAUA,OAAV,EAAUA,EAAgB3sC,SAASxS,EAAK3c,OAEtF,OAAoB,OAAbg8D,QAAa,IAAbA,OAAA,EAAAA,EAAez7D,WAAf,OAA0BwuD,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAiBxuD,SAuIvC07D,GA1HC,SAAC,GAkBV,IAAD,IAYEC,EA7BJC,EAiBE,EAjBFA,kBACAC,EAgBE,EAhBFA,gBACAC,EAeE,EAfFA,mBACAC,EAcE,EAdFA,qBACAC,EAaE,EAbFA,kBACAhF,EAYE,EAZFA,YACAC,EAWE,EAXFA,YACAhuD,EAUE,EAVFA,UACAgzD,EASE,EATFA,eACAC,EAQE,EARFA,qBACAnqB,EAOE,EAPFA,iBACAyc,EAME,EANFA,gBACA2N,EAKE,EALFA,gBACAb,EAIE,EAJFA,SACAtpB,EAGE,EAHFA,qBACAklB,EAEE,EAFFA,cACAkF,EACE,EADFA,SAEMC,EAAuBpzD,IAAcqyD,EACrCgB,IAAgBhB,EAChBiB,EAAW9nD,GAAY,OAAC6mD,QAAD,IAACA,OAAD,EAACA,EAAUp0D,WAAY8M,IAC9C8mD,EAAWjE,KACX2F,EAAsB9vD,mBAAQ,kBAAM2uD,GAAuB,CAAE7M,kBAAiB8M,eAAa,CAACA,IAC5FmB,EAAuB/vD,mBAAQ,kBAlCT,SAAC,GAAkB,IAAhB4uD,EAAe,EAAfA,SAC/B,IAAKA,EAAU,OAAO,EACtB,IAAQ1G,EAAU0G,EAAV1G,MAEFb,EAAcY,GAA+B,CAAEC,UAC/C8H,EAAmB,OAAG3I,QAAH,IAAGA,OAAH,EAAGA,EAAavlC,QAAO,SAACsV,GAAD,gBAAW,UAACA,EAAMpiC,qBAAP,OAAC,EAAqBC,WAAU,UAACmiC,EAAM9hC,qBAAP,OAAC,EAAqBL,WAEjH,OAAuC,KAAb,OAAnB+6D,QAAmB,IAAnBA,OAAA,EAAAA,EAAqB18D,QA2Be28D,CAAwB,CAAErB,eAAa,CAACA,IAC7EtF,EAAW,OAAGsF,QAAH,IAAGA,GAAH,UAAGA,EAAU1G,aAAb,aAAG,EAAiB9lC,QAAO,SAACklC,EAAKC,GAC9C,OAAKA,EAAIS,OACH,GAAN,mBAAWV,GAAX,YAAmBC,EAAIS,SADCV,IAEzB,IAGH,QAAQ,GACJ,KAAMkI,EAIN,KAAMlqB,KAA0BwqB,GAAuBC,GAIvD,KAAKzqB,GAAwBD,EACzB4pB,GAAoB,EACpB,MAEJ,QACIA,GAAoB,EAI5B,IAAMiB,EAAeN,EACjB,eAACz8B,EAAA,EAAD,CAAKuE,GAAI,CAAE/P,MAAO,QAAlB,UACI,cAACwL,EAAA,EAAD,UACI,eAACkE,GAAA,EAAD,CAAMC,WAAS,EAAf,UACI,eAACD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG8D,GAAI,GAAtB,UACI,cAAC,aAAD,CAAYjE,GAAI,CAAEC,MAAO,QAAU1O,SAAS,YAAYvF,KAAK,aAA7D,gBACKmsC,QADL,IACKA,OADL,EACKA,EAAU71D,cAEf,cAAC,aAAD,CAAY09B,GAAI,CAAEC,MAAO,QAAU1O,SAAS,YAAYvF,KAAK,cAA7D,SACK+rC,IAEL,cAAC,SAAD,CAAQh2B,SAAU6L,GAAwBD,EAAkB7d,QAAS2nC,EAAiBlmC,SAAS,OAA/F,2BAIJ,eAACoO,GAAA,EAAD,CAAMK,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgBu5B,EAAW,QAAU,OAAS72B,MAAI,EAACM,GAAI,EAAG8D,GAAI,EAA3F,UACI,cAAC,SAAD,CAAQlC,SAAU6L,EAAsB5N,GAAI,CAAEkT,YAAawjB,EAAW,MAAQ,QAAU5mC,QAAS8nC,EAAmBrmC,SAAS,YAA7H,oBAGA,cAAC,SAAD,CAAQyO,GAAI,CAAEqM,SAAUqqB,EAAW,MAAQ,QAAU30B,SAAUw1B,EAAmBznC,QAAS8d,EAAuB+pB,EAAuBD,EAAoBnmC,SAAS,UAAtK,SACKqc,EAAuB,YAAc,oBAnB1D,OAyBKspB,QAzBL,IAyBKA,GAzBL,UAyBKA,EAAU1G,aAzBf,aAyBK,EAAiBt6C,KAAI,SAACu6C,GACnB,IAAIuH,IAAazI,IAA4C,IAAhBkB,EAAK1zD,QAAiB6wC,KAC/DoqB,IAAazI,IAA6B3hB,GAE9C,OACI,cAAC,GAAD,CAEI6iB,KAAMA,EACNrG,gBAAiBA,EACjB8M,SAAUA,EACVtE,YAAaA,EACbC,YAAaA,EACbC,cAAeA,EACfllB,qBAAsBA,EACtBlH,YAAU,EACVirB,WNrHc,IMqHFlB,EAAK1zD,OACjB8H,UAAWA,EACX6xD,SAAUA,EACV9E,YAAaA,GAZRnB,EAAKp1D,UAkB1B,eAACogC,EAAA,EAAD,CAAKwN,GAAI,EAAGjJ,GAAI,CAAEoQ,UAAW,SAAUnQ,MAAO,OAAQhQ,MAAO,SAA7D,UACI,cAAC,aAAD,CAAYsB,SAAS,YAAYvF,KAAK,eAAtC,sCAIA,cAAC,aAAD,CAAYs5B,GAAI,EAAGtC,GAAI,EAAGzxB,SAAS,YAAYvF,KAAK,cAApD,uHAIA,cAAC,SAAD,CAAQ+V,SAAU81B,EAAgB/nC,QAAS0nC,EAAmBx3B,GAAI,CAAE/P,MAAO,OAASsB,SAAS,UAA7F,4BAMR,OACI,cAACkK,EAAA,EAAD,CAAKuE,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,UAA5C,SACK86B,EAAuB,cAAC,GAAD,IAAcO,KCenCC,GA/IQ,SAAC,GAAuH,IAArHryB,EAAoH,EAApHA,OAAQ5nC,EAA4G,EAA5GA,QAAS2qC,EAAmG,EAAnGA,SAAUzJ,EAAyF,EAAzFA,MAAyF,IAAlFg5B,qBAAkF,SAA3DC,EAA2D,EAA3DA,oBAA2D,IAAtCC,+BAAsC,SACpIhoB,EAAQoE,eACN3wB,EAAgCD,GAAhCC,QAASC,EAAuBF,GAAvBE,UAAWC,EAAYH,GAAZG,QACpBy/B,EAAgB7/B,GACxB,EAAgDpc,qBAAhD,mBAAOo/B,EAAP,KAAyBC,EAAzB,KACA,EAAsDr/B,qBAAtD,mBAAO8wD,EAAP,KAA4BC,EAA5B,KACA,EAAwC/wD,qBAAxC,mBAAOgxD,EAAP,KAAqBC,EAArB,KACA,EAAgCjxD,qBAAhC,mBAAOkxD,EAAP,KAAiBC,EAAjB,KACA,EAAgCnxD,qBAAhC,mBAAOoxD,EAAP,KAAiBC,EAAjB,KAEA,EAKIxxB,aAAQ,CAAEH,cANQ,CAAEtqC,SAAU,GAAIF,UAAW,GAAIqF,YAAa,IAMrCulC,KAAM,QAJ/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQC,EAFzB,EAEyBA,YACrBzL,EAHJ,EAGIA,QACAsL,EAJJ,EAIIA,MAGEsxB,EAA0BJ,KAAQ,OAAKv5B,QAAL,IAAKA,OAAL,EAAKA,EAAOpiC,gBAAiB67D,KAAQ,OAAKz5B,QAAL,IAAKA,OAAL,EAAKA,EAAO9hC,eACnFkpC,GAAuB,OAAXoB,QAAW,IAAXA,OAAA,EAAAA,EAAa/qC,YAAb,OAAyB+qC,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAajrC,aAAtC,OAAmDirC,QAAnD,IAAmDA,OAAnD,EAAmDA,EAAa5lC,cAAe+2D,EAEjGnxD,qBAAU,WACN,GAAIw3B,EAAO,CACP,IASqB,IATjBziC,EAAY,GACZq8D,EAAgB,GAChBC,EAAmB,GAOvB,GALA,OAAI75B,QAAJ,IAAIA,KAAOziC,YACPA,EAAYirB,GAAgB,CAAEE,QAASsX,EAAMziC,YAC7C+7D,EAAgBt5B,EAAMziC,YAG1B,OAAIyiC,QAAJ,IAAIA,KAAOviC,SACPm8D,GAAgB,UAAA55B,EAAMviC,gBAAN,eAAgBC,aAAhB,UAA6BsiC,EAAMviC,gBAAnC,aAA6B,EAAgBE,mBAAoB,GACjF+pC,EAAoB1H,EAAMviC,UAG9B,OAAIuiC,QAAJ,IAAIA,KAAOp9B,cACPi3D,EAAmB75B,EAAMp9B,aAAe,GACxCw2D,EAAuBp5B,EAAMp9B,cAGjC,OAAIo9B,QAAJ,IAAIA,KAAOpiC,eACP47D,EAAW,OAACx5B,QAAD,IAACA,OAAD,EAACA,EAAOpiC,eAGvB,OAAIoiC,QAAJ,IAAIA,KAAO9hC,eACPw7D,EAAW,OAAC15B,QAAD,IAACA,OAAD,EAACA,EAAO9hC,eAGvBmqC,EAAM,CAAE9qC,YAAWE,SAAUm8D,EAAeh3D,YAAai3D,OAE9D,CAAC75B,IAEJ,IAAMuoB,EAAc,uCAAG,WAAOrf,GAAP,eAAAx1B,EAAA,yDACbyG,EADa,2BACI+uB,GADJ,IACgB9rC,YAAW,OAAE4iC,QAAF,IAAEA,OAAF,EAAEA,EAAO5iC,eAEnDorC,EAAY/qC,SAHG,gCAIYinC,GAAgBwE,EAAWzrC,UAJvC,OAIf0c,EAAU1c,SAJK,6BAMf0c,EAAU1c,SAAWgqC,EANN,OASfe,EAAY5lC,YACZuX,EAAUvX,YAAcsmC,EAAWtmC,YAEnCuX,EAAUvX,YAAcu2D,EAGxB3wB,EAAYjrC,UACZ4c,EAAU5c,UAAY4c,EAAU5c,UAAU2yC,cAE1C/1B,EAAU5c,UAAY87D,EAG1Bl/C,EAAUm4C,gBAAV,OAA4BiH,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAU17D,OACtCsc,EAAUo4C,gBAAV,OAA4BkH,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAU57D,OAEtC4rC,EAAStvB,GAxBU,4CAAH,sDA2Bd2/C,EAAgB,WAClBh7D,IACIsoC,IACAiB,EAAM,CAAE9qC,UAAW87D,EAAc57D,SAAQ,OAAEgqC,QAAF,IAAEA,OAAF,EAAEA,EAAkB/pC,UAAWkF,YAAau2D,IACrFK,EAAW,OAACx5B,QAAD,IAACA,OAAD,EAACA,EAAOpiC,eACnB87D,EAAW,OAAC15B,QAAD,IAACA,OAAD,EAACA,EAAO9hC,iBAS3B,OACI,cAACutC,GAAA,EAAD,CAAQ3P,SAAS,KAAKj9B,KAAM6nC,EAAQ5nC,QAASg7D,EAA7C,SACI,uBAAMrwB,SAAUrB,EAAamgB,GAA7B,UACI,eAAC5c,GAAA,EAAD,WACI,cAAC,aAAD,CAAYrL,GAAI,CAAEyT,cAAe,aAAczP,GAAI,GAAKzS,SAAUhN,EAASyH,KAAMg4B,EAAjF,SACK4U,EAA0B,mBAAqB,oBAEpD,eAACn9B,EAAA,EAAD,CAAKxL,MAAO,IAAZ,UACK2oC,GACG,cAAC,aAAD,CAAY50B,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMg4B,EAA9C,sEAIJ,eAACpC,GAAA,EAAD,CAAOje,QAAS,EAAhB,UACI,cAAC,GAAD,CAAgB81B,WAAS,EAACj8D,KAAK,YAAYsG,MAAM,aAAa4lC,YAAa,EAAGjN,QAASA,KACrFm8B,GAA2B,cAAC,GAAD,CAAUp7D,KAAK,WAAWsG,MAAM,iBAAiBmQ,QAASg0B,EAAO9qC,SAAUs/B,QAASA,KAC/Gm8B,GAA2B,cAAC,GAAD,CAAOp7D,KAAK,cAAcsG,MAAM,6BAA6BulC,WAAS,EAACC,QAAS,EAAG5M,WAAYuL,EAAO3lC,YAAam6B,QAASA,UAGhKi8B,GAAiBC,IAAwBC,GACtC,qCACI,cAAC,aAAD,CAAYt1C,GAAI,EAAGiO,SAAUjN,EAAW0H,KAAMg4B,EAA9C,mBAGA,eAACvoB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,eAACimB,GAAA,EAAD,CAAOje,QAAS,EAAG3D,GAAI,CAAE8V,KAAM,GAA/B,UACI,cAAC/Y,GAAA,EAAD,CAAW08B,WAAS,EAAC13B,UAAQ,EAACj+B,MAAM,YAAY+D,MAAK,OAAEsxD,QAAF,IAAEA,OAAF,EAAEA,EAAU37D,OACjE,cAACu/B,GAAA,EAAD,CAAW08B,WAAS,EAAC13B,UAAQ,EAACj+B,MAAM,YAAY+D,MAAK,OAAEoxD,QAAF,IAAEA,OAAF,EAAEA,EAAUz7D,UAErE,cAAC0kD,GAAA,EAAD,CAAYliB,GAAI,CAAEkE,GAAI,GAAKpU,QAlClC,WACjBopC,EAAYC,GACZC,EAAYH,IAgCY,SACI,cAAC,WAAD,CAAUjtC,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,6BAM/D,eAAC3jB,GAAA,EAAD,CAAezL,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,SAAU8sB,aAAc,GAA9E,UACI,cAAC,SAAD,CAAQ14B,SAAUjN,EAAWwL,QAAS0pC,EAAtC,oBAGA,cAAC,SAAD,CAAQjoC,SAAUlN,EAAS0d,UAAW+E,EAAWt2B,KAAK,SAAtD,mCCzFLkpD,GAtDS,SAAC,GAA0E,IAAxEjQ,EAAuE,EAAvEA,eAAgBjrD,EAAuD,EAAvDA,QAASD,EAA8C,EAA9CA,KAAM4qC,EAAwC,EAAxCA,SAAUugB,EAA8B,EAA9BA,wBAEhE,EAMI9hB,aAAQ,CAAEH,cAPQ,CAAElqC,OAAQ,IAOHsqC,KAAM,QAL/BC,EADJ,EACIA,aACAE,EAFJ,EAEIA,UACaC,EAHjB,EAGID,UAAaC,OACbxL,EAJJ,EAIIA,QACAsL,EALJ,EAKIA,MAGJ7/B,qBAAU,WACF8/B,EAAU6hB,oBACV9hB,EAAM,CAAExqC,OAAQ,OAErB,CAACyqC,EAAWD,IAMf,OACI,cAAC,GAAD,CAAqBtpC,MAAM,cAAcD,QAASA,EAASD,KAAMA,EAAM4qC,SAAUA,EAAjF,SACI,uBAAMA,SAAUrB,GANC,SAACgiB,GACtB3gB,EAAS2gB,EAAOvsD,WAKZ,UACI,eAAC8tC,GAAA,EAAD,CAAe0e,UAAQ,EAAvB,UACKL,GAA2B,cAAC,GAAD,MACzBD,EAAe7tD,QACd,qCACI,cAAC4kC,GAAA,EAAD,CAAYgL,MAAM,SAASwe,cAAY,EAACC,aAAa,OAArD,oDAGA,cAAC,GAAD,CACIzsD,KAAK,SACLsG,MAAM,OACN45B,QAAS+rB,EACTpkD,QAAQ,aACRg8B,aAAW,EACX5E,QAASA,EACTC,WAAYuL,EAAOjwB,KACnBhb,YAAU,EACVskC,WAAW,mBAK3B,cAACmK,GAAA,EAAD,CAAezL,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,UAAtD,SACI,cAAC3C,GAAA,EAAD,CAAQC,QAAQ,OAAOyvB,WAAS,EAAC15C,KAAK,SAAtC,4BC7CdmpD,GAAsB,SAAClrC,GACzB,IAAQjwB,EAA2CiwB,EAA3CjwB,QAASD,EAAkCkwB,EAAlClwB,KAAM4qC,EAA4B1a,EAA5B0a,SAAUhlC,EAAkBsqB,EAAlBtqB,cAEjC,EAKIyjC,aAAQ,CAAEH,cANQ,CAAEmyB,aAAc,IAMT/xB,KAAM,QAJ/BC,EADJ,EACIA,aACaG,EAFjB,EAEID,UAAaC,OACbxL,EAHJ,EAGIA,QACAsL,EAJJ,EAIIA,MAQE8xB,EAAgB11D,EAAgB2L,GAAsB,CAACA,GAAoB,IAC3EqE,EAAUhQ,EAAgB,0DAA4D,4CAE5F,OACI,cAAC,GAAD,CAAqB1F,MAAM,kBAAkBD,QAASA,EAASD,KAAMA,EAAM4qC,SAAUA,EAArF,SACI,uBAAMA,SAAUrB,GAVC,SAACgiB,GACtB3gB,EAAS2gB,EAAO8P,cAChB7xB,OAQI,UACI,eAACsD,GAAA,EAAD,CAAe0e,UAAQ,EAAvB,UACI,cAACvpB,GAAA,EAAD,CAAYwpB,cAAY,EAACC,aAAa,OAAtC,SACK91C,IAEL,cAAC,GAAD,CACI3W,KAAK,eACLsG,MAAM,SACN45B,QAASm8B,EACTx0D,QAAQ,iBACRg8B,aAAW,EACX5E,QAASA,EACTC,WAAYuL,EAAO2xB,aACnB58D,YAAU,EACVskC,WAAW,gBAGnB,cAACmK,GAAA,EAAD,CAAezL,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,UAAtD,SACI,cAAC3C,GAAA,EAAD,CAAQC,QAAQ,OAAOyvB,WAAS,EAAC15C,KAAK,SAAtC,4BAapBmpD,GAAoBtpC,aAApB,eACOzxB,GAGQ+6D,UCkCAG,GAnFM,SAACrrC,GAClB,IAAQwmB,EAAqFxmB,EAArFwmB,UAAWC,EAA0EzmB,EAA1EymB,UAAWrwC,EAA+D4pB,EAA/D5pB,UAAWswC,EAAoD1mB,EAApD0mB,OAAQC,EAA4C3mB,EAA5C2mB,aAAjD,EAA6F3mB,EAA9B4mB,yBAA/D,SACMzE,EAAQoE,eACd,EAAkCjtC,mBAAS4a,IAA3C,mBAAO2yB,EAAP,KAAkBC,EAAlB,KACA,EAA0CxtC,mBAASotC,GAAnD,mBAAOK,EAAP,KAAsBC,EAAtB,KACM9E,EAAWyE,EACT9wB,EAAcF,GAAdE,UACA2/B,EAAwB9/B,GAShC,OACI,cAAC4f,GAAA,EAAD,CAAO/D,GAAI,CAAEgE,GAAI,EAAG0Q,UAAW,OAAQxX,gBAAiB,eAAxD,SACI,cAAC6Y,GAAA,EAAD,UACKlxC,EACG,cAAC,GAAD,IAEA,eAACmxC,GAAA,EAAD,CACIhW,GAAI,CAAEqM,SAAU,IAAK0tB,eAAgB,WAAYC,cAAe,WAChE,kBAAgB,aAChBhuC,KAAK,QAHT,UAKI,cAACiqB,GAAA,EAAD,UACI,cAAC,KAAD,UACKhB,EAAU/+B,KAAI,SAACggC,EAAUrhB,GACtB,IArBL2hB,EAqBWyjB,EAAyB,IAAVplC,EAErB,OACI,cAACshB,GAAA,EAAD,CACInW,GAAI,CAAE+Q,OAAQ,OAAQ1tB,GAAI,OAE1BmoB,MAAOyuB,EAAe,OAAS,SAC/B3uB,QAAQ,SACR8K,cAAeZ,IAAkBU,EAAS76C,IAAKi6C,EALnD,SAOI,cAACe,GAAA,EAAD,CACItU,SAAUsT,EACViB,cAAeJ,EAASpyC,MACxBk6B,OAAQwX,IAAkBU,EAAS76C,GACnCk7C,UAAWf,IAAkBU,EAAS76C,GAAKi6C,EAAY3yB,GACvDmN,SApCjB0mB,EAoC4CN,EAAS76C,GApCxC,SAACg2B,GACrCA,EAAMoD,iBAEN8gB,EADoBC,IAAkBgB,GAAYlB,IAAc3yB,GACrCA,GAAgBA,IAC3C8yB,EAAiBe,KAiCuBxW,GAAI,CAAE2V,IAAKskB,GAfC,QAShB,SAQI,qCACI,cAAC,aAAD,CAAY1oC,SAAUjN,EAAW0H,KAAMi4B,EAAvC,SACK/N,EAASpyC,QAEG,wBAAhBoyC,EAAS76C,IACN,cAAC,mBAAD,CAAkB4kC,MAAO2Q,EAAMM,UAAU2B,MAAO7mB,KAAM,KAEzC,wBAAhBkqB,EAAS76C,IACN,cAAC,mBAAD,CAAkB4kC,MAAO2Q,EAAMM,UAAU2B,MAAO5iB,MAAO,GAAIC,OAAQ,WArB1EgmB,EAAS76C,WA8BlC,cAACq7C,GAAA,EAAD,UACKxB,GACGA,EAAU9pB,KAAKuB,GAAc2oB,EAAWE,IAAgBt/B,KAAI,SAAC5C,EAAMuhB,GAC/D,IAAMxvB,EAAO,gBAAYwvB,GACzB,OAAO,cAAC8b,EAAD,CAAwBiG,QAAStjC,EAAMjO,QAASA,GAAjCiO,EAAKjY,iBCvFhD,OAA0B,2CCQnC6+D,GAAc,SAACzrC,GACjB,IAAQ3yB,EAAgD2yB,EAAhD3yB,SAAUyE,EAAsCkuB,EAAtCluB,YAAagtB,EAAyBkB,EAAzBlB,MAA/B,EAAwDkB,EAAlBzC,YAAtC,MAA6C,OAA7C,EAMA,OAAIlwB,GAAYyE,EACL,cAAC,GAAD,CAASyrB,KAAMA,EAAM4D,KAAMuqC,GAAU54C,IAAG,kBAAahhB,GAAegtB,MAAOA,EAAOsC,WAAS,EAACC,QALnF,WAChB9F,GAAYluB,EAAUyE,MAMnB,MAOX25D,GAAY7pC,aAAZ,epGsC2C,CACvCv0B,SAAU,GACVyE,YAAa,GACbgtB,MAAO,KoGrCI2sC,UCJAE,GAdG,SAAC,GAAsE,IAApEC,EAAmE,EAAnEA,IAAKnzC,EAA8D,EAA9DA,WAA8D,IAAlDozC,kBAAkD,aAA9BC,uBAA8B,SAC9E3pB,EAAQoE,eACRwlB,EAAmBD,EAAkB,cAAC,aAAD,CAAYt6B,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAxF,SAAuHk2C,IAAoB,cAAC,KAAD,CAAe5/B,QAAS6/B,EAAa,eAAiB,QAAtD,SAAgED,IAEtP,OAAOnzC,EACH,eAACuU,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASwB,eAAgBo9B,EAAkB,SAAW,KAArF,UACKC,EACD,cAAC,GAAD,CAAS5qC,KAAMuH,GAAcnL,KAAK,OAAOzK,IAAI,WAAWgM,MAAO,CAAE0lB,WAAY,EAAGgX,aAAc,QAGlGuQ,G,+BCgDOC,GA5DE,SAAC,GAA2E,IAAzE/8B,EAAwE,EAAxEA,QAASg9B,EAA+D,EAA/DA,iBAAkBC,EAA6C,EAA7CA,YAAaC,EAAgC,EAAhCA,YAAa12D,EAAmB,EAAnBA,aACrE,EAAgC6D,mBAAS,MAAzC,mBAAO8yD,EAAP,KAAiBC,EAAjB,KACQC,EAAqEpsD,GAAvDqsD,EAAuDrsD,GAAzCssD,EAAyCtsD,GAAvBusD,EAAuBvsD,GACvEpQ,EAAOkxB,QAAQorC,GAKfM,EAAuB,SAAC9pC,GAC1BqpC,EAAiBrpC,EAAMhP,OAAOxa,OAC9BizD,EAAY,OAOVM,EAAkBl3D,EAClBw5B,EAAQtT,QAAO,SAACsU,GAAD,OAAYA,EAAOrjC,KAAO6/D,KACzCx9B,EAAQtT,QAAO,SAACsU,GAAD,OAAYA,EAAOrjC,KAAO4/D,KAE/C,OACI,gCACI,cAAC/Y,GAAA,EAAD,CACI,aAAW,OACX7mD,GAAG,mBACH,gBAAekD,EAAO,iBAAc88D,EACpC,gBAAe98D,EAAO,YAAS88D,EAC/B,gBAAc,OACdvrC,QAxBQ,SAACuB,GACjBypC,EAAYzpC,EAAMiqC,gBAiBd,SAQI,cAAC,KAAD,MAEJ,cAACC,GAAA,EAAD,CACIlgE,GAAG,YACHmgE,cAAe,CACX,kBAAmB,oBAEvBX,SAAUA,EACVt8D,KAAMA,EACNC,QA3BU,WAClBs8D,EAAY,OA2BJ9V,WAAY,CACRz3B,MAAO,CAAE47B,UAAWC,MAT5B,SAYKgS,EAAgBllD,KAAI,SAACwoB,GAAD,OACjB,cAACgD,GAAA,EAAD,CACIK,SAAWrD,EAAOrjC,KAAO0/D,GAAgBJ,GAAiBj8B,EAAOrjC,KAAO2/D,GAAgBJ,EAExF/yD,MAAO62B,EAAOrjC,GACdy0B,QAASqrC,EAJb,SAMKz8B,EAAOp8B,aAJHo8B,EAAOrjC,aC7B9BogE,GAAe,SAAC,GASf,IAAD,IARFC,mBAQE,MARY,GAQZ,EAPF72D,EAOE,EAPFA,UACA82D,EAME,EANFA,iBACAC,EAKE,EALFA,aACAC,EAIE,EAJFA,aACAC,EAGE,EAHFA,qBAGE,IAFFp1B,kBAEE,SADFq1B,EACE,EADFA,gBAEMnrB,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA4oC,EAAiB/oC,GACjB63C,EAA+ErtD,GAArEosD,EAAqEpsD,GAAvDqsD,EAAuDrsD,GAAzCssD,EAAyCtsD,GAAvBusD,EAAuBvsD,GACvF,EAA8B5G,mBAAS,IAAvC,mBAAOojB,EAAP,KAAgB8wC,EAAhB,KAEMC,EADkB1pC,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,cAC8BmQ,GAEtClI,qBAAU,WACN,IAAMi0D,EAAmBT,EAAYxlD,KAAI,SAACqQ,GACtC,MAA+BD,GAAoBC,GAA3CW,EAAR,EAAQA,WAAY/lB,EAApB,EAAoBA,OACpB,EAA8DmlB,GAAoBC,GAAQ,GAAtEliB,EAApB,EAAQ6iB,WAAuC9iB,EAA/C,EAAuCjD,OACvC,EAcIolB,GAAU,GAbVzqB,EADJ,EACIA,SACAyB,EAFJ,EAEIA,OACA+B,EAHJ,EAGIA,UACAC,EAJJ,EAIIA,SACAG,EALJ,EAKIA,KACAC,EANJ,EAMIA,OACAxC,EAPJ,EAOIA,SACAiE,EARJ,EAQIA,OACAZ,EATJ,EASIA,SACAwD,EAVJ,EAUIA,gBACAC,EAXJ,EAWIA,mBACAE,EAZJ,EAYIA,cACAD,EAbJ,EAaIA,aAEJ,MAAO,CACH7I,GAAIS,EACJsF,SACAZ,WACAjD,SACAC,KAAK,GAAD,OAAK8B,EAAL,YAAkBC,GACtBwF,cAAerF,EAAOC,EACtBxC,UAAkB,OAARA,QAAQ,IAARA,OAAA,EAAAA,EAAUC,aAAV,OAAuBD,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAUE,mBAAoB,GAC/DqE,OAAO,GAAD,OAAKhC,EAAL,cAAeC,GACrByE,aACAC,oBACAW,WAAY7D,EACZmD,kBAAmB4iB,EACnBljB,kBACAC,qBACAC,eACAC,gBACAc,YAAasiB,GAAqBhB,GAClCnhB,YAAamiB,GAAqBhB,GAAQ,OAGlD01C,EAAWE,KACZ,CAACT,IAEJ,IA4GMzmB,EAAYinB,EADQx1B,EAAaljB,GAA0BC,GADnCijB,EAAa/iB,GAA8BC,GAIzE,OAAO,cAAC,GAAD,CAAcuxB,OAAO,OAAOD,UAAW/pB,EAAS8pB,UAAWA,EAAWpwC,UAAWA,EAAWuwC,aA9G5E,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QAE3BjB,EAiBAwyC,EAjBAxyC,WACA/I,EAgBAu7C,EAhBAv7C,GACAgJ,EAeAuyC,EAfAvyC,kBACAC,EAcAsyC,EAdAtyC,kBACAS,EAaA6xC,EAbA7xC,cACAvH,EAYAo5C,EAZAp5C,KACAgD,EAWAo2C,EAXAp2C,SACAC,EAUAm2C,EAVAn2C,aACAiB,EASAk1C,EATAl1C,OACAsD,EAQA4xC,EARA5xC,WACAzH,EAOAq5C,EAPAr5C,OACAyG,EAMA4yC,EANA5yC,gBACAC,EAKA2yC,EALA3yC,mBACAC,EAIA0yC,EAJA1yC,aACAC,EAGAyyC,EAHAzyC,cACAc,EAEA2xC,EAFA3xC,YACAG,EACAwxC,EADAxxC,YA2BEg3D,EAAc/vC,GAAqB5rB,GACnC47D,EAAY/vC,GAAoB9rB,GAMtC,OACI,eAAC,KAAD,CAAU82C,UAAW,EAAYtX,GAAI,CAAE9C,gBAAiB,SAAxD,UACI,cAACiZ,GAAA,EAAD,CAAWnW,GAAI,CAAEC,MAAO,QAAS8Q,OAAQ,QAAUjR,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMjM,QAAQ,SAAnG,SACI,cAAC,iBAAD,CAAgB5qB,KAAM27C,EAAWC,OAAQF,EAAaG,WAAY/+D,MAErE0+D,EACG,qCACI,cAAC/lB,GAAA,EAAD,CAAW3K,MAAM,SAASxL,GAAI,CAAE+Q,OAAQ,QAAxC,SACI,cAAC,GAAD,CAAWspB,IAAKr1D,EAAYkiB,WAAY5iB,EAAmBi2D,iBAAe,MAE9E,cAACpkB,GAAA,EAAD,CAAW3K,MAAM,SAASxL,GAAI,CAAE+Q,OAAQ,QAAxC,SACI,cAAC,GAAD,CAAWspB,IAAKj2D,EAAY8iB,WAAY7iB,EAAmBk2D,iBAAe,SAIlF,qCACI,cAACpkB,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYja,SAAUjN,EAAW0H,KAAMkhC,EAAchtB,GAAI,GAAzD,gBACKj7B,QADL,IACKA,OADL,EACKA,EAAa9D,WAGtB,cAACg1C,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAMkhC,EAAchtB,GAAI,GAAvF,gBACK96B,QADL,IACKA,OADL,EACKA,EAAajE,cAM9B,cAACg1C,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYja,SAAUjN,EAAW0H,KAAMkhC,EAAvC,SACKxmB,EAAa3hC,EAAgBrD,MAGtC,cAACy0C,GAAA,EAAD,CAAW3K,MAAM,SAASxL,GAAI,CAAE+Q,OAAQ,QAAxC,SACI,eAAC6Q,GAAA,EAAD,CAAOrL,UAAU,MAAM5S,QAAS,EAAhC,UACI,cAACue,GAAA,EAAD,CAAYzjD,MAAM,kBAAkB,aAAW,kBAA/C,SACI,cAAC,GAAD,CAAa3C,SAAUT,EAAIkF,YAAa/C,EAAM+vB,MAAO,CAAE0lB,WAAY,YAEtEvM,GACG,cAAC,GAAD,CACIi0B,YAAa32D,IAAoBC,EACjC22D,YAAamB,IAAoB93D,EACjCy5B,QAAS1tB,GACT9L,aAAcA,EACdw2D,iBAxEW,SAAC8B,GAChC,OAAQA,GACJ,KAAKR,EACDL,EAAiBtgE,EAAIkC,EAAQ4G,GAC7B,MACJ,KAAK42D,EACDa,EAAavgE,EAAIkC,GACjB,MACJ,KAAKy9D,EACDa,EAAaxgE,EAAIkC,GACjB,MACJ,KAAK09D,EACL,KAAKC,EACDY,EAAqBzgE,EAAIkC,cAeJlC,OAgEzCogE,GAAaprC,aAAb,evG0jB4C,CACxCqrC,YAAa,GACbh1B,YAAY,EACZq1B,iBAAiB,EACjBJ,iBAAkB,aAClBC,aAAc,aACdC,aAAc,aACdC,qBAAsB,euG7jBXL,UCgBAA,GAtMM,SAAC,GAUf,IAAD,IATFC,mBASE,MATY,GASZ,EARF72D,EAQE,EARFA,UACA82D,EAOE,EAPFA,iBACAC,EAME,EANFA,aACAC,EAKE,EALFA,aACAC,EAIE,EAJFA,qBAIE,IAHFp1B,kBAGE,aAFF+1B,2BAEE,SADFV,EACE,EADFA,gBAEMnrB,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA4oC,EAAiB/oC,GACjB63C,EAA+ErtD,GAArEosD,EAAqEpsD,GAAvDqsD,EAAuDrsD,GAAzCssD,EAAyCtsD,GAAvBusD,EAAuBvsD,GACvF,EAA8B5G,mBAAS,IAAvC,mBAAOojB,EAAP,KAAgB8wC,EAAhB,KAEMC,EADkB1pC,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,cAC8BmQ,GAEtClI,qBAAU,WACN,IAAMi0D,EAAmBT,EAAYxlD,KAAI,SAACqQ,GACtC,MAA+BD,GAAoBC,GAA3CW,EAAR,EAAQA,WAAY/lB,EAApB,EAAoBA,OACpB,EAA8DmlB,GAAoBC,GAAQ,GAAtEliB,EAApB,EAAQ6iB,WAAuC9iB,EAA/C,EAAuCjD,OACvC,EAYIolB,GAAU,GAXVzqB,EADJ,EACIA,SACAyB,EAFJ,EAEIA,OACA+B,EAHJ,EAGIA,UACAC,EAJJ,EAIIA,SACAiB,EALJ,EAKIA,SACAwD,EANJ,EAMIA,gBACAC,EAPJ,EAOIA,mBACAE,EARJ,EAQIA,cACAD,EATJ,EASIA,aACAzD,EAVJ,EAUIA,aACAiB,EAXJ,EAWIA,OAEJ,MAAO,CACHrG,GAAIS,EACJ0E,WACAjD,SACAC,KAAK,GAAD,OAAK8B,EAAL,YAAkBC,GACtB6E,aACAC,oBACAW,WAAY7D,EACZmD,kBAAmB4iB,EACnBljB,kBACAC,qBACAC,eACAC,gBACA1D,eACAwE,YAAasiB,GAAqBhB,GAClCnhB,YAAamiB,GAAqBhB,GAAQ,GAC1CjhB,cAAc,GAAD,cAAK5D,QAAL,IAAKA,OAAL,EAAKA,EAAQg7D,YAAb,mBAA4Bh7D,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAQi7D,eACjDp3D,cAAc,GAAD,cAAK7D,QAAL,IAAKA,OAAL,EAAKA,EAAQk7D,YAAb,mBAA4Bl7D,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAQm7D,mBAGzDZ,EAAWE,KACZ,CAACT,IAEJ,IAiIMoB,EAAe,CAAEzhE,GAAI,OAAQyI,MAAO24D,EAAsB,oBAAsB,mBAChFxnB,EAAyB,CAAI6nB,GAAJ,OAAbZ,EAAa,YAAqBx4C,IAArB,YAAqEG,KAEpG,OAAO,cAAC,GAAD,CAAcsxB,OAAO,OAAOD,UAAW/pB,EAAS8pB,UAAWA,EAAWpwC,UAAWA,EAAWuwC,aApI5E,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QAE3BjB,EAiBAwyC,EAjBAxyC,WACA/I,EAgBAu7C,EAhBAv7C,GACAgJ,EAeAuyC,EAfAvyC,kBACAC,EAcAsyC,EAdAtyC,kBACA9G,EAaAo5C,EAbAp5C,KACAiD,EAYAm2C,EAZAn2C,aACAD,EAWAo2C,EAXAp2C,SACAwE,EAUA4xC,EAVA5xC,WACAzH,EASAq5C,EATAr5C,OACAyG,EAQA4yC,EARA5yC,gBACAC,EAOA2yC,EAPA3yC,mBACAC,EAMA0yC,EANA1yC,aACAC,EAKAyyC,EALAzyC,cACAc,EAIA2xC,EAJA3xC,YACAG,EAGAwxC,EAHAxxC,YACAE,EAEAsxC,EAFAtxC,cACAC,EACAqxC,EADArxC,cA2BE62D,EAAc/vC,GAAqB5rB,GACnC47D,EAAY/vC,GAAoB9rB,GAEtC,OACI,eAAC,KAAD,CAAU82C,UAAW,EAAYtX,GAAI,CAAE9C,gBAAiB,SAAxD,UACI,cAACiZ,GAAA,EAAD,CAAWnW,GAAI,CAAEC,MAAO,QAAS8Q,OAAQ,QAAUjR,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMjM,QAAQ,SAAnG,SACI,cAACsW,GAAA,EAAD,UACI,cAAC,iBAAD,CAAgBlhC,KAAM27C,EAAWC,OAAQF,EAAaG,WAAY/+D,QAGzE0+D,EACG,qCACI,cAAC/lB,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,GAAD,CAAW6uB,IAAKr1D,EAAYkiB,WAAY5iB,EAAmBi2D,iBAAe,MAE9E,cAACpkB,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,GAAD,CAAW6uB,IAAKj2D,EAAY8iB,WAAY7iB,EAAmBk2D,iBAAe,SAIlF,qCACI,cAACpkB,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,eAAC/P,EAAA,EAAD,CAAKD,SAAS,OAAOknB,EAAE,SAAStS,UAAU,OAA1C,UACI,eAAC3U,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,cAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAMkhC,EAAchtB,GAAI,GAAvF,gBACKj7B,QADL,IACKA,OADL,EACKA,EAAa9D,UAEN,OAAX8D,QAAW,IAAXA,OAAA,EAAAA,EAAaC,sBAAuB,cAAC,eAAD,CAAc8mB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAU8C,kBAE1D,cAAlB,OAAX/uC,QAAW,IAAXA,OAAA,EAAAA,EAAaE,cACV,cAAC,aAAD,CAAY86B,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,gBACKjoD,QADL,IACKA,OADL,EACKA,EAAaE,mBAK9B,cAACgxC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,eAAC/P,EAAA,EAAD,CAAKD,SAAS,OAAOknB,EAAE,SAAStS,UAAU,OAA1C,UACI,eAAC3U,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,cAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAMkhC,EAAchtB,GAAI,GAAvF,gBACK96B,QADL,IACKA,OADL,EACKA,EAAajE,UAEN,OAAXiE,QAAW,IAAXA,OAAA,EAAAA,EAAaF,sBAAuB,cAAC,eAAD,CAAc8mB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAU8C,kBAE1D,cAAlB,OAAX5uC,QAAW,IAAXA,OAAA,EAAAA,EAAaD,cACV,cAAC,aAAD,CAAY86B,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,gBACK9nD,QADL,IACKA,OADL,EACKA,EAAaD,sBAQtC,cAACgxC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAMkhC,EAArE,SACK5nD,MAGT,cAAC6wC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAMkhC,EAArE,SACK3nD,MAGT,cAAC4wC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,eAACoW,GAAA,EAAD,CAAOrL,UAAU,MAAM5S,QAAS,EAAhC,UACI,cAACue,GAAA,EAAD,CAAYzjD,MAAM,kBAAkB,aAAW,kBAA/C,SACI,cAAC,GAAD,CAAa3C,SAAUT,EAAIkF,YAAa/C,EAAM+vB,MAAO,CAAE0lB,WAAY,YAEtEvM,GACG,cAAC,GAAD,CACIi0B,YAAa32D,IAAoBC,EACjC22D,YAAamB,IAAoB93D,EACjCy5B,QAAS1tB,GACT9L,aAAcA,EACdw2D,iBA/FW,SAAC8B,GAChC,OAAQA,GACJ,KAAKR,EACDL,EAAiBtgE,EAAIkC,EAAQ4G,GAC7B,MACJ,KAAK42D,EACDa,EAAavgE,EAAIkC,GACjB,MACJ,KAAKy9D,EACDa,EAAaxgE,EAAIkC,GACjB,MACJ,KAAK09D,EACL,KAAKC,EACDY,EAAqBzgE,EAAIkC,cAWJlC,OCxI5B0hE,GAAuB,SAAC5xC,GACjC,OAAOA,EAAQT,QACX,SAACsyC,EAAUz2C,GAEP,OADAy2C,EAASz2C,EAAOriB,aAAe,cAAgB,YAAYuW,KAAK8L,GACzDy2C,IAEX,CAAEC,YAAa,GAAIC,SAAU,MC8DtBC,GApDI,SAAC,GAA4E,IAAD,YAAzE5/D,cAAyE,MAAhE,GAAgE,MAA5D6/D,qBAA4D,aAArCC,2BAAqC,MAAf,aAAe,EACrFp2B,EAAWC,wBACjB,EAAsCn/B,mBAAS,IAA/C,mBAAO2zD,EAAP,KAAoB4B,EAApB,KACA,EAA4CvgD,GAAmBxf,GAAjD4tB,EAAd,EAAQ7X,KAAezO,EAAvB,EAAuBA,UAAWoP,EAAlC,EAAkCA,MAE9BA,GACAgzB,EAASZ,GAAepyB,IAG5B/L,qBAAU,WACN,UAAIijB,QAAJ,IAAIA,KAASvvB,OAAQ,CACjB,IAAM2hE,EAAiBR,GAAqB5xC,GAC5CmyC,EAAeC,MAEpB,CAACpyC,IAMJ,OACI,eAACsQ,EAAA,EAAD,WACK52B,GAAa,cAAC,GAAD,IACbu4D,IAAkBv4D,GACf,cAAC,SAAD,CAAQirB,QARY,WAC5ButC,KAOkDr9B,GAAI,CAAEgE,GAAI,GAAKzS,SAAUnN,GAAmBC,QAAtF,yBAIF,OAACq3C,QAAD,IAACA,GAAD,UAACA,EAAawB,gBAAd,QAAC,EAAuBthE,SACtB,cAAC6/B,EAAA,EAAD,UACI,cAAC,GAAD,CAAcigC,YAAaA,EAAYwB,eAG7C,OAACxB,QAAD,IAACA,GAAD,UAACA,EAAauB,mBAAd,QAAC,EAA0BrhE,SACzB,cAAC6/B,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACI,cAAC,GAAD,CAAcyyB,YAAaA,EAAYuB,YAAaR,qBAAmB,OAG7E53D,KAAa,OAAC62D,QAAD,IAACA,GAAD,UAACA,EAAawB,gBAAd,OAAC,EAAuBthE,WAAU,OAAC8/D,QAAD,IAACA,GAAD,UAACA,EAAauB,mBAAd,OAAC,EAA0BrhE,SACxE,eAAC4kC,GAAA,EAAD,CAAYgL,MAAM,SAASja,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAzE,UACK,IADL,kDC0HDg5C,GA3JI,SAAC,GAUb,IAAD,IATFl+D,EASE,EATFA,UACA08D,EAQE,EARFA,iBACAC,EAOE,EAPFA,aACAC,EAME,EANFA,aACAC,EAKE,EALFA,qBAKE,IAJFp1B,kBAIE,SAHFq1B,EAGE,EAHFA,gBACAyB,EAEE,EAFFA,WACAC,EACE,EADFA,+BAEM7sB,EAAQoE,eACR/N,EAAWC,wBACTyZ,EAAkBx8B,GAClBG,EAAcF,GAAdE,UACR,EAA4Bvc,mBAAS,IAArC,mBAAOxK,EAAP,KAAemgE,EAAf,KACA,EAA0B31D,mBAAS,IAAnC,mBAAO04C,EAAP,KAAcC,EAAd,KACA,EAA8B34C,mBAAS,IAAvC,mBAAOojB,EAAP,KAAgB8wC,EAAhB,KAEA,EAKIl/C,GAAmBxf,EAAQ,CAAE4pD,MAAO5pD,IAJ9Bm+D,EADV,EACIpoD,KACWqqD,EAFf,EAEI94D,UACO+4D,EAHX,EAGI3pD,MACA4pD,EAJJ,EAIIA,kBAEJ,EAAqFrhD,GAAwBvd,GAA/FkhD,EAAd,EAAQ7sC,KAAgCwqD,EAAxC,EAA4BzW,WAA0C0W,EAAtE,EAA+D9pD,MAEzDpP,EAAY24D,GAAcG,GAAoBG,GAAyBD,EAEzEE,GACA92B,EAASZ,GAAe03B,IAGxBH,GACA32B,EAASZ,GAAeu3B,IAG5B11D,qBAAU,WACN,GAAIi4C,EAAc,CAAC,IAAD,EACR6d,EAAc,OAAG7d,QAAH,IAAGA,GAAH,UAAGA,EAAcM,aAAjB,aAAG,EAAqBvqC,KAAI,SAAC8B,GAC7C,MAAO,CACH3c,GAAI2c,EAAK3c,GACTiH,YAAa0V,EAAKxa,SAG1BkjD,EAASsd,MAEd,CAAC7d,IAEJj4C,qBAAU,WACN,GAAIwzD,EAAa,CACb,IAAM6B,EAAiBR,GAAqBrB,GAC5CO,EAAWsB,MAEhB,CAAC7B,IAEJ,IAIMuC,IAAgB,OAAC9yC,QAAD,IAACA,GAAD,UAACA,EAAS+xC,gBAAV,OAAC,EAAmBthE,WAAU,OAACuvB,QAAD,IAACA,GAAD,UAACA,EAAS8xC,mBAAV,OAAC,EAAsBrhE,SAAU2B,IAAWsH,EAC1Fq5D,GAAiB3gE,KAAU,OAAC4tB,QAAD,IAACA,KAASvvB,UAAWiJ,EA+DtD,OACI,cAAC42B,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACK,OAACwX,QAAD,IAACA,KAAO7kD,QAAWiJ,EAOhB,qCACI,eAAC28B,GAAA,EAAD,CAAaxB,GAAI,CAAE/P,MAAO,IAAK+T,GAAI,GAAnC,UACI,cAACvC,GAAA,EAAD,CAAYpmC,GAAG,cAAf,yBACA,cAAC,KAAD,CAAQwM,MAAOtK,EAAQwkC,SAAUl9B,EAAWf,MAAM,cAAcuB,QAAQ,cAAc25B,SAhF/E,SAAC3N,GACxBqsC,EAAUrsC,EAAMhP,OAAOxa,QA+EP,SACK44C,EAAMvqC,KAAI,SAACwoB,GAAD,OACP,cAACgD,GAAA,EAAD,CAA0B75B,MAAO62B,EAAOrjC,GAAxC,SACKqjC,EAAOp8B,aADGo8B,EAAOrjC,YAMjCwJ,EAAY,cAAC,GAAD,IAjFP,WAAO,IAAD,IACxB,OACI,qCACKq5D,GACG,cAAC,aAAD,CAAY1yB,MAAM,SAASja,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA5F,wCAIHorB,GACG,cAAC,aAAD,CAAYzyB,MAAM,SAASja,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA5F,yDAIF,OAAC1nB,QAAD,IAACA,GAAD,UAACA,EAAS+xC,gBAAV,QAAC,EAAmBthE,SAClB,cAAC6/B,EAAA,EAAD,UACKgiC,EACG,cAAC,GAAD,CAAWlgE,OAAQA,IAEnB,qCACI,cAAC,aAAD,CAAYg0B,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA7E,sBAGA,cAAC,GAAD,CACIkpB,gBAAiBA,EACjBr1B,WAAYA,EACZg1B,YAAavwC,EAAQ+xC,SACrBvB,iBAAkBA,EAClBC,aAAcA,EACdC,aAAcA,EACdC,qBAAsBA,WAMxC,OAAC3wC,QAAD,IAACA,GAAD,UAACA,EAAS8xC,mBAAV,QAAC,EAAsBrhE,SACrB,cAAC6/B,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACKw0B,EACG,cAAC,GAAD,CAAWlgE,OAAQA,IAEnB,qCACI,cAAC,aAAD,CAAYg0B,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA7E,yBAGA,cAAC,GAAD,CACIkpB,gBAAiBA,EACjBr1B,WAAYA,EACZg1B,YAAavwC,EAAQ8xC,YACrBtB,iBAAkBA,EAClBC,aAAcA,EACdC,aAAcA,EACdC,qBAAsBA,YA8BFqC,MAjBxC,cAAC1iC,EAAA,EAAD,CAAKpY,GAAI,EAAG+sB,UAAU,SAAtB,SACI,cAAC,aAAD,CAAY7e,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA7E,+DC6GLurB,GAvOW,SAAC,GASpB,IAAD,IARFn/D,iBAQE,MARU,GAQV,MAPFmnC,cAOE,SANF5nC,EAME,EANFA,QAME,IALFqd,eAKE,MALQ,GAKR,EAJFmxC,EAIE,EAJFA,YAIE,IAHF32C,kBAGE,MAHW,GAGX,EAFFgoD,EAEE,EAFFA,uBACA93D,EACE,EADFA,QAEM0gC,EAAWC,wBACX0J,EAAQoE,eACd,EAA4CjtC,mBAAS,IAArD,mBAAOu2D,EAAP,KAAuBC,EAAvB,KACA,EAAgCx2D,mBAAS,IAAzC,mBAAOoxD,EAAP,KAAiBC,EAAjB,KACA,EAAgCrxD,mBAAS,IAAzC,mBAAOkxD,EAAP,KAAiBC,EAAjB,KACA,EAAgDnxD,mBAAS,IAAzD,mBAAOy2D,EAAP,KAAyBC,EAAzB,KACA,EAAgD12D,mBAAS,IAAzD,mBAAO22D,EAAP,KAAyBC,EAAzB,KACA,EAA0B52D,mBAAS,IAAnC,mBAAO04C,EAAP,KAAcC,EAAd,KACA,EAAyB1kC,GAAwB,CAAE3F,eAA5CuoD,EAAP,oBAEMC,EAAoB,SAAC12C,EAAM22C,GAC7B,IAAM1Q,EAAS0Q,EAAKhZ,QAAQ,KACtBiZ,EAAgBD,EAAKnoB,MAAMyX,GACjC,MAAM,GAAN,OAAUjmC,GAAV,OAAiB42C,IAGrB,EAAqFviD,GAAwBvd,GAA/FkhD,EAAd,EAAQ7sC,KAAgCwqD,EAAxC,EAA4BzW,WAA0C0W,GAAtE,EAA+D9pD,MAE3D8pD,IACA92B,EAASZ,GAAe03B,KAG5B,IAAMt2B,GAAgB,CAClBuqB,gBAAiB,GACjBC,gBAAiB,GACjBqH,cAAe,GACfgF,eAAgB,GAChBU,kBAAmBl5C,QAGvB,GAKI8hB,aAAQ,CAAEH,cAAc,eAAMA,IAAiBI,KAAM,QAJrDC,GADJ,GACIA,aACAC,GAFJ,GAEIA,MAFJ,MAGIC,UAAaC,GAHjB,GAGiBA,OAAQC,GAHzB,GAGyBA,YAAa+2B,GAHtC,GAGsCA,QAASC,GAH/C,GAG+CA,QAC3CziC,GAJJ,GAIIA,QAGEkM,GAAgB,uCAAG,WAAOC,GAAP,yBAAAx1B,EAAA,0DACf+rD,EADe,eACav2B,IACbo2B,kBAAoBl5C,KAAOq5C,EAAqBH,kBAAmB,YAElFI,EAAUd,EAAe1uB,cACzBznB,EAAOrC,KAAOs5C,GAASx3C,MAAMhC,OAAO,cACpCk5C,EAAOK,EAAqBH,kBAAkBpvB,eAEhD1H,GAAYoxB,cARK,iCASel1B,GAAgB+6B,EAAqB7F,eATpD,OASXzwB,EATW,OAUjBs2B,EAAqB7F,cAAgBzwB,EAVpB,eAaf1Z,EAAU,CACZtT,UACAm2C,gBAAiBiH,EACjBhH,gBAA8B,KAAbkH,EAAkBA,EAAW,KAC9CkG,cAAeR,EAAkB12C,EAAM22C,GACvCxF,cAAe6F,EAAqB7F,eAlBnB,oBAsBXsF,EAAe,CACjBvoD,aACA8C,SAAUgW,IACX2Z,SAzBc,QA0BjBu1B,IA1BiB,mDA4BjBp3B,EAASZ,GAAe,EAAD,KA5BN,QA+BrB0B,GAAMN,IA/Be,2DAAH,sDA4DtBv/B,qBAAU,WACN,GAAIi4C,EAAc,CACd,IAAM6d,EAAc,OAAG7d,QAAH,IAAGA,OAAH,EAAGA,EAAcM,MAAMvqC,KAAI,SAAC8B,GAC5C,MAAO,CACH3c,GAAI2c,EAAK3c,GACTiH,YAAa0V,EAAKxa,SAG1BkjD,EAASsd,MAEd,CAAC7d,IAEJ,IAuBM0M,GAAyC,KAAnByR,IAA0BW,IAAwB,OAAbhG,QAAkCoC,IAAbpC,IAA2BiG,GAEjH,OACI,cAAC,GAAD,CACIzgE,MAAM,mBACND,QAhBc,WANlBupC,GAAMN,IACNyxB,EAAY,IACZE,EAAY,IACZmF,EAAkB,IAKlB//D,KAeI4nC,OAAQA,EACRwmB,WA9Ba,WACjB9kB,GAAaa,GAAbb,GACAklB,KA6BIL,SAAS,cACTE,oBAAqBA,GANzB,SAQI,iCACI,cAAC9oB,GAAA,EAAD,CAAO/D,GAAI,CAAEiJ,GAAI,EAAGmC,EAAG,GAAvB,SACI,eAACzL,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QhGlDF,EgGkDd,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAACS,GAAA,EAAD,CAAsBC,YAAaC,KAAnC,SACI,cAACukB,GAAA,EAAD,CACI9wD,KAAK,iBACLsG,MAAM,OACN+D,MAAOy2D,EACPt/B,SAjFM,SAAC7W,GACnCo2C,EAAkBp2C,IAiFUsU,QAASA,GACT2C,YAAa,SAAC8K,GAAD,OAAgB,cAACnN,GAAA,EAAD,yBAAWH,UAAQ,GAAKsN,GAAxB,IAAoClN,WAAS,EAAC/oB,OAAO,MAClFqrD,kBA7BN,SAACn3C,GACvB,IAAM2mC,EAAmBhpC,KAAM,OAACvf,QAAD,IAACA,OAAD,EAACA,EAAShE,cACnCwsD,EAAiBjpC,KAAM,OAACvf,QAAD,IAACA,OAAD,EAACA,EAASnG,YACjCm/D,EAAcz5C,KAAOqC,GAAMq3C,QAAQ,OACzC,OAAOD,EAAYE,SAAZ,OAAqB3Q,QAArB,IAAqBA,OAArB,EAAqBA,EAAkB0Q,QAAQ,UAA/C,OAA0DD,QAA1D,IAA0DA,OAA1D,EAA0DA,EAAaG,QAAQ3Q,EAAe4Q,MAAM,gBA6B3F,cAAChgC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAY5rC,KAAK,oBAAoBsG,MAAM,OAAO24B,QAASA,GAASz/B,YAAU,MAElF,cAAC2iC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAU5rC,KAAK,gBAAgBsG,MAAM,WAAWmQ,QAASg0B,GAAO9qC,SAAUs/B,QAASA,GAASz/B,YAAU,WAIlH,cAAC+mC,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,GAAhB,SACI,eAACzL,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QhGzEF,EgGyE+BhI,WAAW,SAAxD,UACI,cAACgE,GAAA,EAAD,CAAMQ,GAAI,GAAIN,MAAI,EAAlB,SACI,eAACpE,EAAA,EAAD,YACU,OAALglB,QAAK,IAALA,OAAA,EAAAA,EAAO7kD,UAAWkiE,GACf,cAAC,GAAD,CACItgE,KAAK,kBACLsG,MAAM,YACN45B,QAAO,OAAE+iB,QAAF,IAAEA,OAAF,EAAEA,EAAOr2B,QAAO,SAACpS,GAAD,OAAUA,EAAK3c,KAAOmjE,KAC7Cn5D,QAAQ,mBACRg8B,aAAW,EACX5E,QAASA,GACTC,WAAYuL,GAAOgqB,gBACnBpqD,MAAOsxD,EACP53B,eA1GL,SAAClQ,GAAW,IAAD,EAChCwwB,EAAY,OAAGxwB,QAAH,IAAGA,GAAH,UAAGA,EAAOhP,cAAV,aAAG,EAAexa,MACpC82D,EAAoB9c,GACpBuX,EAAYvX,IAwGoB9f,SAA2B,IAAjB0e,EAAM7kD,OAChBokC,GAAI,CAAEgE,GAAI,MAGZ,OAALyc,QAAK,IAALA,OAAA,EAAAA,EAAO7kD,UAAWkiE,GACf,cAAC,GAAD,CACItgE,KAAK,kBACLsG,MAAM,YACN45B,QAAO,OAAE+iB,QAAF,IAAEA,OAAF,EAAEA,EAAOr2B,QAAO,SAACpS,GAAD,OAAUA,EAAK3c,KAAOqjE,KAC7Cr5D,QAAQ,mBACRg8B,aAAW,EACX5E,QAASA,GACTC,WAAYuL,GAAO+pB,gBACnBnqD,MAAOoxD,EACP13B,eAnHL,SAAClQ,GAAW,IAAD,EAChCwwB,EAAY,OAAGxwB,QAAH,IAAGA,GAAH,UAAGA,EAAOhP,cAAV,aAAG,EAAexa,MACpC42D,EAAoB5c,GACpBqX,EAAYrX,IAiHoB7kD,YAAU,EACVskC,WAAW,kBAK3B,cAAC3B,GAAA,EAAD,CAAMQ,GAAI,EAAGN,MAAI,EAAjB,SACI,cAACqiB,GAAA,EAAD,CAAY,aAAW,aAAapyB,QArHlC,WACtB,IAAM8vC,EAAepB,EACrBC,EAAoBC,GACpBC,EAAoBiB,GAGpB1G,EAAYwF,GACZtF,EAAYwG,IA8GQ,SACI,cAACnkC,EAAA,EAAD,CAAK/6B,QAAQ,OAAb,SACI,cAAC,mBAAD,CAAkBsrB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,mC,+BC/FxEyQ,GAzIoB,SAAC,GAAsD,IAApDC,EAAmD,EAAnDA,qBAAsBC,EAA6B,EAA7BA,gBAAiB9rD,EAAY,EAAZA,MACjEqQ,EAAcF,GAAdE,UACA2oC,EAAuB9oC,GACvB67C,EAAmBvvD,GAAdwvD,EAAcxvD,GAAPyvD,EAAOzvD,GAC3B,EAAgC1I,mBAAS,MAAzC,mBAAO8yD,EAAP,KAAiBC,EAAjB,KACA,EAAoD/yD,qBAApD,mBAAOkjB,EAAP,KAA2Bk1C,EAA3B,KACA,EAAgDp4D,qBAAhD,mBAAOq4D,EAAP,KAAyBC,EAAzB,KACA,EAA8Dt4D,oBAAS,GAAvE,mBAAOu4D,EAAP,KAAgCC,EAAhC,KACA,EAA4Cx4D,oBAAS,GAArD,mBAAOy4D,EAAP,KAAuBC,EAAvB,KACA,EAAsC14D,mBAAS,IAA/C,mBAAO24D,EAAP,KAAoBC,EAApB,KACMpiE,EAAOkxB,QAAQorC,GAEf+F,EAAgC,SAAC1sD,GACnC,OAAQA,GACJ,KAAK8rD,EACD,OAAOrvD,GACX,KAAKsvD,EACD,OAAOtvD,GACX,KAAKuvD,EACD,OAAOvvD,GACX,QACI,OAAO,OAInBzI,qBAAU,WACN,GAAI63D,EAAiB,CACjB,MAAyDA,GAAmB,GAApEz0C,EAAR,EAAQA,+BAAgC3tB,EAAxC,EAAwCA,aAClCkjE,IAAuBljE,EAE7B,GAAIkjE,GAAsBv1C,EAAgC,CACtDm1C,GAAkB,GAClBF,GAA2B,GAC3BJ,EAAsB70C,GACtB,IAAM2U,EAAQ2gC,EAA8Bt1C,GAC5Cq1C,EAAe1gC,QACR4gC,IAAuBv1C,GAC9Bi1C,GAA2B,GAE/BF,EAAoB1iE,MAEzB,CAACoiE,IAEJ73D,qBAAU,WACN,GAAI+L,EAAO,CACP,IAAQqX,GAAmCy0C,GAAmB,IAAtDz0C,+BACR,UAAIy0C,QAAJ,IAAIA,KAAiBz0C,+BAAgC,CACjD60C,EAAsB70C,GACtB,IAAM2U,EAAQ2gC,EAA8Bt1C,GAC5Cq1C,EAAe1gC,QAEfsgC,GAA2B,GAC3BE,GAAkB,MAG3B,CAACxsD,IAEJ,IAIM6sD,EAA6B,SAAC5sD,GAChC,IAAM+rB,EAAQ2gC,EAA8B1sD,GAE5CysD,EAAe1gC,GACfkgC,EAAsBjsD,GAElBosD,IACAC,GAA2B,GAC3BE,GAAkB,IAGlB5F,GACAC,EAAY,MAGhBgF,EAAqB,CAAEniE,aAAcyiE,EAAkBn1C,mBAAoB/W,KAMzE6sD,EAAarwD,GAAyBua,GAC5C,OACI,qCACKu1C,GACG,qCACI,cAAC,KAAD,CACInlE,GAAG,cACH,gBAAekD,EAAO,iBAAc88D,EACpC,gBAAc,OACd,gBAAe98D,EAAO,YAAS88D,EAC/Br7B,GAAI,CAAE0R,aAAc,GACpBzR,MAAOygC,EACPjmC,QAAQ,WACRumC,QAAS,cAAC,KAAD,IACTlxC,QAvCM,SAACuB,GACvBypC,EAAYzpC,EAAMiqC,gBA6BN,SAWI,cAAC,aAAD,CAAYtvC,KAAMihC,EAAoB17B,SAAUjN,EAAhD,wBAAoEy8C,OAExE,eAACxF,GAAA,EAAD,CACIlgE,GAAG,YACHw/D,SAAUA,EACVt8D,KAAMA,EACNC,QAzBE,WAClBs8D,EAAY,OAyBIU,cAAe,CAAE,kBAAmB,eALxC,UAOI,cAAC95B,GAAA,EAAD,CAAU5R,QAAS,kBAAMgxC,EAA2Bd,IAApD,SACI,cAAC,aAAD,CAAYh0C,KAAMihC,EAAoB17B,SAAUjN,EAAhD,mBAEJ,cAACod,GAAA,EAAD,CAAU5R,QAAS,kBAAMgxC,EAA2Bb,IAApD,SACI,cAAC,aAAD,CAAYj0C,KAAMihC,EAAoB17B,SAAUjN,EAAhD,qBAEJ,cAACod,GAAA,EAAD,CAAU5R,QAAS,kBAAMgxC,EAA2BZ,IAApD,SACI,cAAC,aAAD,CAAYl0C,KAAMihC,EAAoB17B,SAAUjN,EAAhD,wBAMfg8C,GACG,eAAC1e,GAAA,EAAD,CAAOrL,UAAU,MAAM5S,QAAS,EAAhC,UACI,cAAC,SAAD,CAAQ7T,QAAS,kBAAMgxC,EAA2Bd,IAAMzuC,SAAUjN,EAAlE,iBAGA,cAAC,SAAD,CAAQwL,QAAS,kBAAMgxC,EAA2Bb,IAAQ1uC,SAAUjN,EAApE,mBAGA,cAAC,SAAD,CAAQwL,QAAS,kBAAMgxC,EAA2BZ,IAAK3uC,SAAUjN,EAAjE,uBC/GL28C,GAtBO,SAAC,GAAqD,IAAnDhL,EAAkD,EAAlDA,cAAen4D,EAAmC,EAAnCA,UAAWjB,EAAwB,EAAxBA,kBACvCynB,EAAcF,GAAdE,UACAu8B,EAAe18B,GAEvB,OACI,eAACkvB,GAAA,EAAD,CAAM3yB,KAAMu1C,EAAZ,WACMp5D,GACE,cAAC,aAAD,CAAY00B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK/iD,IAGT,cAAC,aAAD,CAAYyzB,SAAUjN,EAAW0H,KAAM60B,EAAvC,4BCfNqgB,GAAc,CAChBC,UAAW,yBACXngB,aAAc,yBACdogB,WAAY,mBACZlxC,OAAQ,EACRD,MAAO,GAELoxC,GAAkB,CACpB9tB,WAAY,QACZrjB,OAAQ,GACRD,MAAO,GAGLqxC,GAAmB,CACrBH,UAAW,wBACXngB,aAAc,wBACdogB,WAAY,kBACZlxC,OAAQ,EACRD,MAAO,GAGLsxC,GAAuB,CACzBhuB,WAAY,QACZrjB,OAAQ,GACRD,MAAO,GAYIuxC,GATS,SAAC,GAAqB,IAAnBxhC,EAAkB,EAAlBA,GAAIyhC,EAAc,EAAdA,QAC3B,OACI,eAAChmC,EAAA,EAAD,CAAKuE,GAAIA,EAAIt/B,QAAQ,OAArB,UACI,cAAC+6B,EAAA,EAAD,CAAKlO,MAAOk0C,EAAUF,GAAuBF,KAC7C,cAAC5lC,EAAA,EAAD,CAAKlO,MAAOk0C,EAAUH,GAAmBJ,SCb/CQ,GAAoB,SAAC,GAQpB,IAAD,EAPFhiC,EAOE,EAPFA,MACA7hC,EAME,EANFA,MAME,IALF8jE,4BAKE,SAJF/O,EAIE,EAJFA,YACAgP,EAGE,EAHFA,cAGE,IAFFC,mBAEE,MAFY,KAEZ,MADFhlE,yBACE,SACMC,EAAiF4iC,EAAjF5iC,YAAaG,EAAoEyiC,EAApEziC,UAAWE,EAAyDuiC,EAAzDviC,SAAUG,EAA+CoiC,EAA/CpiC,cAAeM,EAAgC8hC,EAAhC9hC,cAAeG,EAAiB2hC,EAAjB3hC,aAClE6yC,EAAQoE,eACR/N,EAAWC,wBACT3iB,EAAgCH,GAAhCG,QAASF,EAAuBD,GAAvBC,QAASC,EAAcF,GAAdE,UAClBw9C,EAAkD39C,GAA3C6/B,EAA2C7/B,GAA9Bw8B,EAA8Bx8B,GAAf08B,EAAe18B,GAC1D,EAAwDpc,qBAAxD,mBAAOg6D,EAAP,KAA6BC,EAA7B,KACA,EAAkDj6D,qBAAlD,mBAAOk6D,EAAP,KAA0BC,EAA1B,KACA,EAAgDn6D,qBAAhD,mBAAOo6D,EAAP,KAAyBC,EAAzB,KAEMv8C,EAAMqC,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQ,MACpDy8C,EAAQn6C,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQ,QACtDk5C,EAAO52C,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQ,WACrD08C,EAAoBhlE,EAAcC,SAAWQ,EAC7CwkE,EAAoB3kE,EAAcL,SAAWQ,EAC7CykE,EAAiBC,aAAc7xB,EAAM8xB,YAAYC,KAAK,OAGtDjhB,EADsB+gB,aAAc7xB,EAAM8xB,YAAYE,GAAG,OADjC,QAEqC,OAC7DC,GAAqBL,EAAiB,EAAI,EAC1CvM,GAAa,yBAAqBn5D,GAClCgB,GAAYD,EAAK,OAAGA,QAAH,IAAGA,OAAH,EAAGA,EAAOL,KAAV,OAAiBkiC,QAAjB,IAAiBA,GAAjB,UAAiBA,EAAO7hC,aAAxB,aAAiB,EAAcC,UAChDglE,GAA8C,KAAb,OAAbxlE,QAAa,IAAbA,OAAA,EAAAA,EAAeG,SAA0C,KAAb,OAAbG,QAAa,IAAbA,OAAA,EAAAA,EAAeH,QAClEslE,GAAuB,OACvBC,GAAiB,oBAAgBpyB,EAAMM,UAAUqU,WACjD0d,GAAsBtB,KAAwB,OAACjiC,QAAD,IAACA,KAAO17B,mBAAoBnH,EAEhF,GAAuE8iB,KAAvE,qBAAOujD,GAAP,MAA0CC,GAA1C,MAAmClvD,MAEnC/L,qBAAU,WACN,GAAIw3B,EAAO,CACP,IAA4C0jC,IAAmC,OAAL1jC,QAAK,IAALA,OAAA,EAAAA,EAAOpiC,gBAAiB,IAA1FI,mCACoC2lE,IAAmC,OAAL3jC,QAAK,IAALA,OAAA,EAAAA,EAAO9hC,gBAAiB,IAA1FF,mCACF4iE,IAA4B8C,KAA+BC,EAC3DC,IAA2B,OAACF,QAAD,IAACA,MAA2BzlE,iBAAiB,OAAC0lE,QAAD,IAACA,MAA2B1lE,cAEtG2lE,GAA6BF,EAC7BpB,EAAwBoB,GACjBC,GACPrB,EAAwBqB,GAG5BjB,EAAoB9B,GACpB4B,EAAqBoB,MAE1B,CAAC5jC,IAEJ,IAAM6jC,GAAoB,SAACC,GACvB,OAAIA,EACO7iB,EAEJqD,GAGLyf,GAAqB,SAACD,GACxB,OAAIA,EACO5yB,EAAMM,UAAU2B,MAEpBjC,EAAMM,UAAUub,UAGrBiX,GAAgC,uCAAG,qCAAAtwD,EAAA,6DAASzV,EAAT,EAASA,aAAcstB,EAAvB,EAAuBA,mBACxDrQ,EAAgB,CAACjd,GAEjBskE,IACArnD,EAAgB,QACZtd,QADY,IACZA,GADY,UACZA,EAAeI,0CADH,aACZ,EAAmDC,aADvC,OAEZC,QAFY,IAEZA,GAFY,UAEZA,EAAeF,0CAFH,aAEZ,EAAmDC,eANtB,kBAW3BulE,GAAyB,CAC3BtoD,gBACAC,2BAA4BoQ,EAC5BnuB,YAAayoB,SAASzoB,KACvBgsC,SAf8B,uDAiBjC7B,EAASZ,GAAe,EAAD,KAjBU,yDAAH,sDAyBhCs9B,GAAsB,WACxB/B,EAAc9kE,EAAD,OAAce,QAAd,IAAcA,OAAd,EAAcA,EAAOL,KAAMqkE,IAGtC+B,GAAW,WACb,OACI,cAACnoC,EAAA,EAAD,UACI,eAACuX,GAAD,CAAYpT,WAAS,EAACikC,cAAe,EAAGloC,WAAW,SAAnD,UACI,cAACgE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG8D,GAAI,IAAKD,GAAI6+B,GAAoBhtB,GAAI,EAAvD,SACI,cAACpa,EAAA,EAAD,CAAK4Q,SAAU02B,GAAsBltB,GAAI,IAAKkQ,YAAaid,GAA3D,SACI,cAAC,aAAD,CAAYzxC,SAAUhN,EAASyH,KAAM81C,EAAO7hC,MAAO2Q,EAAMM,UAAUqU,UAAnE,wBAKR,cAAC5lB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG8D,GAAI,IAAKvjC,QAAQ,OAAOojE,cAAc,SAAS3mC,eAAe,SAAS6G,GAAI6+B,GAA7F,SACI,cAAC,GAAD,CAAe5M,cAAeA,GAAen4D,UAAWA,GAAWjB,kBAAmBA,MAE1F,eAAC8iC,GAAA,EAAD,CACIE,MAAI,EACJM,GAAI,GACJ8D,GAAI,IACJvjC,QAAQ,OACRojE,cAAc,SACd3mC,eAAe,SACf6uB,IAAK,EACLhoB,GAAI6+B,GACJ7iC,GAAI,CAAEC,MAAO2Q,EAAMM,UAAU0B,MATjC,UAWI,cAAC,uBAAD,CAAsBp1C,KAAMF,EAAcE,KAAMkjB,KAAI,iBAAYpjB,EAAcC,UAC9E,cAAC,uBAAD,CAAsBwkC,UAAQ,EAACvkC,KAAK,WAEvCylE,IACG,cAACtjC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,IAAKC,GAAG,OAA/B,SACI,cAACzI,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,cAAC+kB,GAAA,EAAD,CAAYpyB,QAAS,kBAAM6zC,MAAuB,aAAW,oBAA7D,SACI,cAAC,aAAD,CAAY1jC,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,iBAU1F,OACI,cAACyP,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAUwB,MAAO1O,GAAI,EAAzC,SACK7mC,EACG,cAACs+B,EAAA,EAAD,UACI,eAACuX,GAAD,CAAYpT,WAAS,EAACikC,cAAe,EAAGloC,WAAW,SAAnD,UACI,cAACgE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG8D,GAAI,IAAKD,GAAI6+B,GAAoBhtB,GAAI,EAAvD,SACI,eAACpa,EAAA,EAAD,CAAK4Q,SAAU02B,GAAsBltB,GAAI,IAAKkQ,YAAaid,GAA3D,UACI,cAAC,aAAD,CAAYzxC,SAAUhN,EAASyH,KAAMg4B,EAAahkB,GAAI,CAAE0T,WAAY,OAAQD,cAAe,aAA3F,mBACQ4uB,EADR,YACiBx8C,KAEjB,cAAC,aAAD,CAAY0L,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACK8a,SAIb,cAACn/B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG8D,GAAI,IAAKvjC,QAAQ,OAAOojE,cAAc,SAAS3mC,eAAe,SAAS6G,GAAI6+B,GAA7F,SACI,cAAC,GAAD,CAAe5M,cAAeA,GAAen4D,UAAWA,GAAWjB,kBAAmBA,MAE1F,eAAC8iC,GAAA,EAAD,CACIE,MAAI,EACJM,GAAI,GACJ8D,GAAI,IACJvjC,QAAQ,OACRojE,cAAc,SACd3mC,eAAe,SACf6uB,IAAK,EACLhoB,GAAI6+B,GARR,UAUI,eAACpnC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASwB,eAAe,gBAAgBf,SAAS,WAAhF,UACKmmC,GAAqB,cAAC,GAAD,CAAiBd,SAAO,EAACzhC,GAAI,CAAE5D,SAAU,WAAY06B,MAAO,MAClF,cAAC,uBAAD,CACIt5D,KAAMI,EAAcJ,KACpBkjB,KAAI,iBAAY9iB,EAAcL,QAC9B6yB,SAAUmzC,GAAkBhB,GAC5B7gB,aAAcA,IAElB,cAAC,aAAD,CACInwB,SAAUjN,EACV2b,MAAOwjC,GAAmBlB,GAC1Bv2C,KAAMu3C,GAAkBhB,GAH5B,SAKKO,GAAoB,SAAMllE,EAAcH,YAGjD,eAACg+B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASwB,eAAe,gBAAgBf,SAAS,WAAhF,UACKkmC,GAAqB,cAAC,GAAD,CAAiBb,SAAO,EAACzhC,GAAI,CAAE5D,SAAU,WAAY06B,MAAO,MAClF,cAAC,uBAAD,CACIt5D,KAAMF,EAAcE,KACpBkjB,KAAI,iBAAYpjB,EAAcC,QAC9B6yB,SAAUmzC,GAAkBjB,GAC5B5gB,aAAcA,IAElB,cAAC,aAAD,CACInwB,SAAUjN,EACV2b,MAAOwjC,GAAmBnB,GAC1Bt2C,KAAMu3C,GAAkBjB,GAH5B,SAKKQ,GAAoB,SAAMxlE,EAAcG,eAIrD,eAACkiC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAGvjC,QAAQ,OAAOojE,cAAc,SAAS3mC,eAAe,SAAS6G,GAAI6+B,GAA5F,UACI,cAAC,aAAD,CAAYtxC,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK1jD,EAASC,YAEd,cAAC,aAAD,CAAYm0B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACK1jD,EAASE,sBAGjB8kE,GACG,cAACxiC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,IAAvB,SACI,cAAC,GAAD,CACI67B,qBAAsB4D,GACtB3D,gBAAiBgC,EACjB9tD,MAAOkvD,OAIlBF,IACG,cAACtjC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,IAAKC,GAAG,OAA/B,SACI,cAACzI,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,qCACI,cAAC+kB,GAAA,EAAD,CAAYpyB,QApItB,WACtB8iC,EAAYlzB,IAmI4D,aAAW,oBAAoBwE,GAAG,OAA1E,SACI,cAAC,WAAD,CAAUjE,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,OAE5D,cAACk2B,GAAA,EAAD,CAAYpyB,QAAS,kBAAM6zC,MAAuB,aAAW,oBAA7D,SACI,cAAC,aAAD,CAAY1jC,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,mBAStF,cAAC43C,GAAD,GAAe9mE,MAU/B4kE,GAAkBrxC,aAAlB,ehH7NiD,CAC7CxyB,MAAO,OgHgOI6jE,UCzLAqC,GAxEQ,SAAC,GAAmH,IAAjHlmE,EAAgH,EAAhHA,MAAO+0D,EAAyG,EAAzGA,YAAagP,EAA4F,EAA5FA,cAAeD,EAA6E,EAA7EA,qBAAsBqC,EAAuD,EAAvDA,cAAepF,EAAwC,EAAxCA,eAAgBne,EAAwB,EAAxBA,MAAO/Z,EAAiB,EAAjBA,WAC/GkK,EAAQoE,eACN6L,EAAe18B,GACfG,EAAoBF,GAApBE,UAAWI,EAASN,GAATM,KACbu/C,EAAY,aAAa,OAALpmE,QAAK,IAALA,OAAA,EAAAA,EAAO8C,UAAW,IACtCujE,EAAqB57D,mBAAQ,WAC/B,IAAqB3H,EACrB,OADoB,QAACA,EACF,YAAIsjE,UADH,IAAatjE,OAAb,EAAaA,EAASyqB,MAAK,SAAChY,EAAGiY,GAAJ,OAAU,IAAI84C,KAAK/wD,EAAEnW,WAAa,IAAIknE,KAAK94C,EAAEpuB,gBAE7F,CAACgnE,IACEG,IAAyB,OAACvmE,QAAD,IAACA,KAAOmG,iBAEjCqgE,EAAoB,SAAC3kC,GACvBkzB,EAAYlzB,IAGhB,OACI,eAACjE,EAAA,EAAD,CAAKuI,GAAI,EAAT,UACI,eAACvI,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAnC,UACI,cAAC,aAAD,CACI6G,GAAI,EACJzS,SAAS,YACTvF,KAAK,eACLiU,MAAO2Q,EAAMM,UAAU2B,MACvB7S,GAAI,CAAEyT,cAAe,aALzB,gBAOK51C,QAPL,IAOKA,OAPL,EAOKA,EAAOL,OAEX4mE,GAA0B19B,GACvB,cAACwb,GAAA,EAAD,CAAYpyB,QAAS,kBAAMk0C,EAAa,OAACnmE,QAAD,IAACA,OAAD,EAACA,EAAOxC,GAAR,OAAYwC,QAAZ,IAAYA,OAAZ,EAAYA,EAAOL,OAA3D,SACI,cAAC,aAAD,CAAYwuB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,uBAIxD8U,EAAmBhuD,KAAI,SAACwpB,EAAO7K,GAC5B,IAAMgtC,EAAchtC,EAAQ,EAC5B,OACI,cAAC,GAAD,CAEI6K,MAAOA,EACPmiC,YAAaA,EACbjP,YAAayR,EACbzC,cAAeA,EACfD,qBAAsBA,EACtB9jE,MAAOA,GAPX,OACS6hC,QADT,IACSA,OADT,EACSA,EAAO5iC,gBAUvB4pC,GACG,cAAC,SAAD,CACI5W,QAAS,kBAAM8uC,EAAc,OAAC/gE,QAAD,IAACA,OAAD,EAACA,EAAOxC,KACrCipE,UAAW,cAAC,UAAD,CAASt4C,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,kBACrD79B,SAAU7M,EACVqd,WAAU,OAAC0e,QAAD,IAACA,KAAO7kD,QAJtB,SAMI,cAAC,aAAD,CACIokC,GAAI,CAAEC,MAAO2Q,EAAMM,UAAUke,iBAC7B79B,SAAUjN,EACV0H,KAAM60B,EACN5gB,MAAO2Q,EAAMM,UAAU2B,MAJ3B,oCC/BL0xB,GA5BS,SAAC,GAA2D,IAAzDC,EAAwD,EAAxDA,eAAgB5R,EAAwC,EAAxCA,YAAa+O,EAA2B,EAA3BA,qBAC5ChS,GAAgB6U,GAAkB,IAAlC7U,YAEF0U,EAAoB,SAAC3kC,GACvBkzB,EAAYlzB,IAGhB,OACI,cAACjE,EAAA,EAAD,iBACKk0B,QADL,IACKA,OADL,EACKA,EAAaz5C,KAAI,SAACwpB,GACf,OACI,cAAC,GAAD,CAEIA,MAAOA,EACPiiC,qBAAsBA,EACtB9kE,mBAAiB,EACjB+1D,YAAayR,GAJR3kC,EAAM5iC,mBCepB2nE,GAvBiB,SAAC,GAAwC,IAAD,IAArCC,qBAAqC,SAAf1lC,EAAe,EAAfA,SAC/C4R,EAAQoE,eACN1wB,EAAcF,GAAdE,UACAu8B,EAAe18B,GACvB,OACI,cAACsX,EAAA,EAAD,CAAKunB,GAAG,OAAOhf,GAAG,OAAOgd,aAAY,oBAAepQ,EAAMM,UAAUwB,OAApE,SACI,cAAClR,GAAA,EAAD,UACI,eAAC,KAAD,CACIn8B,QAAQ,8BACRhK,GAAG,wBACHwM,MAAO68D,EACP1lC,SAAUA,EACVgB,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAUwB,MAAOziB,MAAO,SALzD,UAOI,cAACyR,GAAA,EAAD,CAAU75B,OAAK,EAAf,SAAgB,cAAC,aAAD,CAAY0pB,SAAUjN,EAAW0H,KAAM60B,EAAvC,yBAChB,cAACnf,GAAA,EAAD,CAAU75B,OAAO,EAAjB,SAAwB,cAAC,aAAD,CAAY0pB,SAAUjN,EAAW0H,KAAM60B,EAAvC,iCC2G7B8jB,GAzHE,SAAC,GAkBX,IAAD,EAjBFC,EAiBE,EAjBFA,aAiBE,IAhBFl+B,kBAgBE,SAfFksB,EAeE,EAfFA,YACAgP,EAcE,EAdFA,cAcE,IAbFD,4BAaE,SAZFkD,EAYE,EAZFA,aACAloE,EAWE,EAXFA,oBACAq7D,EAUE,EAVFA,SACAwM,EASE,EATFA,eACAM,EAQE,EARFA,uBACA/T,EAOE,EAPFA,8BACA9xD,EAME,EANFA,UACA+kE,EAKE,EALFA,cACA3tD,EAIE,EAJFA,WACAgoD,EAGE,EAHFA,uBACA5d,EAEE,EAFFA,MACAl6C,EACE,EADFA,QAEMmwD,EAAWjE,KACXxgC,EAAWC,eACjB,EAA0DnqB,oBAAS,GAAnE,mBAAOg9D,EAAP,KAA8BC,EAA9B,KACA,EAA8Bj9D,qBAA9B,mBAAO8T,EAAP,KAAgBopD,EAAhB,KACA,EAAwCl9D,oBAAS,GAAjD,mBAAO4uD,EAAP,KAAqBuO,EAArB,KACQC,EAAsBp2D,GAAZq2D,EAAYr2D,GACxBs2D,IACD,OAACT,QAAD,IAACA,MAAchpE,SAAUkpE,IAA2BK,IAAanN,IAAazI,IAA4B5yD,GACzG2oE,GAA8B,OAAZT,QAAY,IAAZA,OAAA,EAAAA,EAAcrU,MAAM50D,SAAUe,EAChD4oE,IAA+B,OAACf,QAAD,IAACA,GAAD,UAACA,EAAgB7U,mBAAjB,QAAC,EAA6B/zD,SAAUkpE,IAA2BM,EAClGxT,EAAW,OAAGiT,QAAH,IAAGA,OAAH,EAAGA,EAAcrU,MAAM9lC,QAAO,SAACklC,EAAKC,GACjD,OAAKA,EAAIS,OACH,GAAN,mBAAWV,GAAX,YAAmBC,EAAIS,SADCV,IAEzB,IAEG4V,EAAoB,SAAC9lC,GACvBkzB,EAAYlzB,IAGV+lC,EAAuB,SAACC,GAC1BT,EAAWS,GACXV,GAAyB,IAGvBW,EAAiC,WACnCX,GAAyB,IAGvBY,EAA6B,SAAClmC,GAChCzN,EAAS,kBAAD,cAAmByN,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAO5iC,eAGtC,OACI,qCACKi0D,GAAiCuU,GAC9B,cAAC,GAAD,CACIZ,cAAe/N,EACf33B,SAAU,SAAC5c,GACP8iD,EAAgB9iD,EAAEC,OAAOxa,UAIpCw9D,GACGT,EAAa1uD,KAAI,SAACrY,GAAD,OACb,cAAC,GAAD,CAEI+0D,YAAa4S,EACb5G,eAAgB6G,EAChB7D,cAAeA,EACfoC,cAAeA,EACfnmE,MAAOA,EACP8jE,qBAAsBA,EACtBlhB,MAAOA,EACP/Z,WAAYA,GAThB,OACS7oC,QADT,IACSA,OADT,EACSA,EAAOxC,OAWxB,cAAC,GAAD,CACI4D,UAAWA,EACXoX,WAAYA,EACZwF,QAASA,EACTuqB,OAAQ2+B,EACRvmE,QAASmnE,EACT3Y,YAAa2Y,EACbtH,uBAAwBA,EACxB93D,QAASA,IAEZg/D,GACG,cAAC,GAAD,CACI3S,YAAa4S,EACbhB,eAAgBA,EAChB7C,qBAAsBA,IAG7B2D,IAAe,OACZT,QADY,IACZA,OADY,EACZA,EAAcrU,MAAMt6C,KAAI,SAACu6C,GACrB,GAAK9zD,EACL,OACI,cAAC,GAAD,CAEI8zD,KAAMA,EACNrG,gBAAiB,GACjB8M,SAAU2N,EACVjS,YAAa4S,EACb3S,YAAa+S,EACbh4B,sBAAoB,EACpBlH,WAAYA,EACZirB,W5BhHU,I4BgHElB,EAAK1zD,OACjB25D,SAAUA,EACV9E,YAAaA,EACbb,8BAA+BA,EAC/B4F,aAAcA,GAZTlG,EAAKp1D,YCpFvBwqE,GAjBkB,SAACp3C,GAC9B,IAAQq3C,EAAqCr3C,EAArCq3C,aAAc/jC,EAAuBtT,EAAvBsT,SAAU/C,EAAavQ,EAAbuQ,SAEhC,OACI,eAACwC,GAAA,EAAD,CAAaxB,GAAI,CAAE/P,MAAO,KAA1B,UACI,cAACwR,GAAA,EAAD,CAAYpmC,GAAG,kBAAf,kCACA,cAAC,KAAD,CAAQwM,MAAOi+D,EAAc/jC,SAAUA,EAAUj+B,MAAM,uBAAuBuB,QAAQ,kBAAkB25B,SAAUA,EAAlH,SACK5vB,GAAwB8G,KAAI,SAACwoB,GAAD,OACzB,cAACgD,GAAA,EAAD,CAA0B75B,MAAO62B,EAAOrjC,GAAxC,SACKqjC,EAAOp8B,aADGo8B,EAAOrjC,aCwG3B0qE,GA3GQ,SAAC,GAkBjB,IAjBHC,EAiBE,EAjBFA,WACAC,EAgBE,EAhBFA,eACAC,EAeE,EAfFA,mBACAC,EAcE,EAdFA,iBACAC,EAaE,EAbFA,UACAC,EAYE,EAZFA,oBACAC,EAWE,EAXFA,iBACAC,EAUE,EAVFA,iBACAC,EASE,EATFA,yBACAxiE,EAQE,EARFA,gBAQE,IAPFyiE,yBAOE,aANFC,yBAME,aALF/pE,2BAKE,SAJFmoE,EAIE,EAJFA,uBAIE,IAHFrkB,aAGE,MAHM,GAGN,MAFFkmB,qBAEE,MAFc,KAEd,MADF5K,uBACE,SACInrB,EAAQoE,eACNzwB,EAAkDH,GAAlDG,QAASD,EAAyCF,GAAzCE,UAAWD,EAA8BD,GAA9BC,QAASG,EAAqBJ,GAArBI,iBAC7B2gD,EAAap2D,GACbi1C,EAA4B7/B,GAAf08B,EAAe18B,GAC9ByiD,EAAc,CAAExjD,GAAI,IAAK4/B,GAAI,IAAKsC,GAAI,EAAGr1B,MAAO,SAChD42C,EAA8BlqE,GAAuB+pE,EACrDI,EAAwBrmB,EAAM7kD,SAAW+qE,GAAiB5K,EAEhE,OACI,sCACM2K,IAAsBF,GACpB,eAAC/qC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAS6uB,IAAK,EAAjD,UACI,eAACjoB,GAAA,EAAD,CAAO/D,GAAE,eAAO4mC,GAAhB,UACI,cAAC,aAAD,CAAYr1C,SAAUhN,EAASyH,KAAMg4B,EAArC,qCAGA,cAAC,aAAD,CAAYzyB,SAAUjN,EAAW0H,KAAM60B,EAAY7c,GAAI,IAAvD,mMAIA,cAAC,SAAD,CAAQlU,QAASo2C,EAAoB30C,SAAU/M,EAA/C,8BAIJ,eAACuf,GAAA,EAAD,CAAO/D,GAAE,eAAO4mC,GAAhB,UACI,cAAC,aAAD,CAAYr1C,SAAUhN,EAASyH,KAAMg4B,EAArC,uCAGA,cAAC,aAAD,CAAYzyB,SAAUjN,EAAW0H,KAAM60B,EAAY7c,GAAI,IAAvD,wLAIA,cAAC,SAAD,CAAQlU,QAASq2C,EAAkB50C,SAAU/M,EAA7C,mCAMXkiD,GACG,eAACjrC,EAAA,EAAD,CACInY,GAAI,EACJ0/B,GAAI,EACJtiD,QAAQ,OACRy8B,eAAe,gBACf6C,GAAI,CAAEghB,aAAa,aAAD,OAAepQ,EAAMM,UAAUwB,QALrD,UAOI,cAACjX,EAAA,EAAD,UACKorC,GACG,cAAC,GAAD,CACIf,aAAchB,EACd/iC,SAAU0kC,IAAsBC,EAChC1nC,SAAUsnC,MAIrBxB,IAA2BK,GACxB,eAAC1pC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAWxB,WAAW,SAASqwB,IAAK,EAAvE,UACI,cAAC,SAAD,CAAQz6B,SAAUjN,EAAWyd,SAAU+kC,EAAuBh3C,QAASm2C,EAAvE,+BAGA,cAAC,SAAD,CAAQ10C,SAAUjN,EAAWwL,QAASk2C,EAAtC,uBAGA,cAAC,SAAD,CAAQjkC,SAAU/9B,EAAiB8rB,QAASy2C,EAAkBh1C,SAAUjN,EAAxE,oBAGA,cAACmX,EAAA,EAAD,CAAKuE,GAAI,CAAE+lB,YAAY,aAAD,OAAenV,EAAMM,UAAUqU,WAAar1B,OAAQ,UACzEvzB,EACG,cAAC,SAAD,CAAQolC,SAAU/9B,EAAiB8rB,QAASu2C,EAAqB90C,SAAUlN,EAA3E,uBAIA,cAAC,SAAD,CAAQyL,QAASs2C,EAAW70C,SAAUlN,EAAtC,+BCCjB0iD,GAzFe,SAAC,GAaxB,IAAD,IAZFzW,cAYE,MAZO,GAYP,MAXF/xD,YAWE,SAVFC,EAUE,EAVFA,QAUE,IATFC,aASE,MATM,GASN,MARFuoE,0BAQE,MARmB,GAQnB,MAPFC,4BAOE,MAPqB,GAOrB,MANFrzD,oBAME,MANa,GAMb,MALFo3B,mBAKE,MALY,GAKZ,EAJFC,EAIE,EAJFA,SACAC,EAGE,EAHFA,YAGE,IAFFg8B,gBAEE,SADFC,EACE,EADFA,sBAGMC,EAAoBF,EAAWp2D,GAAgCC,GAC/Ds2D,EAA6BH,EAF4Br2D,MAGzDy2D,EAAwBhX,GzG4GM,SAACA,GACrC,IAAM5yB,EAAU,GAChBA,EAAQjjB,KAAK,CAAEnY,YAAa,iBAAkBjH,GAAI,IAClD,IAAK,IAAIy/B,EAAI,EAAGA,EAAIw1B,EAAO10D,OAAQk/B,GAAK,EACpC4C,EAAQjjB,KAAK,CAAEnY,YAAY,eAAD,OAAiBw4B,EAAI,GAAKz/B,GAAIy/B,EAAI,IAEhE,OAAO4C,EyGlHiC6pC,CAAyBjX,GAG3D7oB,EAAgB,CAClB+/B,eAHe,EAIfC,sBAAuBJ,GAE3B,EAAyCz/B,aAAQ,CAAEH,gBAAeI,KAAM,QAAhEC,EAAR,EAAQA,aAAcrL,EAAtB,EAAsBA,QAASsL,EAA/B,EAA+BA,MAW/B,OACI,cAACoD,GAAA,EAAD,CAAQ5sC,KAAMA,EAAMC,QANF,WAClBupC,EAAMN,GACNjpC,KAI4C,kBAAgB,qBAAqB,mBAAiB,2BAAlG,SACI,+BACI,eAACi9B,EAAA,EAAD,CAAK2P,EAAG,EAAR,YACO3sC,GACC,cAAC,aAAD,CAAY8yB,SAAS,UAAUvF,KAAK,cAApC,SACKvtB,KAGF,OAAN6xD,QAAM,IAANA,OAAA,EAAAA,EAAQ10D,QAAS,GACd,eAAC6/B,EAAA,EAAD,CAAKuI,GAAI,EAAT,UACI,cAAC,aAAD,CAAYzS,SAAS,YAAYvF,KAAK,cAAcs5B,GAAI,EAAGthB,GAAI,EAA/D,SACKgjC,IAEL,cAAC,GAAD,CACIxpE,KAAK,iBACLkgC,QAAS4pC,EACTjiE,QAAQ,eACRg8B,aAAW,EACX5E,QAASA,OAIrB,cAAC,aAAD,CAAYlL,SAAS,YAAYvF,KAAK,cAAcs5B,GAAI,EAAxD,SACK2hB,IAEL,cAAC,GAAD,CAAYzpE,KAAK,wBAAwBkgC,QAAS0pC,EAAmB3qC,QAASA,EAASuD,GAAI,CAAEgE,GAAI,EAAG9D,GAAI,OACrGtsB,GACC,cAAC23B,GAAA,EAAD,CAAmB3d,UAAU,aAAa4d,MAAM,SAASnwC,GAAG,qBAAqBiqD,GAAI,EAArF,SACK1xC,IAGT,eAAC63B,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAU6lB,GAAI,GAAnD,UACKhY,GACG,cAAC,SAAD,CAAQzZ,SAAS,YAAYzB,QAAStxB,EAAtC,SACKwsC,IAGRC,GACG,cAAC,SAAD,CAAQ1Z,SAAS,UAAUzB,QAhD1B,WACrBgY,EAAamD,EAAbnD,IA+C0E/F,SAAUolC,EAAhE,SACKj8B,eCoFlBw8B,GA/JY,SAAC,GAA8E,IAA5EzoE,EAA2E,EAA3EA,UAAWqW,EAAgE,EAAhEA,kBAAmBqjD,EAA6C,EAA7CA,oBAA6C,IAAxBgP,iBAAwB,SAC/F1gC,EAAWC,wBACT0gC,EAAchlD,GACdilD,EAAc15D,GACdg3D,EAAsBp2D,GAAZq2D,EAAYr2D,GAC9B,EAAwChH,qBAAxC,mBAAO88D,EAAP,KAAqBiD,EAArB,KACA,EAA8C//D,oBAAS,GAAvD,mBAAO/D,EAAP,KAAwB+jE,EAAxB,KACA,EAAkDhgE,oBAAS,GAA3D,mBAAO2+D,EAAP,KAA0BsB,EAA1B,KACA,EAAsDjgE,oBAAS,GAA/D,mBAAOpL,EAAP,KAA4BsrE,EAA5B,KACA,EAA4DlgE,mBAASo9D,GAArE,mBAAOL,EAAP,KAA+BoD,EAA/B,KACA,EAA4CngE,qBAA5C,mBAAOy8D,EAAP,KAAuB2D,EAAvB,KACA,EAAoCpgE,qBAApC,mBAAOsO,EAAP,KAAmB+xD,EAAnB,KACA,EAA4CrgE,qBAA5C,mBAAOsgE,EAAP,KAAuBC,EAAvB,KAEA,EAKI7rD,GAA2B,CAAExd,YAAWqW,qBAAqB,CAAE6xC,KAA8B,OAAxBwR,GAAgCgP,IAJ/FzQ,EADV,EACI5jD,KACYi1D,EAFhB,EAEIlhB,WACSgX,EAHb,EAGItW,QACOygB,GAJX,EAIIv0D,MAEJ,GAAqHyI,KAArH,qBAAO+rD,GAAP,eAAkCC,GAAlC,GAA4Bp1D,KAAgCq1D,GAA5D,GAAgDthB,WAA6CuhB,GAA7F,GAAsF30D,MACtF,GAA4DmK,KAA5D,qBAAOvG,GAAP,MAAoCgxD,GAApC,MAAyBhkE,UACzB,GAAyBqb,KAAlBzE,GAAP,qBACA,GAA4B8D,KAArBupD,GAAP,qBACA,GAA+DxqD,KAA/D,qBAAO/F,GAAP,MAAqCwwD,GAArC,MAA0BlkE,UACpB4hE,GAAoB8B,GAAsBI,IAA4BI,IAAwBF,GAE9FG,GAAoB,SAAC11D,GACnBqlD,EACA2P,EjExCoB,SAACpR,GAAc,IAAD,EAClC1G,EAAU0G,EAAV1G,MAYR,OAViB,OAAGA,QAAH,IAAGA,GAAH,UAAGA,EAAO9lC,QAAO,SAACklC,EAAKC,GACpC,cAAIA,QAAJ,IAAIA,KAAKS,OACC,GAAN,mBACOV,GADP,YAEOC,EAAIS,SAGRV,IACR,WARc,aAAG,EAQZ15C,KAAI,SAACrY,GAAD,mBAAC,eAAgBA,GAAjB,IAAwB8C,QAAS9C,EAAM8xD,iBiE6BzBsZ,CAAiB31D,IAEnCw0D,EAAgBx0D,IAIlB41D,GAAgB,WAClBlB,GAAqB,GACrBF,EAAgB,MAChBQ,EAAkB,MAClBH,EAAkB,MAClBC,EAAc,MACdF,EAA0B/C,IAGxBgB,GAAgB,uCAAG,4BAAA/yD,EAAA,+EAEUyE,GAAe,CAAE5Y,cAAa6pC,SAFxC,QAEXqgC,EAFW,UAIbH,GAAkBG,GAClBf,EAAa,OAACe,QAAD,IAACA,OAAD,EAACA,EAAc9yD,YAC5B2xD,GAAqB,GACrBC,GAAuB,IAPV,gDAUjBhhC,EAASZ,GAAe,EAAD,KAVN,yDAAH,qDAchBkgC,GAAgB,uCAAG,sBAAAnzD,EAAA,+EAEXqI,GAAe,CAAEpF,aAAYpX,cAFlB,OAGjBiqE,KAHiB,+CAKjBjiC,EAASZ,GAAe,EAAD,KALN,wDAAH,qDAShB+iC,GAAiB,uCAAG,WAAOD,GAAP,eAAA/1D,EAAA,6DAChB0yD,EAAenN,EAAsB,WAAa,OADlC,kBAGZpgD,GAAgB,CAAElC,aAAYpX,YAAWqU,KAAM61D,IAAgBrgC,SAHnD,OAIlBm/B,GAAuB,GACvBhhC,EAASwT,GAAU,CAAEh8C,MAAO,WAAY0V,QAAQ,eAAD,OAAiB2xD,EAAjB,2BAL7B,gDAOlB7+B,EAASZ,GAAe,EAAD,KAPL,yDAAH,sDAWjBggC,GAAmB,uCAAG,sBAAAjzD,EAAA,+EAEd01D,GAAkB,CAAEzyD,aAAYpX,cAFlB,OAGpBgpE,GAAuB,GAHH,+CAKpBhhC,EAASZ,GAAe,EAAD,KALH,wDAAH,qDASnBgjC,GAAmB,uCAAG,WAAOvD,GAAP,eAAA1yD,EAAA,yDACpB0yD,IAAiBV,EADG,0CAGOqD,GAAkB,CAAExpE,YAAWqW,sBAHtC,QAGVzB,EAHU,SAKZs0D,EAAiB,OAACt0D,QAAD,IAACA,OAAD,EAACA,EAAUP,MALhB,gDAQhB2zB,EAASZ,GAAe,EAAD,KARP,QAYxB6hC,EAA0BpC,GAZF,yDAAH,sDAerB8C,MACkC,OAAjBA,SAAiB,IAAjBA,QAAA,EAAAA,GAAmB10D,UAAW0zD,GAE3C3gC,EAASZ,GAAeuiC,MAiChC,OA7BA1gE,qBAAU,WACN,GAAIgvD,EAAU,CACV,MAAuEA,GAAY,GAA/D77D,EAApB,EAAQgb,WAAiCizD,EAAzC,EAAwBtlE,gBAAkCulE,EAA1D,EAA0DA,SAC1DxB,EAAmBuB,GACnBlB,EAAc/sE,GACd4sE,EAAuBsB,IAAa1B,GACpCG,GAAqB,GACrBgB,GAAkB9R,GAGtB,GAAIwR,GAAc,CACd,MAAuEA,IAAgB,GAAnErtE,EAApB,EAAQgb,WAAiCizD,EAAzC,EAAwBtlE,gBAAkCulE,EAA1D,EAA0DA,SAC1DpB,EAAkBO,IAClBX,EAAmBuB,GACnBlB,EAAc/sE,GACd4sE,EAAuBsB,IAAa1B,MAEzC,CAAC3Q,EAAUwR,KAEdxgE,qBAAU,WACFsgE,MACiB,OAAbA,SAAa,IAAbA,QAAA,EAAAA,GAAet0D,UAAW0zD,EAC1BsB,KAEAjiC,EAASZ,GAAemiC,QAGjC,CAACA,KAEG,CACHnyD,aACAgyD,iBACA7D,iBACAK,eACA7gE,kBACA6kE,sBACApC,qBACAC,oBACA/pE,sBACAosE,wBACA5C,oBACAI,oBACA6C,qBACA/C,uBACAgD,uBACAhL,yBACAyG,2BC+LO0E,GA7UK,SAAC,GAA0F,IAAxFjjE,EAAuF,EAAvFA,QAASymC,EAA8E,EAA9EA,iBAAkBi5B,EAA4D,EAA5DA,eAAgBxlB,EAA4C,EAA5CA,MAAOkmB,EAAqC,EAArCA,cAAe5K,EAAsB,EAAtBA,gBAC9E90B,EAAWC,wBACT3kC,EAA2EgE,EAA3EhE,aAAcnC,EAA6DmG,EAA7DnG,WAAgBnB,EAA6CsH,EAAjDlL,GAAe6D,EAAkCqH,EAAlCrH,cAAesD,EAAmB+D,EAAnB/D,eACxDinE,EAAgB17D,GAChBqX,EAAWhV,GACbi0C,EAAS,OAAG5D,QAAH,IAAGA,OAAH,EAAGA,EAAO7kD,OACzB,EAAgEmM,oBAAS,GAAzE,mBAAOy+D,EAAP,KAAiCkD,EAAjC,KACA,EAAkD3hE,oBAAS,GAA3D,mBAAO4hE,EAAP,KAA0BC,EAA1B,KACA,EAAgD7hE,oBAAS,GAAzD,mBAAO8hE,EAAP,KAAyBC,EAAzB,KACA,EAAkD/hE,oBAAS,GAA3D,mBAAOgiE,EAAP,KAA0BC,EAA1B,KACA,EAAwDjiE,oBAAS,GAAjE,mBAAOkiE,EAAP,KAA6BC,EAA7B,KACA,EAAwDniE,oBAAS,GAAjE,mBAAOoiE,EAAP,KAA6BC,EAA7B,KACA,EAAoDriE,oBAAS,GAA7D,mBAAOsiE,EAAP,KAA2BC,EAA3B,KACA,EAA8CviE,qBAA9C,mBAAOwiE,EAAP,KAAwBC,EAAxB,KACA,GAAkCziE,qBAAlC,qBAAOjK,GAAP,MAAkB2sE,GAAlB,MACA,GAAsC1iE,qBAAtC,qBAAO85D,GAAP,MAAoB6I,GAApB,MACA,GAA8C3iE,qBAA9C,qBAAO4iE,GAAP,MAAwBC,GAAxB,MACA,GAA8D7iE,oBAAS,GAAvE,qBAAO8iE,GAAP,MAAgCC,GAAhC,MACA,GAA0C/iE,mBAAS,MAAnD,qBAAOgjE,GAAP,MAAsBC,GAAtB,MACA,GAAoDjjE,oBAAS,GAA7D,qBAAOkjE,GAAP,MAA2BC,GAA3B,MAEMvS,GAAsBz5D,IAAkBuqE,EAExCpoE,GAAY6mB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OADxC,OAEbkC,GAAUI,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAFpC,OAGbulD,GlEjCmB,SAAC9mB,EAAW7hD,GACrC,OAAI6hD,EAAY,IAAM,EACX7hD,EAEJ2zB,KAAK2W,MAAMtqC,EAAiBA,GAAkB6hD,EAAY,IkE6B9C+mB,CAAc/mB,EAAW7hD,GACtC6oE,GAAoB,oBAAgBhnB,EAAhB,oEAAqF8mB,GAArF,wBAA+G9pE,GAA/G,cAA8HymB,GAA9H,KAS1B,GAAmE3I,KAAnE,qBAAOvF,GAAP,MAA4C0xD,GAA5C,MAAiCzmE,UACjC,GAAgCsZ,GAA+B,CAAElf,cAA1DssE,GAAP,qBACA,GAgBI7D,GAAmB,CAAEzoE,YAAWqW,mBAAmB,EAAMqjD,yBAfzDtiD,GADJ,GACIA,WACAgyD,GAFJ,GAEIA,eACA7D,GAHJ,GAGIA,eACAK,GAJJ,GAIIA,aACA7gE,GALJ,GAKIA,gBACAyiE,GANJ,GAMIA,kBACAC,GAPJ,GAOIA,kBACA/pE,GARJ,GAQIA,oBACAwpE,GATJ,GASIA,iBACAI,GAVJ,GAUIA,iBACA8C,GAXJ,GAWIA,oBACAD,GAZJ,GAYIA,kBACA/C,GAbJ,GAaIA,oBACAvB,GAdJ,GAcIA,uBACAzG,GAfJ,GAeIA,uBAGJ,GAA2DtiD,GAA4B,CAAE1F,gBAAzF,qBAAOm1D,GAAP,MAAwCC,GAAxC,MAA6B5mE,UAC7B,GAAwBwb,KAAjB2jD,GAAP,qBACA,GAAwB1jD,KAAjBorD,GAAP,qBAEMxE,GAAW3gE,EAAQtG,cAAgBmlB,EACnCvgB,GAAYmoC,GAAoBy5B,IAAqB6E,GAWrDK,GAAsB,uCAAG,sBAAAv4D,EAAA,6DAC3Bs2D,GAA4B,GADD,kBAGjB6B,GAAsBtsE,GAAW6pC,SAHhB,OAIvBu1B,KAJuB,gDAMvBp3B,EAASZ,GAAe,EAAD,KANA,yDAAH,qDAgCtBulC,GAA6B,uCAAG,sBAAAx4D,EAAA,sDAClCmzD,KACAuE,IAA2B,GAC3BpB,GAA4B,GAHM,2CAAH,qDAuB7BmC,GAAkB,uCAAG,WAAOhyD,GAAP,SAAAzG,EAAA,6DACvB83D,IAAsB,GADC,kBAGbtxD,GAAuB,CAAE9c,YAAaiuE,GAAcjuE,YAAamC,YAAWoX,cAAYwD,cAAaivB,SAHxF,sDAKnB7B,EAASZ,GAAe,EAAD,KALJ,wDAAH,sDAalBylC,GAAgB,uCAAG,WAAO7yD,GAAP,SAAA7F,EAAA,yDAChBq4D,GADgB,0CAGPD,GAAmB,CACrBn1D,cACA4C,aACD6vB,SANU,OAObu1B,KAPa,gDASbp3B,EAASZ,GAAe,EAAD,KATV,QAYrB2jC,GAAqB,GAZA,yDAAH,sDAehB+B,GAA0B,uCAAG,sBAAA34D,EAAA,sDAC/B42D,GAAqB,GADU,2CAAH,qDAU1BgC,GAA0B,uCAAG,sBAAA54D,EAAA,+EAErB4wD,GAAc,CAAE3tD,cAAYwF,QAAS0uD,IAAmBzhC,SAFnC,OAG3Bu1B,KAH2B,+CAK3Bp3B,EAASZ,GAAe,EAAD,KALI,OAO/B6jC,GAAwB,GAPO,yDAAH,qDAiB1B+B,GAA8B,uCAAG,sBAAA74D,EAAA,+EAEzBs4D,GAAc,CAAE5uE,YAAa6tE,KAFJ,OAG/BtM,KAH+B,+CAK/Bp3B,EAASZ,GAAe,EAAD,KALQ,OAOnC+jC,GAAwB,GAPW,yDAAH,qDAU9B8B,GAAyB,uCAAG,sBAAA94D,EAAA,+EAEpBizD,KAFoB,OAG1BhI,KAH0B,+CAK1Bp3B,EAASZ,GAAe,EAAD,KALG,OAO9BikC,GAAsB,GAPQ,yDAAH,qDAUzB6B,GAAYz/B,GAA8BnmC,GAEhD,OACI,eAACg1B,GAAA,EAAD,CAAWC,SAAS,KAAK4wC,gBAAc,EAAvC,UACKvnE,GACG,cAAC,GAAD,IAEA,qCACI,cAAC,GAAD,CACImhE,WA3EY,WAC5BgE,GAAqB,IA2EL/D,eAAgBA,EAChBC,mBAjJa,WAC7B0D,GAAqB,IAiJLzD,iBAAkBwF,GAClBvF,UA3HI,WACpB0D,GAAoB,IA2HJzD,oBAxHM,WACtBiE,GAAsB,IAwHNhE,iBA1JW,SAACj1C,GAAW,IAAD,EAChCy0C,EAAY,OAAGz0C,QAAH,IAAGA,GAAH,UAAGA,EAAOhP,cAAV,aAAG,EAAexa,MACpCwhE,GAAoBvD,IAyJJS,iBAtHW,WAC3BuE,IAA2B,IAsHXtE,yBAA0BA,EAC1BxiE,gBAAiBA,GACjByiE,kBAAmBA,GACnBC,kBAAmBA,GACnB/pE,oBAAqBA,GACrBmoE,uBAAwBA,GACxBrkB,MAAOA,EACPkmB,cAAeA,EACf5K,gBAAiBA,IAErB,cAAC,GAAD,CACIr1B,YAAU,EACVk+B,aAAcyD,GACdxD,aAAcA,GACdL,eAAgBA,GAChBM,uBAAwBA,GACxBlS,YArHM,SAAClzB,GACvBsrC,GAAiBtrC,GACjBwrC,IAAsB,IAoHNtJ,cA7DQ,SAAC9kE,EAAae,EAAO04D,GAC7CqU,GAAmB9tE,GACnB2tE,GAAa5sE,GACb6sE,GAAenU,GACf6T,GAAwB,IA0DRpG,cA9EQ,SAACnoD,EAASre,GAClCgtE,EAAmB3uD,GACnB4uD,GAAajtE,GACb0sE,GAAwB,IA4ERvI,sBAAoB,EACpBhlE,oBAAqBA,GACrBq7D,SAAUzI,GACVtwD,UAAS,OAAEsH,QAAF,IAAEA,OAAF,EAAEA,EAASlL,GACpBkL,QAASA,EACT8P,WAAYA,GACZgoD,uBAAwBA,GACxB5d,MAAOA,OAInB,cAAC,GAAD,CACIxV,SAxK4B,WACpC2+B,GAAqB,GACrBzD,MAuKQj7B,YAAY,oBACZF,YAAY,SACZzsC,KAAMorE,EACNnrE,QAhJuB,WAC/BorE,GAAqB,IAgJbnrE,MAAM,oBACNmV,aAAcu4D,GAjQ1B,gLAiQ4E,GAChEh4D,QAASk3D,KAEb,cAAC,GAAD,CACI/a,OAAQ+X,GACRnB,SAAUA,GACVj8B,SAAU6gC,GACV5gC,YAAY,YACZF,YAAY,SACZzsC,KAAMwrE,EACNvrE,QAASutE,GACTttE,MAAM,aACNuoE,mBA9Oe,6CA+OfC,qBA9OiB,sDA+OjBE,sBAAuBsE,KAE3B,cAAC,GAAD,CACIxgC,SA1L2B,SAAC,GAA0B,IAAxB4d,EAAuB,EAAvBA,iBACtCihB,GAAoB,GACpBV,GAAkB,CAAEiD,YAAaxjB,KAyLzB3d,YAAY,mBACZF,YAAY,SACZzsC,KAAMsrE,EACNrrE,QAnKsB,WAC9BsrE,GAAoB,IAmKZrrE,MAAM,kBACN0V,QA1PR,gIA2PQy0C,cAvP0B,sDAyP9B,cAAC,GAAD,CACI3d,SAAU2gC,GACV1gC,YAAY,UACZF,YAAY,SACZzsC,KAAMssE,GACNrsE,QAAS,kBAAMssE,IAA2B,IAC1CrsE,MAAM,kBACN0V,QAjQe,mDAmQnB,cAAC,GAAD,CACIiyB,OAAQ6kC,GACRzsE,QA1KmB,WAC3B0sE,IAAsB,IA0Kd/hC,SAAU0iC,GACVnsC,MAAOqrC,GACPrS,eAAa,EACbC,oBAAqBA,KAEzB,cAAC,GAAD,CACI1tB,SAAU+gC,GACV9gC,YAAY,cACZF,YAAY,aACZzsC,KAAM0rE,EACNzrE,QAAS,kBAAM0rE,GAAwB,IACvCzrE,MAAM,eACN0V,QAAO,0CAAqCrW,GAArC,wGAEX,cAAC,GAAD,CACImtC,SAAUghC,GACV/gC,YAAY,cACZF,YAAY,aACZzsC,KAAM4rE,EACN3rE,QAAS,kBAAM4rE,GAAwB,IACvC3rE,MAAM,oBACN0V,QAAO,qDAAgD0tD,GAAhD,iBAAoE/jE,GAApE,sFAEX,cAAC,GAAD,CACImtC,SAAUihC,GACVhhC,YAAY,UACZF,YAAY,SACZzsC,KAAM8rE,EACN7rE,QAAS,kBAAM8rE,GAAsB,IACrC7rE,MAAM,qBACN0V,QAlSkB,0DCNnBm4D,GA7CkB,SAAC,GAAgC,IAA9Bp0D,EAA6B,EAA7BA,QAASkkC,EAAoB,EAApBA,cACnCxL,EAAQoE,eACNz0C,EAA4D2X,EAA5D3X,YAAazE,EAA+Coc,EAA/Cpc,SAAU0E,EAAqC0X,EAArC1X,SAAUC,EAA2ByX,EAA3BzX,aAActD,EAAa+a,EAAb/a,SACjDujB,EAAO4L,GAAoB9rB,GAMjC,OACI,cAACi7B,EAAA,EAAD,CAAKuI,GAAI,EAAkB9G,gBAAiB0T,EAAMM,UAAUwB,MAAOtH,EAAG,IAAKsG,aAAc,EAAzF,SACI,eAAC/R,GAAA,EAAD,CAAMC,WAAS,EAAC2W,UAAU,MAAM5a,WAAW,SAASwB,eAAe,gBAAgBf,SAAS,WAA5F,UACI,cAACuD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAvB,SACI,cAAC,iBAAD,CACIud,aAAa,OACbC,YAAY,OACZ/gC,KAAMA,EACN67C,WAAYh8D,EACZ+7D,OAAQjwC,GAAqB5rB,OAGrC,cAACk/B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAvB,gBACK9mC,QADL,IACKA,OADL,EACKA,EAAUuD,UAEf,cAACi/B,GAAA,EAAD,CACIE,MAAI,EACJM,GAAI,GACJ8D,GAAI,EACJjE,GAAI,CAAE5D,SAAU,CAAE+D,GAAI,WAAY8D,GAAI,UAAYmO,IAAK,CAAEjS,GAAI,GAAKkS,MAAO,CAAElS,GAAI,IAC/Ez/B,QAAQ,OACRy8B,eAAe,WANnB,SAQI,cAAC+kB,GAAA,EAAD,CAAYpyB,QA3BA,WACxBssB,EAAclkC,IA0BF,SACI,cAAC,aAAD,CAAY8T,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUoV,cAvB5CxqD,ICkJVywE,GAtJkB,SAAC,GAQ3B,IAAD,IAPFltE,gBAOE,MAPS,GAOT,MANFmtE,0BAME,aALF3xB,qBAKE,SAJF4xB,EAIE,EAJFA,aACAC,EAGE,EAHFA,gBAGE,IAFF1vE,kBAEE,aADF2vE,mBACE,MADY,KACZ,EACI1lC,EAAWC,wBACX0J,EAAQoE,eACN6L,EAAe18B,GACfG,EAAcF,GAAdE,UACR,EAAgDvc,mBAAS,IAAzD,mBAAO6kE,EAAP,KAAyBC,EAAzB,KACA,EAA0D9kE,oBAAS,GAAnE,mBAAOqzC,EAAP,KAA8BC,EAA9B,KACA,EAAkDtzC,oBAAS,GAA3D,mBAAO+kE,EAAP,KAA0BC,EAA1B,KACA,EAAkDhlE,oBAAS,GAA3D,mBAAOilE,EAAP,KAA0BC,EAA1B,KACA,EAA0DllE,qBAA1D,mBAAOmlE,EAAP,KAA8BC,EAA9B,KAEMC,EAA0BT,GAAe,EACzCU,GAA2B,OAARhuE,QAAQ,IAARA,OAAA,EAAAA,EAAUzD,UAAWwxE,GAA2C,OAAhB/tE,EAAS,GAElF6I,qBAAU,WACN,IAAY,OAAR7I,QAAQ,IAARA,OAAA,EAAAA,EAAUzD,QAAS,EAAG,CACtB,IAAM8/C,EAAgBnvB,GAA0BltB,GAChDwtE,EAAoBnxB,MAEzB,CAACr8C,IAEJ,IAsBMiuE,EAAwB,SAACp1D,GAC3Bi1D,EAAyBj1D,GACzB+0D,GAAqB,GACrB5xB,GAAyB,IA4BvBnsB,EAAS89C,EAAoB,SAAW,MACxCpxB,EAAcoxB,EA1BW,WAC3B3xB,GAAyB,IAxCS,KAYtB,OAARh8C,QAAQ,IAARA,OAAA,EAAAA,EAAUzD,UACVqrC,EACIwT,GAAU,CACNoB,SAAS,EACTp9C,MAAO,QACP0V,QAAS,gDAGV,KAwBPu4D,EAAgBQ,IAIQ,WAC5B7xB,GAAyB,GAEpBgyB,GACDZ,EAAaS,IAcfpxB,EAAU,UAAM5sB,EAAN,YACV6sB,EAAY,0CAA+B7sB,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQrzB,cAAvC,mBAAwDqxE,QAAxD,IAAwDA,OAAxD,EAAwDA,EAAuB3sE,YAA/E,kBACZgtE,EAA8BF,EAEpC,OAAOxyB,EACH,cAAC,GAAD,IAEA,qCACI,cAACpf,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACKkpD,EACG,cAAC,GAAD,IADe,OAGfI,QAHe,IAGfA,OAHe,EAGfA,EAAkB12D,KAAI,SAACgC,GAAD,OAClB,cAAC,GAAD,CAA2CA,QAASA,EAASkkC,cAAekxB,GAA7Cp1D,EAAQ7c,SAIlDyxE,GACG,cAAC/oC,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,EAAG0Q,UAAW,QAArC,SACI,cAAC,GAAD,CACItS,iBA5DO,SAAClqB,GACxBi1D,EAAyBj1D,GACzB+0D,GAAqB,GACrB5xB,GAAyB,GACzB0xB,GAAqB,IAyDL5qC,mBAAiB,EACjBE,gBAAiBuqC,EACjB9oE,MAAM,gBACN9G,WAAYA,OAItBqwE,GACE,cAAC,SAAD,CACIv9C,QAxCgB,WAC5Bi9C,GAAqB,SAACve,GAAD,OAAiBA,MAwC1BxuB,GAAI,CAAEyT,cAAe,QACrB6wB,UAAW,cAAC,UAAD,CAASt4C,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,kBAHzD,SAKI,cAAC,aAAD,CACIpvB,GAAI,CAAEC,MAAO2Q,EAAMM,UAAUke,iBAC7B79B,SAAS,YACTvF,KAAK,aACLiU,MAAO2Q,EAAMM,UAAU2B,MAJ3B,kCAUR,cAAC,GAAD,CACI5H,SAAU2Q,EACV1Q,YAAY,UACZF,YAAY,SACZzsC,KAAM68C,EACN58C,QAvDe,WACvB68C,GAAyB,IAuDjB58C,MAAOq9C,EACP3nC,QAAS4nC,IAEZwxB,GACG,cAAC,aAAD,CAAYh8C,SAAUjN,EAAW0H,KAAM60B,EAAvC,oC,0CCvGD2sB,GA3CO,SAAC/+C,GACnB,IAAQgO,EAAgEhO,EAAhEgO,QAASj/B,EAAuDixB,EAAvDjxB,KAAMsG,EAAiD2qB,EAAjD3qB,MAAOmQ,EAA0Cwa,EAA1Cxa,MAA9B,EAAwEwa,EAAnCzxB,kBAArC,SAAyDskC,EAAe7S,EAAf6S,WACzD,EAAwCv5B,oBAAS,GAAjD,mBAAO0lE,EAAP,KAAqBC,EAArB,KAEMC,EAA2B,WAC7BD,GAAiBD,IAGrB,OACI,cAAC,KAAD,CACIjwE,KAAMA,EACNi/B,QAASA,EACTE,MAAO,CAAEC,SAAU5/B,GACnB6/B,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACJ,cAAC0E,GAAA,EAAD,CAAaxE,WAAS,EAAtB,SACI,cAACD,GAAA,EAAD,2BACQD,GADR,IAEI7oB,MAAOA,EACP4qB,aAAa,KACbxjC,GAAG,8BACHimC,WAAYA,EACZ9wB,KAAMi9D,EAAe,OAAS,WAC9BjqC,WAAY,CACRC,aACI,cAAC0M,GAAA,EAAD,CAAgB/T,SAAS,MAAzB,SACI,cAAC8lB,GAAA,EAAD,CACI,aAAW,6BACXpyB,QAAS69C,EACTtoB,KAAK,MAHT,SAKKooB,EAAe,cAAC,KAAD,IAAoB,cAAC,KAAD,SAKpD3pE,MAAOA,WC2OhB8pE,GA3PS,SAAC,GAA8C,IAAD,EAA3CxnC,EAA2C,EAA3CA,OAAQ5nC,EAAmC,EAAnCA,QAASjB,EAA0B,EAA1BA,OAAQyvD,EAAkB,EAAlBA,YAC1C/lB,EAAWC,wBACT5iB,EAAcF,GAAdE,UACA2oC,EAAmC9oC,GAAf08B,EAAe18B,GACnC+oB,EAAiB5+B,GAAX6+C,EAAW7+C,GACzB,EAAoEsO,GAAgBrf,GAAtEswE,EAAd,EAAQv6D,KAA8BunC,EAAtC,EAA2Bh2C,UAA0BwiD,EAArD,EAAqDA,WACrD,EAAqD7oC,KAArD,mBAAOvG,EAAP,KAAgC61D,EAAhC,KAAqBjpE,UACrB,EAA0Dob,KAA1D,mBAAO1E,EAAP,KAAmCyxD,EAAnC,KAAwBnoE,UAChB4nC,EAA4B1+B,GAAhB07D,EAAgB17D,GACpC,EAA0ChG,qBAA1C,mBAAO7I,EAAP,KAAsB6uE,EAAtB,KACA,EAAgDhmE,qBAAhD,mBAAOo/B,EAAP,KAAyBC,EAAzB,KACA,EAAgDr/B,qBAAhD,mBAAO+lD,EAAP,KAAyBC,EAAzB,KACA,EAA4DhmD,oBAAS,GAArE,mBAAOimE,EAAP,KAA+BC,EAA/B,KACA,EAA0ElmE,mBAASmlC,GAAnF,mBAAOghC,EAAP,KAAsCC,GAAtC,KACMngB,GAAgCggB,EAAyB,OAAS,SAClExB,GAAqBsB,GAAmBd,GAAqB3lB,EAEnE,GAAqBpoC,KAAd3F,GAAP,qBAEMmuB,GAAgB,CAClBjqC,KAAM,GACNmJ,gBAAiB,GACjBynE,yCAA0C,EAC1CxnE,UAAW,GACXzJ,SAAU,GACV6hE,kBAAmBl5C,QAGvB,GAKI8hB,aAAQ,CAAEH,iBAAeI,KAAM,QAJ/BC,GADJ,GACIA,aADJ,MAEIE,UAAaC,GAFjB,GAEiBA,OAAQC,GAFzB,GAEyBA,YACrBzL,GAHJ,GAGIA,QACAsL,GAJJ,GAIIA,MAGJ7/B,qBAAU,WACN,GAAI2lE,EAAa,CACb,IACIrwE,EAOAqwE,EAPArwE,KACAkJ,EAMAmnE,EANAnnE,UACAxG,EAKA2tE,EALA3tE,kBACAkuE,EAIAP,EAJAO,yCACAznE,EAGAknE,EAHAlnE,gBACe0nE,EAEfR,EAFA3uE,cACA0H,EACAinE,EADAjnE,UAGAk4D,EAAO,KACX,GAAIp4D,EAAW,CACX,IAAM4nE,EAAe3oD,GAAqB,CAAEjf,cAC5Co4D,EAAOh5C,KAAOwoD,EAAc,YAGhC,IAAIC,EAAc,GACd3nE,IACA2nE,EAAc1+D,GAASU,MAAK,SAACi+D,GAAD,OAAaA,EAAQlsE,cAAgBsE,MAGrE,IAAMwmD,EAA2D,IAA7CghB,EAEd1lC,EAAW,CACblrC,OACA4wE,2CACAjxE,UAJkC,OAAjB+C,QAAiB,IAAjBA,OAAA,EAAAA,EAAmB9C,aAAnB,OAAgC8C,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAmB7C,mBAAoB,GAKxF2hE,kBAAmBF,EACnBl4D,UAAW2nE,EAAYlzE,GACvBsL,gBAAiBA,GAAmB,IAGxCsnE,EAA0B7gB,GAC1B2gB,EAAiBM,GACjBjnC,EAAoBlnC,GACpB6tD,EAAoBrlB,GACpBX,GAAMW,MAEX,CAACmlC,IAEJ,IAAMllC,GAAgB,uCAAG,WAAOC,GAAP,+BAAAx1B,EAAA,yDACf4E,EADe,eACH4wB,GACVo2B,EAA8Cp2B,EAA9Co2B,kBAA6ByP,EAAiB7lC,EAA3BzrC,SAEvB+B,IAAkBuqE,IACZiF,EAAY1P,EAAkB2P,QAC9B3oD,EAAY0oD,EAAU1oD,YACtBsoD,EAAeI,EAAUhmD,SAAS1C,EAAW,WAC7CG,EAAQmoD,EAAan8D,IAAI,QACzBiU,EAAUkoD,EAAan8D,IAAI,WAEjC6F,EAAKtR,UAAL,UAAoByf,EAApB,YAA6BC,IAGjCpO,EAAKo2D,yCAA2C7oD,SAAS2oD,IAErDhmC,GAAY/qC,SAhBK,iCAiBeinC,GAAgBqqC,GAjB/B,OAiBX5lC,EAjBW,OAkBjB7wB,EAAK9X,kBAAoB2oC,EAlBR,wBAoBjB7wB,EAAK9X,kBAAoBinC,EApBR,eAuBjBjoC,IAAkButC,WACXz0B,EAAKpR,iBACLoR,EAAKtR,kBAGTsR,EAAK7a,gBACL6a,EAAKgnD,yBACLhnD,EAAK/Y,UA9BS,oBAiCXqa,GAAW,CAAE/b,OAAM,OAAEswE,QAAF,IAAEA,OAAF,EAAEA,EAAaxyE,GAAI2c,OAAM/Y,UAAS,OAAE4uE,QAAF,IAAEA,OAAF,EAAEA,EAAa5uE,YAAa6pC,SAjCtE,2DAmCjB7B,EAASZ,GAAe,EAAD,KAnCN,2DAAH,sDAiDhBuoC,GAAyB,uCAAG,WAAOC,GAAP,SAAAz7D,EAAA,+EAEpBmI,EAAc,CAAEhe,SAAQie,UAAWqzD,EAAexzE,KAF9B,sDAI1B4rC,EAASZ,GAAe,EAAD,KAJG,wDAAH,sDAQzByoC,GAAsB,uCAAG,WAAOC,GAAP,SAAA37D,EAAA,+EAEjB6E,EAAW,CAAE1a,SAAQ2a,QAAS,CAAEpc,SAAUizE,EAAajzE,YAAcgtC,SAFpD,sDAIvB7B,EAASZ,GAAe,EAAD,KAJA,wDAAH,sDAc5B,OACI,cAAC,GAAD,CACID,OAAQA,EACR3nC,MAAK,kCAAYovE,QAAZ,IAAYA,OAAZ,EAAYA,EAAarwE,YAAzB,QAAiC,IACtCmvD,SAAS,OACTnuD,QAhCc,WAClBA,IACAupC,GAAM+lB,IA+BFlB,WAtCa,WACjB9kB,GAAaa,GAAbb,GACAklB,KA+BA,SAOI,cAACrtB,GAAA,EAAD,CAAMxC,eAAe,SAAS8L,GAAI,EAAGjF,GAAI,GAAzC,SACK6W,EACG,cAAC,GAAD,IAEA,qCACI,iCACI,cAAC,aAAD,CAAY7W,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,qBAGA,cAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,SACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QjH9Dd,EiH8DF,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAO5rC,KAAK,OAAOsG,MAAM,YAAY44B,WAAYuL,GAAOzqC,KAAMR,YAAU,EAACy/B,QAASA,OAEtF,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CAAU3iC,KAAK,WAAWsG,MAAM,aAAamQ,QAASg0B,GAAO9qC,SAAUs/B,QAASA,YAI3Fv9B,IAAkBuqE,GACf,qCACI,cAAC,aAAD,CAAYzlC,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,mCAGA,cAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,SACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QjH7EtB,EiH6EM,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,YACLsG,MAAM,MACN45B,QAAS7tB,GACTxK,QAAQ,YACRg8B,aAAW,EACX5E,QAASA,OAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CAAY3iC,KAAK,oBAAoBsG,MAAM,mBAAmB24B,QAASA,eAM3F,cAAC,aAAD,CAAYuH,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,mCAGA,cAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,SACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAACzC,eAAe,gBAAgBxB,WAAW,SAA1D,UACI,cAAC,aAAD,CAAYpK,SAAUjN,EAAW0H,KAAM60B,EAAvC,sCAGA,eAACplB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAK,EAAGrwB,WAAW,SAAvC,UACI,cAAC,aAAD,CAAYpK,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKmN,KAEL,cAAC1a,GAAD,CACI7W,QAASA,GACTomB,QAASmrB,EACT9jC,WAAY,CAAE,aAAa,UAC3BlL,SAzEC,WACrC,IAAMuvB,EAAQ2f,IAAkChhC,EAAOigB,EAASjgB,EAChE+gC,GAA0B,SAACzf,GAAD,OAAiBA,KAC3C2f,GAAiC5f,cA2Eb,cAAC,aAAD,CAAYvqB,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,sBAGA,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,UACI,cAAC,aAAD,CAAY1Q,GAAI,IAAKzS,SAAUjN,EAAW0H,KAAM60B,EAAhD,8GAGA,cAAC,GAAD,CAAerjD,KAAK,kBAAkBsG,MAAM,WAAW24B,QAASA,WAGxE,cAAC,aAAD,CAAYuH,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,sBAGA,cAAC,GAAD,CACIpS,cAAeA,EACfx7C,SAAQ,OAAEwuE,QAAF,IAAEA,OAAF,EAAEA,EAAaxuE,SACvBmtE,mBAAoBA,GACpBC,aAAcqC,GACdpC,gBAAiBkC,aC7J9BI,GAlGkB,SAAC,GAO3B,IAAD,IANF3vE,gBAME,MANS,GAMT,MALFmtE,0BAKE,aAJF3xB,qBAIE,SAHF4xB,EAGE,EAHFA,aACAC,EAEE,EAFFA,gBAEE,IADF1vE,kBACE,SACF,EAAgD+K,mBAAS,IAAzD,mBAAO6kE,EAAP,KAAyBC,EAAzB,KACA,EAA0D9kE,oBAAS,GAAnE,mBAAOqzC,EAAP,KAA8BC,EAA9B,KACA,EAAkDtzC,oBAAS,GAA3D,mBAAO+kE,EAAP,KAA0BC,EAA1B,KACA,EAAkDhlE,oBAAS,GAA3D,mBAAOilE,EAAP,KAA0BC,EAA1B,KACA,EAA0DllE,qBAA1D,mBAAOmlE,EAAP,KAA8BC,EAA9B,KACM8B,EAAgB5vE,GAAY6vE,MAAMC,QAAQ9vE,GAAYA,EAAW,CAACA,GAElEguE,EAA6C,KAAb,OAAb4B,QAAa,IAAbA,OAAA,EAAAA,EAAerzE,SAAqC,OAArBqzE,EAAc,GAEtE/mE,qBAAU,WACN,GAAI7I,IAAyB,OAAb4vE,QAAa,IAAbA,OAAA,EAAAA,EAAerzE,QAAS,EAAG,CACvC,IAAM8/C,EAAgBnvB,GAA0B0iD,GAChDpC,EAAoBnxB,MAEzB,CAACr8C,IAEJ,IAAM+vE,EAAqB,SAACl3D,GACxBi1D,EAAyBj1D,GACzB+0D,GAAqB,GACrB5xB,GAAyB,GACzB0xB,GAAqB,IAGnBO,EAAwB,SAACp1D,GAC3Bi1D,EAAyBj1D,GACzB+0D,GAAqB,GACrB5xB,GAAyB,IAkBvBnsB,EAAS89C,EAAoB,SAAW,MACxCpxB,EAAcoxB,EAhBW,WAC3B3xB,GAAyB,GACzBqxB,EAAgBQ,GAChBL,EAAoB,KAGQ,WAC5BxxB,GAAyB,GACzBoxB,EAAaS,IASXpxB,EAAU,UAAM5sB,EAAN,YACV6sB,EAAY,0CAA+B7sB,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQrzB,cAAvC,mBAAwDqxE,QAAxD,IAAwDA,OAAxD,EAAwDA,EAAuB3sE,YAA/E,kBACZ8uE,EAAuBvC,IAAsBO,EAmBnD,OAAOxyB,EACH,cAAC,GAAD,IAEA,qCACI,cAACpf,EAAA,EAAD,CAAKnY,GAAI,EAAT,SAAakpD,EAAqB,cAAC,GAAD,IApBtCI,EAAiB12D,KAAI,SAACgC,GAAD,OACjB,cAAC,GAAD,CAA2CA,QAASA,EAASkkC,cAAekxB,GAA7Cp1D,EAAQ7c,SAoBtCg0E,GAhBL,cAACtrC,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,EAAG0Q,UAAW,QAArC,SACI,cAAC,GAAD,CACItS,iBAAkBgtC,EAClBjtC,mBAAiB,EACjBE,gBAAiBuqC,EACjB9oE,MAAM,gBACN9G,WAAYA,MAWhB,cAAC,GAAD,CACIiuC,SAAU2Q,EACV1Q,YAAY,UACZF,YAAY,SACZzsC,KAAM68C,EACN58C,QAtCe,WACvB68C,GAAyB,IAsCjB58C,MAAOq9C,EACP3nC,QAAS4nC,QCkIVuzB,GA1MS,SAAC,GAA6D,IAAD,IAA1DlpC,cAA0D,SAA1C5nC,EAA0C,EAA1CA,QAASwuD,EAAiC,EAAjCA,YAAa9tD,EAAoB,EAApBA,cACvD+nC,EAAWC,wBACX50B,EAAS00B,eACT/nC,EAAS,OAAGqT,QAAH,IAAGA,OAAH,EAAGA,EAAQrT,UAClBqlB,EAAcF,GAAdE,UACA2oC,EAAmC9oC,GAAf08B,EAAe18B,GACnCslD,EAAgB17D,GAChBm/B,EAAiB5+B,GAAX6+C,EAAW7+C,GACzB,EAAwCvG,mBAAS,IAAjD,mBAAOwnE,EAAP,KAAqBC,EAArB,KACA,EAA4DznE,oBAAS,GAArE,mBAAOimE,EAAP,KAA+BC,EAA/B,KACA,EAA0ElmE,mBAASmlC,GAAnF,mBAAOghC,EAAP,KAAsCC,EAAtC,KACMngB,EAAgCggB,EAAyB,OAAS,SACxE,EAAsCjmE,qBAAtC,mBAAO0nE,EAAP,KAAoBC,EAApB,KAEA,EAAoCnxD,KAApC,mBAAOxG,EAAP,KAAqBlT,EAArB,KAAqBA,UAEf4iC,EAAgB,CAClBjqC,KAAM,GACNyB,YACA0H,gBAAiB,GACjBynE,yCAA0C,EAC1CxnE,UAAW,GACXzJ,SAAU,GACV6hE,kBAAmBl5C,QAGvB,EAKI8hB,aAAQ,CAAEH,gBAAeI,KAAM,QAJ/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQg3B,EAFzB,EAEyBA,QAASC,EAFlC,EAEkCA,QAC9BziC,EAHJ,EAGIA,QACAsL,EAJJ,EAIIA,MAGE4nC,IAAoB1Q,IAAYwQ,IAAgBvQ,EAEhDv2B,GAAgB,uCAAG,WAAOC,GAAP,+BAAAx1B,EAAA,6DACf4E,EADe,eACH4wB,GACVo2B,EAAgCp2B,EAAhCo2B,kBAAmB7hE,EAAayrC,EAAbzrC,SAFN,SAGWinC,GAAgBjnC,GAH3B,cAGf0rC,EAHe,OAKjB3pC,IAAkBuqE,IACZiF,EAAY1P,EAAkB2P,QAC9B3oD,EAAY0oD,EAAU1oD,YACtBsoD,EAAeI,EAAUhmD,SAAS1C,EAAW,WAC7CG,EAAQmoD,EAAan8D,IAAI,QACzBiU,EAAUkoD,EAAan8D,IAAI,WAEjC6F,EAAKtR,UAAL,UAAoByf,EAApB,YAA6BC,IAZZ,SAgBjBpO,EAAK9X,kBAAoB2oC,EACzB7wB,EAAKo2D,yCAA2C7oD,SAAS2oD,GACzDl2D,EAAK43D,oBAAsBH,EAAY3zE,SAlBtB,UAmBXic,EAAWC,GAAM8wB,SAnBN,0DAqBjB7B,EAASZ,GAAe,EAAD,KArBN,QAwBrB4nC,EAA0B/gC,GAC1BwiC,EAAe,MACf3nC,EAAMN,GA1Be,0DAAH,sDA2DtB,OACI,cAAC,GAAD,CACIrB,OAAQA,EACRymB,oBAAqB8iB,GACrBlxE,MAAM,gBACNkuD,SAAS,OACTnuD,QA/Bc,WAClBupC,EAAMN,GACNioC,EAAe,MACfzB,EAA0B/gC,GAC1B1uC,KA4BIouD,WArCa,WACjB9kB,EAAaa,GAAbb,GACAklB,KA6BA,SAQI,cAACrtB,GAAA,EAAD,CAAMxC,eAAe,SAAS8L,GAAI,EAAGjF,GAAI,GAAzC,SACI,iCACI,cAAC,aAAD,CAAYA,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,qBAGA,cAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,SACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QnHJN,EmHIV,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CAAO5rC,KAAK,OAAOsG,MAAM,YAAY44B,WAAYuL,EAAOzqC,KAAMi/B,QAASA,EAASz/B,YAAU,MAE9F,cAAC2iC,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CACI3iC,KAAK,WACLsG,MAAM,aACNmQ,QAASg0B,EAAO9qC,SAChBs/B,QAASA,EACTz/B,YAAU,EACV6K,MAAO0nE,EACPvwC,SArCD,SAAC5c,GAC5BotD,EAAgBptD,EAAEC,OAAOxa,iBAyCb,eAAC4zB,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,cAAC,aAAD,CAAYA,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,2BAGA,cAAC,GAAD,CACIpS,cAAeh2C,EACfxF,SAAUowE,EACVhD,aAzDO,SAAClmD,GAC5BmpD,EAAenpD,IAyDKmmD,gBAtDU,WAC9BgD,EAAe,OAsDK1yE,YAAU,OAGjBkC,IAAkBuqE,GACf,qCACI,cAAC,aAAD,CAAYzlC,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,mCAGA,cAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,SACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QnHvCd,EmHuCF,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,YACLsG,MAAM,MACN45B,QAAS7tB,GACTxK,QAAQ,YACRg8B,aAAW,EACX5E,QAASA,MAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CAAY3iC,KAAK,oBAAoBsG,MAAM,mBAAmB24B,QAASA,cAM3F,cAAC,aAAD,CAAYuH,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,mCAGA,cAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,SACI,eAAC/U,GAAA,EAAD,CAAMC,WAAS,EAACzC,eAAe,gBAAgBxB,WAAW,SAA1D,UACI,cAAC,aAAD,CAAYpK,SAAUjN,EAAW0H,KAAM60B,EAAvC,sCAGA,eAACplB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAK,EAAGrwB,WAAW,SAAvC,UACI,cAAC,aAAD,CAAYpK,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKmN,IAEL,cAAC1a,GAAD,CACI7W,QAASA,EACTomB,QAASmrB,EACT9jC,WAAY,CAAE,aAAa,UAC3BlL,SA1FS,WACrC,IAAMuvB,EAAQ2f,IAAkChhC,EAAOigB,EAASjgB,EAChE+gC,GAA0B,SAACzf,GAAD,OAAiBA,KAC3C2f,EAAiC5f,cA4FrB,cAAC,aAAD,CAAYvqB,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,sBAGA,eAAClpB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGpH,GAAI,IAAK0Q,UAAW,QAAvC,UACI,cAAC,aAAD,CAAY1Q,GAAI,IAAKzS,SAAUjN,EAAW0H,KAAM60B,EAAhD,8GAGA,cAAC,GAAD,CAAerjD,KAAK,kBAAkBsG,MAAM,WAAW24B,QAASA,eC1MlFwY,GAAY,CACd,CAAE55C,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,WAAYyI,MAAO,YACzB,CAAEzI,GAAI,cAAeyI,MAAO,WAC5B,CAAEzI,GAAI,wBAAyByI,MAAO,QAASuxC,mBAAmB,GAClE,CAAEh6C,GAAI,wBAAyByI,MAAO,QAASuxC,mBAAmB,GAClE,CAAEh6C,GAAI,kBAAmByI,MAAO,aAChC,CAAEzI,GAAI,YAyHKw0E,GAtHI,SAAC,GAAwF,IAAD,IAArF1vB,oBAAqF,MAAtE,GAAsE,EAAlEpJ,EAAkE,EAAlEA,gBAAiB+4B,EAAiD,EAAjDA,gBAAiD,IAAhCC,yBAAgC,SACjGn/B,EAAQoE,eACd,EAA0BjtC,mBAAS,IAAnC,mBAAO04C,EAAP,KAAcC,EAAd,KACQC,EAA4Cx8B,GAA7By8B,EAA6Bz8B,GAAf08B,EAAe18B,GAC5CG,EAAcF,GAAdE,UACR,EAAkCvc,mBAAS4a,IAA3C,mBAAO2yB,EAAP,KAAkBC,EAAlB,KACA,EAA0CxtC,mBAAS,QAAnD,mBAAOytC,EAAP,KAAsBC,EAAtB,KACMP,EAAS,OAAGuL,QAAH,IAAGA,OAAH,EAAGA,EAAOr1B,KAAKuB,GAAc2oB,EAAWE,IAQvDttC,qBAAU,WACN,IAAMg5C,EAAiBf,EAAajqC,KAAI,SAAC8B,GAAU,IAAD,IACtC3Y,EAAa2Y,EAAb3Y,SACR,OAAO,2BACA2Y,GADP,IAEI/V,YAAY,GAAD,iBAAK5C,EAAS,UAAd,aAAK,EAAaC,UAAlB,sBAA+BD,EAAS,UAAxC,aAA+B,EAAaE,eAG/DmhD,EAASQ,KACV,CAACf,IA8EJ,OACI,cAAC,gBAAD,CACIlL,UAAWA,GACXC,UAAWA,EACXI,UAAWA,EACX8K,eAAgB5K,EAChBJ,aAlFa,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QACrBhK,EAAwFu7C,EAAxFv7C,GAAImC,EAAoFo5C,EAApFp5C,KAAM0C,EAA8E02C,EAA9E12C,kBAAmBqB,EAA2Dq1C,EAA3Dr1C,gBAAiBlC,EAA0Cu3C,EAA1Cv3C,SAAU4C,EAAgC20C,EAAhC30C,YAAaL,EAAmBg1C,EAAnBh1C,eACrE9F,IAAqB,OAARuD,QAAQ,IAARA,OAAA,EAAAA,EAAW,KAAM,IAA9BvD,SACFk0E,EAAmBzuE,EAAkB,GAAKwuE,EAC1C3uB,EAAO,iBAAa/lD,GACpB0lD,EAAkB,CAAEC,aAAc,OAAQ9jB,gBAAiB0T,EAAMM,UAAUwB,OAE3Eu9B,EAAqBplD,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBC,cAAjB,OAAgCD,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBE,oBAClFouE,EAAqBrlD,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBG,cAAjB,OAAgCH,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBI,oBAexF,OACI,eAAC,KAAD,CAAUs1C,UAAW,EAArB,UACI,cAACnB,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBjhB,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMjM,QAAQ,SAASrb,MAAM,MAAtG,SACI,cAAC,uBAAD,CACIG,SAAUwwB,EACVpjD,KAAMA,EACNkjB,KAAM0gC,EACNK,YAAY,OACZD,aAAa,OACbD,eAAgBZ,EAChBe,aAAa,YAGrB,cAACvL,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,MAA1D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,gBACK3gD,QADL,IACKA,OADL,EACKA,EAAmB7C,qBAG5B,cAAC84C,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,MAA1D,SACI,cAAC,iBAAD,CAAgBwxB,YAAY,OAAOD,aAAa,OAAO+a,WAAYt6D,MAEvE,cAACk0C,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,KAA1D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKovB,MAGT,cAAC95B,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,KAA1D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKqvB,MAGT,cAAC/5B,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,KAA1D,SACI,cAAC,aAAD,CAAYsB,SAAUjN,EAAW0H,KAAM60B,EAAvC,SACKt/C,MAGT,cAAC40C,GAAA,EAAD,CAAWnW,GAAE,eAAO+gB,GAAmBvV,MAAM,OAAOvb,MAAM,KAA1D,SACI,eAACwL,EAAA,EAAD,CAAK/6B,QAAQ,OAAb,UACI,cAACwhD,GAAA,EAAD,CAAYpyB,QAnDE,WAC1BinB,EAAgB17C,IAkDwC,aAAW,sBAAvD,SACI,cAAC,WAAD,CAAU4kC,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,OAE5D,cAACk2B,GAAA,EAAD,CAAYzjD,MAAM,kBAAkB,aAAW,kBAA/C,SACI,cAAC,GAAD,CAAautB,KAAM,GAAIlwB,SAAUA,EAAUyE,YAAa0B,MAE5D,cAACigD,GAAA,EAAD,CAAYngB,SAAUiuC,EAAkBlgD,QArD1B,WAE1BggD,EADiB,CAAEz0E,KAAIkG,kBAAiB/D,UAoD5B,SACI,cAAC,aAAD,CAAYyiC,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,cA5C7C3wB,IA2D7BymD,sBApGkB,SAACtL,GAEvBjB,EADoBC,IAAkBgB,GAAYlB,IAAc3yB,GACrCA,GAAgBA,IAC3C8yB,EAAiBe,O,uBC0GV25B,GA/HE,SAAC,GASX,IAAD,IARF1vB,aAQE,MARM,GAQN,EAPFkmB,EAOE,EAPFA,cACAznE,EAME,EANFA,cACA2F,EAKE,EALFA,UACAurE,EAIE,EAJFA,aACAL,EAGE,EAHFA,kBACAhU,EAEE,EAFFA,gBACAkK,EACE,EADFA,eAEMr1B,EAAQoE,eACR/N,EAAWC,wBACTyZ,EAAkBx8B,GAClBG,EAAcF,GAAdE,UACR,EAA0Dvc,oBAAS,GAAnE,mBAAOqzC,EAAP,KAA8BC,EAA9B,KACA,EAAwCtzC,mBAAS,MAAjD,mBAAOsoE,EAAP,KAAqBC,EAArB,KACA,EAAsDvoE,oBAAS,GAA/D,mBAAOwoE,EAAP,KAA4BC,EAA5B,KACA,EAAsDzoE,oBAAS,GAA/D,mBAAO0oE,EAAP,KAA4BC,EAA5B,KACM5J,EAAwBrmB,EAAM7kD,SAAW+qE,GAAiB5K,EAChE,EAA4Ch0D,mBAAS,MAArD,mBAAO4oE,EAAP,KAAuBC,EAAvB,KAeMC,EAA+B,WACjCH,GAAuB,IAGrBI,EAA+B,WACjCN,GAAuB,IAsB3B,OACI,qCACI,eAAC/0C,EAAA,EAAD,CACIunB,GAAI,EACJtiD,QAAQ,OACRy8B,eAAe,WACf4f,aAAa,SACb/c,GAAI,CAAEghB,aAAa,aAAD,OAAepQ,EAAMM,UAAUwB,QALrD,UAOI,cAAC,SAAD,CAAQ1S,GAAI,CAAEE,GAAI,GAAK6B,SAAU+kC,EAAuBh3C,QAjDvC,WACzBm2C,KAgD+F10C,SAAS,YAAhG,+BAGA,cAAC,SAAD,CAAQwQ,SAAU+kC,EAAuBh3C,QAhDrB,WAC5B0gD,GAAuB,IA+C4Dj/C,SAAS,YAApF,gCAIH1sB,EACG,cAAC,GAAD,IAEA,cAAC42B,EAAA,EAAD,UACMglB,EAAM7kD,OAOJ,cAAC,GAAD,CACIm0E,kBAAmBA,EACnB5vB,aAAcM,EACdqvB,gBAjDI,SAACj3D,GACzB,IAAQtX,EAA6BsX,EAA7BtX,gBAAoBmgB,EAA5B,aAAqC7I,EAArC,IACItX,EAAkB,EAClB0lC,EAASwT,GAAU,CAAEh8C,MAAO,QAAS0V,QAAS,2DAE9Cm8D,EAAgB,eAAK5uD,IACrB25B,GAAyB,KA4CTtE,gBA/DI,SAACx5C,GACzBqzE,EAAkBrzE,GAClBmzE,GAAuB,MAmDP,cAACj1C,EAAA,EAAD,CAAKpY,GAAI,EAAG+sB,UAAU,SAAtB,SACI,cAAC,aAAD,CAAY7e,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA7E,8DAchB,cAAC,GAAD,CACIzM,OAAQqqC,EACRjyE,QAASqyE,EACT7jB,YAAa6jB,EACbnqC,YAAU,EACVnpC,OAAQozE,IAEZ,cAAC,GAAD,CACIvqC,OAAQmqC,EACR/xE,QAASsyE,EACT9jB,YAAa8jB,EACb5xE,cAAeA,IAEnB,cAAC,GAAD,CACI+rC,SA3DmB,WAC3BoQ,GAAyB,GACzB+0B,EAAaC,IA0DLnlC,YAAY,UACZF,YAAY,SACZzsC,KAAM68C,EACN58C,QA1De,WACvB68C,GAAyB,IA0DjB58C,MAAM,uBACN0V,QAAO,iDAAqCk8D,QAArC,IAAqCA,OAArC,EAAqCA,EAAc7yE,KAAnD,W,UC7CRuzE,GAzEiB,SAAC,GAAkI,IAAhI91E,EAA+H,EAA/HA,QAASgX,EAAsH,EAAtHA,UAAW6tC,EAA2G,EAA3GA,IAA2G,IAAtG/gD,mBAAsG,MAAxF,GAAwF,EAApFiyE,EAAoF,EAApFA,YAAarY,EAAuE,EAAvEA,oBAAqB1f,EAAkD,EAAlDA,uBAAwBC,EAA0B,EAA1BA,oBAC9HjS,EAAWC,wBACX0J,EAAQoE,eACNzwB,EAAuBH,GAAvBG,QAASD,EAAcF,GAAdE,UACT2sD,EAAoC9sD,GAAvB8oC,EAAuB9oC,GACpC+sD,EAA4CpuD,GAArCquD,EAAqCruD,GAA3BsuD,EAA2BtuD,GAAlBw6B,EAAkBx6B,GAATuuD,EAASvuD,GAC5CxP,EAASkf,uBAAY,SAACxqB,GAAD,OAAWA,EAAMoxC,eAAtC9lC,KACAslC,EAAuBtlC,EAAvBslC,OAAQh5C,EAAe0T,EAAf1T,WACV45C,EAAS,0BAAeZ,QAAf,IAAeA,OAAf,EAAeA,EAAQv9C,IAChCo+C,EAAa,qCAA0B75C,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAYvE,GAAtC,WACbi2E,EAAoB3Y,EAAsBwY,EAAWE,EAiB3D,OAfAnpE,qBAAU,WACqB,IAAD,EAAtBjN,GAAWgX,IACNqB,IAAQ,UAAAA,EAAKrY,UAAL,eAAeI,MAAOkqB,SAAStT,IACxCg1B,EAAS8R,GAAkB,CAAE99C,UAASgX,kBAG/C,IAEH/J,qBAAU,WACF+wC,IACAhS,EAAS8R,GAAkB,CAAE99C,UAASgX,eACtCinC,OAEL,CAACD,IAGA,qCACI,cAACxd,EAAA,EAAD,CAAK2B,QAAQ,QAAb,SACI,cAAC7B,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,cAACC,EAAA,EAAD,CAAKpY,GAAI,EAAGqY,SAAS,OAAOh7B,QAAQ,OAAOy8B,eAAe,gBAA1D,SACI,eAAC1B,EAAA,EAAD,WACI,eAACA,EAAA,EAAD,CAAK/6B,QAAQ,OAAb,UACI,cAAC2yC,GAAA,EAAD,CAAM3yB,KAAM84B,EAAZ,SACI,cAAC,aAAD,CAAYvZ,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUjN,EAAW0H,KAAMihC,EAArE,gBACKrU,QADL,IACKA,OADL,EACKA,EAAQp7C,SAGjB,cAAC,aAAD,CAAYyiC,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUjN,EAAW0H,KAAMihC,EAArE,0BAGA,cAAC5Z,GAAA,EAAD,CAAM3yB,KAAM+4B,EAAZ,SACI,cAAC,aAAD,CAAYxZ,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUjN,EAAW0H,KAAMihC,EAArE,gBACKrtD,QADL,IACKA,OADL,EACKA,EAAYpC,YAIzB,cAAC,aAAD,CAAYyiC,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUhN,EAASyH,KAAMilD,EAAav9B,WAAY,EAA5F,SACK30C,aAMrB,cAAC08B,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAUwB,MAA9B,SACI,cAACnX,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAAC+1C,GAAA,EAAD,CAAM92C,QAAQ,aAAa5yB,MAAOi4C,EAAK9gB,SAAUgyC,EAAa,aAAW,sBAAzE,UACI,cAACjxB,GAAA,EAAD,CAAKj8C,MAAOotE,EAAOrpE,MAAOqpE,IAC1B,cAACnxB,GAAA,EAAD,CAAKj8C,MAAOwtE,EAAmBzpE,MAAOypE,IACtC,cAACvxB,GAAA,EAAD,CAAKj8C,MAAOstE,EAASvpE,MAAOupE,IAC5B,cAACrxB,GAAA,EAAD,CAAKj8C,MAAOw5C,EAASz1C,MAAOy1C,eCvB9Ck0B,GACG,EADHA,GAEG,EA+lBMC,GA5lBW,WAAO,IAAD,IACtBt0E,EAAWigD,eACXnW,EAAWC,wBACX50B,EAAS00B,eACT/U,EAAWC,eACX0e,EAAQoE,eAER/1C,EAAYsmB,SAASjT,EAAOrT,WAC1BqU,EAASkf,uBAAY,SAACxqB,GAAD,OAAWA,EAAMoxC,eAAtC9lC,KACA0oD,EAAqBztD,GAAXwD,EAAWxD,GACrB+uC,EAA4Cz6B,GAAnCquD,EAAmCruD,GAA5BuuD,EAA4BvuD,GAAnBsuD,EAAmBtuD,GAATwuD,EAASxuD,GAC5Cy2B,EAAYt2B,GAEpB,EAAkCjb,mBAASmpE,GAA3C,mBAAOrhC,EAAP,KAAkB4N,EAAlB,KACA,EAAkD11C,oBAAS,GAA3D,mBAAO2pE,EAAP,KAA0BC,EAA1B,KACA,EAA0C5pE,oBAAS,GAAnD,mBAAO6pE,EAAP,KAAsBC,EAAtB,KACA,EAA0C9pE,oBAAS,GAAnD,mBAAO+pE,EAAP,KAAsBC,EAAtB,KACA,EAA0ChqE,oBAAS,GAAnD,mBAAOiqE,EAAP,KAAsBC,EAAtB,KACA,EAA0ClqE,mBAAS,MAAnD,mBAAOgjE,EAAP,KAAsBC,EAAtB,KACA,EAAoDjjE,oBAAS,GAA7D,mBAAOkjE,EAAP,KAA2BC,EAA3B,KACA,EAAgDnjE,oBAAS,GAAzD,mBAAOmqE,GAAP,KAAyBC,GAAzB,KACA,GAAwCpqE,mBAAS,CAAEvH,SAAU,KAAMjD,OAAQ,OAA3E,qBAAO60E,GAAP,MAAqBC,GAArB,MACA,GAA4CtqE,mBAAS,CAAEjM,SAAU,KAAMqe,WAAY,OAAnF,qBAAOm4D,GAAP,MAAuBC,GAAvB,MACA,GAA4CxqE,mBAAS,CAAEjM,SAAU,KAAMqe,WAAY,KAAMjW,cAAc,IAAvG,qBAAOsuE,GAAP,MAAuBC,GAAvB,MACA,GAAkD1qE,mBAAS0mC,cAA3D,qBAAOikC,GAAP,MAA0BC,GAA1B,MACA,GAAwD5qE,mBAAS0mC,cAAjE,qBAAOmkC,GAAP,MAA6BC,GAA7B,MACA,GAAsD9qE,oBAAS,GAA/D,qBAAO+qE,GAAP,MAA4BC,GAA5B,MACA,GAAgDhrE,oBAAS,GAAzD,qBAAO8hE,GAAP,MAAyBC,GAAzB,MACA,GAAoD/hE,oBAAS,GAA7D,qBAAOsiE,GAAP,MAA2BC,GAA3B,MACA,GAAgCviE,mBAAS,MAAzC,qBAAOxD,GAAP,MAAiBgjC,GAAjB,MACA,GAA8Cx/B,oBAAS,GAAvD,qBAAOirE,GAAP,MAAwBC,GAAxB,MACA,GAAwDlrE,mBAAS,MAAjE,qBAAO07C,GAAP,MAA6BmD,GAA7B,MACA,GAA4C7+C,mBAAS,CACjDgoE,mBAAmB,EACnBhU,iBAAiB,EACjBpD,oBAAqB,OAHzB,qBAAOz1D,GAAP,MAAuBgwE,GAAvB,MAMA,GAII31D,GAAiCm1D,IAH3BS,GADV,GACI7/D,KACWo2C,GAFf,GAEI7kD,UACOuuE,GAHX,GAGIn/D,MAEJ,GAAqGoI,GAAmBpd,GAA1GsH,GAAd,GAAQ+M,KAA0B05B,GAAlC,GAAuBnoC,UAAoC45C,GAA3D,GAAoDxqC,MAA8Bo/D,GAAlF,GAAyEtrB,QACzE,GAKIvrC,GAAwBvd,GAJlBkhD,GADV,GACI7sC,KACYwqD,GAFhB,GAEIzW,WACO0W,GAHX,GAGI9pD,MACSq/D,GAJb,GAIIvrB,QAEJ,GAAoD/nC,KAApD,qBAAO1E,GAAP,MAAgCi4D,GAAhC,MAAqB1uE,UACrB,GAAiEqa,KAAjE,qBAAO1F,GAAP,MAA8Cg6D,GAA9C,MAAmC3uE,UACnC,GAAoD2a,KAApD,qBAAOi0D,GAAP,MAAgCC,GAAhC,MAAqB7uE,UACrB,GAAqD4a,KAArD,qBAAOk0D,GAAP,MAAgCC,GAAhC,MAAqB/uE,UACrB,GAA8DwZ,KAA9D,qBAAOvG,GAAP,MAAqC+7D,GAArC,MAA0BhvE,UAC1B,GAA4DkD,oBAAS,GAArE,qBAAOkxC,GAAP,MAA+ByE,GAA/B,MACA,GAAkFt+B,KAAlF,qBAAOtF,GAAP,MAAiDg6D,GAAjD,MAAsCjvE,UACtC,GAAmCwa,KAA5BtF,GAAP,qBACA,GAA0E2F,KAA1E,qBAAOhF,GAAP,MAA8Cq5D,GAA9C,MAAmClvE,UACnC,GAAiDga,KAAjD,qBAAOm1D,GAAP,MAA8BC,GAA9B,MAAmBpvE,UAEnB,GAUI6iE,GAAmB,CAAEzoE,YAAWqW,mBAAmB,EAAMqjD,oBAAmB,OAAEz1D,SAAF,IAAEA,QAAF,EAAEA,GAAgBy1D,sBAT9FtiD,GADJ,GACIA,WACAwuD,GAFJ,GAEIA,aACAsB,GAHJ,GAGIA,iBACAI,GAJJ,GAIIA,iBACAwC,GALJ,GAKIA,qBACAF,GANJ,GAMIA,mBACAO,GAPJ,GAOIA,kBACA/C,GARJ,GAQIA,oBACAhI,GATJ,GASIA,uBAGE/a,GAAiBwa,IAAyByV,IAAkBvmC,IAAoBinC,GAChFC,GAAwBV,IAAiBE,IAAkBE,IAAmBG,GAC9EI,GAAsBtL,IAAsBgL,GAE1C3mC,GAAS5+B,GAEX8lE,GAAc,uCAAG,sBAAAhhE,EAAA,sEACbigE,KADa,uBAEbC,KAFa,uBAGbjV,KAHa,2CAAH,qDAMhB+U,IACAnsC,EAASwT,GAAU,CAAEoB,SAAS,EAAMp9C,MAAO,2CAA4C0V,QAAO,OAAEi/D,SAAF,IAAEA,QAAF,EAAEA,GAAqBj/D,WAGrHsqC,IACAxX,EAASZ,GAAeoY,KAGxBsf,IACA92B,EAASZ,GAAe03B,KAG5B71D,qBAAU,WAAO,IAAD,EACoB,EAAhC,OAAI/K,QAAJ,IAAIA,GAAJ,UAAIA,EAAU6K,aAAd,OAAI,EAAiB6nC,WACjB4N,EAAY,OAACtgD,QAAD,IAACA,GAAD,UAACA,EAAU6K,aAAX,aAAC,EAAiB6nC,aAEnC,IAEH3nC,qBAAU,WACN,GAAI3B,GAAS,CACT,IAAMwpE,EAAoBjqD,KAAOvf,GAAQhE,cAAc8xE,eAAevuD,QAChEi2C,EAAkBj2C,KAAOvf,GAAQnG,YAAYi0E,eAAevuD,QAC5D6yC,EAAsBpyD,GAAQrH,gBAAkB6O,GACtDmlE,GAAkB,CAAEnD,oBAAmBhU,kBAAiBpD,wBACxD1xB,EAAST,GAAc,OAACjgC,SAAD,IAACA,QAAD,EAACA,GAAStG,iBAEtC,CAACsG,KAEJ2B,qBAAU,WACN,GAAIirE,GAAwB,CACxB,IAAMnV,EAAc,OAAGmV,SAAH,IAAGA,QAAH,EAAGA,GAAwB1pB,eAAevzC,KAAI,SAAC8B,GAC/D,MAAO,CAAE3c,GAAI2c,EAAKza,OAAQ+E,YAAa0V,EAAKlR,aAEhD+rE,GAAwB7U,MAE7B,CAACmV,KAEJjrE,qBAAU,WAAO,IAAD,GACJ,OAAJoL,QAAI,IAAJA,GAAA,UAAAA,EAAM/M,eAAN,eAAelL,MAAO4D,IACtBsoC,GAAYj0B,EAAKslC,OAAOv9C,IACxBurD,GAAwBtzC,EAAK1T,WAAWvE,OAE7C,CAACiY,IAEJ,IAAMghE,GAAkB,WACpBnC,IAAoB,IAiBlBoC,GAAwB,WAC1B1C,GAAkBD,IAsDhB/F,GAAkB,uCAAG,WAAOhyD,GAAP,iBAAAzG,EAAA,6DACvB83D,GAAsB,GACdpuE,EAAgB+c,EAAhB/c,YACF03E,EAAoB,CACtBr3E,SAAQ,OAAE0c,QAAF,IAAEA,OAAF,EAAEA,EAAW1c,SACrBF,UAAS,OAAE4c,QAAF,IAAEA,OAAF,EAAEA,EAAW5c,UACtBqF,YAAW,OAAEuX,QAAF,IAAEA,OAAF,EAAEA,EAAWvX,aANL,kBAUbwX,GAA4B,CAAEhd,cAAamC,YAAWoX,cAAY/C,KAAMkhE,IAAqB1rC,SAVhF,uDAYnB7B,EAASZ,GAAe,EAAD,KAZJ,yDAAH,sDAgBlBouC,GAAkB,uCAAG,WAAO57D,GAAP,iBAAAzF,EAAA,6DACf/X,EAAawd,EAAbxd,GAAImC,EAASqb,EAATrb,KADW,kBAGb8d,GAAW,CAAE/d,OAAQlC,EAAI4D,cAAa6pC,SAHzB,OAInB7B,EAASwT,GAAU,CAAEh8C,MAAO,UAAW0V,QAAQ,GAAD,OAAK3W,EAAL,wBAJ3B,gDAMnBypC,EAASZ,GAAe,EAAD,KANJ,yDAAH,sDAUlBquC,GAAoB,uCAAG,WAAO9a,GAAP,uBAAAxmD,EAAA,6DACzBu+D,GAAqB,GACfl4D,EAAkB,CAAExa,UAAWsmB,SAAStmB,GAAYnD,SAAUs2E,GAAa5xE,UAE7Em0E,GAAsB,EACtBC,GAAc,EAEdhb,IAAiBoC,EACjB2Y,GAAsB,GACf/a,IAAiB7nD,IAGxB4iE,GAAsB,GAFtBC,GAAc,GAMlBn7D,EAAgBo7D,SAAWF,EAC3Bl7D,EAAgBq7D,OAASF,EAjBA,mBAoBfp7D,GAAyB,CAAEva,YAAW1B,OAAQ60E,GAAa70E,OAAQkc,kBAAiBmgD,iBAAgB9wB,SApBrF,QAqBfisC,EAAkB1kE,GAAaupD,EAAc9pD,IACnDm3B,EAASwT,GAAU,CAAEh8C,MAAO,UAAW0V,QAAQ,QAAD,cAAU4gE,QAAV,IAAUA,GAAV,UAAUA,EAAiBzyE,mBAA3B,aAAU,EAA8BzG,cAAxC,uBAtBzB,kDAwBrBorC,EAASZ,GAAe,EAAD,KAxBF,0DAAH,sDA4BpB2uC,GAAsB,uCAAG,WAAOC,GAAP,eAAA7hE,EAAA,6DAC3B2+D,GAAiB,GAEXmD,EAHqB,2BAGF5C,IAHE,IAGcl4D,SAAU66D,IAHxB,kBAMjBxB,GAAW,2BAAKyB,GAAN,IAAmBj2E,eAAa6pC,SANzB,OAOvB7B,EAASwT,GAAU,CAAEh8C,MAAO,UAAW0V,QAAS,+BAPzB,gDASvB8yB,EAASZ,GAAe,EAAD,KATA,yDAAH,sDAatB8uC,GAAsB,uCAAG,WAAOC,EAAYlxE,GAAnB,eAAAkP,EAAA,6DAC3B6+D,GAAiB,GAEXoD,EAHqB,2BAGF7C,IAHE,IAGcl4D,UAAW86D,EAAYlxE,iBAHrC,kBAMjByvE,GAAW,2BAAK0B,GAAN,IAAmBp2E,eAAa6pC,SANzB,OAOvB7B,EAASwT,GAAU,CAAEh8C,MAAO,UAAW0V,QAAS,gCAPzB,gDASvB8yB,EAASZ,GAAe,EAAD,KATA,yDAAH,wDAatBivC,GAA0B,uCAAG,WAAOx5E,EAAUyB,GAAjB,SAAA6V,EAAA,+EAErBsH,GAAyB,CAAE5e,WAAUyB,SAAQ0B,cAAa6pC,SAFrC,sDAI3B7B,EAASZ,GAAe,EAAD,KAJI,wDAAH,wDAQ1BkvC,GAAkB,uCAAG,WAAOC,GAAP,iBAAApiE,EAAA,yDACjBqiE,EAAaD,EAAMt/D,KAAI,WAAmB2e,GAAW,IAA3Bt3B,EAA0B,EAA1BA,OAAQgtD,EAAkB,EAAlBA,KAGpC,MAAO,CACHhtD,SACAgtD,MAJeA,GAAQ11B,EAAQ,EAAI01B,EAAO11B,EAAQ,EAAI01B,IAIlC11B,EAAQ,MAI9B6gD,EAAeD,EAAWrrD,QAAO,SAACyV,GAAD,OAAUA,EAAKtiC,UAV/B,WAafm4E,EAAa95E,OAAS,GAbP,gCAcTkc,GAAgB,CAAEzB,cAAYpX,YAAWqU,KAAM,CAAEqiE,UAAWD,KAAkB5sC,SAdrE,UAgBd+7B,GAhBc,gCAiBTsB,KAjBS,wBAmBbiO,KAnBa,QAoBnBG,KApBmB,kDAsBnBttC,EAASZ,GAAe,EAAD,KAtBJ,0DAAH,sDA0BlBuvC,GAAgB,uCAAG,WAAOhjE,GAAP,SAAAQ,EAAA,+EAEX4gE,GAAS,CAAE/0E,YAAW4Z,SAAUjG,IAAek2B,SAFpC,sDAIjB7B,EAASZ,GAAe,EAAD,KAJN,wDAAH,sDAQhBwvC,GAAgB,uCAAG,8BAAAziE,EAAA,6DACf0iE,EAAW,CACbv4E,OAAM,OAAE4iD,SAAF,IAAEA,IAAF,UAAEA,GAAcM,MAAM,UAAtB,aAAE,EAAwBplD,GAChCkvD,KAAM,MAHW,kBAOXzyC,GAAgB,CAAEzB,cAAYpX,YAAWqU,KAAM,CAAEqiE,UAAW,CAACG,MAAehtC,SAPjE,uBAQXq9B,KARW,uBASXiO,KATW,OAUjBG,KAViB,kDAYjBttC,EAASZ,GAAe,EAAD,KAZN,0DAAH,qDAgBhB0vC,GAAmB,uCAAG,uDAAA3iE,EAAA,sDAASyuC,EAAT,EAASA,aAAchoC,EAAvB,EAAuBA,UACvC/c,EAAgB+c,EAAhB/c,YACAQ,EAAiCuc,EAAjCvc,cAAeM,EAAkBic,EAAlBjc,cACfvC,EAAiBwmD,EAAjBxmD,GAAI+gC,EAAaylB,EAAbzlB,SACN45C,EAAY36E,GAAMA,IAAOg0D,IAAoB,OAAPh0D,QAAsBggE,IAAPhgE,EAA0BA,EAAP,KACxE46E,EAAS56E,IAAOg0D,GALE,KAQhBjzB,EARgB,cASfo1C,GATe,SAqBfA,GArBe,0BAUVvf,GAA+B,OAAbr0D,QAAa,IAAbA,OAAA,EAAAA,EAAeL,SAAU,KAC3C24E,GAAiBjkB,IAAoB+jB,EAE3Ch8D,EAAqB,CACjBg4C,gBAAiBgkB,EACjB/jB,kBACAZ,gBAAiB4kB,IAAWC,E3CvZhB,E2CuZmD,MAhBnD,oCAsBVlkB,GAA+B,OAAb10D,QAAa,IAAbA,OAAA,EAAAA,EAAeC,SAAU,KAC3C24E,GAAiBlkB,IAAoBgkB,EAE3Ch8D,EAAqB,CACjBg4C,kBACAC,gBAAiB+jB,EACjB3kB,gBAAiB4kB,IAAWC,E3CnahB,E2CmamD,MA5BnD,oCAiChBl8D,EAAqB,CACjBg4C,gBAAiB,KACjBC,gBAAiB,KACjBZ,gBAAiB,MApCL,wDA0Cdt3C,GAAyB,CAAEjd,cAAakd,qBAAoB3D,cAAYpX,cA1C1D,yBA2Cdo/D,KA3Cc,2DA6CpBp3B,EAASZ,GAAe,EAAD,KA7CH,2DAAH,sDAiDnB8vC,GAA8B,uCAAG,+BAAA/iE,EAAA,6DAASy1C,EAAT,EAASA,iBACtCutB,EAAc,CAChB/J,YAAaxjB,GAFkB,kBAMzBugB,GAAkBgN,GANO,uBAOzBhC,KAPyB,uDAS/BntC,EAASZ,GAAe,EAAD,KATQ,QAYnCyjC,IAAoB,GAZe,yDAAH,sDAe9B8B,GAA6B,uCAAG,sBAAAx4D,EAAA,+EAExBmzD,KAFwB,sDAI9Bt/B,EAASZ,GAAe,EAAD,KAJO,OAMlC4sC,IAAmB,GANe,wDAAH,qDAS7B/G,GAAyB,uCAAG,sBAAA94D,EAAA,+EAEpBizD,KAFoB,uBAGpB+N,KAHoB,uDAK1BntC,EAASZ,GAAe,EAAD,KALG,QAO9BikC,IAAsB,GAPQ,yDAAH,qDAUvByF,GAA4D7sE,GAA5D6sE,kBAAmBhU,GAAyC74D,GAAzC64D,gBAAiBpD,GAAwBz1D,GAAxBy1D,oBACtC9J,GAAa,eACbwnB,IAAwB,OAAP9vE,SAAO,IAAPA,QAAA,EAAAA,GAAShE,eAAgB2lB,GAAgB,CAAEE,QAAO,OAAE7hB,SAAF,IAAEA,QAAF,EAAEA,GAAShE,aAAcqjB,OAAQipC,KACpGynB,IAAsB,OAAP/vE,SAAO,IAAPA,QAAA,EAAAA,GAAShE,eAAgB2lB,GAAgB,CAAEE,QAAO,OAAE7hB,SAAF,IAAEA,QAAF,EAAEA,GAASnG,WAAYwlB,OAAQipC,KAEhGgJ,IAAwB,OAAPtxD,SAAO,IAAPA,QAAA,EAAAA,GAAStD,uBAAwBiqC,IAAwC,KAApB,OAAZiT,SAAY,IAAZA,IAAA,UAAAA,GAAcM,aAAd,eAAqB7kD,QAC/E+xC,GAAgB,OAAGpnC,SAAH,IAAGA,QAAH,EAAGA,GAASonC,iBAUlC,OACI,eAACpS,GAAA,EAAD,CAAW6wC,gBAAc,EAAC5wC,UAAU,EAAOwE,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAU+T,UAAlF,UACKjY,GACG,cAAC,GAAD,IAEA,qCACI,cAAC,GAAD,CACI8S,IAAKjQ,EACL9wC,YAAW,OAAEwH,SAAF,IAAEA,QAAF,EAAEA,GAAS/I,KACtBwzE,YAjBO,SAAC1gD,EAAG2O,GAC3Bwe,EAAaxe,IAiBG05B,oBAAqBA,GACrB19D,QAASq+C,EACTL,uBAAwBA,GACxBC,oBAjBc,WAC9BwE,IAA0B,IAiBVzrC,UAAWhT,IAEf,cAACs8B,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACokB,GAAA,EAAD,CAAY/3C,MAAOgoC,EAAnB,UACI,cAACmQ,GAAA,EAAD,CAAUn4C,MAAOqpE,EAAOlxC,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAU+T,UAA/D,SACI,cAAC,GAAD,CACIxE,MAAK,OAAEN,SAAF,IAAEA,QAAF,EAAEA,GAAcM,MACrBkmB,cAAa,OAAEpgE,SAAF,IAAEA,QAAF,EAAEA,GAAS5C,SACxBzE,cAAa,OAAEqH,SAAF,IAAEA,QAAF,EAAEA,GAASrH,cACxB6wE,kBAAmBA,KAAiB,OAAIxpE,SAAJ,IAAIA,QAAJ,EAAIA,GAASqnC,sBACjDmuB,gBAAiBA,GACjBl3D,UAAWy+C,GACX8sB,aAAcqE,GACdxO,eAAgBqO,OAGxB,cAACt0B,GAAA,EAAD,CAAUn4C,MAAOwpE,EAAjB,SACI,cAAC,GAAD,CACI7Z,kBAAmB+c,GACnB9c,gBAjUF,WAC1Boa,GAAkBD,IAiUUla,mBApSH,WACzBoS,IAAoB,IAoSQnS,qBAjSG,WAC/B2S,IAAsB,IAiSM1S,kBA9RA,WAC5Bqb,IAAmB,IA8RSkB,oBAAqBA,GACrBrc,qBAAoB,OAAE+M,SAAF,IAAEA,QAAF,EAAEA,GAAc/M,qBACpCD,eAAgBA,GAChBlqB,iBAAkBA,GAClB1uC,UAAWA,EACX2uC,qBAAoB,OAAErnC,SAAF,IAAEA,QAAF,EAAEA,GAASqnC,qBAC/Bwc,gBAAe,OAAEjK,SAAF,IAAEA,QAAF,EAAEA,GAAcM,MAC/BsX,gBAAe,iBAAKxxD,SAAL,IAAKA,QAAL,EAAKA,GAAS/I,KAAd,cAAwB64E,GAAxB,cAA4CC,IAC3DzxE,UAAWsvE,IAAuBpL,IAAwB+K,GAC1D5c,SAAU2N,GACVjS,YArSN,SAAClzB,GACvBsrC,EAAiBtrC,GACjBwrC,GAAsB,IAoSMrY,YAjSN,SAAC,GAAqB,IAAnB/1D,EAAkB,EAAlBA,YACzBm1B,EAAS,kBAAD,OAAmBn1B,KAiSCg2D,cAAeijB,GACf/d,SAAUzI,OAGlB,cAACvP,GAAA,EAAD,CAAUn4C,MAAOspE,EAAjB,SACI,cAAC,GAAD,CACInkC,iBAAkBA,GAClBzmC,QAASA,GACTk6C,MAAK,OAAEN,SAAF,IAAEA,QAAF,EAAEA,GAAcM,MACrBkmB,cAAa,OAAEpgE,SAAF,IAAEA,QAAF,EAAEA,GAAS5C,SACxBsiE,eAAgBqO,GAChBvY,gBAAiBA,OAGzB,cAAC/b,GAAA,EAAD,CAAwBn4C,MAAOupE,EAASpxC,GAAI,CAAEoL,EAAG,GAAjD,SACI,cAAC,GAAD,CACInsC,UAAWA,EACX88D,gBAAiBA,GACjBr1B,YAAU,EACV82B,WAAY0W,GACZvY,iBAnXD,SAACn7D,EAAU+1E,EAAcpyE,GACpD4uE,GAAuB5uE,GACvBwtE,GAAqB,GACrBU,GAAgB,CAAE7xE,WAAUjD,OAAQg5E,KAiXR3a,aAlWL,SAAC9/D,EAAUy6E,GAClC5D,GAAqB,CAAE1zE,YAAWnD,aAClCi2E,GAAiB,GACjBQ,GAAkB,CAAEz2E,WAAUqe,WAAYo8D,KAgWd1a,aAxVL,SAAC//D,EAAUy6E,GAClC5D,GAAqB,CAAE1zE,YAAWnD,aAClCm2E,GAAiB,GACjBQ,GAAkB,CAAE32E,WAAUqe,WAAYo8D,KAsVdza,qBAAsBwZ,MATflE,GAYf,cAACpxB,GAAA,EAAD,CAAUn4C,MAAOy1C,EAAjB,SACI,cAAC,GAAD,CAAYp6C,eAAgBqD,eAMhD,cAAC,GAAD,CACIpC,cAAe2uE,GACfv0E,KAAMmzE,EACNlzE,QA7XuB,WAC/BmzE,GAAqB,IA6XbxoC,SAAUurC,KAEb9C,GACG,cAAC,GAAD,CACIrzE,KAAMqzE,EACNxnB,gBAAe,OAAEjK,SAAF,IAAEA,QAAF,EAAEA,GAAcM,MAC/BjiD,QAAS+1E,GACTprC,SAAUosC,GACVlrB,OAAQwrB,KAGhB,cAAC,GAAD,CACInsB,wBAAyBA,GACzBD,eAAgBmpB,GAChB4D,cAAelE,GAAen4D,WAC9B5b,KAAMuzE,EACNtzE,QA5XmB,WAC3BuzE,GAAiB,GACjBY,GAAqBlkC,eA2XbtF,SAAU6rC,KAEd,cAAC,GAAD,CACI/pC,SAAUkrC,GACVjrC,YAAY,eACZF,YAAY,SACZzsC,KAAMsrE,GACNrrE,QApXsB,WAC9BsrE,IAAoB,IAoXZrrE,MAAM,8BACN0V,QAhjBY,0DAijBZy0C,cAAc,kDAElB,cAAC,GAAD,CACI3d,SAAUihC,GACVhhC,YAAY,UACZF,YAAY,SACZzsC,KAAM8rE,GACN7rE,QAAS,kBAAM8rE,IAAsB,IACrC7rE,MAAM,iBACN0V,QAxjBc,kDA0jBlB,cAAC,GAAD,CACI82B,SAAU2gC,GACV1gC,YAAY,UACZF,YAAY,SACZzsC,KAAMy0E,GACNx0E,QAAS,kBAAMy0E,IAAmB,IAClCx0E,MAAM,cACN0V,QAlkBW,+CAokBf,cAAC,GAAD,CACIu1C,wBAAyBA,GACzBD,eAAgBmpB,GAChB4D,cAAehE,GAAer4D,WAC9B5b,KAAMyzE,EACNxzE,QArZmB,WAC3ByzE,GAAiB,GACjBU,GAAqBlkC,eAoZbtF,SAAUgsC,KAEd,cAAC,GAAD,CACI/uC,OAAQ6kC,EACRzsE,QAAS,kBAAM0sE,GAAsB,IACrC/hC,SAAU0iC,GACVnsC,MAAOqrC,EACPrS,eAAa,IAEhBwZ,IACG,cAAC,GAAD,CACIuE,oBAAmB,OAAEt2B,SAAF,IAAEA,QAAF,EAAEA,GAAcM,MACnCxhD,UAAWA,EACXmnC,OAAQ8rC,GACR3tE,SAAUA,GACVg/C,SAAQ,OAAEh9C,SAAF,IAAEA,QAAF,EAAEA,GAAS5C,SACnBlB,aAAcghD,GACdY,UAAS,OAAElE,SAAF,IAAEA,IAAF,UAAEA,GAAcM,aAAhB,aAAE,EAAqB7kD,OAChC4C,QA/ckB,WAC9B2zE,IAAoB,IA+cRpuB,WAAY6xB,SCroB1Bc,GAAiB,SAAC,GAAyC,IAAvCn4E,EAAsC,EAAtCA,KAAM2T,EAAgC,EAAhCA,IAAK1T,EAA2B,EAA3BA,QAASm4E,EAAkB,EAAlBA,YAC1C,OACI,eAAC,GAAD,CAAiBp4E,KAAMA,EAAMC,QAASA,EAASC,MAAM,+BAArD,UACI,eAAC4sC,GAAA,EAAD,WACI,cAAC7K,GAAA,EAAD,CAAYgL,MAAM,SAASxL,GAAI,CAAEgE,GAAI,GAArC,6EAGA,cAACxD,GAAA,EAAD,CAAYgL,MAAM,SAAlB,0IAIA,cAACtC,GAAA,EAAD,CAASlJ,GAAI,CAAEiJ,GAAI,EAAGjF,GAAI,KAC1B,cAACxD,GAAA,EAAD,CAAYgL,MAAM,SAASnL,WAAW,OAAOL,GAAI,CAAEgE,GAAI,GAAvD,4BAGA,cAACxD,GAAA,EAAD,CAAYgL,MAAM,SAAlB,SAA4Bt5B,OAEhC,eAACu5B,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAU6lB,GAAI,EAAG/Z,GAAI,GAA1D,UACI,cAACzO,GAAA,EAAD,CAAQ1K,QAAStxB,EAASi8B,QAAQ,QAAlC,mBAGA,cAACD,GAAA,EAAD,CAAQ1K,QAAS6mD,EAAal8C,QAAQ,OAAtC,8BAYhBi8C,GAAermD,aAAf,eACOzxB,GAGQ83E,U,qBCrCTzhC,GAAY,CACd,CAAE55C,GAAI,OAAQyI,MAAO,QACrB,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,UAAWyI,MAAO,WACxB,CAAEzI,GAAI,UAAWyI,MAAO,WACxB,CAAEzI,GAAI,YA2DKu7E,GAxDU,SAAC,GAAqD,IAAD,IAAlDtwE,mBAAkD,MAApC,GAAoC,EAAhCzB,EAAgC,EAAhCA,UAAWgyE,EAAqB,EAArBA,eACrD,EAA0B9uE,mBAAS,IAAnC,mBAAO04C,EAAP,KAAcC,EAAd,KAEAx4C,qBAAU,WACN,IAAMg5C,EAAiB56C,EAAY4P,KAAI,SAAC8B,GACpC,IAAQza,EAAuFya,EAAvFza,OAAQuJ,EAA+EkR,EAA/ElR,SAAUC,EAAqEiR,EAArEjR,cAAeC,EAAsDgR,EAAtDhR,gBAAiB/H,EAAqC+Y,EAArC/Y,UAAWF,EAA0BiZ,EAA1BjZ,YAAaM,EAAa2Y,EAAb3Y,SAC3EowE,EAAP,YAAsBpwE,EAAtB,MACA,MAAO,CACH9B,SACAuJ,WACApF,OAAO,GAAD,OAAKqF,EAAL,cAAwBC,GAC9BjI,cACAE,YACAgD,YAAY,GAAD,OAAKwtE,EAAYnwE,UAAjB,YAA8BmwE,EAAYlwE,UACrDu3E,gBAAiBrH,EAAYjvE,aAGrCkgD,EAASQ,KACV,CAAC56C,IAmCJ,OAAO,cAAC,GAAD,CAAc4uC,UAAWuL,EAAOxL,UAAWA,GAAWpwC,UAAWA,EAAWuwC,aAjC9D,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QACrByB,EAAmF8vC,EAAnF9vC,SAAUvJ,EAAyEq5C,EAAzEr5C,OAAQmE,EAAiEk1C,EAAjEl1C,OAAQ3C,EAAyD63C,EAAzD73C,YAAaE,EAA4C23C,EAA5C33C,UAAWgD,EAAiC20C,EAAjC30C,YAAa60E,EAAoBlgC,EAApBkgC,gBAOvE,OACI,eAACrmC,GAAD,CAAgB6G,UAAW,EAA3B,UACI,cAACnB,GAAA,EAAD,CAAWrW,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMtnB,MAAM,MAAMqb,QAAQ,SAAvE,SACI,cAAC8H,GAAD,CAAqB1yB,KAAI,iBAAYnjB,GAArC,SAAgDuJ,MAEpD,cAACqvC,GAAA,EAAD,CAAWlmB,MAAM,MAAjB,SACI,cAACuQ,GAAA,EAAD,UAAa9+B,MAEjB,cAACy0C,GAAA,EAAD,CAAWlmB,MAAM,MAAjB,SACI,cAACmjB,GAAD,CAAqB1yB,KAAI,2BAAsBzhB,GAA/C,SAA6DF,MAEjE,cAACo3C,GAAA,EAAD,CAAWlmB,MAAM,MAAjB,SACI,cAACmjB,GAAD,CAAqB/wB,OAAO,SAAS00D,IAAI,WAAWr2D,KAAM4L,GAAoBwqD,GAA9E,SACK70E,MAGT,cAACk0C,GAAA,EAAD,CAAWlmB,MAAM,MAAjB,SACI,cAACuK,GAAA,EAAD,CAAQ1K,QAtBS,SAACuB,GAC1BA,EAAMoD,iBACNoiD,EAAet5E,IAoBgC+mE,UAAW,cAAC,KAAD,IAAe,aAAW,aAA5E,uBAhB2B/mE,IAwBoE83C,mBAAiB,KCzBrH2hC,GApCS,WAAO,IAAD,IACpB/vC,EAAWC,wBACTmB,EAAYrB,eAAZqB,QACR,EAA4CtgC,oBAAS,GAArD,mBAAOkvE,EAAP,KAAuBC,EAAvB,KACA,EAAwCnvE,mBAAS,MAAjD,mBAAOovE,EAAP,KAAqBC,EAArB,KACA,EAAoC95D,KAA5BhK,EAAR,EAAQA,KAAM+zC,EAAd,EAAcA,WAAYpzC,EAA1B,EAA0BA,MACpBmtC,EAAO,8CAA0C+1B,GAEnDljE,GACAgzB,EAASZ,GAAepyB,IAG5B,IAcMojE,EAAiB9xD,SAAS8iB,KAAaj4B,GAAtB,OAA4CkD,QAA5C,IAA4CA,GAA5C,UAA4CA,EAAMhN,mBAAlD,aAA4C,EAAmBkyC,QAAa,OAAJllC,QAAI,IAAJA,GAAA,UAAAA,EAAMhN,mBAAN,eAAmBoyC,aAAc,GAEhI,OACI,eAACnd,GAAA,EAAD,CAAWyE,GAAI,CAAEiJ,GAAI,IAAMzN,SAAS,KAApC,UACI,cAAC,GAAD,CAAkBl1B,YAAa+wE,EAAgBxyE,UAAWwiD,EAAYwvB,eAlBnD,SAACt5E,GACxB65E,EAAgB75E,GAChB25E,GAAkB,MAiBd,cAAC,GAAD,CAAgB34E,KAAM04E,EAAgB/kE,IAAKkvC,EAAS5iD,QAd5B,WAC5B04E,GAAkB,IAawEP,YAV/D,WAC3B9wC,UAAUyxC,UAAUC,UAAUn2B,GAC9B81B,GAAkB,UClCX,OAA0B,iDCgBnCjiC,GAAY,CACd,CAAE55C,GAAI,OAAQyI,MAAO,OAAQuxC,mBAAmB,GAChD,CAAEh6C,GAAI,aAAcyI,MAAO,aAAcuxC,mBAAmB,GAC5D,CAAEh6C,GAAI,WAAYyI,MAAO,WAAYuxC,mBAAmB,GACxD,CAAEh6C,GAAI,MAAOyI,MAAO,OACpB,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,SAAUyI,MAAO,UACvB,CAAEzI,GAAI,YAAayI,MAAO,SAC1B,CAAEzI,GAAI,MAAOyI,MAAO,MAAOuxC,mBAAmB,IAkGnCmiC,GA/FmB,SAAC,GAA2E,IAAzEj1C,EAAwE,EAAxEA,cAAe19B,EAAyD,EAAzDA,UAAW07C,EAA8C,EAA9CA,aAAcH,EAAgC,EAAhCA,eAAgB9K,EAAgB,EAAhBA,UACjFrmC,EAASD,GAATC,KACR,EAAgClH,mBAAS,IAAzC,mBAAOs0C,EAAP,KAAiBC,EAAjB,KAEAp0C,qBAAU,WACN,UAAIq6B,QAAJ,IAAIA,KAAe3mC,OAAQ,CACvB,IAAM67E,EAAmBl1C,EAAcrsB,KAAI,SAACxC,GACxC,IAAQlW,EAAkJkW,EAAlJlW,KAAMk6E,EAA4IhkE,EAA5IgkE,eAAgBv6E,EAA4HuW,EAA5HvW,SAAU0C,EAAkH6T,EAAlH7T,OAAQC,EAA0G4T,EAA1G5T,OAAQ0E,EAAkGkP,EAAlGlP,YAAaC,EAAqFiP,EAArFjP,YAAa1E,EAAwE2T,EAAxE3T,aAAcE,EAA0DyT,EAA1DzT,YAAasC,EAA6CmR,EAA7CnR,aAAcnC,EAA+BsT,EAA/BtT,WAAYoG,EAAmBkN,EAAnBlN,eACjI2wC,EAAajoC,GAAYqB,MAAK,SAACnP,GAAD,OAAYA,EAAO/F,KAAO0E,KAExDq3C,EAAU/xB,GAAW,CAACxlB,EAAQC,IAC9BoB,EAAMskB,GAAW4xB,GACjB/1C,EAAY6mB,GAAgB,CAAEE,QAAS7lB,EAAcqjB,OAHxC,MAIbtkB,EAAM4mB,GAAgB,CAAEE,QAAShoB,EAAYwlB,OAJhC,MAKb+xD,EAA0BnxE,IAAmByI,EACnD,OAAO,2BACAyE,GADP,IAEI3U,YAAavB,EACboC,WAAY83E,EACZz3E,cACA9C,UAAkB,OAARA,QAAQ,IAARA,OAAA,EAAAA,EAAUC,aAAV,OAAuBD,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAUE,kBAC3C8D,OAAO,GAAD,OAAKqD,EAAL,YAAoBC,GAC1BvD,MACAE,OAAQ+1C,EAAW70C,YACnBjB,YACAC,MACAq2E,+BAGRr7B,EAAYm7B,MAEjB,CAACl1C,IAwCJ,OACI,mCACM19B,GAAc09B,EAAc3mC,OAK1B,cAAC,gBAAD,CACIq5C,UAAWA,GACXC,UAAWmH,EACX/G,UAAWA,EACX8K,eAAgBA,EAChBhL,aA9CQ,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QACxBhK,EAAiGu7C,EAAjGv7C,GAAImC,EAA6Fo5C,EAA7Fp5C,KAAMoC,EAAuFg3C,EAAvFh3C,WAAYzC,EAA2Ey5C,EAA3Ez5C,SAAU+D,EAAiE01C,EAAjE11C,IAAKC,EAA4Dy1C,EAA5Dz1C,OAAQC,EAAoDw1C,EAApDx1C,OAAQC,EAA4Cu1C,EAA5Cv1C,UAAWC,EAAiCs1C,EAAjCt1C,IAAKq2E,EAA4B/gC,EAA5B+gC,wBACvEj+B,EAAU,2BAAuBr+C,GAMvC,OACI,eAACo1C,GAAD,CAAgBK,OAAK,EAACwG,UAAW,EAAjC,UACI,cAACnB,GAAA,EAAD,CAAWrW,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMjM,QAAQ,SAA3D,SACI,eAAC7P,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,cAAC0X,GAAA,EAAD,CAAMrT,GAAI,CAAE5P,SAAU,GAAI8P,GAAIy3C,EAA0B,EAAI,GAAKt1D,OAAO,SAAS00D,IAAI,WAAWr2D,KAAMg5B,EAAtG,SACKl8C,IAEJm6E,GACG,cAACl8C,EAAA,EAAD,UACI,cAAC,GAAD,CAASzP,KAAM,GAAI4D,KAAMgoD,GAAUr2D,IAAI,gCAMvD,cAAC40B,GAAA,EAAD,UAAYv2C,IACZ,cAACu2C,GAAA,EAAD,UAAYh5C,IACZ,cAACg5C,GAAA,EAAD,UAAYj1C,IACZ,cAACi1C,GAAA,EAAD,UAAYh1C,IACZ,cAACg1C,GAAA,EAAD,UAAY/0C,IACZ,cAAC+0C,GAAA,EAAD,UAAY90C,IACZ,cAAC80C,GAAA,EAAD,UAAY70C,MApByBjG,IAsCjCymD,sBAnDoB,SAACtL,GACjC+J,EAAa/J,MAwCL,cAAC/a,EAAA,EAAD,CAAKwN,GAAI,GAAIvoC,QAAQ,OAAOy8B,eAAe,SAA3C,SACI,cAACqD,GAAA,EAAD,CAAY/F,QAAQ,aAApB,mD,UC9DLo9C,GAnCM,SAAC,GAAiF,IAA/EC,EAA8E,EAA9EA,YAAap5E,EAAiE,EAAjEA,SAAUq5E,EAAuD,EAAvDA,gBAAuD,IAAtC3xC,cAAsC,SAAtBof,EAAsB,EAAtBA,OAAQhnD,EAAc,EAAdA,QACpF,EAAgCuJ,mBAAS,MAAzC,mBAAO8yD,EAAP,KAAiBC,EAAjB,KAWMz/D,EAAK+qC,EAAS,sBAAmBi1B,EAEvC,OACI,qCACI,cAAC7gC,GAAA,EAAD,CAAQ,mBAAkBn/B,EAAIo/B,QAASs9C,EAAkB,kBAAoB,SAAUjoD,QAb3E,SAACuB,GACjBm0B,IACAsV,EAAYzpC,EAAMiqC,gBAWd,SACKwc,IAEL,cAACE,GAAA,EAAD,CACI38E,GAAIA,EACJkD,KAAM6nC,EACNy0B,SAAUA,EACVr8D,QAhBQ,WAChBA,IACAs8D,EAAY,OAeJmd,aAAc,CACVC,SAAU,SACVC,WAAY,QAPpB,SAUKz5E,QCzBXmjB,GAAQnnB,EAAQ,KAEhB4iC,GAAsB,CAAE3J,QAAS,MAuGxBykD,GArGwB,SAAC,GAAkE,IAAhEvwE,EAA+D,EAA/DA,MAAO/D,EAAwD,EAAxDA,MAAO9G,EAAiD,EAAjDA,WAAYgiC,EAAqC,EAArCA,SAAqC,IAA3BvE,eAA2B,MAAjB,WAAiB,EACrG,EAAoC1yB,mBAAS,IAA7C,mBAAOy1B,EAAP,KAAmBC,EAAnB,KACA,EAA8B11B,mBAAS,IAAvC,mBAAO21B,EAAP,KAAgBC,EAAhB,KAEMC,EAAsBt1B,mBACxB,kBACIu1B,MAAS,SAACC,EAASC,GACfT,GAAoB3J,QAAQiK,oBAAoBE,EAASC,KAC1D,OACP,IAuCJ,OApCA71B,qBAAU,WACN,IAAI81B,GAAS,EAKb,IAHKV,GAAoB3J,SAAWr5B,OAAO2jC,SACvCX,GAAoB3J,QAAU,IAAIr5B,OAAO2jC,OAAOC,KAAKC,OAAOC,qBAE3Dd,GAAoB3J,QAAzB,CAIA,GAAmB,KAAf6J,EAqBJ,OAhBAI,EAAoB,CAAES,MAAOb,IAAc,SAACc,GACxC,GAAIN,EAAQ,CACR,IAAIO,EAAa,GAEb12B,IACA02B,EAAa,CAAC12B,IAGdy2B,IACAC,EAAU,sBAAOA,GAAP,YAAsBD,KAGpCX,EAAWY,OAIZ,WACHP,GAAS,GArBTL,EAAW91B,EAAQ,CAACA,GAAS,OAuBlC,CAAC21B,EAAY31B,IAGZ,cAAC22B,GAAA,EAAD,CACInjC,GAAG,2BACHojC,eAAgB,SAACC,GAAD,MAA+B,kBAAXA,EAAsBA,EAASA,EAAOp8B,aAC1Eq8B,cAAe,SAACC,GAAD,OAAOA,GACtBlB,QAAO,CAAG71B,GAAH,mBAAa61B,IACpBmB,cAAY,EACZh3B,MAAOA,EACPwwE,kBAAgB,EAChBv5C,oBAAkB,EAClBC,uBAAqB,EACrBC,SAAU,SAAC1O,EAAG2O,GACNA,IACAD,EAASC,GACTtB,EAAWsB,EAAQ,CAAIA,GAAJ,mBAAiBvB,IAAWA,KAGvDwB,cAAe,SAAC5O,EAAG6O,GACf1B,EAAc0B,IAElBC,YAAa,SAAC9sB,GAAD,OAAY,cAACyqB,GAAA,EAAD,yBAAWtC,QAASA,GAAanoB,GAAjC,IAAyCsqB,SAAU5/B,EAAY8G,MAAOA,EAAOk5B,WAAS,MAC/GqC,aAAc,SAAC5Q,EAAOiQ,GAClB,IAAM/9B,EAAU+9B,EAAOY,sBAAsBC,6BACvCC,EAAQ3d,GACV6c,EAAOY,sBAAsBG,UAC7B9+B,EAAQuV,KAAI,SAACwpB,GAAD,MAAW,CAACA,EAAM3Z,OAAQ2Z,EAAM3Z,OAAS2Z,EAAM9jC,YAG/D,OACI,8CAAQ6yB,GAAR,aACI,eAACkR,GAAA,EAAD,CAAMC,WAAS,EAACjE,WAAW,SAA3B,UACI,cAACgE,GAAA,EAAD,CAAME,MAAI,EAAV,SACI,cAACpE,EAAA,EAAD,CAAKqE,UAAWC,KAAgBC,GAAI,CAAEC,MAAO,iBAAkBC,GAAI,OAEvE,eAACP,GAAA,EAAD,CAAME,MAAI,EAACM,IAAE,EAAb,UACKX,EAAMtpB,KAAI,SAACkqB,EAAMvL,GAAP,OAEP,aADA,CACA,QAAkBtH,MAAO,CAAE8S,WAAYD,EAAKE,UAAY,IAAM,KAA9D,SACKF,EAAKG,MADC1L,MAIf,cAAC2L,GAAA,EAAD,CAAY/F,QAAQ,QAAQwF,MAAM,iBAAlC,SACKvB,EAAOY,sBAAsBmB,8BC4CnD63C,GAtIQ,SAAC,GAOjB,IANHC,EAME,EANFA,gBACAC,EAKE,EALFA,cACAC,EAIE,EAJFA,2BACAC,EAGE,EAHFA,gBACAC,EAEE,EAFFA,uBACAC,EACE,EADFA,gBAGMC,EAAoB,CACtBhxE,MAAO,GACP/D,MAAO,WACPg1E,YAJuB,IAM3B,EAAoC/wE,mBAAS8wE,GAA7C,mBAAOE,EAAP,KAAmBC,EAAnB,KACA,EAA8CjxE,oBAAS,GAAvD,mBAAOgwE,EAAP,KAAwBkB,EAAxB,KACA,EAA4BlxE,oBAAS,GAArC,mBAAOq+B,EAAP,KAAe8yC,EAAf,KACQrxE,EAA8BkxE,EAA9BlxE,MAAO/D,EAAuBi1E,EAAvBj1E,MAAOg1E,EAAgBC,EAAhBD,YAEhBK,EAAe,uCAAG,WAAOj3E,EAAKC,GAAZ,eAAAiR,EAAA,sEACG0xB,GAA+B5iC,EAAKC,GADvC,OACdhF,EADc,OAEpB67E,EAAc,2BAAKD,GAAN,IAAkBlxE,MAAO1K,EAAU2G,MAAM,QAAD,OAAU3G,MAC/D87E,GAAmB,GAHC,2CAAH,wDAMrB/wE,qBAAU,WACFqwE,IACAS,EAAcH,GACdI,GAAmB,MAExB,CAACV,IAEJrwE,qBAAU,WACF0wE,EACAO,EAAgBP,EAAgB12E,IAAK02E,EAAgBz2E,MAErD82E,GAAmB,GACnBD,EAAcH,MAEnB,CAACD,IAEJ,IAQMQ,EAA4B,uCAAG,kCAAAhmE,EAAA,yDACjC8lE,GAAU,IACNrzC,UAAUC,YAFmB,wBAG7B2yC,GAA2B,GAHE,SAKKpzC,KALL,mBAKrBnjC,EALqB,EAKrBA,IAAKC,EALgB,EAKhBA,IAAK8R,EALW,EAKXA,MAClB0kE,EAAuBz2E,EAAKC,EAAK22E,EAAa7kE,IAE1C/R,IAAOC,EARkB,kCASnBg3E,EAAgBj3E,EAAKC,GATF,4CAAH,qDAc5Bk3E,EAAqB,uCAAG,gCAAAjmE,EAAA,yDAC1B8lE,GAAU,GADgB,OAEtBrxE,QAFsB,IAEtBA,MAAOy8B,SAFe,iCAGKF,GAAgBv8B,GAHrB,cAGhByxE,EAHgB,OAIdp3E,EAAao3E,EAAbp3E,IAAKC,EAAQm3E,EAARn3E,IACbq2E,EAAcM,EAAa52E,EAAKC,GALV,SAMhBg3E,EAAgBj3E,EAAKC,GANL,+BAQtBq2E,EAAcM,GARQ,QAW1BG,GAAmB,GAXO,4CAAH,qDA6B3B,OACI,cAAC,GAAD,CACI7yC,OAAQA,EACRof,OAlBqB,WACzB0zB,GAAU,IAkBN16E,QAfsB,WAC1B06E,GAAU,IAeNnB,gBAAiBA,EACjBD,YAAah0E,EALjB,SAOI,eAAC23B,EAAA,EAAD,CAAK2P,EAAG,EAAGnb,MAAO,IAAlB,UACI,eAACwL,EAAA,EAAD,CAAKuI,GAAI,EAAGtjC,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAArE,UACI,cAAC6E,GAAA,EAAD,CAAY/F,QAAQ,KAApB,sBACA,cAAC,SAAD,CAAQ3K,QAlBM,WAC1BkpD,EAAcH,GACdK,GAAU,GACVD,GAAmB,GACnBP,KAcoD14C,GAAI,CAAE1c,GAAI,GAAlD,sBAIJ,cAAC,GAAD,CAAUzb,MAAOA,EAAOm3B,SAlEL,SAACu6C,GAC5BP,EAAc,2BAAKD,GAAN,IAAkBlxE,MAAO0xE,MAiE4B9+C,QAAQ,aAClE,cAAC,SAAD,CAAQ3K,QAASspD,EAA8Bp5C,GAAI,CAAE1c,GAAI,GAAKghD,UAAW,cAAC,KAAD,IAAzE,8BAGA,eAAC7oC,EAAA,EAAD,CAAKnY,GAAI,EAAT,UACI,cAACkd,GAAA,EAAD,CAAYwD,GAAI,EAAGvJ,QAAQ,KAA3B,sBAGA,cAAC,KAAD,CACI5yB,MAAOixE,EACP95C,SAxES,SAAC3N,GAC1B2nD,EAAc,2BAAKD,GAAN,IAAkBD,YAAaznD,EAAMhP,OAAOxa,UAwEzCq5B,IAAK,IACLH,KAAM,KACNI,IAAK,GACLq4C,MAAOt2D,QAGf,cAACuY,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAnC,SACI,cAAC,SAAD,CAAQ4E,UAAWl6B,EAAOioB,QAASupD,EAAuB9nD,SAAS,UAAnE,2BC3HdjB,GAAI,CAAEmpD,oBAyGGC,GAvGM,SAAC,GAAoD,IAAlDlB,EAAiD,EAAjDA,cAAeD,EAAkC,EAAlCA,gBAAiB13C,EAAiB,EAAjBA,WAC5C1vB,EAAmBD,GAAnBC,IAAKC,EAAcF,GAAdE,IAAKC,EAASH,GAATG,KACZsoE,E9HgKuB,SAAC94C,GAC9B,IACM+4C,EACE,EADFA,EAIE,EAGAhzC,EAAuBlkB,GAAbuE,EAAavE,GAC/B,OAAQme,GACJ,KAVuB3vB,GAAnBC,IAWA,OAAOy1B,EACX,KAZuB11B,GAAdE,IAaL,OAAO6V,EACX,KAduB/V,GAATG,KAgBV,MAAO,CAACuoE,EAAeA,GAC3B,QACI,MAAO,I8HnLIC,CAAkBh5C,GAC/BpiC,EAAQyS,GAAY2vB,EAAWi5C,eAC/BjB,EAAoB,CACtBhxE,MAAO8xE,EACP71E,MAAOrF,GAEX,EAAoCsJ,mBAAS8wE,GAA7C,mBAAOE,EAAP,KAAmBC,EAAnB,KACA,EAA8CjxE,oBAAS,GAAvD,mBAAOgwE,EAAP,KAAwBkB,EAAxB,KACA,EAA4BlxE,oBAAS,GAArC,mBAAOq+B,EAAP,KAAe8yC,EAAf,KA4BQrxE,EAAiBkxE,EAAjBlxE,MAAO/D,EAAUi1E,EAAVj1E,MACf,EA3BsB,SAAC+D,GAAW,IAAD,IACzBi5B,EACApgC,EACAqgC,EAAO,EAEX,OAAQF,GACJ,KAAK1vB,EACD2vB,EAAeplC,OAAOC,KAAK2mB,IAAqB1mB,OAChD8E,EAAU8kB,GAAW3d,GACrB,MACJ,KAAKuJ,EACD0vB,EAAe,GACfpgC,EAAO,oBAAMmH,EAAM,UAAZ,aAAM,EAAU2hB,QAAQ,GAAxB,wBAAgC3hB,EAAM,UAAtC,aAAgC,EAAU2hB,QAAQ,IACzDuX,EAAO,GACP,MACJ,KAAK1vB,EACDyvB,EAAeplC,OAAOC,KAAK4mB,IAAsB3mB,OACjD8E,E/H2HiB,SAACmH,GAC9B,IAAM4d,EAAa5d,EAAM,GACnB6d,EAAW7d,EAAM,GACvB,OAAI4d,GAAcC,EACR,GAAN,OAAUnD,GAAqBkD,GAA/B,eAAiDlD,GAAqBmD,IAEnE,G+HjIeq0D,CAAkBlyE,GAC5B,MACJ,QACIi5B,EAAe,GACfpgC,EAAU,GAElB,MAAO,CAAEogC,eAAcpgC,UAASqgC,QAIIC,CAAcn5B,GAA9Ci5B,EAAR,EAAQA,aAAcpgC,EAAtB,EAAsBA,QAASqgC,EAA/B,EAA+BA,KAE/B74B,qBAAU,WACFqwE,IACAS,EAAcH,GACdI,GAAmB,MAExB,CAACV,IA6BJ,OACI,cAAC,GAAD,CACInyC,OAAQA,EACRof,OAXqB,WACzB0zB,GAAU,IAWN16E,QARsB,WAC1B06E,GAAU,IAQNnB,gBAAiBA,EACjBD,YAAah0E,EALjB,SAOI,eAAC23B,EAAA,EAAD,CAAK2P,EAAG,EAAGnb,MAAO,IAAlB,UACI,eAACwL,EAAA,EAAD,CAAKuI,GAAI,EAAGtjC,QAAQ,OAAOy8B,eAAe,gBAA1C,UACI,cAACqD,GAAA,EAAD,UAAa/hC,IACb,cAAC+hC,GAAA,EAAD,UAAa9/B,OAEjB,cAAC,KAAD,CAAQmH,MAAOA,EAAOm3B,SAxCL,SAAC3N,GAC1B2nD,EAAc,2BAAKD,GAAN,IAAkBlxE,MAAOwpB,EAAMhP,OAAOxa,UAuCWq5B,IAAKJ,EAAcK,IAAK,EAAGJ,KAAMA,IACvF,cAACtF,EAAA,EAAD,CAAKwN,GAAI,EAAGvoC,QAAQ,OAAOy8B,eAAe,SAA1C,SACI,cAAC,SAAD,CAAQrN,QAtCK,WACzB0oD,EAAc3wE,GAEgByoB,GAAEmpD,QAAQ5xE,EAAOgxE,EAAkBhxE,QAE7DmxE,EAAcH,GACdI,GAAmB,KAEnBD,EAAc,2BAAKD,GAAN,IAAkBj1E,MAAOpD,KACtCu4E,GAAmB,IAGvBC,GAAU,IA0ByC3nD,SAAS,UAAhD,2BC/FdyoD,GAAoB,SAAC,GAA4E,IAA1EngB,EAAyE,EAAzEA,cAAe2e,EAA0D,EAA1DA,cAAeD,EAA2C,EAA3CA,gBAAiBz0E,EAA0B,EAA1BA,MAAO9C,EAAmB,EAAnBA,aAC/E,EAAoC+G,mBAAS,IAA7C,mBAAOgxE,EAAP,KAAmBC,EAAnB,KACA,EAA4BjxE,oBAAS,GAArC,mBAAOq+B,EAAP,KAAe8yC,EAAf,KACA,EAA8CnxE,oBAAS,GAAvD,mBAAOgwE,EAAP,KAAwBkB,EAAxB,KAEA/wE,qBAAU,WACFlH,IAAiB+3E,EAAWvuD,SAASxpB,KAEjCg4E,EADAT,EACc,CAACv3E,GAED,GAAD,mBAAK+3E,GAAL,CAAiB/3E,KAElCi4E,GAAmB,KAGlBj4E,GAAgBu3E,IACjBS,EAAc,IACdC,GAAmB,MAExB,CAACj4E,EAAcu3E,IAElB,IAAMn1C,EAAiB,SAAC/R,GACpB,IAAMxpB,EAAQ0d,SAAS8L,EAAMhP,OAAOxa,OAEpC,GAAIkxE,EAAWvuD,SAAS3iB,GAAQ,CAC5B,IAAMoyE,EAAclB,EAAW3uD,QAAO,SAAClW,GAAD,OAAYA,IAAWrM,KAC7DmxE,EAAciB,QAEdjB,EAAc,GAAD,mBAAKD,GAAL,CAAiBlxE,MAoCtC,OACI,cAAC,GAAD,CACIu+B,OAAQA,EACRof,OArBa,WACjB0zB,GAAU,IAqBN16E,QAlBc,WAClB06E,GAAU,IAkBNnB,gBAAiBA,EACjBD,YAhBe,WACnB,IAAI9sC,EAAclnC,EAElB,GAAIi1E,EAAWn9E,OAAQ,CACnB,IAAMs+E,EAAiBrgB,EAAczvC,QAAO,SAAC5Z,GAAD,OAAUuoE,EAAWvuD,SAASha,EAAKnV,OAAK6a,KAAI,SAAChC,GAAD,OAAYA,EAAO5R,eAC3G0oC,EAAW,UAAMkvC,EAAexqD,KAAK,OAEzC,OAAOsb,EASUmvC,GALjB,SAOI,eAAC1+C,EAAA,EAAD,CAAK2P,EAAG,EAAGnb,MAAO,IAAlB,UACI,cAACuR,GAAA,EAAD,CAAaxB,GAAI,CAAEo6C,GAAI,GAAKt6C,UAAU,WAAWrF,QAAQ,WAAzD,SACI,cAACkoB,GAAA,EAAD,UACKkX,EAAc3jD,KAAI,SAAChC,GAChB,IAAQ7Y,EAAoB6Y,EAApB7Y,GAAIiH,EAAgB4R,EAAhB5R,YACN+3E,EAAYtB,EAAWvuD,SAASnvB,GACtC,OACI,cAACswC,GAAA,EAAD,CAEIlP,QAAS,cAACmmB,GAAA,EAAD,CAAU/6C,MAAOxM,EAAIwnD,QAASw3B,EAAWr7C,SAAUoE,EAAgB5lC,KAAM8E,IAClFwB,MAAOxB,GAFFjH,UAQzB,cAACogC,EAAA,EAAD,CAAKwN,GAAI,EAAGvoC,QAAQ,OAAOy8B,eAAe,SAA1C,SACI,cAAC,SAAD,CAAQrN,QAzDK,WACzB,IAAMwqD,GAAmBvB,EAAWn9E,OAEpC48E,EADuB8B,EAAkB,KAAOvB,GAG5CuB,GACAtB,EAAc,IACdC,GAAmB,IAEnBA,GAAmB,GAEvBC,GAAU,IA8CyC3nD,SAAS,UAAhD,2BAapByoD,GAAkB3pD,aAAlB,eACOxxB,GAGQm7E,UCHAO,GA3Gc,SAAC,GAAuB,IAArBC,EAAoB,EAApBA,cAEtB7nE,EAAgBf,KAChBq1B,EAAWC,wBAEjB,EAAsCn/B,qBAAtC,mBAAO0yE,EAAP,KAAoBC,EAApB,KACA,EAA0C3yE,mBAAS,IAAnD,mBAAOw6B,EAAP,KAAsBC,EAAtB,KACA,EAAkDz6B,oBAAS,GAA3D,mBAAO8/C,EAAP,KAA0BC,EAA1B,KACA,EAA4C//C,oBAAS,GAArD,mBAAO4yE,EAAP,KAAuBC,EAAvB,KACA,EAA8B7yE,oBAAS,GAAvC,mBAAOggD,EAAP,KAAgBC,EAAhB,KACA,EAA8CjgD,mBAAS,MAAvD,mBAAO8yE,EAAP,KAAwBC,EAAxB,KACA,EAAwD/yE,oBAAS,GAAjE,mBAAOgzE,EAAP,KAA6BC,EAA7B,KAiBM1nD,EAAgB,uCAAG,8BAAAlgB,EAAA,6DACfR,EAAc,CAChBqoE,WAAY,CAAEC,KA7BH,IA8BXC,iBAAiB,eAAMX,IAHN,SAKE9nE,GAAqBC,EAAeC,GAAamhB,OAAM,SAACq0B,GAC3EN,GAAqB,GACrB7gB,EAASZ,GAAe+hB,OAPP,OAKfv0C,EALe,OAUrB6mE,EAAe7mE,GAVM,2CAAH,qDAmBhBunE,EAAgB,uCAAG,WAAOC,GAAP,eAAAjoE,EAAA,sEACEN,GAAqBH,EAAe,CAAE0oE,aAAYtnD,OAAM,SAACq0B,GAAiB,IAAD,EAC5F,IAAI,UAAAA,EAAYv0C,gBAAZ,eAAsBK,UAAW0O,GAGjC,OAFAklC,GAAqB,GAR7BtlB,EAAiB,IACjBs4C,EAAmB,WACnBxnD,IAUI2T,EAASZ,GAAe+hB,OAPP,OACfv0C,EADe,OAUrB6mE,EAAe7mE,GAVM,2CAAH,sDAyDtB,OA5CA3L,qBAAU,WACN,UAAIuyE,QAAJ,IAAIA,KAAannE,KAAM,CACnB,MAAgCmnE,EAAYnnE,MAAQ,GAA5CgoE,EAAR,EAAQA,UAAWD,EAAnB,EAAmBA,SAEfA,GACAP,EAAmBO,GAEvBvzB,GAAqB,GAEjBwzB,EAAU1/E,OApEH,GAqEPg/E,GAAkB,GAElBA,GAAkB,GAIlBp4C,EADAu4C,EACiB,GAAD,mBAAKx4C,GAAL,YAAuB+4C,IAEtBA,GAGrBtzB,GAAW,GACXgzB,GAAwB,MAE7B,CAACP,IAEJvyE,qBAAU,WACN,IAAMqzE,EAAoB,uCAAG,4BAAAnoE,EAAA,yDACzB00C,GAAqB,KAEf0zB,EAAkBT,EAAuBF,EAAkB,MAHxC,gCAMfO,EAAiBI,GANF,6CAQfloD,IARe,2CAAH,qDAYtBy0B,GACAwzB,MAEL,CAACxzB,EAASgzB,IAEN,CAAEx4C,gBAAeslB,oBAAmB8yB,iBAAgBc,sBA3F7B,WAC1BzzB,GAAW,GACXgzB,GAAwB,IAyFsD3yB,cAtF5D,WAClBL,GAAW,GACX8yB,EAAmB,OAoF0ExyB,mBAjFtE,WACvB9lB,EAAiB,IACjBs4C,EAAmB,SCRrBY,GAAa,SAAC,GAA+D,IAA7Dt5E,EAA4D,EAA5DA,aAAcu5E,EAA8C,EAA9CA,aAAcC,EAAgC,EAAhCA,UAAWC,EAAqB,EAArBA,eACnD50C,EAAWC,wBACT9hB,EAAWhV,GACX0rE,EAA+C9qE,GAA9B+qE,EAA8B/qE,GAAdgrE,EAAchrE,GAC/Cy1C,EAA0B53C,GAAf63C,EAAe73C,GAC1BsC,EAAmBD,GAAnBC,IAAKC,EAAcF,GAAdE,IAAKC,EAASH,GAATG,KACZ4qE,EAAahsE,GAAsB,GAAG5U,GACtC6gF,EAAoBjrE,GAAoBgrE,GAExCE,EAAuB,CACzBC,cAAe,CAAC72D,SAASo2D,IACzBU,eAAgB,CACZC,SAdY,GAeZp6E,KAAiB,OAAZE,QAAY,IAAZA,OAAA,EAAAA,EAAcF,MAAO,KAC1Bq6E,MAAkB,OAAZn6E,QAAY,IAAZA,OAAA,EAAAA,EAAcD,MAAO,MAE/Bq6E,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,oBAAqB,CAACT,GACtBU,cAAe,GACfC,aAAc,CAACjB,GACfzmC,OAAQnkC,GACRm3C,YAAa1B,EAAUprD,IAG3B,EAA0C0M,mBAASo0E,GAAnD,mBAAO3B,EAAP,KAAsBsC,EAAtB,KACA,EAA0D/0E,oBAAS,GAAnE,mBAAOg1E,EAAP,KAA8BC,EAA9B,KACA,EAA8Cj1E,qBAA9C,mBAAO6wE,EAAP,KAAwBqE,EAAxB,KACA,EAA0Dl1E,mBAAS8zE,GAAnE,mBAAOqB,EAAP,KAA8BC,EAA9B,KACA,EAAkDp1E,mBAASk0E,GAA3D,mBAAOmB,EAAP,KAA0BC,EAA1B,KACA,EAAgEt1E,qBAAhE,mBAAOu1E,EAAP,KAAiCC,EAAjC,KACA,EAAkCx1E,mBAAS0+C,GAA3C,mBAAOnR,EAAP,KAAkBC,EAAlB,KACA,GAA4CxtC,mBAAS+zE,GAArD,qBAAO17B,GAAP,MAAuB4G,GAAvB,MAEA,GAAuHuzB,GAAqB,CAAEC,kBAAtIj4C,GAAR,GAAQA,cAAeslB,GAAvB,GAAuBA,kBAAmB8yB,GAA1C,GAA0CA,eAAgBc,GAA1D,GAA0DA,sBAAuBpzB,GAAjF,GAAiFA,cAAeC,GAAhG,GAAgGA,mBAE1Fk1B,GAAiB,uCAAG,sBAAApqE,EAAA,sDACtBk1C,KADsB,2CAAH,qDAIvBpgD,qBAAU,WACN,IAAMu1E,EAAsB,uCAAG,oCAAArqE,EAAA,6DACnBlR,GADmB,EACNE,GAAgB,IAA7BF,IAAKC,EADc,EACdA,IACPoC,EAAWghB,SAASo2D,GACpB17E,GjIoIsB5E,EiIpIgBkJ,KjIqItBslB,IAAwBxuB,IAAO0uB,GAIlD3E,GAHgB/pB,IAAOyuB,IAA6BzuB,IAAOuuB,GAO3DD,QADX,EiI/ImC,SAKrB6zD,KALqB,OAO3BV,EAAiB,2BACVX,GADS,IAEZU,aAAc,CAAC58E,GACfm8E,cAAe,CAAC73E,MAEpBy4E,GAAyB,GACzBG,EAAyBtB,GACzBoB,EAAmB,CAAE/6E,MAAKC,QAC1BkmD,KAf2B,kCjIuIA,IAAChtD,IiIvID,OAAH,qDAiBxBsgF,GAAgBv5E,GAChBq7E,MAEL,CAAC9B,EAAcv5E,EAAcy5E,IAEhC,IAAM6B,GAAc,WAChBr1B,KACA20B,GAAyB,IAmEvBW,GAA2B,uCAAG,WAAO7E,EAAa52E,EAAKC,GAAzB,SAAAiR,EAAA,sDAC5BlR,GAAOC,GACP26E,EAAiB,2BAAKtC,GAAN,IAAqB6B,eAAgB,CAAEn6E,MAAKq6E,KAAMp6E,EAAKm6E,SAAUxD,MACjFmE,EAAmB,CAAE/6E,MAAKC,SAE1B26E,EAAiB,2BAAKtC,GAAN,IAAqB6B,eAAe,2BAAM7B,EAAc6B,gBAArB,IAAqCC,SAAUxD,OAGtG4E,KARgC,2CAAH,0DAgB3BtE,GAA4B,uCAAG,WAAOl3E,EAAKC,EAAKm6E,EAAUroE,GAA3B,SAAAb,EAAA,sDAC7ByyB,UAAUC,aACN5jC,GAAOC,IACP26E,EAAiB,2BAAKtC,GAAN,IAAqB6B,eAAgB,CAAEn6E,MAAKq6E,KAAMp6E,EAAKm6E,eACvEoB,KACAH,GAA4B,IAE5BtpE,IACAgzB,EAASwT,GAAU,CAAEh8C,MAAO,yBAA0B0V,QAAO,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAOE,WACtEopE,GAA4B,KAGhCt2C,EAASwT,GAAU,CAAEh8C,MAAO,mBAAoB0V,QAAS,kCAZ5B,2CAAH,4DAuClC,OACI,eAAConB,GAAA,EAAD,CAAWyE,GAAI,CAAEiJ,GAAI,IAAMmjC,gBAAc,EAAC5wC,SAAS,KAAnD,UACI,cAACgF,GAAA,EAAD,CAAY/F,QAAQ,aAApB,+BAAiDmhD,IAAcx2D,EAAS,SAAW,aAAnF,cACA,cAACqW,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACI,eAAC2Y,GAAA,EAAD,CAAOje,QAAS,EAAG4S,UAAU,MAA7B,UACI,cAAC,GAAD,CACIgiC,gBAAiBwE,EACjBvE,cAAemF,GACflF,2BA/BqB,SAACmF,GACtCL,EAA4BK,IA+BZlF,gBArDuB,WACvCgF,KACAZ,EAAiB,2BAAKtC,GAAN,IAAqB6B,eAAgB,SAoDrC1D,uBAAwBS,GACxBR,gBAAiBA,IAErB,cAAC,GAAD,CACI90E,MAAM,OACN+1D,cAAe5pD,GACfsoE,gBAAiBwE,EACjBvE,cAxIY,SAACqF,GAG7B,GAFAH,KAEIG,EAAc,CACd,IAAMlB,EAAmB,OAAGkB,QAAH,IAAGA,OAAH,EAAGA,EAAc3nE,KAAI,SAAChC,GAAD,OAAYjD,GAAoBiD,MAC9E4oE,EAAiB,2BAAKtC,GAAN,IAAqBmC,8BAErCU,EAAqB,MACrBP,EAAiB,2BAAKtC,GAAN,IAAqBmC,oBAAqB,SAiI9C37E,aAAco8E,IAElB,cAAC,GAAD,CACIt5E,MAAM,OACN+1D,cAAepqD,GACf8oE,gBAAiBwE,EACjBvE,cAnIY,SAACsF,GAC7BJ,KACA,IAAMtB,EAAgBvvD,GAAuBixD,EAAYlC,GAEpDkC,GACDX,EAAyB,MAG7BL,EAAiB,2BAAKtC,GAAN,IAAqB4B,oBA4HrBp7E,aAAck8E,IAElB,cAAC,GAAD,CAAcr8C,WAAY1vB,EAAKonE,gBAAiBwE,EAAuBvE,cA3HxD,SAAClzD,GAC5B,kBAAmBA,EAAnB,GAAO6b,EAAP,KAAYD,EAAZ,KACMrhC,EAASyiB,GAAoB6e,GAC7BrhC,EAASwiB,GAAoB4e,GAEnCw8C,KACAZ,EAAiB,2BAAKtC,GAAN,IAAqBgC,UAAW,CAAE38E,SAAQC,gBAsH9C,cAAC,GAAD,CACI+gC,WAAY+6C,IAAcx2D,EAAShU,EAAMC,EACzCknE,gBAAiBwE,EACjBvE,cAAeoD,IAAcx2D,EAtHT,SAAC24D,GACrC,kBAAmCA,EAAnC,GAAOv5E,EAAP,KAAoBC,EAApB,KACAi5E,KACAZ,EAAiB,2BAAKtC,GAAN,IAAqBiC,UAAW,CAAEj4E,cAAaC,mBAGvB,SAACu5E,GACzC,kBAA4BA,EAA5B,GAAOC,EAAP,KAAgBC,EAAhB,KACMC,EAAe57D,GAAqB07D,GACpCG,EAAe77D,GAAqB27D,GAE1CR,KACAZ,EAAiB,2BAAKtC,GAAN,IAAqBkC,WAAY,CAAEyB,eAAcC,sBA4GrD,cAAC,GAAD,CACIt6E,MAAM,SACN+1D,cAAe3qD,GACfqpE,gBAAiBwE,EACjBvE,cA7Gc,SAACoE,GAC/Bc,KACAZ,EAAiB,2BAAKtC,GAAN,IAAqBoC,sBA8GzB,cAACpiD,GAAA,EAAD,CAAQ1K,QA3GK,WACzB4tD,KAEA,IAAMtB,EAAgBvvD,GAAuB,KAAM+uD,GACnDkB,EAAiB,2BAAKX,GAAN,IAA4BC,gBAAeC,eAAgB,KAAMM,oBAAqB,GAAIE,aAAc,MAExHG,GAAyB,GACzBC,EAAmB,MACnBI,EAAqB,MACrBF,EAAyB,OAkGb,gCAGR,cAAC1hD,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACI,cAAC,GAAD,CACIpkC,UAAWy4E,EACX/6C,cAAeA,GACfge,aAlEW,SAAC/J,GAGxB,GAFAknC,KAEIlnC,IAAa4J,GAAgB,CAC7B,IAAMhK,EAAgBd,IAAcmR,EAAYC,EAAaD,EAC7DlR,EAAaa,GACb0mC,EAAiB,2BAAKtC,GAAN,IAAqBryB,YAAa/R,EAAc/6C,UAC7D,CACHk6C,EAAakR,GACb,IAAItR,EAASqB,EAAS36C,cACL,WAAb26C,IACArB,EAASymC,IAAcx2D,EAAS22D,EAAWC,GAG/Cc,EAAiB,2BAAKtC,GAAN,IAAqBryB,YAAa1B,EAAUprD,GAAI85C,YAEpE6R,GAAkBxQ,IAmDN4J,eAAgBA,GAChB9K,UAAWA,EAAUztC,WAG3B8yE,MAAmB,OAACp4C,SAAD,IAACA,QAAe3mC,SACjC,cAAC6/B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAnC,SACI,cAAC2E,GAAA,EAAD,CACIhS,QAAS2rD,GACTzgD,QAAS6sB,GACTptB,QAAQ,OACRuH,iBAAkB,cAAC3E,GAAA,EAAD,CAAkB4C,MAAM,UAAUjU,KAAM,KAJ9D,6BAkBpB0vD,GAAWrrD,aAAX,eACOpvB,GAGQy6E,UClPA2C,GAvCO,WAClB,IAAQnjF,EAASs3B,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAAtClgC,KACFiC,EAAQ,OAAGjC,QAAH,IAAGA,OAAH,EAAGA,EAAMiC,SACfw+E,EAAiB30C,eAAjB20C,aACA5uD,EAAkBre,GAAXse,EAAWte,GAClB0W,EAAuBhV,GAAfuZ,EAAevZ,GACvBwZ,EAAqGnb,GAA3Eob,EAA2Epb,GAArDqb,EAAqDrb,GAA1Bsb,EAA0Btb,GAC7G,EAAwC1G,mBAAS,MAAjD,mBAAO3F,EAAP,KAAqBk8E,EAArB,KACA,EAAkCv2E,mBAAS,MAA3C,mBAAO6zE,EAAP,KAAkB2C,EAAlB,KACA,EAA4Cx2E,mBAAS,MAArD,mBAAO8zE,EAAP,KAAuB2C,EAAvB,KA2BA,OAzBAt2E,qBAAU,WAAO,IAAD,EACZ,UAAI/K,QAAJ,IAAIA,GAAJ,UAAIA,EAAU4nC,cAAd,OAAI,EAAkBnpC,OAAQ,CAC1B,kBAAmBuB,EAAS4nC,OAA5B,GAAO7iC,EAAP,KAAYC,EAAZ,KACAm8E,EAAgB,CAAEp8E,MAAKC,WAE5B,CAAChF,IAEJ+K,qBAAU,WACN,GAAIyzE,EAAc,CACd,IAAM8C,EAAiBl5D,SAASo2D,GAE5B8C,IAAmB70D,GAA4B60D,IAAmB30D,EAClEy0D,EAAa50D,GACN80D,IAAmB50D,GAAwB40D,IAAmB10D,GACrEw0D,EAAan5D,GAGbq5D,IAAmB70D,GAA4B60D,IAAmB50D,EAClE20D,EAAkBzxD,GACX0xD,IAAmB30D,GAA6B20D,IAAmB10D,GAC1Ey0D,EAAkBxxD,MAG3B,CAAC2uD,IAEIv5E,EAAsC,cAAC,GAAD,CAAYA,aAAcA,EAAcu5E,aAAcA,EAAcC,UAAWA,EAAWC,eAAgBA,IAAjI,cAAC,GAAD,KCQZ6C,GAvCW,SAAC,GAAiF,IAA/E5+B,EAA8E,EAA9EA,IAA8E,IAAzE/gD,mBAAyE,MAA3D,GAA2D,EAAvDiyE,EAAuD,EAAvDA,YAAarY,EAA0C,EAA1CA,oBAAqB+e,EAAqB,EAArBA,eAC5E9mC,EAAQoE,eACNzwB,EAAuBH,GAAvBG,QAASD,EAAcF,GAAdE,UACT2sD,EAAoC9sD,GAAvB8oC,EAAuB9oC,GACpCw6D,EAAiD57D,GAA7BquD,EAA6BruD,GAAd67D,EAAc77D,GACnDuuD,EAAoB3Y,EAD+B51C,MAGzD,OACI,qCACI,cAAC0Y,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAU2B,MAA9B,SACI,cAACtX,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAKpY,GAAI,EAAT,UACI,cAAC,aAAD,CAAY4c,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUjN,EAAW0H,KAAMihC,EAArE,SACKyqB,IAEL,cAAC,aAAD,CAAYz3C,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUhN,EAASyH,KAAMilD,EAAav9B,WAAY,EAA5F,SACK30C,WAKjB,cAAC08B,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAUwB,MAA9B,SACI,cAACnX,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAAC+1C,GAAA,EAAD,CAAM92C,QAAQ,aAAa5yB,MAAOi4C,EAAK9gB,SAAUgyC,EAAa,aAAW,eAAzE,UACI,cAACjxB,GAAA,EAAD,CAAKj8C,MAAO66E,EAAU92E,MAAO82E,IAC7B,cAAC5+B,GAAA,EAAD,CAAKj8C,MAAOwtE,EAAmBzpE,MAAOypE,IACtC,cAACvxB,GAAA,EAAD,CAAKj8C,MAAOstE,EAASvpE,MAAOupE,IAC5B,cAACrxB,GAAA,EAAD,CAAKj8C,MAAO86E,EAAW/2E,MAAO+2E,e,8BCuEvCC,GAjGK,SAAC,GAA6E,IAAD,IAA1EC,gBAA0E,MAA/D,GAA+D,MAA3DC,sBAA2D,SAAnC3hB,EAAmC,EAAnCA,cAAehhB,EAAoB,EAApBA,cACnExL,EAAQoE,eAUd,OAAO8pC,EAAS5oE,KAAI,YAAkF,IAA/E7a,EAA8E,EAA9EA,GAAIiE,EAA0E,EAA1EA,UAAWC,EAA+D,EAA/DA,SAAUzD,EAAqD,EAArDA,SAAU2K,EAA2C,EAA3CA,MAAOtL,EAAoC,EAApCA,MAAOqF,EAA6B,EAA7BA,SAAUC,EAAmB,EAAnBA,aACxEF,EAAW,UAAMjB,EAAN,YAAmBC,GAC9By/E,EAAeC,aAAiBx4E,GAAS,IACzCy4E,EAAW,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAcG,sBAC5Bz+D,EAAOlgB,GAAY8rB,GAAoB9rB,GAE7C,OACI,cAACi7B,EAAA,EAAD,CAAKuI,GAAI,EAAkB9G,gBAAiB0T,EAAMM,UAAUwB,MAAOtH,EAAG,EAAtE,SACI,eAACzL,GAAA,EAAD,CAAMC,WAAS,EAAC2W,UAAU,MAAM5a,WAAW,SAASwB,eAAe,gBAAgBf,SAAS,WAA5F,UACI,cAACuD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAvB,SACI,cAAC,iBAAD,CACIud,aAAa,OACbC,YAAY,OACZ/gC,KAAMA,EACN67C,WAAYh8D,EACZ+7D,OAAQjwC,GAAqB5rB,OAGpCs+E,EACG,qCACKG,EACG,cAACv/C,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAGjE,GAAI,CAAE2V,GAAI,CAAExV,GAAI,OAAQ8D,GAAI,QAAtD,SACI,cAACoP,GAAA,EAAD,CAAM3yB,KAAI,cAASja,GAAnB,SACI,cAAC,aAAD,CAAY8qB,SAAS,YAAYvF,KAAK,aAAtC,SACKkzD,QAKb,cAACv/C,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAGjE,GAAI,CAAE2V,GAAI,CAAExV,GAAI,OAAQ8D,GAAI,UAEzD9oC,GACG,cAACwkC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAGjE,GAAI,CAAE2V,GAAI,CAAExV,GAAI,OAAQ8D,GAAI,OAAS9T,SAAU,UAAzE,SACI,cAACkjB,GAAA,EAAD,CAAM3yB,KAAI,iBAAYvlB,GAAtB,SACI,cAAC,aAAD,CACI6kC,GAAI,CAAE7P,SAAU,SAAU47B,aAAc,WAAYtV,WAAY,UAChEllB,SAAS,YACTvF,KAAK,aAHT,SAKK7wB,WAOrB,qCACI,cAACwkC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,EAAGjE,GAAI,CAAE2V,GAAI,CAAExV,GAAI,OAAQ8D,GAAI,QAAtD,SACI,cAAC,aAAD,CAAY1S,SAAS,YAAYvF,KAAK,aAAtC,4BAIJ,cAAC2T,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAG8D,GAAI,EAAGjE,GAAI,CAAE2V,GAAI,CAAExV,GAAI,OAAQ8D,GAAI,QAArD,SACI,cAAC,aAAD,CAAY1S,SAAS,YAAYvF,KAAK,aAAtC,mCAMZ,eAAC2T,GAAA,EAAD,CACIE,MAAI,EACJM,GAAI,GACJ8D,GAAI,EACJjE,GAAI,CAAE5D,SAAU,CAAE+D,GAAI,WAAY8D,GAAI,UAAYmO,IAAK,CAAEjS,GAAI,GAAKkS,MAAO,CAAElS,GAAI,IAC/Ez/B,QAAQ,OACRy8B,eAAe,WANnB,UAQI,cAAC+kB,GAAA,EAAD,CAAYpyB,QAAS,kBA3EZ,SAACh0B,EAAUyE,GACpCypB,GAAYluB,EAAUyE,GA0EqB6+E,CAAqBtjF,EAAUyE,IAA1D,SACI,cAAC,cAAD,CAAayrB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,oBAEjDgO,GACG,cAAClb,GAAA,EAAD,CAAYpyB,QAAS,WA1EzCssB,EA0EmE,CAAE5gC,UAAWngB,EAAIkF,iBAAhE,SACI,cAAC,aAAD,CAAYyrB,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUoV,eAjEhDxqD,OCkIdujF,GAjJc,SAAC,GAOvB,IAAD,YANFC,YAME,MANK,GAML,MALF15D,cAKE,MALO,GAKP,MAJFnkB,oBAIE,MAJa,GAIb,MAHF89E,mBAGE,MAHY,GAGZ,EAFFC,EAEE,EAFFA,mBACAC,EACE,EADFA,sBAEM7uC,EAAQoE,eACN/lC,EAASD,GAATC,KACAg1C,EAAmD9/B,GAA9B6/B,EAA8B7/B,GAAjB+oC,EAAiB/oC,GACnDE,EAAuBD,GAAvBC,QAASC,EAAcF,GAAdE,UACT1kB,EAAwC2/E,EAAxC3/E,WAAY2G,EAA4Bg5E,EAA5Bh5E,QAASL,EAAmBq5E,EAAnBr5E,eAC7B,EAA2CtG,GAAc,GAAjDI,EAAR,EAAQA,kBAAmBC,EAA3B,EAA2BA,YACnBmlB,EAAWhV,GACnB,EAA+ClK,GAAkB,GAAzDC,EAAR,EAAQA,eAAgBE,EAAxB,EAAwBA,mBAChBq5E,EAAYlxE,GACd4oC,EAAU/xB,GAAW,QAACzlB,QAAD,IAACA,OAAD,EAACA,EAAYC,OAAb,OAAqBD,QAArB,IAAqBA,OAArB,EAAqBA,EAAYE,SACtD8mC,EAAWphB,GAAW4xB,GACtBh2C,EAAM,UAAGiP,GAAY,OAACzQ,QAAD,IAACA,OAAD,EAACA,EAAYG,aAAcmP,WAA1C,aAAG,EAAqD5M,YAE9Dq9E,EADW1/E,IAAgBmlB,EACH,YAAc,cACtC4D,EAAQL,GAA4B,CAAE3oB,oBAAmBC,cAAa2oB,kBAAkB,IACxFzrB,EAAqB,OAAVyC,QAAU,IAAVA,GAAA,UAAAA,EAAYzC,gBAAZ,SAAsBC,UAAtB,iBAAqCwC,QAArC,IAAqCA,GAArC,UAAqCA,EAAYzC,gBAAjD,aAAqC,EAAsBC,WAAc,GACpFwiF,EAAQ95D,KAAO8B,MACf+vD,GAAiC,OAAPpxE,QAAO,IAAPA,OAAA,EAAAA,EAASC,kBAAmByI,EACtD4wE,EAAyD,KAA1B,OAAXN,QAAW,IAAXA,GAAA,UAAAA,EAAaj5E,mBAAb,eAA0B1K,QAC9CkkF,GAAwC,OAAd35E,QAAc,IAAdA,OAAA,EAAAA,EAAgBC,8BAA+Bs5E,EACzEK,EAA8BH,EAAMngB,SAAN,OAAel5D,QAAf,IAAeA,OAAf,EAAeA,EAASnG,WAAY,OAClE4/E,EAAmCJ,EAAMngB,SAAN,OAAel5D,QAAf,IAAeA,OAAf,EAAeA,EAAS/C,2BAA4B,OACvFy8E,GAAkCJ,IAAsBx5E,EACxD65E,EAA6BF,IAAqCF,GAA2BG,EAC7F7yB,EAAc2yB,GAA+BE,EAC7Cl4D,EAAqBjC,KAAM,OAACvf,QAAD,IAACA,OAAD,EAACA,EAAS9C,8BAA8BmiB,OAAO,WAC1EoC,EAAmBlC,KAAM,OAACvf,QAAD,IAACA,OAAD,EAACA,EAAS/C,4BAA4BoiB,OAAO,WACtEu6D,EAAkB,kDAA8Cp4D,EAA9C,cAAsEC,EAAtE,KAClBo4D,GAA0B,UAAMD,EAAN,iCAC1BE,GACDL,GAAoCC,IAA0C,OAAP15E,QAAO,IAAPA,OAAA,EAAAA,EAAStD,uBAAwBqL,GAE7G,OACI,cAACgyE,GAAA,EAAD,CAAMtgD,GAAI,CAAE0R,aAAc,EAAGgD,UAAW,QAAxC,SACI,eAAC6rC,GAAA,EAAD,WACI,eAAC9kD,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,eAACrE,GAAA,EAAD,CAAMC,WAAS,EAACoE,GAAI,EAApB,UACI,eAACrE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,kBAGA,cAAC,aAAD,CAAYl7B,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACKs7B,OAGT,eAAC3/C,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,oBAGA,cAAC,aAAD,CAAYl7B,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACK5iD,OAGT,eAACu+B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,uBAGA,cAAC,aAAD,CAAYl7B,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACKpd,UAIb,eAACjH,GAAA,EAAD,CAAMC,WAAS,EAACoE,GAAI,EAApB,UACI,eAACrE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,SACKkzB,IAEL,cAAC,aAAD,CAAYpuD,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACKh7B,OAGT,eAAC2W,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,oBAGA,cAAC,aAAD,CAAYl7B,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACKp+B,OAGRzoB,GACG,eAACwiC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,sBAGA,cAAC,aAAD,CAAYl7B,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACK7mD,UAKjB,eAACwiC,GAAA,EAAD,CAAMC,WAAS,EAACjE,WAAW,SAA3B,UACI,eAACgE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAUub,SAAnF,2BAGA,cAAC,aAAD,CAAYl7B,SAAUlN,EAAS2H,KAAMg4B,EAArC,SACKviD,OAGRk2E,GACG,cAACh4C,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,SACI,cAAC,GAAD,CAASnU,KAAM,GAAI4D,KAAMgoD,GAAUr2D,IAAI,iCAKvD,eAACka,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,cAAC,SAAD,CAAQvyC,SAAS,mBAAmBwQ,UAAWqrB,EAAat9B,QAAS2vD,EAAuBz/C,GAAI,CAAEgE,GAAI,GAAtG,sBAGCq8C,IAAwBH,GACrB,cAAC,aAAD,CAAY3uD,SAAUjN,EAAW0H,KAAMkhC,EAAclpB,GAAI,GAAzD,SACK87C,EAA0BK,EAAqBC,KAGvDP,GAAqBE,GAClB,cAAC,aAAD,CAAYxuD,SAAUjN,EAAW0H,KAAMkhC,EAAclpB,GAAI,GAAzD,0CAIHk8C,GACG,cAAC,SAAD,CAAQpwD,QAAS0vD,EAAoBjuD,SAAS,OAA9C,SACI,cAAC,aAAD,CAAYA,SAAUjN,EAAW0H,KAAMkhC,EAAvC,2CCpDbszB,GA7EK,SAAC,GAUd,IAAD,IATFl+E,mBASE,MATY,GASZ,MARFg9E,YAQE,MARK,GAQL,MAPF79E,oBAOE,MAPa,GAOb,MANFqqC,mBAME,MANY,GAMZ,MALFyzC,mBAKE,MALY,GAKZ,MAJFR,sBAIE,aAHFD,gBAGE,MAHS,GAGT,EAFFW,EAEE,EAFFA,sBACAD,EACE,EADFA,mBAEM5uC,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA2/B,EAAoC9/B,GAAf08B,EAAe18B,GACtCuyC,EAAWjE,KAEXguB,EAAiB,OAGvB,OACI,cAAChlD,EAAA,EAAD,CAAKwN,GAAI,EAAGqc,GAAG,OAAf,SACI,eAAC3lB,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QAAS,EAAzB,UACI,eAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,IAAKjE,GAAI,CAAE,iBAAkB,CAAEslB,GAAI,IAA1D,UACI,cAAC7pB,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAU2B,MAAnF,wCAIJ,cAAC,GAAD,CACIysC,KAAMA,EACN15D,OAAQkmB,EACRrqC,aAAcA,EACd89E,YAAaA,EACbC,mBAAoBA,EACpBC,sBAAuBA,OAG/B,eAAC9/C,GAAA,EAAD,CACIE,MAAI,EACJM,GAAI,GACJ8D,GAAI,IACJjE,GAAI,CAAE,iBAAkB,CAAEslB,GAAIoR,EAAW+pB,EAAiB,EAAG9qC,GAAI+gB,EAAW+pB,EAxBtE,SAoBV,UAMKn+E,GACG,qCACI,cAACm5B,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAU2B,MAAnF,2BAIJ,cAACpX,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAACs8C,GAAA,EAAD,CAAMtgD,GAAI,CAAE0R,aAAc,EAAGgD,UAAW,QAAxC,SACI,cAAC6rC,GAAA,EAAD,UACI,cAAC,aAAD,CAAYhvD,SAAUjN,EAAW0H,KAAM60B,EAAY5gB,MAAO2Q,EAAMM,UAAU2B,MAA1E,SACKvwC,aAOzB,cAACm5B,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAMi4B,EAAqBhkB,MAAO2Q,EAAMM,UAAU2B,MAAnF,0BAIJ,cAAC,GAAD,CAAaksC,eAAgBA,EAAgBD,SAAUA,aCrB5DtV,GAnDK,SAAC,GAAmC,IAAjCjjE,EAAgC,EAAhCA,QAASymC,EAAuB,EAAvBA,iBACpB3xC,EAAsBkL,EAAtBlL,GAEFs9D,EAFwBpyD,EAAlBrH,gBACY6O,GAExB,EAQI25D,GAAmB,CAAEzoE,UAAW5D,EAAIia,mBAAmB,EAAOqjD,wBAP9D0P,EADJ,EACIA,eACA7D,EAFJ,EAEIA,eACAK,EAHJ,EAGIA,aACAloE,EAJJ,EAIIA,oBACA8pE,EALJ,EAKIA,kBACA4C,EANJ,EAMIA,oBACAvE,EAPJ,EAOIA,uBAOE4b,EAAkCrY,GAAkB1rE,GAAuBg8D,EAEjF,OACI,cAACp9B,GAAA,EAAD,UACKyR,GAAoBy5B,EACjB,cAAC,GAAD,IAEA,qCACKia,GACG,cAACjlD,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACI,cAAC,GAAD,CACIwiD,aAAchB,EACd/iC,SAAU0kC,EACVznC,SAjBG,SAAC3N,GAAW,IAAD,EACtCg4C,EAAmB,OAACh4C,QAAD,IAACA,GAAD,UAACA,EAAOhP,cAAR,aAAC,EAAexa,YAoBvB,cAAC,GAAD,CACIioC,cAAe6oB,EACfiM,aAAcyD,EACdxD,aAAcA,EACdL,eAAgBA,EAChBM,uBAAwBA,EACxBnoE,oBAAqBA,EACrBsC,UAAW5D,EACX01D,+BAA6B,UCwEtC4vB,GAhHe,SAAC,GAAuD,IAAD,IAApDC,wBAAoD,MAAjC,GAAiC,EAA7B/7E,EAA6B,EAA7BA,UAAW5E,EAAkB,EAAlBA,YACzD2wC,EAAQoE,eACN1wB,EAA6BF,GAA7BE,UAAWq8B,EAAkBv8B,GAAlBu8B,cACXE,EAA6B18B,GAAjBy8B,EAAiBz8B,GA8E/B08D,EAAkB5gF,IAAgBmQ,GAAsB,cAAgB,YACxE0wE,EAAkB,sBAAO58D,IAAP,CAAkC,CAAE7oB,GAAI,+BAAgCyI,MAAO+8E,KAEvG,OACI,eAACtlD,GAAA,EAAD,CAAW6wC,gBAAc,EAAC5wC,UAAU,EAApC,UACI,cAAC,GAAD,CACI2Z,OAAO,OACPD,UAAW0rC,EACX3rC,UAAW6rC,EACXj8E,UAAWA,EACXuwC,aAvFS,SAAC,GAA0B,IAAxBwB,EAAuB,EAAvBA,QAASvxC,EAAc,EAAdA,QAEzBhK,EASAu7C,EATAv7C,GACAyL,EAQA8vC,EARA9vC,SACAC,EAOA6vC,EAPA7vC,cACAC,EAMA4vC,EANA5vC,gBACAC,EAKA2vC,EALA3vC,kBACAC,EAIA0vC,EAJA1vC,6BACA3J,EAGAq5C,EAHAr5C,OACAoE,EAEAi1C,EAFAj1C,KACAC,EACAg1C,EADAh1C,eAGEm/E,GAAqD,IAA/B75E,GAAoCsiB,QAAQ,GAClE43B,EAAO,iBAAa7jD,GAM1B,OACI,eAAC,KAAD,CAAU+5C,UAAW,EAAYtX,GAAI,CAAE9C,gBAAiB,SAAxD,UACI,cAACiZ,GAAA,EAAD,CACInW,GAAI,CAAEC,MAAO2Q,EAAMM,UAAU2B,MAAO9B,OAAQ,QAC5CjR,UAAU,KACVzkC,GAAIgK,EACJkyC,MAAM,MACNjM,QAAQ,SACRE,MAAM,SANV,SAQI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,SACKl/C,MAGT,cAACw0C,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAzB,SACI,cAAC,uBAAD,CACI3gB,SAAUwwB,EACVpjD,KAAMsJ,EACN4Z,KAAM0gC,EACNK,YAAY,OACZD,aAAa,OACbD,eAAgBZ,EAChBe,aAAa,YAGrB,cAACvL,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,SACKh2B,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBC,cAAjB,OAAgCD,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBE,wBAGtE,cAACq0C,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,SACKh2B,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBG,cAAjB,OAAgCH,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBI,wBAGtE,cAACm0C,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,SACK95C,MAGT,cAACovC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,SACK75C,MAGT,cAACmvC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,SACK55C,MAGT,cAACkvC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAArE,mBAAqFkgC,EAArF,WAlDqB1lF,MAoE7B,eAAC,aAAD,CAAY4kC,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUjN,EAAW0H,KAAM60B,EAAY7gB,GAAI,CAAEiJ,GAAI,KAA3F,8EACsE,IAClE,cAACoK,GAAA,EAAD,CACIhxB,OAAO,SACP00D,IAAI,WACJr2D,KAAK,6GAHT,wBAFJ,WCxEGsgE,GAxBM,SAAC,GAA8C,IAAD,IAA3C/gF,mBAA2C,MAA7B,GAA6B,MAAzBghF,qBAAyB,MAAT,GAAS,EACzDrwC,EAAQoE,eACN1wB,EAAcF,GAAdE,UACAq8B,EAAkBx8B,GAE1B,OACI,cAACsX,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACK,OAACg4C,QAAD,IAACA,KAAerlF,OAOb,cAAC,GAAD,CAAuBqE,YAAaA,EAAa2gF,iBAAkBK,IANnE,cAACxlD,EAAA,EAAD,CAAKpY,GAAI,EAAG+sB,UAAU,SAAtB,SACI,cAAC,aAAD,CAAY7e,SAAUjN,EAAW0H,KAAM20B,EAAe1gB,MAAO2Q,EAAMM,UAAU2B,MAA7E,oE,kDC8DLquC,GAxEc,SAAC,GAAqE,IAAnEC,EAAkE,EAAlEA,eAAgBC,EAAkD,EAAlDA,kBAAkD,IAA/B/hF,gBAA+B,MAApB,GAAoB,EAAhBwF,EAAgB,EAAhBA,UAE9E,EAMI+iC,aAAQ,CAAEH,cAPQ,CAAEnvB,IAAK,IAOAuvB,KAAM,QAL/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQpG,EAFzB,EAEyBA,aACrBpF,EAHJ,EAGIA,QACA6S,EAJJ,EAIIA,SACAC,EALJ,EAKIA,SAGJrnC,qBAAU,WACFk5E,GACA7xC,EAAS,MAAO6xC,KAErB,CAACA,IAWJ,OACI,eAAC3lD,EAAA,EAAD,CAAK6pB,GAAI,EAAT,UACI,cAAC,aAAD,CAAY/zB,SAAS,YAAYvF,KAAK,gBAAtC,iCAGA,cAACyP,EAAA,EAAD,CAAKuE,GAAI,CAAEsL,QAAS,UAApB,SACI,cAAC,aAAD,CAAY/Z,SAAS,YAAYvF,KAAK,aAAtC,mJAKJ,uBAAMmd,SAAUrB,GApBK,SAACc,GAC1Bu4C,EAAev4C,EAAWtwB,KAC1Bg3B,EAAS,MAAO,OAkBZ,UACI,cAAC,GAAD,CACI9xC,KAAK,MACLsG,MAAM,iBACN24B,QAASA,EACTxoB,QAASg0B,EAAO3vB,IAChBgpB,aAAc2G,EAAO3vB,KAAO,sFAEhC,cAACmjB,EAAA,EAAD,CAAKuE,GAAI,CAAEsL,QAAS,UAApB,SACI,cAAC,GAAD,CAAkB/d,MAAO,CAAE0C,MAAO,QAAUnsB,MAAM,WAAW+9B,aAAcA,GAAgBh9B,SAGnG,cAAC,aAAD,CAAY0sB,SAAS,YAAYvF,KAAK,cAAtC,gEAGE,OAAC3sB,QAAD,IAACA,MAAUzD,SACT,cAAC6/B,EAAA,EAAD,CAAK6pB,GAAI,EAAT,SACKjmD,EAAS6W,KAAI,SAAC2pB,GACX,IAAMt/B,EAAW,iBAAMs/B,QAAN,IAAMA,OAAN,EAAMA,EAAMvgC,UAAZ,mBAAyBugC,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMtgC,UAChD,OACI,gCACI,cAACk8B,EAAA,EAAD,CAAKuE,GAAI,CAAEqhD,WAAY,SACvB,cAAC,cAAD,CAAaC,eAAgB,kBArC5B,SAACjmF,EAAIkF,GAC9BypB,GAAY3uB,EAAIkF,GAoC2C6+E,CAAqBv/C,EAAKxkC,GAAIkF,IAAc/C,KAAM+C,EAAakG,MAAK,OAAEo5B,QAAF,IAAEA,OAAF,EAAEA,EAAMp5B,MAAOtL,MAAK,OAAE0kC,QAAF,IAAEA,OAAF,EAAEA,EAAM1kC,UAF7H0kC,EAAKxkC,a,iBCnD5BkmF,GAdK/5E,IAAM07C,YAAW,SAACz0B,EAAO+yD,GACzC,IAAMC,EAAarvD,mBACAsvD,EAAuBjzD,EAAlCqR,UAAyBpe,EAAjC,aAA0C+M,EAA1C,IACAkzD,8BAAoBH,GAAU,iBAAO,CACjCv3D,MAAO,kBAAMw3D,EAAW9tD,QAAQ1J,WAOpC,OAAO,cAACy3D,EAAD,aAAWE,QAJI,SAACC,GACnBJ,EAAW9tD,QAAUkuD,IAGqBngE,OCQ1C5X,GAAqB8D,GAArB9D,iBAEFg4E,GAAoB,CAAC,yCAAD,wMA2IXC,GAtIW,SAAC,GAAqE,IAAD,EAAlEC,EAAkE,EAAlEA,aAAcC,EAAoD,EAApDA,yBAA0BC,EAA0B,EAA1BA,oBAC3Dj7C,EAAWC,wBACXi7C,EAASC,uBACTC,EAAWC,yBACjB,EAAsCv6E,mBAAS,IAA/C,mBAAOw6E,EAAP,KAAoBC,EAApB,KAEA,EAAsD3kE,KAAxC4kE,EAAd,EAAQnvE,KAAwB+zC,EAAhC,EAAgCA,WAAYpzC,EAA5C,EAA4CA,MAExCA,GACAgzB,EAASZ,GAAepyB,IAG5B,IAQA,EAKI2zB,aAAQ,CAAEH,cAbQ,CAClBjqC,KAAM,GACNrC,MAAO,GACPunF,QAAS,CACLxrE,QAAS,KASY2wB,KAAM,QAJ/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQpG,EAFzB,EAEyBA,aACrBpF,EAHJ,EAGIA,QACAkuB,EAJJ,EAIIA,SAGEhiB,EAAgB,uCAAG,WAAOC,EAAYvX,GAAnB,qBAAAje,EAAA,yDACrB,UAAI9Y,cAAJ,OAAI,EAAQqoF,WACRroF,OAAOqoF,UAAUC,MAAM,uBAAwBV,GAE9C,OAAL7wD,QAAK,IAALA,KAAOoD,iBACF0tD,GAAWE,EALK,iEASoBF,EAAOU,mBAAmBb,EAAc,CAC7Ec,eAAgB,CACZC,KAAMV,EAASW,WAAWC,gBAC1BC,gBAAiBt6C,KAZJ,iBASNu6C,EATM,EASblvE,OAQJuuE,EAAeW,EAAgBhvE,UAE/B8tE,IACA,UAAI3nF,cAAJ,OAAI,EAAQqoF,WACRroF,OAAOqoF,UAAUC,MAAM,kBAAmBV,IArB7B,2CAAH,wDA0BhBkB,EAAqB,WACnBb,GACAC,EAAe,OAIvB,OACI,cAAC/mD,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACKoe,EACG,cAAC,GAAD,IAEA,sBAAMle,SAAUrB,EAAaa,GAA7B,SACI,eAACiZ,GAAA,EAAD,CAAOje,QAAS,EAAhB,UACI,cAAC,GAAD,CACI7J,QAASspD,EACTrhD,SAAUF,EACVrkC,KAAK,OACLsG,MAAM,kBACNi2B,YAAY,sBACZ2C,WAAYuL,EAAOzqC,KACnBR,YAAU,EACVy/B,QAASA,EACT4mD,gBAAiB,CAAEC,QAAQ,KAE/B,cAACvmD,GAAA,EAAD,CACIjD,QAASspD,EACT3oD,QAAQ,WACRsH,SAAUF,EACV/9B,MAAM,cACN84B,UAAQ,EACR4G,WAAY,CACR+/C,eAAgBhC,GAChBr3C,WAAY,CACRpK,UAAWmjD,iBAGnBI,gBAAiB,CAAEC,QAAQ,KAE/B,cAAC,GAAD,CACIxpD,QAASspD,EACTrhD,SAAUF,EACVrkC,KAAK,QACLsG,MAAM,QACN44B,WAAYuL,EAAO9sC,MACnB6B,YAAU,EACVy/B,QAASA,EACTkuB,SAAUA,EAAS,QAAS,CAAE/tB,UAAU,EAAM4mD,QAAS,iBAE1Dv7C,EAAO9sC,OACJ,cAAC,aAAD,CAAYo2B,SAAS,YAAYvF,KAAK,eAAeuB,MAAO,CAAE0S,MAAO,UAAWzG,UAAW,OAA3F,qCAIJ,cAAC,GAAD,CACIuI,SAAUF,EACVrkC,KAAK,kBACLsG,MAAM,kBACN45B,QAAS+kD,EACT/lD,WAAW,UAACuL,EAAOy6C,eAAR,QAAC,EAAgBxrE,SAC5B7R,QAAQ,gBACRg8B,aAAW,EACXrkC,YAAU,EACVy/B,QAASA,IAEb,eAAC,aAAD,CAAYlL,SAAS,YAAYvF,KAAK,eAAtC,UACK81D,GAAkB,GACnB,mBAAGphE,KAAI,UAAK5W,GAAL,QAAP,sCACCg4E,GAAkB,MAEvB,cAAC,GAAD,CAAkBv0D,MAAO,CAAE0C,MAAO,QAAUnsB,MAAM,WAAW+9B,aAAcA,YC/EpF4hD,GA9DkB,SAAC,GAA0E,IAAxEC,EAAuE,EAAvEA,iBAAkB1B,EAAqD,EAArDA,aAAc2B,EAAuC,EAAvCA,sBAAuB1kF,EAAgB,EAAhBA,UAC/E/D,EAASs3B,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAAtClgC,KACR,EAA8EwoF,GAAoB,GAA1FrjF,EAAR,EAAQA,gBAAiB+G,EAAzB,EAAyBA,UAAzB,IAAoCC,kBAApC,MAAiD,EAAjD,EAAoDC,EAApD,EAAoDA,eAAgBhH,EAApE,EAAoEA,MAC9DsjF,EAAmB,OAAGv8E,QAAH,IAAGA,OAAH,EAAGA,EAAYmiB,QAAQ,GAC1Cq6D,EAAiB,OAAGvjF,QAAH,IAAGA,OAAH,EAAGA,EAAOkpB,QAAQ,GACnCs6D,EAAmB,OAAGx8E,QAAH,IAAGA,IAAkB,IAGxCy8E,EAAe38E,EAAY/G,EAAkB,EAC7C6hF,EAAsB,CACxB18E,kBAAmBvG,EACnBwG,UAAS,OAAEvK,QAAF,IAAEA,OAAF,EAAEA,EAAMG,GACjBqK,WAAYq+E,EANI,cACA,cAMhBp+E,SAAUm+E,EACVl+E,YAAavF,EACbwF,WAAYuB,EACZtB,YAAauB,EACbtB,YAAazF,EACb0F,QAAS1F,GASb,OANA4H,qBAAU,WAAO,IAAD,EACZ,UAAI5N,cAAJ,OAAI,EAAQqoF,WACRroF,OAAOqoF,UAAUC,MAAM,mBAAoBV,KAEhD,IAGC,eAACzmD,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,eAACxN,EAAA,EAAD,CAAK6pB,GAAI,EAAGtC,GAAI,EAAhB,UACI,eAACvnB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAnC,UACI,cAAC,aAAD,CAAY5L,SAAS,YAAYvF,KAAK,aAAtC,yBACA,eAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,aAAtC,UAAoD83D,EAAqBzjF,QAE7E,eAACo7B,EAAA,EAAD,CAAKuI,GAAI38B,EAAa,EAAI,EAAI,EAAG3G,QAAQ,OAAOy8B,eAAe,gBAA/D,UACI,cAAC,aAAD,CAAY5L,SAAS,YAAYvF,KAAK,aAAtC,wBACA,eAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,aAAtC,UAAoD83D,EAAqB18E,QAE5EC,EAAa,GACV,eAACo0B,EAAA,EAAD,CAAKuI,GAAI,EAAGtjC,QAAQ,OAAOy8B,eAAe,gBAA1C,UACI,cAAC,aAAD,CAAY5L,SAAS,YAAYvF,KAAK,aAAtC,yBACA,eAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,aAAtC,UAAoD83D,EAAqBF,QAGjF,cAAC16C,GAAA,EAAD,IACA,eAACzN,EAAA,EAAD,CAAKwN,GAAI,EAAGvoC,QAAQ,OAAOy8B,eAAe,gBAA1C,UACI,cAAC,aAAD,CAAY5L,SAAS,YAAYvF,KAAK,eAAtC,mBACA,eAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,eAAtC,UAAsD83D,EAAqBD,WAGnF,eAACpoD,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAS,YAAYvF,KAAK,eAAtC,iCACA,cAAC,GAAD,CAAmBg2D,aAAcA,EAAcC,yBAA0B0B,EAAuBzB,oBAAqBA,WCStH8B,GAlDO,SAAC,GAA6E,IAA3EC,EAA0E,EAA1EA,gBAAiBC,EAAyD,EAAzDA,iBAAkBzjC,EAAuC,EAAvCA,MAAO0jC,EAAgC,EAAhCA,0BAC/D,OAAK1jC,EAQD,eAAChlB,EAAA,EAAD,WACI,qCACKglB,EAAMvqC,KAAI,SAAC2pB,GACR,IA1BUxgC,EA0BJ+kF,GA1BI/kF,EA0B8B,OAACwgC,QAAD,IAACA,OAAD,EAACA,EAAMxgC,UAxBxDA,EAAS6W,KAAI,SAACgC,GAAD,gBAAgBA,EAAQ5Y,UAAxB,YAAqC4Y,EAAQ3Y,aAC5D2W,KAAI,SAAC2pB,EAAM/E,EAAG18B,GACX,OAAU,IAAN08B,EACO+E,EAEP/E,IAAM18B,EAAMxC,OAAS,EACf,QAAN,OAAeikC,GAEb,IAAN,OAAWA,MAEdwkD,WAXiB,GA0BAC,EAAiB,uBAAmBF,EAAnB,aAAmCvkD,EAAK14B,mBAAqB,wCAA0C,IAC9H,OACI,gCACI,cAACs0B,EAAA,EAAD,CAAK6pB,GAAI,IACT,cAAC,WAAD,CAAUx1B,QAAS,kBAAMm0D,EAAgBpkD,EAAKxkC,KAAKoD,MAAOohC,EAAKriC,KAAM8E,YAAagiF,MAF5EzkD,EAAKxkC,OAML,IAAjBolD,EAAM7kD,QACH,cAAC,aAAD,CAAY21B,SAAS,YAAYvF,KAAK,aAAtC,oFAKR,eAACyP,EAAA,EAAD,CAAK6pB,GAAI,EAAT,UACI,cAAC7pB,EAAA,EAAD,CAAKunB,GAAI,EAAT,SACI,cAAC,aAAD,CAAYzxB,SAAS,YAAYvF,KAAK,eAAtC,oCAIJ,cAAC,aAAD,CAAYuF,SAAS,YAAYvF,KAAK,aAAtC,8FAGA,cAAC,SAAD,CAAQ+V,UAAWoiD,EAA2Br0D,QAASo0D,EAAkB3yD,SAAS,OAAlF,SACI,cAAC,aAAD,CAAYA,SAAS,YAAYvF,KAAK,aAAtC,sCAlCR,cAACyP,EAAA,EAAD,CAAK6pB,GAAI,EAAGtlB,GAAI,CAAE7C,eAAgB,SAAUxB,WAAY,SAAUj7B,QAAS,QAA3E,SACI,cAAC28B,GAAA,EAAD,OCXVknD,GAAiB,SAAC,GAAgE,IAA9DC,EAA6D,EAA7DA,oBAA6D,IAAxCC,uBAAwC,MAAtB,KAAsB,EAAhB5/E,EAAgB,EAAhBA,UAC7D+rC,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA4oC,EAA+B/oC,GAAjBy8B,EAAiBz8B,GAOvC,EAMIyjB,aAAQ,CAAEH,cAVQ,CAClB1uB,aAAc,IASW8uB,KAAM,QAL/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQpG,EAFzB,EAEyBA,aACrBpF,EAHJ,EAGIA,QACA6S,EAJJ,EAIIA,SACAC,EALJ,EAKIA,SAGJrnC,qBAAU,WACFu8E,GACAl1C,EAAS,eAAgB,MAE9B,CAACk1C,IAOJ,OACI,uBAAMt7C,SAAUrB,GANK,SAACgiB,GACtB06B,EAAmB,OAAC16B,QAAD,IAACA,OAAD,EAACA,EAAQ/wC,cAC5Bu2B,EAAS,eAAgB,OAIzB,UACI,eAAC7T,EAAA,EAAD,CAAK6P,QAAS,EAAGhoB,GAAI,EAAG0c,GAAI,CAAE0R,aAAc,EAAGgzC,YAAa,QAASC,YAAa,EAAG3+B,YAAapV,EAAMM,UAAU0zC,aAAlH,UACI,cAAC,aAAD,CAAYrzD,SAAUjN,EAAW0H,KAAM40B,EAAvC,kDACA,eAAC,aAAD,CAAYrvB,SAAUjN,EAAW0H,KAAMkhC,EAAvC,uDAAoG,cAAC7Z,GAAA,EAAD,CAAM0jC,IAAI,WAAW10D,OAAO,SAAS3B,KA7BrI,qCA6BgG,wBAApG,OACA,eAAC+a,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAAC,GAAD,CACIjM,WAAS,EACTx/B,KAAK,eACLR,YAAU,EACV0/B,WAAYuL,EAAOlvB,aACnB1d,GAAG,iBACHyI,MAAM,iBACN24B,QAASA,EACThC,QAAQ,aAEXgqD,GACG,cAAC,aAAD,CAAYx7C,GAAI,EAAGhJ,MAAM,aAAa1O,SAAUjN,EAAW0H,KAAMkhC,EAAjE,SAAgFu3B,UAI5F,cAAC,GAAD,CAAkBl3D,MAAO,CAAE0C,MAAO,QAAUnsB,MAAM,WAAW+9B,aAAcA,GAAgBh9B,QASvG0/E,GAAel0D,aAAf,e7J0qC8C,CAC1Co0D,gBAAiB,O6JvqCNF,U,mLClDTM,GAAqB,SAAC,GAYrB,IAAD,IAXFz+C,EAWE,EAXFA,OACA0+C,EAUE,EAVFA,wBACAtmF,EASE,EATFA,QACAumF,EAQE,EARFA,0BACApB,EAOE,EAPFA,sBACAqB,EAME,EANFA,qBACAtB,EAKE,EALFA,iBACA7qE,EAIE,EAJFA,SACA4nC,EAGE,EAHFA,MAGE,IAFFwkC,qBAEE,SADCvjE,EACD,mBACMxmB,EAASs3B,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAAtClgC,KACF01C,EAAQoE,eACR/N,EAAWC,wBACXg+C,EAAgBziB,aAAc7xB,EAAM8xB,YAAYE,GAAG,OAEzD,EAAoC76D,mBAAS,GAA7C,mBAAOo9E,EAAP,KAAmBC,EAAnB,KACA,EAAwCr9E,mBAAS,MAAjD,mBAAOi6E,EAAP,KAAqBqD,EAArB,KACA,EAAwCt9E,oBAAS,GAAjD,mBAAOu9E,EAAP,KAAqBC,EAArB,KACA,EAA8Cx9E,mBAAS,MAAvD,mBAAOpB,EAAP,KAAwB6+E,EAAxB,KACA,EAAwCz9E,mBAAS,MAAjD,mBAAOgR,EAAP,KAAqB0sE,EAArB,KACA,EAAkD19E,mBAAS,IAA3D,mBAAO29E,EAAP,KAA0BC,EAA1B,KACA,EAA4C59E,mBAAS,MAArD,mBAAO69E,GAAP,KAAuBC,GAAvB,KACA,GAAsD99E,mBAAS,MAA/D,qBAAO+9E,GAAP,MAA4BC,GAA5B,MACA,GAAgEh+E,oBAAS,GAAzE,qBAAOi+E,GAAP,MAAiCC,GAAjC,MAEMC,GAAQ,iBAAMhrF,QAAN,IAAMA,OAAN,EAAMA,EAAMoE,UAAZ,mBAAyBpE,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMqE,UACvC4mF,GAAcjB,EAAgB,IAAM,OAElC5gE,GAAcF,GAAdE,UACA8hE,GAAqCjiE,GAAnB28B,GAAmB38B,GAC7C,GAAiEtL,GAAY,GAArE1R,GAAR,GAAQA,mBAAoB5J,GAA5B,GAA4BA,OAAQ4C,GAApC,GAAoCA,eAAgB2G,GAApD,GAAoDA,SAC5Cu/E,GAA4ElhE,GAA5DmhE,GAA4DnhE,GAArCohE,GAAqCphE,GAApBqhE,GAAoBrhE,GAEpF,GAA6DzG,KAA7D,qBAAO+nE,GAAP,MAAiCC,GAAjC,MAAsB7hF,UACtB,GAA6Gia,KAA7G,qBAAOhG,GAAP,eAA4C6tE,GAA5C,GAAiC5/C,UAA6C6/C,GAA9E,GAAmE/hF,UACnE,GAA+BoZ,KAAxBxG,GAAP,qBAEMovE,GAAwB,uCAAG,WAAOvuE,EAAKxc,GAAZ,uBAAAsX,EAAA,6DAC7B6yE,IAA4B,GADC,SAGnBvuE,EAAmB,CAAEna,UAAQ0B,UAAWkB,GAAe9E,GAAIsL,gBAAiB2R,EAAKS,aAAcjd,GAH5E,SAI+C2b,GAAqBC,GAAkBoxB,SAJtF,mBAIHg+C,EAJG,EAIjB9E,aAAsB+E,EAJL,EAIKA,kBAJL,EAIuBC,cAJvB,wBAMrBf,IAA4B,GAC5BlB,IAPqB,+BAUrB+B,IAAUC,EAVW,kCAWAE,aAAWr5E,GAAOjD,UAAW,CAAEu8E,cAAeH,IAX9C,QAWf5E,EAXe,OAYrBkD,EAAgByB,GAChBjB,GAAkB1D,GAClB8D,IAA4B,GAdP,0DAiBzBh/C,EAASZ,GAAe,EAAD,KACvB4/C,IAA4B,GAlBH,0DAAH,wDAsBxBkB,GAAa,WACf/B,GAAc,SAACgC,GAAD,OAAUA,EAAO,MAO7BC,GAAiB,uCAAG,mCAAAj0E,EAAA,iEAASk0E,yBAAT,SAAoChvE,EAApC,EAAoCA,IAAKxc,EAAzC,EAAyCA,SAC3DwrF,GACAH,KAFkB,SAKhBN,GAAyBvuE,EAAKxc,GALd,2CAAH,sDAQvBoM,qBAAU,WACN,IAAMq/E,EAAQ,GAEVtC,GACAsC,EAAM9sE,KAAK,CAAEpf,GAAIgrF,GAAgB5nF,MAAO,mBAGxC0I,IACAogF,EAAM9sE,KAAK,CAAEpf,GAAIirF,GAAuB7nF,MAAO,0BAG/CqmF,GACAyC,EAAM9sE,KAAK,CAAEpf,GAAIkrF,GAAiB9nF,MAAO,oBAG7C8oF,EAAM9sE,KAAK,CAAEpf,GAAImrF,GAAiB/nF,MAAO,oBAEzCknF,EAAqB4B,GAErB,IAAMC,GAAiB,OAALD,QAAK,IAALA,OAAA,EAAAA,EAAO3rF,SAAU,EAE7B6rF,IAAgB5uE,EAGhB6uE,EAA8BD,GAAexC,GAAiBuC,EAAY,GAJ5DvC,GAGgC,IAAduC,GAAqBC,GAAexC,GAA+B,IAAduC,EAIvFH,GAAkB,CAAEC,kBAAmBrC,IAChCyC,GACPP,OAEL,CAAClC,EAAe99E,GAAoB29E,EAAyBjsE,IAEhE3Q,qBAAU,WACFy+E,IACAU,GAAkB,CAAEC,mBAAmB,EAAMhvE,IAAK3R,EAAiB7K,SAAUid,MAElF,CAAC4tE,KAEJ,IAQMgB,GAAoB,uCAAG,WAAOrvE,GAAP,eAAAlF,EAAA,6DACzBmyE,GAAgB,GADS,kBAIKkB,GAAY,CAAElpF,UAAQ+a,QAAOwwB,SAJlC,sBAIbm2B,QAJa,oBAMjBumB,EAAmBltE,IACfwsE,EAPa,iBAQbqC,KARa,yCAUPE,GAAkB,CAAEC,mBAAmB,EAAMhvE,QAVtC,gCAajBktE,EAAmB,MACnBD,GAAgB,GAdC,0DAiBrBA,GAAgB,GAjBK,0DAAH,sDAqBpBqC,GAA6B,uCAAG,WAAO9rF,GAAP,SAAAsX,EAAA,6DAClC2yE,GAAuB,MACvBN,EAAgB3pF,GAFkB,kBAIxBgd,GAAuB,CAAE7Z,UAAS,OAAEkB,SAAF,IAAEA,QAAF,EAAEA,GAAgB9E,GAAI0d,aAAcjd,IAAYgtC,SAJ1D,uDAM9Bi9C,GAAsB,OAAC,EAAD,yBAAC,KAAU5xE,SANH,yDAAH,sDAc7B0zE,GAAgC,IAAf1C,EACjB2C,GAAsB3C,IAAeO,EAAkB5vB,WAAU,SAAC/0B,GAAD,OAAUA,EAAK1lC,KAAOgrF,MACvF0B,GAAsB5C,IAAeO,EAAkB5vB,WAAU,SAAC/0B,GAAD,OAAUA,EAAK1lC,KAAOirF,MACvF0B,GAAuB7C,IAAeO,EAAkB5vB,WAAU,SAAC/0B,GAAD,OAAUA,EAAK1lC,KAAOkrF,MACxF0B,GAAuB9C,IAAeO,EAAkB5vB,WAAU,SAAC/0B,GAAD,OAAUA,EAAK1lC,KAAOmrF,MAE9F,OACI,eAAC0B,GAAA,EAAD,CAAQljC,WAAY,CAAEhlB,GAAI,CAAE/P,MAAOk2D,KAAiB1rD,QAAQ,YAAY0tD,OAAO,QAAQ5pF,KAAM6nC,EAA7F,UACI,eAAC3K,EAAA,EAAD,CAAKwN,GAAI,EAAGvoC,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAArE,UACKksD,GACG,cAAC3lC,GAAA,EAAD,CAAYpyB,QAxGT,WACfs1D,GAAc,SAACgC,GAAD,OAAWA,GAAQ,EAAIA,EAAOA,EAAO,MAuGN,aAAW,OAA5C,SACI,cAAC,KAAD,CAAqBh3D,SAAS,YAGlC,wBAEJ,eAACqL,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAASnoC,WAAW,SAAtD,UACI,cAAC,aAAD,CAAYpK,SAAUjN,GAAW0H,KAAMo6D,GAAvC,mBACKV,EAAkBP,UADvB,aACK,EAA+B1mF,QAEpC,cAAC,aAAD,CAAY8yB,SAAUjN,GAAW0H,KAAM80B,GAAgB9gB,GAAI,CAAEC,MAAO2Q,EAAMM,UAAU0B,MAApF,SACKszC,QAGT,cAAChkC,GAAA,EAAD,CAAYpyB,QA5BW,WAC/BtxB,KA2ByD,aAAW,QAA5D,SACI,cAAC,KAAD,SAIR,eAACi9B,EAAA,EAAD,CAAKwN,GAAI,GAAImC,EAAG,EAAhB,YACW,OAALqV,QAAK,IAALA,OAAA,EAAAA,EAAO7kD,QAAS,IAAOqpF,GAAiBn+E,MAAeghF,GACrD,cAAC,aAAD,CAAYv2D,SAAS,YAAYvF,KAAK,eAAtC,SACKllB,KAGL,KACHghF,IAAuB7C,GACpB,cAAC,GAAD,2BACQvjE,GADR,IAEI++B,MAAOA,EACPwjC,gBAnFU,SAAC5oF,GACvBA,KAAE,OAAKwd,QAAL,IAAKA,OAAL,EAAKA,EAAUtb,QACjB4pF,KAEAnC,EAAqB3pF,OAkFhB0sF,IAAuB5gF,IACpB,cAAC,GAAD,CACI9H,SAAQ,OAAEwZ,QAAF,IAAEA,OAAF,EAAEA,EAAUxZ,SACpB+hF,kBAAmBkE,EACnBnE,eAAgBwG,GAChB9iF,UAAW6hF,IAA0BV,KAG5CgC,IAAwBlD,GACrB,cAAC,GAAD,CACIN,oBAAqBoD,GACrBnD,gBAAiBqB,GACjBjhF,UAAW+hF,IAA6BZ,KAG/CiC,IAAwBjC,IACrB,cAAC,GAAD,IAEHiC,IAAwBjG,GACrB,cAAC,YAAD,CACIG,OAAQyD,GADZ,SAGI,cAAC,GAAD,CACI5D,aAAcA,EACd0B,iBAAkBA,EAClBzkF,UAAS,OAAE4Z,QAAF,IAAEA,GAAF,UAAEA,EAAU1Y,sBAAZ,aAAE,EAA0B9E,GACrCsoF,sBAAuBA,aAcnDkB,GAAmBx0D,aAAnB,e9J47BkD,CAC9CowB,MAAO,GACP5nC,SAAU,GACV6qE,iBAAkB,GAClBuB,eAAe,EACfmD,yBAAyB,EACzBpD,qBAAsB,e8J97BXH,UCiCAwD,GA/QK,WAAO,IAAD,UACd1J,EAAiD57D,GAAvCquD,EAAuCruD,GAA9BouD,EAA8BpuD,GAApBsuD,EAAoBtuD,GAAd67D,EAAc77D,GACjD7nB,EAASs3B,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAAtClgC,KACF+rC,EAAWC,wBACTjoC,EAAc+nC,eAAd/nC,UACAwqE,EAA4B17D,GAAf0+B,EAAe1+B,GACpC,EAAkChG,mBAAS42E,GAA3C,mBAAO9uC,EAAP,KAAkB4N,EAAlB,KACA,EAA4B11C,mBAAS,MAArC,mBAAOxK,EAAP,KAAemgE,EAAf,KACA,EAA8C31D,mBAAS,MAAvD,mBAAOugF,EAAP,KAAwBC,EAAxB,KACA,EAA4DxgF,oBAAS,GAArE,mBAAOygF,EAAP,KAA+BC,EAA/B,KACA,EAAwE1gF,oBAAS,GAAjF,mBAAO2gF,EAAP,KAAqCC,EAArC,KACA,EAA8E5gF,oBAAS,GAAvF,mBAAO6gF,EAAP,KAAwCC,EAAxC,KACA,EAA8E9gF,oBAAS,GAAvF,mBAAO+gF,EAAP,KAAwCC,EAAxC,KACMhK,IAAmB7jF,EAEX8tF,EAAuBxsE,GAAwBvd,GAArDqU,KACMuF,EAAagE,GAAuBtf,EAAQ,CAAE4pD,MAAO5pD,IAA3D+V,KACMowE,GAAqB5mE,GAA4Bvf,EAAQ,CAAE4pD,MAAO5pD,IAAxE+V,KACR,GAA8FiJ,GAA0Btd,GAA1GsgF,GAAd,GAAQjsE,KAAmBzO,GAA3B,GAA2BA,UAAkBokF,GAA7C,GAAsCh1E,MAAqCi1E,GAA3E,GAAkEnhC,QAClE,GAKIprC,GAA4B1d,GAJtB2hF,GADV,GACIttE,KACW61E,GAFf,GAEItkF,UACOukF,GAHX,GAGIn1E,MACSo1E,GAJb,GAIIthC,QAGJ,GAA+D7pC,KAA/D,qBAAOvG,GAAP,MAAsC2xE,GAAtC,MAA2BviD,UAC3B,GAA+BnoB,KAAxBjG,GAAP,qBAEIswE,IACAhiD,EAASZ,GAAe4iD,KAGxBG,IACAniD,EAASZ,GAAe+iD,KAG5BlhF,qBAAU,WACFohF,IACAriD,EACIwT,GAAU,CACNoB,SAAS,EACTp9C,MAAO,UACP0V,QAAS,2GAItB,CAACm1E,KAEJphF,qBAAU,WACF2Q,GACA0vE,EAAmB1vE,KAExB,CAACA,IAEJ3Q,qBAAU,WAAO,IAAD,EAC2B,EAAvC,OAAIq3E,SAAJ,IAAIA,IAAJ,UAAIA,GAAah5E,eAAjB,OAAI,EAAsBtG,aACtBgnC,EAAST,GAAc,OAAC+4C,SAAD,IAACA,IAAD,UAACA,GAAah5E,eAAd,aAAC,EAAsBtG,gBAEnD,CAACs/E,KAEJ,IAAMgK,GAAuB,WACzB7rB,EAAU,MACV6qB,EAAmB,OAYjBiB,GAAwB,uCAAG,sBAAAp2E,EAAA,+EAEnBuE,GAAiB1Y,GAAW6pC,SAFT,sDAIzB7B,EAASZ,GAAe,EAAD,KAJE,wDAAH,qDAexBojD,GAAsB,uCAAG,sBAAAr2E,EAAA,+EAEjBuF,GAAqB1Z,GAAW6pC,SAFf,OAGvB+/C,GAAmC,GAHZ,+CAKvBE,GAAmC,GALZ,wDAAH,qDAStBW,GAAwB,WAC1Bv4D,GAAK,QAAS,CACVI,SAAU,mBACVt2B,QAAQ,qCAAD,OAAuCgE,KAElDwpF,GAA0B,IAgBxBkB,GAAqC,uCAAG,sBAAAv2E,EAAA,sEACpCq1E,GAA0B,GADU,uBAEpCE,GAAgC,GAFI,uBArD1CO,UACAG,KAoD0C,uBAIpCE,KAJoC,2CAAH,qDAOrCK,GAAwC,WAC1CnB,GAA0B,GAC1BI,GAAmC,IAGjCgB,GAAwC,WAC1Cd,GAAmC,IAajCpwB,IAAiC,OAAX4mB,SAAW,IAAXA,IAAA,UAAAA,GAAah5E,eAAb,eAAsBrH,iBAAkBuqE,EA2DpE,OACI,eAACluC,GAAA,EAAD,CAAW6wC,gBAAc,EAAC5wC,UAAU,EAApC,WACM32B,IAAaskF,KAAuB,cAAC,GAAD,IACrC5J,IAAeqB,IACZ,qCACI,cAAC,GAAD,CACI9gC,IAAKjQ,EACL9wC,YAAW,OAAEwgF,SAAF,IAAEA,IAAF,UAAEA,GAAah5E,eAAf,aAAE,EAAsB/I,KACnCk6E,eAAc,OAAE6H,SAAF,IAAEA,IAAF,UAAEA,GAAa3/E,kBAAf,aAAE,EAAyBpC,KACzCwzE,YA/IO,SAAC1gD,EAAG2O,GAC3Bwe,EAAaxe,IA+IG05B,oBAAqBA,KAEzB,cAACzvB,GAAA,EAAD,IACA,cAAC3N,GAAA,EAAD,CAAWokB,OAAK,EAAhB,SAtEa,SAACrsC,GAC1B,IAmBIsS,EAnBakkE,EAAyCx2E,EAAlD/M,QAAyB05C,EAAyB3sC,EAAzB2sC,qBAC3B8pC,ExG5JY,SAACz2E,GACvB,IAAQ/Q,EAA2H+Q,EAA3H/Q,aAAcnC,EAA6GkT,EAA7GlT,WAAYoD,EAAiG8P,EAAjG9P,2BAA4BC,EAAqE6P,EAArE7P,6BAA8BvE,EAAuCoU,EAAvCpU,cAAe+D,EAAwBqQ,EAAxBrQ,oBACrG4rD,EAAa,QACbrS,EAAcnsC,GAAanR,EAAeiQ,IAC1C+E,EAAS7D,GAAapN,EAAqByM,IAC3CjO,EAAekmB,GAAiBplB,EAAcnC,EAAYyuD,GAC1Dm7B,EAAoBriE,GAAiBlkB,EAA8BD,EAA4BqrD,GAErG,OAAO,aACH36C,OAAQA,EAAO5R,YACfk6C,YAAaA,EAAYl6C,YACzBb,eACAuoF,qBACG12E,GwG+ImB22E,CAAWH,GAE7BxnF,EAOAynF,EAPAznF,YACAI,EAMAqnF,EANArnF,kBACAK,EAKAgnF,EALAhnF,gBACAC,EAIA+mF,EAJA/mF,4BACAvB,EAGAsoF,EAHAtoF,aACAxB,EAEA8pF,EAFA9pF,YACAmD,EACA2mF,EADA3mF,kBAEE8mF,EAAqB5nF,GAAe,gDACpCg9E,EAAI,WAAOv8E,EAAP,eAA6BA,EAAkBC,GACnDmnF,EAAa,UAAM/mF,EAAN,YACbgnF,EAAa,UAAM1nF,EAAN,YAEb2nF,GAD6B,OAAdP,QAAc,IAAdA,OAAA,EAAAA,EAAgB5qF,iBAAkButC,EACtB4kC,EAAOF,EAClC8P,EAAa,YAAOL,GAAiBK,eACrCqJ,EAAgB,CAAElnE,GAAI,GAU5B,OAR0B,IAAtBhgB,GAAiD,IAAtBV,EAC3BkjB,EAAM,UAAMwkE,EAAN,cAAyBD,GACF,IAAtBznF,EACPkjB,EAASukE,EACoB,IAAtB/mF,IACPwiB,EAASwkE,GAIT,eAACxqC,GAAA,EAAD,CAAY/3C,MAAOgoC,EAAnB,UACI,cAACmQ,GAAA,EAAD,CAAUhgB,GAAE,eAAOsqD,GAAiBziF,MAAO82E,EAA3C,SACI,cAAC,GAAD,CACIr8E,YAAa4nF,EACb5K,KAAMA,EACN79E,aAAcA,EACdqqC,YAAalmB,EACb25D,YAAaA,GACbC,mBAAoBgK,GACpB/J,sBAAuBiK,GACvB3K,eAAgBA,EAChBD,SAAU7+B,MAGlB,cAACD,GAAA,EAAD,CAAUhgB,GAAE,eAAOsqD,GAAiBziF,MAAOwiF,EAA3C,SACI,cAAC,GAAD,CAAa9jF,QAASwjF,EAAe/8C,iBAAkBnoC,OAE3D,cAACm7C,GAAA,EAAD,CAAUhgB,GAAE,eAAOsqD,GAAiBziF,MAAOupE,EAA3C,SACI,cAAC,GAAD,CAAYnyE,UAAWA,EAAWw+D,gCAA8B,MAEpE,cAACzd,GAAA,EAAD,CAAUhgB,GAAE,eAAOsqD,GAAiBziF,MAAO+2E,EAA3C,SACI,cAAC,GAAD,CAAc3+E,YAAaA,EAAaghF,cAAeA,SAmBrCsJ,CAAqBhL,SAG9CiJ,GACG,cAAC,GAAD,CACIvD,eAAa,EACbd,0BAAyB,OAAE5E,SAAF,IAAEA,IAAF,UAAEA,GAAaiL,0BAAf,aAAE,EAAiCrG,0BAC5D/9C,OAAQoiD,EACR1D,yBAAoC,OAAXvF,SAAW,IAAXA,IAAA,UAAAA,GAAah5E,eAAb,eAAsBC,mBAAtB,OAAyCwI,SAAzC,IAAyCA,QAAzC,EAAyCA,GAAqBC,MACvFzQ,QA3FY,WACxB+qF,KACAd,GAA0B,IA0FdvE,iBAAkBuF,GAClB9F,sBA1HoB,WAAO,IAAD,EACtC,EAAuCD,IAAoB,GACrD+G,EADN,EAAQpqF,gBAAR,EAAyB+G,UAEnB8/D,GAAsB,OAAXqY,SAAW,IAAXA,IAAA,UAAAA,GAAah5E,eAAb,eAAsBtG,eAAgBmQ,GACvD+gB,GAAK,WAAY,CACbI,SAAU,qBACVt2B,QAAQ,QAAD,OAAUisE,EAAW,SAAW,cACvCr/D,MAAO4iF,IAEXhC,GAA0B,GAC1BE,GAAgC,IAiHpB3D,qBAnJmB,SAAC3pF,GAChCqiE,EAAUriE,IACE,OAARwd,QAAQ,IAARA,OAAA,EAAAA,EAAUtb,UAAWlC,GACrBktF,EAAmB1vE,IAiJX6qE,iBAAkBA,GAClB7qE,SAAUyvE,EACV7nC,MAAK,OAAEuoC,QAAF,IAAEA,OAAF,EAAEA,EAAoBvoC,MAC3BskC,0BA7FwB,WACpC0D,GAA0B,GAC1BE,GAAgC,MA8F5B,cAAC,GAAD,CACI19C,SAAU0+C,GACVz+C,YAAY,KACZ3sC,KAAMmqF,EACNlqF,QAASmrF,GACTlrF,MAAM,kBACN0V,QAAO,iBAAKjZ,QAAL,IAAKA,OAAL,EAAKA,EAAMoE,UAAX,mBAAwBpE,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMqE,SAA9B,iDAAwE+oF,QAAxE,IAAwEA,OAAxE,EAAwEA,EAAiBxhF,UAChGikC,cAAY,IAEhB,cAAC,GAAD,CACIE,SAAU2+C,GACV1+C,YAAY,KACZ3sC,KAAMqqF,EACNpqF,QAASorF,GACTnrF,MAAM,sBACN0V,QAAQ,iHACR42B,cAAY,IAEhB,cAAC,GAAD,CACIE,SAAU4+C,GACV3+C,YAAY,KACZ3sC,KAAMuqF,EACNtqF,QAASqrF,GACTprF,MAAM,QACN0V,QAAQ,gEClQTu2E,GA5Be,SAAC,GAAyB,IAAvBtkD,EAAsB,EAAtBA,OAAQ5nC,EAAc,EAAdA,QAG/Bg7D,EAAgB,WAClBh7D,KAGJ,OACI,eAAC2sC,GAAA,EAAD,CAAQnL,GAAI,CAAEoL,EAAG,GAAK7sC,KAAM6nC,EAAQ5nC,QAASg7D,EAA7C,UACI,cAACvX,GAAA,EAAD,CAAazW,MAAM,SAAnB,uCACA,cAACH,GAAA,EAAD,UACI,eAAC7K,GAAA,EAAD,8IAEI,cAAC6S,GAAA,EAAD,CAAM0jC,IAAI,WAAW10D,OAAO,SAAS3B,KAZ3B,qCAYV,2BAFJ,SAQJ,cAAC+qB,GAAA,EAAD,CAAezL,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,SAAU8sB,aAAc,GAA9E,SACI,cAACzvB,GAAA,EAAD,CAAQC,QAAQ,OAAO3K,QAAS0pC,EAAhC,0BC2GDmxB,GAjIQ,SAAC,GAAqG,IAAnGn/D,EAAkG,EAAlGA,WAAYo/D,EAAsF,EAAtFA,mBAAoBC,EAAkE,EAAlEA,mBAAoBC,EAA8C,EAA9CA,kBAAmBC,EAA2B,EAA3BA,qBACrFC,EAA6BrmE,GAArBkjD,EAAqBljD,GAAVsmE,EAAUtmE,GAC7BumE,EAAqCtmE,GAA5BumE,EAA4BvmE,GAAjBwmE,EAAiBxmE,GAAXymE,EAAWzmE,GACrC0mE,EAAqEzmE,GAApD0mE,EAAoD1mE,GAAtC2mE,EAAsC3mE,GAAnB4mE,EAAmB5mE,GAE7E,EAA4C9c,oBAAS,GAArD,mBAAOmT,EAAP,KAAuBwwE,EAAvB,KACA,EAAiD3jF,oBAAS,GAA1D,mBAAO4jF,EAAP,KAA2BC,EAA3B,KACA,EAAsD7jF,oBAAS,GAA/D,mBAAO8jF,EAAP,KAA4BC,EAA5B,KACA,EAA4C/jF,oBAAS,GAArD,mBAAOgkF,EAAP,KAAuBC,EAAvB,KACA,EAAkDjkF,oBAAS,GAA3D,mBAAOkkF,EAAP,KAA0BC,EAA1B,KACA,EAA0EnkF,oBAAS,GAAnF,mBAAOokF,EAAP,KAAsCC,EAAtC,KACA,EAA0CrkF,oBAAS,GAAnD,mBAAOskF,EAAP,KAAsBC,EAAtB,KACA,EAAoDvkF,mBAAS,CACzDwkF,WAAYnB,EACZoB,cAAetB,EACfuB,YAAalB,EACbmB,eAAgBpB,IAJpB,mBAAOqB,EAAP,KAA2BC,EAA3B,KAOA1kF,qBAAU,WACN,GAAIsjB,EAAY,CACZ,IAAQqhE,EAA8ErhE,EAA9EqhE,cAAeC,EAA+DthE,EAA/DshE,iBAAkB9oF,EAA6CwnB,EAA7CxnB,gBAAiBulE,EAA4B/9C,EAA5B+9C,SAAUwjB,EAAkBvhE,EAAlBuhE,cAC9DC,EAAgBzjB,IAAa0hB,EAC7BgC,EAAiB1jB,IAAayhB,EAC9BkC,EAA8BL,IAAkB7oF,EAChDmpF,EAA0BD,GAAoD,IAArBJ,EACzDM,EAA2BF,GAA+BJ,EAAmB,GAAKE,EAClFK,EAAsBH,IAAgCF,GAAiBC,IAAmBH,EAAmB,EAC7GQ,EAAyBJ,GAA+BJ,EAAmB,EAC3ES,EAA0BV,GAAiBG,GAAiBF,EAAmBC,EAC/ES,EAAkBR,EAAgB5B,EAAOC,EACzCoC,EAAkBT,EAAgBzB,EAAeE,EACjDiC,EAAqBV,GAAiBC,EAAiB/B,EAAUC,EACjEwC,EAAqBX,GAAiBC,EAAiB3B,EAAkBE,EAE/EE,EAAkBniB,GAClBqiB,EAAmBuB,GACnBrB,EAAuBsB,GACvBpB,EAAkBqB,GAClBnB,EAAqBoB,GACrBhB,EAAiBO,GACjBT,EAAiCmB,GACjCX,EAAsB,CAClBL,WAAYiB,EACZhB,cAAekB,EACfjB,YAAagB,EACbf,eAAgBiB,OAGzB,CAACniE,IAEJ,IAAMoiE,GAA0B,WAC5B9C,KAeE+C,GAAwB,WAC1B,IAAIC,EAEA5yE,IAAmB+vE,GAAS/vE,IAAmB8vE,EAC/C8C,EAAgBjmB,EACT3sD,IAAmB2sD,IAC1BimB,EAAgB9C,GAGpBD,EAAqB+C,IAGzB,OACI,eAACryD,EAAA,EAAD,WACKkwD,GACG,cAAClwD,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAS4f,aAAa,SAAzD,SACI,cAAC,SAAD,CAAQjtB,QAAS89D,GAAyB5hE,KAAK,QAAQuF,SAAS,UAAhE,yBAGP86D,GACG,eAAC5wD,EAAA,EAAD,CAAK/6B,QAAQ,OAAOq8C,aAAa,SAAS5f,eAAe,gBAAzD,UACI,eAAC1B,EAAA,EAAD,CAAK/6B,QAAQ,OAAb,UACKqrF,IACGI,EACI,cAAC,SAAD,CAAQ56D,SAAS,UAAUyO,GAAI,CAAEE,GAAI,GAAK6B,SAAUoqD,EAApD,SAAoFQ,EAAmBJ,aAEvG,cAACp4C,GAAD,CAAe45C,UAAU,YAAYtvF,MAAOkuF,EAAmBF,YAAa33C,OAAK,EAAjF,SACI,cAACrZ,EAAA,EAAD,UACI,cAAC,SAAD,CAAQlK,SAAS,UAAUzB,QAxCpC,WASvBi7D,EANI7vE,IAAmB+vE,GAAS/vE,IAAmB2sD,EAC/BmjB,EAEAC,IAkCoEjrD,GAAI,CAAEE,GAAI,GAAlE,SAAwEysD,EAAmBJ,kBAM1GN,IACGE,EACI,cAAC,SAAD,CAAQ56D,SAAS,UAAUwQ,SAAUoqD,EAA+Br8D,QAAS+9D,GAA7E,SAAqGlB,EAAmBH,gBAExH,cAACr4C,GAAD,CAAe45C,UAAU,MAAMtvF,MAAOkuF,EAAmBD,eAAgB53C,OAAK,EAA9E,SACI,cAACrZ,EAAA,EAAD,UACI,cAAC,SAAD,CAAQlK,SAAS,UAAUzB,QAAS+9D,GAApC,SAA4DlB,EAAmBH,wBAMlGX,GACG,cAACpwD,EAAA,EAAD,CAAKyI,GAAG,OAAR,SACI,cAAC,SAAD,CAAQpU,QAAS89D,GAAyB5hE,KAAK,QAAQuF,SAAS,YAAhE,gCAKd86D,IAAkBzB,IAAuBC,GACvC,cAACpvD,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,SAAS4f,aAAa,SAAzD,SACI,cAAC,aAAD,CAAYxrB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA1D,iDC9FL6pE,GA7BK,SAAC,GAAoC,IAAD,IAAjC1rF,mBAAiC,MAAnB,GAAmB,EAAfnF,EAAe,EAAfA,SACrC,EAAiDA,GAAY,GAArDknC,EAAR,EAAQA,QAASjnC,EAAjB,EAAiBA,UAAWC,EAA5B,EAA4BA,iBAE5B,OACI,cAACk+B,GAAA,EAAD,UACKp+B,EACG,eAACs+B,EAAA,EAAD,CAAKD,SAAS,KAAKyE,MAAM,QAAzB,UACI,cAAC,aAAD,CAAY1O,SAAS,YAAYvF,KAAK,eAAtC,SACK5uB,IAEL,cAAC,aAAD,CAAYm0B,SAAS,YAAYvF,KAAK,aAAtC,SACK3uB,IAEL,cAACo+B,EAAA,EAAD,CAAKpY,GAAI,EAAT,SACI,cAAC,QAAD,CAAOghB,QAASA,EAASnU,OAAQ,QAErC,cAAC,aAAD,CAAYqB,SAAS,YAAYvF,KAAK,aAAtC,SACK1pB,OAIT,cAAC,aAAD,CAAYivB,SAAS,YAAY0O,MAAM,QAAQjU,KAAK,eAApD,oBC1BRiiE,GAAyG//E,GAA9FggF,GAA8FhgF,GAA/DigF,GAA+DjgF,GAApDkgF,GAAoDlgF,GAA1CmgF,GAA0CngF,GAAjCogF,GAAiCpgF,GAArBqgF,GAAqBrgF,GAEpGsgF,GACD,QADCA,GAED,QAGCC,GACS,YADTA,GAES,YAGTC,GACG,EADHA,GAEG,EAGHC,GACC,UADDA,GAEC,UAGDC,GACU,yBADVA,GAEa,4BAFbA,GAGiB,qCAHjBA,GAIc,uCAJdA,GAKoB,+CALpBA,GAQkB,yCARlBA,GAUoC,iCAVpCA,GAWa,4CAXbA,GAYmB,mEAZnBA,GAac,+CAbdA,GAcwB,mDAdxBA,GAeQ,sDAfRA,GAgBO,kEAhBPA,GAiBiB,+BAjBjBA,GAkBW,0BAlBXA,GAmBc,6BAnBdA,GAoBU,oCApBVA,GAqByB,oDAGzBC,GAAiB,SAACC,GAC3B,OAAQ1lE,OAAOknB,MAAM/qB,SAASupE,KAGrBC,GAAmB,SAACC,GAC7B,IAAIC,GAAW,EAQf,OAPAD,EAAYz0E,SAAQ,SAAC8jB,GACjB,IAAM6wD,GAAyB,OAAL7wD,QAAK,IAALA,OAAA,EAAAA,EAAO8wD,iBAA4C,KAArB,OAAL9wD,QAAK,IAALA,OAAA,EAAAA,EAAO8wD,gBACpDC,GAAyB,OAAL/wD,QAAK,IAALA,OAAA,EAAAA,EAAOgxD,iBAA4C,KAArB,OAALhxD,QAAK,IAALA,OAAA,EAAAA,EAAOgxD,iBACtDH,GAAqBE,KACrBH,GAAW,MAGZA,GAGEK,GAAmB,SAAC9uF,GAAgC,IAAtByV,EAAqB,uDAAP,GACrD,OAAOA,EAAY1F,MAAK,SAACgW,GAAD,OAAYA,EAAO/lB,WAAaA,MAgC/C+uF,GAAoB,SAAC7vD,GAC9B,MAAyBA,GAAS,GAA1B8vD,EAAR,EAAQA,MAAOC,EAAf,EAAeA,MAMf,OALkB,2BACX/vD,GADW,IAEd8vD,MAAM,2BAAMA,GAAP,IAAcE,WAAW,2BAAMD,EAAMC,YAAb,IAAyBC,OAAQH,EAAME,WAAWC,WAC/EF,MAAM,2BAAMA,GAAP,IAAcC,WAAW,2BAAMF,EAAME,YAAb,IAAyBC,OAAQF,EAAMC,WAAWC,cAKjFC,GAAiB,SAACd,GACpB,MAAiB,KAAVA,EAAe,KAAOA,GAGpBe,GAAuB,WAAmC,IAAlCnwD,EAAiC,uDAAzB,GAAIowD,EAAqB,uCAC1DN,EAAiB9vD,EAAjB8vD,MAAOC,EAAU/vD,EAAV+vD,MACTtwF,EAAY2wF,EAAmBN,EAAQC,EACvCrwF,EAAY0wF,EAAmBL,EAAQD,EAE7C,MAAO,CAAErwF,YAAWC,cAGX2wF,GAA6B,SAACrwD,GAAW,IAAD,QACzC8vD,EAA4B9vD,EAA5B8vD,MAAOC,EAAqB/vD,EAArB+vD,MAEf,GAFoC/vD,EAAdlZ,UAEP,CAAC,IAAD,QACLwpE,EAAY,QAACR,QAAD,IAACA,GAAD,UAACA,EAAOS,eAAR,aAAC,EAAgBzvF,SAAjB,OAA2BgvF,QAA3B,IAA2BA,GAA3B,UAA2BA,EAAOU,eAAlC,aAA2B,EAAgB1vF,SAA3C,OAAqDivF,QAArD,IAAqDA,GAArD,UAAqDA,EAAOQ,eAA5D,aAAqD,EAAgBzvF,SAArE,OAA+EivF,QAA/E,IAA+EA,GAA/E,UAA+EA,EAAOS,eAAtF,aAA+E,EAAgB1vF,UAAU4pB,QAAO,SAAC5pB,GAAD,OAAcA,KAChJ,OAAIwvF,EAAUp0F,SAAW,IAAImwB,IAAIikE,GAAWhkE,KAMhD,OAAY,OAALwjE,QAAK,IAALA,GAAA,UAAAA,EAAOS,eAAP,eAAgBzvF,YAAhB,OAA4BivF,QAA5B,IAA4BA,GAA5B,UAA4BA,EAAOQ,eAAnC,aAA4B,EAAgBzvF,YAAiB,OAALgvF,QAAK,IAALA,GAAA,UAAAA,EAAOS,eAAP,eAAgBzvF,aAAhB,OAA6BivF,QAA7B,IAA6BA,GAA7B,UAA6BA,EAAOQ,eAApC,aAA6B,EAAgBzvF,WAGnG2vF,GAAwB,SAACzwD,EAAO0wD,GAAoB,IAAD,QACpDZ,EAA4B9vD,EAA5B8vD,MAAOC,EAAqB/vD,EAArB+vD,MAAOjpE,EAAckZ,EAAdlZ,UAKhBwpE,EAAY,QAACR,QAAD,IAACA,GAAD,UAACA,EAAOS,eAAR,aAAC,EAAgBzvF,SAAjB,OAA2BgvF,QAA3B,IAA2BA,GAA3B,UAA2BA,EAAOU,eAAlC,aAA2B,EAAgB1vF,SAA3C,OAAqDivF,QAArD,IAAqDA,GAArD,UAAqDA,EAAOQ,eAA5D,aAAqD,EAAgBzvF,SAArE,OAA+EivF,QAA/E,IAA+EA,GAA/E,UAA+EA,EAAOS,eAAtF,aAA+E,EAAgB1vF,UAAU4pB,QAAO,SAAC5pB,GAAD,OAAcA,KAEhJ,OAAQ4vF,GACJ,KAAK7B,GACD,OAAyB,IAArByB,EAAUp0F,OAKlB,KAAKuyF,GACD,SAAI3nE,GAd6B,IAchBwpE,EAAUp0F,UAGtB4qB,GAhB4B,IAgBfwpE,EAAUp0F,OAKhC,KAAKyyF,GACL,KAAKD,GACL,KAAKH,GACL,KAAKK,GACL,KAAKJ,GACD,SAAI1nE,GAxBsB,IAwBTwpE,EAAUp0F,UAGtB4qB,GA5BqB,IA4BRwpE,EAAUp0F,OAKhC,QACI,OAAO,IAINy0F,GAA8B,SAAC3wD,EAAO4wD,EAAcR,GAC7D,IAAKpwD,EACD,OAAO,KAGX,IAAQ8vD,EAAiB9vD,EAAjB8vD,MAAOC,EAAU/vD,EAAV+vD,MACTc,EAAoB,CACtBC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,kBAAmB,KACnBC,kBAAmB,KACnBC,kBAAmB,KACnBC,kBAAmB,KACnBC,kBAAmB,MAEjB3yD,EAAU,CACZ4yD,cAAeZ,EAAaY,cAC5BC,uBAAwBhD,GACxBiD,aAAa,2BACNb,GADK,IAERc,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjB7B,OAAQH,EAAMG,SAElB8B,aAAa,2BACNlB,GADK,IAERc,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjB7B,OAAQF,EAAME,UAGtB,GAAIW,EAAaoB,YAAcnD,GAC3B,OAAO,2BACAjwD,GADP,IAEI4yD,cAAe,KACfC,uBAAwB5C,KAIhC,IAQqB,YAKd,YAbC6C,EAA+B9yD,EAA/B8yD,aAAcK,EAAiBnzD,EAAjBmzD,aAChBtyF,EAAY2wF,EAAmBN,EAAQC,EACvCrwF,EAAY0wF,EAAmBL,EAAQD,EACvCmC,EAAmB7B,EAAmBsB,EAAeK,EACrDG,EAAmB9B,EAAmB2B,EAAeL,GAE1B,OAATjyF,QAAS,IAATA,OAAA,EAAAA,EAAWwwF,UAAWW,EAAaY,eAGvDS,EAAiBN,iBAA2B,OAATlyF,QAAS,IAATA,GAAA,UAAAA,EAAW8wF,eAAX,eAAoBn0F,YAApB,OAAgCqD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW8wF,eAA3C,aAAgC,EAAoB50F,IACvFs2F,EAAiBL,gBAAjB,OAAmCnyF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW8wF,eAA9C,aAAmC,EAAoBzvF,SACvDmxF,EAAiBJ,iBAA2B,OAATpyF,QAAS,IAATA,GAAA,UAAAA,EAAW+wF,eAAX,eAAoBp0F,YAApB,OAAgCqD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW+wF,eAA3C,aAAgC,EAAoB70F,IACvFs2F,EAAiBH,gBAAjB,OAAmCryF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW+wF,eAA9C,aAAmC,EAAoB1vF,WAEvDoxF,EAAiBP,iBAA2B,OAATjyF,QAAS,IAATA,GAAA,UAAAA,EAAW6wF,eAAX,eAAoBn0F,YAApB,OAAgCsD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW6wF,eAA3C,aAAgC,EAAoB50F,IACvFu2F,EAAiBN,gBAAjB,OAAmClyF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW6wF,eAA9C,aAAmC,EAAoBzvF,SACvDoxF,EAAiBL,iBAA2B,OAATnyF,QAAS,IAATA,GAAA,UAAAA,EAAW8wF,eAAX,eAAoBp0F,YAApB,OAAgCsD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW8wF,eAA3C,aAAgC,EAAoB70F,IACvFu2F,EAAiBJ,gBAAjB,OAAmCpyF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW8wF,eAA9C,aAAmC,EAAoB1vF,UAG3D,OAAO89B,GAGEuzD,GAAqB,SAACnyD,EAAOoyD,EAAMZ,EAAeC,EAAwBrB,GAAsB,IAAD,4CAChGN,EAAiB9vD,EAAjB8vD,MAAOC,EAAU/vD,EAAV+vD,MACTnxD,EAAU,CACZ4yD,gBACAC,yBACAC,aAAa,2BACN5B,EAAME,YADD,IAER2B,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,OAErBC,aAAa,2BACNhC,EAAMC,YADD,IAER2B,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,QAGjBJ,EAA+B9yD,EAA/B8yD,aAAcK,EAAiBnzD,EAAjBmzD,aAEhBtyF,EAAY2wF,EAAmBN,EAAQC,EACvCrwF,EAAY0wF,EAAmBL,EAAQD,EACvCmC,EAAmB7B,EAAmBsB,EAAeK,EACrDG,EAAmB9B,EAAmB2B,EAAeL,EAwB3D,OAtBAO,EAAiBN,iBAA2B,OAATlyF,QAAS,IAATA,GAAA,UAAAA,EAAW8wF,eAAX,eAAoBn0F,YAApB,OAAgCqD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW8wF,eAA3C,aAAgC,EAAoB50F,IACvFs2F,EAAiBL,gBAAjB,OAAmCnyF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW8wF,eAA9C,aAAmC,EAAoBzvF,SACvDmxF,EAAiBJ,iBAA2B,OAATpyF,QAAS,IAATA,GAAA,UAAAA,EAAW+wF,eAAX,eAAoBp0F,YAApB,OAAgCqD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW+wF,eAA3C,aAAgC,EAAoB70F,IACvFs2F,EAAiBH,gBAAjB,OAAmCryF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW+wF,eAA9C,aAAmC,EAAoB1vF,SACvDmxF,EAAiBnB,UAAYZ,GAAekC,EAAK,GAAG3C,gBACpDwC,EAAiBlB,UAAYb,GAAc,UAACkC,EAAK,UAAN,aAAC,EAAS3C,gBACrDwC,EAAiBjB,UAAYd,GAAc,UAACkC,EAAK,UAAN,aAAC,EAAS3C,gBACrDwC,EAAiBd,kBAAoBjB,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASC,qBAC7DJ,EAAiBb,kBAAoBlB,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASC,qBAC7DJ,EAAiBZ,kBAAoBnB,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASC,qBAE7DH,EAAiBP,iBAA2B,OAATjyF,QAAS,IAATA,GAAA,UAAAA,EAAW6wF,eAAX,eAAoBn0F,YAApB,OAAgCsD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW6wF,eAA3C,aAAgC,EAAoB50F,IACvFu2F,EAAiBN,gBAAjB,OAAmClyF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW6wF,eAA9C,aAAmC,EAAoBzvF,SACvDoxF,EAAiBL,iBAA2B,OAATnyF,QAAS,IAATA,GAAA,UAAAA,EAAW8wF,eAAX,eAAoBp0F,YAApB,OAAgCsD,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAW8wF,eAA3C,aAAgC,EAAoB70F,IACvFu2F,EAAiBJ,gBAAjB,OAAmCpyF,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAW8wF,eAA9C,aAAmC,EAAoB1vF,SACvDoxF,EAAiBpB,UAAYZ,GAAekC,EAAK,GAAGzC,gBACpDuC,EAAiBnB,UAAYb,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASzC,gBACrDuC,EAAiBlB,UAAYd,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASzC,gBACrDuC,EAAiBf,kBAAoBjB,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASE,qBAC7DJ,EAAiBd,kBAAoBlB,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASE,qBAC7DJ,EAAiBb,kBAAoBnB,GAAc,UAACkC,EAAK,UAAN,aAAC,EAASE,qBAEtD1zD,GAGE2zD,GAAyB,SAACvyD,EAAOpiC,EAAeM,EAAekyF,GAAsB,IAAD,gBAC7F,EAAiCD,GAAqBnwD,EAAOowD,IAAqB,GAA1E3wF,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,UACb8yF,EAAgC,OAAT/yF,QAAS,IAATA,GAAA,UAAAA,EAAW8wF,eAAX,SAAoB3wF,WAApB,OAAiCH,QAAjC,IAAiCA,GAAjC,UAAiCA,EAAW8wF,eAA5C,OAAiC,EAAoB1wF,SAArD,iBAAmEJ,QAAnE,IAAmEA,GAAnE,UAAmEA,EAAW8wF,eAA9E,aAAmE,EAAoB3wF,UAAvF,mBAAoGH,QAApG,IAAoGA,GAApG,UAAoGA,EAAW8wF,eAA/G,aAAoG,EAAoB1wF,UAAa,UAC5J4yF,EAAgC,OAAT/yF,QAAS,IAATA,GAAA,UAAAA,EAAW6wF,eAAX,SAAoB3wF,WAApB,OAAiCF,QAAjC,IAAiCA,GAAjC,UAAiCA,EAAW6wF,eAA5C,OAAiC,EAAoB1wF,SAArD,iBAAmEH,QAAnE,IAAmEA,GAAnE,UAAmEA,EAAW6wF,eAA9E,aAAmE,EAAoB3wF,UAAvF,mBAAoGF,QAApG,IAAoGA,GAApG,UAAoGA,EAAW6wF,eAA/G,aAAoG,EAAoB1wF,UAAa,UAC5J6yF,EAAe,OAAGjzF,QAAH,IAAGA,OAAH,EAAGA,EAAWwwF,OAC7B0C,EAAe,OAAGjzF,QAAH,IAAGA,OAAH,EAAGA,EAAWuwF,OAC7BnpE,EAAS,OAAGkZ,QAAH,IAAGA,OAAH,EAAGA,EAAOlZ,UACnB8rE,EAAgB9rE,EAAS,OAAGlpB,QAAH,IAAGA,OAAH,EAAGA,EAAeE,KAAO00F,EAClDK,EAAgB/rE,EAAS,OAAG5oB,QAAH,IAAGA,OAAH,EAAGA,EAAeJ,KAAO20F,EAexD,MAbsB,CAClB,CAAE92F,GAAI,EAAGq2F,UAAWzD,GAAWzwF,KAAM,aACrC,CAAEnC,GAAI,EAAGq2F,UAAWxD,GAA+B1wF,KAAM,iCACzD,CAAEnC,GAAI,EAAGq2F,UAAWpD,GAAY9wF,KAAM,aACtC,CAAEnC,GAAI,EAAGq2F,UAAWvD,GAAW+C,cAAemB,EAAiB70F,KAAK,eAAD,cAAiBF,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAeE,OACnG,CAAEnC,GAAI,EAAGq2F,UAAWvD,GAAW+C,cAAekB,EAAiB50F,KAAK,eAAD,cAAiBI,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAeJ,OACnG,CAAEnC,GAAI,EAAGq2F,UAAWnD,GAAkB/wF,KAAK,oBAC3C,CAAEnC,GAAI,EAAGq2F,UAAWrD,GAAS6C,cAAemB,EAAiB70F,KAAK,aAAD,OAAe80F,IAChF,CAAEj3F,GAAI,EAAGq2F,UAAWrD,GAAS6C,cAAekB,EAAiB50F,KAAK,aAAD,OAAe+0F,IAChF,CAAEl3F,GAAI,EAAGq2F,UAAWtD,GAAU8C,cAAemB,EAAiB70F,KAAK,cAAD,OAAgB80F,IAClF,CAAEj3F,GAAI,GAAIq2F,UAAWtD,GAAU8C,cAAekB,EAAiB50F,KAAK,cAAD,OAAgB+0F,MAM9EC,GAAY,SAACC,GACtB,IAAMvD,EAAoBL,GAAc,OAAC4D,QAAD,IAACA,OAAD,EAACA,EAAWtD,gBAC9CC,EAAoBP,GAAc,OAAC4D,QAAD,IAACA,OAAD,EAACA,EAAWpD,gBAEpD,OAAOH,GAAqBE,GAGnBsD,GAAmB,SAACD,GAC7B,IAAMvD,EAAoBL,GAAc,OAAC4D,QAAD,IAACA,OAAD,EAACA,EAAWtD,gBAC9CC,EAAoBP,GAAc,OAAC4D,QAAD,IAACA,OAAD,EAACA,EAAWpD,gBAEpD,SAAKH,IAAsBE,GAAuBA,IAAsBF,MAIpEA,IAAqBE,SAAzB,GAKS9sB,GAAoB,SAACqwB,GAI9B,OAHuBptE,SAAQ,OAACotE,QAAD,IAACA,OAAD,EAACA,EAASxD,gBAClB5pE,SAAQ,OAACotE,QAAD,IAACA,OAAD,EAACA,EAAStD,iBAKhC9sB,GAAoB,SAACowB,GAC9B,IAAMxD,EAAiB5pE,SAAQ,OAACotE,QAAD,IAACA,OAAD,EAACA,EAASxD,gBAGzC,OAFuB5pE,SAAQ,OAACotE,QAAD,IAACA,OAAD,EAACA,EAAStD,gBAEjBF,GAGfyD,GAA6B,SAAC,GAA4D,IAC/FC,EACAC,EAF8F,IAAzDp1D,eAAyD,MAA/C,GAA+C,EAA3CyzD,EAA2C,EAA3CA,uBAAwB4B,EAAmB,EAAnBA,aAgB/E,MAb+B,CAAC1E,GAASD,GAAUD,IAExB3jE,SAAS2mE,IAChC2B,EAAY,OAAGp1D,QAAH,IAAGA,OAAH,EAAGA,EAASo4B,WACpB,SAACp3B,GAAD,OAAYyyD,KAAsB,OAAKzyD,QAAL,IAAKA,OAAL,EAAKA,EAAQgzD,YAAaqB,KAAY,OAAKr0D,QAAL,IAAKA,OAAL,EAAKA,EAAQwyD,kBAGzF2B,EAAUn1D,EAAQo1D,KAElBA,EAAY,OAAGp1D,QAAH,IAAGA,OAAH,EAAGA,EAASo4B,WAAU,SAACp3B,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQgzD,aAAcP,KACpE0B,EAAUn1D,EAAQo1D,IAGfD,GChXLviE,GAAI,CAAEmpD,oBACJuZ,GAA+E5kF,GAAhE6kF,GAAgE7kF,GAAtC8kF,GAAsC9kF,GAA1B+kF,GAA0B/kF,GAAdglF,GAAchlF,GAC/E6/E,GAA2E//E,GAAhEggF,GAAgEhgF,GAAjCigF,GAAiCjgF,GAAtBkgF,GAAsBlgF,GAAZmgF,GAAYngF,GAEtEmlF,GAAc,CACvB,CAAEh4F,GAAI,EAAG8zF,eAAgB,GAAIE,eAAgB,GAAI0C,oBAAqB,GAAIC,oBAAqB,IAC/F,CAAE32F,GAAI,EAAG8zF,eAAgB,GAAIE,eAAgB,GAAI0C,oBAAqB,GAAIC,oBAAqB,IAC/F,CAAE32F,GAAI,EAAG8zF,eAAgB,GAAIE,eAAgB,GAAI0C,oBAAqB,GAAIC,oBAAqB,KAGtFsB,GAAY,SAACC,EAAKnnC,GAC3B,IAIIonC,EAJEtE,EAAoBL,GAAc,OAAC0E,QAAD,IAACA,OAAD,EAACA,EAAKpE,gBACxCC,EAAoBP,GAAc,OAAC0E,QAAD,IAACA,OAAD,EAACA,EAAKlE,gBACxCoE,EAAiD,KAA5BF,EAAIxB,qBAA0D,KAA5BwB,EAAIvB,oBAIjE,OAAQ5lC,GACJ,KAAK4mC,GACDQ,EACItE,GACAE,IAC0B,KAArB,OAAHmE,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAgD,KAArB,OAAHoE,QAAG,IAAHA,OAAA,EAAAA,EAAKlE,iBAAkD,KAArB,OAAHkE,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAgD,KAArB,OAAHoE,QAAG,IAAHA,OAAA,EAAAA,EAAKlE,iBACpG,MACJ,KAAK4D,GACDO,EACItE,GACAE,IAC0B,KAArB,OAAHmE,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAgD,KAArB,OAAHoE,QAAG,IAAHA,OAAA,EAAAA,EAAKlE,iBACP,KAArB,OAAHkE,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAgD,KAArB,OAAHoE,QAAG,IAAHA,OAAA,EAAAA,EAAKlE,iBACvB,IAAXkE,EAAIl4F,IAAoE,IAAxD86B,KAAKu9D,KAAO,OAAHH,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAL,OAAsBoE,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAKlE,kBAC7D,MACJ,KAAK6D,GACDM,EACItE,GACAE,IACEmE,EAAIpE,gBAAkB,GAAKoE,EAAIlE,eAAiB,GAAOkE,EAAIpE,eAAiB,GAAKoE,EAAIlE,gBAAkB,IACnD,IAAtDl5D,KAAKu9D,IAAIH,EAAIpE,eAAiBoE,EAAIlE,gBACtC,MACJ,KAAK+D,GACDI,EACItE,GACAE,IAC0B,KAArB,OAAHmE,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAgD,KAArB,OAAHoE,QAAG,IAAHA,OAAA,EAAAA,EAAKlE,iBAAkD,KAArB,OAAHkE,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAgD,KAArB,OAAHoE,QAAG,IAAHA,OAAA,EAAAA,EAAKlE,iBACpG,MACJ,KAAK8D,GACDK,EAAatE,GAAqBE,GAA6E,IAAxDj5D,KAAKu9D,KAAO,OAAHH,QAAG,IAAHA,OAAA,EAAAA,EAAKpE,iBAAL,OAAsBoE,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAKlE,iBAMnG,OAAOmE,GAAcC,GAmFnBE,GAAqB,SAACJ,GACxB,IACQpE,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBAEzD4B,EAAkB,KActB,OARI7B,IAAwBC,EACxB4B,EAAkBhF,GAJbO,EAAiBE,GAAkB2C,EAAsBD,GACzD1C,EAAiBF,GAAkB4C,EAAsBC,EAK9D4B,EAAkBhF,GACXz4D,KAAKu9D,IAAI3B,EAAsBC,GAbV,IAc5B4B,EAAkBhF,IAGfgF,GA+KEC,GAAuB,SAACN,GACjC,IAAQpE,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACvDyB,EAA6C,KAAxB1B,GAAsD,KAAxBC,EAGrD/9E,EAAQ,KAiBZ,OAfoBk7E,IAAmBE,GAA6B,IAAXkE,EAAIl4F,KAEzD8zF,EANwB,IAOxBE,EAPwB,IAQxBF,EAPqB,GAQrBE,EARqB,MAWrBp7E,EAAK,UAAM26E,GAAN,YAA4C2E,EAAIl4F,MAGpD4Y,GAASw/E,IACVx/E,EAAQ0/E,GAAmBJ,IAGxBt/E,GAGE6/E,GAA2B,SAACP,EAAKnnC,GAC1C,IAAM2nC,EAAevB,GAAUe,GACzBS,EAAsBtB,GAAiBa,GACzCt/E,EAAQ,KAEZ,GAAI8/E,EACA,OAAQ3nC,GACJ,KAAK4mC,GACD,IAAMvO,EA7MsB,SAAC8O,GACzC,IAAQpE,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACvDyB,EAA6C,KAAxB1B,GAAsD,KAAxBC,EAMnDiC,EAJmB,IAKpB9E,GANoB,IAMmBE,GALnB,IAMpBA,GAPoB,IAOmBF,EAYxCl7E,EAAQ,KAcZ,OA9BuCk7E,EAHd,GAGmDE,EAHnD,OAUpBF,GAVoB,IAUmBE,GATnB,IAUpBF,GAVoB,IAUmBE,GAVnB,IAapBF,GAAuCE,EAZA,GADnB,IAcpBA,GAAuCF,EAbA,GAFnB,IAgBpBA,GAduC,IAcAE,GAhBnB,IAiBpBA,GAfuC,IAeAF,KAKxCl7E,EAAK,UAAM26E,GAAN,YAA4C2E,EAAIl4F,KAGrD44F,IAAsBR,IACtBx/E,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,MAG3D4Y,GAASw/E,IACVx/E,EAAQ0/E,GAAmBJ,IAGxBt/E,EAyK6BigF,CAA6BX,GACjD9O,IACAxwE,EAAQwwE,GAEZ,MAEJ,KAAKwO,GACD,IAAMxO,EA7K+B,SAAC8O,GAClD,IAAQpE,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACvDyB,EAA6C,KAAxB1B,GAAsD,KAAxBC,EAOnDmC,EAH2B,IAI5BhF,GAH4B,IAGmBE,GAJnB,IAK5BA,GAJ4B,IAImBF,EAE9C8E,EATmB,IAUpB9E,GAXoB,IAWmBE,GAVnB,IAWpBA,GAZoB,IAYmBF,EAEtCiF,EAdmB,IAepBjF,GAfoB,IAemBE,GAdnB,IAepBF,GAfoB,IAemBE,EAEtCgF,EAjBmB,IAkBpBlF,GAAuCE,EAjBA,GADnB,IAmBpBA,GAAuCF,EAlBA,GAFnB,IAqBpBA,GAnBuC,IAmBAE,GArBnB,IAsBpBA,GApBuC,IAoBAF,EAEtCmF,EAAiCnF,EAxBd,GAwBmDE,EAxBnD,EAyBnBkF,EAAiBpF,IAAmBE,EACpCmF,EAA6BrF,EAvBF,GAuB+CE,EAvB/C,EAyB7Bp7E,EAAQ,KAkBZ,OAhBe,IAAXs/E,EAAIl4F,IACAi5F,GAAkCF,GAAeC,KACjDpgF,EAAK,UAAM26E,GAAN,YAA4C2E,EAAIl4F,MAElDk5F,GAAkBC,KACzBvgF,EAAQ26E,KAGPqF,IAAqBE,GAA2BV,IACjDx/E,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,MAG3D4Y,GAASw/E,IACVx/E,EAAQ0/E,GAAmBJ,IAGxBt/E,EA4H6BwgF,CAAsClB,GAC1D9O,IACAxwE,EAAQwwE,GAEZ,MAEJ,KAAKyO,GACD,IAAMzO,EAhIoB,SAAC8O,GACvC,IAAQpE,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACvDyB,EAA6C,KAAxB1B,GAAsD,KAAxBC,EAGnD0C,EAAyB,GAMzBT,GACA9E,GALmB,GAKmBA,GAAkBuF,GACrDrF,GANgB,GAMsBA,GAAkBqF,IAJxC,IAKrBv+D,KAAKu9D,IAAIvE,EAAiBE,GAoB1Bp7E,EAAQ,KAcZ,OAlBuCk7E,EAtBT,GAsBmDE,EAtBnD,GAwBVF,IAAmBE,GAXlCF,IAAmBuF,GAA0BrF,EAlBL,GAmBxCA,IAAmBqF,GAA0BvF,EAnBL,GAGV,IAW9BA,GAAiDE,EAbV,GAET,IAY9BA,GAAiDF,EAdV,GAqBxCA,EAAiBuF,GACjBrF,EAAiBqF,GACjBvF,EApBqB,GAqBrBE,EArBqB,KA8BrBp7E,EAAK,UAAM26E,GAAN,YAA4C2E,EAAIl4F,KAGrD44F,IAAsBR,IACtBx/E,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,MAG3D4Y,GAASw/E,IACVx/E,EAAQ0/E,GAAmBJ,IAGxBt/E,EAgF6B0gF,CAA2BpB,GAC/C9O,IACAxwE,EAAQwwE,GAEZ,MAEJ,KAAK2O,GACD,IAAM3O,EApFmB,SAAC8O,GACtC,IAAQpE,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACvDyB,EAA6C,KAAxB1B,GAAsD,KAAxBC,EAKnDiC,EAJmB,IAKpB9E,GAJuB,IAIgBE,GALnB,IAMpBA,GALuB,IAKgBF,EAIxCl7E,EAAQ,KAcZ,OAtBuCk7E,EAFd,GAEmDE,EAFnD,GAQLF,IAAmBE,KAKnCp7E,EAAK,UAAM26E,GAAN,YAA4C2E,EAAIl4F,KAGrD44F,IAAsBR,IACtBx/E,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,MAG3D4Y,GAASw/E,IACVx/E,EAAQ0/E,GAAmBJ,IAGxBt/E,EAyD6B2gF,CAA0BrB,GAC9C9O,IACAxwE,EAAQwwE,QAObuP,IACP//E,EAAK,UAAM26E,GAAN,YAA+C2E,EAAIl4F,KAG5D,MAAO,CAAEw5F,qBAAsB5gF,EAAOA,UAG7B6gF,GAAyB,SAACvB,EAAKnnC,GACxC,IAAQ+iC,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACvDyB,EAA6C,KAAxB1B,GAAsD,KAAxBC,EACnD+B,EAAevB,GAAUe,GACzBS,EAAsBtB,GAAiBa,GAUvC3/E,EAAY,UAAMg7E,GAAN,YAA4C2E,EAAIl4F,IAC9D4Y,EAAQ,KAEZ,GAAI8/E,EACA,OAAQ3nC,GACJ,KAAK4mC,GACL,KAAKC,GACD,IAQM8B,EAvBY,IAwBb5F,GAvBgB,IAuB4BE,IAAgDoE,GAxB/E,IAyBbpE,GAxBgB,IAwB4BF,IAAgDsE,EAEjG,GAXItE,EAjBO,GAkBPA,EAjBc,OAkBbA,GAA4CE,EAZjB,IAc5BA,EArBO,GAsBPA,EArBc,OAsBbA,GAA4CF,EAhBjB,GAqBwB,CACpDl7E,EAAQL,EACR,MAGJ,GAAImhF,EAA2B,CAC3B9gF,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,IAC5D,MAEJ,MAEJ,KAAK63F,GACD,IAAM8B,EAA0B7F,EAxCrB,GAwCwDA,EArCrD,GAsCR8F,EAA0B5F,EAzCrB,GAyCwDA,EAtCrD,GAuCR0F,GAlCkB,IAmCtB5F,GAAkDE,EAnC5B,OAoCvBA,GAAkDF,EApC3B,IAoC2H,IAA9Ch5D,KAAKu9D,IAAIvE,EAAiBE,GAE/H,GAAI2F,GAA2BC,EAAyB,CACpDhhF,EAAQL,EACR,MAGJ,GAAImhF,EAA2B,CAC3B9gF,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,IAC5D,MAEJ,MAEJ,KAAK+3F,GACD,IAEM2B,EAxDa,IAyDd5F,GAxDiB,IAwD4BE,IAAiDoE,GAzDhF,IA0DdpE,GAzDiB,IAyD4BF,IAAiDsE,EAEnG,GANgCtE,EA1DrB,GA0DwDA,EAtDhD,IAuDaE,EA3DrB,GA2DwDA,EAvDhD,GA4DqC,CACpDp7E,EAAQL,EACR,MAEJ,GAAImhF,EAA2B,CAC3B9gF,EAAK,UAAM26E,GAAN,YAAmD2E,EAAIl4F,IAC5D,YAOL24F,IACP//E,EAAK,UAAM26E,GAAN,YAA+C2E,EAAIl4F,KAExDo4F,KACqC1B,EAjFlB,GAkFkBC,EAlFlB,KAqFf/9E,EAAQL,GAERw4C,IAAwBgnC,KACpBrB,EAlFuB,GAkF6BC,EAlF7B,KAmFvB/9E,EAAQL,IAKpB,MAAO,CAAEshF,qBAAsBjhF,EAAOA,UAyC7BkhF,GAAmB,SAACrD,EAAMxB,EAAclkC,GACjD,IACIgpC,EAAkB,EAClB3Q,EAAkB,KAClB4Q,GAAoB,EACpBC,EAAyB,EACzBC,EAAyB,EACzBC,EAAuB,EACvBC,EAAuB,EACvBC,EAAe,KAEnB,GAva4B,SAAC5D,GAC7B,IAGM6D,EAHc7D,EAAK1nE,QAAO,SAACmpE,GAAD,OAASf,GAAUe,MAGlBr9E,KAAI,SAACq9E,GAAD,OAASA,EAAIl4F,MAAI+vB,OAEtD,OAAOkF,GAAEmpD,QAAQkc,EAJU,CAAC,EAAG,KAIuBrlE,GAAEmpD,QAAQkc,EAHpC,CAAC,EAAG,IAoa5BC,CAAwB9D,GACxBrN,EAAkBmK,OACf,CACH,GAAIxiC,IAAwB+mC,IAAc7C,IAAiBpC,GACvD,OArDyC,SAAC4D,GAOlD,IANA,IAGI+D,EAHEC,EAAchE,EAAK1nE,QAAO,SAACmpE,GAAD,OAASf,GAAUe,MAC/CwC,EAAoB,EACpBC,EAAoB,EAEpBvR,EAAkB,KAEb5vD,EAAQ,EAAGA,EAAQihE,EAAYl6F,OAAQi5B,GAAS,EAAG,CACxD,IAAM0+D,EAAMzB,EAAKj9D,GACTs6D,EAAmCoE,EAAnCpE,eAAgBE,EAAmBkE,EAAnBlE,eAClB4G,EAAwB,IAAX1C,EAAIl4F,GAIvB,GAFAopF,EAAkBoP,GAAqBN,GAGnC,MAEAwC,GAAqBxwE,SAAS4pE,GAC9B6G,GAAqBzwE,SAAS8pE,GAE1B4G,IACAJ,EAA4BvzB,GAAkBixB,IAc1D,MAAO,CAAE9O,kBAAiB4Q,kBATHU,IAAsBC,EAIrBH,EAEAE,EAAoBC,GAqB7BE,CAAsCpE,GAGjDA,EAAKv3E,SAAQ,SAACg5E,GACV,IAAMQ,EAAevB,GAAUe,GACzBS,EAAsBtB,GAAiBa,GAE7C,OAAQjD,GACJ,KAAKrC,GACD,IAAQh6E,EAAU6/E,GAAyBP,EAAKnnC,GAAxCn4C,MACR,GAAIA,EAAO,CACPwwE,EAAkBxwE,EAClB,MAGAquD,GAAkBixB,GAClB+B,GAA0B,EACnB/yB,GAAkBgxB,KACzBgC,GAA0B,GAE9B,MAEJ,KAAKrH,GAEG,GAAIwH,IAAiBnC,EAAIl4F,IAAM04F,EAAc,CACzCtP,EAAkBmK,GAClB,MAGJ,IAAQiG,EAAwBf,GAAyBP,EAAKnnC,GAAtDyoC,oBAER,GAAIA,EACIvyB,GAAkBixB,GAClB+B,GAA0B,EACnB/yB,GAAkBgxB,KACzBgC,GAA0B,QAE3B,IAAKV,GAAuBO,GAnDxB,EAmDmE,CAC1E,MAAuCN,GAAuBvB,EAAKnnC,GAA3D8oC,EAAR,EAAQA,oBAAqBjhF,EAA7B,EAA6BA,MAE7B,IAAIihF,EASG,CACHzQ,EAAkBxwE,EAClB,MAVAmhF,GAAmB,EACnBM,EAAenC,EAAIl4F,GAAK,EAEpBinE,GAAkBixB,GAClBiC,GAAwB,EACjBjzB,GAAkBgxB,KACzBkC,GAAwB,GAQxC,MACJ,KAAKrH,GACL,KAAKD,GACD,GAAI4F,GAAgBC,EAAqB,CACrCvP,EAAkBmK,GAClB,MAEJ,MACJ,KAAKP,GACD,GAAIqH,IAAiBnC,EAAIl4F,IAAM04F,EAAc,CACzCtP,EAAkBmK,GAClB,MAGJ,IAAKmF,GAA2B,IAAXR,EAAIl4F,GAAU,CAC/BopF,EAAkBmK,GAClB,MAGJ,MAAsDkF,GAAyBP,EAAKnnC,GAA5EyoC,EAAR,EAAQA,oBAA4BsB,EAApC,EAA6BliF,MAC7B,GAAI4gF,EACA,MACG,IAAKA,GAAuBO,GA3FpB,EA2F+D,CAC1E,MAAuCN,GAAuBvB,EAAKnnC,GAA3D8oC,EAAR,EAAQA,oBAAqBjhF,EAA7B,EAA6BA,MAC7B,GAAIihF,EAAqB,CACrBE,GAAmB,EACnBM,EAAenC,EAAIl4F,GAAK,EACxB,MAEAopF,EAAkBxwE,EAClB,MAGJwwE,EAAkB0R,MAUtC,GAAI1R,EACA,MAAO,CAAEA,mBAGb,IAAM2R,EAAqBd,EAAyBE,EAC9Ca,EAAqBd,EAAyBE,EAKpD,GAJAJ,EAAoBe,EAAqBC,EAEhB,CAACrD,GAAeC,GAA0BG,IAE9C5oE,SAAS4hC,IAAwBkkC,IAAiBrC,GAAW,CAGzEoH,GAAqBe,EAFL,IAE6Cf,GAAqBgB,EAFlE,EAOjB5R,EAAkBmK,IAHjByG,GAAqBe,EAJL,IAI6Cf,GAAqBgB,EAJlE,KASjB5R,EAAkBmK,SAEf0B,IAAiBpC,GACpBoH,EAAyBC,EACzBF,GAAoB,EACbC,EAAyBC,EAChCF,GAAoB,EACbe,EAAqBC,EAC5BhB,GAAoB,EACbe,EAAqBC,EAC5BhB,GAAoB,EACbe,IAAuBC,IAC9B5R,EAAkBmK,IAEfwH,IAAuBC,GAAsB/F,IAAiBrC,KACrExJ,EAAkBmK,IAGtB,MAAO,CAAEnK,kBAAiB4Q,sBC7lBfiB,GAhFD,SAAC,GAAoF,IAAlFC,EAAiF,EAAjFA,cAAez8D,EAAkE,EAAlEA,QAASy5D,EAAyD,EAAzDA,IAAKiD,EAAoD,EAApDA,aAAcpqC,EAAsC,EAAtCA,oBAAqBrgB,EAAiB,EAAjBA,WACrE1wC,EAAiFk4F,EAAjFl4F,GAAI8zF,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAAqBC,EAAwBuB,EAAxBvB,oBACzDyE,EAAyFlzE,GAArEmzE,EAAqEnzE,GAA9CozE,EAA8CpzE,GAA1BqzE,EAA0BrzE,GAEjG,EAA0Bxb,oBAAS,GAAnC,mBAAO8uF,EAAP,KAAcC,EAAd,KACA,EAAsD/uF,oBAAS,GAA/D,mBAAOgvF,EAAP,KAA4BC,EAA5B,KAEMC,EAA0BJ,IAAUE,KAAyBhF,EAC7DmF,EAA0BL,IAAUE,KAAyB/E,EAEnE9pF,qBAAU,WACN,IAAMivF,EAAW7D,GAAUC,EAAKnnC,GAChC0qC,EAASK,GACTH,EAAuBG,GAAYX,IAAiBjD,EAAIl4F,MACzD,CAACk4F,EAAKiD,IAET,IAAMY,EAAsB,SAACC,EAAYC,EAAajmE,GAAiC,IAA1BkmE,EAAyB,wDAC1E1vF,EAAUwpB,EAAMhP,OAAhBxa,MACR0uF,EAAcc,EAAYC,EAAazvF,EAAO0vF,IAG5CC,EAAgB,WAClB19D,EAAQy5D,IAGZ,OACI,gCACI,eAAC93D,EAAA,EAAD,CAAKuI,GAAI,EAAG5H,SAAS,WAArB,UACI,cAAC4U,GAAD,CACIltC,MAAK,WAAMzI,GACX0mC,SAAUgK,EACV0rD,MAAOp8F,EACPmV,KAAK,SACLwuB,SAAU,SAAC3N,GAAD,OAAW+lE,EAAoB7D,EAAKoD,EAAoBtlE,IAClEyI,QAAS09D,EACT3vF,MAAOwnF,EACP/9C,eAAgBylD,IAEnBG,GAA2B,cAAC/kD,GAAD,UAAiB6/C,IAC5C+E,GACG,cAACjlD,GAAD,CACI2lD,MAAOp8F,EACPyI,MAAM,KACN0M,KAAK,SACLwuB,SAAU,SAAC3N,GAAD,OAAW+lE,EAAoB7D,EAAKqD,EAAuBvlE,GAAO,IAC5EyI,QAAS09D,EACTz9D,YAAY,IACZlyB,MAAOmqF,OAInB,eAACv2D,EAAA,EAAD,CAAKwN,GAAI,EAAG7M,SAAS,WAArB,UACI,cAAC4U,GAAD,CACIltC,MAAK,WAAMzI,GACX0mC,SAAUgK,EACV0rD,MAAOp8F,EACPmV,KAAK,SACLwuB,SAAU,SAAC3N,GAAD,OAAW+lE,EAAoB7D,EAAKkD,EAAoBplE,IAClEyI,QAAS09D,EACTz9D,YAAY,IACZlyB,MAAOsnF,EACP79C,eAAgBylD,IAEnBE,GAA2B,cAAC9kD,GAAD,UAAiB4/C,IAC5CgF,GACG,cAACjlD,GAAD,CACI2lD,MAAOp8F,EACPyI,MAAM,KACN0M,KAAK,SACLspB,QAAS09D,EACTx4D,SAAU,SAAC3N,GAAD,OAAW+lE,EAAoB7D,EAAKmD,EAAuBrlE,GAAO,IAC5E0I,YAAY,IACZlyB,MAAOkqF,WC7BhB2F,GA1CY,SAAC,GAAkE,IAAhEh6D,EAA+D,EAA/DA,QAASi6D,EAAsD,EAAtDA,iBAAkBC,EAAoC,EAApCA,qBAAsB/E,EAAc,EAAdA,QACnE1E,EAAmDjgF,GAAxCqgF,EAAwCrgF,GAAtBmgF,EAAsBngF,GAAbkgF,EAAalgF,GAMrDktD,EAAkB9yD,mBAAQ,WAC5B,OAAW,OAAPuqF,QAAO,IAAPA,OAAA,EAAAA,EAASnB,aAAcvD,IAAoB,OAAP0E,QAAO,IAAPA,OAAA,EAAAA,EAASnB,aAAcnD,EACpD7wD,EAAQtT,QAAO,SAACsU,GAAD,OAAYA,EAAOgzD,YAAcrD,GAAW3vD,EAAOgzD,YAActD,KAGvFuJ,EACOj6D,EAAQtT,QAAO,SAACsU,GAAD,OAAYA,EAAOgzD,YAActD,KAGpD1wD,EAAQtT,QAAO,SAACsU,GAAD,OAAYA,EAAOgzD,YAAcrD,OACxD,CAAC3wD,EAASi6D,IAEb,OACI,eAACn2D,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,6BAAf,2BACA,cAAC,KAAD,CACIgK,QAAQ,6BACR25B,SAtBuB,SAAC3N,GAChC,IAAQxpB,EAAUwpB,EAAMhP,OAAhBxa,MACR+vF,EAAqB/vF,IAqBbA,MAAOgrF,EACPx3F,GAAG,iBACHqqD,YAAa,SAACC,GAAD,gBAAiBA,EAASnoD,OACvCsG,MAAM,gBANV,gBAQKs3D,QARL,IAQKA,OARL,EAQKA,EAAiBllD,KAAI,SAACwoB,GACnB,OACI,cAACgD,GAAA,EAAD,CAA0BrmC,GAAIqjC,EAAOrjC,GAAIwM,MAAO62B,EAAhD,SACKA,EAAOlhC,MADGkhC,EAAOrjC,aC6C/Bw8F,GA5EM,SAAC,GAAuG,IAArGrxE,EAAoG,EAApGA,UAAoG,IAAzFsxE,iBAAyF,MAA7E,GAA6E,EAAzEC,EAAyE,EAAzEA,UAAyE,IAA9DC,qBAA8D,MAA9C,GAA8C,EAA1CC,EAA0C,EAA1CA,KAAMC,EAAoC,EAApCA,eAAgBC,EAAoB,EAApBA,cAC5FC,EAAuBzJ,GAAb0J,EAAa1J,GAEzB2J,EAAuB,SAAC/xE,GAAD,OAAY,SAAC8K,GACtC,IAAMknE,EAAiBjJ,GAAiBj+D,EAAMhP,OAAOxa,MAAOmwF,GAC5DE,EAAeK,EAAgBN,EAAM1xE,KAGnCiyE,EAAgB,WAClB,cAAOR,QAAP,IAAOA,OAAP,EAAOA,EAAe9hF,KAAI,SAACqQ,GAAD,OACtB,cAACmb,GAAA,EAAD,CACIK,SAAUxb,EAAO/lB,WAAas3F,GAAavxE,EAAO/lB,WAAau3F,EAE/DlwF,MAAO0e,EAAO/lB,SAHlB,mBAKQ+lB,EAAOjnB,UALf,YAK4BinB,EAAOhnB,WAH1BgnB,EAAO/lB,cAQxB,OACI,cAACi7B,EAAA,EAAD,UACKjV,EACG,eAACiV,EAAA,EAAD,CAAK/6B,SAAUy3F,GAAiB,OAAhC,UACI,eAAC32D,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,uBAAf,sBACA,eAAC,KAAD,CACIgK,QAAQ,uBACR25B,SAAUs5D,EAAqBF,GAC/BvwF,MAAOiwF,EACPz8F,GAAG,iBACHyI,MAAM,WALV,UAOI,cAAC49B,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEH2wF,UAGT,eAACh3D,GAAA,EAAD,CAAaxE,WAAS,EAACgD,GAAKm4D,EAA4B,CAAElvD,GAAI,GAAlB,CAAE/E,GAAI,GAAlD,UACI,cAACzC,GAAA,EAAD,CAAYpmC,GAAG,uBAAf,sBACA,eAAC,KAAD,CACIgK,QAAQ,uBACR25B,SAAUs5D,EAAqBD,GAC/BxwF,MAAOkwF,EACP18F,GAAG,iBACHyI,MAAM,WALV,UAOI,cAAC49B,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEH2wF,aAKb,eAACh3D,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,uBAAf,yBACA,eAAC,KAAD,CACIgK,QAAQ,uBACR25B,SAAUs5D,EAAqBF,GAC/BvwF,MAAOiwF,EACPz8F,GAAG,iBACHyI,MAAM,cALV,UAOI,cAAC49B,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEH2wF,aChCnBloE,GAAI,CAAEC,uBAAWkpD,oBAEjBx2B,GAAaz7C,IAAM07C,YAAW,SAAoBz0B,EAAOzM,GAC3D,OAAO,cAACmhC,GAAA,EAAD,aAAO5M,UAAU,KAAKv0B,IAAKA,GAASyM,OAsZhCgqE,GAnZc,SAAC,GAWvB,IAAD,EAVFryD,EAUE,EAVFA,OACA5nC,EASE,EATFA,QACAlB,EAQE,EARFA,cACAM,EAOE,EAPFA,cACA86F,EAME,EANFA,iBACAC,EAKE,EALFA,iBACAC,EAIE,EAJFA,cACAC,EAGE,EAHFA,iBACAC,EAEE,EAFFA,0BACAC,EACE,EADFA,qBAEMnoD,EAAQoE,eACNk+C,EAAe9kF,GACf4qF,EAAmBxK,GAAXyK,EAAWzK,GACnBjqE,EAAgCH,GAAhCG,QAASF,EAAuBD,GAAvBC,QAASC,EAAcF,GAAdE,UAClB0/B,EAAqC7/B,GAAxB8oC,EAAwB9oC,GAC7C,EAA6D7mB,GAAiB,GAAhE47F,EAAd,EAAQ17F,KAAiCw0D,EAAzC,EAAiCz0D,OACnB47F,GAAsBv7F,GAAiB,IAA7CJ,KACA2wF,EAA4CjgF,GAAjCqgF,EAAiCrgF,GAAfogF,EAAepgF,GACpD,EAAwCnG,qBAAxC,mBAAOyrD,EAAP,KAAqB4lC,EAArB,KACA,EAAwBrxF,mBAASsrF,IAAjC,mBAAOvB,EAAP,KAAauH,EAAb,KACA,EAAwCtxF,mBAAS,IAAjD,mBAAOuxF,EAAP,KAAqBC,EAArB,KACA,EAAwCxxF,mBAAS,GAAjD,mBAAOyuF,EAAP,KAAqBgD,EAArB,KACA,EAA0CzxF,qBAA1C,mBAAO0xF,EAAP,KAAsBC,EAAtB,KACA,GAAwC3xF,qBAAxC,qBAAO4xF,GAAP,MAAqBC,GAArB,MACA,GAAgD7xF,oBAAS,GAAzD,qBAAO4vF,GAAP,MAAyBkC,GAAzB,MACA,GAAsD9xF,qBAAtD,qBAAO+xF,GAAP,MAA4BC,GAA5B,MACA,GAAwChyF,qBAAxC,qBAAOuoF,GAAP,MAAqB0J,GAArB,MACA,GAAwDjyF,qBAAxD,qBAAOkyF,GAAP,MAA6BC,GAA7B,MACA,GAA0CnyF,mBAAS,MAAnD,qBAAOmpF,GAAP,MAAsBiJ,GAAtB,MACA,GAAkCpyF,oBAAS,GAA3C,qBAAOqyF,GAAP,MAAkBC,GAAlB,MACMC,GAAqBhqE,GAAEmpD,QAAQ6f,EAAcxH,GAC7CyI,GAAoBjqE,GAAEmpD,QAAQggB,EAAejmC,GAC7CgnC,GAA2BlqE,GAAEmpD,QAAQwgB,GAAsB3J,IAC3DmK,GAAmBF,IAAqBD,IAAsBE,GAC9DrC,GAAgB11B,aAAc7xB,EAAM8xB,YAAYC,KAAK,OACrDmtB,IAAgC,OAAb8I,QAAa,IAAbA,GAAA,UAAAA,EAAepJ,aAAf,eAAsBjyF,UAAWy0D,EAE1D9pD,qBAAU,WACN,GAAI0wF,EAAe,CACfQ,EAAgBR,GAChBc,EAAiBd,GAEjB,IAAMl7D,EAAUu0D,GAAuB2G,EAAet7F,EAAeM,EAAekyF,IAQpF,GAPAiK,GAAuBr8D,GAElB4yD,KACD0J,GAAgBt8D,EAAQ,IACxBw8D,GAAwBx8D,EAAQ,KAGpC,OAAIk7D,QAAJ,IAAIA,KAAezH,uBAAwB,CACvC,IAAQA,EAAwDyH,EAAxDzH,uBAAuC4B,EAAiB6F,EAAhC1H,cAC1BwJ,EJ8kBc,SAACh7D,EAAOowD,GACxC,MAAiCD,GAAqBnwD,EAAOowD,GAArD3wF,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,UACbu7F,EAAe,OAAGx7F,QAAH,IAAGA,OAAH,EAAGA,EAAWuwF,WAC7BkL,EAAe,OAAGx7F,QAAH,IAAGA,OAAH,EAAGA,EAAWswF,WAE7BmL,EAAwBhM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiBnK,WACxDsK,EAAwBjM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiBpK,WACxDuK,EAAkClM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiB9J,mBAClEmK,EAAkCnM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiB/J,mBAElEoK,EAAwBpM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiBlK,WACxDyK,EAAwBrM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiBnK,WACxD0K,EAAkCtM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiB7J,mBAClEsK,EAAkCvM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiB9J,mBAElEuK,EAAwBxM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiBjK,WACxD4K,EAAwBzM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiBlK,WACxD6K,EAAkC1M,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiB5J,mBAClEyK,EAAkC3M,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiB7J,mBAExE,MAAO,CACH,CACI11F,GAAI,EACJ8zF,eAAgB0L,EAAqB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAiBnK,UAAY,GACrEnB,eAAgByL,EAAqB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAiBpK,UAAY,GACrEuB,oBAAqBgJ,EAA+B,OAAGJ,QAAH,IAAGA,OAAH,EAAGA,EAAiB9J,kBAAoB,GAC5FmB,oBAAqBgJ,EAA+B,OAAGJ,QAAH,IAAGA,OAAH,EAAGA,EAAiB/J,kBAAoB,IAEhG,CACIx1F,GAAI,EACJ8zF,eAAgB8L,EAAqB,OAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAiBlK,UAAY,GACrEpB,eAAgB6L,EAAqB,OAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAiBnK,UAAY,GACrEsB,oBAAqBoJ,EAA+B,OAAGR,QAAH,IAAGA,OAAH,EAAGA,EAAiB7J,kBAAoB,GAC5FkB,oBAAqBoJ,EAA+B,OAAGR,QAAH,IAAGA,OAAH,EAAGA,EAAiB9J,kBAAoB,IAEhG,CACIz1F,GAAI,EACJ8zF,eAAgBkM,EAAqB,OAAGV,QAAH,IAAGA,OAAH,EAAGA,EAAiBjK,UAAY,GACrErB,eAAgBiM,EAAqB,OAAGV,QAAH,IAAGA,OAAH,EAAGA,EAAiBlK,UAAY,GACrEqB,oBAAqBwJ,EAA+B,OAAGZ,QAAH,IAAGA,OAAH,EAAGA,EAAiB5J,kBAAoB,GAC5FiB,oBAAqBwJ,EAA+B,OAAGZ,QAAH,IAAGA,OAAH,EAAGA,EAAiB7J,kBAAoB,KItnBnE0K,CAAqB7C,EAAe9I,KAExC,OAAb8I,QAAa,IAAbA,OAAA,EAAAA,EAAexsC,uBAAwB8mC,GACvCmG,EAAQ,CAACqB,EAAa,KACtBnB,EAAgB,CAACmB,EAAa,OAE9BrB,EAAQqB,GACRnB,EAAgBmB,IAGpBL,IAAa,GAEb,IAAMxH,EAAUD,GAA2B,CAAEl1D,UAASyzD,yBAAwB4B,iBAE9E,OAAIF,QAAJ,IAAIA,KAAS3B,eACTiJ,GAAiBtH,EAAQ3B,eAG7B8I,GAAgBnH,GAChBqH,GAAwBrH,QACJ,OAAb+F,QAAa,IAAbA,OAAA,EAAAA,EAAexsC,uBAAwB8mC,EAC9CmG,EAAQ,CAAChG,GAAY,KAErBgG,EAAQhG,OAGjB,CAACuF,IAEJ1wF,qBAAU,WACN,IAAKqyF,GAAmB,CACpB,IAAM78D,EAAUu0D,GAAuBz+B,EAAcl2D,EAAeM,EAAekyF,IACnFiK,GAAuBr8D,MAE5B,CAAC81B,IAEJ,IAAMgG,GAAgB,WAClBwgC,GAAgBF,GAAoB,IACpCt7F,IACAo7F,GAAgB,OAGpB1xF,qBAAU,WACN,IAAMsqF,EAAYzD,GAAiB+C,GACnC+H,GAAoBrH,KACrB,CAACV,IAEJ,IAkGI4J,GACAC,GACAC,GACAC,GArGEC,GAAyB,SAACvI,EAAK+D,EAAazvF,EAAO0vF,GACrDqC,GAAgB,MAEhB,IAAYmC,EAAUxI,EAAdl4F,GACF2gG,EJlFyB,SAACD,EAAOl0F,EAAOukD,EAAqB6vC,GACvE,IAIInN,EAAQvpE,SAAS1d,GAIrB,OAFAinF,GAAS,IAED1iC,GACJ,KAAK4mC,GACGlE,EAVmB,IAUgBmN,EACnCnN,EAXmB,EAYZA,EAAQ,IACfA,EAAQ,GAEZ,MACJ,KAAKmE,GACa,IAAV8I,GAAyB,IAAVA,EACXjN,EAlBe,IAkBoBmN,IACnCnN,EAnBe,GAqBZA,EAlBmB,IAkBuBmN,EACjDnN,EAnB0B,EAoBnBA,EAAQ,IACfA,EAAQ,GAEZ,MACJ,KAAKoE,GAOL,KAAKC,GACGrE,EAlCe,KAkCgBmN,EAC/BnN,EAnCe,GAoCRA,EAAQ,IACfA,EAAQ,GAEZ,MACJ,KAAKsE,GACGtE,EAxCoB,IAwCgBmN,EACpCnN,EAzCoB,EA0CbA,EAAQ,IACfA,EAAQ,GAOpB,OAAO1lE,OAAOknB,MAAMw+C,GAAS,GAAKA,EI6BPoN,CAAwBH,EAAOl0F,EAAR,OAAe2rD,QAAf,IAAeA,OAAf,EAAeA,EAAcpH,oBAAqBmrC,GAC1F4E,EAAU7rE,GAAEC,UAAUuhE,GACtBsK,EAAWD,EAAQrmC,WAAU,SAACumC,GAAD,OAAYA,EAAOhhG,KAAO0gG,KACvDO,EAAaH,EAAQC,GAC3BE,EAAWhF,GAAe0E,EAEtBA,IAAmBzE,GAA0B,IAAVwE,IAC/BzE,IAAgB/zE,IAAyC+vE,GAAUgJ,EAAD,OAAa9oC,QAAb,IAAaA,OAAb,EAAaA,EAAcpH,sBAC7FotC,EAAgBuC,EAAQ,IAGhC1C,EAAQ8C,IAGNI,GAAmB,SAAChJ,GACtBiG,EAAgBjG,EAAIl4F,KA8DlBmhG,GAAuB,WACzB,IAAMC,EJ/KiB,SAAC3K,GAY5B,OAXqBA,EAAK57E,KAAI,SAACq9E,GAC3B,IAAQl4F,EAAiFk4F,EAAjFl4F,GAAI8zF,EAA6EoE,EAA7EpE,eAAgBE,EAA6DkE,EAA7DlE,eAAgB0C,EAA6CwB,EAA7CxB,oBAC5C,MAAO,CACH12F,KACA8zF,eAAgBE,EAChBA,eAAgBF,EAChB4C,oBALqFwB,EAAxBvB,oBAM7DA,oBAAqBD,MIuKA2K,CAAgB5K,GAGzC,GAFAuH,EAAQoD,GAER,OAAIjpC,QAAJ,IAAIA,KAAc29B,uBAAwB,CACtC,IAAMwL,EAAepN,GAAkB/7B,GACvC4lC,EAAgBuD,KAIlBrE,GAAuB,SAAC/xE,EAAQ0xE,EAAM2E,GACxCxD,EAAgB,2BACT5lC,GADQ,mBAEVykC,EAFU,YAAC,eAECzkC,EAAaykC,IAFf,mBAEuB2E,EAAiBr2E,QAQrDC,GAAS,OAAGgtC,QAAH,IAAGA,OAAH,EAAGA,EAAchtC,UAEhC,GAAIgtC,EAAc,CAAC,IAAD,YACd,GAAiCq8B,GAAqBr8B,EAAcs8B,IAA5D3wF,GAAR,GAAQA,UAAWC,GAAnB,GAAmBA,UACnBs8F,GAAkB,OAAGv8F,SAAH,IAAGA,IAAH,WAAGA,GAAW8wF,eAAd,cAAG,GAAoBzvF,SACzCm7F,GAAkB,WAAGx8F,GAAU+wF,eAAb,cAAG,GAAmB1vF,SACxCo7F,GAAkB,OAAGx8F,SAAH,IAAGA,IAAH,WAAGA,GAAW6wF,eAAd,cAAG,GAAoBzvF,SACzCq7F,GAAkB,WAAGz8F,GAAU8wF,eAAb,cAAG,GAAmB1vF,SAG5C,IAAMq8F,GAAS,UAAMr2E,GAAY,UAAY,UAA9B,0BAAkDgtC,QAAlD,IAAkDA,OAAlD,EAAkDA,EAActnC,gBACzEogB,GAAcj8B,GAAY,OAACmjD,QAAD,IAACA,OAAD,EAACA,EAAcpH,oBAAqB98C,IAC9DwtF,GAAsBhN,GAAmBkJ,EAASC,EAClD8D,GAAsBjN,GAAmBmJ,EAASD,EAElDgE,GADqB,CAAC9uF,GAAuBA,GAA8BA,IACjCsc,SAAnB,OAA4B8lE,SAA5B,IAA4BA,QAA5B,EAA4BA,GAAcoB,WAEvE,OACI,eAACvmD,GAAA,EAAD,CAAQ6Z,WAAY,CAAEz3B,MAAO,CAAE2P,gBAAiB0T,EAAMM,UAAU+T,WAAcC,YAAU,EAAC3mD,KAAM6nC,EAAQ5nC,QAASg7D,GAAerU,oBAAqBlC,GAApJ,UACI,cAACmC,GAAA,EAAD,CAAQplB,GAAI,CAAE5D,SAAU,WAAYc,gBAAiB0T,EAAMM,UAAU2B,OAArE,SACI,cAAC6C,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,cAAC,aAAD,CAAYpK,SAAUhN,EAASyH,KAAMg4B,EAArC,mBACQ64C,GADR,qBACuBvwD,SADvB,IACuBA,QADvB,EACuBA,GAAahqC,eAEpC,cAAC4/C,GAAA,EAAD,CAAYmD,KAAK,QAAQplB,MAAM,UAAUnQ,QAAS0pC,GAAe,aAAW,QAA5E,SACI,cAAC,KAAD,eAMpB,eAACj+B,GAAA,EAAD,CAAWC,SAAS,KAApB,UACI,cAACC,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACI,eAACxN,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,2BAGA,cAACqzB,GAAA,EAAD,CAAMtgD,GAAI,CAAEgE,GAAI,GAAKvJ,QAAQ,WAA7B,SACI,cAAC8lD,GAAA,EAAD,UACI,cAAC5gD,GAAA,EAAD,CACIyL,EAAG,EACHxL,WAAS,EACTjE,WAAW,SACX+mB,EAAG,EAJP,SAMI,cAAC/iB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC1E,EAAA,EAAD,UACI,cAAC,GAAD,CACIo3D,QAASvC,GACT5yD,QAASo8D,GACTnC,iBAAkBA,GAClBC,qBArFT,SAAC/E,GAChC+G,GAAgB,MAEhB,IAAM9G,EAAegH,GAAoBhkC,WAAU,SAACp3B,GAAD,OAAYA,EAAOrjC,MAAP,OAAcw3F,QAAd,IAAcA,OAAd,EAAcA,EAASx3F,OACtF2+F,GAAgBF,GAAoBhH,IAEpC,OAAID,QAAJ,IAAIA,KAAS3B,eACTiJ,GAAiBtH,EAAQ3B,4BAqFb,cAAC,aAAD,CAAYltD,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,oBAGA,cAACqzB,GAAA,EAAD,UACI,cAACC,GAAA,EAAD,UACK4X,GACG,eAAC18D,EAAA,EAAD,CAAK2P,EAAG,EAAR,UACI,eAAC3P,EAAA,EAAD,CAAKuI,GAAI,EAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAMihC,EAAoBjpB,GAAI,EAAG8nB,QAAM,EAAxE,gBACKqtC,QADL,IACKA,OADL,EACKA,EAAmBrf,gBAExB,cAAC,GAAD,CACIqe,eAAa,EACb3xE,UAAWA,GACXsxE,UAAW8D,GACX7D,UAAW8D,GACX7D,cAAeW,EACfV,KAAM8E,GACN7E,eAAgBI,QAGxB,eAAC78D,EAAA,EAAD,CAAKpY,GAAI,EAAG3iB,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAArE,UACI,cAACimB,GAAA,EAAD,CAAOrL,UAAU,MAAMpZ,eAAe,WAAWwG,QAAS,EAA1D,gBACKmuD,QADL,IACKA,OADL,EACKA,EAAM57E,KAAI,SAACq9E,GAAD,OACP,cAAC,GAAD,CACInnC,oBAAmB,OAAEoH,QAAF,IAAEA,OAAF,EAAEA,EAAcpH,oBAEnCrgB,WAAYixD,GACZxG,aAAcA,EACdjD,IAAKA,EACLz5D,QAASyiE,GACThG,cAAeuF,IALVvI,EAAIl4F,SASrB,cAAC6mD,GAAA,EAAD,CACIpyB,QAAS0sE,GACT,aAAW,eAFf,SAII,cAAC,WAAD,CAAUv8D,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,UAGhE,eAACyP,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAAC,GAAD,CACIkvD,eAAa,EACb3xE,UAAWA,GACXsxE,UAAW4D,GACX3D,UAAW4D,GACX3D,cAAeU,EACfT,KAAM6E,GACN5E,eAAgBI,KAEpB,cAAC,aAAD,CAAY/mE,SAAUjN,EAAW0H,KAAMihC,EAAoBhkB,GAAI,EAAG6iB,QAAM,EAAxE,gBACKotC,QADL,IACKA,OADL,EACKA,EAAmBpf,sBAKhC,eAACn6C,GAAA,EAAD,CAAMC,WAAS,EAACwL,EAAG,EAAGzP,WAAW,SAAjC,UACI,eAACgE,GAAA,EAAD,CAAME,MAAI,EAAC+V,GAAI,EAAf,UACI,eAACna,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAUjN,EAAW0H,KAAMihC,EAAoBjpB,GAAI,EAAG8nB,QAAM,EAAxE,gBACKqtC,QADL,IACKA,OADL,EACKA,EAAmBrf,gBAExB,cAAC,GAAD,CACItzD,UAAWA,GACXsxE,UAAW8D,GACX7D,UAAW8D,GACX7D,cAAeW,EACfV,KAAM8E,GACN7E,eAAgBI,QAGxB,eAAC78D,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAAC,GAAD,CACIziB,UAAWA,GACXsxE,UAAW4D,GACX3D,UAAW4D,GACX3D,cAAeU,EACfT,KAAM6E,GACN5E,eAAgBI,KAEpB,cAAC,aAAD,CAAY/mE,SAAUjN,EAAW0H,KAAMihC,EAAoBhkB,GAAI,EAAG6iB,QAAM,EAAxE,gBACKotC,QADL,IACKA,OADL,EACKA,EAAmBpf,sBAIhC,cAACn6C,GAAA,EAAD,CAAME,MAAI,EAAC+V,GAAI,EAAf,SACI,cAACgM,GAAA,EAAD,CAAOrL,UAAU,MAAMpZ,eAAe,WAAWwG,QAAS,EAA1D,gBACKmuD,QADL,IACKA,OADL,EACKA,EAAM57E,KAAI,SAACq9E,GAAD,OACP,cAAC,GAAD,CACInnC,oBAAmB,OAAEoH,QAAF,IAAEA,OAAF,EAAEA,EAAcpH,oBAEnCrgB,WAAYixD,GACZxG,aAAcA,EACdjD,IAAKA,EACLz5D,QAASyiE,GACThG,cAAeuF,IALVvI,EAAIl4F,WAUzB,cAACskC,GAAA,EAAD,CAAME,MAAI,EAAC+V,GAAI,EAAf,SACI,cAACna,EAAA,EAAD,CAAKyI,GAAI,EAAT,SACI,cAACge,GAAA,EAAD,CACIpyB,QAAS0sE,GACT,aAAW,eAFf,SAII,cAAC,WAAD,CAAUv8D,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,uBAU3F2tE,IACG,cAACl+D,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAUoV,IAA9B,SACI,cAAC,aAAD,CAAY/0B,SAAUjN,EAAW0H,KAAMihC,EAAoBjtB,GAAI,CAAEoL,EAAG,GAAKnL,MAAO2Q,EAAMM,UAAUwB,MAAhG,SACKinD,UAKjB,cAACv0C,GAAA,EAAD,CAAQhpB,SAAS,QAAQ4D,GAAI,CAAEoS,IAAK,OAAQmU,OAAQ,EAAGrpB,gBAAiB0T,EAAMM,UAAUwB,OAAxF,SACI,cAACgD,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,cAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,cAAC,SAAD,CAAQ4E,WAAY43D,IAAgBc,GAAkB3qE,QA9QpD,WACtB,IAAIwO,EACA2+D,GAAc,EAEZC,EAAsBnN,GAA2Bv8B,GACjD2pC,EAAyBhN,GAAsB38B,EAAD,OAAe88B,SAAf,IAAeA,QAAf,EAAeA,GAAcoB,WAEjF,GAAIwL,EACApE,SAIJ,GAAIqE,EACApE,QADJ,CAKA,GAAIzI,GAAaoB,YAAcnD,GAAoB+B,GAAaoB,YAAcvD,EAC1E7vD,EAAU+xD,GAA4B78B,EAAc88B,GAAcR,QAC/D,CACH,MAA+CqF,GAC3CrD,EACAxB,GAAaoB,UAF8C,OAG3Dl+B,QAH2D,IAG3DA,OAH2D,EAG3DA,EAAcpH,qBAHVq4B,EAAR,EAAQA,gBAAiB4Q,EAAzB,EAAyBA,kBAMzB,GAAI5Q,EACAwY,GAAc,EACdrD,GAAgBnV,OACb,CACH,IAAI2Y,EAAW,KAEVlM,IAAiBZ,GAAaoB,YAAcpD,IAC7C8O,EAAWtN,IAAoBuF,EAAoB7hC,EAAag8B,MAAMG,OAASn8B,EAAai8B,MAAME,QAItGrxD,EAAUuzD,GAAmBr+B,EAAcs+B,EADvBZ,IAAiBkM,EACyB9M,GAAaoB,UAAW5B,KAI1FmN,IACApE,EAAiBrlC,EAAan4D,GAAIijC,EAAS87D,IAC3CC,IAAa,GACbL,GAAgB,SAkOkFzoE,SAAUlN,EAA5F,qCChZbg5E,GArCQ,SAAC,GAAyC,IAAvC9G,EAAsC,EAAtCA,cAAe+G,EAAuB,EAAvBA,KAAMvxD,EAAiB,EAAjBA,WACnC1wC,EAAuCiiG,EAAvCjiG,GAAI8zF,EAAmCmO,EAAnCnO,eAAgBE,EAAmBiO,EAAnBjO,eACpBoH,EAA2ClzE,GAAvBozE,EAAuBpzE,GAE7C6zE,EAAsB,SAACmG,EAAajG,EAAajmE,GAAiC,IAA1BkmE,EAAyB,wDAC3E1vF,EAAUwpB,EAAMhP,OAAhBxa,MACR0uF,EAAcgH,EAAajG,EAAazvF,EAAO0vF,IAGnD,OACI,gCACI,cAAC97D,EAAA,EAAD,CAAKuI,GAAI,EAAG5H,SAAS,WAArB,SACI,cAAC4U,GAAD,CACIltC,MAAK,WAAMzI,GACX0mC,SAAUgK,EACV0rD,MAAOp8F,EACPmV,KAAK,SACLwuB,SAAU,SAAC3N,GAAD,OAAW+lE,EAAoBkG,EAAM3G,EAAoBtlE,IACnE0I,YAAY,IACZlyB,MAAOwnF,MAGf,cAAC5zD,EAAA,EAAD,CAAKwN,GAAI,EAAG7M,SAAS,WAArB,SACI,cAAC4U,GAAD,CACIltC,MAAK,WAAMzI,GACX0mC,SAAUgK,EACV0rD,MAAOp8F,EACPmV,KAAK,SACLwuB,SAAU,SAAC3N,GAAD,OAAW+lE,EAAoBkG,EAAM7G,EAAoBplE,IACnE0I,YAAY,IACZlyB,MAAOsnF,UClCnBqO,GAAsDnvF,GAAjCovF,GAAiCpvF,GAApBqvF,GAAoBrvF,GACtD4/E,GAA2E//E,GAAhEggF,GAAgEhgF,GAAjCigF,GAAiCjgF,GAAtBkgF,GAAsBlgF,GAAZmgF,GAAYngF,GAItEyvF,GAAyB,CAClC,CAAEtiG,GAAI,EAAG8zF,eAAgB,GAAIE,eAAgB,IAC7C,CAAEh0F,GAAI,EAAG8zF,eAAgB,GAAIE,eAAgB,IAC7C,CAAEh0F,GAAI,EAAG8zF,eAAgB,GAAIE,eAAgB,KAqDpCuO,GAA4B,SAACN,EAAMlxC,GAC5C,IAAMyxC,EAAgBrL,GAAU8K,GAC1BQ,EAAuBpL,GAAiB4K,GAC1CrpF,EAAQ,KAEZ,GAAI4pF,EACA,OAAQzxC,GACJ,KAAKqxC,GACL,KAAKC,GACL,KAAKF,GACD,IAAM/Y,EAhCgB,SAAC6Y,GACnC,IAAQnO,EAAmCmO,EAAnCnO,eAAgBE,EAAmBiO,EAAnBjO,eAGlB+E,EAAcjF,IAAmBE,EAKnCp7E,EAAQ,KAUZ,OAbKk7E,EAJoB,GAImBE,EAJnB,GAKpBF,EAJoB,IAImBE,EAJnB,MASrBp7E,EAAK,UAAM26E,GAAN,YAA6C0O,EAAKjiG,KAGvD+4F,GAnDY,IAmDGkJ,EAAKjiG,KACpB4Y,EAAK,UAAM26E,GAAN,YAA4C0O,EAAKjiG,KAGnD4Y,EAa6B8pF,CAAuBT,GAC3C7Y,IACAxwE,EAAQwwE,QAObqZ,IACP7pF,EAAK,UAAM26E,GAAN,YAAgD0O,EAAKjiG,KAG9D,MAAO,CAAE2iG,sBAAuB/pF,EAAOA,UCxCrCqc,GAAI,CAAEC,uBAAWkpD,oBAEjBx2B,GAAaz7C,IAAM07C,YAAW,SAAoBz0B,EAAOzM,GAC3D,OAAO,cAACmhC,GAAA,EAAD,aAAO5M,UAAU,KAAKv0B,IAAKA,GAASyM,OAsYhCwvE,GAnYkB,SAAC,GAW3B,IAAD,EAVF73D,EAUE,EAVFA,OACA5nC,EASE,EATFA,QACAlB,EAQE,EARFA,cACAM,EAOE,EAPFA,cACA86F,EAME,EANFA,iBACAC,EAKE,EALFA,iBACAC,EAIE,EAJFA,cACAC,EAGE,EAHFA,iBACAC,EAEE,EAFFA,0BACAC,EACE,EADFA,qBAEMnoD,EAAQoE,eACNgkD,EAAmBxK,GAAXyK,EAAWzK,GACnBjqE,EAAgCH,GAAhCG,QAASF,EAAuBD,GAAvBC,QAASC,EAAcF,GAAdE,UAClB0/B,EAAqC7/B,GAAxB8oC,EAAwB9oC,GAC7C,EAA6D7mB,GAAiB,GAAhE47F,EAAd,EAAQ17F,KAAiCw0D,EAAzC,EAAiCz0D,OACnB47F,GAAsBv7F,GAAiB,IAA7CJ,KACA2wF,EAA4CjgF,GAAjCqgF,EAAiCrgF,GAAfogF,EAAepgF,GACpD,EAAwCnG,qBAAxC,mBAAOyrD,EAAP,KAAqB4lC,EAArB,KACA,EAA0BrxF,mBAAS41F,IAAnC,mBAAOO,EAAP,KAAcC,EAAd,KACA,EAA0Cp2F,mBAAS,IAAnD,mBAAOq2F,EAAP,KAAsBC,EAAtB,KACA,EAA0Ct2F,qBAA1C,mBAAO0xF,EAAP,KAAsBC,EAAtB,KACA,EAAwC3xF,qBAAxC,mBAAO4xF,EAAP,KAAqBC,EAArB,KACA,EAAgD7xF,oBAAS,GAAzD,oBAAO4vF,GAAP,MAAyBkC,GAAzB,MACA,GAAsD9xF,qBAAtD,qBAAO+xF,GAAP,MAA4BC,GAA5B,MACA,GAAwChyF,qBAAxC,qBAAOuoF,GAAP,MAAqB0J,GAArB,MACA,GAAwDjyF,qBAAxD,qBAAOkyF,GAAP,MAA6BC,GAA7B,MACA,GAA0CnyF,mBAAS,MAAnD,qBAAOmpF,GAAP,MAAsBiJ,GAAtB,MACA,GAAkCpyF,oBAAS,GAA3C,qBAAOqyF,GAAP,MAAkBC,GAAlB,MACMC,GAAqBhqE,GAAEmpD,QAAQ2kB,EAAeF,GAC9C3D,GAAoBjqE,GAAEmpD,QAAQggB,EAAejmC,GAC7CgnC,GAA2BlqE,GAAEmpD,QAAQwgB,GAAsB3J,IAC3DmK,GAAmBF,IAAqBD,IAAsBE,GAC9DrC,GAAgB11B,aAAc7xB,EAAM8xB,YAAYC,KAAK,OACrDmtB,IAAgC,OAAb8I,QAAa,IAAbA,GAAA,UAAAA,EAAepJ,aAAf,eAAsBjyF,UAAWy0D,EAE1D9pD,qBAAU,WACN,GAAI0wF,EAAe,CACfQ,EAAgBR,GAChBc,EAAiBd,GAEjB,IAAMl7D,EAAUu0D,GAAuB2G,EAAet7F,EAAeM,EAAekyF,IAQpF,GAPAiK,GAAuBr8D,GAElB4yD,KACD0J,GAAgBt8D,EAAQ,IACxBw8D,GAAwBx8D,EAAQ,KAGpC,OAAIk7D,QAAJ,IAAIA,KAAezH,uBAAwB,CACvCkJ,IAAa,GAEb,IAAQlJ,EAAwDyH,EAAxDzH,uBAAuC4B,EAAiB6F,EAAhC1H,cAC1BoN,EDkEyB,SAAC5+D,EAAOowD,GACnD,MAAiCD,GAAqBnwD,EAAOowD,GAArD3wF,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,UACbu7F,EAAe,OAAGx7F,QAAH,IAAGA,OAAH,EAAGA,EAAWuwF,WAC7BkL,EAAe,OAAGx7F,QAAH,IAAGA,OAAH,EAAGA,EAAWswF,WAE7BmL,EAAwBhM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiBnK,WACxDsK,EAAwBjM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiBpK,WAExDyK,EAAwBpM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiBlK,WACxDyK,EAAwBrM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiBnK,WAExD4K,EAAwBxM,GAAc,OAAC8L,QAAD,IAACA,OAAD,EAACA,EAAiBjK,WACxD4K,EAAwBzM,GAAc,OAAC+L,QAAD,IAACA,OAAD,EAACA,EAAiBlK,WAE9D,MAAO,CACH,CACIr1F,GAAI,EACJ8zF,eAAgB0L,EAAqB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAiBnK,UAAY,GACrEnB,eAAgByL,EAAqB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAiBpK,UAAY,IAEzE,CACIn1F,GAAI,EACJ8zF,eAAgB8L,EAAqB,OAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAiBlK,UAAY,GACrEpB,eAAgB6L,EAAqB,OAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAiBnK,UAAY,IAEzE,CACIp1F,GAAI,EACJ8zF,eAAgBkM,EAAqB,OAAGV,QAAH,IAAGA,OAAH,EAAGA,EAAiBjK,UAAY,GACrErB,eAAgBiM,EAAqB,OAAGV,QAAH,IAAGA,OAAH,EAAGA,EAAiBlK,UAAY,KC9F3C6N,CAAgC3F,EAAe9I,IACrEqO,EAASG,GACTD,EAAiBC,GAEjB,IAAMzL,EAAUD,GAA2B,CAAEl1D,UAASyzD,yBAAwB4B,iBAC9EiH,GAAgBnH,GAChBqH,GAAwBrH,GAExB,OAAIA,QAAJ,IAAIA,KAAS3B,eACTiJ,GAAiBtH,EAAQ3B,oBAG7BiN,EAASR,OAGlB,CAAC/E,IAEJ1wF,qBAAU,WACN,IAAKqyF,GAAmB,CACpB,IAAM78D,EAAUu0D,GAAuBz+B,EAAcl2D,EAAeM,EAAekyF,IACnFiK,GAAuBr8D,MAE5B,CAAC81B,IAEJ,IAAMgG,GAAgB,WAClBwgC,GAAgBF,GAAoB,IACpCt7F,IACAo7F,EAAgB,OAGpB1xF,qBAAU,WACN,IAAM6rF,EAAehF,GAAiBmP,GACtCrE,GAAoB9F,KACrB,CAACmK,IAEJ,IAyFIxC,GACAC,GACAC,GACAC,GA5FE2C,GAA0B,SAAClB,EAAMhG,EAAazvF,GAChD+xF,EAAgB,MAEhB,IAAY6E,EAAWnB,EAAfjiG,GACF2gG,EDvH0B,SAACn0F,GACrC,IACIinF,EAAQvpE,SAAS1d,GAUrB,OARAinF,GAAS,KAHgB,GAMrBA,EANqB,GAOdA,EAAQ,IACfA,EAAQ,GAGL1lE,OAAOknB,MAAMw+C,GAAS,GAAKA,EC2GP4P,CAAyB72F,GAC1C82F,EAAWruE,GAAEC,UAAU2tE,GACvBU,EAAYD,EAAS7oC,WAAU,SAAC+oC,GAAD,OAAaA,EAAQxjG,KAAOojG,KAC7CE,EAASC,GACjBtH,GAAe0E,EAE3BmC,EAASQ,IA8DPnC,GAAuB,WACzB,IAAMsC,EDzMkB,SAACZ,GAU7B,OATsBA,EAAMhoF,KAAI,SAAConF,GAC7B,IAAQjiG,EAAuCiiG,EAAvCjiG,GAAI8zF,EAAmCmO,EAAnCnO,eACZ,MAAO,CACH9zF,KACA8zF,eAH2CmO,EAAnBjO,eAIxBA,eAAgBF,MCmMC4P,CAAiBb,GAGtC,GAFAC,EAASW,GAET,OAAItrC,QAAJ,IAAIA,KAAc29B,uBAAwB,CACtC,IAAMwL,EAAepN,GAAkB/7B,GACvC4lC,EAAgBuD,KAIlBrE,GAAuB,SAAC/xE,EAAQ0xE,EAAM2E,GACxCxD,EAAgB,2BACT5lC,GADQ,mBAEVykC,EAFU,YAAC,eAECzkC,EAAaykC,IAFf,mBAEuB2E,EAAiBr2E,QAQrDC,GAAS,OAAGgtC,QAAH,IAAGA,OAAH,EAAGA,EAAchtC,UAEhC,GAAIgtC,EAAc,CAAC,IAAD,YACd,GAAiCq8B,GAAqBr8B,EAAcs8B,IAA5D3wF,GAAR,GAAQA,UAAWC,GAAnB,GAAmBA,UACnBs8F,GAAkB,OAAGv8F,SAAH,IAAGA,IAAH,WAAGA,GAAW8wF,eAAd,cAAG,GAAoBzvF,SACzCm7F,GAAkB,WAAGx8F,GAAU+wF,eAAb,cAAG,GAAmB1vF,SACxCo7F,GAAkB,OAAGx8F,SAAH,IAAGA,IAAH,WAAGA,GAAW6wF,eAAd,cAAG,GAAoBzvF,SACzCq7F,GAAkB,WAAGz8F,GAAU8wF,eAAb,cAAG,GAAmB1vF,SAG5C,IAAMq8F,GAAS,UAAMr2E,GAAY,UAAY,UAA9B,0BAAkDgtC,QAAlD,IAAkDA,OAAlD,EAAkDA,EAActnC,gBACzEogB,GAAcj8B,GAAY,OAACmjD,QAAD,IAACA,OAAD,EAACA,EAAcpH,oBAAqB78C,IAC9DutF,GAAsBhN,GAAmBkJ,EAASC,EAClD8D,GAAsBjN,GAAmBmJ,EAASD,EAElDgE,GADqB,CAAC9uF,GAAuBA,GAA8BA,IACjCsc,SAAnB,OAA4B8lE,SAA5B,IAA4BA,QAA5B,EAA4BA,GAAcoB,WAEjEsN,GAAwB,WAC1B,OACId,EAAMhoF,KAAI,SAAConF,EAAMzoE,GACb,IAAIoqE,GAAuB,EACvBC,GAAmB,EAOvB,OALgB,IAAZ5B,EAAKjiG,KACL4jG,EAAuBzM,GAAU0L,EAAMrpE,EAAQ,IAC/CqqE,EAAmB1M,GAAU8K,IAI7B,cAAC,GAAD,CAEIvxD,YAAckzD,IAAyBC,GAAqBlC,GAC5DM,KAAMA,EACN/G,cAAeiI,IAHVlB,EAAKjiG,QAU9B,OACI,eAAC8vC,GAAA,EAAD,CAAQ6Z,WAAY,CAAEz3B,MAAO,CAAE2P,gBAAiB0T,EAAMM,UAAU+T,WAAcC,YAAU,EAAC3mD,KAAM6nC,EAAQ5nC,QAASg7D,GAAerU,oBAAqBlC,GAApJ,UACI,cAACmC,GAAA,EAAD,CAAQplB,GAAI,CAAE5D,SAAU,WAAYc,gBAAiB0T,EAAMM,UAAU2B,OAArE,SACI,cAAC6C,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,cAAC,aAAD,CAAYpK,SAAUhN,EAASyH,KAAMg4B,EAArC,mBACQ64C,GADR,qBACuBvwD,SADvB,IACuBA,QADvB,EACuBA,GAAahqC,eAEpC,cAAC4/C,GAAA,EAAD,CAAYmD,KAAK,QAAQplB,MAAM,UAAUnQ,QAAS0pC,GAAe,aAAW,QAA5E,SACI,cAAC,KAAD,eAMpB,eAACj+B,GAAA,EAAD,CAAWC,SAAS,KAApB,UACI,cAACC,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACI,eAACxN,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,2BAGA,cAACqzB,GAAA,EAAD,CAAMtgD,GAAI,CAAEgE,GAAI,GAAKvJ,QAAQ,WAA7B,SACI,cAAC8lD,GAAA,EAAD,UACI,cAAC5gD,GAAA,EAAD,CACIyL,EAAG,EACHxL,WAAS,EACTjE,WAAW,SACX+mB,EAAG,EAJP,SAMI,cAAC/iB,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,cAAC1E,EAAA,EAAD,UACI,cAAC,GAAD,CACIo3D,QAASvC,GACT5yD,QAASo8D,GACTnC,iBAAkBA,GAClBC,qBA5GT,SAAC/E,GAChC+G,EAAgB,MAEhB,IAAM9G,EAAegH,GAAoBhkC,WAAU,SAACp3B,GAAD,OAAYA,EAAOrjC,MAAP,OAAcw3F,QAAd,IAAcA,OAAd,EAAcA,EAASx3F,OACtF2+F,GAAgBF,GAAoBhH,IAEpC,OAAID,QAAJ,IAAIA,KAAS3B,eACTiJ,GAAiBtH,EAAQ3B,4BA4Gb,cAAC,aAAD,CAAYltD,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,oBAGA,cAACqzB,GAAA,EAAD,UACI,cAACC,GAAA,EAAD,UACK4X,GACG,eAAC18D,EAAA,EAAD,CAAK2P,EAAG,EAAR,UAEI,eAAC3P,EAAA,EAAD,CAAKuI,GAAI,EAAT,UACI,cAAC,aAAD,CAAYzS,SAAUjN,EAAW0H,KAAMihC,EAAoBjpB,GAAI,EAAG8nB,QAAM,EAAxE,gBACKqtC,QADL,IACKA,OADL,EACKA,EAAmBrf,gBAExB,cAAC,GAAD,CACIqe,eAAa,EACb3xE,UAAWA,GACXsxE,UAAW8D,GACX7D,UAAW8D,GACX7D,cAAeW,EACfV,KAAM8E,GACN7E,eAAgBI,QAGxB,eAAC78D,EAAA,EAAD,CAAKpY,GAAI,EAAG3iB,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAArE,UACI,cAACimB,GAAA,EAAD,CAAOrL,UAAU,MAAMpZ,eAAe,WAAWwG,QAAS,EAA1D,SACKq7D,OAEL,cAAC98C,GAAA,EAAD,CACIpyB,QAAS0sE,GACT,aAAW,eAFf,SAII,cAAC,WAAD,CAAUv8D,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,UAGhE,eAACyP,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAAC,GAAD,CACIkvD,eAAa,EACb3xE,UAAWA,GACXsxE,UAAW4D,GACX3D,UAAW4D,GACX3D,cAAeU,EACfT,KAAM6E,GACN5E,eAAgBI,KAEpB,cAAC,aAAD,CAAY/mE,SAAUjN,EAAW0H,KAAMihC,EAAoBhkB,GAAI,EAAG6iB,QAAM,EAAxE,gBACKotC,QADL,IACKA,OADL,EACKA,EAAmBpf,sBAKhC,eAACn6C,GAAA,EAAD,CAAMC,WAAS,EAACwL,EAAG,EAAGzP,WAAW,SAAjC,UACI,eAACgE,GAAA,EAAD,CAAME,MAAI,EAAC+V,GAAI,EAAf,UACI,eAACna,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAUjN,EAAW0H,KAAMihC,EAAoBjpB,GAAI,EAAG8nB,QAAM,EAAxE,gBACKqtC,QADL,IACKA,OADL,EACKA,EAAmBrf,gBAExB,cAAC,GAAD,CACItzD,UAAWA,GACXsxE,UAAW8D,GACX7D,UAAW8D,GACX7D,cAAeW,EACfV,KAAM8E,GACN7E,eAAgBI,QAGxB,eAAC78D,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,cAAC,GAAD,CACIziB,UAAWA,GACXsxE,UAAW4D,GACX3D,UAAW4D,GACX3D,cAAeU,EACfT,KAAM6E,GACN5E,eAAgBI,KAEpB,cAAC,aAAD,CAAY/mE,SAAUjN,EAAW0H,KAAMihC,EAAoBhkB,GAAI,EAAG6iB,QAAM,EAAxE,gBACKotC,QADL,IACKA,OADL,EACKA,EAAmBpf,sBAIhC,cAACn6C,GAAA,EAAD,CAAME,MAAI,EAAC+V,GAAI,EAAf,SACI,cAACgM,GAAA,EAAD,CAAOrL,UAAU,MAAMpZ,eAAe,WAAWwG,QAAS,EAA1D,SACKq7D,SAGT,cAACr/D,GAAA,EAAD,CAAME,MAAI,EAAC+V,GAAI,EAAf,SACI,cAACna,EAAA,EAAD,CAAKyI,GAAI,EAAT,SACI,cAACge,GAAA,EAAD,CACIpyB,QAAS0sE,GACT,aAAW,eAFf,SAII,cAAC,WAAD,CAAUv8D,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,uBAU3F2tE,GACG,cAACl+D,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAUoV,IAA9B,SACI,cAAC,aAAD,CAAY/0B,SAAUjN,EAAW0H,KAAMihC,EAAoBjtB,GAAI,CAAEoL,EAAG,GAAKnL,MAAO2Q,EAAMM,UAAUwB,MAAhG,SACKinD,SAKjB,cAACv0C,GAAA,EAAD,CAAQhpB,SAAS,QAAQ4D,GAAI,CAAEoS,IAAK,OAAQmU,OAAQ,EAAGrpB,gBAAiB0T,EAAMM,UAAUwB,OAAxF,SACI,cAACgD,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,cAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,cAAC,SAAD,CAAQ4E,WAAY43D,GAAgBc,GAAkB3qE,QAlRpD,WACtB,IAAIwO,EACA2+D,GAAc,EAEZC,EAAsBnN,GAA2Bv8B,GACjD2pC,EAAyBhN,GAAsB38B,EAAD,OAAe88B,SAAf,IAAeA,QAAf,EAAeA,GAAcoB,WAEjF,GAAIwL,EACApE,SAIJ,GAAIqE,EACApE,QADJ,CAKA,GAAIzI,GAAaoB,YAAcnD,GAAoB+B,GAAaoB,YAAcvD,EAC1E7vD,EAAU+xD,GAA4B78B,EAAc88B,GAAcR,QAC/D,CACH,MDrFqB,SAACoO,EAAO5N,EAAclkC,GACnD,IAAIq4B,EAAkB,KAClB4Q,GAAoB,EACpB8J,EAAiB,KACjBC,EAAgB,EAChBC,EAAgB,EAChBC,EAAyB,EACzBC,EAAyB,EAuD7B,OArDArB,EAAM3jF,SAAQ,SAAC+iF,GACX,IAAMO,EAAgBrL,GAAU8K,GAC1BQ,EAAuBpL,GAAiB4K,GACxC9J,EAAahB,KAAiB,OAAJ8K,QAAI,IAAJA,OAAA,EAAAA,EAAMnO,mBAAN,OAAyBmO,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMjO,gBAE/D,OAAQiB,GACJ,KAAKpC,GACL,KAAKD,GACD,IAAQh6E,EAAU2pF,GAA0BN,EAAMlxC,GAA1Cn4C,MACR,GAAIA,EAAO,CACPwwE,EAAkBxwE,EAClB,MAGAquD,GAAkBg7B,GAClB8B,GAAiB,EACV78B,GAAkB+6B,KACzB+B,GAAiB,GAGrBC,GAA0B/5E,SAAQ,OAAC+3E,QAAD,IAACA,OAAD,EAACA,EAAMnO,gBACzCoQ,GAA0Bh6E,SAAQ,OAAC+3E,QAAD,IAACA,OAAD,EAACA,EAAMjO,gBAErCmE,GApHA,IAoHc8J,EAAKjiG,KACnB8jG,EAAiB7B,EAAKjiG,IAGtB8jG,GAAkBA,EAAiB7B,EAAKjiG,KACxCopF,EAAe,UAAMmK,GAAN,YAA4CuQ,IAG/D,MAEJ,KAAK/Q,GACL,KAAKD,GACD,GAAI0P,GAAiBC,EAAsB,CACvCrZ,EAAkBmK,GAClB,MAEJ,MACJ,KAAKP,GACD,IAAKwP,GAtID,IAsIkBP,EAAKjiG,GAAoB,CAC3CopF,EAAkBmK,GAClB,WAUZnK,EACO,CAAEA,oBAGT6L,IAAiBpC,IAAiCoC,IAAiBrC,KAC/DmR,EAAgBC,EAChBhK,GAAoB,EACb+J,EAAgBC,EACvBhK,GAAoB,EACb+J,IAAkBC,GAAiBC,EAAyBC,EACnElK,GAAoB,EACb+J,IAAkBC,GAAiBC,EAAyBC,EACnElK,GAAoB,EACb+J,IAAkBC,IACzB5a,EAAkBmK,KAInB,CAAEnK,kBAAiB4Q,sBCK6BmK,CAC3CtB,EACA5N,GAAaoB,UAF+C,OAG5Dl+B,QAH4D,IAG5DA,OAH4D,EAG5DA,EAAcpH,qBAHVq4B,EAAR,EAAQA,gBAAiB4Q,EAAzB,EAAyBA,kBAMzB,GAAI5Q,EACAwY,GAAc,EACdrD,EAAgBnV,OACb,CACH,IAAI2Y,EAAW,KAEVlM,IAAiBZ,GAAaoB,YAAcpD,IAC7C8O,EAAWtN,IAAoBuF,EAAoB7hC,EAAag8B,MAAMG,OAASn8B,EAAai8B,MAAME,QAItGrxD,EAAUuzD,GAAmBr+B,EAAc0qC,EADvBhN,IAAiBkM,EAC0B9M,GAAaoB,UAAW5B,KAI3FmN,IACApE,EAAiBrlC,EAAan4D,GAAIijC,EAAS87D,IAC3CC,IAAa,GACbL,GAAgB,SAsOkFzoE,SAAUlN,EAA5F,qCCrWbo7E,GA9DG,SAAC,GAAqI,IAAD,4BAAlIrjE,gBAAkI,MAAvH,GAAuH,MAAnHonC,wBAAmH,aAAzFk8B,0BAAyF,MAApE,GAAoE,MAAhEC,0BAAgE,aAApCxO,8BAAoC,MAAX,KAAW,EAC7IvgD,EAAQoE,eACNm5C,EAAiCjgF,GAAtBkgF,EAAsBlgF,GAAZmgF,EAAYngF,GACnC0xF,EAAe/Q,GAAc,OAACzyD,QAAD,IAACA,GAAD,UAACA,EAAUszD,kBAAX,aAAC,EAAsBc,WACpDqP,EAAehR,GAAc,OAACzyD,QAAD,IAACA,GAAD,UAACA,EAAUszD,kBAAX,aAAC,EAAsBe,WACpDqP,EAAejR,GAAc,OAACzyD,QAAD,IAACA,GAAD,UAACA,EAAUszD,kBAAX,aAAC,EAAsBgB,WACpDqP,EAAyBlR,GAAc,OAACzyD,QAAD,IAACA,GAAD,UAACA,EAAUszD,kBAAX,aAAC,EAAsBmB,mBAC9DmP,EAAyBnR,GAAc,OAACzyD,QAAD,IAACA,GAAD,UAACA,EAAUszD,kBAAX,aAAC,EAAsBoB,mBAC9DmP,EAAyBpR,GAAc,OAACzyD,QAAD,IAACA,GAAD,UAACA,EAAUszD,kBAAX,aAAC,EAAsBqB,mBAC9D3gE,EAAWozC,EAAmBr/C,GAAgCA,GAC9D+7E,EAAY18B,EAAmB5yB,EAAMM,UAAU2B,MAAQjC,EAAMM,UAAUub,SACvE0zC,GAA6BhP,IAA2BhD,GAAagD,IAA2B9C,GAAW8C,IAA2B/C,KAAc5qB,EACpJ48B,GAAYD,IAA8BP,IAAiBC,IAAiBC,IAAiBH,EAEnG,OACI,cAAClkE,EAAA,EAAD,UACI,eAACA,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAK,EAAzB,UACKm0C,GACG,cAAC,aAAD,CAAY5uE,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA6B8b,MAAO2Q,EAAMM,UAAUub,SAA9G,SAAyHizC,IAE5HE,GACG,eAACnkE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAI,MAAxB,UACI,cAAC,aAAD,CAAYz6B,SAAUnN,GAAmBE,UAAW0H,KAAMoE,EAAU6P,MAAOigE,EAA3E,gBAAuF9jE,QAAvF,IAAuFA,GAAvF,UAAuFA,EAAUszD,kBAAjG,aAAuF,EAAsBc,YAC5GuP,GACG,cAAC,aAAD,CAAYxuE,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA+B8b,MAAOigE,EAAhG,gBACK9jE,QADL,IACKA,GADL,UACKA,EAAUszD,kBADf,aACK,EAAsBmB,uBAKtCgP,GACG,eAACpkE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAI,MAAxB,UACI,cAAC,aAAD,CAAYz6B,SAAUnN,GAAmBE,UAAW0H,KAAMoE,EAAU6P,MAAOigE,EAA3E,gBAAuF9jE,QAAvF,IAAuFA,GAAvF,UAAuFA,EAAUszD,kBAAjG,aAAuF,EAAsBe,YAC5GuP,GACG,cAAC,aAAD,CAAYzuE,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA+B8b,MAAOigE,EAAhG,gBACK9jE,QADL,IACKA,GADL,UACKA,EAAUszD,kBADf,aACK,EAAsBoB,uBAKtCgP,GACG,eAACrkE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAI,MAAxB,UACI,cAAC,aAAD,CAAYz6B,SAAUnN,GAAmBE,UAAW0H,KAAMoE,EAAU6P,MAAOigE,EAA3E,gBAAuF9jE,QAAvF,IAAuFA,GAAvF,UAAuFA,EAAUszD,kBAAjG,aAAuF,EAAsBgB,YAC5GuP,GACG,cAAC,aAAD,CAAY1uE,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA+B8b,MAAOigE,EAAhG,gBACK9jE,QADL,IACKA,GADL,UACKA,EAAUszD,kBADf,aACK,EAAsBqB,uBAKtCqP,GACG,eAAC3kE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAK,EAAzB,UACI,cAAC,aAAD,CAAYz6B,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA6B8b,MAAO2Q,EAAMM,UAAUub,SAA9G,eACA,cAAC,aAAD,CAAYl7B,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA6B8b,MAAO2Q,EAAMM,UAAUub,SAA9G,eACA,cAAC,aAAD,CAAYl7B,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA6B8b,MAAO2Q,EAAMM,UAAUub,SAA9G,wBChBT4zC,GAnCa,SAAC,GAAyE,IAAD,IAAtEpQ,eAAsE,MAA5D,GAA4D,MAAxDC,eAAwD,MAA9C,GAA8C,MAA1ClxF,gBAA0C,aAAxBwnB,iBAAwB,SAC3FoqB,EAAQoE,eACR5kB,EAAWpxB,EAAWmlB,GAAgCA,GAGtDm8E,EAFmBrQ,GAAO,UAAOA,EAAQ3wF,UAAf,YAA4B2wF,EAAQ1wF,WAE5B,mBAClCghG,EAFmBrQ,GAAO,UAAOA,EAAQ5wF,UAAf,YAA4B4wF,EAAQ3wF,WAE5B,mBAElC28D,EADkB1pC,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,cAC8BmQ,GAEhCowF,EAAwB,SAAC,GAA4B,IAAD,EAAzBj6E,EAAyB,EAAzBA,OAAQg2C,EAAiB,EAAjBA,WAC/B77C,EAAO6F,EAAS+F,GAAmB,OAAC/F,QAAD,IAACA,OAAD,EAACA,EAAQ/lB,UAAY,KACxDW,EAAS+6D,EAAgB51C,GAAoBC,EAAQC,GAAWrlB,OAA1C,OAAmDolB,QAAnD,IAAmDA,GAAnD,UAAmDA,EAAQU,gBAA3D,aAAmD,EAAkBK,wBACjG,OACI,qCACI,cAAC,iBAAD,CAAgB5G,KAAMA,EAAM0P,SAAUA,EAAUqxB,YAAY,OAAOD,aAAa,OAAOD,eAAgBp9B,GAA4Bm4C,OAAM,OAAE/1C,QAAF,IAAEA,OAAF,EAAEA,EAAQ9lB,aAAc87D,WAAYA,IAC5Kh2C,GAAU,cAAC,aAAD,CAAYgL,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA8B8b,MAAO2Q,EAAMM,UAAUub,SAA/G,SAA0HtrD,QAKjJ,OACI,qCACI,cAACs6B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASqwB,IAAK,EAA7C,SACI,cAACw0C,EAAD,CAAuBj6E,OAAQ0pE,EAAS1zB,WAAY+jC,MAEvD95E,GACG,cAACiV,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASqwB,IAAK,EAAG/iB,GAAG,MAAnD,SACI,cAACu3D,EAAD,CAAuBj6E,OAAQ2pE,EAAS3zB,WAAYgkC,UC6FzDE,GApHY,SAAC,GAAuI,IAAD,IAApInjG,qBAAoI,MAApH,GAAoH,MAAhHM,qBAAgH,MAAhG,GAAgG,MAA5F8hC,aAA4F,MAApF,KAAoF,MAA9EgH,kBAA8E,SAA1Dg6D,EAA0D,EAA1DA,cAA0D,IAA3Cl6E,iBAA2C,SAAxBm6E,EAAwB,EAAxBA,kBACtI,EAAgEjhE,GAAS,GAAjE8vD,EAAR,EAAQA,MAAOC,EAAf,EAAeA,MAAO0B,EAAtB,EAAsBA,uBAAwBD,EAA9C,EAA8CA,cACtC/C,EAAsDjgF,GAA3CkgF,EAA2ClgF,GAAjCogF,EAAiCpgF,GAArBqgF,EAAqBrgF,GAC9D,EAA6D5Q,GAAiB,GAAhE47F,EAAd,EAAQ17F,KAAiCw0D,EAAzC,EAAiCz0D,OACnB47F,GAAsBv7F,GAAiB,IAA7CJ,KAEFsyF,EAAmB99B,KAAe,OAAKw9B,QAAL,IAAKA,OAAL,EAAKA,EAAOjyF,QACpD,EAAiCsyF,GAAqBnwD,EAAOowD,GAArD3wF,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,UACbkjE,EAAoBnjE,EAAUwwF,SAAWuB,EACzC3uB,EAAoBnjE,EAAUuwF,SAAWuB,EAEzCtgD,EAAQoE,eACR4rD,EAAsBzP,IAA2B7C,EACjDuS,EAAqB1P,IAA2BhD,EAEhDwR,EADoB,CAACxR,EAAWC,GACO5jE,SAAS2mE,GAChD0B,EAAUxiF,GAAa8gF,EAAwBphF,IAC/C+wF,IAAoB3P,IAAF,OAA4B3B,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAOS,WAAnC,OAA8CT,QAA9C,IAA8CA,OAA9C,EAA8CA,EAAOU,WAArD,OAAgET,QAAhE,IAAgEA,OAAhE,EAAgEA,EAAOQ,WAAvE,OAAkFR,QAAlF,IAAkFA,OAAlF,EAAkFA,EAAOS,SAUjH,OACI,qCACI,eAACz0D,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,eAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAoC6f,GAAI,EAAhI,UACKxd,EAAY,UAAY,UAD7B,eACoDkZ,EAAMxT,kBAEzDwa,GACG,eAACjL,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,cAACnB,GAAA,EAAD,CAAQ1K,QAhBA,WACxB4wE,EAAchhE,EAAOlZ,IAeiCub,UAAW2E,EAAY,aAAW,qBAAqB1G,GAAI,CAAEyT,cAAe,QAAlH,SACI,cAAC,aAAD,CAAYliB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA8B8b,MAAO2Q,EAAMM,UAAUke,gBAA/G,0BAEH0xC,GACG,qCACI,cAAC,aAAD,CAAYvvE,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA8B8b,MAAO2Q,EAAMM,UAAU0B,KAA/G,eACA,cAACsP,GAAA,EAAD,CAAYpyB,QAlBP,WAC7B6wE,EAAkBjhE,IAiBqD,aAAW,qBAA1D,SACI,cAAC,YAAD,CAAWO,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,gBAOhFmlE,IAA2B5C,EACxB,cAACjO,GAAA,EAAD,CAAMtgD,GAAI,CAAE0R,aAAc,EAAGgD,UAAW,QAAxC,SACI,cAAC6rC,GAAA,EAAD,UACI,cAAC,aAAD,CAAYhvD,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA6B8b,MAAO2Q,EAAMM,UAAUub,SAAUzoB,GAAG,MAA3H,kCAIR,mCACI,cAACs8C,GAAA,EAAD,CAAMtgD,GAAI,CAAE0R,aAAc,EAAGgD,UAAW,OAAQtY,SAAU,YAA1D,SACI,cAACmkD,GAAA,EAAD,UACI,cAAC5gD,GAAA,EAAD,CAAMC,WAAS,EAAf,SACI,cAACD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAf,SACI,eAAC1E,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,eAACroC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,eAACF,EAAA,EAAD,CAAKuI,GAAG,MAAR,UACI,cAAC,aAAD,CAAYzS,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA+B6f,GAAG,MAAM8nB,QAAM,EAAxG,SAA0GqtC,IACzG0H,IAAuBt+B,EACpB,cAAC,aAAD,CAAYtiC,MAAO2Q,EAAMM,UAAUub,SAAUl7B,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA3F,eAIA,eAACsX,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACK4mC,GAAqB,cAAC,GAAD,CAAiBd,SAAO,EAACzhC,GAAI,CAAE5D,SAAU,WAAY06B,KAAM,KACjF,cAACr7B,EAAA,EAAD,UACI,cAAC,GAAD,CAAqBz8B,SAAUujE,EAAmB0tB,QAAO,OAAE7wF,QAAF,IAAEA,OAAF,EAAEA,EAAW6wF,QAASC,QAAO,OAAE9wF,QAAF,IAAEA,OAAF,EAAEA,EAAW8wF,QAAS1pE,UAAWA,YAKvI,eAACiV,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAASnoC,WAAW,MAAtD,UACKilE,GACG,cAAC,aAAD,CAAYrvE,SAAUnN,GAAmBE,UAAW8X,SAAS,WAAWgW,IAAI,OAAOpmB,KAAM7H,GAA+B8b,MAAO2Q,EAAMM,UAAUoV,IAA/I,wBAEJ,cAACy6C,GAAD,CAAoB3kE,SAAUh9B,EAAWokE,iBAAkBjB,EAAmBm9B,mBAAkB,OAAE7M,QAAF,IAAEA,OAAF,EAAEA,EAASvwF,YAAaq9F,mBAAoBA,EAAoBxO,uBAAwBA,UAGhM,eAAC11D,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,eAACF,EAAA,EAAD,WACI,cAAC,aAAD,CAAYlK,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA+B6f,GAAG,MAAM8nB,QAAM,EAAxG,SAA0GotC,IACzG2H,IAAuBv+B,EACpB,cAAC,aAAD,CAAYriC,MAAO2Q,EAAMM,UAAUub,SAAUl7B,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA3F,eAIA,eAACsX,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACK2mC,GAAqB,cAAC,GAAD,CAAiBb,SAAO,EAACzhC,GAAI,CAAE5D,SAAU,WAAY06B,KAAM,KACjF,cAACr7B,EAAA,EAAD,UACI,cAAC,GAAD,CAAqBz8B,SAAUsjE,EAAmB2tB,QAAO,OAAE9wF,QAAF,IAAEA,OAAF,EAAEA,EAAW8wF,QAASC,QAAO,OAAE/wF,QAAF,IAAEA,OAAF,EAAEA,EAAW+wF,QAAS1pE,UAAWA,YAKvI,cAACiV,EAAA,EAAD,UACI,cAACslE,GAAD,CAAoB3kE,SAAUj9B,EAAWqkE,iBAAkBlB,EAAmBo9B,mBAAkB,OAAE7M,QAAF,IAAEA,OAAF,EAAEA,EAASvwF,YAAaq9F,mBAAoBA,EAAoBxO,uBAAwBA,0BCpFzN6P,GAxBiB,SAAC,GAAiC,IAAD,IAA9BC,0BAA8B,MAAT,GAAS,EACvDrwD,EAAQoE,eACNksD,EAAqBD,EAArBC,iBAER,OACI,qCACI,eAAC,aAAD,CAAYjhE,MAAO2Q,EAAMM,UAAU2B,MAAOthB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAoC6f,GAAI,EAAG8nB,QAAM,EAAzI,iBACKm1C,QADL,IACKA,OADL,EACKA,EAAoBn6F,SADzB,iBAGA,cAACw5E,GAAA,EAAD,CAAMtgD,GAAI,CAAE0R,aAAc,EAAGgD,UAAW,QAAxC,SACI,cAAC6rC,GAAA,EAAD,UACI,cAAC5gD,GAAA,EAAD,CAAMC,WAAS,EAACkkC,cAAc,SAASngC,QAAQ,MAA/C,SACKu9D,EAAiBhrF,KAAI,SAACmU,GAAD,OAClB,cAACsV,GAAA,EAAD,CAAME,MAAI,EAAV,SACI,cAAC,GAAD,CAAqBowD,QAAS5lE,KADlC,OAAgBA,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAWhvB,iBCRjD8lG,GAAmB,SAAC,GAA0F,IAAxFt8F,EAAuF,EAAvFA,UAAW67F,EAA4E,EAA5EA,cAA4E,IAA7DU,eAA6D,MAAnD,GAAmD,EAA/CC,EAA+C,EAA/CA,OAA+C,IAAvC7jC,kBAAuC,SAApB8jC,EAAoB,EAApBA,cACnFxiG,EAAqGsiG,EAArGtiG,iBAAkBC,EAAmFqiG,EAAnFriG,YAAazB,EAAsE8jG,EAAtE9jG,cAAeM,EAAuDwjG,EAAvDxjG,cAAeX,EAAwCmkG,EAAxCnkG,UAAWgC,EAA6BmiG,EAA7BniG,UAE1E05D,EAFuGyoC,EAAlBliG,gBACnE6O,GAElB+0D,EAA0C,KAAhB,OAANu+B,QAAM,IAANA,OAAA,EAAAA,EAAQliG,YAAyC,KAAhB,OAANkiG,QAAM,IAANA,OAAA,EAAAA,EAAQjiG,WACvD65D,EAAQ,OAAG37D,QAAH,IAAGA,OAAH,EAAGA,EAAeE,KAC1B+jG,EAAYz+B,EAAoB,IAAH,OAASu+B,QAAT,IAASA,OAAT,EAASA,EAAQliG,UAC9Cg6D,EAAQ,OAAGv7D,QAAH,IAAGA,OAAH,EAAGA,EAAeJ,KAC1BgkG,EAAY1+B,EAAoB,IAAH,OAASu+B,QAAT,IAASA,OAAT,EAASA,EAAQjiG,UAC9C+oB,EAAOlrB,EAAYirB,GAAgB,CAAEE,QAASnrB,EAAW2oB,OAAQ,iCAAoC0pC,GACrG1e,EAAQoE,eACRysD,GAAyB,OAAbnkG,QAAa,IAAbA,OAAA,EAAAA,EAAe0B,YAAf,OAA2BpB,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAeoB,UACtDsjE,EAAoBm/B,IAA0B,OAAbnkG,QAAa,IAAbA,OAAA,EAAAA,EAAeC,UAAW+jG,EAC3D/+B,EAAoBk/B,IAA0B,OAAb7jG,QAAa,IAAbA,OAAA,EAAAA,EAAeL,UAAW+jG,EAC3D5nD,EAAU,2BAAuBz6C,GACjCyiG,EAAW,wBAAa9jG,QAAb,IAAaA,OAAb,EAAaA,EAAeL,QACvCokG,EAAW,wBAAarkG,QAAb,IAAaA,OAAb,EAAaA,EAAeC,QACvCqkG,EAAoBH,GAAal/B,EAAoB3xB,EAAMM,UAAU0B,KAAOhC,EAAMM,UAAUwB,MAC5FmvD,EAAoBJ,GAAan/B,EAAoB1xB,EAAMM,UAAU0B,KAAOhC,EAAMM,UAAUwB,MAM5FovD,EAAsB,CACxBrrD,WAAY,SACZtmB,SAAU,SACVkc,SAAU,GAGd,OACI,mCACKxnC,EACG,cAAC,GAAD,IAEA,cAAC42B,EAAA,EAAD,CAAK2P,EAAG,EAAGhO,QAAQ,QAAnB,SACI,eAAC7B,GAAA,EAAD,CAAWC,SAAS,KAApB,UACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,cAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAS,UAAUvF,KAAK,cAAlE,wBACCltB,GACG,cAAC,SAAD,CAAQyyB,SAAS,oBAAoBzB,QApBvC,WACtB4wE,KAmBwB,qBAGR,eAACjlE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAnC,UACI,eAAC1B,EAAA,EAAD,WACI,cAAC4X,GAAA,EAAD,CAAMrT,GAAI8hE,EAAqBphF,KAAMghF,EAArC,SACI,cAAC,aAAD,CAAYzhE,MAAO4hE,EAAmBtwE,SAAS,UAAUvF,KAAK,aAAa8/B,QAAM,EAAjF,SACKqN,MAGT,cAAC19B,EAAA,EAAD,CAAKuE,GAAI8hE,EAAT,SACI,eAACrmE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,WAA/B,UACI,cAAC0X,GAAA,EAAD,CAAMrT,GAAI8hE,EAAqBphF,KAAMihF,EAArC,SACI,cAAC,aAAD,CAAY1hE,MAAO2hE,EAAmBrwE,SAAS,UAAUvF,KAAK,aAAa8/B,QAAM,EAAjF,SACKmN,MAGRN,GAAuB,cAAC,aAAD,CAAYz0B,GAAI,EAAGjE,MAAO2hE,EAAmBrwE,SAAS,YAAYvF,KAAK,mBAAvE,SpK6D/B,gBoKxDL,cAACyP,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAS3mC,eAAe,SAA1D,SACKqgC,EACG,cAACngC,GAAA,EAAD,CAAkB2C,GAAI,CAAEC,MAAO2Q,EAAMM,UAAU6wD,qBAE/C,qCACI,eAACtmE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASwB,eAAe,WAAvD,UACKolC,GAAsB,cAAC,GAAD,IACvB,cAAC,aAAD,CACIr+B,GAAI,EACJjE,MAAO4hE,EACPtwE,SAAS,UACTvF,KAAK,aAJT,SAMKw1E,OAGT,eAAC/lE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASwB,eAAe,WAAvD,UACKmlC,GAAsB,cAAC,GAAD,IACvB,cAAC,aAAD,CACIp+B,GAAI,EACJjE,MAAO2hE,EACPrwE,SAAS,UACTvF,KAAK,aAJT,SAMKu1E,eAOzB,eAAC9lE,EAAA,EAAD,CAAKwN,GAAI,EAAT,UACI,eAACxN,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,cAAC,cAAD,CAAa3P,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUub,WAC9C,cAACpZ,GAAA,EAAD,CAAMrT,GAAI,CAAEkE,GAAI,GAAKxjB,KAAMg5B,EAA3B,SACI,cAAC,aAAD,CAAYzZ,MAAO2Q,EAAMM,UAAUub,SAAUl7B,SAAS,YAAYvF,KAAK,aAAvE,SACKjtB,SAIb,eAAC08B,EAAA,EAAD,CAAKwN,GAAI,EAAGvoC,QAAQ,OAAOi7B,WAAW,SAAtC,UACI,cAAC,eAAD,CAAc3P,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUub,WAC/C,cAAC,aAAD,CAAYvoB,GAAI,EAAGjE,MAAO2Q,EAAMM,UAAUub,SAAUl7B,SAAS,YAAYvF,KAAK,aAA9E,SACK7D,kBAerCg5E,GAAiB9wE,aAAjB,ehLiEgD,CAC5CmtC,YAAY,IgL9DD2jC,UCjFAa,GA/CqB,SAAC,GAAyC,IAAvCC,EAAsC,EAAtCA,eAAgB77D,EAAsB,EAAtBA,OAAQ5nC,EAAc,EAAdA,QACnDwhE,EAAmBvvD,GAAdwvD,EAAcxvD,GAAPyvD,EAAOzvD,GAErBqwD,EAA6B,SAACzvC,GAChC,IAAMnd,EAASmd,EAAMiqC,cAAczzD,MACnCo6F,EAAe/tF,IAGnB,OACI,eAACi3B,GAAA,EAAD,CAAQ3P,SAAS,KAAKwE,GAAI,CAAEoL,EAAG,GAAK7sC,KAAM6nC,EAA1C,UACI,cAAC6b,GAAA,EAAD,CAAazW,MAAM,OAAnB,SACI,cAAC,aAAD,CAAYxL,GAAI,CAAEyT,cAAe,QAAUznB,KAAK,cAAcuF,SAAS,UAAvE,kCAEJ,cAAC2wB,GAAA,EAAD,CACI,aAAW,QACXpyB,QAAStxB,EACTwhC,GAAI,CACA5D,SAAU,WACViW,MAAO,EACPD,IAAK,EACLnS,MAAO,SAPf,SAUI,cAAC,KAAD,MAEJ,cAACoL,GAAA,EAAD,UACI,cAAC5P,EAAA,EAAD,CAAKxL,MAAO,IAAZ,SACI,cAAC,aAAD,CAAYjE,KAAK,cAAcuF,SAAS,YAAxC,qEAKR,eAACka,GAAA,EAAD,CAAezL,GAAI,CAAEt/B,QAAS,OAAQy8B,eAAgB,SAAU8sB,aAAc,GAA9E,UACI,cAAC,SAAD,CAAQ14B,SAAS,YAAY1pB,MAAOm4D,EAAKlwC,QAASgxC,EAA4BrmC,QAAQ,QAAtF,iBAGA,cAAC,SAAD,CAAQlJ,SAAS,YAAY1pB,MAAOq4D,EAAIpwC,QAASgxC,EAA4BrmC,QAAQ,QAArF,gBAGA,cAAC,SAAD,CAAQlJ,SAAS,YAAY1pB,MAAOo4D,EAAOnwC,QAASgxC,EAA4BrmC,QAAQ,QAAxF,0BCiDDynE,GAvFyB,SAAC,GAAoD,IAAlD97D,EAAiD,EAAjDA,OAAQ5nC,EAAyC,EAAzCA,QAAS2sB,EAAgC,EAAhCA,QAASg3E,EAAuB,EAAvBA,iBAC3DvxD,EAAQoE,eACNgrB,EAAmBvvD,GAAdyvD,EAAczvD,GAAVwvD,EAAUxvD,GAE3B,EAA8C1I,mBAAS,IAAvD,mBAAOq6F,EAAP,KAAwBC,EAAxB,KA+BMC,EAAgC,SAACpuF,GACnC,OAAQA,GACJ,KAAK8rD,EACD,MAAO,MACX,KAAKC,EACD,MAAO,QACX,KAAKC,EACD,MAAO,KACX,QACI,MAAO,gBAIbqiC,EAA+Bp3E,EAAQT,QAAO,SAAChX,EAAQ6S,GACzD,IAAMi8E,EAAej8E,EAAO+E,+BAK5B,OAJK5X,EAAO8uF,KACR9uF,EAAO8uF,GAAgB,IAE3B9uF,EAAO8uF,GAAc/nF,KAAK8L,EAAO5oB,cAC1B+V,IACR,IAEH,OACI,eAACy3B,GAAA,EAAD,CAAQnO,WAAS,EAACxB,SAAS,KAAKj9B,KAAM6nC,EAAtC,UACI,cAAC6b,GAAA,EAAD,CAAajiB,GAAI,CAAEgjB,GAAI,GAAKxX,MAAM,OAAlC,SACI,cAAC,aAAD,CAAYxL,GAAI,CAAEyT,cAAe,OAAQuN,aAAa,aAAD,OAAepQ,EAAMM,UAAU+T,WAAcj5B,KAAK,cAAcuF,SAAS,UAA9H,iCAEJ,cAAC8Z,GAAA,EAAD,UACK3vC,OAAO+mG,QAAQF,GAA8BrsF,KAAI,YAAoB,IA5CjD85E,EA4CgD,mBAAjB97E,EAAiB,KAATwuF,EAAS,KACjE,OACI,eAACjnE,EAAA,EAAD,CAAkB/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAASqE,GAAI,CAAEghB,aAAa,aAAD,OAAepQ,EAAMM,UAAU+T,UAAY/0B,OAAQ,QAAzJ,UACI,eAACuL,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAK,EAAzB,UACI,cAAC,aAAD,CAAYhgC,KAAK,eAAeuF,SAAS,YAAY0O,MAAO2Q,EAAMM,UAAU2B,MAA5E,SAAoFyvD,EAA8B/8E,SAASrR,MAC3H,cAAC,aAAD,CAAY8X,KAAK,eAAeuF,SAAS,YAAY0O,MAAO2Q,EAAMM,UAAU0B,KAA5E,SAAmF8vD,EAAI9mG,YAE3F,cAAC03C,GAAD,CAAcuP,SAnDLmtC,EAmDsC0S,EAlDnE,OAAON,QAAP,IAAOA,OAAP,EAAOA,EAAiBO,MAAK,SAACC,GAAD,cACzBA,QADyB,IACzBA,OADyB,EACzBA,EAAmB1/D,OAAM,SAAC7nC,GAAD,OAAQ20F,EAAUxlE,SAASnvB,UAiDiB6uC,WAAY,CAAE,aAAa,UAAb,OAAwBo4D,EAA8BpuF,KAAa7Y,GAAI6Y,EAAQ8qB,SAAU,kBAhE3I,SAACgxD,GACtC,IAAMn7D,EAAK,OAAGutE,QAAH,IAAGA,OAAH,EAAGA,EAAiBtsC,WAAU,SAAC8sC,GAAD,cACrCA,QADqC,IACrCA,OADqC,EACrCA,EAAmB1/D,OAAM,SAAC7nC,GAAD,OAAQ20F,EAAUxlE,SAASnvB,SAExD,IADmC,IAAXw5B,EACH,CACjB,IAAMguE,EAAsB,YAAOT,GACb,OAAtBS,QAAsB,IAAtBA,KAAwBC,OAAOjuE,EAAO,GACtCwtE,EAAmBQ,QAEnBR,EAAmB,GAAD,mBAAKD,GAAL,CAAsBpS,KAuD0I+S,CAAiCL,QAL7LxuF,QAUtB,eAACu3B,GAAA,EAAD,CAAezL,GAAI,CAAEgE,GAAI,EAAG5gB,GAAI,GAAhC,UACI,cAAC,SAAD,CAAQmO,SAAS,YAAYyO,GAAI,CAAE/P,MAAO,OAASH,QApDzC,WAClBtxB,IACA6jG,EAAmB,KAkDgE5nE,QAAQ,QAAnF,oBAGA,cAAC,SAAD,CAAQlJ,SAAS,UAAUyO,GAAI,CAAE/P,MAAO,OAASH,QAlD9B,WAC3BqyE,EAAiB,CAAEvnF,cAAa,OAAEwnF,QAAF,IAAEA,OAAF,EAAEA,EAAiBY,SACnDxkG,IACA6jG,EAAmB,KA+CuE5nE,QAAQ,QAA1F,yBC5CDwoE,GA1CqB,SAAC,GAA4E,IAAD,IAAzEh4E,0BAAyE,MAApD,KAAoD,EAA9Ci4E,EAA8C,EAA9CA,oBAA8C,IAAzBC,kBAAyB,SACtGvyD,EAAQoE,eACNgrB,EAAmBvvD,GAAdwvD,EAAcxvD,GAAPyvD,EAAOzvD,GACrB2yF,EAAW,GA4BjB,OACI,mCACKD,EAf4B,SAACjvF,GAClC,OAAQA,GACJ,KAAK8rD,EACD,OAAO,cAAC,sBAAD,CAAqB//B,MAAO2Q,EAAMM,UAAUmyD,MAAOr3E,KAAMo3E,IACpE,KAAKnjC,EACD,OAAO,cAAC,wBAAD,CAAuBhgC,MAAO2Q,EAAMM,UAAUoyD,OAAQt3E,KAAMo3E,IACvE,KAAKljC,EACD,OAAO,cAAC,qBAAD,CAAoBjgC,MAAO2Q,EAAMM,UAAUoV,IAAKt6B,KAAMo3E,IACjE,QACI,OAAO,cAAC,yBAAD,CAAwBnjE,MAAO2Q,EAAMM,UAAU2B,MAAO7mB,KAAMo3E,KAOnEG,CAA6Bt4E,GA7BF,SAAC/W,GACpC,OAAQA,GACJ,KAAK8rD,EACD,OAAO,cAAC9d,GAAA,EAAD,CAAYpyB,QAASozE,EAAqB,aAAW,2BAArD,SAAgF,cAAC,sBAAD,CAAqBjjE,MAAO2Q,EAAMM,UAAUmyD,MAAOr3E,KAAMo3E,MACpJ,KAAKnjC,EACD,OAAO,cAAC/d,GAAA,EAAD,CAAYpyB,QAASozE,EAAqB,aAAW,2BAArD,SAAgF,cAAC,wBAAD,CAAuBjjE,MAAO2Q,EAAMM,UAAUoyD,OAAQt3E,KAAMo3E,MACvJ,KAAKljC,EACD,OAAO,cAAChe,GAAA,EAAD,CAAYpyB,QAASozE,EAAqB,aAAW,2BAArD,SAAgF,cAAC,qBAAD,CAAoBjjE,MAAO2Q,EAAMM,UAAUoV,IAAKt6B,KAAMo3E,MACjJ,QACI,OAAO,cAAClhD,GAAA,EAAD,CAAYpyB,QAASozE,EAAqB,aAAW,2BAArD,SAAgF,cAAC,yBAAD,CAAwBjjE,MAAO2Q,EAAMM,UAAU2B,MAAO7mB,KAAMo3E,OAsBnJI,CAA+Bv4E,MCxBzCw4E,GAAiB,SAAC,GAAgF,IAA9E7sD,EAA6E,EAA7EA,QAASvxC,EAAoE,EAApEA,QAAS69F,EAA2D,EAA3DA,oBAAqB7W,EAAsC,EAAtCA,cAAeqX,EAAuB,EAAvBA,iBAExEt/F,EAUAwyC,EAVAxyC,WACA/I,EASAu7C,EATAv7C,GACAsC,EAQAi5C,EARAj5C,aACAH,EAOAo5C,EAPAp5C,KACA8tB,EAMAsrB,EANAtrB,+BACA7qB,EAKAm2C,EALAn2C,aACA6E,EAIAsxC,EAJAtxC,cACAC,EAGAqxC,EAHArxC,cACAP,EAEA4xC,EAFA5xC,WACA2+F,EACA/sD,EADA+sD,KAEE/yD,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA4oC,EAAiB/oC,GAEnB+3C,EADkB1pC,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,cAC8BmQ,GAChCwzF,EAAcv3E,GAAqB5rB,GAMzC,OACI,mCACI,eAAC,KAAD,CAAU62C,UAAW,EAAYtX,GAAI,CAAE9C,gBAAiB,SAAxD,UACI,cAACiZ,GAAA,EAAD,CAAWnW,GAAI,CAAExE,SAAU,IAAKyE,MAAO,QAAS8Q,OAAQ,OAAQ5gB,SAAU,SAAU47B,aAAc,YAAejsB,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMjM,QAAQ,SAAjK,SACI,cAAC,iBAAD,CAAgBgxB,OAAQsnC,EAAarnC,WAAY/+D,MAErD,cAAC24C,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUjR,UAAU,KAAKzkC,GAAIgK,EAASkyC,MAAM,MAAMjM,QAAQ,SAAnF,UACM+gD,GAAiBqX,IACf,cAAC,GAAD,CAA6BR,oBAZf,WAC9BA,EAAoBvlG,IAWyEstB,mBAAoBK,EAAgC63E,YAAa9W,MAGrJnwB,EACG,qCACI,cAAC/lB,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,SAAmFloD,MAEvF,cAACmxC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,SAAmF9oD,SAI3F,cAAC+xC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,SAAmFy2C,MAG3F,cAACxtD,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,SAAmF5nD,MAEvF,cAAC6wC,GAAA,EAAD,CAAWnW,GAAI,CAAE+Q,OAAQ,QAAUvF,MAAM,SAAzC,SACI,cAAC,aAAD,CAAYvL,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUjN,EAAW0H,KAAMkhC,EAApE,SAAmF3nD,QA3B9DlK,MAsF1BwoG,GAnDM,SAAC,GAAyG,IAAD,IAAtG5uD,iBAAsG,MAA1F,GAA0F,MAAtFC,iBAAsF,MAA1E,GAA0E,EAAtErwC,EAAsE,EAAtEA,UAAWq+F,EAA2D,EAA3DA,oBAAqB7W,EAAsC,EAAtCA,cAAeqX,EAAuB,EAAvBA,iBAC3Fp/E,EAAcF,GAAdE,UACA2/B,EAAwB9/B,GAEhC,OACI,mCACI,cAAC4f,GAAA,EAAD,CAAO/D,GAAI,CAAEgE,GAAI,EAAG0Q,UAAW,OAAQxX,gBAAiB,eAAxD,SACI,cAAC6Y,GAAA,EAAD,UACKlxC,EACG,cAAC,GAAD,IAEA,eAACmxC,GAAA,EAAD,CAAOhW,GAAI,CAAEqM,SAAU,IAAK0tB,eAAgB,WAAYC,cAAe,WAAa,kBAAgB,aAAahuC,KAAK,QAAtH,UACI,cAACiqB,GAAA,EAAD,UACI,cAAC,KAAD,CAAUjW,GAAI,CAAE9C,gBAAiB,eAAjC,SACK+X,EAAU/+B,KAAI,SAACggC,EAAUrhB,GAAX,OACX,cAACshB,GAAA,EAAD,CACInW,GAAI,CAAE+Q,OAAQ,OAAQ1tB,GAAI,OAE1BmoB,MAAiB,IAAV3W,EAAc,OAAS,SAC9ByW,QAAQ,SAJZ,SAMI,cAAC,aAAD,CAAY/Z,SAAUjN,EAAW0H,KAAMi4B,EAAvC,SAA6D/N,EAASpyC,SAJjEoyC,EAAS76C,WAS9B,cAACq7C,GAAA,EAAD,UACKxB,GACGA,EACKh/B,KAAI,SAAC5C,EAAMuhB,GACR,IAAMxvB,EAAO,gBAAYwvB,GACzB,OACI,cAAC,GAAD,CACIquE,oBAAqBA,EAErBtsD,QAAStjC,EACTjO,QAASA,EACTgnF,cAAeA,EACfqX,iBAAkBA,GAJbpwF,EAAKjY,mB,UCzGxD4nD,GAAaz7C,IAAM07C,YAAW,SAAoBz0B,EAAOzM,GAC3D,OAAO,cAACmhC,GAAA,EAAD,yBAAOnhC,IAAKA,GAASyM,GAArB,IAA4B8nB,UAAU,cAsClCutD,GAnCS,SAAC,GAKlB,IAJH19D,EAIE,EAJFA,OACA5nC,EAGE,EAHFA,QACAC,EAEE,EAFFA,MACA0V,EACE,EADFA,QAEMy8B,EAAQoE,eACd,OACI,cAAC+uD,GAAA,EAAD,CACIC,iBAAkB,IAClBzlG,KAAM6nC,EACN5nC,QAASA,EACT2mD,oBAAqBlC,GAErBghD,aAAc,CACVjkE,GAAI,CACAuT,WAAY3C,EAAMM,UAAU2B,QARxC,SAYI,eAACpX,EAAA,EAAD,CAAKuE,GAAI,CACL/P,MAAO,QACPujB,UAAW,QACXlI,QAAS,OACTpO,gBAAiB0T,EAAMM,UAAU2B,MACjCnB,aAAc,OALlB,UAQI,cAAC,aAAD,CAAY1N,GAAI,EAAG/D,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAS,YAAYvF,KAAK,mBAA3E,SAA+FvtB,IAC/F,cAAC,aAAD,CAAYwhC,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAS,YAAYvF,KAAK,eAApE,SAAoF7X,QAhBnFA,IC6HF+vF,GA/HC,SAAC,GAUV,IAAD,IATFxoC,mBASE,MATY,GASZ,EARF72D,EAQE,EARFA,UACAiC,EAOE,EAPFA,SACAg5D,EAME,EANFA,qBACAqiC,EAKE,EALFA,iBACAgC,EAIE,EAJFA,uBACAC,EAGE,EAHFA,uBACA/X,EAEE,EAFFA,cACAqX,EACE,EADFA,iBAEA,EAA8B37F,mBAAS,IAAvC,mBAAOojB,EAAP,KAAgB8wC,EAAhB,KACA,EAAoDl0D,oBAAS,GAA7D,mBAAOs8F,EAAP,KAA2BC,EAA3B,KACA,EAA0Dv8F,oBAAS,GAAnE,mBAAOw8F,EAAP,KAA8BC,EAA9B,KACA,EAAkEz8F,qBAAlE,mBAAO08F,EAAP,KAAkCC,EAAlC,KACQzkG,EAAgBuyB,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,YACAokB,EAAuBD,GAAvBC,QAASC,EAAcF,GAAdE,UACTu8B,EAA2B18B,GAAfwgF,EAAexgF,GAC7B+3C,EAAgBj8D,IAAgBmQ,GAEtClI,qBAAU,WACN,IAAMi0D,EAAmBT,EAAYxlD,KAAI,SAACqQ,GACtC,IAAQplB,EAAWmlB,GAAoBC,GAA/BplB,OACQiD,EAAekiB,GAAoBC,GAAQ,GAAnDplB,OACR,EAUIolB,GAAU,GATVzqB,EADJ,EACIA,SACAwD,EAFJ,EAEIA,UACAC,EAHJ,EAGIA,SACA+rB,EAJJ,EAIIA,+BACA5pB,EALJ,EAKIA,OACAjB,EANJ,EAMIA,aACAyD,EAPJ,EAOIA,aACA+iB,EARJ,EAQIA,SACAtpB,EATJ,EASIA,aAEJ,MAAO,CACHtC,GAAIS,EACJ0B,KAAK,GAAD,OAAK8B,EAAL,YAAkBC,GACtB+rB,iCACAhmB,cAAe5D,EAAM,iBAAMA,QAAN,IAAMA,OAAN,EAAMA,EAAQg7D,YAAd,qBAA+Bh7D,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQi7D,eAAkB,IAC9Ep3D,cAAe7D,EAAM,iBAAMA,QAAN,IAAMA,OAAN,EAAMA,EAAQk7D,YAAd,qBAA+Bl7D,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQm7D,eAAkB,IAC9Ez4D,aACA3D,eACAyD,eACAc,WAAY7D,EACZxD,eACAgmG,MAAc,OAAR18E,QAAQ,IAARA,OAAA,EAAAA,EAAUK,0BAA2B,SAGnD20C,EAAWE,KACZ,CAACT,IAEJ,IAQMkpC,EAAiC,WACnCJ,GAAyB,IAGvBK,EAA4B,SAAClnG,GAC/B+mG,EAA6B/mG,GAC7B6mG,GAAyB,IAQvBM,EAAuB,OAAG35E,QAAH,IAAGA,OAAH,EAAGA,EAASf,QAAO,SAAC7D,GAAD,OAAaA,EAAOriB,gBAC9D6gG,EAAyB,OAAG55E,QAAH,IAAGA,OAAH,EAAGA,EAASf,QAAO,SAAC7D,GAAD,OAAYA,EAAOriB,gBAC/D+wC,EAAYinB,EAAgBp4C,GAA2BC,GACvDihF,EAAsB9oC,EAAgBl4C,GAAqCC,GAC3EghF,EAAmB,sBAAOH,GAAP,YAAmCC,IAE5D,OACI,eAACxpE,GAAA,EAAD,WACI,eAACE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAASqI,GAAI,EAA3E,UACI,cAAC,aAAD,CAAY/D,MAAM,QAAQuL,MAAM,SAASja,SAAUlN,EAAS2H,KAAM24E,EAAlE,SAA+E79F,IAC9EulF,KAAmBlhE,EAAQvvB,QAAU,cAAC,SAAD,CAAQk0B,QAhCvB,WAC/Bw0E,GAAsB,IA+BqE/yE,SAAUlN,EAAvD,gCAExC8G,EAAQvvB,QACN,cAAC6/B,EAAA,EAAD,CAAKpY,GAAI,EAAT,SACI,cAAC,aAAD,CAAYmoB,MAAM,SAASja,SAAUjN,EAAW0H,KAAM60B,EAAtD,4DAGN,OAACikD,QAAD,IAACA,MAAyBlpG,SACxB,cAAC,GAAD,CACIs5C,UAAWhqB,GAA0B45E,GACrC7vD,UAAWA,EACXpwC,UAAWA,EACXq+F,oBAAqB2B,EACrBxY,cAAeA,EACfqX,iBAAkBA,MAGxB,OAACqB,QAAD,IAACA,MAA2BnpG,SAC1B,cAAC,GAAD,CACIs5C,UAAWhqB,GAA0B65E,GACrC9vD,UAAW+vD,EACXngG,UAAWA,EACXq+F,oBAAqB2B,EACrBxY,cAAeA,EACfqX,iBAAkBA,IAG1B,cAAC,GAAD,CAAiBt9D,OAAQ+9D,EAAwB3lG,QAAS4lG,EAAwBjwF,QAAQ,oDAAoD1V,MAAM,oBACpJ,cAAC,GAAD,CACI0jG,iBAAkBA,EAClBh3E,QAAS85E,EACT7+D,OAAQi+D,EACR7lG,QA5DwB,WAChC8lG,GAAsB,MA6DlB,cAAC,GAAD,CACIl+D,OAAQm+D,EACR/lG,QAASomG,EACT3C,eApD6B,SAAC/tF,GACtC0wF,IACA9kC,EAAqB,CAAEniE,aAAc8mG,EAA2Bx5E,mBAAoB/W,W,0CCzE7EgxF,GAbM,SAAC,GAAuD,IAArD3+E,EAAoD,EAApDA,OAAoD,IAA5CC,iBAA4C,aAAzB8zC,kBAAyB,SAElE4B,EADkB1pC,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,cAC8BmQ,GAEtC,EAA+B8rD,EAAgB51C,GAAoBC,EAAQC,GAAaa,GAAiCd,GAAjHW,EAAR,EAAQA,WAAY/lB,EAApB,EAAoBA,OAEpB,OAAO+6D,EACH,cAAC,GAAD,CAAW7B,IAAKl5D,EAAQ+lB,WAAYA,EAAYozC,WAAYA,IAE5D,cAAC95B,GAAA,EAAD,CAAY/F,QAAS6/B,EAAa,eAAiB,QAAnD,SAA6Dn5D,KC8BtDgkG,GApCY,SAAC,GAAgB,IAAd5+E,EAAa,EAAbA,OACpBqqB,EAAQoE,eACd,EAAsFzuB,GAAU,GAAxFjnB,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,SAAUkB,EAA7B,EAA6BA,aAAciB,EAA3C,EAA2CA,OAAQ4pB,EAAnD,EAAmDA,+BACnD,EAAmE5pB,GAAU,GAArEk7D,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,cAAeH,EAApC,EAAoCA,YAAaC,EAAjD,EAAiDA,cAC3CinC,EAAW,UAAMh2F,GAAO7C,OAAb,sBAAiCtK,GAC5CjD,EAAI,UAAM8B,EAAN,YAAmBC,GACvB6lG,EAAW,QACbC,EAAc,EACd9/F,EAAgB6/F,EAChB9/F,EAAgB8/F,EAQpB,OANI1jG,IACA2jG,EAAcxoC,EAAgBD,EAAcD,EAAgBD,EAC5Dn3D,EAAa,UAAMq3D,EAAN,cAAuBC,GACpCv3D,EAAa,UAAMo3D,EAAN,cAAuBC,IAIpC,eAAClhC,EAAA,EAAD,CAAKqa,KAAM,EAAGp1C,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAAvE,UACI,eAACF,EAAA,EAAD,CAAKuI,GAAI,EAAGtjC,QAAQ,OAAOi7B,WAAW,SAAtC,UACI,cAAC,iBAAD,CAAgB2gC,OAAQsnC,EAAa0B,YAAU,EAAC/oC,WAAY/+D,IAC5D,eAACi+B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,cAAC,aAAD,CAAYvyC,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAA8B+b,GAAI,EAA5F,SAAgG1iC,IAChG,cAAC,GAAD,CAAc+oB,OAAQA,EAAQ+zC,YAAU,IACxC,eAAC1Y,GAAA,EAAD,CAAO3Y,GAAI,GAAKsN,UAAU,MAAM5S,QAAS,EAAzC,UACI,cAAC,aAAD,CAAY1D,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAvF,2BAAwIkhF,KACxI,cAAC,aAAD,CAAYplE,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAvF,yBAAsI7e,KACtI,cAAC,aAAD,CAAY26B,MAAO2Q,EAAMM,UAAU0B,KAAMrhB,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAvF,yBAAsI5e,cAIlJ,cAAC,GAAD,CAA6B49F,YAAU,EAACl4E,mBAAoBK,QC6CzDi6E,GAtEc,SAAC,GAWvB,IAAD,IAVFz+F,gBAUE,MAVS,GAUT,MATF0+F,cASE,MATO,GASP,EARFz6C,EAQE,EARFA,OACAJ,EAOE,EAPFA,SACAntD,EAME,EANFA,KACAD,EAKE,EALFA,OACA0W,EAIE,EAJFA,MACAwxF,EAGE,EAHFA,eACAC,EAEE,EAFFA,kBACA35D,EACE,EADFA,WAeA,OACI,eAACtQ,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAjE,mBACQrd,EADR,iBAGA,cAACw5E,GAAA,EAAD,CAAM7lD,QAAQ,WAAd,SACI,eAAC8lD,GAAA,EAAD,kBACKx1B,QADL,IACKA,OADL,EACKA,EAAQ70C,KAAI,SAAC4mB,EAAOjI,GAAR,OACT,eAAC4G,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAASwB,eAAe,gBAAgB6G,GAAI,EAA3E,UACI,eAACxC,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,2BAAf,mBAA8CyL,EAA9C,gBACA,cAAC,KAAD,yBACIhD,MAAK,UAAKgD,EAAL,cACLmN,MAAOA,EACP8tB,SAAUgK,EACV1mC,QAAQ,2BACRhK,GAAG,2BACHqwD,aAAY,OAAE5uB,QAAF,IAAEA,OAAF,EAAEA,EAAOn/B,aACrB+nD,YAAa,SAAC79C,GAAD,OAvBX,SAAClK,GAC/B,IAAM4oB,EAAM,OAAGi/E,QAAH,IAAGA,OAAH,EAAGA,EAAQj1F,MAAK,SAACo1F,GAAD,OAA0B,OAAVA,QAAU,IAAVA,OAAA,EAAAA,EAAYhoG,gBAAiBA,KACzE,MAAM,GAAN,cAAU4oB,QAAV,IAAUA,OAAV,EAAUA,EAAQjnB,UAAlB,mBAA+BinB,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQhnB,UAqBaqmG,CAA0B/9F,IAClDm4B,GAAI,CAAE/P,MAAO,SACT06B,EAAS,GAAD,OAAIntD,EAAJ,YAAYq3B,EAAZ,mBAThB,oBAWK2wE,QAXL,IAWKA,OAXL,EAWKA,EAAQtvF,KAAI,SAACqQ,GAAD,OACT,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,uBAMf,KAAb,OAANotD,QAAM,IAANA,OAAA,EAAAA,EAAQnvD,SACL,cAACsmD,GAAA,EAAD,CAAYpyB,QAAS,WAtC7C41E,EAsCgF7wE,EAtC/Ct3B,IAsCuD,aAAW,SAA3E,SACI,cAAC,KAAD,QAvBZ,OAAmFu/B,QAAnF,IAAmFA,OAAnF,EAAmFA,EAAOzhC,OA4B9F,cAACm/B,GAAA,EAAD,CAAQ1K,QAjDU,WAC9B21E,EAAeloG,IAgDyC+mE,UAAW,cAAC,KAAD,IAAvD,4CC6OLuhC,GA5SI,SAAC,GAQb,IAAD,IAPFr/E,iBAOE,SANFlpB,EAME,EANFA,cACAM,EAKE,EALFA,cACA+tB,EAIE,EAJFA,OACAusE,EAGE,EAHFA,eACA4N,EAEE,EAFFA,iBACAC,EACE,EADFA,iBAEQC,EAA2BtX,GAAfuX,EAAevX,GAC3BwX,EAAuCzX,GAArB0X,EAAqB1X,GAC/C,EAA0C1mF,qBAA1C,mBAAOq+F,EAAP,KAAsBC,EAAtB,KACA,EAAgEt+F,qBAAhE,mBAAOu+F,EAAP,KAAiCC,EAAjC,KACA,EAAgEx+F,qBAAhE,mBAAOy+F,EAAP,KAAiCC,EAAjC,KACA,EAAgE1+F,qBAAhE,mBAAO2+F,EAAP,KAAiCC,EAAjC,KACA,EAAgE5+F,qBAAhE,mBAAO6+F,EAAP,KAAiCC,EAAjC,KAEMC,EAAS,UAAMtgF,EAAY,UAAY,UAA9B,8BAAsDmF,QAAtD,IAAsDA,OAAtD,EAAsDA,EAAQO,gBACvE66E,EAAoBjB,GAAoBC,EACxCrN,EAAgB,OAAGp7F,QAAH,IAAGA,OAAH,EAAGA,EAAe2Y,YAClC0iF,EAAgB,OAAG/6F,QAAH,IAAGA,OAAH,EAAGA,EAAeqY,YAClCijF,EAAiB,OAAG57F,QAAH,IAAGA,OAAH,EAAGA,EAAeE,KACnC27F,EAAiB,OAAGv7F,QAAH,IAAGA,OAAH,EAAGA,EAAeJ,KACnCsJ,EAAWg/F,IAAqBC,EAAmB7M,EAAoBC,EAEvE/8D,EAAY2qE,IAAqBjB,GAAqBC,EAAgCE,EAAbD,EAE/E99F,qBAAU,WACO,IAAD,QAARyjB,IACA06E,EAAiB16E,GACjB46E,EAA2B,OAAC56E,QAAD,IAACA,GAAD,UAACA,EAAQxsB,iBAAT,aAAC,EAAmB0sB,qBAC/C46E,EAA2B,OAAC96E,QAAD,IAACA,GAAD,UAACA,EAAQxsB,iBAAT,aAAC,EAAmB2sB,qBAC/C66E,EAA2B,OAACh7E,QAAD,IAACA,GAAD,UAACA,EAAQvsB,iBAAT,aAAC,EAAmBysB,qBAC/Cg7E,EAA2B,OAACl7E,QAAD,IAACA,GAAD,UAACA,EAAQvsB,iBAAT,aAAC,EAAmB0sB,wBAEpD,CAACH,IAEJ,IAAM2sE,EAAuB,SAACjnE,EAAO21E,GAAuC,IAAD,IAAxBC,EAAwB,wDACjEC,EAAcF,IAAiBhB,EAC/B1O,EAAc4P,EAAchB,EAAmBC,EAC/CgB,EAAiBD,EAAW,OAAG5pG,QAAH,IAAGA,OAAH,EAAGA,EAAeC,OAAlB,OAA2BK,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAeL,OACtE6pG,EAAqB/1E,EAAMhP,OAAOxa,MAEpCq/F,IAAgBD,EAChBV,EAA4Bl1E,EAAMhP,OAAOxa,OAClCq/F,GAAeD,EACtBR,EAA4Bp1E,EAAMhP,OAAOxa,OACjCq/F,GAAgBD,GAEhBC,GAAeD,GACvBJ,EAA4Bx1E,EAAMhP,OAAOxa,OAFzC8+F,EAA4Bt1E,EAAMhP,OAAOxa,OAK7C,IAAMw/F,EAAa,2BACZjB,GADY,mBAEd9O,EAAc,CACX/5F,OAAQ4pG,EACRt7E,oBAAqBo7E,EAAW,UAAGb,EAAc9O,UAAjB,aAAG,EAA4BzrE,oBAAsBu7E,EACrFt7E,oBAAqBm7E,EAAcG,EAAH,UAAwBhB,EAAc9O,UAAtC,aAAwB,EAA4BxrE,uBAI5Fu6E,EAAiBgB,GACjBnP,EAAe,CAAEmP,gBAAeD,qBAAoB7pG,OAAQ4pG,KAG1DvB,EAA4B,SAACjoG,EAAcqpG,GAC7C,IAEMzgF,GAFcygF,IAAiBhB,EACVtN,EAAmBC,GAC1BpoF,MAAK,SAACo1F,GAAD,OAA0B,OAAVA,QAAU,IAAVA,OAAA,EAAAA,EAAYhoG,gBAAiBA,KAEtE,MAAM,GAAN,cAAU4oB,QAAV,IAAUA,OAAV,EAAUA,EAAQjnB,UAAlB,mBAA+BinB,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAQhnB,WAGrC+nG,EAAyBh/F,mBAAQ,WACnC,OAAO4iB,GAA0BytE,IAAqB,KACvD,CAACA,IAEE4O,EAAyBj/F,mBAAQ,WACnC,OAAO4iB,GAA0BwtE,IAAqB,KACvD,CAACA,IAEE8O,EAAsBprE,IAAa4pE,EAAaQ,EAA2BI,EAC3Ea,EAAsBrrE,IAAa4pE,EAAaM,EAA2BI,EAC3EgB,EAAqBtrE,IAAa4pE,EAAaM,EAA2BI,EAC1Ev7E,GAAU26E,IAAqBC,EAAmBwB,EAAyBD,EAEjF,OACI,eAAC7rE,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUnN,GAAmBE,UAAW0H,KAAM7H,GAAjE,SACK2iF,IAEL,cAACxmB,GAAA,EAAD,CAAM7lD,QAAQ,WAAd,SACKjU,EACG,cAAC+5D,GAAA,EAAD,UACKwmB,EACG,eAACtrE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,eAACtiC,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,kCAAf,SAAkD89F,IAClD,eAAC,KAAD,CACI9zF,QAAQ,kCACRhK,GAAG,qCACHwM,MAAO6+F,GAA4B,GACnC1nE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO40E,IACjDniG,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOo+F,IAN7D,UAQI,cAACvkE,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEHy/F,EAAuBpxF,KAAI,SAACqQ,GAAD,OACxB,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,uBAMnC,eAAC6jC,GAAA,EAAD,CAAaxE,WAAS,EAACgD,GAAI,CAAEiJ,GAAI,GAAjC,UACI,cAACxH,GAAA,EAAD,CAAYpmC,GAAG,kCAAf,SAAkD89F,IAClD,eAAC,KAAD,CACI9zF,QAAQ,kCACRhK,GAAG,qCACHwM,MAAO++F,GAA4B,GACnC5nE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO40E,GAAY,IAC7DniG,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOo+F,IAN7D,UAQI,cAACvkE,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEHy/F,EAAuBpxF,KAAI,SAACqQ,GAAD,OACxB,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,uBAMnC,eAAC6jC,GAAA,EAAD,CAAaxE,WAAS,EAACgD,GAAI,CAAEiJ,GAAI,GAAjC,UACI,cAACxH,GAAA,EAAD,CAAYpmC,GAAG,kCAAf,SAAkD69F,IAClD,eAAC,KAAD,CACI7zF,QAAQ,kCACRhK,GAAG,qCACHwM,MAAOy+F,GAA4B,GACnCtnE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO20E,IACjDliG,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOm+F,IAN7D,UAQI,cAACtkE,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEH0/F,EAAuBrxF,KAAI,SAACqQ,GAAD,OACxB,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,uBAMnC,eAAC6jC,GAAA,EAAD,CAAaxE,WAAS,EAACgD,GAAI,CAAEiJ,GAAI,GAAjC,UACI,cAACxH,GAAA,EAAD,CAAYpmC,GAAG,kCAAf,SAAkD69F,IAClD,eAAC,KAAD,CACI7zF,QAAQ,kCACRhK,GAAG,qCACHwM,MAAO2+F,GAA4B,GACnCxnE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO20E,GAAY,IAC7DliG,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOm+F,IAN7D,UAQI,cAACtkE,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEH0/F,EAAuBrxF,KAAI,SAACqQ,GAAD,OACxB,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,0BAQvC,eAAC89B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,eAACtiC,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAE,kBAAayL,EAAb,YAAyBs1B,EAAzB,kBAAd,SAAkEt1B,IAClE,eAAC,KAAD,CACIzB,QAAO,kBAAayB,EAAb,YAAyBs1B,EAAzB,kBACP/gC,GAAE,kBAAayL,EAAb,YAAyBs1B,EAAzB,qBACFv0B,MAAO4/F,GAAuB,GAC9BzoE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO+K,IACjDt4B,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOu0B,IAN7D,UAQI,cAACsF,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEHsjB,GAAQjV,KAAI,SAACqQ,GAAD,OACT,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,uBAMnC,eAAC6jC,GAAA,EAAD,CAAaxE,WAAS,EAACgD,GAAI,CAAEiJ,GAAI,GAAjC,UACI,cAACxH,GAAA,EAAD,CAAYpmC,GAAE,kBAAayL,EAAb,YAAyBs1B,EAAzB,kBAAd,SAAkEt1B,IAClE,eAAC,KAAD,CACIzB,QAAO,kBAAayB,EAAb,YAAyBs1B,EAAzB,kBACP/gC,GAAE,kBAAayL,EAAb,YAAyBs1B,EAAzB,qBACFv0B,MAAO2/F,GAAuB,GAC9BxoE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO+K,GAAU,IAC3Dt4B,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOu0B,IAN7D,UAQI,cAACsF,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEHsjB,GAAQjV,KAAI,SAACqQ,GAAD,OACT,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,4BAU/C,cAAC4iF,GAAA,EAAD,UACKwmB,EACG,eAACtrE,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,eAACtiC,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAG,iCAAf,SAAiD89F,IACjD,eAAC,KAAD,CACI9zF,QAAQ,iCACRhK,GAAG,oCACHwM,MAAO6+F,GAA4B,GACnC1nE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO40E,IACjDniG,MAAOq1F,EACPzzC,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOo+F,IAN7D,UAQI,cAACvkE,GAAA,EAAD,CAAqB75B,MAAM,GAA3B,SACI,uCADU,QAGby/F,EAAuBpxF,KAAI,SAACqQ,GAAD,OACxB,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,uBAMnC,eAAC6jC,GAAA,EAAD,CAAaxE,WAAS,EAACgD,GAAI,CAAEiJ,GAAI,GAAjC,UACI,cAACxH,GAAA,EAAD,CAAYpmC,GAAG,iCAAf,SAAiD69F,IACjD,eAAC,KAAD,CACI7zF,QAAQ,iCACRhK,GAAG,oCACHwM,MAAOy+F,GAA4B,GACnCtnE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO20E,IACjDliG,MAAOo1F,EACPxzC,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOm+F,IAN7D,UAQI,cAACtkE,GAAA,EAAD,CAAqB75B,MAAM,GAA3B,SACI,uCADU,QAGb0/F,EAAuBrxF,KAAI,SAACqQ,GAAD,OACxB,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,0BAQvC,cAAC89B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,SACI,eAACtiC,GAAA,EAAD,CAAaxE,WAAS,EAAtB,UACI,cAACyE,GAAA,EAAD,CAAYpmC,GAAE,kBAAayL,EAAb,iBAAd,SAAqDA,IACrD,eAAC,KAAD,CACIzB,QAAO,kBAAayB,EAAb,iBACPzL,GAAE,kBAAayL,EAAb,oBACFe,MAAO6/F,GAAsB,GAC7B1oE,SAAU,SAAC3N,GAAD,OAAWinE,EAAqBjnE,EAAO+K,IACjDt4B,MAAOgD,EACP4+C,YAAa,SAAC79C,GAAD,OAAW+9F,EAA0B/9F,EAAOu0B,IAN7D,UAQI,cAACsF,GAAA,EAAD,CAAU75B,MAAM,GAAhB,SACI,wCAEHsjB,GAAQjV,KAAI,SAACqQ,GAAD,OACT,cAACmb,GAAA,EAAD,CAAqC75B,MAAK,OAAE0e,QAAF,IAAEA,OAAF,EAAEA,EAAQ5oB,aAApD,SACI,cAAC,GAAD,CAAoB4oB,OAAQA,KADhC,OAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ5oB,iCClR7DslD,GAAaz7C,IAAM07C,YAAW,SAAoBz0B,EAAOzM,GAC3D,OAAO,cAACmhC,GAAA,EAAD,aAAO5M,UAAU,KAAKv0B,IAAKA,GAASyM,OAGzCk5E,GAAwB,sBACxBC,GAAwB,sBACxBC,GAAqB,CAAElqG,aAAc,IA6T5BmqG,GA3TQ,SAAC,GAKjB,IAAD,IAJFtpG,EAIE,EAJFA,QACA4nC,EAGE,EAHFA,OACA9oC,EAEE,EAFFA,cACAM,EACE,EADFA,cAEMgzC,EAAQoE,eACR/N,EAAWC,wBACTpqC,EAAgBkqC,eAAhBlqC,YACAynB,EAAqBH,GAArBG,QAASF,EAAYD,GAAZC,QACT2/B,EAAiB7/B,GACzB,EAAwCpc,mBAAS,IAAjD,mBAAOggG,EAAP,KAAqBC,EAArB,KACA,EAAkEjgG,mBAAS,IAA3E,mBAAOkgG,EAAP,KAAkCC,EAAlC,KACA,EAAkEngG,mBAAS,IAA3E,mBAAOogG,EAAP,KAAkCC,EAAlC,KACA,EAAwDrgG,oBAAS,GAAjE,mBAAOsgG,EAAP,KAA6BC,EAA7B,KAEA,EAAgD1qF,GAA4B9gB,GAA9D0uB,EAAd,EAAQlY,KAAkB+zC,EAA1B,EAA0BA,WAAYpzC,EAAtC,EAAsCA,MACtC,EAAwB2L,KAAjB2oF,EAAP,oBACMC,GAA8B,OAAVh9E,QAAU,IAAVA,OAAA,EAAAA,EAAYs6E,qBAAoB,OAACt6E,QAAD,IAACA,KAAYu6E,kBAEnE9xF,GACAgzB,EAASZ,GAAepyB,IAG5B,IAIA,EAA0F2zB,aAAQ,CAAEH,cAJ9E,CAClBghE,oBAAqB,CAAC,CAAE9qG,aAAc,KACtC+qG,oBAAqB,CAAC,CAAE/qG,aAAc,MAEyEkqC,KAAM,QAAjH8iB,EAAR,EAAQA,SAAUluB,EAAlB,EAAkBA,QAASqL,EAA3B,EAA2BA,aAA2BG,EAAtD,EAAyCD,UAAaC,OAAUoH,EAAhE,EAAgEA,UAAWs5D,EAA3E,EAA2EA,WAC3E,EAAsF99C,aAAc,CAChGpuB,UACAj/B,KAAMmqG,GACNhrE,MAAO,CAAEmuB,UAAW,KAHR89C,EAAhB,EAAQ79C,OAAiC89C,GAAzC,EAAiCr1E,OAAiCs1E,GAAlE,EAA0D99C,OAK1D,GAAsFH,aAAc,CAChGpuB,UACAj/B,KAAMoqG,GACNjrE,MAAO,CAAEmuB,UAAW,KAHRi+C,GAAhB,GAAQh+C,OAAiCi+C,GAAzC,GAAiCx1E,OAAiCy1E,GAAlE,GAA0Dj+C,OAMpDk+C,GAAqB,SAAC/+E,GACxB,cAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAYjU,KAAI,SAACmU,GAAD,MAAgB,CAAE1sB,aAAY,OAAE0sB,QAAF,IAAEA,OAAF,EAAEA,EAAW1sB,kBAGtEuK,qBAAU,WACN,GAAIsjB,EAAY,CAAC,IAAD,QAGZ,GAFAw8E,EAAgB,GAAD,mBAAKx8E,EAAW29E,gBAAhB,YAAmC39E,EAAW49E,kBAE7D,OAAI59E,QAAJ,IAAIA,GAAJ,UAAIA,EAAYi9E,2BAAhB,iBAAI,EAAiCt+E,kBAArC,OAAI,EAA6CvuB,OAAQ,CACrD,IAAMytG,EAAeH,GAAmB19E,EAAWi9E,oBAAoBt+E,YACvEw+E,EAAWhB,GAAuB,CAAEj8C,aAAc29C,IAEtD,UAAI79E,QAAJ,IAAIA,GAAJ,UAAIA,EAAYk9E,2BAAhB,iBAAI,EAAiCv+E,kBAArC,OAAI,EAA6CvuB,OAAQ,CACrD,IAAM0tG,EAAeJ,GAAmB19E,EAAWk9E,oBAAoBv+E,YACvEw+E,EAAWf,GAAuB,CAAEl8C,aAAc49C,QAG3D,CAAC99E,IAEJtjB,qBAAU,WACF5K,GAAiBM,IACjBsqG,EAA4B,OAAC5qG,QAAD,IAACA,OAAD,EAACA,EAAe2Y,aAC5CmyF,EAA4B,OAACxqG,QAAD,IAACA,OAAD,EAACA,EAAeqY,gBAEjD,CAAC3Y,EAAeM,IAEnBsK,qBAAU,WACN,GAAI6/F,EAAc,CAAC,IAAD,IACdO,GAAwB,GACxB,IAAMiB,EAAsBxB,EAAar9E,QAAO,SAAC8+E,EAAW79E,GAAY,IAAD,YAUxB,EAGA,EAIA,EAGA,GAnBvC,OAAC69E,QAAD,IAACA,KAAWH,cAAgB,OAACG,QAAD,IAACA,KAAWF,eACxCE,EAAUH,aAAe,GACzBG,EAAUF,aAAe,KAGhB,OAATE,QAAS,IAATA,GAAA,UAAAA,EAAWH,oBAAX,SAAyBztG,QAAzB,OAAmC4tG,QAAnC,IAAmCA,GAAnC,UAAmCA,EAAWF,oBAA9C,OAAmC,EAAyB1tG,SAC5D0sG,GAAwB,GAG5B,UAAI38E,EAAOxsB,iBAAX,OAAI,EAAkB0sB,sBAClB29E,EAAUH,aAAa5uF,KAAvB,UAA4BkR,EAAOxsB,iBAAnC,aAA4B,EAAkB0sB,qBAElD,UAAIF,EAAOxsB,iBAAX,OAAI,EAAkB2sB,qBAClB09E,EAAUH,aAAa5uF,KAAvB,UAA4BkR,EAAOxsB,iBAAnC,aAA4B,EAAkB2sB,qBAGlD,UAAIH,EAAOvsB,iBAAX,OAAI,EAAkBysB,qBAClB29E,EAAUF,aAAa7uF,KAAvB,UAA4BkR,EAAOvsB,iBAAnC,aAA4B,EAAkBysB,qBAElD,UAAIF,EAAOvsB,iBAAX,OAAI,EAAkB0sB,qBAClB09E,EAAUF,aAAa7uF,KAAvB,UAA4BkR,EAAOvsB,iBAAnC,aAA4B,EAAkB0sB,qBAGlD,OAAO09E,IACR,IAEGf,EAAmB,OAAGnrG,QAAH,IAAGA,GAAH,UAAGA,EAAe2Y,mBAAlB,aAAG,EAA4BmU,QAAO,SAAC7D,GAAD,cAAY,OAACgjF,QAAD,IAACA,GAAD,UAACA,EAAqBF,oBAAtB,OAAC,EAAmC7+E,SAASjE,EAAO5oB,kBACzH+qG,EAAmB,OAAG9qG,QAAH,IAAGA,GAAH,UAAGA,EAAeqY,mBAAlB,aAAG,EAA4BmU,QAAO,SAAC7D,GAAD,cAAY,OAACgjF,QAAD,IAACA,GAAD,UAACA,EAAqBD,oBAAtB,OAAC,EAAmC9+E,SAASjE,EAAO5oB,kBAC/HuqG,EAA6BO,GAC7BL,EAA6BM,MAElC,CAACX,IAEJ,IAAM0B,GAAkB,uCAAG,WAAO7gE,GAAP,qBAAAx1B,EAAA,yDACjBs2F,EAAwBx/E,GAAe,OAAC0e,QAAD,IAACA,OAAD,EAACA,EAAY6/D,qBACpDkB,EAAwBz/E,GAAe,OAAC0e,QAAD,IAACA,OAAD,EAACA,EAAY8/D,qBAEpD3tF,EAAU,CACZA,QAASgtF,EACTt8E,8BAA+B,CAC3BluB,OAAM,OAAED,QAAF,IAAEA,OAAF,EAAEA,EAAeC,OACvBqd,cAAe8uF,GAEnBh+E,8BAA+B,CAC3BnuB,OAAM,OAAEK,QAAF,IAAEA,OAAF,EAAEA,EAAeL,OACvBqd,cAAe+uF,MAIjBllB,EAAkBl5D,GAAgBxQ,IAhBjB,uBAmBnBksB,EAASZ,GAAe,CAAElyB,QAASswE,KAnBhB,oDAwBb8jB,EAAc,CAAEzrG,cAAaie,YAAW+tB,SAxB3B,QAyBnBtqC,IAzBmB,kDA2BnByoC,EAASZ,GAAe,EAAD,KA3BJ,0DAAH,sDA+BlBmzB,GAAgB,WAClBh7D,KAGE85F,GAAuB,SAAC,GAAmD,IAAjD+O,EAAgD,EAAhDA,cAAeD,EAAiC,EAAjCA,mBAAoB7pG,EAAa,EAAbA,OACzDqsG,EAAa7B,EAAajyC,WAAU,SAACnqC,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQlT,kBAAR,OAA0B4uF,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAe5uF,kBACzFoxF,GAAmC,IAAhBD,EACnBE,EAAmB,YAAO/B,GAC1B59E,EAAaklB,IAEnB,GAAIw6D,EACAC,EAAoBF,GAAcvC,EAClCW,EAAgB8B,OACb,CACH,IAAMC,EAAc,sBAAOD,GAAP,CAA4BzC,IAChDW,EAAgB+B,GAGpB,GAAIxsG,KAAM,OAAKD,QAAL,IAAKA,OAAL,EAAKA,EAAeC,SAE1B,GAD8B2sB,GAAe,OAACC,QAAD,IAACA,OAAD,EAACA,EAAYs+E,qBAChCj+E,SAAS48E,GAAqB,CAAC,IAAD,EAC9C4C,EAAW,OAAG7/E,QAAH,IAAGA,GAAH,UAAGA,EAAYs+E,2BAAf,aAAG,EAAiC3yC,WAAU,SAACzrC,GAAD,OAAeA,EAAU1sB,eAAiBypG,KACzG0B,GAAgBkB,GAEI,IAAhBA,GACAnB,GAAgBhB,UAGrB,GAAItqG,KAAM,OAAKK,QAAL,IAAKA,OAAL,EAAKA,EAAeL,QAAQ,CAEzC,GAD8B2sB,GAAe,OAACC,QAAD,IAACA,OAAD,EAACA,EAAYu+E,qBAChCl+E,SAAS48E,GAAqB,CAAC,IAAD,EAC9C4C,EAAW,OAAG7/E,QAAH,IAAGA,GAAH,UAAGA,EAAYu+E,2BAAf,aAAG,EAAiC5yC,WAAU,SAACzrC,GAAD,OAAeA,EAAU1sB,eAAiBypG,KACzG6B,GAAgBe,GAEI,IAAhBA,GACAhB,GAAgBnB,OAM1BoC,GAAuB,SAAC1sG,GACFA,KAAM,OAAKD,QAAL,IAAKA,OAAL,EAAKA,EAAeC,QAG9CsrG,GAAgBhB,IAEhBmB,GAAgBnB,KAIlBqC,GAA0B,SAACC,EAAe5sG,GACpBA,KAAM,OAAKD,QAAL,IAAKA,OAAL,EAAKA,EAAeC,QAG9CurG,GAAgBqB,GAEhBlB,GAAgBkB,IAIlBC,GAA0B5B,EAAoBI,EAAkBG,GAChEsB,GAAiB7B,IAAsBvgE,EAAOwgE,sBAAwBxgE,EAAOygE,oBAC7E4B,GAAqB9B,EAAoBb,GAAwBC,GACjE2C,GAAkB/B,EAAoBP,EAA4BE,EAClEqC,GAAoBhC,EAAiB,OAAGlrG,QAAH,IAAGA,OAAH,EAAGA,EAAeE,KAAlB,OAAyBI,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAeJ,KAC7EitG,GAAkBjC,EAAiB,OAAGlrG,QAAH,IAAGA,OAAH,EAAGA,EAAeC,OAAlB,OAA2BK,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAeL,OAEnF,OACI,cAAC4tC,GAAA,EAAD,CAAQu/D,OAAO,OAAO1lD,WAAY,CAAEz3B,MAAO,CAAE2P,gBAAiB0T,EAAMM,UAAU+T,WAAcC,YAAU,EAAC3mD,KAAM6nC,EAAQ5nC,QAASg7D,GAAerU,oBAAqBlC,GAAlK,SACKoE,EACG,cAAC,GAAD,IAEA,uBAAMle,SAAUrB,EAAa2hE,IAA7B,UACI,cAACrkD,GAAA,EAAD,CAAQplB,GAAI,CAAE5D,SAAU,WAAYc,gBAAiB0T,EAAMM,UAAU2B,OAArE,SACI,cAAC6C,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgBxB,WAAW,SAA9D,UACI,cAAC,aAAD,CAAYpK,SAAUhN,EAASyH,KAAMg4B,EAArC,uBAGA,cAAC9B,GAAA,EAAD,CAAYmD,KAAK,QAAQplB,MAAM,UAAUnQ,QAAS0pC,GAAe,aAAW,QAA5E,SACI,cAAC,KAAD,eAMpB,cAACj+B,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAKwN,GAAI,EAAT,iBACKzd,QADL,IACKA,GADL,UACKA,EAAY29E,sBADjB,aACK,EAA4BjzF,KAAI,SAACyV,GAAD,OAC7B,cAAC8P,EAAA,EAAD,CAAiCuI,GAAI,EAArC,SACI,cAAC,GAAD,CACIk0D,eAAgBI,GAChB3sE,OAAQA,EACRm6E,iBAAgB,OAAEt6E,QAAF,IAAEA,OAAF,EAAEA,EAAYs6E,iBAC9BC,iBAAgB,OAAEv6E,QAAF,IAAEA,OAAF,EAAEA,EAAYu6E,iBAC9BzoG,cAAeA,EACfM,cAAeA,KAPvB,OAAU+tB,QAAV,IAAUA,OAAV,EAAUA,EAAQlT,kBAF1B,OAaK+S,QAbL,IAaKA,GAbL,UAaKA,EAAY49E,sBAbjB,aAaK,EAA4BlzF,KAAI,SAACyV,GAAD,OAC7B,cAAC8P,EAAA,EAAD,CAAiCuI,GAAI,EAArC,SACI,cAAC,GAAD,CACIxd,WAAS,EACT0xE,eAAgBI,GAChB3sE,OAAQA,EACRm6E,iBAAgB,OAAEt6E,QAAF,IAAEA,OAAF,EAAEA,EAAYs6E,iBAC9BC,iBAAgB,OAAEv6E,QAAF,IAAEA,OAAF,EAAEA,EAAYu6E,iBAC9BzoG,cAAeA,EACfM,cAAeA,KARvB,OAAU+tB,QAAV,IAAUA,OAAV,EAAUA,EAAQlT,kBAYtB,cAACgjB,EAAA,EAAD,CAAKuI,GAAI,GAAT,SACe,OAAVxY,QAAU,IAAVA,KAAYs6E,kBAAZ,OAAgCt6E,QAAhC,IAAgCA,KAAYu6E,iBACzC,eAACtqE,EAAA,EAAD,WACI,cAAC,GAAD,CACIkvB,SAAUA,EACVI,OAAQg+C,GACR90F,QAASg0B,EAAOygE,oBAChBlrG,KAAMoqG,GACNrqG,OAAM,OAAEK,QAAF,IAAEA,OAAF,EAAEA,EAAeL,OACvB6+B,SAAUsyD,GACV8W,OAAQ2C,EACRrhG,SAAQ,OAAElJ,QAAF,IAAEA,OAAF,EAAEA,EAAeJ,KACzBioG,eAAgBwE,GAChBvE,kBAAmBwE,GACnBn+D,WAAYs8D,IAEhB,cAAC5sE,EAAA,EAAD,CAAKwN,GAAI,EAAT,SACI,cAAC,GAAD,CACI0hB,SAAUA,EACVI,OAAQ69C,EACR30F,QAASg0B,EAAOwgE,oBAChBjrG,KAAMmqG,GACNpqG,OAAM,OAAED,QAAF,IAAEA,OAAF,EAAEA,EAAeC,OACvB6+B,SAAUsyD,GACV8W,OAAQyC,EACRnhG,SAAQ,OAAExJ,QAAF,IAAEA,OAAF,EAAEA,EAAeE,KACzBioG,eAAgBwE,GAChBvE,kBAAmBwE,GACnBn+D,WAAYs8D,SAKxB,cAAC,GAAD,CACI19C,SAAUA,EACVI,OAAQq/C,GACRn2F,MAAOo2F,GACP7sG,KAAM8sG,GACN/sG,OAAQktG,GACRjF,OAAQ+E,GACRzjG,SAAU0jG,GACV/E,eAAgBwE,GAChBvE,kBAAmBwE,GACnBn+D,WAAYs8D,WAMhC,cAACjjD,GAAA,EAAD,CAAQhpB,SAAS,QAAQ4D,GAAI,CAAEoS,IAAK,OAAQmU,OAAQ,EAAGrpB,gBAAiB0T,EAAMM,UAAUwB,OAAxF,SACI,cAACgD,GAAA,EAAD,UACI,cAACna,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,cAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,WAAnC,SACI,cAAC,SAAD,CAAQ5L,SAAUlN,EAAS7T,KAAK,SAAhC,wCCzU9Bm6F,GACM,CACJlsG,MAAO,kBACP0V,QAAS,sCACTy2F,qBAAsB,qFAJxBD,GAMS,CACPlsG,MAAO,qBACP0V,QAAS,wFC0gBF02F,GAzeO,WAAO,IAAD,gBAClB5jE,EAAWC,wBACX0J,EAAQoE,eACN81D,EAA0CjoF,GAAnCkoF,EAAmCloF,GAAzBmoF,EAAyBnoF,GAAdooF,EAAcpoF,GAC1C/lB,EAAgBkqC,eAAhBlqC,YACAmD,EAAgBuyB,uBAAY,SAACxqB,GAAD,OAAWA,EAAMpD,qBAA7C3E,YAER,EAAkC8H,mBAAS+iG,GAA3C,mBAAOj7D,EAAP,KAAkB4N,EAAlB,KACA,EAA0C11C,oBAAS,GAAnD,mBAAO2mD,EAAP,KAAsBC,EAAtB,KACA,EAAoD5mD,oBAAS,GAA7D,mBAAOmjG,EAAP,KAA2BC,EAA3B,KACA,EAA0CpjG,qBAA1C,mBAAO6wF,EAAP,KAAsBwS,EAAtB,KACA,EAAoCrjG,mBAAS,CAAE5I,UAAW,EAAGC,UAAW,IAAxE,mBAAOisG,EAAP,KAAmBC,EAAnB,KACA,EAA8CvjG,mBAAS,GAAvD,mBAAOwjG,EAAP,KAAwBC,EAAxB,KACA,EAA4CzjG,oBAAS,GAArD,mBAAO0jG,EAAP,KAAuBC,EAAvB,KACA,EAA0C3jG,mBAAS,MAAnD,oBAAOu5F,GAAP,MAAsBqK,GAAtB,MACA,GAAkC5jG,mBAAS,MAA3C,qBAAO0O,GAAP,MAAkBm1F,GAAlB,MACA,GAAkE7jG,oBAAS,GAA3E,qBAAO8jG,GAAP,MAAkCC,GAAlC,MACA,GAA8C/jG,oBAAS,GAAvD,qBAAOgkG,GAAP,MAAwBC,GAAxB,MACA,GAAsDjkG,oBAAS,GAA/D,qBAAOkkG,GAAP,MAA4BC,GAA5B,MACA,GAAgFnkG,oBAAS,GAAzF,qBAAOokG,GAAP,MAAyCC,GAAzC,MACA,GAAgDrkG,mBAAS,MAAzD,qBAAOskG,GAAP,MAAyBC,GAAzB,MACA,GAAsEvkG,oBAAS,GAA/E,qBAAOwkG,GAAP,MAAoCC,GAApC,MACA,GAAsDzkG,mBAAS,MAA/D,qBAAO0kG,GAAP,MAA4BC,GAA5B,MACA,GAAoD3kG,oBAAS,GAA7D,qBAAO8iF,GAAP,MAA2B8hB,GAA3B,MACA,GAA8D5kG,oBAAS,GAAvE,qBAAO6wD,GAAP,MAAgCg0C,GAAhC,MACA,GAA0C7kG,mBAAS,MAAnD,qBAAO8kG,GAAP,MAAsBC,GAAtB,MAEA,GCrEkC,SAAChwG,GACnC,IAAMmqC,EAAWC,wBACjB,EAA0Cn/B,mBAAS,IAAnD,mBAAOzK,EAAP,KAAsByvG,EAAtB,KACA,EAA0ChlG,mBAAS,IAAnD,mBAAOnK,EAAP,KAAsBovG,EAAtB,KACA,EAAwDjlG,qBAAxD,mBAAOg6D,EAAP,KAA6BC,EAA7B,KACA,EAAkDj6D,oBAAS,GAA3D,mBAAOk6D,EAAP,KAA0BC,EAA1B,KACA,EAAkDn6D,oBAAS,GAA3D,mBAAOklG,EAAP,KAA0BC,EAA1B,KAEA,EAA8DvvF,GAA4B7gB,GAA5EqwG,EAAd,EAAQ75F,KAAeW,EAAvB,EAAuBA,MAAkBm5F,EAAzC,EAA8BvoG,UAyB9B,OAvBIoP,GACAgzB,EAASZ,GAAepyB,IAG5B/L,qBAAU,WACN,GAAIilG,EAAS,CAAC,IAAD,YACchuG,EAAwCguG,EAAvD7vG,cAAyC8B,EAAc+tG,EAA7BvvG,cAElC,GAAa,OAATuB,QAAS,IAATA,GAAA,UAAAA,EAAWkuG,wBAAX,SAA6B1vG,cAA8D,QAArC,OAATyB,QAAS,IAATA,GAAA,UAAAA,EAAWiuG,wBAAX,eAA6B1vG,cAC1EqkE,EAAuB,OAAC7iE,QAAD,IAACA,OAAD,EAACA,EAAWkuG,uBAChC,GAAa,OAATjuG,QAAS,IAATA,GAAA,UAAAA,EAAWiuG,wBAAX,SAA6B1vG,cAA8D,QAArC,OAATwB,QAAS,IAATA,GAAA,UAAAA,EAAWkuG,wBAAX,eAA6B1vG,cACjFqkE,EAAuB,OAAC5iE,QAAD,IAACA,OAAD,EAACA,EAAWiuG,uBAChC,GAAa,OAATluG,QAAS,IAATA,GAAA,UAAAA,EAAWkuG,wBAAX,SAA6B1vG,cAA7B,OAA6CyB,QAA7C,IAA6CA,GAA7C,UAA6CA,EAAWiuG,wBAAxD,OAA6C,EAA6B1vG,aAAc,CAAC,IAAD,IAC/FqkE,EAAuB,OAAC7iE,QAAD,IAACA,OAAD,EAACA,EAAWkuG,kBACnCnrC,GAAqB,GACrBgrC,EAAqB,QAAC/tG,QAAD,IAACA,GAAD,UAACA,EAAWkuG,wBAAZ,aAAC,EAA6B1vG,aAA9B,OAA4CyB,QAA5C,IAA4CA,GAA5C,UAA4CA,EAAWiuG,wBAAvD,aAA4C,EAA6B1vG,eAGlGovG,EAAiB5tG,GACjB6tG,EAAiB5tG,MAEtB,CAAC+tG,IAEG,CAAE7vG,gBAAeM,gBAAemkE,uBAAsBkrC,oBAAmBG,mBAAkBnrC,qBDqC9FqrC,CAAuBxwG,GADnBQ,GAAR,GAAQA,cAAeM,GAAvB,GAAuBA,cAAemkE,GAAtC,GAAsCA,qBAAsBkrC,GAA5D,GAA4DA,kBAAmBG,GAA/E,GAA+EA,iBAAkBnrC,GAAjG,GAAiGA,kBAEjG,GAAkEjlD,GAAwBlgB,GAAlFwW,GAAR,GAAQA,KAAM+zC,GAAd,GAAcA,WAAYpzC,GAA1B,GAA0BA,MAAgBs5F,GAA1C,GAAiCxlD,QACjC,GAA6D1qC,GACzD,CAAEvgB,cAAa2Z,cACf,CAAE80F,kBAAiBpkD,KAA0B,IAApBokD,IAFfiC,GAAd,GAAQl6F,KAA+Bm6F,GAAvC,GAAgCx5F,MAIhC,GD/D4B,SAACnX,GAC7B,IAAMmqC,EAAWC,wBACT8jD,EAAsBrmE,GAAdkjD,EAAcljD,GAC9B,EAA0C5c,mBAAS,MAAnD,mBAAO2lG,EAAP,KAAsBC,EAAtB,KACA,EAAoC5lG,mBAAS,MAA7C,mBAAOyjB,EAAP,KAAmBoiF,EAAnB,KACA,EAAmD7lG,oBAAS,GAA5D,mBAAO6iF,EAAP,KAA2BijB,EAA3B,KACA,EAAsE9lG,qBAAtE,mBAAO+lG,EAAP,KAAoCC,EAApC,KACA,EAAgEhmG,mBAAS,CAAEtJ,MAAO,GAAI0V,QAAS,GAAI65F,kBAAkB,IAArH,mBAAOC,EAAP,KAAiCC,EAAjC,KAEA,EAA4DhxF,GAAyBpgB,GAA7EwW,EAAR,EAAQA,KAAkB66F,EAA1B,EAAc9mD,WAAoCpzC,EAAlD,EAAkDA,MAClD,EAA6B6L,KAAtBsuF,EAAP,oBAEIn6F,GACAgzB,EAASZ,GAAepyB,IAG5B/L,qBAAU,WACN,GAAIoL,EAAM,CACNq6F,EAAiBr6F,GACjB,MAAyDA,GAAQ,GAAzD+6F,EAAR,EAAQA,oCAAqCtzF,EAA7C,EAA6CA,QAC7CgzF,EAA+BM,GAE3BtzF,IACA6yF,EAAc7yF,GACd8yF,EAAoB,OAAC9yF,QAAD,IAACA,OAAD,EAACA,EAASuzF,oBAGvC,CAACh7F,IAEJ,IAAMi7F,EAAsC,SAACr6F,EAAQs6F,GACjD,IAAQC,EAAsB9D,GAAd+D,EAAc/D,GACxBgE,GAAqC,OAAVnjF,QAAU,IAAVA,OAAA,EAAAA,EAAY+9C,YAAa1B,EAE1D,OAAI2mC,GAAsBt6F,IAAW82E,IAAW2jB,EACrC,CAAElwG,MAAOgwG,EAAOhwG,MAAO0V,QAASs6F,EAAO7D,qBAAsBoD,kBAAkB,GAErFQ,GAAsBt6F,IAAW82E,GAAW2jB,EAG7Cz6F,IAAW2zD,EACJ,CAAEppE,MAAOiwG,EAAUjwG,MAAO0V,QAASu6F,EAAUv6F,QAAS65F,kBAAkB,GAG5EC,EANI,CAAExvG,MAAOgwG,EAAOhwG,MAAO0V,QAASs6F,EAAOt6F,QAAS65F,kBAAkB,IAS3EY,EAA0B,uCAAG,iCAAAx7F,EAAA,6DAASc,EAAT,EAASA,OAAQs6F,EAAjB,EAAiBA,mBAAjB,kBAErBJ,EAAmB,CACrBtxG,YAAayoB,SAASzoB,GACtBoe,eAAgBhH,EAChBiH,wBAAyBqzF,IAC1B1lE,SANwB,OAOrB+lE,EAAeN,EAAoCr6F,EAAQs6F,GACjEN,EAA4BW,GARD,gDAU3B5nE,EAASZ,GAAe,EAAD,KAVI,yDAAH,sDAkBhC,MAAO,CACHqnE,gBACAI,8BACAK,yBACA3iF,aACAojF,6BACAE,gCAVoC,WACpCZ,EAA4B,CAAEzvG,MAAO,GAAI0V,QAAS,GAAI65F,kBAAkB,KAUxEC,2BACArjB,sBCAAmkB,CAAiBjyG,GARjB4wG,GADJ,GACIA,cACAI,GAFJ,GAEIA,4BACAK,GAHJ,GAGIA,uBACA3iF,GAJJ,GAIIA,WACAojF,GALJ,GAKIA,2BACAX,GANJ,GAMIA,yBACAa,GAPJ,GAOIA,gCACAlkB,GARJ,GAQIA,mBAGJ,GAAgCjsE,KAAzBnG,GAAP,qBACA,GAAkC8G,KAA3BrF,GAAP,qBACA,GAAmEkF,KAAnE,qBAAOvF,GAAP,MAA4C0xD,GAA5C,MAAiCzmE,UACjC,GAAuE8a,KAAvE,qBAAOujD,GAAP,MAA0CC,GAA1C,MAAmClvD,MACnC,GAA+B4L,KAAxBmvF,GAAP,qBACA,GAA6D5uF,KAA7D,qBAAOzE,GAAP,MAAoCszF,GAApC,MAAyBpqG,UAErBoP,IACAgzB,EAASZ,GAAepyB,KAGxBw5F,IACAxmE,EAASZ,GAAeonE,KAG5B,IAAMyB,GAA8B,SAACvuG,GACjC,OAAO,YAAIA,GAASyqB,MAAK,SAAChY,EAAGiY,GAAJ,OAAWjY,EAAE8Y,eAAiBb,EAAEa,eAAiB,GAAK,MAGnFhkB,qBAAU,WACN,GAAIoL,GAAM,CAAC,IAAD,QAC4B,EAAlC,aAAIA,GAAKhW,qBAAT,OAAI,EAAoB0B,SACpB2sG,GAAgB,UAACr4F,GAAKhW,qBAAN,aAAC,EAAoBC,aAClC,aAAI+V,GAAK1V,qBAAT,OAAI,EAAoBoB,SAAU,CAAC,IAAD,EACrC2sG,GAAgB,UAACr4F,GAAK1V,qBAAN,aAAC,EAAoBL,aAErCouG,GAAiB,MAOrB,GAJA,OAAIr4F,SAAJ,IAAIA,OAAM67F,sBACNvD,GAAY,OAACt4F,SAAD,IAACA,QAAD,EAACA,GAAM67F,sBAGvB,OAAI77F,SAAJ,IAAIA,OAAMrW,UAAW,CACjB,IAAMmyG,EAAsBtpF,KAAO8B,MAAM83C,QAAQpsD,GAAKrW,WACtD0vG,GAAsByC,GACtBtC,GAAiBx5F,GAAKrW,WAG1B,IAAMkC,EAAS,OAAGmU,SAAH,IAAGA,IAAH,UAAGA,GAAMhW,qBAAT,aAAG,EAAqB2J,kBACjC7H,EAAS,OAAGkU,SAAH,IAAGA,IAAH,UAAGA,GAAM1V,qBAAT,aAAG,EAAqBqJ,kBACvCqkG,EAAc,CAAEnsG,YAAWC,cAC3B6nC,EAAST,GAAc,OAAClzB,SAAD,IAACA,QAAD,EAACA,GAAMrT,iBAEnC,CAACqT,KAEJpL,qBAAU,WACFslG,MACe,OAAGA,SAAH,IAAGA,QAAH,EAAGA,GAAkB6B,UAEhC7D,EAAmB,GACnBE,GAAkB,GAClB6B,SAGT,CAACC,KAEJ,IAQM3hC,GAAkB,uCAAG,WAAOhyD,GAAP,SAAAzG,EAAA,6DACvBu7C,GAAiB,GADM,kBAIb/0C,GAAuB,CAAE9c,YAAW,OAAEwW,SAAF,IAAEA,QAAF,EAAEA,GAAMxW,YAAa+c,cAAaivB,SAJzD,OAKf8vB,IACAg0C,IAA2B,GANZ,gDASnB3lE,EAASZ,GAAe,EAAD,KATJ,yDAAH,sDAalBipE,GAA4B,WAC9BroE,EAASwT,GAAU,CAAEh8C,MAAO,cAAe0V,QAAS,8DAGlDo7F,GAA8B,WAChCtoE,EAASwT,GAAU,CAAEh8C,MAAO,cAAe0V,QAAS,6DAGlDq7F,GAA0B,WAC5BrE,GAAsB,IAGpBsE,GAAsB,uCAAG,WAAOh3F,EAAe6lB,EAASk/B,GAA/B,SAAApqD,EAAA,yDACvBq4F,GACAD,EAAmB,GAGvBL,GAAsB,GACtBO,GAAkB,GANS,UASnBluC,EATmB,gCAUbvjD,GAAwB,CAAExB,gBAAeC,YAAa4lB,EAASxhC,gBAAegsC,SAVjE,+CAYbtwB,GAAsB,CAAEC,gBAAeC,YAAa4lB,EAASxhC,gBAAegsC,SAZ/D,QAcvB0iE,EAAmB,KAdI,kDAgBvBA,EAAmB,GACnBvkE,EAASZ,GAAe,EAAD,KACvBqlE,GAAkB,GAlBK,0DAAH,0DAsBtBgE,GAA2B,SAAChwE,EAAOlZ,GACrC,GAAIsnF,GACAhC,IAA6B,OADjC,CAKA,IAAKe,GAGD,OAFAD,IAA2B,QAC3Bj+C,GAAiB,GAIrB,IAAMghD,EAA8B,OAAbjC,SAAa,IAAbA,OAAekC,oBAAoBh0G,OAAnC,OAA4C8xG,SAA5C,IAA4CA,QAA5C,EAA4CA,GAAekC,oBAAsB,GAClGC,EAA8B,OAAbnC,SAAa,IAAbA,OAAeoC,qBAAqBl0G,OAApC,OAA6C8xG,SAA7C,IAA6CA,QAA7C,EAA6CA,GAAeoC,qBAAuB,GACpGC,EAAU,sBAAOJ,GAAP,YAA0BE,IACpCG,EAAgB,OAAGD,QAAH,IAAGA,OAAH,EAAGA,EAAYx/F,MAAK,SAACmI,GAAD,OAAiBA,EAAYrd,KAAOqkC,EAAMrkC,MAC9E40G,EAAwB,2BACvBD,GADuB,IAE1BxpF,YACA4lC,oBAAqB5lC,EAAS,OAAGknF,SAAH,IAAGA,QAAH,EAAGA,GAAe9qG,2BAAlB,OAA+C8qG,SAA/C,IAA+CA,QAA/C,EAA+CA,GAAepqG,6BAGhG8nG,EAAiB6E,GACjB9E,GAAsB,KAOpB+E,GAA+B,WACjC9D,IAAoC,IAOlC1oC,GAAgC,uCAAG,iCAAAtwD,EAAA,6DAASzV,EAAT,EAASA,aAAcstB,EAAvB,EAAuBA,mBACxDrQ,EAAgB,CAACjd,GAEjBskE,KACArnD,EAAgBqyF,IAJiB,kBAQ3B/pC,GAAyB,CAC3BtoD,gBACAC,2BAA4BoQ,EAC5BnuB,YAAayoB,SAASzoB,KACvBgsC,SAZ8B,uDAcjC7B,EAASZ,GAAe,EAAD,KAdU,yDAAH,sDA0BhC8pE,GAAsB,uCAAG,+BAAA/8F,EAAA,6DAASwH,EAAT,EAASA,cAAerd,EAAxB,EAAwBA,OAAxB,kBAEjByxG,GAAqB,CACvBzxG,OAAQgoB,SAAShoB,GACjBqd,gBACA9d,YAAayoB,SAASzoB,KACvBgsC,SANoB,OAOvBsjE,IAAoC,GAPb,gDASvBnlE,EAASZ,GAAe,EAAD,KATA,yDAAH,sDAatB+pE,GAA0B,SAAC1wE,GAC7B4sE,GAAoB5sE,GACpBwsE,IAAuB,IAGrBmE,GAAyB,uCAAG,sBAAAj9F,EAAA,6DAC1Bq4F,GACAD,EAAmB,GAGvBU,IAAuB,GACvBR,GAAkB,GANY,kBASpB/vF,GAAe,CAAE7e,YAAW,OAAEuvG,SAAF,IAAEA,QAAF,EAAEA,GAAkBhxG,KAAMytC,SATlC,OAU1B0iE,EAAmB,KAVO,gDAY1BvkE,EAASZ,GAAe,EAAD,KACvBqlE,GAAkB,GAClBF,EAAmB,GAdO,yDAAH,qDA4BzB8E,GAA4B,SAAC9B,GAC/BhC,IAA+B,GAC/BoC,GAA2B,CAAE16F,OAAQu4F,GAAqB+B,wBAOxD+B,GAAsC,OAAb7C,SAAa,IAAbA,OAAekC,oBAAoBh0G,OAC5DszG,GAA4B,aAAkB,OAAbxB,SAAa,IAAbA,QAAA,EAAAA,GAAekC,sBAAuB,KACvE,GACAY,GAAsC,OAAb9C,SAAa,IAAbA,OAAeoC,qBAAqBl0G,OAC7DszG,GAA4B,aAAkB,OAAbxB,SAAa,IAAbA,QAAA,EAAAA,GAAeoC,uBAAwB,KACxE,GACAW,KAA2B,OAAC/C,SAAD,IAACA,IAAD,UAACA,GAAegD,+BAAhB,iBAAC,EAAwCxP,wBAAzC,QAAC,EAA0DtlG,QACtF+0G,KAA2B,OAACjD,SAAD,IAACA,IAAD,UAACA,GAAekD,+BAAhB,iBAAC,EAAwC1P,wBAAzC,QAAC,EAA0DtlG,QACtF8jD,GAAO,CAACorD,EAAOE,EAAWC,EAAWF,GAE3C,OACI,eAACxvE,GAAA,EAAD,CAAWyE,GAAI,CAAE9C,gBAAiB,SAAWkvC,gBAAc,EAAC5wC,UAAU,EAAtE,UACI,cAAC,GAAD,CACI32B,WAAYwiD,IAAcikB,MAAuBmgC,EACjDjuC,WAAYiuC,EACZnK,cAAeA,GACfF,QAAS9tF,GACTotF,cA/LgB,WACxB/xC,GAAiB,IA+LT0yC,OAAQgK,IAEZ,eAACzrD,GAAA,EAAD,CAAY/3C,MAAOgoC,EAAnB,UACI,eAACtU,GAAA,EAAD,WACKwmC,IACG,cAACtmC,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACI,cAAC,GAAD,CACIw8C,qBAAsB4D,GACtB3D,gBAAiBgC,GACjB9tD,MAAOkvD,OAIlB7vD,IACG,cAACmoB,EAAA,EAAD,UACI,cAACokB,GAAA,EAAD,CAAS7gB,SAtHP,SAAC1O,EAAGzoB,GAC1B41C,EAAa51C,IAqH6C,aAAW,kBAAjD,SACK63C,GAAKxpC,KAAI,SAAC4pC,GAAD,OACN,cAACC,GAAA,EAAD,CAAej8C,MAAOg8C,EAAKj4C,MAAOi4C,GAAxBA,aAM9B,cAAC5W,GAAA,EAAD,IACA,cAAC8W,GAAA,EAAD,CAAUhgB,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAU+T,UAAYp9C,MAAOijG,EAApE,SACI,cAACrvE,EAAA,EAAD,UACK0yE,IAA0Bc,GACvB,cAAC,GAAD,IAEA,cAACxzE,EAAA,EAAD,UACKiyE,IAAiBp6F,IACd,eAACioB,GAAA,EAAD,CAAWC,SAAS,KAApB,UACI,cAAC,GAAD,CACIhQ,WAAYA,GACZo/D,mBAAoBA,GACpBC,mBAAoBA,GACpBE,qBAzEN,SAAC72E,GAC/Bw4F,GAAuBx4F,GAEnBA,IAAWyQ,IAA2B6G,GAAW+9C,WAAa5kD,GAC9D6nF,IAA+B,GAE/BoC,GAA2B,CAAE16F,SAAQs6F,oBAAoB,KAoEzB1jB,kBAtHR,WAC5BkhB,IAAmB,OAuHephB,IAAsBC,KACpB,uCACO0lB,GAAuB30G,QACtB20G,GAAuBr6F,KAAI,SAACwpB,GAAD,OACvB,cAACjE,EAAA,EAAD,CAAoBnY,GAAI,EAAxB,SACI,cAAC,GAAD,CACIoc,MAAOA,EACPpiC,cAAa,OAAEgW,SAAF,IAAEA,QAAF,EAAEA,GAAMhW,cACrBM,cAAa,OAAE0V,SAAF,IAAEA,QAAF,EAAEA,GAAM1V,cACrB8oC,WAAU,OAAEgnE,SAAF,IAAEA,QAAF,EAAEA,GAAemD,cAC3BnQ,cAAegP,GACf/O,kBAAmByP,MAPjB1wE,EAAMrkC,SAWrBm1G,GAAuB50G,QACtB40G,GAAuBt6F,KAAI,SAACwpB,GAAD,OACvB,cAACjE,EAAA,EAAD,CAAoBnY,GAAI,EAAxB,SACI,cAAC,GAAD,CACIkD,WAAS,EACTkZ,MAAOA,EACPpiC,cAAa,OAAEgW,SAAF,IAAEA,QAAF,EAAEA,GAAMhW,cACrBM,cAAa,OAAE0V,SAAF,IAAEA,QAAF,EAAEA,GAAM1V,cACrB8oC,WAAU,OAAEgnE,SAAF,IAAEA,QAAF,EAAEA,GAAemD,cAC3BnQ,cAAegP,GACf/O,kBAAmByP,MARjB1wE,EAAMrkC,OAYvBo1G,IACG,cAACh1E,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACI,cAAC,GAAD,CACI29E,mBAAkB,OAAEyM,SAAF,IAAEA,QAAF,EAAEA,GAAegD,4BAI9CC,IACG,cAACl1E,EAAA,EAAD,CAAKnY,GAAI,EAAT,SACI,cAAC,GAAD,CACI29E,mBAAkB,OAAEyM,SAAF,IAAEA,QAAF,EAAEA,GAAekD,wCAY/E,cAAC5wD,GAAA,EAAD,CAAUhgB,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAU+T,UAAYp9C,MAAOmjG,EAApE,SACI,cAAC,GAAD,CACItvC,YAAW,OAAE99D,SAAF,IAAEA,QAAF,EAAEA,GAAeqY,YAC5BnP,SAAQ,OAAElJ,SAAF,IAAEA,QAAF,EAAEA,GAAeJ,KACzBqH,UAAWuoG,GACXttC,qBAAsB4D,GACtBy+B,iBAAkB,gBAAGvnF,EAAH,EAAGA,cAAH,OAAuBu1F,GAAuB,CAAEv1F,gBAAerd,OAAM,OAAEK,SAAF,IAAEA,QAAF,EAAEA,GAAeL,UACxG4mG,uBAAwBgI,GACxB/H,uBAAwB8L,GACxB7jB,cAAa,OAAEzuF,SAAF,IAAEA,IAAF,UAAEA,GAAeyvG,wBAAjB,aAAE,EAAiCyD,UAChDpN,mBAAmB,OAAC9lG,SAAD,IAACA,IAAD,UAACA,GAAeyvG,wBAAhB,QAAC,EAAiC1vG,kBAG7D,cAACqiD,GAAA,EAAD,CAAUhgB,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAU+T,UAAYp9C,MAAOojG,EAApE,SACI,cAAC,GAAD,CACIvvC,YAAW,OAAEp+D,SAAF,IAAEA,QAAF,EAAEA,GAAe2Y,YAC5BnP,SAAQ,OAAExJ,SAAF,IAAEA,QAAF,EAAEA,GAAeE,KACzBqH,UAAWuoG,GACXttC,qBAAsB4D,GACtBy+B,iBAAkB,gBAAGvnF,EAAH,EAAGA,cAAH,OAAuBu1F,GAAuB,CAAEv1F,gBAAerd,OAAM,OAAED,SAAF,IAAEA,QAAF,EAAEA,GAAeC,UACxG4mG,uBAAwBgI,GACxB/H,uBAAwB8L,GACxB7jB,cAAa,OAAE/uF,SAAF,IAAEA,IAAF,UAAEA,GAAe+vG,wBAAjB,aAAE,EAAiCyD,UAChDpN,mBAAmB,OAACpmG,SAAD,IAACA,IAAD,UAACA,GAAe+vG,wBAAhB,QAAC,EAAiC1vG,kBAG7D,cAACqiD,GAAA,EAAD,CAAUhgB,GAAI,CAAE9C,gBAAiB0T,EAAMM,UAAU+T,UAAYp9C,MAAOkjG,EAApE,SACI,cAAC,GAAD,CAAa5tG,SAAQ,OAAEmW,SAAF,IAAEA,QAAF,EAAEA,GAAMnW,SAAUmF,YAAW,OAAEgR,SAAF,IAAEA,QAAF,EAAEA,GAAMhR,mBAGlE,cAAC,GAAD,CACI8jC,OAAQsoB,EACRlwD,QAtTmB,WAC3BmwD,GAAiB,IAsTTxlB,SAAU0iC,GACVnsC,MAAOpsB,GACPslD,wBAAyBA,KAE5B34D,IAAgBmQ,GACb,cAAC,GAAD,CACI9S,cAAa,OAAEgW,SAAF,IAAEA,QAAF,EAAEA,GAAMhW,cACrBM,cAAa,OAAE0V,SAAF,IAAEA,QAAF,EAAEA,GAAM1V,cACrB86F,iBAAgB,OAAEp7F,SAAF,IAAEA,QAAF,EAAEA,GAAe2Y,YACjC0iF,iBAAgB,OAAE/6F,SAAF,IAAEA,QAAF,EAAEA,GAAeqY,YACjC86F,yBAAwB,OAAErD,SAAF,IAAEA,QAAF,EAAEA,GAAepqG,2BACzC0tG,yBAAwB,OAAEtD,SAAF,IAAEA,QAAF,EAAEA,GAAe9qG,2BACzCg2F,cAAeA,EACfxyD,OAAQ8kE,EACR1sG,QAASgxG,GACT3W,iBAAkB4W,GAClB3W,0BAA2BwW,GAC3BvW,qBAAsBwW,KAG1B,cAAC,GAAD,CACIjyG,cAAa,OAAEgW,SAAF,IAAEA,QAAF,EAAEA,GAAMhW,cACrBM,cAAa,OAAE0V,SAAF,IAAEA,QAAF,EAAEA,GAAM1V,cACrB86F,iBAAgB,OAAEp7F,SAAF,IAAEA,QAAF,EAAEA,GAAe2Y,YACjC0iF,iBAAgB,OAAE/6F,SAAF,IAAEA,QAAF,EAAEA,GAAeqY,YACjC86F,yBAAwB,OAAErD,SAAF,IAAEA,QAAF,EAAEA,GAAepqG,2BACzC0tG,yBAAwB,OAAEtD,SAAF,IAAEA,QAAF,EAAEA,GAAe9qG,2BACzCg2F,cAAeA,EACfxyD,OAAQ8kE,EACR1sG,QAASgxG,GACT3W,iBAAkB4W,GAClB3W,0BAA2BwW,GAC3BvW,qBAAsBwW,KAG9B,cAAC,GAAD,CAAuBnpE,OAAQylE,GAA2BrtG,QA7QvB,WACvCstG,IAA6B,MA6QxBC,IACG,cAAC,GAAD,CACIvtG,QA9OiB,WAC7BwtG,IAAmB,IA8OP5lE,OAAQ2lE,GACRzuG,cAAeA,GACfM,cAAeA,KAGvB,cAAC,GAAD,CACIqtC,SAAUolE,GACVnlE,YAAY,MACZF,YAAY,KACZzsC,KAAM0tG,GACNztG,QAlMyB,WACjC0tG,IAAuB,IAkMfztG,MAAM,4CACN0V,QAAQ,wDAEZ,cAAC,GAAD,CACI82B,SAAU,kBAAMqlE,IAA0B,IAC1CplE,YAAY,MACZF,YAAY,KACZzsC,KAAMguG,GACN/tG,QAAS,kBAAM8xG,IAA0B,IACzC7xG,MAAM,kBACN0V,QAAQ,sEAEZ,cAAC,GAAD,CACIiyB,OAAQ6nE,GAAyBD,iBACjCxvG,QAASswG,GACT36F,QAAS85F,GAAyB95F,QAClC1V,MAAOwvG,GAAyBxvG,Y,UE5gBjCwyG,GAJDzpG,cAAiB,SAAeinB,EAAOzM,GACjD,OAAO,cAAC,KAAD,aAAUunB,UAAW,EAAGvnB,IAAKA,EAAKyY,QAAQ,UAAahM,OC4MnDyiF,GAzLc,SAAC,GAA0D,IAAxDrjC,EAAuD,EAAvDA,YAAapvE,EAA0C,EAA1CA,MAAO2nC,EAAmC,EAAnCA,OAAQ5nC,EAA2B,EAA3BA,QAASwuD,EAAkB,EAAlBA,YAC3D/lB,EAAWC,wBACT5iB,EAAcF,GAAdE,UACA2oC,EAAuB9oC,GACvBsoB,EAA4B1+B,GAAhB07D,EAAgB17D,GACpC,EAA0ChG,qBAA1C,mBAAO7I,EAAP,KAAsB6uE,EAAtB,KACA,EAAgDhmE,qBAAhD,mBAAOo/B,EAAP,KAAyBC,EAAzB,KACA,EAAgDr/B,qBAAhD,mBAAO+lD,EAAP,KAAyBC,EAAzB,KAEA,EAAqB9uC,KAAd3F,EAAP,oBAEMmuB,EAAgB,CAClBjqC,KAAM,GACNmJ,gBAAiB,GACjBynE,yCAA0C,EAC1CxnE,UAAW,GACXzJ,SAAU,GACV6hE,kBAAmBl5C,QAGvB,EAKI8hB,aAAQ,CAAEH,gBAAeI,KAAM,QAJ/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQC,EAFzB,EAEyBA,YACrBzL,EAHJ,EAGIA,QACAsL,EAJJ,EAIIA,MAGJ7/B,qBAAU,WACN,GAAI2lE,EAAa,CACb,IACIrwE,EAOAqwE,EAPArwE,KACAkJ,EAMAmnE,EANAnnE,UACAxG,EAKA2tE,EALA3tE,kBACAkuE,EAIAP,EAJAO,yCACAznE,EAGAknE,EAHAlnE,gBACe0nE,EAEfR,EAFA3uE,cACA0H,EACAinE,EADAjnE,UAGAk4D,EAAO,KACX,GAAIp4D,EAAW,CACX,IAAM4nE,EAAe3oD,GAAqB,CAAEjf,cAC5Co4D,EAAOh5C,KAAOwoD,EAAc,YAGhC,IAAIC,EAAc,GACd3nE,IACA2nE,EAAc1+D,GAASU,MAAK,SAACi+D,GAAD,OAAaA,EAAQlsE,cAAgBsE,MAGrE,IACM8hC,EAAW,CACblrC,OACA4wE,2CACAjxE,UAJkC,OAAjB+C,QAAiB,IAAjBA,OAAA,EAAAA,EAAmB9C,aAAnB,OAAgC8C,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAmB7C,mBAAoB,GAKxF2hE,kBAAmBF,EACnBl4D,UAAW2nE,EAAYlzE,GACvBsL,gBAAiBA,GAAmB,IAGxConE,EAAiBM,GACjBjnC,EAAoBlnC,GACpB6tD,EAAoBrlB,GACpBX,EAAMW,MAEX,IAEH,IAAMC,EAAgB,uCAAG,WAAOC,GAAP,iCAAAx1B,EAAA,yDACf4E,EADe,eACH4wB,GACVo2B,EAAwFp2B,EAAxFo2B,kBAA6ByP,EAA2D7lC,EAArEzrC,SAAwBixE,EAA6CxlC,EAA7CwlC,yCAE/ClvE,IAAkBuqE,IACZiF,EAAY1P,EAAkB2P,QAC9B3oD,EAAY0oD,EAAU1oD,YACtBsoD,EAAeI,EAAUhmD,SAAS1C,EAAW,WAC7CG,EAAQmoD,EAAan8D,IAAI,QACzBiU,EAAUkoD,EAAan8D,IAAI,WAEjC6F,EAAKtR,UAAL,UAAoByf,EAApB,YAA6BC,IAGjCpO,EAAKo2D,yCAA2C7oD,SAAS6oD,IAErDlmC,EAAY/qC,SAhBK,iCAiBeinC,GAAgBqqC,GAjB/B,OAiBX5lC,EAjBW,OAkBjB7wB,EAAK9X,kBAAoB2oC,EAlBR,wBAoBjB7wB,EAAK9X,kBAAoBinC,EApBR,eAuBjBjoC,IAAkButC,WACXz0B,EAAKpR,iBACLoR,EAAKtR,kBAGTsR,EAAK7a,gBACL6a,EAAKgnD,yBACLhnD,EAAK/Y,UA9BS,oBAiCXqa,EAAW,CAAE/b,OAAM,OAAEswE,QAAF,IAAEA,OAAF,EAAEA,EAAaxyE,GAAI2c,OAAM/Y,UAAS,OAAE4uE,QAAF,IAAEA,OAAF,EAAEA,EAAa5uE,YAAa6pC,SAjCtE,2DAmCjB7B,EAASZ,GAAe,EAAD,KAnCN,2DAAH,sDAiDtB,OACI,cAAC,GAAD,CAAeD,OAAQA,EAAQ3nC,MAAOA,EAAOkuD,SAAS,OAAOnuD,QAN3C,WAClBA,IACAupC,EAAM+lB,IAI+ElB,WAXpE,WACjB9kB,EAAaa,EAAbb,GACAklB,KASA,SACI,cAACrtB,GAAA,EAAD,CAAMxC,eAAe,SAAS8L,GAAI,EAAlC,SACI,+BACI,eAAClF,GAAA,EAAD,CAAO/D,GAAI,CAAE5c,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAA/B,UACI,cAAC,aAAD,CAAY0gB,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,qBACA,eAACttB,GAAA,EAAD,CAAMqE,GAAI,EAAGpE,WAAS,EAAC+D,QpLZb,EoLYV,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACIrH,UAAQ,EACRvkC,KAAK,OACLsG,MAAM,YACN44B,WAAYuL,EAAOzqC,KACnBR,YAAU,EACVy/B,QAASA,MAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CAAU3iC,KAAK,WAAWsG,MAAM,aAAamQ,QAASg0B,EAAO9qC,SAAUs/B,QAASA,SAGvFv9B,IAAkBuqE,GACf,qCACI,cAAC,aAAD,CAAYzlC,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,mCACA,eAACttB,GAAA,EAAD,CAAMqE,GAAI,EAAGpE,WAAS,EAAC+D,QpL9BrB,EoL8BF,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,YACLsG,MAAM,MACN45B,QAAS7tB,GACTxK,QAAQ,YACRg8B,aAAW,EACX5E,QAASA,MAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CAAY3iC,KAAK,oBAAoBsG,MAAM,mBAAmB24B,QAASA,YAKvF,cAAC,aAAD,CAAYuH,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,+BACA,eAACttB,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QpLhDN,EoLgDV,UACI,cAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAIiJ,GAAI,EAAvB,SACI,cAAC,GAAD,CACI5rC,KAAK,2CACLsG,MAAM,4BACN45B,QAAShuB,GACTrK,QAAQ,kCACRg8B,aAAW,EACX5E,QAASA,MAGjB,cAACkD,GAAA,EAAD,CAAME,MAAI,EAACuJ,GAAI,EAAGjJ,GAAI,GAAtB,SACI,cAAC,GAAD,CACI3iC,KAAK,kBACLsG,MAAM,WACNw9B,WAAW,mGACX7E,QAASA,mBC3E9BgyB,GA1GI,SAAC,GAAqB,IAAD,EAAlBof,EAAkB,EAAlBA,YACZj9B,EAAQoE,eACN1wB,EAAcF,GAAdE,UACA2oC,EAAiD9oC,GAA7By8B,EAA6Bz8B,GAAf08B,EAAe18B,GACzD,EAA0Cpc,oBAAS,GAAnD,mBAAO2mD,EAAP,KAAsBC,EAAtB,KACA,EAAwC5mD,oBAAS,GAAjD,mBAAO0lE,EAAP,KAAqBC,EAArB,KAEA,EAAqHG,GAAe,GAA5HnnE,EAAR,EAAQA,UAAWE,EAAnB,EAAmBA,UAAWD,EAA9B,EAA8BA,gBAAiBzG,EAA/C,EAA+CA,kBAAmB1C,EAAlE,EAAkEA,KAAM4wE,EAAxE,EAAwEA,yCAClEK,GAAgC,OAAjBvuE,QAAiB,IAAjBA,OAAA,EAAAA,EAAmB9C,aAAnB,OAAgC8C,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAmB7C,mBAAoB,GACtF8zG,EAAqB9gG,GAAa+9D,EAA0C1+D,IAE9EovD,EAAO,KACX,OAAI+O,QAAJ,IAAIA,KAAannE,YACbo4D,EAAOn5C,GAAqB,CAAEjf,YAAWkf,OAAQ,QAGrD,IAAI2oD,EAAc,GAClB,OAAIV,QAAJ,IAAIA,KAAajnE,YACb2nE,EAAc1+D,GAASU,MAAK,SAACi+D,GAAD,OAAaA,EAAQlsE,cAAgBsE,MAGrE,IAIMuoD,EAAyB,WAC3BR,GAAiB,IAOrB,OACI,eAAClzB,EAAA,EAAD,CAAKD,SAAU,IAAf,UACI,eAACC,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgB4f,aAAa,SAAhE,UACI,cAAC,aAAD,CAAY9c,MAAM,QAAQ1O,SAAUjN,EAAW0H,KAAMihC,EAArD,qBACA,cAAC/K,GAAA,EAAD,CAAYpyB,QAhBE,WACtB6+B,GAAiB,IAe+B,aAAW,oBAAnD,SAAuE,cAAC,WAAD,CAAU1uB,MAAO2Q,EAAMM,UAAUke,gBAAiBpjC,KAAM,UAEnI,cAAC2T,GAAA,EAAD,IACA,eAACoE,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,GAAhB,UACI,eAAC3P,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,qBACA,eAACxxB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgB4f,aAAa,SAAhE,UACI,eAACthB,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,uBACA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SAAoDrjD,OAExD,eAACi+B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,wBACA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,SAAoD4tB,aAIhE,cAACvlC,GAAA,EAAD,CAASlJ,GAAI,CAAE1c,GAAI,KACnB,eAACmY,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,mCACA,eAACxxB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAnC,UACI,eAAC1B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,iBACA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,mBAAoD0tB,SAApD,aAAoD,EAAajsE,iBAErE,eAACm5B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,8BACA,cAAC,aAAD,CAAYjhB,MAAM,OAAOja,SAAUjN,EAAW0H,KAAM60B,EAApD,SAAiEie,aAI7E,cAAC51B,GAAA,EAAD,CAASlJ,GAAI,CAAE1c,GAAI,KACnB,eAACmY,EAAA,EAAD,WACI,cAAC,aAAD,CAAYuI,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAMihC,EAA9C,+BACA,eAACxxB,EAAA,EAAD,CAAK/6B,QAAQ,OAAOy8B,eAAe,gBAAgB4f,aAAa,SAAhE,UACI,eAACthB,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,cAAC,aAAD,CAAYvkB,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,uCACA,cAAC,aAAD,CAAYl7B,SAAUjN,EAAW0H,KAAM60B,EAAvC,gBAAoDswD,QAApD,IAAoDA,OAApD,EAAoDA,EAAoB7uG,iBAE5E,eAACm5B,EAAA,EAAD,CAAKqa,KAAM,EAAX,UACI,eAACra,EAAA,EAAD,CAAK/6B,QAAQ,OAAOi7B,WAAW,SAA/B,UACI,cAAC,aAAD,CAAYpK,SAAUjN,EAAW0H,KAAM40B,EAAc3gB,MAAO2Q,EAAMM,UAAUub,SAA5E,sBACA,cAACvK,GAAA,EAAD,CACIngB,UAAWp7B,EACXmpB,QApDC,WAC7B49C,GAAiBD,IAiDO,SAIKA,EAAe,cAAC,oBAAD,CAAmBzhD,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,kBAAsB,cAAC,iBAAD,CAAgBpjC,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,uBAGlJzoD,EACG,cAAC,aAAD,CAAYq5B,GAAI,CAAE8V,KAAM,GAAKvkB,SAAUjN,EAAW0H,KAAM60B,EAAxD,SAAqE4sB,EAAe9mE,EAAkB,aAEtG,cAAC,aAAD,CAAY4qB,SAAUjN,EAAW0H,KAAM60B,EAAvC,8BAMpB,cAAC,GAAD,CACIpiD,MAAM,oBACN2nC,OAAQsoB,EACRmf,YAAaA,EACbrvE,QAAS2wD,EACTnC,YAAamC,QC/CdiiD,GAzDa,SAAC,GAAoD,IAAlDhrE,EAAiD,EAAjDA,OAAQirE,EAAyC,EAAzCA,mBAAoBC,EAAqB,EAArBA,eAC/ChtF,EAAcF,GAAdE,UACAu8B,EAAe18B,GACvB,EAA0Dpc,oBAAS,GAAnE,mBAAOwpG,EAAP,KAA8BC,EAA9B,KAEA,EAKI5pE,aAAQ,CAAEH,cANQ,CAAEtzB,QAAS,IAMJ0zB,KAAM,QAJ/BC,EADJ,EACIA,aADJ,IAEIE,UAAaC,EAFjB,EAEiBA,OAAQC,EAFzB,EAEyBA,YACrBzL,EAHJ,EAGIA,QACAsL,EAJJ,EAIIA,MAGE0pE,EAAY,WACd1pE,EAAM,CAAE5zB,QAAS,KACjBq9F,GAAyB,IAGvBvpD,EAAiB,SAACrf,GACpByoE,EAAmBzoE,EAAWz0B,QAASo9F,GACvCE,KAgBJ,OACI,cAAC,GAAD,CACIrrE,OAAQA,EACR3nC,MAAM,oBACNkuD,SAAS,OACTnuD,QAlBqB,WACzB8yG,IACAG,KAiBI7kD,WAVkB,WACtB9kB,EAAamgB,EAAbngB,IAUI+kB,sBAAqB,OAAC3kB,QAAD,IAACA,KAAa/zB,SANvC,SAQI,eAAC4vB,GAAA,EAAD,CAAO/D,GAAI,CAAEoL,EAAG,EAAGnC,GAAI,IAAvB,UACI,cAAC,aAAD,CAAYjF,GAAI,EAAGzS,SAAUjN,EAAW0H,KAAM60B,EAA9C,sDACA,cAAC,GAAD,CAAOpkB,QAASA,EAASj/B,KAAK,UAAU6rC,WAAS,EAACC,QAAS,EAAG5M,WAAYuL,EAAO9zB,QAASrQ,MAAM,YAChG,cAAC6nC,GAAA,EAAD,CACI3L,GAAI,CAAEiJ,GAAI,GACVxM,QAAS,cAACmmB,GAAA,EAAD,CAAUC,QAAS0uD,EAAuBvyE,SAtBpC,SAAC3N,GAC5BmgF,EAAyBngF,EAAMhP,OAAOwgC,UAqB2DrlD,KAAK,qBAC1FsG,MAAO,cAAC,aAAD,CAAYytB,SAAUjN,EAAW0H,KAAM60B,EAAvC,sCCqDZ6wD,GAnGa,SAAC,GAAwF,IAAtF74F,EAAqF,EAArFA,SAAU6qE,EAA2E,EAA3EA,iBAAkBiuB,EAAyD,EAAzDA,YAAaC,EAA4C,EAA5CA,aAAcC,EAA8B,EAA9BA,wBAC5EjhE,EAAQoE,eACNp1C,EAAkDiZ,EAAlDjZ,WAAYM,EAAsC2Y,EAAtC3Y,kBAAmBC,EAAmB0Y,EAAnB1Y,eACvC,EAAyEP,GAAc,GAA/EC,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,OAAQC,EAAxB,EAAwBA,aAAcC,EAAtC,EAAsCA,kBAAmBC,EAAzD,EAAyDA,YACjDI,EAA2BqjF,EAA3BrjF,gBAAiBC,EAAUojF,EAAVpjF,MACjB8kB,EAAWhV,GACbgnC,EAAU/xB,GAAW,CAACxlB,EAAQC,IAC9B8mC,EAAWphB,GAAW4xB,GACtB9xB,EAAmC,SAApB,OAARshB,QAAQ,IAARA,OAAA,EAAAA,EAAU/qC,eAA0B,WAAa+qC,EAExD+4C,EADW1/E,IAAgBmlB,EACH,YAAc,cACtC4D,EAAQL,GAA4B,CAAE3oB,oBAAmBC,cAAa2oB,kBAAkB,IACxFxnB,EAASiP,GAAatQ,EAAcmP,IACpC/R,EAA4B,OAAjB+C,QAAiB,IAAjBA,KAAmB7C,iBAAnB,iBAAyC6C,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAmB7C,kBAAqB,GAC5FiiF,EAAOj/E,IAAoBC,EAApB,WAAgCA,GAAhC,WAA8CD,EAA9C,aAAkEC,GAEzEwxG,EADQhsF,KAAO8B,MACoB83C,QAAN,OAAcv/D,QAAd,IAAcA,OAAd,EAAcA,EAAgBC,WAAY,OACvE2xG,GAA0BF,GAA2BC,EAE3D,OACI,cAACxxB,GAAA,EAAD,CAAMtgD,GAAI,CAAE0R,aAAc,EAAGgD,UAAW,QAAxC,SACI,eAAC6rC,GAAA,EAAD,WACI,eAAC9kD,EAAA,EAAD,CAAKuI,GAAI,IAAT,UACI,eAACrE,GAAA,EAAD,CAAMC,WAAS,EAACoE,GAAI,EAApB,UACI,eAACrE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAS,YAAYvF,KAAK,sBAAsBiU,MAAO2Q,EAAMM,UAAUub,SAAnF,kBAGA,cAAC,aAAD,CAAYl7B,SAAS,UAAUvF,KAAK,cAApC,SACKszD,OAGT,eAAC3/C,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAS,YAAYvF,KAAK,sBAAsBiU,MAAO2Q,EAAMM,UAAUub,SAAnF,oBAGA,cAAC,aAAD,CAAYl7B,SAAS,UAAUvF,KAAK,cAApC,gBACK5qB,QADL,IACKA,OADL,EACKA,EAAQkB,iBAGjB,eAACq9B,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAS,YAAYvF,KAAK,sBAAsBiU,MAAO2Q,EAAMM,UAAUub,SAAnF,uBAGA,cAAC,aAAD,CAAYl7B,SAAS,UAAUvF,KAAK,cAApC,SACK1G,UAIb,eAACqa,GAAA,EAAD,CAAMC,WAAS,EAAf,UACI,eAACD,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAS,YAAYvF,KAAK,sBAAsBiU,MAAO2Q,EAAMM,UAAUub,SAAnF,SACKkzB,IAEL,cAAC,aAAD,CAAYpuD,SAAS,UAAUvF,KAAK,cAApC,SACKhD,OAGR7rB,GACG,eAACwiC,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,EAAf,UACI,cAAC,aAAD,CAAY5O,SAAS,YAAYvF,KAAK,sBAAsBiU,MAAO2Q,EAAMM,UAAUub,SAAnF,sBAGA,cAAC,aAAD,CAAYl7B,SAAS,UAAUvF,KAAK,cAApC,SACK7uB,aAMrB,eAACs+B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOojE,cAAc,SAAlC,UACI,cAAChiC,GAAA,EAAD,CACIC,SAAUgwE,EACV/lF,KAAK,QACLyO,QAAQ,OACR3K,QAAS6hF,EACT3vE,iBAAkB,cAAC3E,GAAA,EAAD,CAAkB4C,MAAM,UAAUjU,KAAM,KAC1DgU,GAAI,CAAEgE,GAAI,GANd,4BAUA,cAAC,aAAD,CAAYzS,SAAS,YAAYvF,KAAK,eAAegY,GAAI,GAAzD,4CAGA,cAAC,SAAD,CAAQlU,QAAS8hF,EAAcrgF,SAAS,OAAxC,SACI,cAAC,aAAD,CAAYA,SAAS,YAAYvF,KAAK,eAAtC,wCC5ElBw0D,GAAc,SAAC,GAUd,IATHwxB,EASE,EATFA,YACA50C,EAQE,EARFA,cACAy0C,EAOE,EAPFA,wBACAI,EAME,EANFA,sBACAC,EAKE,EALFA,gBACAN,EAIE,EAJFA,aACAO,EAGE,EAHFA,KACA9yG,EAEE,EAFFA,SACA0/E,EACE,EADFA,eAEMnuC,EAAQoE,eACR0hB,EAAWjE,KACTl1D,EAAWypC,eAAXzpC,OACF0pC,EAAWC,wBAEjB,EAAsDn/B,oBAAS,GAA/D,mBAAOqqG,EAAP,KAA4BC,EAA5B,KACA,EAAgDtqG,mBAAS,IAAzD,mBAAO6kE,EAAP,KAAyBC,EAAzB,KACA,EAA0D9kE,oBAAS,GAAnE,mBAAOqzC,EAAP,KAA8BC,EAA9B,KACA,EAAoDtzC,qBAApD,mBAAOuqG,EAAP,KAA2BC,EAA3B,KAEA,EAAqD/zF,KAArD,mBAAOvG,EAAP,KAAgC61D,EAAhC,KAAqBjpE,UACrB,EAA0Dob,KAA1D,mBAAO1E,EAAP,KAAmCyxD,EAAnC,KAAwBnoE,UAClB2nE,EAAqBsB,GAAmBd,EACxCjxB,EAAY,iDAAsCu2D,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAoB/xG,YAA1D,kBAGZkgF,EAAiB,OAGvBv4E,qBAAU,WACN,UAAI7I,QAAJ,IAAIA,KAAUzD,OAAQ,CAClB,IAAM42G,EAAiBjmF,GAA0BltB,GACjDwtE,EAAoB2lC,MAEzB,CAACnzG,IAEJ,IA8BMozG,EAAsB,uCAAG,sBAAAr/F,EAAA,yDAC3BioC,GAAyB,KA3CQ,KAarB,OAARh8C,QAAQ,IAARA,OAAA,EAAAA,EAAUzD,UACVqrC,EACIwT,GAAU,CACNoB,SAAS,EACTp9C,MAAO,QACP0V,QAAQ,gDAGT,IAqBgB,0CAMboH,EAAc,CAAEhe,SAAQie,UAAW82F,EAAmB92F,YAAastB,SANtD,OAOnBypE,EAAsB,MAPH,gDASnBtrE,EAASZ,GAAe,EAAD,KATJ,yDAAH,qDActBqsE,EAAuB,uCAAG,sBAAAt/F,EAAA,yDAC5Bi/F,GAAuB,KAxDK,KA2BhB,OAARhzG,QAAQ,IAARA,OAAA,EAAAA,EAAUzD,UACVqrC,EACIwT,GAAU,CACNoB,SAAS,EACTp9C,MAAO,QACP0V,QAAQ,8CAGT,IAoBiB,0CAMd8D,EAAW,CAAE1a,SAAQ2a,QAAS,CAAEpc,SAAUw2G,EAAmBx2G,YAAcgtC,SAN7D,OAOpBypE,EAAsB,MAPF,gDASpBtrE,EAASZ,GAAe,EAAD,KATH,yDAAH,qDA0BvBssE,EAA4B,uCAAG,sBAAAv/F,EAAA,sDACjCi/F,GAAuB,GADU,2CAAH,qDASlC,OACI,eAAC52E,EAAA,EAAD,CAAKwN,GAAI,EAAGqc,GAAG,OAAf,UACI,eAAC3lB,GAAA,EAAD,CAAMC,WAAS,EAAC+D,QAAS,EAAzB,UACI,eAAChE,GAAA,EAAD,CAAME,MAAI,EAACM,GAAI,GAAI8D,GAAI,IAAKjE,GAAI,CAAE,iBAAkB,CAAEslB,GAAI,IAA1D,UACI,cAAC7pB,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAAC,aAAD,CAAYzS,SAAS,YAAYvF,KAAK,qBAAqBiU,MAAO2Q,EAAMM,UAAU2B,MAAlF,wCAIJ,cAAC,GAAD,CACIh6B,SAAUm5F,EACVC,sBAAuBA,EACvBvuB,iBAAkByuB,EAClBN,wBAAyBA,EACzBF,YAAaO,EACbN,aAAcA,OAGtB,eAACjyE,GAAA,EAAD,CACIE,MAAI,EACJM,GAAI,GACJ8D,GAAI,IACJjE,GAAI,CAAE,iBAAkB,CAAEslB,GAAIoR,EAAW+pB,EAAiB,EAAG9qC,GAAI+gB,EAAW+pB,EA9GtE,SA0GV,UAMI,cAAChlD,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAAC,aAAD,CAAYzS,SAAS,YAAYvF,KAAK,qBAAqBiU,MAAO2Q,EAAMM,UAAU2B,MAAlF,wBAIH25B,EACG,cAAC,GAAD,IAEA,qCACI,cAAC,GAAD,CACIuS,eAAgBA,EAChBD,SAAUz/E,EACV+9D,cAAeA,EACfhhB,cA1CA,SAACw2D,GACzBL,EAAsBK,GACtBv3D,GAAyB,MA0CJ+hB,GACG,cAAC,SAAD,CACIttC,QA1DA,WAC5BuiF,GAAuB,IA0DKryE,GAAI,CAAEyT,cAAe,QACrB6wB,UAAW,cAAC,UAAD,CAASt4C,KAAM,GAAIiU,MAAO2Q,EAAMM,UAAUke,kBAHzD,SAKI,cAAC,aAAD,CACIpvB,GAAI,CAAEC,MAAO2Q,EAAMM,UAAUke,iBAC7B79B,SAAS,YACTvF,KAAK,aACLiU,MAAO2Q,EAAMM,UAAU2B,MAJ3B,2CAcxB,cAAC,GAAD,CACIp0C,MAAM,qBACND,QAASm0G,EACTvsE,OAAQgsE,EACRxlD,WAAY8lD,EACZ/lD,SAAS,OALb,SAOI,cAAC5oB,GAAA,EAAD,CAAO/D,GAAI,CAAEiJ,GAAI,EAAGmC,EAAG,GAAvB,SACI,cAAC,GAAD,CACIhJ,iBAjFW,SAAC7b,GAC5BgsF,EAAsBhsF,IAiFN8b,gBAAiBuqC,EACjBzqC,mBAAiB,EACjBr+B,MAAM,4BAIlB,cAAC,GAAD,CACImnC,SAAUwnE,EACVvnE,YAAY,UACZF,YAAY,SACZzsC,KAAM68C,EACN58C,QArGe,WACvB68C,GAAyB,IAqGjB58C,MAAM,iBACN0V,QAAS4nC,QASzBykC,GAAYnwD,aAAZ,epMq1BmD,CAC/C4hF,uBAAuB,IoMl1BZzxB,I,SAAAA,M,oBCpNAqyB,GAjBkB,SAACpkF,GAC9B,IAAQq3C,EAAqCr3C,EAArCq3C,aAAc/jC,EAAuBtT,EAAvBsT,SAAU/C,EAAavQ,EAAbuQ,SAEhC,OACI,cAAC8zE,GAAA,EAAD,CACIjrG,MAAOi+D,EACPitC,WAAS,EACT/zE,SAAUA,EACV,aAAW,kBAJf,SAMK5vB,GAAwB8G,KAAI,SAACwoB,GAAD,OACzB,cAACs0E,GAAA,EAAD,CAAcjxE,SAAUA,EAA0Bl6B,MAAO62B,EAAOrjC,GAAhE,SAAqEqjC,EAAOp8B,aAArCo8B,EAAOrjC,UC0F/CmuE,GA3FK,SAAC,GAAuC,IAArCjsE,EAAoC,EAApCA,OAAQuyC,EAA4B,EAA5BA,aAAcvpC,EAAc,EAAdA,QACnC0gC,EAAWC,wBACT0gC,EAAchlD,GACtB,EAA4B7a,mBAAS,IAArC,mBAAOuoD,EAAP,KAAe2iD,EAAf,KACA,EAA4DlrG,mBAAS,GAArE,mBAAO+8D,EAAP,KAA+BoD,EAA/B,KAEA,EACI9qD,KADJ,mBAAOvH,EAAP,YAAsCq9F,EAAtC,EAAgC5/F,KAAsC6/F,EAAtE,EAA0D9rD,WAAgD+rD,EAA1G,EAAmGn/F,MAEnG,EAAiDkJ,GAAwB5f,EAAQ,CAAE4pD,KAAMrX,IAA3EujE,EAAd,EAAQ//F,KAAoBzO,EAA5B,EAA4BA,UAAWoP,EAAvC,EAAuCA,MACvC,EAA4CyzD,GAAmB,CAC3DzoE,UAAS,OAAEsH,QAAF,IAAEA,OAAF,EAAEA,EAASlL,GACpBia,mBAAmB,EACnBqjD,qBAAsB7oB,EACtB63B,WAAY73B,IAJR+0B,EAAR,EAAQA,aAAc4B,EAAtB,EAAsBA,kBAOlB2sC,KACwC,OAAvBA,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBl/F,UAAW0zD,GAEjD3gC,EAASZ,GAAe+sE,KAI5Bn/F,KACsB,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAOC,UAAW0zD,GAE/B3gC,EAASZ,GAAepyB,KAIhC,IAAMq/F,EAAsB,uCAAG,WAAOjiF,GAAP,iBAAAje,EAAA,yDACrB0yD,EAAevgD,SAAQ,OAAC8L,QAAD,IAACA,GAAD,UAACA,EAAOhP,cAAR,aAAC,EAAexa,OACxCqrG,GAAsBptC,IAAiB/2D,GAFjB,gCAGjB8G,EAAsBtY,GAHL,OAM3B2qE,EAA0BpC,GANC,2CAAH,sDAS5B59D,qBAAU,WACN,GAAImrG,EAAc,CACd,IAAME,EAAqBF,EAAa/iD,OAAOp6C,KAAI,SAACrY,GAChD,IAAM21G,EAAsBH,EAAa1jD,YAAYvlC,QAAO,SAACsV,GAAD,OAAWA,EAAM7jB,UAAYhe,EAAMge,WAC/F,OAAO,2BACAhe,GADP,IAEI8C,QAAS6yG,OAGjBP,EAAUM,MAEf,CAACF,IAEJ,IAAM12G,GACU,OAAZkoE,QAAY,IAAZA,OAAA,EAAAA,EAAc0E,YAAap7D,KAA0C,OAAZklG,QAAY,IAAZA,OAAA,EAAAA,EAAc9pC,YAAap7D,GAExF,OACI,cAACstB,EAAA,EAAD,UACK52B,GAAa4hE,GAAqB0sC,EAC/B,cAAC,GAAD,IAEA,qCACKE,GAAgB12G,GACb,cAAC8+B,EAAA,EAAD,CAAKuI,GAAI,EAAT,SACI,cAAC,GAAD,CACI8hC,aAAchB,EACd/iC,SAAUoxE,EACVn0E,SAAUs0E,MAItB,cAAC,GAAD,CACIxjE,aAAcA,EACdvpC,QAASA,EACTs+D,aAAcA,EACdL,eAAgB0uC,EAChBpuC,uBAAwBA,EACxBnoE,oBAAqBA,EACrBioE,aAActU,EACdS,+BAA6B,EAC7B9xD,UAAS,OAAEsH,QAAF,IAAEA,OAAF,EAAEA,EAASlL,WCyB7Bo4G,GAzGQ,SAAC,GAWjB,IAVH3zD,EAUE,EAVFA,IACAh5C,EASE,EATFA,SACApH,EAQE,EARFA,KACAC,EAOE,EAPFA,OACAV,EAME,EANFA,UACAF,EAKE,EALFA,YACAq+D,EAIE,EAJFA,cACA4T,EAGE,EAHFA,YACAlhC,EAEE,EAFFA,aACAluC,EACE,EADFA,eAEMgvC,EAAQoE,eACR0hB,EAAWjE,KACTluC,EAAuBH,GAAvBG,QAASD,EAAcF,GAAdE,UACT2sD,EAAoC9sD,GAAvB8oC,EAAuB9oC,GACpCw6D,EAA+C97D,GAArCuuD,EAAqCvuD,GAA5By6B,EAA4Bz6B,GAAnBsuD,EAAmBtuD,GAATwuD,EAASxuD,GACjD6wF,EAA2Bh9C,EAAWpyC,EAAYC,EAClDovF,EAAuBj9C,EAAWzJ,EAAqBgkB,EACvD2iC,EAAgBl9C,GAAY,OAC5Bm9C,EAAgBn9C,GAAY,GAC5Bo9C,EAAcp9C,GAAY,IAC1Bh1D,EAAM,UAAMhC,GAAQ,EAAd,cAAqBC,GAAU,GACrC0qF,EAAYv6C,EAAeuhC,EAAOF,EAClC4iC,EAAW,2BAAuB90G,GAClCgxE,EAAqBplD,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBC,cAAjB,OAAgCD,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBE,oBAClFouE,EAAqBrlD,GAAa,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAgBG,cAAjB,OAAgCH,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAgBI,oBAExF,OACI,qCACI,cAACy5B,EAAA,EAAD,CAAK2B,QAAQ,QAAb,SACI,cAAC7B,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAACC,EAAA,EAAD,CAAKpY,GAAI,EAAGqY,SAAS,OAAOh7B,QAAQ,OAAOy8B,eAAe,gBAA1D,UACI,eAAC1B,EAAA,EAAD,CAAKD,SAAS,MAAd,UACI,cAAC6X,GAAA,EAAD,CAAM3yB,KAAMqzF,EAAZ,SACI,cAAC,aAAD,CAAY9zE,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUjN,EAAW0H,KAAMihC,EAArE,SACKluD,MAGT,cAAC,aAAD,CAAYkhC,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUhN,EAASyH,KAAMilD,EAAav9B,WAAY,EAA5F,SACK5sC,OAGT,eAAC20B,EAAA,EAAD,CAAK/6B,QAAQ,OAAOsrD,IAAK,EAAzB,UACI,eAACvwB,EAAA,EAAD,CAAK/6B,QAASkzG,EAAe5nD,IAAK6nD,EAAel4E,WAAW,SAA5D,UACI,eAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAU8iE,UAAWziF,SAAUjN,EAAW0H,KAAMihC,EAAzE,kBACU6mD,KAEV,cAAC,aAAD,CACI7zE,MAAqB,OAAdr+B,QAAc,IAAdA,KAAgBC,cAAgB+uC,EAAMM,UAAUwB,MAAQ9B,EAAMM,UAAU0B,KAC/ErhB,SAAUmiF,EACV1nF,KAAM2nF,EACNjgE,WAAY,EAJhB,SAMKu8B,OAGT,eAACx0C,EAAA,EAAD,CAAK/6B,QAASkzG,EAAe5nD,IAAK6nD,EAAel4E,WAAW,SAA5D,UACI,eAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAU8iE,UAAWziF,SAAUjN,EAAW0H,KAAMihC,EAAzE,kBACU6mD,KAEV,cAAC,aAAD,CACI7zE,MAAqB,OAAdr+B,QAAc,IAAdA,KAAgBG,cAAgB6uC,EAAMM,UAAUwB,MAAQ9B,EAAMM,UAAU0B,KAC/ErhB,SAAUmiF,EACV1nF,KAAM2nF,EACNjgE,WAAY,EAJhB,SAMKw8B,OAGT,eAACz0C,EAAA,EAAD,CAAK/6B,QAASkzG,EAAe5nD,IAAK6nD,EAAel4E,WAAW,SAA5D,UACI,eAAC,aAAD,CAAYsE,MAAO2Q,EAAMM,UAAUwB,MAAOnhB,SAAUjN,EAAW0H,KAAMihC,EAArE,mBACW6mD,KAEX,cAAC,aAAD,CACI7zE,MAAO2Q,EAAMM,UAAUwB,MACvBnhB,SAAUmiF,EACV1nF,KAAM2nF,EACNjgE,WAAY,EAJhB,SAMKhyC,iBAOzB,cAAC+5B,EAAA,EAAD,CAAK2B,QAASwT,EAAMM,UAAUwB,MAA9B,SACI,cAACnX,GAAA,EAAD,CAAWC,SAAS,KAApB,SACI,eAAC+1C,GAAA,EAAD,CAAM92C,QAAQ,aAAa5yB,MAAOi4C,EAAK9gB,SAAUgyC,EAAa,aAAW,oBAAzE,UACI,cAACjxB,GAAA,EAAD,CAAKj8C,MAAO66E,EAAU92E,MAAO82E,IAC7B,cAAC5+B,GAAA,EAAD,CAAKj8C,MAAOumF,EAAWxiF,MAAOwiF,IAC9B,cAACtqC,GAAA,EAAD,CAAKj8C,MAAOstE,EAASvpE,MAAOupE,IAC3BhU,GAAiB,cAACrd,GAAA,EAAD,CAAKj8C,MAAOw5C,EAASz1C,MAAOy1C,eCmKvD22D,GA7OE,WAAO,IAAD,QACX/4G,EAASs3B,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAAtClgC,KACAqC,EAAWypC,eAAXzpC,OACF22G,EAAe3uF,SAAShoB,GACtBohF,EAA+C97D,GAArCuuD,EAAqCvuD,GAA5BsuD,EAA4BtuD,GAAlBwuD,EAAkBxuD,GAAZy6B,EAAYz6B,GACjDokB,EAAWC,wBACX63C,IAAmB7jF,EAEzB,EAA0C6M,oBAAS,GAAnD,mBAAOq1D,EAAP,KAAsB+2C,EAAtB,KACA,EAAsBpsG,mBAAS42E,GAA/B,mBAAO7+B,EAAP,KAAYs0D,EAAZ,KACA,EAA4DrsG,oBAAS,GAArE,mBAAOygF,EAAP,KAA+BC,EAA/B,KACA,EAA4C1gF,oBAAS,GAArD,mBAAOkvE,EAAP,KAAuBC,EAAvB,KACA,EAAwEnvE,oBAAS,GAAjF,mBAAO2gF,EAAP,KAAqCC,EAArC,KACA,EAA8D5gF,oBAAS,GAAvE,mBAAOssG,EAAP,KAAgCC,EAAhC,KACA,EAAoDvsG,oBAAS,GAA7D,mBAAOwsG,EAAP,KAA2BC,EAA3B,KACMlqB,EAAgB,CAAE30C,GAAI,EAAGE,GAAI,GAEnC,EAAkGh5B,GAAuBq3F,GAA3Gr7F,EAAd,EAAQvF,KAA4BunC,EAApC,EAAwBwM,WAAkCotD,GAA1D,EAAmDxgG,MAA+BygG,GAAlF,EAAyE3sD,QACzE,GAIInrC,GAAgBs3F,EAAc,CAAE/sD,MAAOiW,IAHjCyQ,GADV,GACIv6D,KACWqhG,GAFf,GAEI9vG,UACO+vG,GAHX,GAGI3gG,MAEJ,GAAqD6I,GAA4Bo3F,GAAnExwB,GAAd,GAAQpwE,KAA+BuhG,GAAvC,GAAgC5gG,MAChC,GAA+DwK,KAA/D,qBAAOq2F,GAAP,MAAuCC,GAAvC,MAA4BhuE,UAExB6tE,IACA3tE,EAASZ,GAAeuuE,KAGxBH,IACAxtE,EAASZ,GAAeouE,KAGxBI,IACA5tE,EAASZ,GAAewuE,KAG5B3sG,qBAAU,WACN,GAAI2Q,GAAY3d,EAAM,CAClB,IAAQmE,EAAyBwZ,EAAzBxZ,SAAUO,EAAeiZ,EAAfjZ,WAEZkxG,EADazxG,EAAS6W,KAAI,SAACgC,GAAD,OAAaA,EAAQpc,YACxB0uB,SAAX,OAAoBtvB,QAApB,IAAoBA,OAApB,EAAoBA,EAAMG,IAC5C84G,EAAiBrD,GACjB7pE,EAAST,GAAc,OAAC5mC,QAAD,IAACA,OAAD,EAACA,EAAYK,iBAEzC,CAAC4Y,EAAU3d,IAEdgN,qBAAU,WACF6sG,IACAP,GAAsB,KAE3B,CAACO,KAEJ,IAIMrrB,GAAqB,uCAAG,sBAAAt2E,EAAA,sDAC1B+d,GAAK,QAAS,CACVI,SAAU,mBACVt2B,QAAQ,+BAAD,OAAiCsC,KAG5CkrF,GAA0B,GANA,2CAAH,qDA0BrBkB,GAAwC,WAC1C+qB,KACAjsB,GAA0B,GAC1BE,GAAgC,IAG9BqsB,GAAqB,WACvB99B,GAAkB,IAYhB+9B,GAA8B,WAChCX,GAA2B,IAGzBY,GAAsB,uCAAG,WAAO/gG,EAASiE,GAAhB,SAAAhF,EAAA,6DAC3BkhG,GAA2B,GADA,kBAIjBQ,GAAkB,CAAEv3G,SAAQ4W,UAASiE,oBAAmB0wB,SAJvC,sDAMvB7B,EAASZ,GAAe,EAAD,KANA,wDAAH,wDActB8uE,GAA4B,SAAC9jF,EAAOiS,GACvB,cAAXA,GAIJkxE,GAAsB,IA8CpB1vB,IAAkC,OAARjsE,QAAQ,IAARA,GAAA,UAAAA,EAAU1Y,sBAAV,eAA0BqG,mBAA1B,OAA6CwI,SAA7C,IAA6CA,QAA7C,EAA6CA,GAAqBC,MAElG,OACI,eAACssB,GAAA,EAAD,CAAW6wC,gBAAc,EAAC5wC,UAAU,EAApC,UACKqf,GAAiB,cAAC,GAAD,CAAkB3d,gBAAgB,iBACnDrkB,GAAY6qE,IACT,qCACI,cAAC,GAAD,CACI3kF,YAAW,OAAE8Z,QAAF,IAAEA,GAAF,UAAEA,EAAU1Y,sBAAZ,aAAE,EAA0B3C,KACvCyB,UAAS,OAAE4Z,QAAF,IAAEA,GAAF,UAAEA,EAAU1Y,sBAAZ,aAAE,EAA0B9E,GACrCyL,SAAQ,OAAE+R,QAAF,IAAEA,OAAF,EAAEA,EAAU/R,SACpBvJ,OAAM,OAAEsb,QAAF,IAAEA,OAAF,EAAEA,EAAUtb,OAClBmC,KAAI,OAAEmZ,QAAF,IAAEA,OAAF,EAAEA,EAAUu8F,UAChBz1G,OAAM,OAAEkZ,QAAF,IAAEA,OAAF,EAAEA,EAAUw8F,YAClBx8F,SAAUA,EACVukD,cAAeA,EACf4T,YAtIM,SAAC1gD,EAAG2O,GAC1Bm1E,EAAOn1E,IAsIS6gB,IAAKA,EACLhQ,cAAsB,OAARj3B,QAAQ,IAARA,GAAA,UAAAA,EAAU1Y,sBAAV,eAA0Bm1G,UAAWvnG,GACnDnM,eAAc,OAAEiX,QAAF,IAAEA,OAAF,EAAEA,EAAUjX,iBAE9B,cAACsnC,GAAA,EAAD,IACA,cAAC3N,GAAA,EAAD,CAAWC,SAAS,KAApB,SA5DU,SAACw2E,EAAaG,GACpC,IAAQN,EAA4CG,EAA5CH,wBAAyB1xG,EAAmB6xG,EAAnB7xG,eAC3B2vC,GAA6B,OAAd3vC,QAAc,IAAdA,OAAA,EAAAA,EAAgBm1G,UAAWvnG,GAC1Cs8E,EAAYv6C,EAAeuhC,EAAOF,EAExC,OACI,mCACI,eAACvxB,GAAA,EAAD,CAAY/3C,MAAOi4C,EAAnB,UACI,cAACE,GAAA,EAAD,CAAUn4C,MAAO82E,EAAU3+C,GAAE,eAAOsqD,GAApC,SACI,cAAC,GAAD,CACI6nB,KAAMA,EACN9yG,SAAQ,OAAEwZ,QAAF,IAAEA,OAAF,EAAEA,EAAUxZ,SACpB0/E,eAAgBA,EAChB3hB,cAAeA,EACf40C,YAAaA,EACbH,wBAAyBA,EACzBD,aAAcoD,GACd9C,gBAAiBxoB,OAGzB,cAAC1pC,GAAA,EAAD,CAAUn4C,MAAOwiF,EAAWrqD,GAAE,eAAOsqD,GAArC,SACI,cAAC7uD,EAAA,EAAD,UACI,cAAC,GAAD,CAAal+B,OAAQA,EAAQgJ,QAASpG,EAAgB2vC,aAAcA,QAG5E,cAACkQ,GAAA,EAAD,CAAUn4C,MAAOupE,EAASpxC,GAAE,eAAOsqD,GAAnC,SACI,cAAC,GAAD,CAAY/sF,OAAQA,EAAQ6/D,cAAeA,EAAeC,oBAAqB43C,OAElF73C,GACG,cAACpd,GAAA,EAAD,CAAUn4C,MAAOy1C,EAAStd,GAAE,eAAOsqD,GAAnC,SACI,cAAC,GAAD,CAAYzc,YAAaA,GAAahpE,UAAW8vG,YA8B/BY,CAAkB18F,EAAU6qE,MACrD8E,GACG,cAAC,GAAD,CACI3vE,SAAUA,EACV6qE,iBAAkBA,GAClBllF,QApIW,WAC/BiqF,GAA0B,IAoIN9E,sBAjIY,WAAO,IAAD,EACtC,EAAuCD,IAAoB,GACrD+G,EADN,EAAQpqF,gBAAR,EAAyB+G,UAEnB8/D,GAAmB,OAARruD,QAAQ,IAARA,GAAA,UAAAA,EAAUjZ,kBAAV,eAAsBK,eAAgBmQ,GACvD+gB,GAAK,WAAY,CACbI,SAAU,qBACVt2B,QAAQ,QAAD,OAAUisE,EAAW,SAAW,cACvCr/D,MAAO4iF,IAEXhC,GAA0B,GAC1BE,GAAgC,IAwHZviD,OAAQoiD,EACR1D,wBAAyBA,GACzBC,0BA1EgB,WACpC0D,GAA0B,GAC1BE,GAAgC,MA2EpB,cAAC,GAAD,CACIpqF,KAAM04E,EACN/kE,IAAK5X,OAAO6C,SAASujB,KACrBliB,QA9GY,WAC5B04E,GAAkB,IA8GFP,YApHW,WAC3B9wC,UAAUyxC,UAAUC,UAAUj9E,OAAO6C,SAASujB,MAC9Cw2D,GAAkB,MAoHN,cAAC,GAAD,CACIjsC,SAAU0+C,GACVz+C,YAAY,KACZ3sC,KAAMmqF,EACNlqF,QAASmrF,GACTlrF,MAAM,kBACN0V,QAAO,6CAAwC0E,EAAS/R,UACxDikC,cAAY,IAEhB,cAAC,GAAD,CACI3E,OAAQiuE,EACRhD,mBAAoB6D,GACpB5D,eA3GoB,WACpCgD,GAA2B,MA4Gf,cAACvQ,GAAA,EAAD,CAAUxlG,KAAMg2G,EAAoBvQ,iBAAkB,IAAMxlG,QAAS22G,GAArE,SACI,cAAC,GAAD,CAAO32G,QAAS22G,GAA2BK,SAAS,UAAUx1E,GAAI,CAAE/P,MAAO,QAA3E,oCCxOTwlF,GAhBG,kBACd,eAAC,KAAD,WACI,cAAC,KAAD,CAAOC,KAAK,qBAAqB7zB,QAAS,cAAC,GAAD,MAC1C,cAAC,KAAD,CAAO6zB,KAAK,uCAAuC7zB,QAAS,cAAC,GAAD,MAC5D,cAAC,KAAD,CAAO6zB,KAAK,2CAA2C7zB,QAAS,cAAC,GAAD,MAChE,cAAC,KAAD,CAAO6zB,KAAK,wCAAwC7zB,QAAS,cAAC,GAAD,MAC7D,cAAC,KAAD,CAAO6zB,KAAK,qCAAqC7zB,QAAS,cAAC,GAAD,MAC1D,cAAC,KAAD,CAAO6zB,KAAK,8BAA8B7zB,QAAS,cAAC,GAAD,MACnD,cAAC,KAAD,CAAO6zB,KAAK,iBAAiB7zB,QAAS,cAAC,GAAD,MACtC,cAAC,KAAD,CAAO6zB,KAAK,8BAA8B7zB,QAAS,cAAC,GAAD,MACnD,cAAC,KAAD,CAAO6zB,KAAK,+BAA+B7zB,QAAS,cAAC,GAAD,MACpD,cAAC,KAAD,CAAO6zB,KAAK,+BAA+B7zB,QAAS,cAAC,GAAD,U,+BCzB/C8zB,GAGC,GAHDA,GAII,GAGJC,GACF,QADEA,GAEF,QAFEA,GAGD,SAGCC,GAAY,CAAC,MAAO,UAAW,eAAgB,cAAe,eAE9DC,GAAoB,SAACh4B,GAC9B,OAAQA,GACJ,KAAK,EACD,MAAO,SACX,KAAK,EACL,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,UACX,QACI,MAAO,U,oBCEJi4B,GApBE,SAACtnF,GACd,IAAMtxB,EAAWigD,eACjB,EAAuC3uB,GAAS,GAAxCinF,EAAR,EAAQA,KAAMn1E,EAAd,EAAcA,KAAMy1E,EAApB,EAAoBA,eACZC,GAAa94G,GAAY,IAAzB84G,SAER,OACI,2CACIv1F,KAAMg1F,EACN9nF,UAAS,UAAKC,KAAOqoF,SAAZ,YAAwBD,IAAaP,EAAO7nF,KAAOmQ,OAAS,KACjE1M,GAAc,CACdC,SAAU,OACVt2B,QAAS+6G,GAAc,sBAAmBz1E,GAC1CpjC,SAAU,UANlB,aASKojC,MCDLz2B,GAAqC8D,GAArC9D,iBAAkBd,GAAmB4E,GAAnB5E,MAAOa,GAAY+D,GAAZ/D,QACzBub,GAAuBhV,GAAfuZ,GAAevZ,GAmahBme,OAhaG,SAAC,GAAsB,IAAD,MAAnBG,EAAmB,EAAnBA,aACXvxB,EAAWigD,eACXnW,EAAWC,wBACThsC,EAASs3B,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAAtClgC,KACA6zB,EAAiByD,uBAAY,SAACxqB,GAAD,OAAWA,EAAMmuG,MAA9CpnF,aACR,EAA8CyD,uBAAY,SAACxqB,GAAD,OAAWA,EAAM9M,QAAnEoL,EAAR,EAAQA,YAAa8vG,EAArB,EAAqBA,qBACrB,EAAkCruG,oBAAS,GAA3C,mBAAOsuG,EAAP,KAAkBC,EAAlB,KACA,EAA8CvuG,oBAAS,GAAvD,mBAAOwuG,EAAP,KAAwBC,EAAxB,KACA,EAA8CzuG,oBAAS,GAAvD,mBAAO0uG,EAAP,KAAwBC,EAAxB,KAEQroF,EAA6DK,EAA7DL,0BAA2BD,EAAkCM,EAAlCN,aAAcE,EAAoBI,EAApBJ,gBACzC2nF,EAAa94G,EAAb84G,SAGFv/C,EAAWjE,KAEXkkD,EAAY,uCAAG,WAAOC,GAAP,eAAAxjG,EAAA,6DACbwjG,GACAA,EAAGniF,iBAGD9hB,EAAgBrB,KALL,SAMCqB,EAAcR,IAAI,mBANnB,OAQE,MARF,OAQT+B,SACA5Z,QAAUA,OAAOqoF,WACjBA,UAAU56C,QAEd8uE,KAAQC,OAAO,OACfx8G,OAAO6C,SAASujB,KAAhB,UAA0B7W,GAA1B,MAba,2CAAH,sDAiBZktG,EAAc,WAChB9vE,EAAShY,IAAY,KAejB+nF,EAAyBpB,GAAlBqB,EAAkBrB,GAAXsB,EAAWtB,GAC3BuB,EAAmB,OAAJj8G,QAAI,IAAJA,KAAMk8G,gBF9CM,SAAC1lF,GAClC,IACM2lF,EAAkB,CADA1B,IAExB,OAAOjkF,EAAMtH,QAAO,SAAC6N,GAAD,OAAWo/E,EAAgB7sF,SAASyN,EAAK6lD,eE2ChBw5B,CAAqB,OAACp8G,QAAD,IAACA,OAAD,EAACA,EAAMk8G,iBAAmB,GACtFG,EAA+Br8G,EAAOi8G,EAAa/sF,QAAO,SAAC6N,GAAD,OAAUA,EAAKu/E,YAAcR,GAAS/+E,EAAKu/E,YAAcP,KAAS,GAC5HQ,GAAuH,IAA7FF,EAA6BzhD,WAAU,SAAC79B,GAAD,OAAU49E,GAAUrrF,SAASyN,EAAKy/E,iBACnGC,EAAyBz8G,EAAOi8G,EAAa/sF,QAAO,SAAC6N,GAAD,OAAUA,EAAKu/E,YAAcN,KAAU,GAE3FU,EF7CkC,WAAiB,IAAhBlmF,EAAe,uDAAP,GACzCmmF,EAAalC,GACfmC,EAAW,OAAGpmF,QAAH,IAAGA,OAAH,EAAGA,EAAOnhB,MAAK,SAAC0nB,GAAD,OAAUA,EAAK6lD,aAAe+5B,KACxDE,EAAa,OAAGrmF,QAAH,IAAGA,OAAH,EAAGA,EAAOtH,QAAO,SAAC6N,GAAD,OAAUA,EAAK6lD,aAAe+5B,KAElE,OAAIC,EACM,CAAEA,GAAR,mBAAwBC,IAErBrmF,EEqCuBsmF,CADA,sBAAOT,GAAP,YAAwCI,KAGlEM,GACqB,OAArBL,QAAqB,IAArBA,OAAA,EAAAA,EAAuBh8G,QA7CE,EA8CnB,YAAIg8G,GAAuB9U,OAAO,EA9Cf,GA+CnB8U,EAEV,OACI,cAACM,GAAA,EAAD,CACI/vB,OAAO,QACP5pF,KAAMwwB,EACNvwB,QAAS,kBAAMyoC,EAAShY,IAAY,KACpCu2B,OAAQ,kBAAMve,EAAShY,IAAY,KAJvC,SAMI,eAACwM,EAAA,EAAD,CAAKuE,GAAI,CAAE/P,MAAOymC,EAAW,OAAS,SAAtC,UACI,qBAAK9oC,UAAWC,KAAOsqF,UAAvB,SACI,yBAAQ3nG,KAAK,SAASod,UAAWC,KAAOuqF,SAAUtoF,QAASinF,EAA3D,UACI,yBACA,8BAGR,sBAAKnpF,UAAWC,KAAOwqF,oBAAvB,UACM,OAACn9G,QAAD,IAACA,KAAMoE,UACL,sCACKpE,QADL,IACKA,OADL,EACKA,EAAMoE,UADX,WACuBpE,QADvB,IACuBA,OADvB,EACuBA,EAAMqE,YAG7B,0DAEH,OAACrE,QAAD,IAACA,KAAMo9G,uBAAP,OAA8Bp9G,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAMq9G,qBAA8B,MAARtC,GACvD,qBAAKnmF,QAASinF,EAAd,SACI,2CACInpF,UAAS,UAAKC,KAAOqoF,UACrBpmF,QAAS,SAAC8mF,GACNA,EAAGniF,kBAEP/T,KAAI,UAAK7W,GAAL,UACAynB,GAAc,CACdC,SAAU,OACVt2B,QAAS,mBACTkC,SAAU,UATlB,8BAiBN,OAAJjC,QAAI,IAAJA,OAAA,EAAAA,EAAMo9G,wBAAuB,OAACp9G,QAAD,IAACA,KAAMq9G,sBAClC,qBAAK3qF,UAAS,UAAKC,KAAO2qF,cAAZ,sBAAd,SACI,sBAAK1oF,QAASinF,EAAd,WACS,OAAJ77G,QAAI,IAAJA,OAAA,EAAAA,EAAM0F,gBAAiB,cAAC,GAAD,CAAU80G,KAAI,UAAK7rG,GAAL,2BAAwB3O,QAAxB,IAAwBA,GAAxB,UAAwBA,EAAM0F,qBAA9B,aAAwB,EAAqBJ,UAAY+/B,KAAK,YACpG,cAAC,GAAD,CAAUm1E,KAAI,UAAK7rG,GAAL,qBAAiC02B,KAAK,eAC9C,OAAJrlC,QAAI,IAAJA,OAAA,EAAAA,EAAMu9G,aAAN,OAAmBv9G,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAMw9G,0BACvB,cAAC,GAAD,CAAUhD,KAAI,UAAK7rG,GAAL,kBAA8B02B,KAAK,yBAK3D,OAAJrlC,QAAI,IAAJA,OAAA,EAAAA,EAAMo9G,wBAAuB,OAACp9G,QAAD,IAACA,KAAMq9G,sBAClC,mCACI,sBAAK3qF,UAAS,UAAKC,KAAO8qF,YAAZ,sBAAd,UACI,sBAAK7oF,QAAS,WA3ElC0mF,GAAoBD,IA2E6C3oF,UAAWC,KAAO+qF,UAA/D,wBACe,+BAAOrC,EAAkB,IAAM,SAE7CA,GACG,sBAAK3oF,UAAWC,KAAOgrF,YAAa/oF,QAASinF,EAA7C,WACS,OAAJ77G,QAAI,IAAJA,OAAA,EAAAA,EAAM0F,gBACH,cAAC,GAAD,CAAU80G,KAAI,UAAK7rG,GAAL,2BAAwB3O,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAM0F,cAAcJ,UAAY+/B,KAAK,YAE/E,cAAC,GAAD,CAAUm1E,KAAI,UAAK7rG,GAAL,UAAsB02B,KAAK,mBAAmBy1E,eAAe,aAC3E,cAAC,GAAD,CAAUN,KAAI,UAAK7rG,GAAL,aAAyB02B,KAAK,qBACvC,OAAJrlC,QAAI,IAAJA,OAAA,EAAAA,EAAMu9G,YACH,sBAAK7qF,UAAU,GAAf,UACI,cAAC,GAAD,CACI8nF,KAAI,UAAK7rG,GAAL,kBACJ02B,KAAK,qBAET,cAAC,GAAD,CACIm1E,KAAI,UAAK7rG,GAAL,kBACJ02B,KAAK,gCAUpCrlC,EACG,gCACI,qBAAK40B,QAASinF,EAAd,SACI,sBAAKnpF,UAAU,oBAAf,YACU,OAAJ1yB,QAAI,IAAJA,OAAA,EAAAA,EAAMu9G,aAAN,OAAmBv9G,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAM49G,wBAClB,OAAJ59G,QAAI,IAAJA,OAAA,EAAAA,EAAMo9G,wBAAuB,OAACp9G,QAAD,IAACA,KAAMq9G,sBACjC,sBAAK3qF,UAAWC,KAAO8qF,YAAvB,UACI,qBAAK/qF,UAAWC,KAAO+qF,UAAvB,mCACCX,EAAyB/hG,KAAI,SAAC6iG,GAAD,OAC1B,cAAC,GAAD,CAEIrD,KAAI,UAAK7rG,GAAL,YAAgBisG,GAAkBiD,EAAej7B,YAAjD,YACAi7B,EAAeC,QAEnBz4E,KAAMw4E,EAAev7G,KACrBw4G,eAAc,6BAAwB+C,EAAev7G,OANzD,UACYu7G,EAAeC,aAQ7B7B,GAAgBA,EAAav7G,QAAU,GACrC,cAAC,GAAD,CAAU85G,KAAI,UAAK7rG,GAAL,UAAsB02B,KAAK,UAAUy1E,eAAe,mBAEzD,OAAZ5nF,QAAY,IAAZA,OAAA,EAAAA,EAAcrtB,UAAU7F,MAAxB,OACGmzB,QADH,IACGA,OADH,EACGA,EAA2BttB,UAAU7F,OACrC,OAACA,QAAD,IAACA,KAAM+9G,8BACH,mBAAGrrF,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK7W,GAAL,yBAAxC,yCAIP,OAAC3O,QAAD,IAACA,KAAMg+G,iBAAkBzB,GACtB,mBAAG7pF,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK7W,GAAL,iBAAxC,gCAMf3O,IAASk7G,KAAyB,OAAC9vG,QAAD,IAACA,GAAD,UAACA,EAAakyC,cAAd,QAAC,EAAqB58C,SACrD,sBAAKgyB,UAAWC,KAAO8qF,YAAvB,UACI,qBAAK/qF,UAAWC,KAAO+qF,UAAvB,yBACCtyG,EAAYkyC,OAAO7B,MAAM,EA3KrB,GA2K0DzgC,KAAI,SAAC8B,GAAD,OAC/D,cAAC,GAAD,CAEI09F,KAAI,wBAAY19F,QAAZ,IAAYA,OAAZ,EAAYA,EAAMza,QACtBgjC,KAAI,OAAEvoB,QAAF,IAAEA,OAAF,EAAEA,EAAMlR,SACZkvG,eAAc,+BAAmBh+F,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAMlR,WAJ3C,OACSkR,QADT,IACSA,OADT,EACSA,EAAMza,WAMnB,cAAC,GAAD,CAAUm4G,KAAI,8BAAyBtwF,IAAUmb,KAAK,UAAUy1E,eAAe,mCAGtF96G,IAASk7G,KAAyB,OAAC9vG,QAAD,IAACA,GAAD,UAACA,EAAaoyC,kBAAd,QAAC,EAAyB98C,SAC7D,sBAAKgyB,UAAWC,KAAO8qF,YAAvB,UACI,qBAAK/qF,UAAWC,KAAO+qF,UAAvB,6BACCtyG,EAAYoyC,WAAW/B,MAAM,EAzLrB,GAyL0DzgC,KAAI,SAAC8B,GAAD,OACnE,cAAC,GAAD,CAEI09F,KAAI,wBAAY19F,QAAZ,IAAYA,OAAZ,EAAYA,EAAMza,QACtBgjC,KAAI,OAAEvoB,QAAF,IAAEA,OAAF,EAAEA,EAAMlR,SACZkvG,eAAc,+BAAmBh+F,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAMlR,WAJ3C,OACSkR,QADT,IACSA,OADT,EACSA,EAAMza,WAMnB,cAAC,GAAD,CAAUm4G,KAAI,8BAAyB/rF,IAAc4W,KAAK,UAAUy1E,eAAe,wCAGlF,OAAJ96G,QAAI,IAAJA,OAAA,EAAAA,EAAMK,kBACH,qBAAKqyB,UAAS,UAAKC,KAAO8qF,YAAZ,YAAd,SACI,mBACI/qF,UAAS,UAAKC,KAAO+qF,WACrBv2F,OAAO,SACP00D,IAAI,sBACJr2D,KAAI,0BAAqB9S,GAAOxD,YAA5B,oCAJR,8BAUR,qBAAKwjB,UAAWC,KAAO8qF,YAAvB,SACI,cAAC,GAAD,CAAUjD,KAAI,UAAK7rG,GAAL,aAAyB02B,KAAK,uBAE3C,OAAJrlC,QAAI,IAAJA,OAAA,EAAAA,EAAMu9G,cAAkB,OAAJv9G,QAAI,IAAJA,OAAA,EAAAA,EAAMo9G,wBAAuB,OAACp9G,QAAD,IAACA,KAAMq9G,sBACrD,sBAAK3qF,UAAWC,KAAO8qF,YAAvB,UACI,qBAAK/qF,UAAWC,KAAO+qF,UAAvB,yBACA,cAAC,GAAD,CAAUlD,KAAI,UAAK7rG,GAAL,kBAA8B02B,KAAK,UAAU44E,QAAQ,uBACnE,cAAC,GAAD,CAAUzD,KAAI,UAAK7rG,GAAL,kBAA8B02B,KAAK,UAAU44E,QAAQ,2BAGtE,OAAJj+G,QAAI,IAAJA,OAAA,EAAAA,EAAMi+C,UACH,qBAAKvrB,UAAWC,KAAO8qF,YAAvB,SACI,qCACI,mBAAG/qF,UAAWC,KAAOqoF,SAAUx1F,KAAI,UAAK7W,GAAL,mCAAnC,oCAGA,mBAAG+jB,UAAWC,KAAOqoF,SAAUx1F,KAAI,UAAK7W,GAAL,gBAAnC,yBAGA,mBAAG+jB,UAAWC,KAAOqoF,SAAUx1F,KAAI,UAAK7W,GAAL,2BAAnC,oCAMI,OAAfykB,QAAe,IAAfA,OAAA,EAAAA,EAAiBvtB,UAAU7F,KACxB,qBAAK0yB,UAAWC,KAAO8qF,YAAvB,SACI,mBAAG/qF,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK7W,GAAL,gBAAxC,iCAOhB,qBAAK+jB,UAAS,UAAKC,KAAO8qF,YAAZ,sBAAd,SACI,mBACI/qF,UAAS,UAAKC,KAAO+qF,WACrBv2F,OAAO,SACP00D,IAAI,sBACJr2D,KAAI,0BAAqB9S,GAAOxD,YAA5B,oCAJR,8BASJ,qBAAKwjB,UAAS,UAAKC,KAAO8qF,YAAZ,sBAAd,SACI,mBAAG/qF,UAAS,UAAKC,KAAO+qF,WAAal4F,KAAI,UAAK5W,GAAL,cAAzC,yBAIJ,sBAAK8jB,UAAS,UAAKC,KAAO8qF,YAAZ,sBAAd,UACI,sBAAK/qF,UAAWC,KAAO+qF,UAAW9oF,QAzOnC,WACnBwmF,GAAcD,IAwOM,kCACyB,+BAAOA,EAAY,IAAM,SAEjDA,GACG,sBAAKzoF,UAAWC,KAAOgrF,YAAa/oF,QAASinF,EAA7C,UACI,2CACInpF,UAAS,UAAKC,KAAOqoF,UACrBx1F,KAAI,UAAK5W,GAAL,iBACAwnB,GAAc,CACdC,SAAU,OACVt2B,QAAQ,UACRkC,SAAU,UANlB,0BAWA,2CACIywB,UAAS,UAAKC,KAAOqoF,UACrBx1F,KAAI,UAAK5W,GAAL,uBACAwnB,GAAc,CACdC,SAAU,OACVt2B,QAAQ,gBACRkC,SAAU,UANlB,gCAWA,2CACIywB,UAAS,UAAKC,KAAOqoF,UACrBx1F,KAAI,UAAK5W,GAAL,yBACAwnB,GAAc,CACdC,SAAU,OACVt2B,QAAQ,UACRkC,SAAU,UANlB,0BAWA,2CACIywB,UAAS,UAAKC,KAAOqoF,UACrBx1F,KAAI,UAAK5W,GAAL,6BACAwnB,GAAc,CACdC,SAAU,OACVt2B,QAAQ,cACRkC,SAAU,UANlB,oCAcZ,qBAAKywB,UAAS,UAAKC,KAAO8qF,YAAZ,sBAAd,SACI,gCACI,sBAAK7oF,QAAS,WAtRtC4mF,GAAoBD,IAsRiD7oF,UAAWC,KAAO+qF,UAA/D,wBACe,+BAAOnC,EAAkB,IAAM,SAE7CA,GACG,sBAAK7oF,UAAWC,KAAOgrF,YAAa/oF,QAASinF,EAA7C,UACI,cAAC,GAAD,CAAUrB,KAAI,UAAK7rG,GAAL,qBAAiC02B,KAAK,eAC9C,OAAJrlC,QAAI,IAAJA,OAAA,EAAAA,EAAMu9G,aAAN,OAAmBv9G,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAMw9G,0BACvB,cAAC,GAAD,CAAUhD,KAAI,UAAK7rG,GAAL,kBAA8B02B,KAAK,0BAMrE,qBAAKzQ,QAASinF,EAAaqC,UAAWrC,EAAtC,SACI,sBAAKnpF,UAAS,UAAKC,KAAO8qF,YAAZ,SAAd,YACU,OAAJz9G,QAAI,IAAJA,OAAA,EAAAA,EAAMo9G,wBAAuB,OAACp9G,QAAD,IAACA,KAAMq9G,sBAClC,mBACI3qF,UAAS,UAAK8oC,EAAW7oC,KAAO+qF,UAAY/qF,KAAOqoF,UACnDx1F,KAAI,UAAK5W,GAAL,KACJuY,OAAO,SACP00D,IAAI,sBAJR,wBASJ,2CACInpD,UAAS,UAAK8oC,EAAW7oC,KAAO+qF,UAAY/qF,KAAOqoF,UACnDx1F,KAAI,UAAK1X,GAAME,aACfmZ,OAAO,SACP00D,IAAI,uBACAzlD,GAAc,CACdC,SAAU,OACVt2B,QAAQ,UACRkC,SAAU,UARlB,0BAaA,2CACIywB,UAAW8oC,EAAW7oC,KAAO+qF,UAAY/qF,KAAOqoF,SAChDx1F,KAAK,IAAIoP,QAAS6mF,GACdrlF,GAAc,CACdC,SAAU,OACVt2B,QAAQ,WACRkC,SAAU,UANlB,mCAeZ,sBAAK2yB,QAASinF,EAAd,UACI,qBAAKnpF,UAAWC,KAAO8qF,YAAvB,SACI,mBAAG/qF,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK5W,GAAL,cAAxC,yBAIJ,sBAAK8jB,UAAWC,KAAO8qF,YAAvB,UACI,qBAAK/qF,UAAWC,KAAO+qF,UAAvB,kCACA,mBAAGhrF,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK5W,GAAL,sBAAxC,2BAGA,mBAAG8jB,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK5W,GAAL,wBAAxC,qBAGA,mBAAG8jB,UAAS,UAAKC,KAAOqoF,UAAYx1F,KAAI,UAAK5W,GAAL,4BAAxC,4BAIJ,sBAAK8jB,UAAWC,KAAO8qF,YAAvB,UACI,mBACI/qF,UAAS,UAAKC,KAAOqoF,SAAZ,YAAqC,WAAbD,EAAwBpoF,KAAOmQ,OAAS,IACzEtd,KAAI,UAAK5W,GAAL,UAFR,qBAMA,mBACI8jB,UAAS,UAAKC,KAAOqoF,SAAZ,YAAqC,UAAbD,EAAuBpoF,KAAOmQ,OAAS,GAA/D,cACTtd,KAAI,UAAK5W,GAAL,SAFR,gC,qBCxZbuvG,GAfC,WACZ,OACI,qBAAKzrF,UAAWC,KAAOyrF,YAAvB,SACI,sBAAK1rF,UAAWC,KAAO0rF,aAAvB,UACI,sBAAK3rF,UAAWC,KAAO2rF,YAAvB,UACI,mBAAG5rF,UAAU,kBACb,qBAAKA,UAAWC,KAAO4rF,cACvB,qBAAK7rF,UAAS,UAAKC,KAAO4rF,YAAZ,YAA2B5rF,KAAO6rF,cAEpD,8CCmCDC,GAlCM,WACjB,IAAM1yE,EAAWC,wBACjB,EAAmC1U,uBAAY,SAACxqB,GAAD,OAAWA,EAAM4xG,gBAAxDxzE,EAAR,EAAQA,OAAQjyB,EAAhB,EAAgBA,QAAS1V,EAAzB,EAAyBA,MAEnB+6D,EAAgB,WAClBvyB,EAASyT,OAGb,OACI,eAACvP,GAAA,EAAD,CACI5sC,KAAM6nC,EACN5nC,QAASg7D,EACT,kBAAgB,qBAChB,mBAAiB,2BACjBx5B,GAAI,CAAEoL,EAAG,GALb,UAOI,cAAC6W,GAAA,EAAD,CAAazW,MAAM,SAASvL,MAAM,UAAU5kC,GAAG,qBAA/C,SACKoD,IAEL,cAACyqC,GAAA,EAAD,IACA,cAACmC,GAAA,EAAD,UACI,cAACE,GAAA,EAAD,CAAmBC,MAAM,SAASnwC,GAAG,2BAArC,SACK8Y,MAGT,cAACs3B,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAU6lB,GAAI,GAAnD,SACI,cAACxoB,GAAA,EAAD,CAAQC,QAAQ,OAAO3K,QAAS0pC,EAAhC,sBCaDqgD,GArCI,WACf,IAAM5yE,EAAWC,wBACjB,EAA0B1U,uBAAY,SAACxqB,GAAD,OAAWA,EAAM8xG,cAA/C1zE,EAAR,EAAQA,OAAQnyB,EAAhB,EAAgBA,MAEVulD,EAAgB,WAClBvyB,EAASX,OAGb,OACI,eAAC6E,GAAA,EAAD,CACI5sC,KAAM6nC,EACN5nC,QAASg7D,EACT,kBAAgB,qBAChB,mBAAiB,2BACjBx5B,GAAI,CAAEoL,EAAG,GALb,UAOI,cAAC6W,GAAA,EAAD,CAAazW,MAAM,SAASvL,MAAM,UAAU5kC,GAAG,qBAA/C,6CAGA,cAAC6tC,GAAA,EAAD,IACA,eAACmC,GAAA,EAAD,WACI,cAACE,GAAA,EAAD,CAAmBC,MAAM,SAASnwC,GAAG,2BAArC,gBACK4Y,QADL,IACKA,OADL,EACKA,EAAOE,UAEZ,eAACo3B,GAAA,EAAD,CAAmBtC,GAAI,EAAGuC,MAAM,SAASnwC,GAAG,uBAA5C,mDAC0C,cAACg4C,GAAA,EAAD,CAAM3yB,KAAM9S,GAAO5E,MAAMC,QAAzB,wBAG9C,cAACwiC,GAAA,EAAD,CAAezL,GAAI,CAAE7C,eAAgB,SAAU6lB,GAAI,GAAnD,SACI,cAACxoB,GAAA,EAAD,CAAQC,QAAQ,OAAO3K,QAAS0pC,EAAhC,sBCuEDugD,GA3FH,WACR,MAAuDvnF,uBAAY,SAACxqB,GAAD,OAAWA,EAAMozB,QAA5ElgC,EAAR,EAAQA,KAAe8+G,EAAvB,EAAch/E,QAAwBi/E,EAAtC,EAAsCA,aACtC,EAAiGznF,uBAAY,SAACxqB,GAAD,OAAWA,EAAM9M,QAAtHg/G,EAAR,EAAQA,oBAAqB9D,EAA7B,EAA6BA,qBAAsB+D,EAAnD,EAAmDA,qBAAsBC,EAAzE,EAAyEA,oBACnEnzE,EAAWC,wBACjB,EAA8Bn/B,oBAAS,GAAvC,mBAAOsyG,EAAP,KAAgBC,EAAhB,KACAC,IAAiB9sF,QAAQ+sF,KAAK5sG,GAAOvB,YACrC,IAAMouG,EAAMx+G,6cAAY4R,eACxB5R,QAKAiM,qBAAU,WAIN,GAHKhN,GAAS8+G,GAAkBC,GAC5BhzE,EAAS1mB,OAER85F,EACD,IACIv/G,KAAI6vD,SAAS,eAAgBh8B,IAC7B7zB,KAAI4/G,MAAM9sG,GAAOpD,OAAQ,IAAImwG,MAAK,WAC9BC,eACAN,GAAW,MAEjB,MAAO3mG,GACLhL,QAAQC,IAAI,6BAIfsxG,GAAwB9D,GACzBnvE,EAASrmB,MAGRw5F,GAAwBD,GACzBlzE,EAASpmB,QAEd,IAEH,IAAMg6F,IAAoB3/G,EAO1B,OACI,cAAC,kBAAD,CACI4/G,OAAQltG,GAAO3C,WACf/P,KAAM,CACF6/G,mBAAoB,CAChBC,KAAc,eAARP,EAAuBA,EAAM,eAEvCQ,QAAY,OAAJ//G,QAAI,IAAJA,OAAA,EAAAA,EAAMG,KAAM,KACpBF,OAAW,OAAJD,QAAI,IAAJA,OAAA,EAAAA,EAAMC,QAAS,MAE1B+/G,uBAAqB,EATzB,SAWI,cAACxzG,EAAD,UACI,qBACIrM,GAAG,oBACHuyB,UAAWitF,EAAkB,eAAiB,GAFlD,SAIKb,EACG,cAAC,GAAD,IAEA,qCACI,eAACv+E,EAAA,EAAD,CAAKuE,GAAI,CAAEwT,UAvDE,QAuDb,UACI,cAAC,GAAD,IACA,cAAC,GAAD,IACA,cAAC,GAAD,OAEJ,cAAC,SAAD,CACI2nE,aAAcr2F,GACds2F,cAAer2F,GACfs2F,UAAWr2F,GACXs2F,aAAcr2F,GACds2F,mBApCK,SAAClgH,GAC9B,IAAMmgH,EAAkBt2F,GAAkB3U,MAAK,SAACsvB,GAAD,OAAc,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMxkC,MAAOA,KACtEf,OAAOiE,KAAKi9G,EAAgB96F,KAAM,SAAU,aAmCpBsf,GAAI,CAAEiJ,GAAI,UAEd,cAAC,GAAD,IACA,cAAC,GAAD,c,wCCtDbwyE,GAnCG5sF,sBAAY,CAC1BrxB,KAAM,OACNsxB,aAdiB,CACjBxoB,YAAa,CACTkyC,OAAQ,GACRE,WAAY,IAEhB09D,sBAAsB,EACtB8D,qBAAqB,EACrB3nF,YAAa,GACb4nF,sBAAsB,EACtBC,qBAAqB,GAMrBsB,eAAa,sBACR96F,GAAe+6F,SAAU,SAAC3zG,GACvBA,EAAMouG,sBAAuB,EAC7BpuG,EAAMkyG,qBAAsB,KAHvB,gBAKRt5F,GAAeg7F,WAAY,SAAC5zG,EAAOknB,GAChClnB,EAAM1B,YAAc4oB,EAAOC,QAAQ7oB,YACnC0B,EAAMouG,sBAAuB,EAC7BpuG,EAAMkyG,qBAAsB,KARvB,gBAURt5F,GAAei7F,UAAW,SAAC7zG,GACxBA,EAAM1B,YAAc,GACpB0B,EAAMouG,sBAAuB,EAC7BpuG,EAAMkyG,qBAAsB,KAbvB,gBAeRr5F,GAAmB86F,SAAU,SAAC3zG,GAC3BA,EAAMmyG,sBAAuB,EAC7BnyG,EAAMoyG,qBAAsB,KAjBvB,gBAmBRv5F,GAAmB+6F,WAAY,SAAC5zG,EAAOknB,GACpClnB,EAAMuqB,YAAcrD,EAAOC,QAC3BnnB,EAAMouG,sBAAuB,EAC7BpuG,EAAMkyG,qBAAsB,KAtBvB,gBAwBRr5F,GAAmBg7F,UAAW,SAAC7zG,GAC5BA,EAAMuqB,YAAc,GACpBvqB,EAAMouG,sBAAuB,EAC7BpuG,EAAMkyG,qBAAsB,KA3BvB,MAgCjB,QCzCM4B,GAAYjtF,sBAAY,CAC1BrxB,KAAM,OACNsxB,aARiB,CACjB5zB,KAAM,KACN8+G,eAAe,EACfC,cAAc,GAMdjrF,SAAU,CACN+sF,UADM,SACI/zG,GACNA,EAAM9M,KAAO,OAGrBwgH,eAAa,sBACRn7F,GAAYo7F,SAAU,SAAC3zG,GACpBA,EAAMgyG,eAAgB,KAFjB,gBAIRz5F,GAAYq7F,WAAY,SAAC5zG,EAAOknB,GAC7BlnB,EAAM9M,KAAOg0B,EAAOC,QACpBnnB,EAAMgyG,eAAgB,EACtBhyG,EAAMiyG,cAAe,KAPhB,gBASR15F,GAAYs7F,UAAW,SAAC7zG,GACrBA,EAAM9M,KAAO,KACb8M,EAAMgyG,eAAgB,EACtBhyG,EAAMiyG,cAAe,KAZhB,MAiBV,GAA4C6B,GAAUzsF,QAC9CysF,IADR,GAAQC,UAAR,GAAmBC,qBACXF,GAAf,SCReG,GAnBSptF,sBAAY,CAChCrxB,KAAM,cACNsxB,aAPiB,CACjBxb,KAAM,GACN0nB,SAAS,GAMT0gF,eAAa,sBACR3iE,GAAkB4iE,SAAU,SAAC3zG,GAC1BA,EAAMsL,KAAO,GACbtL,EAAMgzB,SAAU,KAHX,gBAKR+d,GAAkB6iE,WAAY,SAAC5zG,EAAOknB,GACnClnB,EAAMsL,KAAO4b,EAAOC,QACpBnnB,EAAMgzB,SAAU,KAPX,gBASR+d,GAAkB8iE,UAAW,SAAC7zG,GAC3BA,EAAMsL,KAAO,GACbtL,EAAMgzB,SAAU,KAXX,MAgBjB,QCjBekhF,gBAAgB,cAC3BhhH,QACAkgC,QACAge,eACA+8D,MACAyD,gBACAE,cACAl1G,sBACCmO,GAAWE,YAAcF,GAAWopG,UCVnCC,GAAe,CAAEC,KAAM/qG,KAAuBinC,QAAS5mC,MAEvD2qG,GAAgB,CAClB75F,IAAK,OACLtmB,QAAS,EACTogH,aACAC,UAAW,CAAC,cAAe,qBAC3BC,UAAW,CAAC1pG,GAAWE,cAGrBypG,GAAmBC,aAAeL,GAAeM,IAE1CC,GAAQC,yBAAe,CAChCX,QAASO,GACTK,WAAY,SAACC,GAAD,OACRA,EAAqB,CACjBC,MAAO,CACHC,cAAed,IAEnBe,kBAAmB,CACfC,eAAgB,CAACC,KAAOC,KAAWC,KAAOC,KAASC,KAAOC,SAE/DC,OAAO5qG,GAAWgqG,eAEhBa,GAAYC,aAAahB,I,cC9BhC3rE,GAAY,CACd2B,MAAO,OACPH,MAAO,OACPD,KAAM,UACNuhE,UAAW,UACXvnD,SAAU,UACVhY,YAAa,UACbqpE,YAAa,UACbv4D,UAAW,UACX3S,KAAM,UACNmrE,SAAU,UACVC,YAAa,UACb7sE,aAAc,UACd8sE,wBAAyB,UACzBlc,kBAAmB,UACnBsa,KAAM,UACN/pE,SAAU,UACV2S,SAAU,UACV2/B,YAAa,UACb1wC,YAAa,UACbkb,gBAAiB,UACjB9I,IAAK,UACL+8C,MAAO,UACPrvD,aAAc,UACdsvD,OAAQ,UACR4a,SAAU,+CAIRC,GAAgB,2DAEhBC,GAAW,oCAAgCltE,GAAUC,aAA1C,aAA2DD,GAAU6wD,kBAArE,KACXsc,GAAuB,OAEvBC,GAAqB,CACvB5sE,aAAc,GACdthB,SAAU,GACVkb,QAAS,SACTpb,OAAQ,OACRumB,WAAY,SACZ/C,WAAY,OACZ3C,OAAQ,yBAGNwtE,GAAe,2BACdD,IADc,IAEjBphF,gBAAiBgU,GAAU2B,MAC3B5S,MAAOiR,GAAUwB,MACjB,UAAW,CACPxV,gBAAiBgU,GAAU8sE,YAC3Bh4D,YAAa9U,GAAU8sE,aAE3B,aAAc,CACV9gF,gBAAiBgU,GAAUqU,UAC3BS,YAAa9U,GAAUqU,aAIzBi5D,GAAgB,2BACfF,IADe,IAElBt4D,YAAa9U,GAAU2B,MACvB3V,gBAAiB,cACjB+C,MAAOiR,GAAU2B,MACjB,UAAW,CACPmT,YAAa9U,GAAU8sE,aAE3B,aAAc,CACVh4D,YAAa9U,GAAU+sE,wBACvBh+E,MAAOiR,GAAU+sE,2BAInBQ,GAAgB,2BACfH,IADe,IAElBt4D,YAAa9U,GAAUwB,MACvBiyC,YAAa,EACbznD,gBAAiB,cACjB+C,MAAOiR,GAAUwB,MACjB,aAAc,CACVxV,gBAAiBgU,GAAUqU,UAC3BS,YAAa9U,GAAUqU,aAIzBm5D,GAAiB,2BAChBJ,IADgB,IAEnBphF,gBAAiB,cACjB+C,MAAOiR,GAAUuB,KACjBuT,YAAa9U,GAAUuB,KACvB,aAAc,CACVvV,gBAAiBgU,GAAUqU,UAC3BS,YAAa9U,GAAUqU,aAIzBo5D,GAAyB,2BACxBL,IADwB,IAE3BphF,gBAAiBgU,GAAUuB,KAC3BxS,MAAOiR,GAAUwB,MACjB,aAAc,CACVxV,gBAAiBgU,GAAUqU,UAC3BS,YAAa9U,GAAUqU,aAIzBq5D,GAAgB,2BACfN,IADe,IAElBluF,SAAU,GACVF,OAAQ,GACRwjB,WAAY,SAGVmrE,GAAgB,2BACfP,IADe,IAElBluF,SAAU,GACVsjB,WAAY,OACZhC,aAAc,GACdpG,QAAS,WAGTsF,GAAQkuE,aAAY,CACpB5tE,aACA4B,WAAY,CACRisE,QAAS,CACLnqE,WA9FQ,wDAgGZC,UAAW,CACPD,WAAYupE,IAEhBvpE,WAAYupE,IAEhBttE,QAAS,CACLkuE,QAAS,CACL1C,KAAMnrE,GAAUmrE,SAuObzrE,GAlOfA,GAAQkuE,aAAYluE,GAAO,CACvBC,QAAS,CACLmuE,UAAW,CACP3C,KAAMnrE,GAAUmyD,OAEpB4b,WAAY,CACR5C,KAAMnrE,GAAUoyD,QAEpB4b,QAAS,CACL7C,KAAMnrE,GAAUoV,MAGxBxT,WAAY,CACRqsE,UAAW,CACPzrE,WAAY,OACZC,cAAe,QACf1T,MAAOiR,GAAUuB,MAErB2sE,GAAI,CACAhvF,SAAU,OACViQ,WAAYuQ,GAAMkC,WAAWusE,gBAC7B3rE,WAAY,MACZC,cAAe,OAEnB2rE,GAAI,CACAlvF,SAAU,SACViQ,WAAYuQ,GAAMkC,WAAWusE,gBAC7B3rE,WAAY,MACZC,cAAe,OAEnB4rE,QAAS,CACLnvF,SAAU,SACViQ,WAAYuQ,GAAMkC,WAAWusE,gBAC7B3rE,WAAY,MACZC,cAAe,MACf1T,MAAOiR,GAAU6sE,UAErByB,QAAS,CACLpvF,SAAU,WACViQ,WAAYuQ,GAAMkC,WAAW2sE,kBAC7B/rE,WAAY,QACZC,cAAe,MACf1T,MAAOiR,GAAU0B,MAErB8sE,QAAS,CACLtvF,SAAU,SACViQ,WAAYuQ,GAAMkC,WAAW2sE,kBAC7B/rE,WAAY,OACZC,cAAe,MACf1T,MAAOiR,GAAU0B,MAErB+sE,WAAY,CACRvvF,SAAU,UACViQ,WAAYuQ,GAAMkC,WAAWusE,gBAC7B3rE,WAAY,IACZC,cAAe,MACf1T,MAAOiR,GAAUoB,UAErBstE,QAAS,CACLxvF,SAAU,UAEdyvF,aAAc,CACVzvF,SAAU,SACV6P,MAAOiR,GAAUC,cAErB2uE,MAAO,CACHz/E,WAAYuQ,GAAMkC,WAAWusE,iBAEjC33E,QAAS,CACLtX,SAAU,WACVsjB,WAAY,QAEhBqsE,aAAc,CACV3vF,SAAU,WACVsjB,WAAY,OACZzT,MAAOiR,GAAU6sE,UAErBiC,aAAc,CACV5vF,SAAU,SACV6P,MAAOiR,GAAU0B,OAGzBqtE,WAAY,CACRC,cAAe,CACXC,eAAgB,CACZC,KAAM,CACF,gBAAiB,CACbngF,MAAOiR,GAAUuB,KACjBgB,cAAe,aACf,iBAAkB,CACdxT,MAAO2Q,GAAMC,QAAQsC,OAAON,UAK5CxiB,aAAc,CACVgwF,eAAe,IAGvBC,UAAW,CACPH,eAAgB,CACZC,KAAM,CACF,UAAW,CACPluE,QAAS,UAIrBquE,SAAU,CACN,CACI9xF,MAAO,CAAEgM,QAAS,QAClBlN,MAAM,eAAMgxF,KAEhB,CACI9vF,MAAO,CAAEgM,QAAS,OAAQzO,KAAM,SAChCuB,MAAM,2BAAMgxF,IAAoBM,KAEpC,CACIpwF,MAAO,CAAEgM,QAAS,OAAQzO,KAAM,SAChCuB,MAAM,2BAAMgxF,IAAoBK,KAEpC,CACInwF,MAAO,CAAEgM,QAAS,SAClBlN,MAAM,eAAMixF,KAEhB,CACI/vF,MAAO,CAAEgM,QAAS,QAASzO,KAAM,SACjCuB,MAAM,2BAAMixF,IAAqBK,KAErC,CACIpwF,MAAO,CAAEgM,QAAS,QAASzO,KAAM,SACjCuB,MAAM,2BAAMixF,IAAqBI,KAErC,CACInwF,MAAO,CAAEgM,QAAS,aAClBlN,MAAO,CAAE0S,MAAO2Q,GAAMC,QAAQsC,OAAOT,QAEzC,CACIjkB,MAAO,CAAEgM,QAAS,UAClBlN,MAAM,eAAMmxF,KAEhB,CACIjwF,MAAO,CAAEgM,QAAS,mBAClBlN,MAAM,eAAMoxF,KAEhB,CACIlwF,MAAO,CAAEgM,QAAS,SAClBlN,MAAM,eAAMkxF,KAEhB,CACIhwF,MAAO,CAAEgM,QAAS,QAASzO,KAAM,SACjCuB,MAAM,2BAAMkxF,IAAqBI,KAErC,CACIpwF,MAAO,CAAEgM,QAAS,QAASzO,KAAM,SACjCuB,MAAM,2BAAMkxF,IAAqBG,OAI7C4B,cAAe,CACXL,eAAgB,CACZC,KAAM,CACFhwF,SAAU,GACV6P,MAAOiR,GAAU0B,KACjB,yBAA0B,CACtB3S,MAAOiR,GAAU0B,KACjBxiB,SAAU,OAK1BqwF,UAAW,CACPN,eAAgB,CACZO,MAAO,CACHzgF,MAAO2Q,GAAMC,QAAQsC,OAAOT,MAC5B3B,OAAO,aAAD,OAAeG,GAAU0B,MAC/B1iB,OAAQ0gB,GAAMjN,QAAQ,GACtB1T,MAAO2gB,GAAMjN,QAAQ,IAEzBi/C,MAAO,CACHrvC,WAAY6qE,GACZ1sE,aAAc,EACdxhB,OAAQ0gB,GAAMjN,aAI1Bg9E,QAAS,CACLR,eAAgB,CACZS,UAAW,CACP1jF,gBAAiB,cACjB+C,MAAO2Q,GAAMC,QAAQsC,OAAON,MAC5B9B,OAAQ,EACRiQ,aAAa,YAEb6/D,YAAY,yCAAD,OAA2CxC,GAA3C,mBAA0EA,GAA1E,+BAAqHA,GAArH,sCAAuKA,GAAvK,UACXyC,iBAAkB,KAI9BC,QAAS,CACLZ,eAAgB,CACZC,KAAM,CACF1rE,UAAW,kCACX,oCAAqC,CAEjCssE,cAAe,WAK/BC,gBAAiB,CACbd,eAAgB,CACZC,KAAM,CACFnwF,MAAO,QACPgQ,MAAOiR,GAAU2B,MACjBziB,SAAU,GACV8M,gBAAiBgU,GAAUqU,UAC3B,uCAAwC,CACpCtlB,MAAOiR,GAAUwB,MACjBxV,gBAAiBgU,GAAU2B,aCnTpCquE,G,oDA9CX,WAAYzyF,GAAQ,IAAD,+BACf,cAAMA,IACDzmB,MAAQ,CAAEiM,MAAO,KAAMktG,UAAW,MAFxB,E,sDAKnB,SAAkBltG,EAAOktG,GAErBC,KAAKn5G,SAAS,CACVgM,QACAktG,cAGJ7mH,OAAO+mH,MAAMC,YAAYrtG,EAAO,CAAEL,aAAcutG,EAAWI,UAAW,sB,oBAG1E,WACI,IAAQlF,EAAS+E,KAAK3yF,MAAd4tF,KACR,EAA6B+E,KAAKp5G,MAA1BiM,EAAR,EAAQA,MAAOktG,EAAf,EAAeA,UACT1G,EAAMx+G,6cAAY4R,eACxB5R,QAIA,OAAIklH,EAEI,sBAAKvzF,UAAS,UAAKyuF,EAAO,MAAQ,IAAlC,UACKA,EACK,uDACA,mBAAGzuF,UAAU,aAAb,mCACN,0BAASL,MAAO,CAAEkpB,WAAY,YAA9B,WACU,OAALxiC,QAAK,IAALA,OAAA,EAAAA,EAAOowE,aAAsB,eAARo2B,EACtB,uBACC0G,EAAUK,qBAMpBJ,KAAK3yF,MAAM/vB,a,GAvCE8I,IAAMk6E,WCUlC+/B,IAAS5kF,OACL,cAAC,IAAM6kF,WAAP,UACI,cAAC,IAAD,UACI,cAAC,WAAD,CAAU7E,MAAOA,GAAjB,SACI,cAAC,IAAD,CAAa7hF,QAAS,KAAM4iF,UAAWA,GAAvC,SACI,cAAC+D,EAAA,EAAD,CAAe/wE,MAAOA,GAAtB,SACI,cAAC,GAAD,UACI,cAAC,GAAD,gBAOxBr2C,SAASqnH,eAAe,U,mBC3B5BznH,EAAOC,QAAU,CAAC,UAAY,0BAA0B,kBAAkB,gCAAgC,eAAe,6BAA6B,eAAe,6BAA6B,eAAe,6BAA6B,eAAe,6BAA6B,IAAM,oBAAoB,aAAa,2BAA2B,IAAM,oBAAoB,SAAS,uBAAuB,cAAc,4BAA4B,YAAY,0BAA0B,YAAY,0BAA0B,YAAY,0BAA0B,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,SAAS,uBAAuB,cAAc,4BAA4B,YAAY,0BAA0B,YAAY,0BAA0B,YAAY,0BAA0B,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,SAAS,uBAAuB,cAAc,4BAA4B,YAAY,0BAA0B,YAAY,0BAA0B,YAAY,0BAA0B,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,SAAS,uBAAuB,cAAc,4BAA4B,YAAY,0BAA0B,YAAY,0BAA0B,YAAY,0BAA0B,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,SAAS,uBAAuB,SAAS,uBAAuB,SAAS,uBAAuB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,cAAc,4BAA4B,aAAa,2BAA2B,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,YAAY,0BAA0B,YAAY,0BAA0B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,iBAAiB,+BAA+B,gBAAgB,8BAA8B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,eAAe,6BAA6B,eAAe,6BAA6B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,iBAAiB,+BAA+B,gBAAgB,8BAA8B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,eAAe,6BAA6B,eAAe,6BAA6B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,iBAAiB,+BAA+B,gBAAgB,8BAA8B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,eAAe,6BAA6B,eAAe,6BAA6B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,iBAAiB,+BAA+B,gBAAgB,8BAA8B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,cAAc,4BAA4B,eAAe,6BAA6B,eAAe,6BAA6B,SAAS,uBAAuB,WAAW,yBAAyB,iBAAiB,+BAA+B,UAAU,wBAAwB,UAAU,wBAAwB,cAAc,4BAA4B,eAAe,6BAA6B,SAAS,uBAAuB,gBAAgB,8BAA8B,YAAY,0BAA0B,cAAc,4BAA4B,oBAAoB,kCAAkC,aAAa,2BAA2B,aAAa,2BAA2B,iBAAiB,+BAA+B,kBAAkB,gCAAgC,YAAY,0BAA0B,mBAAmB,iCAAiC,YAAY,0BAA0B,cAAc,4BAA4B,oBAAoB,kCAAkC,aAAa,2BAA2B,aAAa,2BAA2B,iBAAiB,+BAA+B,kBAAkB,gCAAgC,YAAY,0BAA0B,mBAAmB,iCAAiC,YAAY,0BAA0B,cAAc,4BAA4B,oBAAoB,kCAAkC,aAAa,2BAA2B,aAAa,2BAA2B,iBAAiB,+BAA+B,kBAAkB,gCAAgC,YAAY,0BAA0B,mBAAmB,iCAAiC,YAAY,0BAA0B,cAAc,4BAA4B,oBAAoB,kCAAkC,aAAa,2BAA2B,aAAa,2BAA2B,iBAAiB,+BAA+B,kBAAkB,gCAAgC,YAAY,0BAA0B,mBAAmB,iCAAiC,eAAe,6BAA6B,iBAAiB,+BAA+B,uBAAuB,qCAAqC,gBAAgB,8BAA8B,gBAAgB,8BAA8B,oBAAoB,kCAAkC,qBAAqB,mCAAmC,eAAe,6BAA6B,sBAAsB,oCAAoC,WAAW,yBAAyB,cAAc,4BAA4B,mBAAmB,iCAAiC,sBAAsB,oCAAoC,YAAY,0BAA0B,cAAc,4BAA4B,oBAAoB,kCAAkC,YAAY,0BAA0B,cAAc,4BAA4B,cAAc,4BAA4B,gBAAgB,8BAA8B,gBAAgB,8BAA8B,wBAAwB,sCAAsC,sBAAsB,oCAAoC,yBAAyB,uCAAuC,0BAA0B,wCAAwC,yBAAyB,uCAAuC,oBAAoB,kCAAkC,kBAAkB,gCAAgC,qBAAqB,mCAAmC,uBAAuB,qCAAqC,sBAAsB,oCAAoC,sBAAsB,oCAAoC,oBAAoB,kCAAkC,uBAAuB,qCAAqC,wBAAwB,sCAAsC,uBAAuB,qCAAqC,wBAAwB,sCAAsC,kBAAkB,gCAAgC,mBAAmB,iCAAiC,iBAAiB,+BAA+B,oBAAoB,kCAAkC,sBAAsB,oCAAoC,qBAAqB,mCAAmC,cAAc,4BAA4B,iBAAiB,+BAA+B,sBAAsB,oCAAoC,yBAAyB,uCAAuC,eAAe,6BAA6B,iBAAiB,+BAA+B,uBAAuB,qCAAqC,eAAe,6BAA6B,iBAAiB,+BAA+B,iBAAiB,+BAA+B,mBAAmB,iCAAiC,mBAAmB,iCAAiC,2BAA2B,yCAAyC,yBAAyB,uCAAuC,4BAA4B,0CAA0C,6BAA6B,2CAA2C,4BAA4B,0CAA0C,uBAAuB,qCAAqC,qBAAqB,mCAAmC,wBAAwB,sCAAsC,0BAA0B,wCAAwC,yBAAyB,uCAAuC,yBAAyB,uCAAuC,uBAAuB,qCAAqC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,qBAAqB,mCAAmC,sBAAsB,oCAAoC,oBAAoB,kCAAkC,uBAAuB,qCAAqC,yBAAyB,uCAAuC,wBAAwB,sCAAsC,cAAc,4BAA4B,iBAAiB,+BAA+B,sBAAsB,oCAAoC,yBAAyB,uCAAuC,eAAe,6BAA6B,iBAAiB,+BAA+B,uBAAuB,qCAAqC,eAAe,6BAA6B,iBAAiB,+BAA+B,iBAAiB,+BAA+B,mBAAmB,iCAAiC,mBAAmB,iCAAiC,2BAA2B,yCAAyC,yBAAyB,uCAAuC,4BAA4B,0CAA0C,6BAA6B,2CAA2C,4BAA4B,0CAA0C,uBAAuB,qCAAqC,qBAAqB,mCAAmC,wBAAwB,sCAAsC,0BAA0B,wCAAwC,yBAAyB,uCAAuC,yBAAyB,uCAAuC,uBAAuB,qCAAqC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,qBAAqB,mCAAmC,sBAAsB,oCAAoC,oBAAoB,kCAAkC,uBAAuB,qCAAqC,yBAAyB,uCAAuC,wBAAwB,sCAAsC,cAAc,4BAA4B,iBAAiB,+BAA+B,sBAAsB,oCAAoC,yBAAyB,uCAAuC,eAAe,6BAA6B,iBAAiB,+BAA+B,uBAAuB,qCAAqC,eAAe,6BAA6B,iBAAiB,+BAA+B,iBAAiB,+BAA+B,mBAAmB,iCAAiC,mBAAmB,iCAAiC,2BAA2B,yCAAyC,yBAAyB,uCAAuC,4BAA4B,0CAA0C,6BAA6B,2CAA2C,4BAA4B,0CAA0C,uBAAuB,qCAAqC,qBAAqB,mCAAmC,wBAAwB,sCAAsC,0BAA0B,wCAAwC,yBAAyB,uCAAuC,yBAAyB,uCAAuC,uBAAuB,qCAAqC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,qBAAqB,mCAAmC,sBAAsB,oCAAoC,oBAAoB,kCAAkC,uBAAuB,qCAAqC,yBAAyB,uCAAuC,wBAAwB,sCAAsC,cAAc,4BAA4B,iBAAiB,+BAA+B,sBAAsB,oCAAoC,yBAAyB,uCAAuC,eAAe,6BAA6B,iBAAiB,+BAA+B,uBAAuB,qCAAqC,eAAe,6BAA6B,iBAAiB,+BAA+B,iBAAiB,+BAA+B,mBAAmB,iCAAiC,mBAAmB,iCAAiC,2BAA2B,yCAAyC,yBAAyB,uCAAuC,4BAA4B,0CAA0C,6BAA6B,2CAA2C,4BAA4B,0CAA0C,uBAAuB,qCAAqC,qBAAqB,mCAAmC,wBAAwB,sCAAsC,0BAA0B,wCAAwC,yBAAyB,uCAAuC,yBAAyB,uCAAuC,uBAAuB,qCAAqC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,0BAA0B,wCAAwC,2BAA2B,yCAAyC,qBAAqB,mCAAmC,sBAAsB,oCAAoC,oBAAoB,kCAAkC,uBAAuB,qCAAqC,yBAAyB,uCAAuC,wBAAwB,sCAAsC,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW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","file":"static/js/main.7fbaaa44.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingPage\":\"loading_loadingPage__1lr-k\",\"innerWrapper\":\"loading_innerWrapper__6tcRO\",\"iconWrapper\":\"loading_iconWrapper__3XmlC\",\"iconSpinner\":\"loading_iconSpinner__1WwSY\",\"rotation\":\"loading_rotation__3qwIE\",\"reverse\":\"loading_reverse__187RH\",\"rotationRev\":\"loading_rotationRev__1UyMp\"};","/* eslint-disable no-underscore-dangle */\r\nconst canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\r\nlet _rox;\r\n\r\nif (canUseDOM) {\r\n // eslint-disable-next-line global-require\r\n _rox = require('rox-browser');\r\n} else {\r\n // eslint-disable-next-line no-eval\r\n _rox = eval(`require('rox-node')`);\r\n if (_rox) {\r\n // nice to have\r\n _rox.setContext({ server: true });\r\n }\r\n}\r\n\r\nexport const Rox = _rox;\r\n\r\nexport const setContextProps = () => {\r\n Rox.setCustomStringProperty('email', (context) => {\r\n // debugger;\r\n // return context.user.email;\r\n return context.user && context.user.email;\r\n });\r\n Rox.setCustomNumberProperty('memberId', (context) => {\r\n // return context.user.id;\r\n return context.user && context.user.id;\r\n });\r\n Rox.setCustomBooleanProperty('isClubOrganizer', (context) => {\r\n // return context.user.isClubOrganizer;\r\n return context.user && context.user.isClubOrganizer;\r\n });\r\n Rox.setCustomBooleanProperty('isEnterpriseClubOrganizer', (context) => {\r\n // return context.user.isEnterpriseClubOrganizer;\r\n return context.user && context.user.isEnterpriseClubOrganizer;\r\n });\r\n};\r\n\r\nexport const getFlagsContext = (user) => {\r\n const isValidUser = user && Object.keys(user).length > 0 && user.email && user.email.length > 0 && user.id > 0;\r\n\r\n if (isValidUser) {\r\n return {\r\n user: {\r\n email: user?.email?.toLowerCase(),\r\n memberId: user.id,\r\n isClubOrganizer: user.isClubOrganizer,\r\n isEnterpriseClubOrganizer: user.isEnterpriseClubOrganizer,\r\n },\r\n };\r\n }\r\n return {\r\n user: {},\r\n };\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"backgroundImage\":\"backgroundImage_backgroundImage__36_u4\",\"playerProfileImage\":\"backgroundImage_playerProfileImage__1ZsGO\",\"clubProfileImage\":\"backgroundImage_clubProfileImage__3RjFy\",\"playerIconImage\":\"backgroundImage_playerIconImage__1xlZv\",\"clubProfileIconImage\":\"backgroundImage_clubProfileIconImage__3QYdk\",\"playerThumbnailImage\":\"backgroundImage_playerThumbnailImage__qqtPr\",\"clubProfileThumbnailImage\":\"backgroundImage_clubProfileThumbnailImage__QlpAf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"menu_container__KRqCy\",\"container-fluid\":\"menu_container-fluid__5GqUs\",\"container-xl\":\"menu_container-xl__1ClMA\",\"container-lg\":\"menu_container-lg__1gjBe\",\"container-md\":\"menu_container-md__37_rr\",\"container-sm\":\"menu_container-sm__1IkAe\",\"row\":\"menu_row__2aoBP\",\"no-gutters\":\"menu_no-gutters__11GBT\",\"col\":\"menu_col__1Nt1T\",\"col-xl\":\"menu_col-xl__L5rip\",\"col-xl-auto\":\"menu_col-xl-auto__16Fy6\",\"col-xl-12\":\"menu_col-xl-12__1ih4-\",\"col-xl-11\":\"menu_col-xl-11__15T1L\",\"col-xl-10\":\"menu_col-xl-10__3xok4\",\"col-xl-9\":\"menu_col-xl-9__3j8e-\",\"col-xl-8\":\"menu_col-xl-8__3IwuL\",\"col-xl-7\":\"menu_col-xl-7__1f_IV\",\"col-xl-6\":\"menu_col-xl-6__2rSlU\",\"col-xl-5\":\"menu_col-xl-5__1wtvU\",\"col-xl-4\":\"menu_col-xl-4__1yVhG\",\"col-xl-3\":\"menu_col-xl-3__3U8Rs\",\"col-xl-2\":\"menu_col-xl-2__1jX7z\",\"col-xl-1\":\"menu_col-xl-1__rHm3f\",\"col-lg\":\"menu_col-lg__TugEo\",\"col-lg-auto\":\"menu_col-lg-auto__2MD2-\",\"col-lg-12\":\"menu_col-lg-12__2GkQ3\",\"col-lg-11\":\"menu_col-lg-11__1dofu\",\"col-lg-10\":\"menu_col-lg-10__2WRQf\",\"col-lg-9\":\"menu_col-lg-9__Et-kN\",\"col-lg-8\":\"menu_col-lg-8__MjErs\",\"col-lg-7\":\"menu_col-lg-7__17Sx9\",\"col-lg-6\":\"menu_col-lg-6__Zaw_s\",\"col-lg-5\":\"menu_col-lg-5__SoKgw\",\"col-lg-4\":\"menu_col-lg-4__3ioNO\",\"col-lg-3\":\"menu_col-lg-3__3IuiJ\",\"col-lg-2\":\"menu_col-lg-2__2iY9Q\",\"col-lg-1\":\"menu_col-lg-1__1s_mT\",\"col-md\":\"menu_col-md__3fK1P\",\"col-md-auto\":\"menu_col-md-auto__2Xgry\",\"col-md-12\":\"menu_col-md-12__1kOGL\",\"col-md-11\":\"menu_col-md-11__29JtA\",\"col-md-10\":\"menu_col-md-10__2CLvp\",\"col-md-9\":\"menu_col-md-9__gKmLU\",\"col-md-8\":\"menu_col-md-8__2DNCA\",\"col-md-7\":\"menu_col-md-7___2OH8\",\"col-md-6\":\"menu_col-md-6__2iyz2\",\"col-md-5\":\"menu_col-md-5__349ZD\",\"col-md-4\":\"menu_col-md-4__1-72y\",\"col-md-3\":\"menu_col-md-3__2K23l\",\"col-md-2\":\"menu_col-md-2__ILgvu\",\"col-md-1\":\"menu_col-md-1__2Qv4w\",\"col-sm\":\"menu_col-sm__Zb3Kj\",\"col-sm-auto\":\"menu_col-sm-auto__1758m\",\"col-sm-12\":\"menu_col-sm-12__Yu2wr\",\"col-sm-11\":\"menu_col-sm-11__1UEAk\",\"col-sm-10\":\"menu_col-sm-10__3HG30\",\"col-sm-9\":\"menu_col-sm-9__ppVVr\",\"col-sm-8\":\"menu_col-sm-8__3J8Ny\",\"col-sm-7\":\"menu_col-sm-7__1mvIx\",\"col-sm-6\":\"menu_col-sm-6__3fKfx\",\"col-sm-5\":\"menu_col-sm-5__mnzsb\",\"col-sm-4\":\"menu_col-sm-4__wBgp6\",\"col-sm-3\":\"menu_col-sm-3__1AvX1\",\"col-sm-2\":\"menu_col-sm-2__20ti3\",\"col-sm-1\":\"menu_col-sm-1__3seFB\",\"col-auto\":\"menu_col-auto__2JtPH\",\"col-12\":\"menu_col-12__251AX\",\"col-11\":\"menu_col-11__3KHZu\",\"col-10\":\"menu_col-10__2b-ta\",\"col-9\":\"menu_col-9__2C66V\",\"col-8\":\"menu_col-8__30iFy\",\"col-7\":\"menu_col-7__2mHFz\",\"col-6\":\"menu_col-6__Bwtj7\",\"col-5\":\"menu_col-5__1sg-M\",\"col-4\":\"menu_col-4__2IqUu\",\"col-3\":\"menu_col-3__1OAhT\",\"col-2\":\"menu_col-2__3mOuB\",\"col-1\":\"menu_col-1__3QnGn\",\"row-cols-1\":\"menu_row-cols-1__M-AR_\",\"row-cols-2\":\"menu_row-cols-2__CWYHy\",\"row-cols-3\":\"menu_row-cols-3__3cl13\",\"row-cols-4\":\"menu_row-cols-4__x0BNA\",\"row-cols-5\":\"menu_row-cols-5__3rocn\",\"row-cols-6\":\"menu_row-cols-6__2jdor\",\"order-first\":\"menu_order-first__mT3b0\",\"order-last\":\"menu_order-last__1dxJQ\",\"order-0\":\"menu_order-0__28Zt8\",\"order-1\":\"menu_order-1__1ji1e\",\"order-2\":\"menu_order-2__3pdfm\",\"order-3\":\"menu_order-3__2gAHB\",\"order-4\":\"menu_order-4__hnDda\",\"order-5\":\"menu_order-5__2beY_\",\"order-6\":\"menu_order-6__1Qwaz\",\"order-7\":\"menu_order-7__3okn1\",\"order-8\":\"menu_order-8__2_XTo\",\"order-9\":\"menu_order-9__3C2X7\",\"order-10\":\"menu_order-10__1niVD\",\"order-11\":\"menu_order-11__ce6wg\",\"order-12\":\"menu_order-12__1OeJE\",\"offset-1\":\"menu_offset-1__2AlN8\",\"offset-2\":\"menu_offset-2__2qtHq\",\"offset-3\":\"menu_offset-3__1fChb\",\"offset-4\":\"menu_offset-4__1aREg\",\"offset-5\":\"menu_offset-5__1_BWL\",\"offset-6\":\"menu_offset-6__2BZqM\",\"offset-7\":\"menu_offset-7__3unhg\",\"offset-8\":\"menu_offset-8__2Nh1-\",\"offset-9\":\"menu_offset-9__3XUMs\",\"offset-10\":\"menu_offset-10__31zAy\",\"offset-11\":\"menu_offset-11__VaXRN\",\"row-cols-sm-1\":\"menu_row-cols-sm-1__SNpGc\",\"row-cols-sm-2\":\"menu_row-cols-sm-2__3837x\",\"row-cols-sm-3\":\"menu_row-cols-sm-3__1gI5T\",\"row-cols-sm-4\":\"menu_row-cols-sm-4__rEjMn\",\"row-cols-sm-5\":\"menu_row-cols-sm-5__GUzY0\",\"row-cols-sm-6\":\"menu_row-cols-sm-6__1N9gr\",\"order-sm-first\":\"menu_order-sm-first__2eGR0\",\"order-sm-last\":\"menu_order-sm-last__1LYJ7\",\"order-sm-0\":\"menu_order-sm-0__2C6gM\",\"order-sm-1\":\"menu_order-sm-1__1WQ_u\",\"order-sm-2\":\"menu_order-sm-2__-Orx1\",\"order-sm-3\":\"menu_order-sm-3__zIt91\",\"order-sm-4\":\"menu_order-sm-4__10d3d\",\"order-sm-5\":\"menu_order-sm-5__FjCrj\",\"order-sm-6\":\"menu_order-sm-6__1oicC\",\"order-sm-7\":\"menu_order-sm-7__1LjkZ\",\"order-sm-8\":\"menu_order-sm-8__36rjF\",\"order-sm-9\":\"menu_order-sm-9__22VaB\",\"order-sm-10\":\"menu_order-sm-10__3Hztr\",\"order-sm-11\":\"menu_order-sm-11__2HXDJ\",\"order-sm-12\":\"menu_order-sm-12__1gbg6\",\"offset-sm-0\":\"menu_offset-sm-0__2MANs\",\"offset-sm-1\":\"menu_offset-sm-1__25fx9\",\"offset-sm-2\":\"menu_offset-sm-2__2VIYo\",\"offset-sm-3\":\"menu_offset-sm-3__15W2W\",\"offset-sm-4\":\"menu_offset-sm-4__hkSkB\",\"offset-sm-5\":\"menu_offset-sm-5__3FZM8\",\"offset-sm-6\":\"menu_offset-sm-6__MGQiP\",\"offset-sm-7\":\"menu_offset-sm-7__2Xnj9\",\"offset-sm-8\":\"menu_offset-sm-8__2xXGg\",\"offset-sm-9\":\"menu_offset-sm-9__MeV5I\",\"offset-sm-10\":\"menu_offset-sm-10__2CAoy\",\"offset-sm-11\":\"menu_offset-sm-11__Kofjx\",\"row-cols-md-1\":\"menu_row-cols-md-1__7BJhJ\",\"row-cols-md-2\":\"menu_row-cols-md-2__1s5IF\",\"row-cols-md-3\":\"menu_row-cols-md-3__1H2tU\",\"row-cols-md-4\":\"menu_row-cols-md-4__dOwSI\",\"row-cols-md-5\":\"menu_row-cols-md-5__2wXpo\",\"row-cols-md-6\":\"menu_row-cols-md-6__WM0F-\",\"order-md-first\":\"menu_order-md-first__3a61X\",\"order-md-last\":\"menu_order-md-last__2XtpG\",\"order-md-0\":\"menu_order-md-0__3ho_Y\",\"order-md-1\":\"menu_order-md-1__196im\",\"order-md-2\":\"menu_order-md-2__nY1kr\",\"order-md-3\":\"menu_order-md-3__3lP6C\",\"order-md-4\":\"menu_order-md-4__3Idcu\",\"order-md-5\":\"menu_order-md-5__3e-nC\",\"order-md-6\":\"menu_order-md-6__3juBi\",\"order-md-7\":\"menu_order-md-7__2gNzw\",\"order-md-8\":\"menu_order-md-8__3VtPD\",\"order-md-9\":\"menu_order-md-9__3X2le\",\"order-md-10\":\"menu_order-md-10__3tx-i\",\"order-md-11\":\"menu_order-md-11__2M_RC\",\"order-md-12\":\"menu_order-md-12__3FTGy\",\"offset-md-0\":\"menu_offset-md-0__3G0Xy\",\"offset-md-1\":\"menu_offset-md-1__19voa\",\"offset-md-2\":\"menu_offset-md-2__1KCAZ\",\"offset-md-3\":\"menu_offset-md-3__-3lse\",\"offset-md-4\":\"menu_offset-md-4__1OBq4\",\"offset-md-5\":\"menu_offset-md-5__uElpD\",\"offset-md-6\":\"menu_offset-md-6__35xee\",\"offset-md-7\":\"menu_offset-md-7__3uOEg\",\"offset-md-8\":\"menu_offset-md-8__3sMEa\",\"offset-md-9\":\"menu_offset-md-9__1iTAq\",\"offset-md-10\":\"menu_offset-md-10__34YkB\",\"offset-md-11\":\"menu_offset-md-11__2J7DI\",\"row-cols-lg-1\":\"menu_row-cols-lg-1__3wvBL\",\"row-cols-lg-2\":\"menu_row-cols-lg-2__1qnKO\",\"row-cols-lg-3\":\"menu_row-cols-lg-3__33hgP\",\"row-cols-lg-4\":\"menu_row-cols-lg-4__2IGHX\",\"row-cols-lg-5\":\"menu_row-cols-lg-5__uUDv4\",\"row-cols-lg-6\":\"menu_row-cols-lg-6__1tA_m\",\"order-lg-first\":\"menu_order-lg-first__3G4-l\",\"order-lg-last\":\"menu_order-lg-last__2zGtl\",\"order-lg-0\":\"menu_order-lg-0__1alLI\",\"order-lg-1\":\"menu_order-lg-1__3aqjP\",\"order-lg-2\":\"menu_order-lg-2__2R-js\",\"order-lg-3\":\"menu_order-lg-3__2KLAa\",\"order-lg-4\":\"menu_order-lg-4__2SIov\",\"order-lg-5\":\"menu_order-lg-5__KUXu5\",\"order-lg-6\":\"menu_order-lg-6__3ONX9\",\"order-lg-7\":\"menu_order-lg-7__yLLsY\",\"order-lg-8\":\"menu_order-lg-8__3o0On\",\"order-lg-9\":\"menu_order-lg-9__1XsE4\",\"order-lg-10\":\"menu_order-lg-10__2K70h\",\"order-lg-11\":\"menu_order-lg-11__3rXOE\",\"order-lg-12\":\"menu_order-lg-12__2sT1g\",\"offset-lg-0\":\"menu_offset-lg-0__Hlfiq\",\"offset-lg-1\":\"menu_offset-lg-1__1c5kj\",\"offset-lg-2\":\"menu_offset-lg-2__nkYgp\",\"offset-lg-3\":\"menu_offset-lg-3__3yqE0\",\"offset-lg-4\":\"menu_offset-lg-4__2d8lz\",\"offset-lg-5\":\"menu_offset-lg-5__2Fd6n\",\"offset-lg-6\":\"menu_offset-lg-6__2LYXy\",\"offset-lg-7\":\"menu_offset-lg-7__17GMY\",\"offset-lg-8\":\"menu_offset-lg-8__5QZr7\",\"offset-lg-9\":\"menu_offset-lg-9__27GGV\",\"offset-lg-10\":\"menu_offset-lg-10__14Zwr\",\"offset-lg-11\":\"menu_offset-lg-11__1AXr_\",\"row-cols-xl-1\":\"menu_row-cols-xl-1__gRyLq\",\"row-cols-xl-2\":\"menu_row-cols-xl-2__27kup\",\"row-cols-xl-3\":\"menu_row-cols-xl-3__1siUc\",\"row-cols-xl-4\":\"menu_row-cols-xl-4__xB9uK\",\"row-cols-xl-5\":\"menu_row-cols-xl-5__3ask0\",\"row-cols-xl-6\":\"menu_row-cols-xl-6__1AS2K\",\"order-xl-first\":\"menu_order-xl-first__2Cjxx\",\"order-xl-last\":\"menu_order-xl-last__3qmE7\",\"order-xl-0\":\"menu_order-xl-0__3PPQ4\",\"order-xl-1\":\"menu_order-xl-1__3Pt9J\",\"order-xl-2\":\"menu_order-xl-2__2gQO5\",\"order-xl-3\":\"menu_order-xl-3__UwHHa\",\"order-xl-4\":\"menu_order-xl-4__3cQtI\",\"order-xl-5\":\"menu_order-xl-5__211gH\",\"order-xl-6\":\"menu_order-xl-6__1cTfZ\",\"order-xl-7\":\"menu_order-xl-7__m1xUw\",\"order-xl-8\":\"menu_order-xl-8__-eyVI\",\"order-xl-9\":\"menu_order-xl-9__ExhZw\",\"order-xl-10\":\"menu_order-xl-10__1mblG\",\"order-xl-11\":\"menu_order-xl-11__lp_oU\",\"order-xl-12\":\"menu_order-xl-12__23ZGr\",\"offset-xl-0\":\"menu_offset-xl-0__3fc_k\",\"offset-xl-1\":\"menu_offset-xl-1__3nmi2\",\"offset-xl-2\":\"menu_offset-xl-2__1FFyh\",\"offset-xl-3\":\"menu_offset-xl-3___70hN\",\"offset-xl-4\":\"menu_offset-xl-4__-quAA\",\"offset-xl-5\":\"menu_offset-xl-5__ygMfl\",\"offset-xl-6\":\"menu_offset-xl-6__85wVg\",\"offset-xl-7\":\"menu_offset-xl-7__1welk\",\"offset-xl-8\":\"menu_offset-xl-8__XZ2rT\",\"offset-xl-9\":\"menu_offset-xl-9__2Zftr\",\"offset-xl-10\":\"menu_offset-xl-10__1KoLh\",\"offset-xl-11\":\"menu_offset-xl-11__3QYaO\",\"d-none\":\"menu_d-none__hO951\",\"d-inline\":\"menu_d-inline__3BrC3\",\"d-inline-block\":\"menu_d-inline-block__2LgHY\",\"d-block\":\"menu_d-block__1C0pn\",\"d-table\":\"menu_d-table__3Obgq\",\"d-table-row\":\"menu_d-table-row__Lodpw\",\"d-table-cell\":\"menu_d-table-cell__2SHZG\",\"d-flex\":\"menu_d-flex__1p8TH\",\"d-inline-flex\":\"menu_d-inline-flex__KCv_a\",\"d-sm-none\":\"menu_d-sm-none__3T6ad\",\"d-sm-inline\":\"menu_d-sm-inline__1gDn8\",\"d-sm-inline-block\":\"menu_d-sm-inline-block__2nKlV\",\"d-sm-block\":\"menu_d-sm-block__1AsO5\",\"d-sm-table\":\"menu_d-sm-table__2rAEh\",\"d-sm-table-row\":\"menu_d-sm-table-row__3ZQMz\",\"d-sm-table-cell\":\"menu_d-sm-table-cell__yABsR\",\"d-sm-flex\":\"menu_d-sm-flex__3GgHp\",\"d-sm-inline-flex\":\"menu_d-sm-inline-flex__2gGy7\",\"d-md-none\":\"menu_d-md-none__2A84t\",\"d-md-inline\":\"menu_d-md-inline__WoI_k\",\"d-md-inline-block\":\"menu_d-md-inline-block__Itus3\",\"d-md-block\":\"menu_d-md-block__JQjEa\",\"d-md-table\":\"menu_d-md-table__ObE-k\",\"d-md-table-row\":\"menu_d-md-table-row__n0f14\",\"d-md-table-cell\":\"menu_d-md-table-cell__38DRi\",\"d-md-flex\":\"menu_d-md-flex__20-l5\",\"d-md-inline-flex\":\"menu_d-md-inline-flex__3bBUY\",\"d-lg-none\":\"menu_d-lg-none__1fe26\",\"d-lg-inline\":\"menu_d-lg-inline__51DzX\",\"d-lg-inline-block\":\"menu_d-lg-inline-block__2rxmm\",\"d-lg-block\":\"menu_d-lg-block__MAnJr\",\"d-lg-table\":\"menu_d-lg-table__C4gdU\",\"d-lg-table-row\":\"menu_d-lg-table-row__3Slel\",\"d-lg-table-cell\":\"menu_d-lg-table-cell__1lGWr\",\"d-lg-flex\":\"menu_d-lg-flex__3zXKL\",\"d-lg-inline-flex\":\"menu_d-lg-inline-flex__1JnOy\",\"d-xl-none\":\"menu_d-xl-none__wjl-n\",\"d-xl-inline\":\"menu_d-xl-inline__14d8H\",\"d-xl-inline-block\":\"menu_d-xl-inline-block__ipbg3\",\"d-xl-block\":\"menu_d-xl-block__3HXLB\",\"d-xl-table\":\"menu_d-xl-table__i1hcN\",\"d-xl-table-row\":\"menu_d-xl-table-row__2-gex\",\"d-xl-table-cell\":\"menu_d-xl-table-cell__2atNX\",\"d-xl-flex\":\"menu_d-xl-flex__2EfuH\",\"d-xl-inline-flex\":\"menu_d-xl-inline-flex__3tcTJ\",\"d-print-none\":\"menu_d-print-none__13ulY\",\"d-print-inline\":\"menu_d-print-inline__3qdj7\",\"d-print-inline-block\":\"menu_d-print-inline-block__fbUMv\",\"d-print-block\":\"menu_d-print-block__1r_4I\",\"d-print-table\":\"menu_d-print-table__3Xhzr\",\"d-print-table-row\":\"menu_d-print-table-row__2EnvG\",\"d-print-table-cell\":\"menu_d-print-table-cell__1ahQX\",\"d-print-flex\":\"menu_d-print-flex__IaetA\",\"d-print-inline-flex\":\"menu_d-print-inline-flex__3StqR\",\"flex-row\":\"menu_flex-row__2DkXN\",\"flex-column\":\"menu_flex-column__3qQuc\",\"flex-row-reverse\":\"menu_flex-row-reverse__2sbx4\",\"flex-column-reverse\":\"menu_flex-column-reverse__2EKlf\",\"flex-wrap\":\"menu_flex-wrap__1RUVi\",\"flex-nowrap\":\"menu_flex-nowrap__2iChZ\",\"flex-wrap-reverse\":\"menu_flex-wrap-reverse__2C5pw\",\"flex-fill\":\"menu_flex-fill__3_YJe\",\"flex-grow-0\":\"menu_flex-grow-0__3Ui1e\",\"flex-grow-1\":\"menu_flex-grow-1__2DVty\",\"flex-shrink-0\":\"menu_flex-shrink-0__2rlNw\",\"flex-shrink-1\":\"menu_flex-shrink-1__1h30P\",\"justify-content-start\":\"menu_justify-content-start__2qVT0\",\"justify-content-end\":\"menu_justify-content-end__2ifZY\",\"justify-content-center\":\"menu_justify-content-center__3HbpP\",\"justify-content-between\":\"menu_justify-content-between__ZYGHI\",\"justify-content-around\":\"menu_justify-content-around__2dzeb\",\"align-items-start\":\"menu_align-items-start__3QIvo\",\"align-items-end\":\"menu_align-items-end__192bR\",\"align-items-center\":\"menu_align-items-center__1UBqc\",\"align-items-baseline\":\"menu_align-items-baseline__3_bY2\",\"align-items-stretch\":\"menu_align-items-stretch__IMKNS\",\"align-content-start\":\"menu_align-content-start__7ec79\",\"align-content-end\":\"menu_align-content-end__1QPlj\",\"align-content-center\":\"menu_align-content-center__3kgX_\",\"align-content-between\":\"menu_align-content-between__1cU_8\",\"align-content-around\":\"menu_align-content-around__23aNp\",\"align-content-stretch\":\"menu_align-content-stretch__3nZSG\",\"align-self-auto\":\"menu_align-self-auto__2O1p4\",\"align-self-start\":\"menu_align-self-start__3Eri5\",\"align-self-end\":\"menu_align-self-end__1lKNk\",\"align-self-center\":\"menu_align-self-center__2JxBX\",\"align-self-baseline\":\"menu_align-self-baseline__10SpI\",\"align-self-stretch\":\"menu_align-self-stretch__12cKL\",\"flex-sm-row\":\"menu_flex-sm-row__2NGYx\",\"flex-sm-column\":\"menu_flex-sm-column__2v0WC\",\"flex-sm-row-reverse\":\"menu_flex-sm-row-reverse__k5CIL\",\"flex-sm-column-reverse\":\"menu_flex-sm-column-reverse__28_tW\",\"flex-sm-wrap\":\"menu_flex-sm-wrap__18Qlf\",\"flex-sm-nowrap\":\"menu_flex-sm-nowrap__p_yfN\",\"flex-sm-wrap-reverse\":\"menu_flex-sm-wrap-reverse__24v6w\",\"flex-sm-fill\":\"menu_flex-sm-fill__31O5G\",\"flex-sm-grow-0\":\"menu_flex-sm-grow-0__2gLoH\",\"flex-sm-grow-1\":\"menu_flex-sm-grow-1__U8_Dz\",\"flex-sm-shrink-0\":\"menu_flex-sm-shrink-0__3EyIq\",\"flex-sm-shrink-1\":\"menu_flex-sm-shrink-1__2z2EB\",\"justify-content-sm-start\":\"menu_justify-content-sm-start__2pP_M\",\"justify-content-sm-end\":\"menu_justify-content-sm-end__2zGfK\",\"justify-content-sm-center\":\"menu_justify-content-sm-center__16yNK\",\"justify-content-sm-between\":\"menu_justify-content-sm-between__2dBMM\",\"justify-content-sm-around\":\"menu_justify-content-sm-around__Bjs7h\",\"align-items-sm-start\":\"menu_align-items-sm-start__1P8fq\",\"align-items-sm-end\":\"menu_align-items-sm-end__2u60e\",\"align-items-sm-center\":\"menu_align-items-sm-center__1NwVy\",\"align-items-sm-baseline\":\"menu_align-items-sm-baseline__9uftn\",\"align-items-sm-stretch\":\"menu_align-items-sm-stretch__25gSs\",\"align-content-sm-start\":\"menu_align-content-sm-start__XO6do\",\"align-content-sm-end\":\"menu_align-content-sm-end__3gxv9\",\"align-content-sm-center\":\"menu_align-content-sm-center__1cwXq\",\"align-content-sm-between\":\"menu_align-content-sm-between__10vdR\",\"align-content-sm-around\":\"menu_align-content-sm-around__jNfBf\",\"align-content-sm-stretch\":\"menu_align-content-sm-stretch__2T_4_\",\"align-self-sm-auto\":\"menu_align-self-sm-auto__2BJnm\",\"align-self-sm-start\":\"menu_align-self-sm-start__TmZDq\",\"align-self-sm-end\":\"menu_align-self-sm-end__3Nlfo\",\"align-self-sm-center\":\"menu_align-self-sm-center__2cei4\",\"align-self-sm-baseline\":\"menu_align-self-sm-baseline__18v4U\",\"align-self-sm-stretch\":\"menu_align-self-sm-stretch__3efWQ\",\"flex-md-row\":\"menu_flex-md-row__2_KPX\",\"flex-md-column\":\"menu_flex-md-column__5ICK9\",\"flex-md-row-reverse\":\"menu_flex-md-row-reverse__1CJ5z\",\"flex-md-column-reverse\":\"menu_flex-md-column-reverse__DjLrU\",\"flex-md-wrap\":\"menu_flex-md-wrap__3DMpn\",\"flex-md-nowrap\":\"menu_flex-md-nowrap__e4VM-\",\"flex-md-wrap-reverse\":\"menu_flex-md-wrap-reverse__3by33\",\"flex-md-fill\":\"menu_flex-md-fill__jIYGA\",\"flex-md-grow-0\":\"menu_flex-md-grow-0__38D3u\",\"flex-md-grow-1\":\"menu_flex-md-grow-1__31UCg\",\"flex-md-shrink-0\":\"menu_flex-md-shrink-0__2FB5z\",\"flex-md-shrink-1\":\"menu_flex-md-shrink-1__UBJ-O\",\"justify-content-md-start\":\"menu_justify-content-md-start__1xXfi\",\"justify-content-md-end\":\"menu_justify-content-md-end__1owCB\",\"justify-content-md-center\":\"menu_justify-content-md-center__3Ndoa\",\"justify-content-md-between\":\"menu_justify-content-md-between__22wKQ\",\"justify-content-md-around\":\"menu_justify-content-md-around__Bsx1q\",\"align-items-md-start\":\"menu_align-items-md-start__3GeNT\",\"align-items-md-end\":\"menu_align-items-md-end__3-Ec9\",\"align-items-md-center\":\"menu_align-items-md-center__19kPW\",\"align-items-md-baseline\":\"menu_align-items-md-baseline__12ZHy\",\"align-items-md-stretch\":\"menu_align-items-md-stretch__2TcVt\",\"align-content-md-start\":\"menu_align-content-md-start__23ziI\",\"align-content-md-end\":\"menu_align-content-md-end__1OnCt\",\"align-content-md-center\":\"menu_align-content-md-center__3Q8gE\",\"align-content-md-between\":\"menu_align-content-md-between__1aisP\",\"align-content-md-around\":\"menu_align-content-md-around__3Tqat\",\"align-content-md-stretch\":\"menu_align-content-md-stretch__1s--5\",\"align-self-md-auto\":\"menu_align-self-md-auto__BKrn6\",\"align-self-md-start\":\"menu_align-self-md-start__oYAF5\",\"align-self-md-end\":\"menu_align-self-md-end__1Oq7C\",\"align-self-md-center\":\"menu_align-self-md-center__Zq46m\",\"align-self-md-baseline\":\"menu_align-self-md-baseline__3YfX0\",\"align-self-md-stretch\":\"menu_align-self-md-stretch__YaeEa\",\"flex-lg-row\":\"menu_flex-lg-row__3fUNz\",\"flex-lg-column\":\"menu_flex-lg-column__2vqFQ\",\"flex-lg-row-reverse\":\"menu_flex-lg-row-reverse__1WHge\",\"flex-lg-column-reverse\":\"menu_flex-lg-column-reverse__33hEX\",\"flex-lg-wrap\":\"menu_flex-lg-wrap__rkszB\",\"flex-lg-nowrap\":\"menu_flex-lg-nowrap__E3ovA\",\"flex-lg-wrap-reverse\":\"menu_flex-lg-wrap-reverse__1qLDV\",\"flex-lg-fill\":\"menu_flex-lg-fill__1Uuh3\",\"flex-lg-grow-0\":\"menu_flex-lg-grow-0__FAjOh\",\"flex-lg-grow-1\":\"menu_flex-lg-grow-1__1pAQA\",\"flex-lg-shrink-0\":\"menu_flex-lg-shrink-0__1whuQ\",\"flex-lg-shrink-1\":\"menu_flex-lg-shrink-1__31r9t\",\"justify-content-lg-start\":\"menu_justify-content-lg-start__3YQtD\",\"justify-content-lg-end\":\"menu_justify-content-lg-end__33SXf\",\"justify-content-lg-center\":\"menu_justify-content-lg-center__172BL\",\"justify-content-lg-between\":\"menu_justify-content-lg-between__O1mfX\",\"justify-content-lg-around\":\"menu_justify-content-lg-around__1q0Zk\",\"align-items-lg-start\":\"menu_align-items-lg-start__1QJQI\",\"align-items-lg-end\":\"menu_align-items-lg-end__27WgH\",\"align-items-lg-center\":\"menu_align-items-lg-center__-nEJi\",\"align-items-lg-baseline\":\"menu_align-items-lg-baseline__XN7Ye\",\"align-items-lg-stretch\":\"menu_align-items-lg-stretch__2cyaU\",\"align-content-lg-start\":\"menu_align-content-lg-start__2K58-\",\"align-content-lg-end\":\"menu_align-content-lg-end__2ABbX\",\"align-content-lg-center\":\"menu_align-content-lg-center__2W8sN\",\"align-content-lg-between\":\"menu_align-content-lg-between__153OB\",\"align-content-lg-around\":\"menu_align-content-lg-around__3_DIf\",\"align-content-lg-stretch\":\"menu_align-content-lg-stretch__1TD9C\",\"align-self-lg-auto\":\"menu_align-self-lg-auto__2L7MT\",\"align-self-lg-start\":\"menu_align-self-lg-start__1U3fD\",\"align-self-lg-end\":\"menu_align-self-lg-end__1uiY-\",\"align-self-lg-center\":\"menu_align-self-lg-center__JVq2a\",\"align-self-lg-baseline\":\"menu_align-self-lg-baseline__tG4hy\",\"align-self-lg-stretch\":\"menu_align-self-lg-stretch__Cj0AM\",\"flex-xl-row\":\"menu_flex-xl-row__bMSxW\",\"flex-xl-column\":\"menu_flex-xl-column__2aLIm\",\"flex-xl-row-reverse\":\"menu_flex-xl-row-reverse__19geW\",\"flex-xl-column-reverse\":\"menu_flex-xl-column-reverse__2imW6\",\"flex-xl-wrap\":\"menu_flex-xl-wrap__rZjmn\",\"flex-xl-nowrap\":\"menu_flex-xl-nowrap__1FAV2\",\"flex-xl-wrap-reverse\":\"menu_flex-xl-wrap-reverse__SUX0d\",\"flex-xl-fill\":\"menu_flex-xl-fill__3-IGY\",\"flex-xl-grow-0\":\"menu_flex-xl-grow-0__2bOFX\",\"flex-xl-grow-1\":\"menu_flex-xl-grow-1__3GrUI\",\"flex-xl-shrink-0\":\"menu_flex-xl-shrink-0__2-GuK\",\"flex-xl-shrink-1\":\"menu_flex-xl-shrink-1__2gubA\",\"justify-content-xl-start\":\"menu_justify-content-xl-start__3-Nyz\",\"justify-content-xl-end\":\"menu_justify-content-xl-end__2GMJz\",\"justify-content-xl-center\":\"menu_justify-content-xl-center__3DfJX\",\"justify-content-xl-between\":\"menu_justify-content-xl-between__2WXNz\",\"justify-content-xl-around\":\"menu_justify-content-xl-around__2DnRc\",\"align-items-xl-start\":\"menu_align-items-xl-start__1FOp6\",\"align-items-xl-end\":\"menu_align-items-xl-end__3UAzZ\",\"align-items-xl-center\":\"menu_align-items-xl-center__2CQ_B\",\"align-items-xl-baseline\":\"menu_align-items-xl-baseline__1cTvT\",\"align-items-xl-stretch\":\"menu_align-items-xl-stretch__oQJeM\",\"align-content-xl-start\":\"menu_align-content-xl-start__2suYZ\",\"align-content-xl-end\":\"menu_align-content-xl-end__3RQTu\",\"align-content-xl-center\":\"menu_align-content-xl-center__1Wd1o\",\"align-content-xl-between\":\"menu_align-content-xl-between__1nik9\",\"align-content-xl-around\":\"menu_align-content-xl-around__le2by\",\"align-content-xl-stretch\":\"menu_align-content-xl-stretch__2t8zp\",\"align-self-xl-auto\":\"menu_align-self-xl-auto__3MXjR\",\"align-self-xl-start\":\"menu_align-self-xl-start__1vnJw\",\"align-self-xl-end\":\"menu_align-self-xl-end__1OpLp\",\"align-self-xl-center\":\"menu_align-self-xl-center__13-JI\",\"align-self-xl-baseline\":\"menu_align-self-xl-baseline__3t1He\",\"align-self-xl-stretch\":\"menu_align-self-xl-stretch__tj9Hm\",\"m-0\":\"menu_m-0__3OpQ1\",\"mt-0\":\"menu_mt-0__3pDk2\",\"my-0\":\"menu_my-0__16uPV\",\"mr-0\":\"menu_mr-0__2ewYJ\",\"mx-0\":\"menu_mx-0__A6FB6\",\"mb-0\":\"menu_mb-0__3aTo8\",\"ml-0\":\"menu_ml-0__3Liss\",\"m-1\":\"menu_m-1__1MP7K\",\"mt-1\":\"menu_mt-1__23SOm\",\"my-1\":\"menu_my-1__3KNOo\",\"mr-1\":\"menu_mr-1__eJzo4\",\"mx-1\":\"menu_mx-1__2J4cH\",\"mb-1\":\"menu_mb-1__PlYRp\",\"ml-1\":\"menu_ml-1__1KBHe\",\"m-2\":\"menu_m-2__QagHG\",\"mt-2\":\"menu_mt-2__27NYn\",\"my-2\":\"menu_my-2__2xLCi\",\"mr-2\":\"menu_mr-2__2eHtN\",\"mx-2\":\"menu_mx-2__1lum4\",\"mb-2\":\"menu_mb-2__1H2AY\",\"ml-2\":\"menu_ml-2__1-Dfg\",\"m-3\":\"menu_m-3__Ty2NP\",\"mt-3\":\"menu_mt-3__1OhEj\",\"my-3\":\"menu_my-3__2k0hl\",\"mr-3\":\"menu_mr-3___1WQx\",\"mx-3\":\"menu_mx-3__18LAG\",\"mb-3\":\"menu_mb-3__1gwiN\",\"ml-3\":\"menu_ml-3__1RdDo\",\"m-4\":\"menu_m-4__15FtW\",\"mt-4\":\"menu_mt-4__JWqoZ\",\"my-4\":\"menu_my-4__oYQml\",\"mr-4\":\"menu_mr-4__1fnGY\",\"mx-4\":\"menu_mx-4__27EJm\",\"mb-4\":\"menu_mb-4__15Qkm\",\"ml-4\":\"menu_ml-4__AfflE\",\"m-5\":\"menu_m-5__1hZxE\",\"mt-5\":\"menu_mt-5__B9yN4\",\"my-5\":\"menu_my-5__1swih\",\"mr-5\":\"menu_mr-5__21-jP\",\"mx-5\":\"menu_mx-5__1b_SJ\",\"mb-5\":\"menu_mb-5__12SSM\",\"ml-5\":\"menu_ml-5__2H6Tg\",\"p-0\":\"menu_p-0__jPnIL\",\"pt-0\":\"menu_pt-0__2vNRD\",\"py-0\":\"menu_py-0__380Sh\",\"pr-0\":\"menu_pr-0__23KGp\",\"px-0\":\"menu_px-0__-T-kw\",\"pb-0\":\"menu_pb-0__13O-9\",\"pl-0\":\"menu_pl-0__3f6KR\",\"p-1\":\"menu_p-1__1CKgd\",\"pt-1\":\"menu_pt-1__22HvZ\",\"py-1\":\"menu_py-1__2etH6\",\"pr-1\":\"menu_pr-1__17vru\",\"px-1\":\"menu_px-1__1MA4M\",\"pb-1\":\"menu_pb-1__2bIOn\",\"pl-1\":\"menu_pl-1__KFP8Q\",\"p-2\":\"menu_p-2__46Ra7\",\"pt-2\":\"menu_pt-2__1LV3u\",\"py-2\":\"menu_py-2__C2Tgg\",\"pr-2\":\"menu_pr-2__3JGgx\",\"px-2\":\"menu_px-2__2wIFU\",\"pb-2\":\"menu_pb-2__2lmaw\",\"pl-2\":\"menu_pl-2__3R41y\",\"p-3\":\"menu_p-3__AsAFW\",\"pt-3\":\"menu_pt-3__ORacl\",\"py-3\":\"menu_py-3__2EMiO\",\"pr-3\":\"menu_pr-3__3PSpF\",\"px-3\":\"menu_px-3__2jDsd\",\"pb-3\":\"menu_pb-3__3Idjv\",\"pl-3\":\"menu_pl-3__1u5NO\",\"p-4\":\"menu_p-4__2_6F3\",\"pt-4\":\"menu_pt-4__kD2CZ\",\"py-4\":\"menu_py-4__2tLwc\",\"pr-4\":\"menu_pr-4__1g4FD\",\"px-4\":\"menu_px-4__27dVs\",\"pb-4\":\"menu_pb-4__6r67D\",\"pl-4\":\"menu_pl-4__3L3TW\",\"p-5\":\"menu_p-5__dOtEc\",\"pt-5\":\"menu_pt-5__11Eoo\",\"py-5\":\"menu_py-5__iaOsE\",\"pr-5\":\"menu_pr-5__2YBeF\",\"px-5\":\"menu_px-5__3JvHK\",\"pb-5\":\"menu_pb-5__XcHD1\",\"pl-5\":\"menu_pl-5__2BbVl\",\"m-n1\":\"menu_m-n1__2Fhqh\",\"mt-n1\":\"menu_mt-n1__1rErf\",\"my-n1\":\"menu_my-n1__2MpL7\",\"mr-n1\":\"menu_mr-n1__3Q4wG\",\"mx-n1\":\"menu_mx-n1__1NBc9\",\"mb-n1\":\"menu_mb-n1__19sod\",\"ml-n1\":\"menu_ml-n1__2RPGA\",\"m-n2\":\"menu_m-n2__3amee\",\"mt-n2\":\"menu_mt-n2__2OayD\",\"my-n2\":\"menu_my-n2__2U12g\",\"mr-n2\":\"menu_mr-n2__23G7W\",\"mx-n2\":\"menu_mx-n2__3Mrfl\",\"mb-n2\":\"menu_mb-n2__3fZE3\",\"ml-n2\":\"menu_ml-n2__1LE1k\",\"m-n3\":\"menu_m-n3__31ddi\",\"mt-n3\":\"menu_mt-n3__2gjEy\",\"my-n3\":\"menu_my-n3__1mtHg\",\"mr-n3\":\"menu_mr-n3__2P4Es\",\"mx-n3\":\"menu_mx-n3__28O1z\",\"mb-n3\":\"menu_mb-n3__FGn9J\",\"ml-n3\":\"menu_ml-n3__1M1y3\",\"m-n4\":\"menu_m-n4__145IN\",\"mt-n4\":\"menu_mt-n4__2KgPM\",\"my-n4\":\"menu_my-n4__3EcGn\",\"mr-n4\":\"menu_mr-n4__1l6DG\",\"mx-n4\":\"menu_mx-n4__1mDAw\",\"mb-n4\":\"menu_mb-n4__w650R\",\"ml-n4\":\"menu_ml-n4__17eEF\",\"m-n5\":\"menu_m-n5__3q2fe\",\"mt-n5\":\"menu_mt-n5__e6efU\",\"my-n5\":\"menu_my-n5__1SND6\",\"mr-n5\":\"menu_mr-n5__2jCY7\",\"mx-n5\":\"menu_mx-n5__3JcFt\",\"mb-n5\":\"menu_mb-n5__78HIt\",\"ml-n5\":\"menu_ml-n5__L1QwR\",\"m-auto\":\"menu_m-auto__21pWb\",\"mt-auto\":\"menu_mt-auto__1zJIj\",\"my-auto\":\"menu_my-auto__23Dm3\",\"mr-auto\":\"menu_mr-auto__1Ei-w\",\"mx-auto\":\"menu_mx-auto__18MZx\",\"mb-auto\":\"menu_mb-auto__1Ce8E\",\"ml-auto\":\"menu_ml-auto__1Lve5\",\"m-sm-0\":\"menu_m-sm-0__2JqsE\",\"mt-sm-0\":\"menu_mt-sm-0__13tKx\",\"my-sm-0\":\"menu_my-sm-0__1o4B7\",\"mr-sm-0\":\"menu_mr-sm-0__2kgXh\",\"mx-sm-0\":\"menu_mx-sm-0__2aJJ-\",\"mb-sm-0\":\"menu_mb-sm-0__Rk0gA\",\"ml-sm-0\":\"menu_ml-sm-0__21o5b\",\"m-sm-1\":\"menu_m-sm-1__359Kq\",\"mt-sm-1\":\"menu_mt-sm-1__25ZI8\",\"my-sm-1\":\"menu_my-sm-1__3q5ia\",\"mr-sm-1\":\"menu_mr-sm-1__2VJJe\",\"mx-sm-1\":\"menu_mx-sm-1__1-Ha9\",\"mb-sm-1\":\"menu_mb-sm-1__3475Y\",\"ml-sm-1\":\"menu_ml-sm-1__HxaFh\",\"m-sm-2\":\"menu_m-sm-2__2hZ_e\",\"mt-sm-2\":\"menu_mt-sm-2__33Zeu\",\"my-sm-2\":\"menu_my-sm-2__3t8q2\",\"mr-sm-2\":\"menu_mr-sm-2__2B90v\",\"mx-sm-2\":\"menu_mx-sm-2__3teY1\",\"mb-sm-2\":\"menu_mb-sm-2__HC3d2\",\"ml-sm-2\":\"menu_ml-sm-2__1wbY0\",\"m-sm-3\":\"menu_m-sm-3__msj7o\",\"mt-sm-3\":\"menu_mt-sm-3__24vfL\",\"my-sm-3\":\"menu_my-sm-3__5-Im2\",\"mr-sm-3\":\"menu_mr-sm-3__2mX9u\",\"mx-sm-3\":\"menu_mx-sm-3__2KZ1R\",\"mb-sm-3\":\"menu_mb-sm-3__2CgM8\",\"ml-sm-3\":\"menu_ml-sm-3__1brpN\",\"m-sm-4\":\"menu_m-sm-4__2kCEI\",\"mt-sm-4\":\"menu_mt-sm-4__3tTZK\",\"my-sm-4\":\"menu_my-sm-4__JFIlC\",\"mr-sm-4\":\"menu_mr-sm-4__1qkqM\",\"mx-sm-4\":\"menu_mx-sm-4__2t2Gd\",\"mb-sm-4\":\"menu_mb-sm-4__JZJjT\",\"ml-sm-4\":\"menu_ml-sm-4__1_0bp\",\"m-sm-5\":\"menu_m-sm-5__3Pvrc\",\"mt-sm-5\":\"menu_mt-sm-5__2Wfbg\",\"my-sm-5\":\"menu_my-sm-5__36WC_\",\"mr-sm-5\":\"menu_mr-sm-5__258Wt\",\"mx-sm-5\":\"menu_mx-sm-5__383fk\",\"mb-sm-5\":\"menu_mb-sm-5__3Q8Dr\",\"ml-sm-5\":\"menu_ml-sm-5__YonCW\",\"p-sm-0\":\"menu_p-sm-0__q7F4t\",\"pt-sm-0\":\"menu_pt-sm-0__XcCRS\",\"py-sm-0\":\"menu_py-sm-0__11jmc\",\"pr-sm-0\":\"menu_pr-sm-0__1SUKJ\",\"px-sm-0\":\"menu_px-sm-0__VQi-A\",\"pb-sm-0\":\"menu_pb-sm-0__3DOJO\",\"pl-sm-0\":\"menu_pl-sm-0__3V343\",\"p-sm-1\":\"menu_p-sm-1__qF3ig\",\"pt-sm-1\":\"menu_pt-sm-1__37HFY\",\"py-sm-1\":\"menu_py-sm-1__3mjD8\",\"pr-sm-1\":\"menu_pr-sm-1__2Kv3G\",\"px-sm-1\":\"menu_px-sm-1__2SMZ6\",\"pb-sm-1\":\"menu_pb-sm-1__Lal4J\",\"pl-sm-1\":\"menu_pl-sm-1__1OMfP\",\"p-sm-2\":\"menu_p-sm-2__1ZIwx\",\"pt-sm-2\":\"menu_pt-sm-2__2N2z4\",\"py-sm-2\":\"menu_py-sm-2__3JQTe\",\"pr-sm-2\":\"menu_pr-sm-2__2GjFb\",\"px-sm-2\":\"menu_px-sm-2__6JlR_\",\"pb-sm-2\":\"menu_pb-sm-2__1kq0B\",\"pl-sm-2\":\"menu_pl-sm-2__3m-zC\",\"p-sm-3\":\"menu_p-sm-3__17PQQ\",\"pt-sm-3\":\"menu_pt-sm-3___-ZfP\",\"py-sm-3\":\"menu_py-sm-3__1hrc8\",\"pr-sm-3\":\"menu_pr-sm-3__28IB-\",\"px-sm-3\":\"menu_px-sm-3__3eudg\",\"pb-sm-3\":\"menu_pb-sm-3__2k0Rm\",\"pl-sm-3\":\"menu_pl-sm-3__3BjYn\",\"p-sm-4\":\"menu_p-sm-4__fgiQ6\",\"pt-sm-4\":\"menu_pt-sm-4__100VW\",\"py-sm-4\":\"menu_py-sm-4__2NYcH\",\"pr-sm-4\":\"menu_pr-sm-4__2Ka0R\",\"px-sm-4\":\"menu_px-sm-4__3QmyQ\",\"pb-sm-4\":\"menu_pb-sm-4__2v41l\",\"pl-sm-4\":\"menu_pl-sm-4__Mg1dQ\",\"p-sm-5\":\"menu_p-sm-5__V8ETO\",\"pt-sm-5\":\"menu_pt-sm-5__VXSGG\",\"py-sm-5\":\"menu_py-sm-5__2nJvU\",\"pr-sm-5\":\"menu_pr-sm-5__2fv7X\",\"px-sm-5\":\"menu_px-sm-5__2QiPn\",\"pb-sm-5\":\"menu_pb-sm-5__2om85\",\"pl-sm-5\":\"menu_pl-sm-5__3ksVT\",\"m-sm-n1\":\"menu_m-sm-n1__2UcI7\",\"mt-sm-n1\":\"menu_mt-sm-n1__1WAYZ\",\"my-sm-n1\":\"menu_my-sm-n1__2yBKs\",\"mr-sm-n1\":\"menu_mr-sm-n1__1XYqt\",\"mx-sm-n1\":\"menu_mx-sm-n1__Q-jqY\",\"mb-sm-n1\":\"menu_mb-sm-n1__NSz01\",\"ml-sm-n1\":\"menu_ml-sm-n1__1OKB2\",\"m-sm-n2\":\"menu_m-sm-n2__-5p2F\",\"mt-sm-n2\":\"menu_mt-sm-n2__3gG9S\",\"my-sm-n2\":\"menu_my-sm-n2__3gj67\",\"mr-sm-n2\":\"menu_mr-sm-n2__1qAuo\",\"mx-sm-n2\":\"menu_mx-sm-n2__2ZRiF\",\"mb-sm-n2\":\"menu_mb-sm-n2__lyxy3\",\"ml-sm-n2\":\"menu_ml-sm-n2__13MKg\",\"m-sm-n3\":\"menu_m-sm-n3__15tc6\",\"mt-sm-n3\":\"menu_mt-sm-n3__xXWW2\",\"my-sm-n3\":\"menu_my-sm-n3__bdiov\",\"mr-sm-n3\":\"menu_mr-sm-n3__2C07i\",\"mx-sm-n3\":\"menu_mx-sm-n3__kWhi0\",\"mb-sm-n3\":\"menu_mb-sm-n3__2p-ZQ\",\"ml-sm-n3\":\"menu_ml-sm-n3__3BB3x\",\"m-sm-n4\":\"menu_m-sm-n4__3tXRc\",\"mt-sm-n4\":\"menu_mt-sm-n4__346N-\",\"my-sm-n4\":\"menu_my-sm-n4__1_E3V\",\"mr-sm-n4\":\"menu_mr-sm-n4__2Uqh-\",\"mx-sm-n4\":\"menu_mx-sm-n4__B0WJd\",\"mb-sm-n4\":\"menu_mb-sm-n4__2QSzP\",\"ml-sm-n4\":\"menu_ml-sm-n4__2qskL\",\"m-sm-n5\":\"menu_m-sm-n5__3oG60\",\"mt-sm-n5\":\"menu_mt-sm-n5__1XwVb\",\"my-sm-n5\":\"menu_my-sm-n5__ZodLd\",\"mr-sm-n5\":\"menu_mr-sm-n5__Vc001\",\"mx-sm-n5\":\"menu_mx-sm-n5__ifSsG\",\"mb-sm-n5\":\"menu_mb-sm-n5__hGLam\",\"ml-sm-n5\":\"menu_ml-sm-n5__3VJ76\",\"m-sm-auto\":\"menu_m-sm-auto__1qLzR\",\"mt-sm-auto\":\"menu_mt-sm-auto__3_vAQ\",\"my-sm-auto\":\"menu_my-sm-auto__13nfq\",\"mr-sm-auto\":\"menu_mr-sm-auto__3I7uV\",\"mx-sm-auto\":\"menu_mx-sm-auto__1CHfo\",\"mb-sm-auto\":\"menu_mb-sm-auto__f3t1t\",\"ml-sm-auto\":\"menu_ml-sm-auto__2_5aR\",\"m-md-0\":\"menu_m-md-0__2zpvg\",\"mt-md-0\":\"menu_mt-md-0__63YKS\",\"my-md-0\":\"menu_my-md-0__146Gz\",\"mr-md-0\":\"menu_mr-md-0__3dBG7\",\"mx-md-0\":\"menu_mx-md-0__3l5qx\",\"mb-md-0\":\"menu_mb-md-0__204l_\",\"ml-md-0\":\"menu_ml-md-0__2aGyK\",\"m-md-1\":\"menu_m-md-1__2DBYU\",\"mt-md-1\":\"menu_mt-md-1__ME7OG\",\"my-md-1\":\"menu_my-md-1__38Trf\",\"mr-md-1\":\"menu_mr-md-1__WFKmT\",\"mx-md-1\":\"menu_mx-md-1__29-S5\",\"mb-md-1\":\"menu_mb-md-1__1-JZy\",\"ml-md-1\":\"menu_ml-md-1__1ueiS\",\"m-md-2\":\"menu_m-md-2__3OAv9\",\"mt-md-2\":\"menu_mt-md-2__3l_h7\",\"my-md-2\":\"menu_my-md-2__12jsB\",\"mr-md-2\":\"menu_mr-md-2__nwo5Z\",\"mx-md-2\":\"menu_mx-md-2__HySs4\",\"mb-md-2\":\"menu_mb-md-2__1B9cd\",\"ml-md-2\":\"menu_ml-md-2__2SJmY\",\"m-md-3\":\"menu_m-md-3__1xO5v\",\"mt-md-3\":\"menu_mt-md-3__9F2U0\",\"my-md-3\":\"menu_my-md-3__1Y2dJ\",\"mr-md-3\":\"menu_mr-md-3__18mua\",\"mx-md-3\":\"menu_mx-md-3__36DQh\",\"mb-md-3\":\"menu_mb-md-3__2PdOr\",\"ml-md-3\":\"menu_ml-md-3__3UWuR\",\"m-md-4\":\"menu_m-md-4__VlIxQ\",\"mt-md-4\":\"menu_mt-md-4__3A7n3\",\"my-md-4\":\"menu_my-md-4__MX1iU\",\"mr-md-4\":\"menu_mr-md-4__3Snvv\",\"mx-md-4\":\"menu_mx-md-4__2vFS3\",\"mb-md-4\":\"menu_mb-md-4__1NPoC\",\"ml-md-4\":\"menu_ml-md-4__1GkZq\",\"m-md-5\":\"menu_m-md-5__2cj1w\",\"mt-md-5\":\"menu_mt-md-5__3qxUM\",\"my-md-5\":\"menu_my-md-5__YbxhB\",\"mr-md-5\":\"menu_mr-md-5__1lRtf\",\"mx-md-5\":\"menu_mx-md-5__6VFsN\",\"mb-md-5\":\"menu_mb-md-5__2D3_6\",\"ml-md-5\":\"menu_ml-md-5__2-Xia\",\"p-md-0\":\"menu_p-md-0__2uH3y\",\"pt-md-0\":\"menu_pt-md-0__1MLG_\",\"py-md-0\":\"menu_py-md-0__1gj8k\",\"pr-md-0\":\"menu_pr-md-0__K8y2j\",\"px-md-0\":\"menu_px-md-0__16ND6\",\"pb-md-0\":\"menu_pb-md-0__1HLC_\",\"pl-md-0\":\"menu_pl-md-0__2YZy2\",\"p-md-1\":\"menu_p-md-1__2o8m4\",\"pt-md-1\":\"menu_pt-md-1__3aZUa\",\"py-md-1\":\"menu_py-md-1__3v5_3\",\"pr-md-1\":\"menu_pr-md-1__1ebgD\",\"px-md-1\":\"menu_px-md-1__2cI9I\",\"pb-md-1\":\"menu_pb-md-1__X4J9e\",\"pl-md-1\":\"menu_pl-md-1__1Jn1U\",\"p-md-2\":\"menu_p-md-2__2dHm9\",\"pt-md-2\":\"menu_pt-md-2__1o8F5\",\"py-md-2\":\"menu_py-md-2__1nA7r\",\"pr-md-2\":\"menu_pr-md-2__3ptAu\",\"px-md-2\":\"menu_px-md-2__2Diz3\",\"pb-md-2\":\"menu_pb-md-2__1tde7\",\"pl-md-2\":\"menu_pl-md-2__3eDLF\",\"p-md-3\":\"menu_p-md-3__NqU7_\",\"pt-md-3\":\"menu_pt-md-3__5Kaeo\",\"py-md-3\":\"menu_py-md-3__UcO9_\",\"pr-md-3\":\"menu_pr-md-3__T7UNu\",\"px-md-3\":\"menu_px-md-3__1KnEQ\",\"pb-md-3\":\"menu_pb-md-3__2tb5J\",\"pl-md-3\":\"menu_pl-md-3__Yx6Jf\",\"p-md-4\":\"menu_p-md-4__2Mljq\",\"pt-md-4\":\"menu_pt-md-4__L8IYx\",\"py-md-4\":\"menu_py-md-4__3_jpx\",\"pr-md-4\":\"menu_pr-md-4__3UFpE\",\"px-md-4\":\"menu_px-md-4__1AifX\",\"pb-md-4\":\"menu_pb-md-4__fAr_E\",\"pl-md-4\":\"menu_pl-md-4__3m6SP\",\"p-md-5\":\"menu_p-md-5__RLXHW\",\"pt-md-5\":\"menu_pt-md-5__3B47b\",\"py-md-5\":\"menu_py-md-5__3ERwj\",\"pr-md-5\":\"menu_pr-md-5__2F_QQ\",\"px-md-5\":\"menu_px-md-5__2qE6P\",\"pb-md-5\":\"menu_pb-md-5__1omwU\",\"pl-md-5\":\"menu_pl-md-5__3LiO0\",\"m-md-n1\":\"menu_m-md-n1__1vTHH\",\"mt-md-n1\":\"menu_mt-md-n1__2u08p\",\"my-md-n1\":\"menu_my-md-n1__3sXaQ\",\"mr-md-n1\":\"menu_mr-md-n1__1rlBp\",\"mx-md-n1\":\"menu_mx-md-n1__1F3uK\",\"mb-md-n1\":\"menu_mb-md-n1__3q7mX\",\"ml-md-n1\":\"menu_ml-md-n1__3Wp1c\",\"m-md-n2\":\"menu_m-md-n2__1tk8z\",\"mt-md-n2\":\"menu_mt-md-n2__1lqOs\",\"my-md-n2\":\"menu_my-md-n2__hjbAA\",\"mr-md-n2\":\"menu_mr-md-n2__2WIos\",\"mx-md-n2\":\"menu_mx-md-n2__M86Pi\",\"mb-md-n2\":\"menu_mb-md-n2__FI6A7\",\"ml-md-n2\":\"menu_ml-md-n2__3Lmdb\",\"m-md-n3\":\"menu_m-md-n3__2AaDE\",\"mt-md-n3\":\"menu_mt-md-n3__z0au0\",\"my-md-n3\":\"menu_my-md-n3__2vlqN\",\"mr-md-n3\":\"menu_mr-md-n3__1Npm-\",\"mx-md-n3\":\"menu_mx-md-n3__23_QJ\",\"mb-md-n3\":\"menu_mb-md-n3__3kAmM\",\"ml-md-n3\":\"menu_ml-md-n3__2KOwJ\",\"m-md-n4\":\"menu_m-md-n4__3tQlJ\",\"mt-md-n4\":\"menu_mt-md-n4__22ynV\",\"my-md-n4\":\"menu_my-md-n4__2IJZJ\",\"mr-md-n4\":\"menu_mr-md-n4__2bRjJ\",\"mx-md-n4\":\"menu_mx-md-n4__3g9oo\",\"mb-md-n4\":\"menu_mb-md-n4__37DBb\",\"ml-md-n4\":\"menu_ml-md-n4__3LFe5\",\"m-md-n5\":\"menu_m-md-n5__NVAYw\",\"mt-md-n5\":\"menu_mt-md-n5__3w69m\",\"my-md-n5\":\"menu_my-md-n5__3Ingg\",\"mr-md-n5\":\"menu_mr-md-n5__r4Zlj\",\"mx-md-n5\":\"menu_mx-md-n5__1Z2Hb\",\"mb-md-n5\":\"menu_mb-md-n5__1Fbvr\",\"ml-md-n5\":\"menu_ml-md-n5__1_mvM\",\"m-md-auto\":\"menu_m-md-auto__1lb5h\",\"mt-md-auto\":\"menu_mt-md-auto__1EoKj\",\"my-md-auto\":\"menu_my-md-auto__2VEqa\",\"mr-md-auto\":\"menu_mr-md-auto__2V43C\",\"mx-md-auto\":\"menu_mx-md-auto__38uNb\",\"mb-md-auto\":\"menu_mb-md-auto__1lPke\",\"ml-md-auto\":\"menu_ml-md-auto__3TkDJ\",\"m-lg-0\":\"menu_m-lg-0__25qKL\",\"mt-lg-0\":\"menu_mt-lg-0__2G-cy\",\"my-lg-0\":\"menu_my-lg-0__-GqZs\",\"mr-lg-0\":\"menu_mr-lg-0__2_sCP\",\"mx-lg-0\":\"menu_mx-lg-0__3PMJc\",\"mb-lg-0\":\"menu_mb-lg-0__1V-kT\",\"ml-lg-0\":\"menu_ml-lg-0__2t8lk\",\"m-lg-1\":\"menu_m-lg-1__3glJz\",\"mt-lg-1\":\"menu_mt-lg-1__18od7\",\"my-lg-1\":\"menu_my-lg-1__1iaqf\",\"mr-lg-1\":\"menu_mr-lg-1__OuskO\",\"mx-lg-1\":\"menu_mx-lg-1__2-YuR\",\"mb-lg-1\":\"menu_mb-lg-1__1lzRG\",\"ml-lg-1\":\"menu_ml-lg-1__2DcEH\",\"m-lg-2\":\"menu_m-lg-2__1w3Yf\",\"mt-lg-2\":\"menu_mt-lg-2__3BTyX\",\"my-lg-2\":\"menu_my-lg-2__3KsHw\",\"mr-lg-2\":\"menu_mr-lg-2__1YTfy\",\"mx-lg-2\":\"menu_mx-lg-2__fyom4\",\"mb-lg-2\":\"menu_mb-lg-2__1T2nB\",\"ml-lg-2\":\"menu_ml-lg-2__1Cv_r\",\"m-lg-3\":\"menu_m-lg-3__60XU0\",\"mt-lg-3\":\"menu_mt-lg-3__29ix-\",\"my-lg-3\":\"menu_my-lg-3__3_iEC\",\"mr-lg-3\":\"menu_mr-lg-3__3-Lg-\",\"mx-lg-3\":\"menu_mx-lg-3__3f_sF\",\"mb-lg-3\":\"menu_mb-lg-3__20W4I\",\"ml-lg-3\":\"menu_ml-lg-3__1hLDH\",\"m-lg-4\":\"menu_m-lg-4__1Zjah\",\"mt-lg-4\":\"menu_mt-lg-4__369Vv\",\"my-lg-4\":\"menu_my-lg-4__29yxd\",\"mr-lg-4\":\"menu_mr-lg-4__2nm43\",\"mx-lg-4\":\"menu_mx-lg-4__2Svaj\",\"mb-lg-4\":\"menu_mb-lg-4__1RJo2\",\"ml-lg-4\":\"menu_ml-lg-4__3hle-\",\"m-lg-5\":\"menu_m-lg-5__2f-5i\",\"mt-lg-5\":\"menu_mt-lg-5__2nnCp\",\"my-lg-5\":\"menu_my-lg-5__6uFtI\",\"mr-lg-5\":\"menu_mr-lg-5__Vqjgj\",\"mx-lg-5\":\"menu_mx-lg-5__t8Siw\",\"mb-lg-5\":\"menu_mb-lg-5__3c4lW\",\"ml-lg-5\":\"menu_ml-lg-5__3xy4M\",\"p-lg-0\":\"menu_p-lg-0__3sg_f\",\"pt-lg-0\":\"menu_pt-lg-0__WYB3N\",\"py-lg-0\":\"menu_py-lg-0__1IUMC\",\"pr-lg-0\":\"menu_pr-lg-0__3gSzo\",\"px-lg-0\":\"menu_px-lg-0__1QGvg\",\"pb-lg-0\":\"menu_pb-lg-0__2L5Bt\",\"pl-lg-0\":\"menu_pl-lg-0__1k37r\",\"p-lg-1\":\"menu_p-lg-1__35QYi\",\"pt-lg-1\":\"menu_pt-lg-1__3E_Vh\",\"py-lg-1\":\"menu_py-lg-1__G61u0\",\"pr-lg-1\":\"menu_pr-lg-1__jj8bo\",\"px-lg-1\":\"menu_px-lg-1__2aXRp\",\"pb-lg-1\":\"menu_pb-lg-1__1qcts\",\"pl-lg-1\":\"menu_pl-lg-1__2z37y\",\"p-lg-2\":\"menu_p-lg-2__20DLd\",\"pt-lg-2\":\"menu_pt-lg-2__dR1cj\",\"py-lg-2\":\"menu_py-lg-2__2E9pj\",\"pr-lg-2\":\"menu_pr-lg-2__1v3cs\",\"px-lg-2\":\"menu_px-lg-2__235dd\",\"pb-lg-2\":\"menu_pb-lg-2__2enaB\",\"pl-lg-2\":\"menu_pl-lg-2__3nMGR\",\"p-lg-3\":\"menu_p-lg-3__2LJVU\",\"pt-lg-3\":\"menu_pt-lg-3__10RIR\",\"py-lg-3\":\"menu_py-lg-3__1bL3R\",\"pr-lg-3\":\"menu_pr-lg-3__2LXvI\",\"px-lg-3\":\"menu_px-lg-3__22KTN\",\"pb-lg-3\":\"menu_pb-lg-3__3OHXc\",\"pl-lg-3\":\"menu_pl-lg-3__1yJmI\",\"p-lg-4\":\"menu_p-lg-4__3ZzoK\",\"pt-lg-4\":\"menu_pt-lg-4__yvuLE\",\"py-lg-4\":\"menu_py-lg-4__mntBb\",\"pr-lg-4\":\"menu_pr-lg-4__2OPoj\",\"px-lg-4\":\"menu_px-lg-4__1E_nU\",\"pb-lg-4\":\"menu_pb-lg-4__3KVe1\",\"pl-lg-4\":\"menu_pl-lg-4__2Ke-u\",\"p-lg-5\":\"menu_p-lg-5__26kfz\",\"pt-lg-5\":\"menu_pt-lg-5__1I9hn\",\"py-lg-5\":\"menu_py-lg-5__3Co1X\",\"pr-lg-5\":\"menu_pr-lg-5__3dVEg\",\"px-lg-5\":\"menu_px-lg-5__gkvWd\",\"pb-lg-5\":\"menu_pb-lg-5__2kWVt\",\"pl-lg-5\":\"menu_pl-lg-5__1XsNx\",\"m-lg-n1\":\"menu_m-lg-n1__19_xw\",\"mt-lg-n1\":\"menu_mt-lg-n1__3yOPi\",\"my-lg-n1\":\"menu_my-lg-n1__2xZc4\",\"mr-lg-n1\":\"menu_mr-lg-n1__1nOPZ\",\"mx-lg-n1\":\"menu_mx-lg-n1__loleZ\",\"mb-lg-n1\":\"menu_mb-lg-n1__2qLSg\",\"ml-lg-n1\":\"menu_ml-lg-n1__3MYUa\",\"m-lg-n2\":\"menu_m-lg-n2__3y-K6\",\"mt-lg-n2\":\"menu_mt-lg-n2__sjZ_M\",\"my-lg-n2\":\"menu_my-lg-n2__2U3D1\",\"mr-lg-n2\":\"menu_mr-lg-n2__3Oco2\",\"mx-lg-n2\":\"menu_mx-lg-n2__Hn44k\",\"mb-lg-n2\":\"menu_mb-lg-n2__1q-zz\",\"ml-lg-n2\":\"menu_ml-lg-n2__3VPZM\",\"m-lg-n3\":\"menu_m-lg-n3__2xpV0\",\"mt-lg-n3\":\"menu_mt-lg-n3__2AbI8\",\"my-lg-n3\":\"menu_my-lg-n3__dZot5\",\"mr-lg-n3\":\"menu_mr-lg-n3__21QEb\",\"mx-lg-n3\":\"menu_mx-lg-n3__1Bm6Q\",\"mb-lg-n3\":\"menu_mb-lg-n3__27_JR\",\"ml-lg-n3\":\"menu_ml-lg-n3__2EJ5J\",\"m-lg-n4\":\"menu_m-lg-n4__33Ww4\",\"mt-lg-n4\":\"menu_mt-lg-n4__2FHEG\",\"my-lg-n4\":\"menu_my-lg-n4__3ZL5C\",\"mr-lg-n4\":\"menu_mr-lg-n4__13DRq\",\"mx-lg-n4\":\"menu_mx-lg-n4__2LIfB\",\"mb-lg-n4\":\"menu_mb-lg-n4__2GMEa\",\"ml-lg-n4\":\"menu_ml-lg-n4__ZUsWO\",\"m-lg-n5\":\"menu_m-lg-n5__21rZJ\",\"mt-lg-n5\":\"menu_mt-lg-n5__3wleX\",\"my-lg-n5\":\"menu_my-lg-n5__13olS\",\"mr-lg-n5\":\"menu_mr-lg-n5__2sZb3\",\"mx-lg-n5\":\"menu_mx-lg-n5__1MH02\",\"mb-lg-n5\":\"menu_mb-lg-n5__81aLp\",\"ml-lg-n5\":\"menu_ml-lg-n5__5uQMp\",\"m-lg-auto\":\"menu_m-lg-auto__20RYg\",\"mt-lg-auto\":\"menu_mt-lg-auto__3vhst\",\"my-lg-auto\":\"menu_my-lg-auto__Xl8W9\",\"mr-lg-auto\":\"menu_mr-lg-auto__2Hl5_\",\"mx-lg-auto\":\"menu_mx-lg-auto__ldFNq\",\"mb-lg-auto\":\"menu_mb-lg-auto__8Zl9a\",\"ml-lg-auto\":\"menu_ml-lg-auto__QI7wZ\",\"m-xl-0\":\"menu_m-xl-0__1c6A7\",\"mt-xl-0\":\"menu_mt-xl-0__1R7yd\",\"my-xl-0\":\"menu_my-xl-0__20LC4\",\"mr-xl-0\":\"menu_mr-xl-0__WbyKm\",\"mx-xl-0\":\"menu_mx-xl-0__L3dnm\",\"mb-xl-0\":\"menu_mb-xl-0__WveSW\",\"ml-xl-0\":\"menu_ml-xl-0__2BrWO\",\"m-xl-1\":\"menu_m-xl-1__VPuiz\",\"mt-xl-1\":\"menu_mt-xl-1__2aQ3c\",\"my-xl-1\":\"menu_my-xl-1__1VMw3\",\"mr-xl-1\":\"menu_mr-xl-1__2Ay8r\",\"mx-xl-1\":\"menu_mx-xl-1__2pkwV\",\"mb-xl-1\":\"menu_mb-xl-1__2mn-j\",\"ml-xl-1\":\"menu_ml-xl-1__3Fw4D\",\"m-xl-2\":\"menu_m-xl-2__3joVO\",\"mt-xl-2\":\"menu_mt-xl-2__1USfY\",\"my-xl-2\":\"menu_my-xl-2__1-BTT\",\"mr-xl-2\":\"menu_mr-xl-2__36KBQ\",\"mx-xl-2\":\"menu_mx-xl-2__16D0d\",\"mb-xl-2\":\"menu_mb-xl-2__26Rya\",\"ml-xl-2\":\"menu_ml-xl-2__1kKQq\",\"m-xl-3\":\"menu_m-xl-3__2G95W\",\"mt-xl-3\":\"menu_mt-xl-3__jAV-h\",\"my-xl-3\":\"menu_my-xl-3__leT0K\",\"mr-xl-3\":\"menu_mr-xl-3__18hIC\",\"mx-xl-3\":\"menu_mx-xl-3__32qd9\",\"mb-xl-3\":\"menu_mb-xl-3__es2YM\",\"ml-xl-3\":\"menu_ml-xl-3__3oNJc\",\"m-xl-4\":\"menu_m-xl-4__3-7ij\",\"mt-xl-4\":\"menu_mt-xl-4__3I9aE\",\"my-xl-4\":\"menu_my-xl-4__Xk7RV\",\"mr-xl-4\":\"menu_mr-xl-4__JI-G5\",\"mx-xl-4\":\"menu_mx-xl-4__3jofG\",\"mb-xl-4\":\"menu_mb-xl-4__ctI25\",\"ml-xl-4\":\"menu_ml-xl-4__2el-k\",\"m-xl-5\":\"menu_m-xl-5__2xDKd\",\"mt-xl-5\":\"menu_mt-xl-5__2cBQQ\",\"my-xl-5\":\"menu_my-xl-5__IORjv\",\"mr-xl-5\":\"menu_mr-xl-5__4gi9H\",\"mx-xl-5\":\"menu_mx-xl-5__2Hyso\",\"mb-xl-5\":\"menu_mb-xl-5__iywOB\",\"ml-xl-5\":\"menu_ml-xl-5__3E5nl\",\"p-xl-0\":\"menu_p-xl-0__2g2GV\",\"pt-xl-0\":\"menu_pt-xl-0__23o9r\",\"py-xl-0\":\"menu_py-xl-0__1up_b\",\"pr-xl-0\":\"menu_pr-xl-0__3KwY9\",\"px-xl-0\":\"menu_px-xl-0__1dPCg\",\"pb-xl-0\":\"menu_pb-xl-0__1wl1o\",\"pl-xl-0\":\"menu_pl-xl-0__2jorF\",\"p-xl-1\":\"menu_p-xl-1__1Fktp\",\"pt-xl-1\":\"menu_pt-xl-1__z-Nqc\",\"py-xl-1\":\"menu_py-xl-1__1Cxlm\",\"pr-xl-1\":\"menu_pr-xl-1__1KgsW\",\"px-xl-1\":\"menu_px-xl-1__3Uk7e\",\"pb-xl-1\":\"menu_pb-xl-1__3fbLY\",\"pl-xl-1\":\"menu_pl-xl-1__4aBSH\",\"p-xl-2\":\"menu_p-xl-2__1UA6-\",\"pt-xl-2\":\"menu_pt-xl-2__PkeSW\",\"py-xl-2\":\"menu_py-xl-2__3BZ9Q\",\"pr-xl-2\":\"menu_pr-xl-2__3mNgJ\",\"px-xl-2\":\"menu_px-xl-2__2mzdz\",\"pb-xl-2\":\"menu_pb-xl-2__My9N9\",\"pl-xl-2\":\"menu_pl-xl-2__2ZYqv\",\"p-xl-3\":\"menu_p-xl-3__1eLBo\",\"pt-xl-3\":\"menu_pt-xl-3__OSTJa\",\"py-xl-3\":\"menu_py-xl-3__1S0IM\",\"pr-xl-3\":\"menu_pr-xl-3__2QKI2\",\"px-xl-3\":\"menu_px-xl-3__eCrs-\",\"pb-xl-3\":\"menu_pb-xl-3__2l6kN\",\"pl-xl-3\":\"menu_pl-xl-3__GdVR3\",\"p-xl-4\":\"menu_p-xl-4__3XqWQ\",\"pt-xl-4\":\"menu_pt-xl-4__3tzSC\",\"py-xl-4\":\"menu_py-xl-4__pOaCX\",\"pr-xl-4\":\"menu_pr-xl-4__37oQ7\",\"px-xl-4\":\"menu_px-xl-4__2_jDJ\",\"pb-xl-4\":\"menu_pb-xl-4__GaCEU\",\"pl-xl-4\":\"menu_pl-xl-4__2iu7b\",\"p-xl-5\":\"menu_p-xl-5__2FCno\",\"pt-xl-5\":\"menu_pt-xl-5__1zhnY\",\"py-xl-5\":\"menu_py-xl-5__1U672\",\"pr-xl-5\":\"menu_pr-xl-5__3nzwf\",\"px-xl-5\":\"menu_px-xl-5__3ohjD\",\"pb-xl-5\":\"menu_pb-xl-5__-BwWP\",\"pl-xl-5\":\"menu_pl-xl-5__55lkB\",\"m-xl-n1\":\"menu_m-xl-n1__3t-Wm\",\"mt-xl-n1\":\"menu_mt-xl-n1__2AqOe\",\"my-xl-n1\":\"menu_my-xl-n1__26aCx\",\"mr-xl-n1\":\"menu_mr-xl-n1__1Hwnx\",\"mx-xl-n1\":\"menu_mx-xl-n1__2i0pb\",\"mb-xl-n1\":\"menu_mb-xl-n1__22g4z\",\"ml-xl-n1\":\"menu_ml-xl-n1__27lpB\",\"m-xl-n2\":\"menu_m-xl-n2__3u2N4\",\"mt-xl-n2\":\"menu_mt-xl-n2__zO53m\",\"my-xl-n2\":\"menu_my-xl-n2__2Wero\",\"mr-xl-n2\":\"menu_mr-xl-n2__1UIfk\",\"mx-xl-n2\":\"menu_mx-xl-n2__1ViVv\",\"mb-xl-n2\":\"menu_mb-xl-n2__N6wQN\",\"ml-xl-n2\":\"menu_ml-xl-n2__3Lfbg\",\"m-xl-n3\":\"menu_m-xl-n3__2srb7\",\"mt-xl-n3\":\"menu_mt-xl-n3__31Bwn\",\"my-xl-n3\":\"menu_my-xl-n3__3XIHv\",\"mr-xl-n3\":\"menu_mr-xl-n3__17dSu\",\"mx-xl-n3\":\"menu_mx-xl-n3__3UuYW\",\"mb-xl-n3\":\"menu_mb-xl-n3___hFhh\",\"ml-xl-n3\":\"menu_ml-xl-n3__2GEw-\",\"m-xl-n4\":\"menu_m-xl-n4__3orsJ\",\"mt-xl-n4\":\"menu_mt-xl-n4__15Vka\",\"my-xl-n4\":\"menu_my-xl-n4__ec3Sd\",\"mr-xl-n4\":\"menu_mr-xl-n4__N8oaO\",\"mx-xl-n4\":\"menu_mx-xl-n4__11gWt\",\"mb-xl-n4\":\"menu_mb-xl-n4__1VD5n\",\"ml-xl-n4\":\"menu_ml-xl-n4__KrDS4\",\"m-xl-n5\":\"menu_m-xl-n5__fT8CY\",\"mt-xl-n5\":\"menu_mt-xl-n5__3ZbY1\",\"my-xl-n5\":\"menu_my-xl-n5__2alZh\",\"mr-xl-n5\":\"menu_mr-xl-n5__1V5mw\",\"mx-xl-n5\":\"menu_mx-xl-n5__2vkua\",\"mb-xl-n5\":\"menu_mb-xl-n5__1Fg1n\",\"ml-xl-n5\":\"menu_ml-xl-n5__3ovID\",\"m-xl-auto\":\"menu_m-xl-auto__3L5_z\",\"mt-xl-auto\":\"menu_mt-xl-auto__3u9-W\",\"my-xl-auto\":\"menu_my-xl-auto__27qmI\",\"mr-xl-auto\":\"menu_mr-xl-auto__3JJkH\",\"mx-xl-auto\":\"menu_mx-xl-auto__Ft8EK\",\"mb-xl-auto\":\"menu_mb-xl-auto__3EN36\",\"ml-xl-auto\":\"menu_ml-xl-auto__3ag1A\",\"gradient-bg5\":\"menu_gradient-bg5__gz4Tt\",\"playerDetails\":\"menu_playerDetails__34Ryb\",\"avatar\":\"menu_avatar__177kP\",\"toggleDisplay\":\"menu_toggleDisplay__3WpGd\",\"slide-down\":\"menu_slide-down__2J0e8\",\"menuItem\":\"menu_menuItem__1jBss\",\"active\":\"menu_active__2MUcK\",\"listItem\":\"menu_listItem__13Hr6\",\"menuSection_options\":\"menu_menuSection_options__2T9mS\",\"menuSection\":\"menu_menuSection__CT4Vi\",\"menuTitle\":\"menu_menuTitle__3r2gI\",\"smallLink\":\"menu_smallLink__5n8FT\",\"bigLink\":\"menu_bigLink__2UKlD\",\"spacer\":\"menu_spacer__100gu\",\"arrowSize\":\"menu_arrowSize__MdH_o\",\"closeBtn\":\"menu_closeBtn__TbjZp\",\"collapsible\":\"menu_collapsible__LqnhW\",\"closed\":\"menu_closed__1csoz\"};","const PackageJson = require('../package.json');\r\n\r\nconst buildId = process.env.BUILD_ID || 'default';\r\nconst appCodePath = `${PackageJson.version}-${buildId}`;\r\n\r\nmodule.exports = {\r\n outputPath: 'leagues-client',\r\n buildId,\r\n applicationVersion: PackageJson.version,\r\n appCodePath,\r\n staticContentPath: 'public',\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"globalSearch_container__26VW7\",\"container-fluid\":\"globalSearch_container-fluid__12xOu\",\"container-xl\":\"globalSearch_container-xl__2GFYq\",\"container-lg\":\"globalSearch_container-lg__2oIhA\",\"container-md\":\"globalSearch_container-md__35xkU\",\"container-sm\":\"globalSearch_container-sm__Bf7Ib\",\"row\":\"globalSearch_row__JAFDs\",\"no-gutters\":\"globalSearch_no-gutters__3M7xu\",\"col\":\"globalSearch_col__1gf_Q\",\"col-xl\":\"globalSearch_col-xl__22bjX\",\"col-xl-auto\":\"globalSearch_col-xl-auto__gTL-9\",\"col-xl-12\":\"globalSearch_col-xl-12__2-_D8\",\"col-xl-11\":\"globalSearch_col-xl-11__2gPfj\",\"col-xl-10\":\"globalSearch_col-xl-10__rRuyh\",\"col-xl-9\":\"globalSearch_col-xl-9__3e2Gn\",\"col-xl-8\":\"globalSearch_col-xl-8__3sHa7\",\"col-xl-7\":\"globalSearch_col-xl-7__2R4bu\",\"col-xl-6\":\"globalSearch_col-xl-6__2iewq\",\"col-xl-5\":\"globalSearch_col-xl-5__2KmQm\",\"col-xl-4\":\"globalSearch_col-xl-4__3fuPb\",\"col-xl-3\":\"globalSearch_col-xl-3__BHseu\",\"col-xl-2\":\"globalSearch_col-xl-2__4m7Zb\",\"col-xl-1\":\"globalSearch_col-xl-1__1NqM_\",\"col-lg\":\"globalSearch_col-lg__3goit\",\"col-lg-auto\":\"globalSearch_col-lg-auto__1drRj\",\"col-lg-12\":\"globalSearch_col-lg-12__pzgSd\",\"col-lg-11\":\"globalSearch_col-lg-11__qppvq\",\"col-lg-10\":\"globalSearch_col-lg-10__3S5NQ\",\"col-lg-9\":\"globalSearch_col-lg-9__3SPQg\",\"col-lg-8\":\"globalSearch_col-lg-8__32d3a\",\"col-lg-7\":\"globalSearch_col-lg-7__9SEzG\",\"col-lg-6\":\"globalSearch_col-lg-6__2xBAD\",\"col-lg-5\":\"globalSearch_col-lg-5__BsrFT\",\"col-lg-4\":\"globalSearch_col-lg-4__smawi\",\"col-lg-3\":\"globalSearch_col-lg-3__3GzxN\",\"col-lg-2\":\"globalSearch_col-lg-2__3QED3\",\"col-lg-1\":\"globalSearch_col-lg-1__13x9y\",\"col-md\":\"globalSearch_col-md__175QC\",\"col-md-auto\":\"globalSearch_col-md-auto__2ocAO\",\"col-md-12\":\"globalSearch_col-md-12__1OuI6\",\"col-md-11\":\"globalSearch_col-md-11__2nXHD\",\"col-md-10\":\"globalSearch_col-md-10__1DXk4\",\"col-md-9\":\"globalSearch_col-md-9__2OcHz\",\"col-md-8\":\"globalSearch_col-md-8__17ckx\",\"col-md-7\":\"globalSearch_col-md-7__16rgF\",\"col-md-6\":\"globalSearch_col-md-6__Omkbr\",\"col-md-5\":\"globalSearch_col-md-5__9rfvG\",\"col-md-4\":\"globalSearch_col-md-4__2yIwt\",\"col-md-3\":\"globalSearch_col-md-3__3tElb\",\"col-md-2\":\"globalSearch_col-md-2__3z-tr\",\"col-md-1\":\"globalSearch_col-md-1__2BjK1\",\"col-sm\":\"globalSearch_col-sm__4ZwZU\",\"col-sm-auto\":\"globalSearch_col-sm-auto__1UnKM\",\"col-sm-12\":\"globalSearch_col-sm-12__2fidk\",\"col-sm-11\":\"globalSearch_col-sm-11__2GgmA\",\"col-sm-10\":\"globalSearch_col-sm-10__3Jk7s\",\"col-sm-9\":\"globalSearch_col-sm-9__3ee1y\",\"col-sm-8\":\"globalSearch_col-sm-8__1u8vt\",\"col-sm-7\":\"globalSearch_col-sm-7__3XJcm\",\"col-sm-6\":\"globalSearch_col-sm-6__23XFg\",\"col-sm-5\":\"globalSearch_col-sm-5__2VhBu\",\"col-sm-4\":\"globalSearch_col-sm-4__37ocI\",\"col-sm-3\":\"globalSearch_col-sm-3__1ahep\",\"col-sm-2\":\"globalSearch_col-sm-2__ONnlX\",\"col-sm-1\":\"globalSearch_col-sm-1__1i_Wb\",\"col-auto\":\"globalSearch_col-auto__-x6yx\",\"col-12\":\"globalSearch_col-12__1Scj2\",\"col-11\":\"globalSearch_col-11__tqvWi\",\"col-10\":\"globalSearch_col-10__1Ir6M\",\"col-9\":\"globalSearch_col-9__2LkPy\",\"col-8\":\"globalSearch_col-8__7gpES\",\"col-7\":\"globalSearch_col-7__2PB11\",\"col-6\":\"globalSearch_col-6__1XXIv\",\"col-5\":\"globalSearch_col-5__QyNe4\",\"col-4\":\"globalSearch_col-4__3HjIq\",\"col-3\":\"globalSearch_col-3__2EHu4\",\"col-2\":\"globalSearch_col-2__2n1Ls\",\"col-1\":\"globalSearch_col-1__2J2F_\",\"row-cols-1\":\"globalSearch_row-cols-1__mlkZv\",\"row-cols-2\":\"globalSearch_row-cols-2__2tJC1\",\"row-cols-3\":\"globalSearch_row-cols-3__2J_GQ\",\"row-cols-4\":\"globalSearch_row-cols-4__5equ1\",\"row-cols-5\":\"globalSearch_row-cols-5__1SQQp\",\"row-cols-6\":\"globalSearch_row-cols-6__oqhW-\",\"order-first\":\"globalSearch_order-first__3j5Ct\",\"order-last\":\"globalSearch_order-last__v00l1\",\"order-0\":\"globalSearch_order-0__15HiG\",\"order-1\":\"globalSearch_order-1__1EzPM\",\"order-2\":\"globalSearch_order-2__nKfL0\",\"order-3\":\"globalSearch_order-3__my4z1\",\"order-4\":\"globalSearch_order-4__1Ngdn\",\"order-5\":\"globalSearch_order-5__3THBp\",\"order-6\":\"globalSearch_order-6__2_p1C\",\"order-7\":\"globalSearch_order-7__3U2NN\",\"order-8\":\"globalSearch_order-8__1guH6\",\"order-9\":\"globalSearch_order-9__1QCO4\",\"order-10\":\"globalSearch_order-10__2QiL-\",\"order-11\":\"globalSearch_order-11__1cZhe\",\"order-12\":\"globalSearch_order-12__3wkhT\",\"offset-1\":\"globalSearch_offset-1__3p3EG\",\"offset-2\":\"globalSearch_offset-2__fmAuV\",\"offset-3\":\"globalSearch_offset-3__k-T3_\",\"offset-4\":\"globalSearch_offset-4__1xDSR\",\"offset-5\":\"globalSearch_offset-5__PXOH1\",\"offset-6\":\"globalSearch_offset-6__86Vfx\",\"offset-7\":\"globalSearch_offset-7__CWsxc\",\"offset-8\":\"globalSearch_offset-8__1QJbs\",\"offset-9\":\"globalSearch_offset-9__119tg\",\"offset-10\":\"globalSearch_offset-10__2ib9x\",\"offset-11\":\"globalSearch_offset-11__2HOPW\",\"row-cols-sm-1\":\"globalSearch_row-cols-sm-1__gambK\",\"row-cols-sm-2\":\"globalSearch_row-cols-sm-2__2WHmg\",\"row-cols-sm-3\":\"globalSearch_row-cols-sm-3__EmPYG\",\"row-cols-sm-4\":\"globalSearch_row-cols-sm-4__1SiL1\",\"row-cols-sm-5\":\"globalSearch_row-cols-sm-5__2WMw6\",\"row-cols-sm-6\":\"globalSearch_row-cols-sm-6__3Np1b\",\"order-sm-first\":\"globalSearch_order-sm-first__33oic\",\"order-sm-last\":\"globalSearch_order-sm-last__3XXx-\",\"order-sm-0\":\"globalSearch_order-sm-0__2D0wz\",\"order-sm-1\":\"globalSearch_order-sm-1__2oIKR\",\"order-sm-2\":\"globalSearch_order-sm-2__pX08q\",\"order-sm-3\":\"globalSearch_order-sm-3__3jFTr\",\"order-sm-4\":\"globalSearch_order-sm-4__3ciHd\",\"order-sm-5\":\"globalSearch_order-sm-5__mJbuB\",\"order-sm-6\":\"globalSearch_order-sm-6__1nX36\",\"order-sm-7\":\"globalSearch_order-sm-7__2rt9x\",\"order-sm-8\":\"globalSearch_order-sm-8__2DHHS\",\"order-sm-9\":\"globalSearch_order-sm-9__hDLRQ\",\"order-sm-10\":\"globalSearch_order-sm-10__2lDOh\",\"order-sm-11\":\"globalSearch_order-sm-11__1PTij\",\"order-sm-12\":\"globalSearch_order-sm-12__1hxwg\",\"offset-sm-0\":\"globalSearch_offset-sm-0__35qR-\",\"offset-sm-1\":\"globalSearch_offset-sm-1__1l06X\",\"offset-sm-2\":\"globalSearch_offset-sm-2__1Lhch\",\"offset-sm-3\":\"globalSearch_offset-sm-3__1ThVw\",\"offset-sm-4\":\"globalSearch_offset-sm-4__5QKUS\",\"offset-sm-5\":\"globalSearch_offset-sm-5__276qo\",\"offset-sm-6\":\"globalSearch_offset-sm-6__2HVBv\",\"offset-sm-7\":\"globalSearch_offset-sm-7__2f_Py\",\"offset-sm-8\":\"globalSearch_offset-sm-8__AHK1F\",\"offset-sm-9\":\"globalSearch_offset-sm-9__hbsde\",\"offset-sm-10\":\"globalSearch_offset-sm-10__39Kx7\",\"offset-sm-11\":\"globalSearch_offset-sm-11__qO5Fc\",\"row-cols-md-1\":\"globalSearch_row-cols-md-1__il3a0\",\"row-cols-md-2\":\"globalSearch_row-cols-md-2__2dZKg\",\"row-cols-md-3\":\"globalSearch_row-cols-md-3__152nn\",\"row-cols-md-4\":\"globalSearch_row-cols-md-4__1xHUw\",\"row-cols-md-5\":\"globalSearch_row-cols-md-5__39VPO\",\"row-cols-md-6\":\"globalSearch_row-cols-md-6__32d9_\",\"order-md-first\":\"globalSearch_order-md-first__2-yZu\",\"order-md-last\":\"globalSearch_order-md-last__3xQlP\",\"order-md-0\":\"globalSearch_order-md-0__26FBU\",\"order-md-1\":\"globalSearch_order-md-1__2WmWc\",\"order-md-2\":\"globalSearch_order-md-2__3oGpp\",\"order-md-3\":\"globalSearch_order-md-3__2UlMO\",\"order-md-4\":\"globalSearch_order-md-4__2PVzZ\",\"order-md-5\":\"globalSearch_order-md-5__1VbSk\",\"order-md-6\":\"globalSearch_order-md-6__3Rkpg\",\"order-md-7\":\"globalSearch_order-md-7__17U4u\",\"order-md-8\":\"globalSearch_order-md-8__23bmw\",\"order-md-9\":\"globalSearch_order-md-9__1C4A9\",\"order-md-10\":\"globalSearch_order-md-10__2UdYd\",\"order-md-11\":\"globalSearch_order-md-11__1Qm38\",\"order-md-12\":\"globalSearch_order-md-12__3jyNZ\",\"offset-md-0\":\"globalSearch_offset-md-0__1Y8dc\",\"offset-md-1\":\"globalSearch_offset-md-1__Jj4dM\",\"offset-md-2\":\"globalSearch_offset-md-2__1gBoo\",\"offset-md-3\":\"globalSearch_offset-md-3__Xsdtt\",\"offset-md-4\":\"globalSearch_offset-md-4__1k7tg\",\"offset-md-5\":\"globalSearch_offset-md-5__2hAnJ\",\"offset-md-6\":\"globalSearch_offset-md-6__3r-qe\",\"offset-md-7\":\"globalSearch_offset-md-7__1qpfn\",\"offset-md-8\":\"globalSearch_offset-md-8__1PmGF\",\"offset-md-9\":\"globalSearch_offset-md-9__2fJe0\",\"offset-md-10\":\"globalSearch_offset-md-10__3F1kh\",\"offset-md-11\":\"globalSearch_offset-md-11__3lnS3\",\"row-cols-lg-1\":\"globalSearch_row-cols-lg-1__3xE2P\",\"row-cols-lg-2\":\"globalSearch_row-cols-lg-2__1Wzkf\",\"row-cols-lg-3\":\"globalSearch_row-cols-lg-3__3tl6n\",\"row-cols-lg-4\":\"globalSearch_row-cols-lg-4__10BEm\",\"row-cols-lg-5\":\"globalSearch_row-cols-lg-5__1_3Sz\",\"row-cols-lg-6\":\"globalSearch_row-cols-lg-6__1HFxy\",\"order-lg-first\":\"globalSearch_order-lg-first__3rUn2\",\"order-lg-last\":\"globalSearch_order-lg-last__1uPc3\",\"order-lg-0\":\"globalSearch_order-lg-0__oWnEs\",\"order-lg-1\":\"globalSearch_order-lg-1__3VmNd\",\"order-lg-2\":\"globalSearch_order-lg-2__1_zsb\",\"order-lg-3\":\"globalSearch_order-lg-3__1KNMt\",\"order-lg-4\":\"globalSearch_order-lg-4__A3Tne\",\"order-lg-5\":\"globalSearch_order-lg-5__2tT0a\",\"order-lg-6\":\"globalSearch_order-lg-6__3aCIq\",\"order-lg-7\":\"globalSearch_order-lg-7__2Et89\",\"order-lg-8\":\"globalSearch_order-lg-8__2GDka\",\"order-lg-9\":\"globalSearch_order-lg-9__25b62\",\"order-lg-10\":\"globalSearch_order-lg-10__25S2g\",\"order-lg-11\":\"globalSearch_order-lg-11__3tEbV\",\"order-lg-12\":\"globalSearch_order-lg-12__N99Rl\",\"offset-lg-0\":\"globalSearch_offset-lg-0__Uc3wL\",\"offset-lg-1\":\"globalSearch_offset-lg-1__3Rroe\",\"offset-lg-2\":\"globalSearch_offset-lg-2__2sNC-\",\"offset-lg-3\":\"globalSearch_offset-lg-3__1Re_b\",\"offset-lg-4\":\"globalSearch_offset-lg-4__1VBUp\",\"offset-lg-5\":\"globalSearch_offset-lg-5__3Qgc9\",\"offset-lg-6\":\"globalSearch_offset-lg-6__1Nmqx\",\"offset-lg-7\":\"globalSearch_offset-lg-7__2i8Z6\",\"offset-lg-8\":\"globalSearch_offset-lg-8__a2irB\",\"offset-lg-9\":\"globalSearch_offset-lg-9__1J1xN\",\"offset-lg-10\":\"globalSearch_offset-lg-10__1nEKw\",\"offset-lg-11\":\"globalSearch_offset-lg-11__1qm9p\",\"row-cols-xl-1\":\"globalSearch_row-cols-xl-1__3q_rg\",\"row-cols-xl-2\":\"globalSearch_row-cols-xl-2__gq-qN\",\"row-cols-xl-3\":\"globalSearch_row-cols-xl-3__34MBh\",\"row-cols-xl-4\":\"globalSearch_row-cols-xl-4__3_yzY\",\"row-cols-xl-5\":\"globalSearch_row-cols-xl-5__3WsGY\",\"row-cols-xl-6\":\"globalSearch_row-cols-xl-6__n4D16\",\"order-xl-first\":\"globalSearch_order-xl-first__WKGIC\",\"order-xl-last\":\"globalSearch_order-xl-last__1DXfl\",\"order-xl-0\":\"globalSearch_order-xl-0__1KWoZ\",\"order-xl-1\":\"globalSearch_order-xl-1__2YsCb\",\"order-xl-2\":\"globalSearch_order-xl-2__eQbc-\",\"order-xl-3\":\"globalSearch_order-xl-3__Vgvne\",\"order-xl-4\":\"globalSearch_order-xl-4__3CLj-\",\"order-xl-5\":\"globalSearch_order-xl-5__ragNT\",\"order-xl-6\":\"globalSearch_order-xl-6__3tCgy\",\"order-xl-7\":\"globalSearch_order-xl-7__SpWOf\",\"order-xl-8\":\"globalSearch_order-xl-8__3mikd\",\"order-xl-9\":\"globalSearch_order-xl-9__qK3-w\",\"order-xl-10\":\"globalSearch_order-xl-10__1I_24\",\"order-xl-11\":\"globalSearch_order-xl-11__1EAih\",\"order-xl-12\":\"globalSearch_order-xl-12__3ZBBE\",\"offset-xl-0\":\"globalSearch_offset-xl-0__cK3Lz\",\"offset-xl-1\":\"globalSearch_offset-xl-1__1PjXn\",\"offset-xl-2\":\"globalSearch_offset-xl-2__37y-e\",\"offset-xl-3\":\"globalSearch_offset-xl-3__3xoym\",\"offset-xl-4\":\"globalSearch_offset-xl-4__d4yhn\",\"offset-xl-5\":\"globalSearch_offset-xl-5__3CsVr\",\"offset-xl-6\":\"globalSearch_offset-xl-6__ocTEQ\",\"offset-xl-7\":\"globalSearch_offset-xl-7__1qvlc\",\"offset-xl-8\":\"globalSearch_offset-xl-8__3QsGU\",\"offset-xl-9\":\"globalSearch_offset-xl-9__1gb4y\",\"offset-xl-10\":\"globalSearch_offset-xl-10__19ocM\",\"offset-xl-11\":\"globalSearch_offset-xl-11__1pt7r\",\"d-none\":\"globalSearch_d-none__2sFn7\",\"d-inline\":\"globalSearch_d-inline__1RFCo\",\"d-inline-block\":\"globalSearch_d-inline-block__18WRU\",\"d-block\":\"globalSearch_d-block__1lLiP\",\"d-table\":\"globalSearch_d-table__aR0fO\",\"d-table-row\":\"globalSearch_d-table-row__XiKU-\",\"d-table-cell\":\"globalSearch_d-table-cell__1lO5_\",\"d-flex\":\"globalSearch_d-flex__37l9U\",\"d-inline-flex\":\"globalSearch_d-inline-flex__2Nwfh\",\"d-sm-none\":\"globalSearch_d-sm-none__3NzZs\",\"d-sm-inline\":\"globalSearch_d-sm-inline__6YQZo\",\"d-sm-inline-block\":\"globalSearch_d-sm-inline-block__dcwGQ\",\"d-sm-block\":\"globalSearch_d-sm-block__uuCoD\",\"d-sm-table\":\"globalSearch_d-sm-table__33Tgg\",\"d-sm-table-row\":\"globalSearch_d-sm-table-row__2VVtE\",\"d-sm-table-cell\":\"globalSearch_d-sm-table-cell__1DVpC\",\"d-sm-flex\":\"globalSearch_d-sm-flex__ts1a5\",\"d-sm-inline-flex\":\"globalSearch_d-sm-inline-flex__1QLbv\",\"d-md-none\":\"globalSearch_d-md-none__3G6Ap\",\"d-md-inline\":\"globalSearch_d-md-inline__jPwSD\",\"d-md-inline-block\":\"globalSearch_d-md-inline-block__3MGKJ\",\"d-md-block\":\"globalSearch_d-md-block__VK8wS\",\"d-md-table\":\"globalSearch_d-md-table__3ni5-\",\"d-md-table-row\":\"globalSearch_d-md-table-row__GETHY\",\"d-md-table-cell\":\"globalSearch_d-md-table-cell__22R42\",\"d-md-flex\":\"globalSearch_d-md-flex__1MowT\",\"d-md-inline-flex\":\"globalSearch_d-md-inline-flex__3_7SB\",\"d-lg-none\":\"globalSearch_d-lg-none__b3Tgg\",\"d-lg-inline\":\"globalSearch_d-lg-inline__1UGDV\",\"d-lg-inline-block\":\"globalSearch_d-lg-inline-block__iPbvW\",\"d-lg-block\":\"globalSearch_d-lg-block__3u7gG\",\"d-lg-table\":\"globalSearch_d-lg-table__3y8c7\",\"d-lg-table-row\":\"globalSearch_d-lg-table-row__h-Wlc\",\"d-lg-table-cell\":\"globalSearch_d-lg-table-cell__3bb43\",\"d-lg-flex\":\"globalSearch_d-lg-flex__2CqT_\",\"d-lg-inline-flex\":\"globalSearch_d-lg-inline-flex__1CBlx\",\"d-xl-none\":\"globalSearch_d-xl-none__2t8mg\",\"d-xl-inline\":\"globalSearch_d-xl-inline__3viT3\",\"d-xl-inline-block\":\"globalSearch_d-xl-inline-block__1Dttd\",\"d-xl-block\":\"globalSearch_d-xl-block__1uPk6\",\"d-xl-table\":\"globalSearch_d-xl-table__1giUr\",\"d-xl-table-row\":\"globalSearch_d-xl-table-row__138-S\",\"d-xl-table-cell\":\"globalSearch_d-xl-table-cell__2zF3o\",\"d-xl-flex\":\"globalSearch_d-xl-flex__2pRNC\",\"d-xl-inline-flex\":\"globalSearch_d-xl-inline-flex__UU5xQ\",\"d-print-none\":\"globalSearch_d-print-none__IV496\",\"d-print-inline\":\"globalSearch_d-print-inline__2sB2C\",\"d-print-inline-block\":\"globalSearch_d-print-inline-block__1wvGn\",\"d-print-block\":\"globalSearch_d-print-block__2WXEE\",\"d-print-table\":\"globalSearch_d-print-table__1JwjP\",\"d-print-table-row\":\"globalSearch_d-print-table-row__SF2xD\",\"d-print-table-cell\":\"globalSearch_d-print-table-cell__I73ry\",\"d-print-flex\":\"globalSearch_d-print-flex__25zVl\",\"d-print-inline-flex\":\"globalSearch_d-print-inline-flex__2HS9A\",\"flex-row\":\"globalSearch_flex-row__2ns5l\",\"flex-column\":\"globalSearch_flex-column__2n-wu\",\"flex-row-reverse\":\"globalSearch_flex-row-reverse__3M0KB\",\"flex-column-reverse\":\"globalSearch_flex-column-reverse__3lCiM\",\"flex-wrap\":\"globalSearch_flex-wrap__2xh2J\",\"flex-nowrap\":\"globalSearch_flex-nowrap__3SMXi\",\"flex-wrap-reverse\":\"globalSearch_flex-wrap-reverse__271-d\",\"flex-fill\":\"globalSearch_flex-fill__LoXAZ\",\"flex-grow-0\":\"globalSearch_flex-grow-0__3XLYJ\",\"flex-grow-1\":\"globalSearch_flex-grow-1__3hIyS\",\"flex-shrink-0\":\"globalSearch_flex-shrink-0__2oMd4\",\"flex-shrink-1\":\"globalSearch_flex-shrink-1__3nTZc\",\"justify-content-start\":\"globalSearch_justify-content-start__3ULNU\",\"justify-content-end\":\"globalSearch_justify-content-end__3ToKh\",\"justify-content-center\":\"globalSearch_justify-content-center__WWDs7\",\"justify-content-between\":\"globalSearch_justify-content-between__3HhEK\",\"justify-content-around\":\"globalSearch_justify-content-around__3uiBy\",\"align-items-start\":\"globalSearch_align-items-start__1ddIK\",\"align-items-end\":\"globalSearch_align-items-end__3Ed3B\",\"align-items-center\":\"globalSearch_align-items-center__vQh3s\",\"align-items-baseline\":\"globalSearch_align-items-baseline__3kN_h\",\"align-items-stretch\":\"globalSearch_align-items-stretch__125C6\",\"align-content-start\":\"globalSearch_align-content-start__2rrA-\",\"align-content-end\":\"globalSearch_align-content-end__3NHG_\",\"align-content-center\":\"globalSearch_align-content-center__2a-Od\",\"align-content-between\":\"globalSearch_align-content-between__xuIoE\",\"align-content-around\":\"globalSearch_align-content-around__3QHlj\",\"align-content-stretch\":\"globalSearch_align-content-stretch__298xa\",\"align-self-auto\":\"globalSearch_align-self-auto__1MijD\",\"align-self-start\":\"globalSearch_align-self-start__EPLtX\",\"align-self-end\":\"globalSearch_align-self-end__2ZBZQ\",\"align-self-center\":\"globalSearch_align-self-center__1v0dy\",\"align-self-baseline\":\"globalSearch_align-self-baseline__3r2B1\",\"align-self-stretch\":\"globalSearch_align-self-stretch__11PU4\",\"flex-sm-row\":\"globalSearch_flex-sm-row__90vgh\",\"flex-sm-column\":\"globalSearch_flex-sm-column__3kelw\",\"flex-sm-row-reverse\":\"globalSearch_flex-sm-row-reverse__1p3UE\",\"flex-sm-column-reverse\":\"globalSearch_flex-sm-column-reverse__3DsEy\",\"flex-sm-wrap\":\"globalSearch_flex-sm-wrap__5mzwN\",\"flex-sm-nowrap\":\"globalSearch_flex-sm-nowrap__3nhsD\",\"flex-sm-wrap-reverse\":\"globalSearch_flex-sm-wrap-reverse__1t1rk\",\"flex-sm-fill\":\"globalSearch_flex-sm-fill__1OrWV\",\"flex-sm-grow-0\":\"globalSearch_flex-sm-grow-0__2FCdR\",\"flex-sm-grow-1\":\"globalSearch_flex-sm-grow-1__383h9\",\"flex-sm-shrink-0\":\"globalSearch_flex-sm-shrink-0__1Pjox\",\"flex-sm-shrink-1\":\"globalSearch_flex-sm-shrink-1__1npba\",\"justify-content-sm-start\":\"globalSearch_justify-content-sm-start__2NEOY\",\"justify-content-sm-end\":\"globalSearch_justify-content-sm-end__2Gqu1\",\"justify-content-sm-center\":\"globalSearch_justify-content-sm-center__3GrP1\",\"justify-content-sm-between\":\"globalSearch_justify-content-sm-between__2fji9\",\"justify-content-sm-around\":\"globalSearch_justify-content-sm-around__DHYx2\",\"align-items-sm-start\":\"globalSearch_align-items-sm-start__kDjgq\",\"align-items-sm-end\":\"globalSearch_align-items-sm-end__3i4Wg\",\"align-items-sm-center\":\"globalSearch_align-items-sm-center__1-xp9\",\"align-items-sm-baseline\":\"globalSearch_align-items-sm-baseline__1rEgg\",\"align-items-sm-stretch\":\"globalSearch_align-items-sm-stretch__3JMPG\",\"align-content-sm-start\":\"globalSearch_align-content-sm-start__2tJPk\",\"align-content-sm-end\":\"globalSearch_align-content-sm-end__3uemN\",\"align-content-sm-center\":\"globalSearch_align-content-sm-center__2frGm\",\"align-content-sm-between\":\"globalSearch_align-content-sm-between__1XWZk\",\"align-content-sm-around\":\"globalSearch_align-content-sm-around__thJ3B\",\"align-content-sm-stretch\":\"globalSearch_align-content-sm-stretch__24Ybw\",\"align-self-sm-auto\":\"globalSearch_align-self-sm-auto__21x86\",\"align-self-sm-start\":\"globalSearch_align-self-sm-start__1wF59\",\"align-self-sm-end\":\"globalSearch_align-self-sm-end__3RjTf\",\"align-self-sm-center\":\"globalSearch_align-self-sm-center__1QVD0\",\"align-self-sm-baseline\":\"globalSearch_align-self-sm-baseline__1rfSy\",\"align-self-sm-stretch\":\"globalSearch_align-self-sm-stretch__3J6_h\",\"flex-md-row\":\"globalSearch_flex-md-row__ncz6_\",\"flex-md-column\":\"globalSearch_flex-md-column__2abp-\",\"flex-md-row-reverse\":\"globalSearch_flex-md-row-reverse__EjT1M\",\"flex-md-column-reverse\":\"globalSearch_flex-md-column-reverse__RvUFD\",\"flex-md-wrap\":\"globalSearch_flex-md-wrap__wpzGn\",\"flex-md-nowrap\":\"globalSearch_flex-md-nowrap__11Qye\",\"flex-md-wrap-reverse\":\"globalSearch_flex-md-wrap-reverse__3UCv6\",\"flex-md-fill\":\"globalSearch_flex-md-fill__1QHQ1\",\"flex-md-grow-0\":\"globalSearch_flex-md-grow-0__1Zrpk\",\"flex-md-grow-1\":\"globalSearch_flex-md-grow-1__IBQhy\",\"flex-md-shrink-0\":\"globalSearch_flex-md-shrink-0__1QlLU\",\"flex-md-shrink-1\":\"globalSearch_flex-md-shrink-1__1HCU6\",\"justify-content-md-start\":\"globalSearch_justify-content-md-start__3VNQA\",\"justify-content-md-end\":\"globalSearch_justify-content-md-end__1HN8a\",\"justify-content-md-center\":\"globalSearch_justify-content-md-center__2gxsv\",\"justify-content-md-between\":\"globalSearch_justify-content-md-between__3ANYY\",\"justify-content-md-around\":\"globalSearch_justify-content-md-around__3nks4\",\"align-items-md-start\":\"globalSearch_align-items-md-start__2toDG\",\"align-items-md-end\":\"globalSearch_align-items-md-end__1IQFd\",\"align-items-md-center\":\"globalSearch_align-items-md-center__2unCF\",\"align-items-md-baseline\":\"globalSearch_align-items-md-baseline__lDl44\",\"align-items-md-stretch\":\"globalSearch_align-items-md-stretch__aQyMT\",\"align-content-md-start\":\"globalSearch_align-content-md-start__1wh-g\",\"align-content-md-end\":\"globalSearch_align-content-md-end__2a06w\",\"align-content-md-center\":\"globalSearch_align-content-md-center__3_WK9\",\"align-content-md-between\":\"globalSearch_align-content-md-between__30-eL\",\"align-content-md-around\":\"globalSearch_align-content-md-around__2uraT\",\"align-content-md-stretch\":\"globalSearch_align-content-md-stretch__rej7j\",\"align-self-md-auto\":\"globalSearch_align-self-md-auto__T-Q90\",\"align-self-md-start\":\"globalSearch_align-self-md-start__3ZSey\",\"align-self-md-end\":\"globalSearch_align-self-md-end__2bVLQ\",\"align-self-md-center\":\"globalSearch_align-self-md-center__3_qop\",\"align-self-md-baseline\":\"globalSearch_align-self-md-baseline__3_no7\",\"align-self-md-stretch\":\"globalSearch_align-self-md-stretch__27IKA\",\"flex-lg-row\":\"globalSearch_flex-lg-row__1GhEg\",\"flex-lg-column\":\"globalSearch_flex-lg-column__Lkug7\",\"flex-lg-row-reverse\":\"globalSearch_flex-lg-row-reverse__2n-AA\",\"flex-lg-column-reverse\":\"globalSearch_flex-lg-column-reverse__3QzjY\",\"flex-lg-wrap\":\"globalSearch_flex-lg-wrap__LzDDS\",\"flex-lg-nowrap\":\"globalSearch_flex-lg-nowrap__RbFCF\",\"flex-lg-wrap-reverse\":\"globalSearch_flex-lg-wrap-reverse__brSIY\",\"flex-lg-fill\":\"globalSearch_flex-lg-fill__2Lf-1\",\"flex-lg-grow-0\":\"globalSearch_flex-lg-grow-0__3PAHU\",\"flex-lg-grow-1\":\"globalSearch_flex-lg-grow-1__3trgb\",\"flex-lg-shrink-0\":\"globalSearch_flex-lg-shrink-0__3luYi\",\"flex-lg-shrink-1\":\"globalSearch_flex-lg-shrink-1__cigfB\",\"justify-content-lg-start\":\"globalSearch_justify-content-lg-start__1Wv8Z\",\"justify-content-lg-end\":\"globalSearch_justify-content-lg-end__1ZKoq\",\"justify-content-lg-center\":\"globalSearch_justify-content-lg-center__22KHO\",\"justify-content-lg-between\":\"globalSearch_justify-content-lg-between__lCiYb\",\"justify-content-lg-around\":\"globalSearch_justify-content-lg-around__BzZ5u\",\"align-items-lg-start\":\"globalSearch_align-items-lg-start__nz7ow\",\"align-items-lg-end\":\"globalSearch_align-items-lg-end__Tp_ZO\",\"align-items-lg-center\":\"globalSearch_align-items-lg-center__-97nc\",\"align-items-lg-baseline\":\"globalSearch_align-items-lg-baseline__1OSl8\",\"align-items-lg-stretch\":\"globalSearch_align-items-lg-stretch__18jlH\",\"align-content-lg-start\":\"globalSearch_align-content-lg-start__2_Bv5\",\"align-content-lg-end\":\"globalSearch_align-content-lg-end__2NztC\",\"align-content-lg-center\":\"globalSearch_align-content-lg-center__1L04O\",\"align-content-lg-between\":\"globalSearch_align-content-lg-between__24VfU\",\"align-content-lg-around\":\"globalSearch_align-content-lg-around__1ZxSq\",\"align-content-lg-stretch\":\"globalSearch_align-content-lg-stretch__LDOj3\",\"align-self-lg-auto\":\"globalSearch_align-self-lg-auto__1LQqY\",\"align-self-lg-start\":\"globalSearch_align-self-lg-start__3syCb\",\"align-self-lg-end\":\"globalSearch_align-self-lg-end__2-tHr\",\"align-self-lg-center\":\"globalSearch_align-self-lg-center__3gGCB\",\"align-self-lg-baseline\":\"globalSearch_align-self-lg-baseline__AtkNf\",\"align-self-lg-stretch\":\"globalSearch_align-self-lg-stretch__1iMPY\",\"flex-xl-row\":\"globalSearch_flex-xl-row__s4IrA\",\"flex-xl-column\":\"globalSearch_flex-xl-column__1jc2Z\",\"flex-xl-row-reverse\":\"globalSearch_flex-xl-row-reverse__zO3kf\",\"flex-xl-column-reverse\":\"globalSearch_flex-xl-column-reverse___ilxf\",\"flex-xl-wrap\":\"globalSearch_flex-xl-wrap__12PFu\",\"flex-xl-nowrap\":\"globalSearch_flex-xl-nowrap__tRJ_s\",\"flex-xl-wrap-reverse\":\"globalSearch_flex-xl-wrap-reverse__11vmQ\",\"flex-xl-fill\":\"globalSearch_flex-xl-fill__2admw\",\"flex-xl-grow-0\":\"globalSearch_flex-xl-grow-0__1UeQs\",\"flex-xl-grow-1\":\"globalSearch_flex-xl-grow-1__2QpnS\",\"flex-xl-shrink-0\":\"globalSearch_flex-xl-shrink-0__1OCiu\",\"flex-xl-shrink-1\":\"globalSearch_flex-xl-shrink-1__2n3yg\",\"justify-content-xl-start\":\"globalSearch_justify-content-xl-start__xwW9e\",\"justify-content-xl-end\":\"globalSearch_justify-content-xl-end__1mwne\",\"justify-content-xl-center\":\"globalSearch_justify-content-xl-center__2U7u1\",\"justify-content-xl-between\":\"globalSearch_justify-content-xl-between__3Khss\",\"justify-content-xl-around\":\"globalSearch_justify-content-xl-around__XQ8Ci\",\"align-items-xl-start\":\"globalSearch_align-items-xl-start__ywJPT\",\"align-items-xl-end\":\"globalSearch_align-items-xl-end__GfTG1\",\"align-items-xl-center\":\"globalSearch_align-items-xl-center__3K_U0\",\"align-items-xl-baseline\":\"globalSearch_align-items-xl-baseline__2zvBs\",\"align-items-xl-stretch\":\"globalSearch_align-items-xl-stretch__2i-sy\",\"align-content-xl-start\":\"globalSearch_align-content-xl-start__1C6Fx\",\"align-content-xl-end\":\"globalSearch_align-content-xl-end__2D-mH\",\"align-content-xl-center\":\"globalSearch_align-content-xl-center__jywF0\",\"align-content-xl-between\":\"globalSearch_align-content-xl-between__2AMHS\",\"align-content-xl-around\":\"globalSearch_align-content-xl-around__21DgG\",\"align-content-xl-stretch\":\"globalSearch_align-content-xl-stretch__3wBbG\",\"align-self-xl-auto\":\"globalSearch_align-self-xl-auto__21K5i\",\"align-self-xl-start\":\"globalSearch_align-self-xl-start__2SKHV\",\"align-self-xl-end\":\"globalSearch_align-self-xl-end__11eRu\",\"align-self-xl-center\":\"globalSearch_align-self-xl-center__38nQL\",\"align-self-xl-baseline\":\"globalSearch_align-self-xl-baseline__2hlQ5\",\"align-self-xl-stretch\":\"globalSearch_align-self-xl-stretch__2JWgb\",\"m-0\":\"globalSearch_m-0__3rSuH\",\"mt-0\":\"globalSearch_mt-0__5DPoM\",\"my-0\":\"globalSearch_my-0__15ezN\",\"mr-0\":\"globalSearch_mr-0__3HQuL\",\"mx-0\":\"globalSearch_mx-0__2gxlz\",\"mb-0\":\"globalSearch_mb-0__1jv38\",\"ml-0\":\"globalSearch_ml-0__doEYK\",\"m-1\":\"globalSearch_m-1__2-M2D\",\"mt-1\":\"globalSearch_mt-1__sekaV\",\"my-1\":\"globalSearch_my-1__1O6EZ\",\"mr-1\":\"globalSearch_mr-1__2BTFU\",\"mx-1\":\"globalSearch_mx-1__sHJaA\",\"mb-1\":\"globalSearch_mb-1__xNn2j\",\"ml-1\":\"globalSearch_ml-1__n-tEp\",\"m-2\":\"globalSearch_m-2__3Jjdg\",\"mt-2\":\"globalSearch_mt-2__3K9FZ\",\"my-2\":\"globalSearch_my-2__kdbpO\",\"mr-2\":\"globalSearch_mr-2__1dwEW\",\"mx-2\":\"globalSearch_mx-2__FyTav\",\"mb-2\":\"globalSearch_mb-2__2PMAz\",\"ml-2\":\"globalSearch_ml-2__2H2Sk\",\"m-3\":\"globalSearch_m-3__2Jvsq\",\"mt-3\":\"globalSearch_mt-3__2rBu0\",\"my-3\":\"globalSearch_my-3__9KqX3\",\"mr-3\":\"globalSearch_mr-3__1a1UD\",\"mx-3\":\"globalSearch_mx-3__2b6B_\",\"mb-3\":\"globalSearch_mb-3__kn1Zy\",\"ml-3\":\"globalSearch_ml-3__3EP-c\",\"m-4\":\"globalSearch_m-4__3bx5U\",\"mt-4\":\"globalSearch_mt-4__3LnLQ\",\"my-4\":\"globalSearch_my-4__2tcus\",\"mr-4\":\"globalSearch_mr-4__14VMY\",\"mx-4\":\"globalSearch_mx-4__1AXCE\",\"mb-4\":\"globalSearch_mb-4__3Rirv\",\"ml-4\":\"globalSearch_ml-4__1W0nh\",\"m-5\":\"globalSearch_m-5__1fHhX\",\"mt-5\":\"globalSearch_mt-5__20IV_\",\"my-5\":\"globalSearch_my-5__finI0\",\"mr-5\":\"globalSearch_mr-5__2vitY\",\"mx-5\":\"globalSearch_mx-5__1tDgL\",\"mb-5\":\"globalSearch_mb-5__2EwUq\",\"ml-5\":\"globalSearch_ml-5__2Fjvo\",\"p-0\":\"globalSearch_p-0__1IUbk\",\"pt-0\":\"globalSearch_pt-0__1WmTa\",\"py-0\":\"globalSearch_py-0__1D4Zi\",\"pr-0\":\"globalSearch_pr-0__3Uc1v\",\"px-0\":\"globalSearch_px-0__2L7p_\",\"pb-0\":\"globalSearch_pb-0__31TbT\",\"pl-0\":\"globalSearch_pl-0__OjI20\",\"p-1\":\"globalSearch_p-1__mmB3M\",\"pt-1\":\"globalSearch_pt-1__1bGT4\",\"py-1\":\"globalSearch_py-1__9KqpQ\",\"pr-1\":\"globalSearch_pr-1__2xkLe\",\"px-1\":\"globalSearch_px-1__2g3Im\",\"pb-1\":\"globalSearch_pb-1__107IJ\",\"pl-1\":\"globalSearch_pl-1__1i8ps\",\"p-2\":\"globalSearch_p-2__1o2Mh\",\"pt-2\":\"globalSearch_pt-2__2QXbL\",\"py-2\":\"globalSearch_py-2__2Kb-r\",\"pr-2\":\"globalSearch_pr-2__342EP\",\"px-2\":\"globalSearch_px-2__25ggw\",\"pb-2\":\"globalSearch_pb-2__1Qsr7\",\"pl-2\":\"globalSearch_pl-2__3ykCh\",\"p-3\":\"globalSearch_p-3__1C_SR\",\"pt-3\":\"globalSearch_pt-3__vmWZA\",\"py-3\":\"globalSearch_py-3__3X0Yw\",\"pr-3\":\"globalSearch_pr-3__1ayji\",\"px-3\":\"globalSearch_px-3__3v5xM\",\"pb-3\":\"globalSearch_pb-3__1q-Py\",\"pl-3\":\"globalSearch_pl-3__32J4D\",\"p-4\":\"globalSearch_p-4__2x3nm\",\"pt-4\":\"globalSearch_pt-4__3uDR9\",\"py-4\":\"globalSearch_py-4__2qlkq\",\"pr-4\":\"globalSearch_pr-4__37DxJ\",\"px-4\":\"globalSearch_px-4__3DwDM\",\"pb-4\":\"globalSearch_pb-4__3W8Wv\",\"pl-4\":\"globalSearch_pl-4__1KBw9\",\"p-5\":\"globalSearch_p-5__1YFJ9\",\"pt-5\":\"globalSearch_pt-5__1KLOD\",\"py-5\":\"globalSearch_py-5__fIgVW\",\"pr-5\":\"globalSearch_pr-5__39-MR\",\"px-5\":\"globalSearch_px-5__2pRUe\",\"pb-5\":\"globalSearch_pb-5__13DuN\",\"pl-5\":\"globalSearch_pl-5__3MUjU\",\"m-n1\":\"globalSearch_m-n1__3XSYN\",\"mt-n1\":\"globalSearch_mt-n1__33o1U\",\"my-n1\":\"globalSearch_my-n1__2c2Ru\",\"mr-n1\":\"globalSearch_mr-n1__3eD2h\",\"mx-n1\":\"globalSearch_mx-n1__YnQ2_\",\"mb-n1\":\"globalSearch_mb-n1___7lX-\",\"ml-n1\":\"globalSearch_ml-n1__364FF\",\"m-n2\":\"globalSearch_m-n2__7NCtm\",\"mt-n2\":\"globalSearch_mt-n2__2bhBm\",\"my-n2\":\"globalSearch_my-n2__UzFEX\",\"mr-n2\":\"globalSearch_mr-n2__2-sst\",\"mx-n2\":\"globalSearch_mx-n2__2hYWf\",\"mb-n2\":\"globalSearch_mb-n2__1LV1u\",\"ml-n2\":\"globalSearch_ml-n2__3Oj37\",\"m-n3\":\"globalSearch_m-n3__3c-QY\",\"mt-n3\":\"globalSearch_mt-n3__9To9i\",\"my-n3\":\"globalSearch_my-n3__17bp0\",\"mr-n3\":\"globalSearch_mr-n3__KWflr\",\"mx-n3\":\"globalSearch_mx-n3__2XV43\",\"mb-n3\":\"globalSearch_mb-n3__v5EhO\",\"ml-n3\":\"globalSearch_ml-n3__287TI\",\"m-n4\":\"globalSearch_m-n4__cGs7v\",\"mt-n4\":\"globalSearch_mt-n4__1URPG\",\"my-n4\":\"globalSearch_my-n4__Vgcvy\",\"mr-n4\":\"globalSearch_mr-n4__1zWCk\",\"mx-n4\":\"globalSearch_mx-n4__1vou3\",\"mb-n4\":\"globalSearch_mb-n4__1LgJ2\",\"ml-n4\":\"globalSearch_ml-n4__36R4S\",\"m-n5\":\"globalSearch_m-n5__33k18\",\"mt-n5\":\"globalSearch_mt-n5__3Itsz\",\"my-n5\":\"globalSearch_my-n5__1QRMa\",\"mr-n5\":\"globalSearch_mr-n5__k6E7J\",\"mx-n5\":\"globalSearch_mx-n5__2BYqK\",\"mb-n5\":\"globalSearch_mb-n5__2uABR\",\"ml-n5\":\"globalSearch_ml-n5__s-IyA\",\"m-auto\":\"globalSearch_m-auto__1lmrC\",\"mt-auto\":\"globalSearch_mt-auto__1_qvw\",\"my-auto\":\"globalSearch_my-auto__1LzWT\",\"mr-auto\":\"globalSearch_mr-auto__3T54z\",\"mx-auto\":\"globalSearch_mx-auto__3i3LB\",\"mb-auto\":\"globalSearch_mb-auto__2f2pE\",\"ml-auto\":\"globalSearch_ml-auto__DDGfz\",\"m-sm-0\":\"globalSearch_m-sm-0__2oyw1\",\"mt-sm-0\":\"globalSearch_mt-sm-0__z1IHZ\",\"my-sm-0\":\"globalSearch_my-sm-0__2aTk4\",\"mr-sm-0\":\"globalSearch_mr-sm-0__Z4Cdl\",\"mx-sm-0\":\"globalSearch_mx-sm-0__2g0lw\",\"mb-sm-0\":\"globalSearch_mb-sm-0___m4YN\",\"ml-sm-0\":\"globalSearch_ml-sm-0__Nq7ca\",\"m-sm-1\":\"globalSearch_m-sm-1__3fPh7\",\"mt-sm-1\":\"globalSearch_mt-sm-1__Xi6DI\",\"my-sm-1\":\"globalSearch_my-sm-1__2rskU\",\"mr-sm-1\":\"globalSearch_mr-sm-1__2_K7U\",\"mx-sm-1\":\"globalSearch_mx-sm-1__3UaDG\",\"mb-sm-1\":\"globalSearch_mb-sm-1__1bJm-\",\"ml-sm-1\":\"globalSearch_ml-sm-1__1qZxF\",\"m-sm-2\":\"globalSearch_m-sm-2__3sikK\",\"mt-sm-2\":\"globalSearch_mt-sm-2__j8VgR\",\"my-sm-2\":\"globalSearch_my-sm-2__2oLeZ\",\"mr-sm-2\":\"globalSearch_mr-sm-2__2hy7V\",\"mx-sm-2\":\"globalSearch_mx-sm-2__L_e3-\",\"mb-sm-2\":\"globalSearch_mb-sm-2__sFhtC\",\"ml-sm-2\":\"globalSearch_ml-sm-2__AaQYE\",\"m-sm-3\":\"globalSearch_m-sm-3__270fs\",\"mt-sm-3\":\"globalSearch_mt-sm-3___6Z-W\",\"my-sm-3\":\"globalSearch_my-sm-3__RN9x5\",\"mr-sm-3\":\"globalSearch_mr-sm-3__3eUW_\",\"mx-sm-3\":\"globalSearch_mx-sm-3__YokH_\",\"mb-sm-3\":\"globalSearch_mb-sm-3__30CIK\",\"ml-sm-3\":\"globalSearch_ml-sm-3__1InQH\",\"m-sm-4\":\"globalSearch_m-sm-4__3Ubg_\",\"mt-sm-4\":\"globalSearch_mt-sm-4__Tbc0j\",\"my-sm-4\":\"globalSearch_my-sm-4__10bvq\",\"mr-sm-4\":\"globalSearch_mr-sm-4__3NUbG\",\"mx-sm-4\":\"globalSearch_mx-sm-4__35bdE\",\"mb-sm-4\":\"globalSearch_mb-sm-4__AeOyR\",\"ml-sm-4\":\"globalSearch_ml-sm-4__BM6r4\",\"m-sm-5\":\"globalSearch_m-sm-5__3-Kmy\",\"mt-sm-5\":\"globalSearch_mt-sm-5__36Pe4\",\"my-sm-5\":\"globalSearch_my-sm-5__1_hRw\",\"mr-sm-5\":\"globalSearch_mr-sm-5__2czEj\",\"mx-sm-5\":\"globalSearch_mx-sm-5__aQiM7\",\"mb-sm-5\":\"globalSearch_mb-sm-5__7FKqe\",\"ml-sm-5\":\"globalSearch_ml-sm-5__8iMxL\",\"p-sm-0\":\"globalSearch_p-sm-0__1Cwuz\",\"pt-sm-0\":\"globalSearch_pt-sm-0__2rhmH\",\"py-sm-0\":\"globalSearch_py-sm-0__1bkC-\",\"pr-sm-0\":\"globalSearch_pr-sm-0__2TQVs\",\"px-sm-0\":\"globalSearch_px-sm-0__1WKqG\",\"pb-sm-0\":\"globalSearch_pb-sm-0__1l5ZW\",\"pl-sm-0\":\"globalSearch_pl-sm-0__3tdzo\",\"p-sm-1\":\"globalSearch_p-sm-1__2GCPt\",\"pt-sm-1\":\"globalSearch_pt-sm-1__2BzAF\",\"py-sm-1\":\"globalSearch_py-sm-1__1wU0l\",\"pr-sm-1\":\"globalSearch_pr-sm-1__bOJoo\",\"px-sm-1\":\"globalSearch_px-sm-1__3tau8\",\"pb-sm-1\":\"globalSearch_pb-sm-1__STXer\",\"pl-sm-1\":\"globalSearch_pl-sm-1__1NGDa\",\"p-sm-2\":\"globalSearch_p-sm-2__1dMhq\",\"pt-sm-2\":\"globalSearch_pt-sm-2__2Y3C2\",\"py-sm-2\":\"globalSearch_py-sm-2__3lfhq\",\"pr-sm-2\":\"globalSearch_pr-sm-2__2jzJR\",\"px-sm-2\":\"globalSearch_px-sm-2__36gGs\",\"pb-sm-2\":\"globalSearch_pb-sm-2__1awhR\",\"pl-sm-2\":\"globalSearch_pl-sm-2__1wiqx\",\"p-sm-3\":\"globalSearch_p-sm-3__bMQqC\",\"pt-sm-3\":\"globalSearch_pt-sm-3__4kpaB\",\"py-sm-3\":\"globalSearch_py-sm-3__8fMp7\",\"pr-sm-3\":\"globalSearch_pr-sm-3__3vzNe\",\"px-sm-3\":\"globalSearch_px-sm-3__Hpchn\",\"pb-sm-3\":\"globalSearch_pb-sm-3__1tbFJ\",\"pl-sm-3\":\"globalSearch_pl-sm-3__sjai9\",\"p-sm-4\":\"globalSearch_p-sm-4__29fG_\",\"pt-sm-4\":\"globalSearch_pt-sm-4__2qxmc\",\"py-sm-4\":\"globalSearch_py-sm-4__3aSIQ\",\"pr-sm-4\":\"globalSearch_pr-sm-4__3BrUQ\",\"px-sm-4\":\"globalSearch_px-sm-4__3wfKC\",\"pb-sm-4\":\"globalSearch_pb-sm-4__XxT0k\",\"pl-sm-4\":\"globalSearch_pl-sm-4__3Y1h5\",\"p-sm-5\":\"globalSearch_p-sm-5__3GwZ8\",\"pt-sm-5\":\"globalSearch_pt-sm-5__2ZEdN\",\"py-sm-5\":\"globalSearch_py-sm-5__1vJQT\",\"pr-sm-5\":\"globalSearch_pr-sm-5__1KQph\",\"px-sm-5\":\"globalSearch_px-sm-5__1JugL\",\"pb-sm-5\":\"globalSearch_pb-sm-5__sq0Ey\",\"pl-sm-5\":\"globalSearch_pl-sm-5__29e-T\",\"m-sm-n1\":\"globalSearch_m-sm-n1__2djpq\",\"mt-sm-n1\":\"globalSearch_mt-sm-n1__144Bf\",\"my-sm-n1\":\"globalSearch_my-sm-n1__1NXtl\",\"mr-sm-n1\":\"globalSearch_mr-sm-n1__3P1-u\",\"mx-sm-n1\":\"globalSearch_mx-sm-n1__2AvEw\",\"mb-sm-n1\":\"globalSearch_mb-sm-n1__20jGW\",\"ml-sm-n1\":\"globalSearch_ml-sm-n1__2Z4a_\",\"m-sm-n2\":\"globalSearch_m-sm-n2__2q7Jq\",\"mt-sm-n2\":\"globalSearch_mt-sm-n2__1ioAn\",\"my-sm-n2\":\"globalSearch_my-sm-n2__2JyWB\",\"mr-sm-n2\":\"globalSearch_mr-sm-n2__3ofvA\",\"mx-sm-n2\":\"globalSearch_mx-sm-n2__GXmAB\",\"mb-sm-n2\":\"globalSearch_mb-sm-n2__10XpO\",\"ml-sm-n2\":\"globalSearch_ml-sm-n2__2IIiH\",\"m-sm-n3\":\"globalSearch_m-sm-n3__PM4lv\",\"mt-sm-n3\":\"globalSearch_mt-sm-n3__3QTrK\",\"my-sm-n3\":\"globalSearch_my-sm-n3__2eak2\",\"mr-sm-n3\":\"globalSearch_mr-sm-n3__1ENHQ\",\"mx-sm-n3\":\"globalSearch_mx-sm-n3__1Wiqy\",\"mb-sm-n3\":\"globalSearch_mb-sm-n3__1Csqp\",\"ml-sm-n3\":\"globalSearch_ml-sm-n3__158-C\",\"m-sm-n4\":\"globalSearch_m-sm-n4__3hCK-\",\"mt-sm-n4\":\"globalSearch_mt-sm-n4__1KIQS\",\"my-sm-n4\":\"globalSearch_my-sm-n4__2Qp4z\",\"mr-sm-n4\":\"globalSearch_mr-sm-n4__2eD9e\",\"mx-sm-n4\":\"globalSearch_mx-sm-n4__1W1rc\",\"mb-sm-n4\":\"globalSearch_mb-sm-n4__ljTGw\",\"ml-sm-n4\":\"globalSearch_ml-sm-n4__2qtb9\",\"m-sm-n5\":\"globalSearch_m-sm-n5__3bYH6\",\"mt-sm-n5\":\"globalSearch_mt-sm-n5__3Tv87\",\"my-sm-n5\":\"globalSearch_my-sm-n5__2Tmsg\",\"mr-sm-n5\":\"globalSearch_mr-sm-n5__1FtY0\",\"mx-sm-n5\":\"globalSearch_mx-sm-n5__1zEen\",\"mb-sm-n5\":\"globalSearch_mb-sm-n5__1wx0m\",\"ml-sm-n5\":\"globalSearch_ml-sm-n5__7_gB9\",\"m-sm-auto\":\"globalSearch_m-sm-auto__3mHyA\",\"mt-sm-auto\":\"globalSearch_mt-sm-auto__dYdzl\",\"my-sm-auto\":\"globalSearch_my-sm-auto__35o5q\",\"mr-sm-auto\":\"globalSearch_mr-sm-auto__1RIsm\",\"mx-sm-auto\":\"globalSearch_mx-sm-auto__3z9jn\",\"mb-sm-auto\":\"globalSearch_mb-sm-auto__33eSI\",\"ml-sm-auto\":\"globalSearch_ml-sm-auto__2M7Ic\",\"m-md-0\":\"globalSearch_m-md-0__3UOz6\",\"mt-md-0\":\"globalSearch_mt-md-0__1F0UA\",\"my-md-0\":\"globalSearch_my-md-0__2SHdj\",\"mr-md-0\":\"globalSearch_mr-md-0__sgjau\",\"mx-md-0\":\"globalSearch_mx-md-0__1-WXg\",\"mb-md-0\":\"globalSearch_mb-md-0__38DuK\",\"ml-md-0\":\"globalSearch_ml-md-0__XrEc-\",\"m-md-1\":\"globalSearch_m-md-1__3h6oG\",\"mt-md-1\":\"globalSearch_mt-md-1__2I-Yr\",\"my-md-1\":\"globalSearch_my-md-1__1hBAi\",\"mr-md-1\":\"globalSearch_mr-md-1__36bOi\",\"mx-md-1\":\"globalSearch_mx-md-1__1i0Ou\",\"mb-md-1\":\"globalSearch_mb-md-1__2P4gk\",\"ml-md-1\":\"globalSearch_ml-md-1__3zmT7\",\"m-md-2\":\"globalSearch_m-md-2__6NGJN\",\"mt-md-2\":\"globalSearch_mt-md-2__1Uvt0\",\"my-md-2\":\"globalSearch_my-md-2__3dcfA\",\"mr-md-2\":\"globalSearch_mr-md-2__21J5q\",\"mx-md-2\":\"globalSearch_mx-md-2__CM3x3\",\"mb-md-2\":\"globalSearch_mb-md-2__2WEbA\",\"ml-md-2\":\"globalSearch_ml-md-2__3RPlW\",\"m-md-3\":\"globalSearch_m-md-3__2aDKV\",\"mt-md-3\":\"globalSearch_mt-md-3__3XgNR\",\"my-md-3\":\"globalSearch_my-md-3__vDWfA\",\"mr-md-3\":\"globalSearch_mr-md-3__1DL3h\",\"mx-md-3\":\"globalSearch_mx-md-3__1LjAY\",\"mb-md-3\":\"globalSearch_mb-md-3__Z_FWm\",\"ml-md-3\":\"globalSearch_ml-md-3__3hHB4\",\"m-md-4\":\"globalSearch_m-md-4__3JYD8\",\"mt-md-4\":\"globalSearch_mt-md-4__3l7IC\",\"my-md-4\":\"globalSearch_my-md-4__264Ov\",\"mr-md-4\":\"globalSearch_mr-md-4__3fuMR\",\"mx-md-4\":\"globalSearch_mx-md-4__1N9MZ\",\"mb-md-4\":\"globalSearch_mb-md-4__FE0i-\",\"ml-md-4\":\"globalSearch_ml-md-4__cdiZc\",\"m-md-5\":\"globalSearch_m-md-5__19_1j\",\"mt-md-5\":\"globalSearch_mt-md-5__2aMGI\",\"my-md-5\":\"globalSearch_my-md-5__3b3fR\",\"mr-md-5\":\"globalSearch_mr-md-5__264uI\",\"mx-md-5\":\"globalSearch_mx-md-5__tHymV\",\"mb-md-5\":\"globalSearch_mb-md-5__GGG_S\",\"ml-md-5\":\"globalSearch_ml-md-5__3wcTV\",\"p-md-0\":\"globalSearch_p-md-0__ap0zS\",\"pt-md-0\":\"globalSearch_pt-md-0__2Dr65\",\"py-md-0\":\"globalSearch_py-md-0__1kxzR\",\"pr-md-0\":\"globalSearch_pr-md-0__dSaFx\",\"px-md-0\":\"globalSearch_px-md-0__2PvDa\",\"pb-md-0\":\"globalSearch_pb-md-0__2fnre\",\"pl-md-0\":\"globalSearch_pl-md-0__4oCVc\",\"p-md-1\":\"globalSearch_p-md-1__3oOWr\",\"pt-md-1\":\"globalSearch_pt-md-1__2J-VY\",\"py-md-1\":\"globalSearch_py-md-1__3E6aQ\",\"pr-md-1\":\"globalSearch_pr-md-1__1IYVP\",\"px-md-1\":\"globalSearch_px-md-1__1u8xX\",\"pb-md-1\":\"globalSearch_pb-md-1__3QIgQ\",\"pl-md-1\":\"globalSearch_pl-md-1__aewUN\",\"p-md-2\":\"globalSearch_p-md-2__2IHw2\",\"pt-md-2\":\"globalSearch_pt-md-2__12eUx\",\"py-md-2\":\"globalSearch_py-md-2__107dt\",\"pr-md-2\":\"globalSearch_pr-md-2__35e42\",\"px-md-2\":\"globalSearch_px-md-2__3ZUFU\",\"pb-md-2\":\"globalSearch_pb-md-2__1_CIr\",\"pl-md-2\":\"globalSearch_pl-md-2__2e1OW\",\"p-md-3\":\"globalSearch_p-md-3__37mOh\",\"pt-md-3\":\"globalSearch_pt-md-3__2Vwzr\",\"py-md-3\":\"globalSearch_py-md-3__2RTAP\",\"pr-md-3\":\"globalSearch_pr-md-3__6U459\",\"px-md-3\":\"globalSearch_px-md-3__2vO57\",\"pb-md-3\":\"globalSearch_pb-md-3__2VIj-\",\"pl-md-3\":\"globalSearch_pl-md-3__3EjrV\",\"p-md-4\":\"globalSearch_p-md-4__s3uTN\",\"pt-md-4\":\"globalSearch_pt-md-4__3dIHM\",\"py-md-4\":\"globalSearch_py-md-4__2wyeH\",\"pr-md-4\":\"globalSearch_pr-md-4__1vYgO\",\"px-md-4\":\"globalSearch_px-md-4__3mMjx\",\"pb-md-4\":\"globalSearch_pb-md-4__2IQJR\",\"pl-md-4\":\"globalSearch_pl-md-4__3trPv\",\"p-md-5\":\"globalSearch_p-md-5__2R9GW\",\"pt-md-5\":\"globalSearch_pt-md-5__3ehlY\",\"py-md-5\":\"globalSearch_py-md-5__J257d\",\"pr-md-5\":\"globalSearch_pr-md-5__OPHf6\",\"px-md-5\":\"globalSearch_px-md-5__1N3Uu\",\"pb-md-5\":\"globalSearch_pb-md-5__BMJ8-\",\"pl-md-5\":\"globalSearch_pl-md-5__3aG8E\",\"m-md-n1\":\"globalSearch_m-md-n1__2YVxB\",\"mt-md-n1\":\"globalSearch_mt-md-n1__1aoHm\",\"my-md-n1\":\"globalSearch_my-md-n1__2aQAn\",\"mr-md-n1\":\"globalSearch_mr-md-n1__iGS25\",\"mx-md-n1\":\"globalSearch_mx-md-n1__1fwsP\",\"mb-md-n1\":\"globalSearch_mb-md-n1__2bP32\",\"ml-md-n1\":\"globalSearch_ml-md-n1__Xkth0\",\"m-md-n2\":\"globalSearch_m-md-n2__1xoag\",\"mt-md-n2\":\"globalSearch_mt-md-n2__1h0KY\",\"my-md-n2\":\"globalSearch_my-md-n2__1GOoZ\",\"mr-md-n2\":\"globalSearch_mr-md-n2__1kFF4\",\"mx-md-n2\":\"globalSearch_mx-md-n2__1rMhP\",\"mb-md-n2\":\"globalSearch_mb-md-n2__2xJzU\",\"ml-md-n2\":\"globalSearch_ml-md-n2__1N7s7\",\"m-md-n3\":\"globalSearch_m-md-n3__1eR1n\",\"mt-md-n3\":\"globalSearch_mt-md-n3__2ALR2\",\"my-md-n3\":\"globalSearch_my-md-n3__lqW4O\",\"mr-md-n3\":\"globalSearch_mr-md-n3__9iEIy\",\"mx-md-n3\":\"globalSearch_mx-md-n3__v1QYp\",\"mb-md-n3\":\"globalSearch_mb-md-n3__153Zp\",\"ml-md-n3\":\"globalSearch_ml-md-n3__36DfW\",\"m-md-n4\":\"globalSearch_m-md-n4__2yzjK\",\"mt-md-n4\":\"globalSearch_mt-md-n4__1d_sn\",\"my-md-n4\":\"globalSearch_my-md-n4__3QXnT\",\"mr-md-n4\":\"globalSearch_mr-md-n4__JwuUG\",\"mx-md-n4\":\"globalSearch_mx-md-n4__1P8uK\",\"mb-md-n4\":\"globalSearch_mb-md-n4__2FTyk\",\"ml-md-n4\":\"globalSearch_ml-md-n4__1l8JH\",\"m-md-n5\":\"globalSearch_m-md-n5__e2qJp\",\"mt-md-n5\":\"globalSearch_mt-md-n5__vK4LF\",\"my-md-n5\":\"globalSearch_my-md-n5__38qls\",\"mr-md-n5\":\"globalSearch_mr-md-n5__1vesy\",\"mx-md-n5\":\"globalSearch_mx-md-n5__17gNT\",\"mb-md-n5\":\"globalSearch_mb-md-n5__1_s-1\",\"ml-md-n5\":\"globalSearch_ml-md-n5__1a0rM\",\"m-md-auto\":\"globalSearch_m-md-auto__3gI5Y\",\"mt-md-auto\":\"globalSearch_mt-md-auto__2vZfs\",\"my-md-auto\":\"globalSearch_my-md-auto__25mCM\",\"mr-md-auto\":\"globalSearch_mr-md-auto__2__FR\",\"mx-md-auto\":\"globalSearch_mx-md-auto__gq7WW\",\"mb-md-auto\":\"globalSearch_mb-md-auto__gTSyt\",\"ml-md-auto\":\"globalSearch_ml-md-auto__2FJQi\",\"m-lg-0\":\"globalSearch_m-lg-0__2rD6k\",\"mt-lg-0\":\"globalSearch_mt-lg-0__27yv7\",\"my-lg-0\":\"globalSearch_my-lg-0__3_i0o\",\"mr-lg-0\":\"globalSearch_mr-lg-0__287ki\",\"mx-lg-0\":\"globalSearch_mx-lg-0__-i6uS\",\"mb-lg-0\":\"globalSearch_mb-lg-0__2ZW-N\",\"ml-lg-0\":\"globalSearch_ml-lg-0__1JWCn\",\"m-lg-1\":\"globalSearch_m-lg-1__dkYvA\",\"mt-lg-1\":\"globalSearch_mt-lg-1__3KM2-\",\"my-lg-1\":\"globalSearch_my-lg-1__3mtPg\",\"mr-lg-1\":\"globalSearch_mr-lg-1__1dmNp\",\"mx-lg-1\":\"globalSearch_mx-lg-1__1Qsx7\",\"mb-lg-1\":\"globalSearch_mb-lg-1__2gvDp\",\"ml-lg-1\":\"globalSearch_ml-lg-1__1VXbA\",\"m-lg-2\":\"globalSearch_m-lg-2__B-FWn\",\"mt-lg-2\":\"globalSearch_mt-lg-2__2ysnZ\",\"my-lg-2\":\"globalSearch_my-lg-2__6KOma\",\"mr-lg-2\":\"globalSearch_mr-lg-2__ovpC2\",\"mx-lg-2\":\"globalSearch_mx-lg-2__1T52J\",\"mb-lg-2\":\"globalSearch_mb-lg-2__30gCW\",\"ml-lg-2\":\"globalSearch_ml-lg-2__2OXwu\",\"m-lg-3\":\"globalSearch_m-lg-3__3kYV2\",\"mt-lg-3\":\"globalSearch_mt-lg-3__KHWIm\",\"my-lg-3\":\"globalSearch_my-lg-3__2ArXl\",\"mr-lg-3\":\"globalSearch_mr-lg-3__21dHE\",\"mx-lg-3\":\"globalSearch_mx-lg-3__1FW53\",\"mb-lg-3\":\"globalSearch_mb-lg-3__qDCR4\",\"ml-lg-3\":\"globalSearch_ml-lg-3__1WGzT\",\"m-lg-4\":\"globalSearch_m-lg-4__2BimN\",\"mt-lg-4\":\"globalSearch_mt-lg-4__25HRy\",\"my-lg-4\":\"globalSearch_my-lg-4__3Ibyk\",\"mr-lg-4\":\"globalSearch_mr-lg-4__vAAmV\",\"mx-lg-4\":\"globalSearch_mx-lg-4__3e0uX\",\"mb-lg-4\":\"globalSearch_mb-lg-4__sfdSF\",\"ml-lg-4\":\"globalSearch_ml-lg-4__1zB2U\",\"m-lg-5\":\"globalSearch_m-lg-5__3txw6\",\"mt-lg-5\":\"globalSearch_mt-lg-5__1i6Y_\",\"my-lg-5\":\"globalSearch_my-lg-5__18ULL\",\"mr-lg-5\":\"globalSearch_mr-lg-5__3GZUc\",\"mx-lg-5\":\"globalSearch_mx-lg-5__pbK73\",\"mb-lg-5\":\"globalSearch_mb-lg-5__3bJeU\",\"ml-lg-5\":\"globalSearch_ml-lg-5__3pLKq\",\"p-lg-0\":\"globalSearch_p-lg-0__CDtnG\",\"pt-lg-0\":\"globalSearch_pt-lg-0__1jYG7\",\"py-lg-0\":\"globalSearch_py-lg-0__2wfrD\",\"pr-lg-0\":\"globalSearch_pr-lg-0__3IrQX\",\"px-lg-0\":\"globalSearch_px-lg-0__1baPf\",\"pb-lg-0\":\"globalSearch_pb-lg-0__3PN43\",\"pl-lg-0\":\"globalSearch_pl-lg-0__2VbnV\",\"p-lg-1\":\"globalSearch_p-lg-1__3PT0P\",\"pt-lg-1\":\"globalSearch_pt-lg-1__2tY-M\",\"py-lg-1\":\"globalSearch_py-lg-1__12S7J\",\"pr-lg-1\":\"globalSearch_pr-lg-1__3E8a6\",\"px-lg-1\":\"globalSearch_px-lg-1__1v8Ro\",\"pb-lg-1\":\"globalSearch_pb-lg-1__3Govk\",\"pl-lg-1\":\"globalSearch_pl-lg-1__29NnY\",\"p-lg-2\":\"globalSearch_p-lg-2__4_EdL\",\"pt-lg-2\":\"globalSearch_pt-lg-2__3SB3o\",\"py-lg-2\":\"globalSearch_py-lg-2__1su5X\",\"pr-lg-2\":\"globalSearch_pr-lg-2__3CpTk\",\"px-lg-2\":\"globalSearch_px-lg-2__3kTv8\",\"pb-lg-2\":\"globalSearch_pb-lg-2__2lYHt\",\"pl-lg-2\":\"globalSearch_pl-lg-2__1tHmf\",\"p-lg-3\":\"globalSearch_p-lg-3__3KDAL\",\"pt-lg-3\":\"globalSearch_pt-lg-3__1HuGG\",\"py-lg-3\":\"globalSearch_py-lg-3__7yQs3\",\"pr-lg-3\":\"globalSearch_pr-lg-3__69Jbu\",\"px-lg-3\":\"globalSearch_px-lg-3__3joEc\",\"pb-lg-3\":\"globalSearch_pb-lg-3__1-_9j\",\"pl-lg-3\":\"globalSearch_pl-lg-3__17wwU\",\"p-lg-4\":\"globalSearch_p-lg-4__QBfGk\",\"pt-lg-4\":\"globalSearch_pt-lg-4__20qq-\",\"py-lg-4\":\"globalSearch_py-lg-4__Sdg2z\",\"pr-lg-4\":\"globalSearch_pr-lg-4__75nPF\",\"px-lg-4\":\"globalSearch_px-lg-4__2b_GY\",\"pb-lg-4\":\"globalSearch_pb-lg-4__vYxUt\",\"pl-lg-4\":\"globalSearch_pl-lg-4__2TqmE\",\"p-lg-5\":\"globalSearch_p-lg-5__3lguF\",\"pt-lg-5\":\"globalSearch_pt-lg-5__3H9aq\",\"py-lg-5\":\"globalSearch_py-lg-5__1fbf8\",\"pr-lg-5\":\"globalSearch_pr-lg-5__3TykU\",\"px-lg-5\":\"globalSearch_px-lg-5__1WuKW\",\"pb-lg-5\":\"globalSearch_pb-lg-5__2n6Am\",\"pl-lg-5\":\"globalSearch_pl-lg-5__17Uo2\",\"m-lg-n1\":\"globalSearch_m-lg-n1__3MInW\",\"mt-lg-n1\":\"globalSearch_mt-lg-n1__1mk7r\",\"my-lg-n1\":\"globalSearch_my-lg-n1__U4M36\",\"mr-lg-n1\":\"globalSearch_mr-lg-n1__2nAty\",\"mx-lg-n1\":\"globalSearch_mx-lg-n1__25Pez\",\"mb-lg-n1\":\"globalSearch_mb-lg-n1__1JanN\",\"ml-lg-n1\":\"globalSearch_ml-lg-n1__2Ng-y\",\"m-lg-n2\":\"globalSearch_m-lg-n2__2gvFM\",\"mt-lg-n2\":\"globalSearch_mt-lg-n2__15MYg\",\"my-lg-n2\":\"globalSearch_my-lg-n2__3fZtD\",\"mr-lg-n2\":\"globalSearch_mr-lg-n2__365aI\",\"mx-lg-n2\":\"globalSearch_mx-lg-n2__1bYFP\",\"mb-lg-n2\":\"globalSearch_mb-lg-n2__3Yn7l\",\"ml-lg-n2\":\"globalSearch_ml-lg-n2__2g5bc\",\"m-lg-n3\":\"globalSearch_m-lg-n3__1kKSr\",\"mt-lg-n3\":\"globalSearch_mt-lg-n3__26YJN\",\"my-lg-n3\":\"globalSearch_my-lg-n3__2qcpo\",\"mr-lg-n3\":\"globalSearch_mr-lg-n3__1xm7m\",\"mx-lg-n3\":\"globalSearch_mx-lg-n3__1AIOA\",\"mb-lg-n3\":\"globalSearch_mb-lg-n3__3iWre\",\"ml-lg-n3\":\"globalSearch_ml-lg-n3__9K6dz\",\"m-lg-n4\":\"globalSearch_m-lg-n4__2mhSi\",\"mt-lg-n4\":\"globalSearch_mt-lg-n4__GaOW8\",\"my-lg-n4\":\"globalSearch_my-lg-n4__15rzn\",\"mr-lg-n4\":\"globalSearch_mr-lg-n4__2busK\",\"mx-lg-n4\":\"globalSearch_mx-lg-n4__3tAhu\",\"mb-lg-n4\":\"globalSearch_mb-lg-n4__2Apgd\",\"ml-lg-n4\":\"globalSearch_ml-lg-n4__1dYUu\",\"m-lg-n5\":\"globalSearch_m-lg-n5__1qhyR\",\"mt-lg-n5\":\"globalSearch_mt-lg-n5__miyaK\",\"my-lg-n5\":\"globalSearch_my-lg-n5__1s_UX\",\"mr-lg-n5\":\"globalSearch_mr-lg-n5__3htuY\",\"mx-lg-n5\":\"globalSearch_mx-lg-n5__1OFZV\",\"mb-lg-n5\":\"globalSearch_mb-lg-n5__2y3QK\",\"ml-lg-n5\":\"globalSearch_ml-lg-n5__diACp\",\"m-lg-auto\":\"globalSearch_m-lg-auto__2U9Dh\",\"mt-lg-auto\":\"globalSearch_mt-lg-auto__15Sbg\",\"my-lg-auto\":\"globalSearch_my-lg-auto__2PJMZ\",\"mr-lg-auto\":\"globalSearch_mr-lg-auto__fvZ18\",\"mx-lg-auto\":\"globalSearch_mx-lg-auto__DKIa5\",\"mb-lg-auto\":\"globalSearch_mb-lg-auto__3cnNu\",\"ml-lg-auto\":\"globalSearch_ml-lg-auto__z-IvY\",\"m-xl-0\":\"globalSearch_m-xl-0__Ho0la\",\"mt-xl-0\":\"globalSearch_mt-xl-0__2rSmJ\",\"my-xl-0\":\"globalSearch_my-xl-0__C_Ylk\",\"mr-xl-0\":\"globalSearch_mr-xl-0__2PNLn\",\"mx-xl-0\":\"globalSearch_mx-xl-0__21Fxr\",\"mb-xl-0\":\"globalSearch_mb-xl-0__1hlfG\",\"ml-xl-0\":\"globalSearch_ml-xl-0__SiPqD\",\"m-xl-1\":\"globalSearch_m-xl-1__KjGMG\",\"mt-xl-1\":\"globalSearch_mt-xl-1__2ZJSX\",\"my-xl-1\":\"globalSearch_my-xl-1__3siav\",\"mr-xl-1\":\"globalSearch_mr-xl-1__2IiMM\",\"mx-xl-1\":\"globalSearch_mx-xl-1__1QmNm\",\"mb-xl-1\":\"globalSearch_mb-xl-1__1Yk9N\",\"ml-xl-1\":\"globalSearch_ml-xl-1__3BPvI\",\"m-xl-2\":\"globalSearch_m-xl-2__27IMv\",\"mt-xl-2\":\"globalSearch_mt-xl-2__304jY\",\"my-xl-2\":\"globalSearch_my-xl-2__9CRdZ\",\"mr-xl-2\":\"globalSearch_mr-xl-2__1cD4L\",\"mx-xl-2\":\"globalSearch_mx-xl-2__kgEmY\",\"mb-xl-2\":\"globalSearch_mb-xl-2__1-QWB\",\"ml-xl-2\":\"globalSearch_ml-xl-2__2BZmT\",\"m-xl-3\":\"globalSearch_m-xl-3__3iZpZ\",\"mt-xl-3\":\"globalSearch_mt-xl-3__upY3d\",\"my-xl-3\":\"globalSearch_my-xl-3__jVaRr\",\"mr-xl-3\":\"globalSearch_mr-xl-3__2Vngf\",\"mx-xl-3\":\"globalSearch_mx-xl-3__1tCjq\",\"mb-xl-3\":\"globalSearch_mb-xl-3__34Gio\",\"ml-xl-3\":\"globalSearch_ml-xl-3__1kJoF\",\"m-xl-4\":\"globalSearch_m-xl-4__208_g\",\"mt-xl-4\":\"globalSearch_mt-xl-4__1qG0F\",\"my-xl-4\":\"globalSearch_my-xl-4__ke1X-\",\"mr-xl-4\":\"globalSearch_mr-xl-4__3fkzX\",\"mx-xl-4\":\"globalSearch_mx-xl-4__1Ub5U\",\"mb-xl-4\":\"globalSearch_mb-xl-4__Mx4UQ\",\"ml-xl-4\":\"globalSearch_ml-xl-4__3NzQ1\",\"m-xl-5\":\"globalSearch_m-xl-5__3or-J\",\"mt-xl-5\":\"globalSearch_mt-xl-5__bErw1\",\"my-xl-5\":\"globalSearch_my-xl-5__2Jh1-\",\"mr-xl-5\":\"globalSearch_mr-xl-5__2IHdx\",\"mx-xl-5\":\"globalSearch_mx-xl-5__3UiBo\",\"mb-xl-5\":\"globalSearch_mb-xl-5__zICEF\",\"ml-xl-5\":\"globalSearch_ml-xl-5__1tky6\",\"p-xl-0\":\"globalSearch_p-xl-0__1fNfa\",\"pt-xl-0\":\"globalSearch_pt-xl-0__AQ0GB\",\"py-xl-0\":\"globalSearch_py-xl-0__1wDba\",\"pr-xl-0\":\"globalSearch_pr-xl-0__u5gKV\",\"px-xl-0\":\"globalSearch_px-xl-0__6BUDZ\",\"pb-xl-0\":\"globalSearch_pb-xl-0__14flc\",\"pl-xl-0\":\"globalSearch_pl-xl-0__3ou_J\",\"p-xl-1\":\"globalSearch_p-xl-1__2b38e\",\"pt-xl-1\":\"globalSearch_pt-xl-1__2ofYl\",\"py-xl-1\":\"globalSearch_py-xl-1__33Pl4\",\"pr-xl-1\":\"globalSearch_pr-xl-1__1b2nn\",\"px-xl-1\":\"globalSearch_px-xl-1__ORrp8\",\"pb-xl-1\":\"globalSearch_pb-xl-1__31HEs\",\"pl-xl-1\":\"globalSearch_pl-xl-1__34U-R\",\"p-xl-2\":\"globalSearch_p-xl-2__3CmI4\",\"pt-xl-2\":\"globalSearch_pt-xl-2__ewyip\",\"py-xl-2\":\"globalSearch_py-xl-2__1JEwl\",\"pr-xl-2\":\"globalSearch_pr-xl-2__P7hWN\",\"px-xl-2\":\"globalSearch_px-xl-2__2zn0c\",\"pb-xl-2\":\"globalSearch_pb-xl-2__3pss9\",\"pl-xl-2\":\"globalSearch_pl-xl-2__26dwe\",\"p-xl-3\":\"globalSearch_p-xl-3__1zu19\",\"pt-xl-3\":\"globalSearch_pt-xl-3__1wccv\",\"py-xl-3\":\"globalSearch_py-xl-3__tfDnd\",\"pr-xl-3\":\"globalSearch_pr-xl-3__1ipBE\",\"px-xl-3\":\"globalSearch_px-xl-3__O9j67\",\"pb-xl-3\":\"globalSearch_pb-xl-3__3sEyQ\",\"pl-xl-3\":\"globalSearch_pl-xl-3__3qEuM\",\"p-xl-4\":\"globalSearch_p-xl-4__vh9Tc\",\"pt-xl-4\":\"globalSearch_pt-xl-4__5qigZ\",\"py-xl-4\":\"globalSearch_py-xl-4__2r6e-\",\"pr-xl-4\":\"globalSearch_pr-xl-4__1xE6N\",\"px-xl-4\":\"globalSearch_px-xl-4__2EbQa\",\"pb-xl-4\":\"globalSearch_pb-xl-4__3DfdZ\",\"pl-xl-4\":\"globalSearch_pl-xl-4__21NE2\",\"p-xl-5\":\"globalSearch_p-xl-5__3ucRq\",\"pt-xl-5\":\"globalSearch_pt-xl-5__2ReIr\",\"py-xl-5\":\"globalSearch_py-xl-5__3d6uy\",\"pr-xl-5\":\"globalSearch_pr-xl-5__3__HR\",\"px-xl-5\":\"globalSearch_px-xl-5__2co5E\",\"pb-xl-5\":\"globalSearch_pb-xl-5__3zYHm\",\"pl-xl-5\":\"globalSearch_pl-xl-5__I4s4U\",\"m-xl-n1\":\"globalSearch_m-xl-n1__2H-l7\",\"mt-xl-n1\":\"globalSearch_mt-xl-n1__3aG0y\",\"my-xl-n1\":\"globalSearch_my-xl-n1__2qUpm\",\"mr-xl-n1\":\"globalSearch_mr-xl-n1__1TeSP\",\"mx-xl-n1\":\"globalSearch_mx-xl-n1__a6HO6\",\"mb-xl-n1\":\"globalSearch_mb-xl-n1__1lbYi\",\"ml-xl-n1\":\"globalSearch_ml-xl-n1__3W0J6\",\"m-xl-n2\":\"globalSearch_m-xl-n2__21HnN\",\"mt-xl-n2\":\"globalSearch_mt-xl-n2__nbWXT\",\"my-xl-n2\":\"globalSearch_my-xl-n2__3GSC4\",\"mr-xl-n2\":\"globalSearch_mr-xl-n2__22Ldm\",\"mx-xl-n2\":\"globalSearch_mx-xl-n2__pyFC-\",\"mb-xl-n2\":\"globalSearch_mb-xl-n2__15NoH\",\"ml-xl-n2\":\"globalSearch_ml-xl-n2__UrpQr\",\"m-xl-n3\":\"globalSearch_m-xl-n3__wc9gs\",\"mt-xl-n3\":\"globalSearch_mt-xl-n3__3nPnh\",\"my-xl-n3\":\"globalSearch_my-xl-n3__3OrVP\",\"mr-xl-n3\":\"globalSearch_mr-xl-n3__3Df-x\",\"mx-xl-n3\":\"globalSearch_mx-xl-n3__2l1i9\",\"mb-xl-n3\":\"globalSearch_mb-xl-n3__24h8q\",\"ml-xl-n3\":\"globalSearch_ml-xl-n3__MQh3W\",\"m-xl-n4\":\"globalSearch_m-xl-n4__2wpOI\",\"mt-xl-n4\":\"globalSearch_mt-xl-n4__2U171\",\"my-xl-n4\":\"globalSearch_my-xl-n4__RUURL\",\"mr-xl-n4\":\"globalSearch_mr-xl-n4__1mNAA\",\"mx-xl-n4\":\"globalSearch_mx-xl-n4__1cL6B\",\"mb-xl-n4\":\"globalSearch_mb-xl-n4__3h_GE\",\"ml-xl-n4\":\"globalSearch_ml-xl-n4__3V-3z\",\"m-xl-n5\":\"globalSearch_m-xl-n5__2h4Oy\",\"mt-xl-n5\":\"globalSearch_mt-xl-n5__o8aIo\",\"my-xl-n5\":\"globalSearch_my-xl-n5__30c2t\",\"mr-xl-n5\":\"globalSearch_mr-xl-n5__2qcB9\",\"mx-xl-n5\":\"globalSearch_mx-xl-n5__19HCm\",\"mb-xl-n5\":\"globalSearch_mb-xl-n5__3w14S\",\"ml-xl-n5\":\"globalSearch_ml-xl-n5__2hMtJ\",\"m-xl-auto\":\"globalSearch_m-xl-auto__1HISh\",\"mt-xl-auto\":\"globalSearch_mt-xl-auto__1QWWw\",\"my-xl-auto\":\"globalSearch_my-xl-auto__3qylD\",\"mr-xl-auto\":\"globalSearch_mr-xl-auto__1xfuR\",\"mx-xl-auto\":\"globalSearch_mx-xl-auto__sGBOe\",\"mb-xl-auto\":\"globalSearch_mb-xl-auto__1bx9q\",\"ml-xl-auto\":\"globalSearch_ml-xl-auto__882UX\",\"gradient-bg5\":\"globalSearch_gradient-bg5__1MYXP\",\"globalSearchContainer\":\"globalSearch_globalSearchContainer__2UcRh\",\"globalSearchInputContainer\":\"globalSearch_globalSearchInputContainer__39m4K\",\"feedbackLeft\":\"globalSearch_feedbackLeft__EkRUy\",\"globalSearchInput\":\"globalSearch_globalSearchInput__2f-Vt\",\"feedbackRight\":\"globalSearch_feedbackRight__3oTp5\",\"globalSearchDropdownContainer\":\"globalSearch_globalSearchDropdownContainer__ibqy1\",\"globalSearchDropdownTypes\":\"globalSearch_globalSearchDropdownTypes__3Tnqq\",\"globalSearchDropdownTypeBtn\":\"globalSearch_globalSearchDropdownTypeBtn__2-Td8\",\"globalSearchDropDown\":\"globalSearch_globalSearchDropDown__3XOh_\",\"globalSearchDropdownQuery\":\"globalSearch_globalSearchDropdownQuery__30AoL\",\"globalSearchDropdownNoMatches\":\"globalSearch_globalSearchDropdownNoMatches__2NnYs\",\"globalSearchDropdownOptions\":\"globalSearch_globalSearchDropdownOptions__1YUhb\",\"loading\":\"globalSearch_loading__1Z_f_\",\"searchTypeTitle\":\"globalSearch_searchTypeTitle__2HCdq\",\"globalSearchDropdownOption\":\"globalSearch_globalSearchDropdownOption__2lJeK\",\"globalSearchDropdownOptionImage\":\"globalSearch_globalSearchDropdownOptionImage__1l2E4\",\"name\":\"globalSearch_name__1YR1M\",\"place\":\"globalSearch_place__39RlN\",\"searchExpander\":\"globalSearch_searchExpander__2I1tb\"};","export const featureGates = {\r\n ADULT_TEAM_PICKLEBALL: 'adult_team_pickleball',\r\n JUNIOR_TEAM_PICKLEBALL: 'junior_team_pickleball',\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const scheduleMatchCardPropTypes = {\r\n match: PropTypes.shape({\r\n isSchedulePublished: PropTypes.bool,\r\n isMultiWeekByDate: PropTypes.bool,\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string.isRequired,\r\n formattedAddress: PropTypes.string.isRequired\r\n }),\r\n position1Team: PropTypes.shape({\r\n teamId: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n position2Team: PropTypes.shape({\r\n teamId: PropTypes.number,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n round: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n }),\r\n winnerTeamId: PropTypes.number\r\n }).isRequired,\r\n round: PropTypes.shape({\r\n roundName: PropTypes.string,\r\n name: PropTypes.string.isRequired\r\n }),\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func,\r\n matchNumber: PropTypes.number,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const defaultScheduleMatchCardPropTypes = {\r\n round: null\r\n};\r\n\r\nexport const locationCardPropTypes = {\r\n location: PropTypes.object.isRequired,\r\n};\r\n\r\nexport const fontAwesomeSvgIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n};\r\n\r\nexport const messageIconPropTypes = {\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n displayName: PropTypes.string,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultMessageIconPropTypes = {\r\n memberId: '',\r\n displayName: '',\r\n style: {},\r\n};\r\n\r\nexport const utrIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n alt: PropTypes.string,\r\n style: PropTypes.object,\r\n clickable: PropTypes.any,\r\n};\r\n\r\nexport const deafultUtrIconPropTypes = {\r\n icon: null,\r\n size: '',\r\n};\r\n\r\nexport const createDrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n selectableTeams: PropTypes.array,\r\n onSkip: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultCreateDrawModalPropTypes = {\r\n open: false,\r\n selectableTeams: []\r\n};\r\n\r\nexport const modalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const defaultModalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const bootstrapDialogTitlePropTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const modalBaseWithHeaderPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const playerWithdrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const shareTeamModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onCopyClick: PropTypes.func.isRequired,\r\n url: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const defaultModalPropTypes = {\r\n open: false,\r\n};\r\n\r\nexport const confirmPublishSchedulePopupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultConfirmPublishSchedulePopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const popupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultPopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const teamMatchSummaryPropTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n onEditClicked: PropTypes.func.isRequired,\r\n summary: PropTypes.shape({\r\n canEditTeamMatch: PropTypes.bool.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n position1Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n position2Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired\r\n }).isRequired,\r\n scores: PropTypes.shape({\r\n position1: PropTypes.number.isRequired,\r\n position2: PropTypes.number.isRequired,\r\n }).isRequired,\r\n isUpdating: PropTypes.bool,\r\n winningTeamId: PropTypes.number.isRequired\r\n};\r\n\r\nexport const defaultTeamMatchSummaryPropTypes = {\r\n isUpdating: true\r\n};\r\n\r\nexport const playerSearchPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n onPlayerSelected: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultPlayerSearchPropTypes = {\r\n isProPlayerSearch: false,\r\n searchMembersOnly: false,\r\n showPickleballContent: false,\r\n showTennisContent: false,\r\n selectedPlayers: []\r\n};\r\n\r\nexport const addTeamsTablePropTypes = {\r\n sessionTeams: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sessionStartDateUtc: PropTypes.string.isRequired,\r\n sessionEndDateUtc: PropTypes.string.isRequired,\r\n wins: PropTypes.number.isRequired,\r\n losses: PropTypes.number.isRequired,\r\n })),\r\n maxTeams: PropTypes.number,\r\n isLoading: PropTypes.bool.isRequired,\r\n sortByProperty: PropTypes.number.isRequired,\r\n sortOrder: PropTypes.string.isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultAddTeamsTablePropTypes = {\r\n sessionTeams: []\r\n};\r\n\r\nexport const defaultCreateTeamModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onSaveClick: PropTypes.func,\r\n sessionId: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n};\r\n\r\nexport const teamProfileInfoPropTypes = {\r\n teamData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number,\r\n maxAge: PropTypes.number,\r\n genderTypeId: PropTypes.number,\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number,\r\n }),\r\n homeCourtLocation: PropTypes.shape({\r\n formattedAddress: PropTypes.string,\r\n }),\r\n sessionSummary: PropTypes.shape({\r\n endDateUtc: PropTypes.string,\r\n }),\r\n }),\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number,\r\n total: PropTypes.number,\r\n }),\r\n onJoinClick: PropTypes.func,\r\n onShareClick: PropTypes.func,\r\n isRegistrationAvailable: PropTypes.bool,\r\n};\r\n\r\nexport const manageSessionTeamCaptainPropTypes = {\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n displayName: PropTypes.string,\r\n })),\r\n isUpdatingCaptains: PropTypes.bool,\r\n isLoadingTeam: PropTypes.bool,\r\n onAddCaptain: PropTypes.func.isRequired,\r\n onRemoveCaptain: PropTypes.func.isRequired,\r\n isRequired: PropTypes.bool,\r\n maxCaptains: PropTypes.number,\r\n};\r\n\r\nexport const createTeamCaptainManagerPropTypes = {\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n displayName: PropTypes.string.isRequired,\r\n })),\r\n isUpdatingCaptains: PropTypes.bool,\r\n isLoadingTeam: PropTypes.bool,\r\n onAddCaptain: PropTypes.func.isRequired,\r\n onRemoveCaptain: PropTypes.func.isRequired,\r\n isRequired: PropTypes.bool,\r\n};\r\n\r\nexport const addTeamsModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n isLoadingOptions: PropTypes.bool,\r\n isLoadingTeams: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n teams: PropTypes.array,\r\n maxTeams: PropTypes.number,\r\n currentTeamCount: PropTypes.number,\r\n currentPage: PropTypes.number,\r\n pageCount: PropTypes.number,\r\n conferences: PropTypes.array,\r\n sessions: PropTypes.array,\r\n selectedConferenceId: PropTypes.number,\r\n selectedSessionIds: PropTypes.array,\r\n onConferenceChange: PropTypes.func,\r\n onSessionChange: PropTypes.func,\r\n onApplyClick: PropTypes.func,\r\n onPageChange: PropTypes.func,\r\n onSortChange: PropTypes.func,\r\n onCloseSessionDropdown: PropTypes.func,\r\n onAddTeams: PropTypes.func,\r\n sortByProperty: PropTypes.number,\r\n sortOrder: PropTypes.string,\r\n};\r\n\r\nexport const teamsTablePropTypes = {\r\n sessionTeams: PropTypes.array,\r\n onManageClicked: PropTypes.func,\r\n onRemoveClicked: PropTypes.func,\r\n hasSessionStarted: PropTypes.bool,\r\n};\r\n\r\nexport const manageSessionPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n onTabChange: PropTypes.func.isRequired,\r\n isMultiRoundSession: PropTypes.bool,\r\n};\r\n\r\nexport const manageTeamModalPropTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n teamId: PropTypes.number,\r\n onSaveClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const manageSessionCaptainCardPropTypes = {\r\n captain: PropTypes.shape({\r\n displayName: PropTypes.string.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n playerId: PropTypes.number,\r\n profileImage: PropTypes.string,\r\n location: PropTypes.shape({\r\n display: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n onRemoveClick: PropTypes.func.isRequired,\r\n};\r\nexport const addTeamMatchModalPropTypes = {\r\n sessionId: PropTypes.number,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n roundId: PropTypes.string,\r\n onSaveClick: PropTypes.func,\r\n scheduleId: PropTypes.number,\r\n refetchSessionSchedule: PropTypes.func,\r\n session: PropTypes.object\r\n};\r\n\r\nexport const addScheduleRoundPopupPropTypes = {\r\n rounds: PropTypes.array,\r\n open: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n insertRoundMessage: PropTypes.string,\r\n teamStandingsMessage: PropTypes.string.isRequired,\r\n errorMessage: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n onAction: PropTypes.func,\r\n actionLabel: PropTypes.string,\r\n isTennis: PropTypes.bool,\r\n disableAddRoundButton: PropTypes.bool\r\n};\r\n\r\nexport const multiWeekByDatePropTypes = {\r\n scheduleByDate: PropTypes.object,\r\n onEditMatch: PropTypes.func.isRequired,\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const multiWeekByRoundPropTypes = {\r\n round: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n matches: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n })\r\n ),\r\n }).isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func.isRequired,\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onDeleteRound: PropTypes.func.isRequired,\r\n onAddTeamMatch: PropTypes.func.isRequired,\r\n teams: PropTypes.array,\r\n isManaging: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const manageSessionActionsPropTypes = {\r\n onAddRound: PropTypes.func.isRequired,\r\n onAddTeamClick: PropTypes.func.isRequired,\r\n onGenerateSchedule: PropTypes.func.isRequired,\r\n onCreateSchedule: PropTypes.func.isRequired,\r\n onPublish: PropTypes.func.isRequired,\r\n onUnpublishSchedule: PropTypes.func.isRequired,\r\n onScheduleChange: PropTypes.func.isRequired,\r\n onDeleteSchedule: PropTypes.func.isRequired,\r\n isCreatingManualSchedule: PropTypes.bool.isRequired,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n isLoadingSchedule: PropTypes.bool.isRequired,\r\n isScheduleCreated: PropTypes.bool.isRequired,\r\n isSchedulePublished: PropTypes.bool.isRequired,\r\n multiRoundScheduleType: PropTypes.number,\r\n teams: PropTypes.array.isRequired,\r\n maxTeamsCount: PropTypes.number,\r\n hasSessionEnded: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const headerPropTypes = {\r\n auth: PropTypes.shape({\r\n user: PropTypes.shape({\r\n claimedPlayer: PropTypes.shape({\r\n playerProfileImages: PropTypes.object\r\n })\r\n })\r\n }).isRequired,\r\n featureFlags: PropTypes.shape({\r\n messaging: PropTypes.shape({\r\n isEnabled: PropTypes.func\r\n })\r\n }).isRequired,\r\n toggleSideMenu: PropTypes.func.isRequired\r\n};\r\n\r\nexport const multiSelectFilterPropTypes = {\r\n propTypes: {\r\n selectOptions: PropTypes.array.isRequired,\r\n onApplyFilter: PropTypes.func.isRequired,\r\n hasResetFilters: PropTypes.bool.isRequired,\r\n label: PropTypes.bool.isRequired,\r\n currentValue: PropTypes.string\r\n },\r\n defaultProps: {\r\n currentValue: ''\r\n }\r\n};\r\n\r\nexport const leagueSearchResultsTablePropTypes = {\r\n searchResults: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n sortByProperty: PropTypes.string.isRequired,\r\n sortOrder: PropTypes.string.isRequired\r\n};\r\n\r\nexport const sessionTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n conference: PropTypes.string.isRequired,\r\n location: PropTypes.string.isRequired,\r\n age: PropTypes.string.isRequired,\r\n rating: PropTypes.string.isRequired,\r\n gender: PropTypes.string.isRequired,\r\n startDate: PropTypes.string.isRequired,\r\n end: PropTypes.string.isRequired\r\n }),\r\n labelId: PropTypes.string.isRequired\r\n};\r\n\r\nexport const teamTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n teamMemberCount: PropTypes.number.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n captainNames: PropTypes.arrayOf(PropTypes.string),\r\n sessionDates: PropTypes.string.isRequired,\r\n record: PropTypes.string.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.number,\r\n isDoublesEstimated: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n teams: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n theme: PropTypes.object.isRequired,\r\n maxTeamsReached: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const teamsTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n homeCourtLocation: PropTypes.shape({\r\n formattedAddress: PropTypes.string,\r\n }),\r\n teamMemberCount: PropTypes.number.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.object),\r\n captainName: PropTypes.string,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.number,\r\n isDoublesEstimated: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n onManageClicked: PropTypes.func.isRequired,\r\n onRemoveClicked: PropTypes.func.isRequired,\r\n theme: PropTypes.object.isRequired,\r\n hasSessionStarted: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const statsigContextProviderPropTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport const sliderFilterPropTypes = {\r\n onApplyFilter: PropTypes.func.isRequired,\r\n hasResetFilters: PropTypes.bool.isRequired,\r\n sliderType: PropTypes.string.isRequired\r\n};\r\n\r\nexport const searchPagePropTypes = {\r\n propTypes: {\r\n userLocation: PropTypes.shape({\r\n lat: PropTypes.number,\r\n lng: PropTypes.number\r\n }),\r\n leagueTypeId: PropTypes.string.isRequired,\r\n sportType: PropTypes.number.isRequired,\r\n leagueTierType: PropTypes.number.isRequired,\r\n },\r\n defaultProps: {\r\n userLocation: {\r\n lat: null,\r\n lng: null\r\n }\r\n }\r\n};\r\n\r\nexport const formSubmitButtonPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n isSubmitting: PropTypes.bool.isRequired,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultFormSubmitButtonPropTypes = {\r\n style: {},\r\n};\r\n\r\nexport const createConferenceFormPropTypes = {\r\n isManaging: PropTypes.bool.isRequired,\r\n conferenceDetails: PropTypes.shape({\r\n maxAge: PropTypes.number,\r\n minAge: PropTypes.number,\r\n })\r\n};\r\n\r\nexport const teamMatchLinkPropTypes = {\r\n teamMatchLink: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const radioGroupPropTypes = {\r\n control: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n description: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport const schedulePropTypes = {\r\n seasonRounds: PropTypes.arrayOf(PropTypes.object),\r\n isManaging: PropTypes.bool,\r\n onEditMatch: PropTypes.func,\r\n onDeleteMatch: PropTypes.func,\r\n isLeagueDeskSchedule: PropTypes.bool,\r\n drawSchedule: PropTypes.object,\r\n isSchedulePublished: PropTypes.bool,\r\n pageType: PropTypes.string,\r\n scheduleByDate: PropTypes.object,\r\n multiRoundScheduleType: PropTypes.number,\r\n displayTournamentBracketStyle: PropTypes.bool,\r\n sessionId: PropTypes.number,\r\n onDeleteRound: PropTypes.func,\r\n scheduleId: PropTypes.number,\r\n refetchSessionSchedule: PropTypes.func,\r\n teams: PropTypes.arrayOf(PropTypes.object),\r\n session: PropTypes.object\r\n};\r\n\r\nexport const manageSessionScheduleTabPropTypes = {\r\n session: PropTypes.shape({\r\n startDateUtc: PropTypes.string,\r\n endDateUtc: PropTypes.string,\r\n id: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n matchesPerTeam: PropTypes.number,\r\n sportTypeId: PropTypes.number,\r\n }),\r\n isLoadingSession: PropTypes.bool,\r\n onAddTeamClick: PropTypes.func,\r\n teams: PropTypes.array,\r\n maxTeamsCount: PropTypes.number,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const teamPageScheduleTabPropTypes = {\r\n teamId: PropTypes.number.isRequired,\r\n isTournament: PropTypes.bool.isRequired,\r\n session: PropTypes.shape({\r\n id: PropTypes.number,\r\n }),\r\n};\r\n\r\nconst sessionDetailsPropTypes = {\r\n conferenceId: PropTypes.number,\r\n description: PropTypes.string,\r\n doublesMatchCount: PropTypes.number,\r\n doublesPointsPerMatch: PropTypes.number,\r\n doublesScoringFormatTypeId: PropTypes.number,\r\n doublesTimeAllowedTypeId: PropTypes.number,\r\n drawTypeId: PropTypes.number,\r\n endDateUtc: PropTypes.string,\r\n matchesPerTeam: PropTypes.number,\r\n name: PropTypes.string,\r\n registrationFee: PropTypes.number,\r\n registrationVerificationFee: PropTypes.number,\r\n sessionStatusTypeId: PropTypes.number,\r\n sessionDetails: PropTypes.string,\r\n sessionTypeId: PropTypes.number,\r\n sessionStandingsTypeId: PropTypes.number,\r\n singlesMatchCount: PropTypes.number,\r\n singlesPointsPerMatch: PropTypes.number,\r\n singlesScoringFormatTypeId: PropTypes.number,\r\n singlesTimeAllowedTypeId: PropTypes.number,\r\n startDateUtc: PropTypes.string,\r\n teamRegistrationEndDateUtc: PropTypes.string,\r\n teamRegistrationStartDateUtc: PropTypes.string,\r\n teamRequiredPlayersMin: PropTypes.number,\r\n teamsMax: PropTypes.number,\r\n location: PropTypes.string,\r\n teamMatchFrequencyTypeId: PropTypes.number,\r\n};\r\n\r\nexport const manageSessionModalPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n ...sessionDetailsPropTypes\r\n }),\r\n isLoadingSession: PropTypes.bool,\r\n title: PropTypes.string,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSaveClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const manageSessionDetailsTabPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n ...sessionDetailsPropTypes\r\n }),\r\n};\r\n\r\nexport const matchFormatPropTypes = {\r\n matchCount: PropTypes.number.isRequired,\r\n pointsPerMatch: PropTypes.number.isRequired,\r\n scoringFormatTypeId: PropTypes.number.isRequired,\r\n timeAllowedTypeId: PropTypes.number.isRequired,\r\n isDoubles: PropTypes.bool.isRequired,\r\n sportTypeId: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const teamPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n wins: PropTypes.number,\r\n losses: PropTypes.number,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n isCaptainView: PropTypes.bool,\r\n onTabChange: PropTypes.func.isRequired,\r\n isTournament: PropTypes.bool,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n doublesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n isDoublesEstimated: PropTypes.bool\r\n })\r\n};\r\n\r\nexport const genericTablePropTypes = {\r\n headCells: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n })\r\n ).isRequired,\r\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isLoading: PropTypes.bool,\r\n sortBy: PropTypes.string.isRequired,\r\n rowComponent: PropTypes.elementType.isRequired,\r\n isSortingDisabled: PropTypes.bool,\r\n};\r\n\r\nexport const leaguesTablePropTypes = {\r\n headCells: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n })\r\n ).isRequired,\r\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isLoading: PropTypes.bool,\r\n sortBy: PropTypes.string.isRequired,\r\n rowComponent: PropTypes.elementType.isRequired,\r\n title: PropTypes.string,\r\n isSortingDisabled: PropTypes.bool,\r\n};\r\n\r\nexport const playersTablePropTypes = {\r\n teamPlayers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n id: PropTypes.string,\r\n gender: PropTypes.string,\r\n playerId: PropTypes.number,\r\n teamId: PropTypes.number,\r\n firstName: PropTypes.string,\r\n lastName: PropTypes.string,\r\n wins: PropTypes.number,\r\n losses: PropTypes.number,\r\n location: PropTypes.oneOfType([\r\n PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n })\r\n ]),\r\n hasPostedScores: PropTypes.bool,\r\n canBeMovedOrCopied: PropTypes.bool,\r\n isSubstitute: PropTypes.bool,\r\n canBeRefunded: PropTypes.bool,\r\n })\r\n ),\r\n isLoading: PropTypes.bool,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const playersTableDefaultPropTypes = {\r\n teamPlayers: [],\r\n isManaging: false,\r\n hasSessionEnded: false,\r\n onWithdrawPlayer: () => {},\r\n onMovePlayer: () => {},\r\n onCopyPlayer: () => {},\r\n onTogglePlayerStatus: () => {},\r\n};\r\n\r\nexport const playerTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n doublesUtr: PropTypes.number,\r\n gender: PropTypes.string,\r\n id: PropTypes.string,\r\n isVerifiedDoubles: PropTypes.bool,\r\n isVerifiedSingles: PropTypes.bool,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n }),\r\n leagueId: PropTypes.number,\r\n sportTypeId: PropTypes.string,\r\n conferenceRatings: PropTypes.shape({\r\n utrRangeMin: PropTypes.number,\r\n utrRangeMax: PropTypes.number,\r\n pickleballRangeMin: PropTypes.number,\r\n pickleballRangeMax: PropTypes.number,\r\n }),\r\n }),\r\n onConferenceUpdated: PropTypes.func,\r\n isLoadingConference: PropTypes.bool,\r\n};\r\n\r\nexport const defaultCreateConferenceFormPropTypes = {\r\n conferenceDetails: null,\r\n isLoading: false,\r\n onConferenceUpdated: null,\r\n matchesPlayed: PropTypes.number,\r\n name: PropTypes.string,\r\n profileImage: PropTypes.string,\r\n playerId: PropTypes.string,\r\n record: PropTypes.string,\r\n singlesUtr: PropTypes.number,\r\n teamId: PropTypes.number,\r\n hasPostedScores: PropTypes.bool,\r\n canBeMovedOrCopied: PropTypes.bool,\r\n isSubstitute: PropTypes.bool,\r\n canBeRefunded: PropTypes.bool,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number,\r\n displayVerifiedIcon: PropTypes.bool,\r\n reliability: PropTypes.string,\r\n }),\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number,\r\n displayVerifiedIcon: PropTypes.bool,\r\n reliability: PropTypes.string,\r\n }),\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const playerTablePropTypes = {\r\n teamPlayers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string,\r\n playerId: PropTypes.number.isRequired,\r\n teamId: PropTypes.number,\r\n name: PropTypes.string,\r\n doublesUtr: PropTypes.number,\r\n isVerifiedDoubles: PropTypes.bool,\r\n singlesUtr: PropTypes.number,\r\n isVerifiedSingles: PropTypes.bool,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n canBeMovedOrCopied: PropTypes.bool.isRequired,\r\n isSubstitute: PropTypes.bool.isRequired,\r\n canBeRefunded: PropTypes.bool.isRequired,\r\n profileImage: PropTypes.string,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }),\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }),\r\n singlesRecord: PropTypes.string,\r\n doublesRecord: PropTypes.string,\r\n })\r\n ),\r\n isLoading: PropTypes.bool,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n isSubstitutePlayers: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const playersTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n doublesUtr: PropTypes.number.isRequired,\r\n id: PropTypes.string.isRequired,\r\n isVerifiedDoubles: PropTypes.bool.isRequired,\r\n isVerifiedSingles: PropTypes.bool.isRequired,\r\n name: PropTypes.string.isRequired,\r\n profileImage: PropTypes.string.isRequired,\r\n playerId: PropTypes.string.isRequired,\r\n singlesUtr: PropTypes.number.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n canBeMovedOrCopied: PropTypes.bool.isRequired,\r\n isSubstitute: PropTypes.bool.isRequired,\r\n canBeRefunded: PropTypes.bool.isRequired,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }).isRequired,\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }).isRequired,\r\n singlesRecord: PropTypes.string.isRequired,\r\n doublesRecord: PropTypes.string.isRequired,\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const submitPaymentFormPropTypes = {\r\n clientSecret: PropTypes.string.isRequired,\r\n onRegistrationSuccessful: PropTypes.func.isRequired,\r\n segmentTrackingBody: PropTypes.shape({\r\n league_session_id: PropTypes.number,\r\n member_id: PropTypes.number,\r\n order_type: PropTypes.string,\r\n currency: PropTypes.string,\r\n session_fee: PropTypes.number,\r\n league_fee: PropTypes.number,\r\n service_fee: PropTypes.number,\r\n amount_paid: PropTypes.number,\r\n revenue: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport const errorBoundaryPropTypes = {\r\n main: PropTypes.bool,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired\r\n};\r\n\r\nexport const manageSessionTeamsTabPropTypes = {\r\n teams: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.number.isRequired,\r\n })\r\n ),\r\n maxTeamsCount: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n onRemoveTeam: PropTypes.func.isRequired,\r\n hasSessionStarted: PropTypes.bool.isRequired,\r\n hasSessionEnded: PropTypes.bool.isRequired,\r\n onAddTeamClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const createSessionFormPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n conferenceId: PropTypes.number,\r\n endDateUtc: PropTypes.string,\r\n startDateUtc: PropTypes.string,\r\n registrationFee: PropTypes.number,\r\n teamRegistrationStartDateUtc: PropTypes.string,\r\n teamRegistrationEndDateUtc: PropTypes.string,\r\n registrationVerificationFee: PropTypes.number,\r\n sessionStandingsTypeId: PropTypes.number,\r\n sessionMatchTypeId: PropTypes.string,\r\n sessionTypeId: PropTypes.string,\r\n description: PropTypes.string,\r\n drawTypeId: PropTypes.string,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n }),\r\n isManaging: PropTypes.bool.isRequired,\r\n isLoadingSession: PropTypes.bool,\r\n onSessionUpdated: PropTypes.func,\r\n};\r\n\r\nexport const defaultCreateSessionFormPropTypes = {\r\n sessionDetails: null,\r\n isLoading: false,\r\n onSessionUpdated: null,\r\n};\r\n\r\nexport const registrationInfoCardPropTypes = {\r\n cost: PropTypes.string.isRequired,\r\n format: PropTypes.string.isRequired,\r\n sessionDates: PropTypes.string.isRequired,\r\n sessionData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number.isRequired,\r\n maxAge: PropTypes.number.isRequired,\r\n genderTypeId: PropTypes.number.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number.isRequired,\r\n }),\r\n captainRequest: PropTypes.shape({\r\n currentRequest: PropTypes.shape({\r\n sessionRequestStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n isCaptainInSession: PropTypes.bool.isRequired,\r\n }),\r\n memberTeams: PropTypes.array.isRequired,\r\n session: PropTypes.shape({\r\n endDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationEndDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationStartDateUtc: PropTypes.string.isRequired,\r\n sessionStatusTypeId: PropTypes.number.isRequired,\r\n sanctionTypeId: PropTypes.number,\r\n }),\r\n }).isRequired,\r\n onRequestToCaptain: PropTypes.func.isRequired,\r\n onRegisterButtonClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const sessionPagePropTypes = {\r\n cost: PropTypes.string,\r\n format: PropTypes.string,\r\n sessionDates: PropTypes.string,\r\n sessionData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number.isRequired,\r\n maxAge: PropTypes.number.isRequired,\r\n genderTypeId: PropTypes.number.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number.isRequired,\r\n }),\r\n captainRequest: PropTypes.shape({\r\n currentRequest: PropTypes.shape({\r\n sessionRequestStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n isCaptainInSession: PropTypes.bool.isRequired,\r\n }),\r\n memberTeams: PropTypes.array,\r\n session: PropTypes.shape({\r\n endDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationEndDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationStartDateUtc: PropTypes.string.isRequired,\r\n sessionStatusTypeId: PropTypes.number.isRequired,\r\n })\r\n })\r\n};\r\n\r\nexport const managerCardPropTypes = {\r\n managers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n phone: PropTypes.string,\r\n email: PropTypes.string,\r\n playerId: PropTypes.number,\r\n profileImage: PropTypes.string,\r\n })\r\n ),\r\n isUserLoggedIn: PropTypes.bool,\r\n isCaptainView: PropTypes.bool,\r\n onRemoveClick: PropTypes.func,\r\n};\r\n\r\nexport const sessionOverviewTabPropTypes = {\r\n description: PropTypes.string,\r\n cost: PropTypes.string.isRequired,\r\n sessionDates: PropTypes.string.isRequired,\r\n matchFormat: PropTypes.string.isRequired,\r\n sessionData: PropTypes.object.isRequired,\r\n isUserLoggedIn: PropTypes.bool.isRequired,\r\n managers: PropTypes.array.isRequired,\r\n onRegisterButtonClick: PropTypes.func.isRequired,\r\n onRequestToCaptain: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const teamPageOverviewTabPropTypes = {\r\n teamSummary: PropTypes.object.isRequired,\r\n isCaptainView: PropTypes.bool.isRequired,\r\n isRegistrationAvailable: PropTypes.bool.isRequired,\r\n isLoadingRegistration: PropTypes.bool,\r\n onRegisterClick: PropTypes.func.isRequired,\r\n onShareClick: PropTypes.func.isRequired,\r\n fees: PropTypes.object.isRequired,\r\n captains: PropTypes.array.isRequired,\r\n isUserLoggedIn: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const defaultTeamPageOverviewTabPropTypes = {\r\n isLoadingRegistration: false,\r\n};\r\n\r\nexport const sessionPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n sessionName: PropTypes.string,\r\n onTabChange: PropTypes.func.isRequired,\r\n isMultiRoundSession: PropTypes.bool.isRequired,\r\n conferenceName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const createTeamFormPropTypes = {\r\n isManaging: PropTypes.bool.isRequired,\r\n teamDetails: PropTypes.shape({\r\n sessionId: PropTypes.number,\r\n timeOfDay: PropTypes.string,\r\n homeCourtLocation: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n }),\r\n registrationPin: PropTypes.string,\r\n sessionTypeId: PropTypes.number,\r\n dayOfWeek: PropTypes.string,\r\n }),\r\n isLoadingTeam: PropTypes.bool,\r\n isCaptainEditing: PropTypes.bool,\r\n onTeamUpdated: PropTypes.func,\r\n};\r\n\r\nexport const defaultCreateTeamFormPropTypes = {\r\n teamDetails: {},\r\n isLoadingTeam: false,\r\n isCaptainEditing: false,\r\n onTeamUpdated: null\r\n};\r\n\r\nexport const playersTabPropTypes = {\r\n teamId: PropTypes.number,\r\n isCaptainView: PropTypes.bool,\r\n onMessageAllPlayers: PropTypes.func,\r\n};\r\n\r\nexport const playerTabPropTypes = {\r\n sessionId: PropTypes.string.isRequired,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n isUpdating: PropTypes.bool,\r\n displaySinglesAndDoublesRecord: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const drawTablePropTypes = {\r\n onEditMatch: PropTypes.func.isRequired,\r\n onViewMatch: PropTypes.func.isRequired,\r\n onChangeClick: PropTypes.func,\r\n draw: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n drawId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n }).isRequired,\r\n selectableTeams: PropTypes.array.isRequired,\r\n hasPublishedSchedule: PropTypes.bool.isRequired,\r\n isUpdatingTeamMatch: PropTypes.bool,\r\n isManaging: PropTypes.bool.isRequired,\r\n isLoading: PropTypes.bool,\r\n isMainDraw: PropTypes.bool.isRequired,\r\n totalRounds: PropTypes.array.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n displayTournamentBracketStyle: PropTypes.bool.isRequired,\r\n showMainDraw: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const sessionStandingsTablePropTypes = {\r\n sessionStandings: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n teamMatchWins: PropTypes.number.isRequired,\r\n teamMatchLosses: PropTypes.number.isRequired,\r\n playerMatchPoints: PropTypes.number.isRequired,\r\n playerMatchGameWinPercentage: PropTypes.number.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.string,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.string,\r\n isDoublesEstimated: PropTypes.bool\r\n })\r\n })),\r\n isLoading: PropTypes.bool,\r\n sportTypeId: PropTypes.number\r\n};\r\n\r\nexport const teamTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n teamMatchWins: PropTypes.number.isRequired,\r\n teamMatchLosses: PropTypes.number.isRequired,\r\n playerMatchPoints: PropTypes.number.isRequired,\r\n playerMatchGameWinPercentage: PropTypes.number.isRequired,\r\n teamId: PropTypes.string.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.string,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.string,\r\n isDoublesEstimated: PropTypes.bool,\r\n }).isRequired,\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const standingsTabPropTypes = {\r\n sportTypeId: PropTypes.number.isRequired,\r\n teamStandings: PropTypes.array.isRequired\r\n};\r\n\r\nexport const registrationDrawerPropTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n isUsapSanctionedSection: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onFreeSessionRegistration: PropTypes.func.isRequired,\r\n onTeamSelectionClick: PropTypes.func,\r\n isSessionPage: PropTypes.bool,\r\n teamData: PropTypes.shape({\r\n hasRegistrationPin: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n sessionSummary: PropTypes.shape({\r\n id: PropTypes.number.isRequired\r\n }).isRequired\r\n }),\r\n registrationFees: PropTypes.object,\r\n teams: PropTypes.arrayOf(PropTypes.object)\r\n};\r\n\r\nexport const defaultRegistrationDrawerPropTypes = {\r\n teams: [],\r\n teamData: {},\r\n registrationFees: {},\r\n isSessionPage: false,\r\n isUsapSanctionedSection: false,\r\n onTeamSelectionClick: () => {},\r\n};\r\n\r\nexport const teamSelectionProptypes = {\r\n onTeamCardClick: PropTypes.func.isRequired,\r\n onNotifyOrgClick: PropTypes.func.isRequired,\r\n teams: PropTypes.arrayOf(PropTypes.shape({\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired\r\n })).isRequired,\r\n hasRegistrationPin: PropTypes.bool.isRequired,\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n canSendSessionJoinRequest: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const passwordConfirmationProptypes = {\r\n onPinSubmitted: PropTypes.func.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired\r\n })).isRequired,\r\n isInvalidPasscode: PropTypes.bool.isRequired,\r\n isLoading: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const usapValidationProptypes = {\r\n onMemberIdSubmitted: PropTypes.func.isRequired,\r\n validationError: PropTypes.string,\r\n isLoading: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const defaultUsapValidationProptypes = {\r\n validationError: null\r\n};\r\n\r\nexport const registrationConfirmationPropTypes = {\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number.isRequired,\r\n leagueFee: PropTypes.number.isRequired,\r\n serviceFee: PropTypes.number.isRequired,\r\n total: PropTypes.number.isRequired,\r\n currencySymbol: PropTypes.string.isRequired,\r\n }).isRequired,\r\n onRegistrationSuccess: PropTypes.func.isRequired,\r\n clientSecret: PropTypes.string.isRequired,\r\n sessionId: PropTypes.number.isRequired,\r\n};\r\n","import React, { useContext, useEffect, useState, useMemo } from 'react';\r\nimport { useGate } from 'statsig-react';\r\n\r\nimport { featureGates } from '../utils/statsig';\r\nimport { statsigContextProviderPropTypes } from '../utils/proptypes';\r\n\r\nconst StatsigContext = React.createContext();\r\n\r\nexport function useStatsig() {\r\n return useContext(StatsigContext);\r\n}\r\n\r\nexport function StatsigContextProvider({ children }) {\r\n const isAdultTeamPickleballEnabled = useGate(featureGates.ADULT_TEAM_PICKLEBALL).value;\r\n const isJuniorTeamPickleballEnabled = useGate(featureGates.JUNIOR_TEAM_PICKLEBALL).value;\r\n const [state, setState] = useState({});\r\n\r\n useEffect(() => {\r\n setState({\r\n featureGates: {\r\n adultTeamPickleball: isAdultTeamPickleballEnabled,\r\n juniorTeamPickleball: isJuniorTeamPickleballEnabled,\r\n },\r\n });\r\n }, []);\r\n\r\n const memoizedState = useMemo(() => ({\r\n statsig: state,\r\n }), [state]);\r\n\r\n StatsigContextProvider.propTypes = {\r\n ...statsigContextProviderPropTypes\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","const localConfig = {\r\n // apiHost: ' https://api.universaltennis.com',\r\n // apiHost: ' https://marketing-api.universaltennis.com',\r\n // apiHost: 'https://test-api.universaltennis.com',\r\n // apiHost: 'https://qa-api.universaltennis.com',\r\n // apiHost: 'https://ci-api.universaltennis.com',\r\n // apiHost: 'https://rc-api.universaltennis.com',\r\n // apiHost: 'https://localhost:44317',\r\n // apiHost: 'https://utr-api-netcore.azurewebsites.net',\r\n // apiHost: 'https://ut-3-api-qa.azurewebsites.net',\r\n // apiHost: 'https://docker-test-api.universaltennis.com',\r\n // apiHost: ' https://test-api-alt.universaltennis.com',\r\n // apiHost: 'https://utr-api-central-us-01-canary.azurewebsites.net',\r\n // apiHost: 'https://utr-api-central-us-01.azurewebsites.net'\r\n // apiHost: 'https://ut-api.ngrok.io/',\r\n};\r\n\r\nexport default localConfig;\r\n","/* eslint max-len: [\"off\"] */\r\nimport urljoin from 'url-join';\r\nimport PackageJson from '../package.json';\r\nimport localConf from './config-local';\r\nimport configConstants from './config-constants';\r\n\r\nif (localConf) {\r\n console.log('LocalConf', localConf);\r\n} else {\r\n console.log('No local config overrides');\r\n}\r\n\r\nconst buildId = process.env.BUILD_ID || 'default';\r\nconst appCodePath = `${PackageJson.version}-${buildId}`;\r\nconst outputPath = 'leagues-client';\r\nconst applicationVersion = PackageJson.version;\r\nconst staticContentPath = 'public';\r\n\r\nconst rootDomain = 'utrsports.net';\r\nconst brandedDomain = 'utrsports.net';\r\nconst twitterHandle = 'UTR_Sports_';\r\n\r\nconst devFontUrl = 'https://cloud.typography.com/6323816/6761592/css/fonts.css'; // doesn't count against production page views\r\nconst localFontUrl = '/fonts/utr-fonts.css'; // for internal/offline use\r\nconst prodFontUrl = 'https://cloud.typography.com/6323816/6355392/css/fonts.css';\r\n\r\nconst webServerPublicPath = '/';\r\n\r\nconst links = {\r\n support: `https://support.${rootDomain}/support/tickets/new`,\r\n supportHome: `https://support.${rootDomain}/en/support/home`,\r\n appStoreUrl: 'https://apps.apple.com/us/app/universal-tennis/id1519232627',\r\n googlePlayUrl: 'https://play.google.com/store/apps/details?id=com.ut.utr&utm_source=google-play&utm_campaign=web-footer-google-playstore-badge&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1',\r\n sessionStandingsRule: `https://support.${rootDomain}/support/solutions/articles/9000235929-set-session-standings-rule`\r\n\r\n};\r\n\r\nconst devRoxKey = '5b4f55a7a43ccb0e97402f6f';\r\nconst devStripeKey = 'pk_test_fJzi8lcnQbbKhlMJp9YVZ2tA00Wx6NIMm2';\r\nconst utrStripeAccountId = process.env.UTR_STRIPE_ACCOUNT_ID || 'acct_1AV2NnBJJJ7ji1oI';\r\nconst googleApiKey = process.env.REACT_APP_GOOGLE_API_KEY;\r\n\r\nconst prodSegmentKey = 'XJQ5EvgdaXEKA7B8XgaiPgOPWjO0GB2Q';\r\nconst nonProdSegmentKey = 'kGabTpvRe2bSYtu4QmKKmoPf5Q6kY2Xc';\r\n\r\nconst prodFacebookPixelId = '934768840401987';\r\nconst nonProdFacebookPixelId = '123456789123456';\r\n\r\nconst devApiAuthToken = '2303cc78-0e7e-4b86-8ae6-74d05cd10cdf';\r\n\r\nconst prodStatsigKey = 'client-M26U2xrmdwgAiTbeNrUpxyGIk4i2guVzMiPPm9m00b';\r\nconst devStatsigKey = 'client-BS9ru6yhmKmFidDYBKkoSTiTwuV1p1nEDXl7IXtANJD';\r\n\r\nconst localDevSettings = {\r\n appHost: 'https://localhost:3443',\r\n marketingAppHost: 'http://localhost:3001',\r\n leaguesAppHost: 'http://localhost:3002',\r\n apiAuthToken: devApiAuthToken,\r\n apiHost: `https://test-api.${rootDomain}`,\r\n leaguesApiHost: `https://test1-leagues-api.${rootDomain}`,\r\n searchApiHost: `https://test1-search-api.${rootDomain}`,\r\n siteBaseUrl: rootDomain,\r\n brandedUrl: brandedDomain,\r\n twitterAccount: twitterHandle,\r\n fontUrl: localFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: devStripeKey,\r\n utrStripeAccountId,\r\n useProxy: true,\r\n googleApiKey,\r\n publicPath: webServerPublicPath,\r\n pixelId: nonProdFacebookPixelId,\r\n cdnUrl: `https://ci-cdn.${rootDomain}`,\r\n isLocalhost: true,\r\n statsigKey: devStatsigKey,\r\n ...(localConf || {}),\r\n};\r\n\r\nconst createNewRelicBrowserSnippet = (apiUri, newRelicAppId) => {\r\n return `\r\n \r\n `;\r\n};\r\n\r\nconst createTestSettings = (environmentName, newRelicAppId) => {\r\n const cdnUrl = `https://${environmentName}-cdn.${rootDomain}`;\r\n const cdnUrlStatic = `https://${environmentName}-cdn-static.${rootDomain}`;\r\n const apiUri = process.env.APIHOST || `https://${environmentName}-api.${rootDomain}`;\r\n const leaguesApiUri = process.env.LEAGUESAPIHOST || `https://${environmentName}-leagues-api.${rootDomain}`;\r\n const searchApiUri = `https://test1-search-api.${rootDomain}`;\r\n const newRelicBrowserSnippet = newRelicAppId != null ? createNewRelicBrowserSnippet(apiUri, newRelicAppId) : '';\r\n\r\n return {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n appHost: process.env.APPHOST || `https://${environmentName}-app.${rootDomain}`,\r\n appHostName: process.env.APPHOSTNAME || `${environmentName}-app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${environmentName}.${rootDomain}`,\r\n apiHost: apiUri,\r\n googleApiKey,\r\n leaguesApiHost: leaguesApiUri,\r\n searchApiHost: searchApiUri,\r\n userSiteHost: process.env.USERSITEHOST || `https://${environmentName}-app.${rootDomain}`,\r\n userSiteHostName: process.env.USERSITEHOST || `${environmentName}-app.${rootDomain}`,\r\n fontUrl: devFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n cdnUrl,\r\n publicPath: urljoin(cdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: nonProdSegmentKey,\r\n devtoolConfig: 'eval-source-maps',\r\n pixelId: nonProdFacebookPixelId,\r\n newRelicBrowserSnippet,\r\n statsigKey: devStatsigKey,\r\n };\r\n};\r\n\r\nconst prodCdnUrl = `https://prod-cdn.${rootDomain}`;\r\nconst prodCdnUrlStatic = `https://prod-cdn-static.${rootDomain}`;\r\nconst prodApiUri = process.env.APIHOST || `https://api.${rootDomain}`;\r\nconst prodLeaguesApiUri = process.env.LEAGUESAPIHOST || `https://leagues-api.${rootDomain}`;\r\nconst searchApiUrl = `https://search-api.${rootDomain}`;\r\nconst prodServerSettings = {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n appHost: process.env.APPHOST || `https://app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${rootDomain}`,\r\n leaguesApiHost: prodLeaguesApiUri,\r\n apiHost: prodApiUri,\r\n searchApiHost: searchApiUrl,\r\n fontUrl: prodFontUrl,\r\n googleApiKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: process.env.STRIPE_CLIENT_ID || 'ca_G7kArGiIoboxUDj62elK8kxXinfQe0QI',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n roxKey: process.env.REACT_APP_ROX_KEY,\r\n cdnUrl: prodCdnUrl,\r\n publicPath: urljoin(prodCdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: prodSegmentKey,\r\n devtoolConfig: false,\r\n pixelId: prodFacebookPixelId,\r\n newRelicBrowserSnippet: createNewRelicBrowserSnippet(prodApiUri, 539633838),\r\n statsigKey: prodStatsigKey,\r\n};\r\n\r\nconst qaServerSettings = createTestSettings('qa', 590226463);\r\nconst ciServerSettings = createTestSettings('ci', 590213041);\r\nconst testServerSettings = createTestSettings('test', 589991131);\r\nconst test2ServerSettings = createTestSettings('test2', 587189898);\r\nconst test3ServerSettings = createTestSettings('test3', 587326842);\r\nconst test4ServerSettings = createTestSettings('test4', 539430739);\r\nconst test5ServerSettings = createTestSettings('test5', 284389075);\r\nconst test6ServerSettings = createTestSettings('test6', 284363017);\r\nconst test7ServerSettings = createTestSettings('test7', 518274954);\r\nconst test8ServerSettings = createTestSettings('test8', 269953869);\r\nconst test9ServerSettings = createTestSettings('test9', null);\r\nconst test10ServerSettings = createTestSettings('test10', null);\r\nconst test11ServerSettings = createTestSettings('test11', null);\r\nconst rcSettings = createTestSettings('rc', 590000593);\r\n\r\nlet config = localDevSettings; // Default to local dev settings\r\n\r\nconst configSource = (\r\n process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development'\r\n).toLowerCase();\r\n\r\nswitch (configSource) {\r\n case 'prod':\r\n config = prodServerSettings;\r\n break;\r\n case 'qa':\r\n config = qaServerSettings;\r\n break;\r\n case 'ci':\r\n config = ciServerSettings;\r\n break;\r\n case 'test':\r\n config = testServerSettings;\r\n break;\r\n case 'test1':\r\n config = testServerSettings;\r\n break;\r\n case 'test2':\r\n config = test2ServerSettings;\r\n break;\r\n case 'test3':\r\n config = test3ServerSettings;\r\n break;\r\n case 'test4':\r\n config = test4ServerSettings;\r\n break;\r\n case 'test5':\r\n config = test5ServerSettings;\r\n break;\r\n case 'test6':\r\n config = test6ServerSettings;\r\n break;\r\n case 'test7':\r\n config = test7ServerSettings;\r\n break;\r\n case 'test8':\r\n config = test8ServerSettings;\r\n break;\r\n case 'test9':\r\n config = test9ServerSettings;\r\n break;\r\n case 'test10':\r\n config = test10ServerSettings;\r\n break;\r\n case 'test11':\r\n config = test11ServerSettings;\r\n break;\r\n case 'rc':\r\n config = rcSettings;\r\n break;\r\n default:\r\n config = localDevSettings;\r\n}\r\n\r\n// Common settings\r\nconfig.outputPath = configConstants.outputPath;\r\nconfig.appCodePath = appCodePath;\r\nconfig.applicationVersion = applicationVersion;\r\nconfig.staticContentPath = staticContentPath;\r\n\r\nexport default config;\r\n","export const LeagueSessionTypes = {\r\n TOURNAMENT: 1,\r\n MULTI_ROUND: 2,\r\n};\r\n\r\nexport const FrequencyTypes = {\r\n ONCE_A_WEEK: 1,\r\n EVERY_TWO_WEEKS: 2,\r\n};\r\n\r\nexport const MatchFormatTypes = {\r\n SINGLES: 1,\r\n DOUBLES: 2,\r\n BOTH: 3,\r\n};\r\n\r\nexport const ResultTypes = {\r\n COMPLETED: 1,\r\n COMPLETED_WITH_PARTIAL_SCORES: 2,\r\n PLAYER_OR_TEAM_DEFAULTED: 3,\r\n WITHDREW: 4,\r\n RETIRED: 5,\r\n INCOMPLETE: 6,\r\n DEFAULTED: 7,\r\n MATCH_NOT_PLAYED: 8,\r\n};\r\n\r\nexport const ScheduleStatuses = {\r\n DRAFT: 1,\r\n PUBLISHED: 2,\r\n};\r\n\r\nexport const TennisScoringFormatTypes = {\r\n BEST_OF_THREE: 1,\r\n TWO_SETS_WITH_TIEBREAKER: 2,\r\n SINGLE_SET: 3,\r\n TIME_BASED: 4,\r\n FAST_FOUR: 5,\r\n};\r\n\r\nexport const PickleballScoringFormatTypes = {\r\n SINGLE_GAME: 6,\r\n BEST_OF_THREE_GAMES: 7,\r\n TIME_BASED_GAME: 8,\r\n};\r\n\r\nexport const StatusTypes = {\r\n OPEN: 1,\r\n CLOSED: 2,\r\n};\r\n\r\nexport const WithdrawTypes = {\r\n WITHDRAW: 1,\r\n REFUND: 2,\r\n WITHDRAW_AND_REFUND: 3,\r\n};\r\n\r\nexport const RequestStatusTypes = {\r\n ACCEPTED: 1,\r\n DENIED: 2,\r\n PENDING: 3,\r\n};\r\n\r\nexport const LeagueGenderTypes = {\r\n CO_ED: 1,\r\n MALE: 2,\r\n FEMALE: 3,\r\n};\r\n\r\nexport const LeagueTypes = {\r\n UT_ADULT_TEAM_TENNIS: 1,\r\n UT_JUNIOR_TEAM_TENNIS: 3,\r\n CLUB_ADULT_LEAGUE_TENNIS: 4,\r\n OTHER_TENNIS: 5,\r\n UT_ADULT_TEAM_PICKLEBALL: 6,\r\n UT_JUNIOR_TEAM_PICKLEBALL: 7,\r\n CLUB_ADULT_LEAGUE_PICKLEBALL: 8,\r\n OTHER_PICKLEBALL: 9,\r\n};\r\n\r\nexport const LeagueTierTypes = {\r\n ADULT: 1,\r\n JUNIOR: 2\r\n};\r\n\r\nexport const PlayerActionTypes = {\r\n WITHDRAW: 1,\r\n MOVE_TO_TEAM: 2,\r\n COPY_TO_TEAM: 3,\r\n MARK_AS_ROSTERED: 4,\r\n MARK_AS_SUBSTITUTE: 5,\r\n};\r\n\r\nexport const OrderByTypes = {\r\n TEAM_NAME: 0,\r\n SESSION_NAME: 1,\r\n RANK: 2,\r\n};\r\n\r\nexport const OrderByRuleTypes = {\r\n ASCENDING: { id: 0, value: 'asc' },\r\n DESCENDING: { id: 1, value: 'desc' },\r\n};\r\n\r\nexport const SessionDrawTypes = {\r\n FIRST_MATCH_BACK_DRAW: 1,\r\n SINGLE_ELIMINATION: 2\r\n};\r\n\r\nexport const MultiRoundScheduleTypes = {\r\n BY_ROUND: 0,\r\n BY_DATE: 1\r\n};\r\n\r\nexport const LeagueSanctionTypes = {\r\n USAP: 1,\r\n};\r\n\r\nexport const genderTypes = [\r\n { id: LeagueGenderTypes.CO_ED, value: 'all', label: 'Co-ed', description: 'Co-ed' },\r\n { id: LeagueGenderTypes.MALE, value: 'm', label: 'M', description: 'Male' },\r\n { id: LeagueGenderTypes.FEMALE, value: 'f', label: 'F', description: 'Female' },\r\n];\r\n\r\nexport const distanceTypes = [\r\n { id: 10, description: '10 miles' },\r\n { id: 25, description: '25 miles' },\r\n { id: 50, description: '50 miles' },\r\n { id: 75, description: '75 miles' },\r\n { id: 100, description: '100 miles' },\r\n { id: 125, description: '125 miles' },\r\n];\r\n\r\nexport const sessionTypes = [\r\n { id: LeagueSessionTypes.TOURNAMENT, description: 'Team Tournament' },\r\n { id: LeagueSessionTypes.MULTI_ROUND, description: 'Multi-Round' },\r\n];\r\n\r\nexport const multiRoundScheduleTypes = [\r\n { id: MultiRoundScheduleTypes.BY_ROUND, description: 'By Round' },\r\n { id: MultiRoundScheduleTypes.BY_DATE, description: 'By Date' },\r\n];\r\n\r\nexport const matchFrequencyTypes = [\r\n { id: FrequencyTypes.ONCE_A_WEEK, description: 'Once a week' },\r\n { id: FrequencyTypes.EVERY_TWO_WEEKS, description: 'Every 2 weeks' },\r\n];\r\n\r\nexport const tennisScoringTypes = [\r\n { id: TennisScoringFormatTypes.BEST_OF_THREE, description: 'Best of Three Sets' },\r\n { id: TennisScoringFormatTypes.TWO_SETS_WITH_TIEBREAKER, description: 'Two Sets w/ Match Tiebreaker' },\r\n { id: TennisScoringFormatTypes.SINGLE_SET, description: 'Single Set' },\r\n { id: TennisScoringFormatTypes.TIME_BASED, description: 'Time Based' },\r\n { id: TennisScoringFormatTypes.FAST_FOUR, description: 'Fast Four' },\r\n];\r\n\r\nexport const pickleballScoringTypes = [\r\n { id: PickleballScoringFormatTypes.SINGLE_GAME, description: 'Single Game' },\r\n { id: PickleballScoringFormatTypes.BEST_OF_THREE_GAMES, description: 'Best of Three Games' },\r\n { id: PickleballScoringFormatTypes.TIME_BASED_GAME, description: 'Time Based' },\r\n];\r\n\r\nexport const durationTypes = [\r\n { id: 1, description: '30 min' },\r\n { id: 2, description: '60 min' },\r\n { id: 3, description: '90 min' },\r\n { id: 4, description: '120 min' },\r\n { id: 5, description: 'Unlimited' },\r\n];\r\n\r\nexport const tierTypes = [\r\n { id: LeagueTierTypes.ADULT, description: 'Adult' },\r\n { id: LeagueTierTypes.JUNIOR, description: 'Junior' },\r\n];\r\n\r\nexport const openClosedStatusTypes = [\r\n { id: StatusTypes.OPEN, description: 'Open' },\r\n { id: StatusTypes.CLOSED, description: 'Closed' },\r\n];\r\n\r\nexport const sessionMatchFormatTypes = [\r\n { id: MatchFormatTypes.SINGLES, description: 'Singles' },\r\n { id: MatchFormatTypes.DOUBLES, description: 'Doubles' },\r\n { id: MatchFormatTypes.BOTH, description: 'Singles and Doubles' },\r\n];\r\n\r\nexport const drawTypes = [\r\n { id: SessionDrawTypes.FIRST_MATCH_BACK_DRAW, description: 'First match back draw' },\r\n { id: SessionDrawTypes.SINGLE_ELIMINATION, description: 'Single elimination' },\r\n];\r\n\r\nexport const weekdays = [\r\n { id: 0, description: 'Sunday' },\r\n { id: 1, description: 'Monday' },\r\n { id: 2, description: 'Tuesday' },\r\n { id: 3, description: 'Wednesday' },\r\n { id: 4, description: 'Thursday' },\r\n { id: 5, description: 'Friday' },\r\n { id: 6, description: 'Saturday' },\r\n];\r\n\r\nexport const playerWithdrawTypes = [\r\n { id: WithdrawTypes.WITHDRAW, description: 'Withdraw' },\r\n { id: WithdrawTypes.REFUND, description: 'Refund' },\r\n { id: WithdrawTypes.WITHDRAW_AND_REFUND, description: 'Withdraw & Refund' },\r\n];\r\n\r\nexport const matchResultTypes = [\r\n { id: ResultTypes.COMPLETED, description: 'Completed' },\r\n { id: ResultTypes.COMPLETED_WITH_PARTIAL_SCORES, description: 'Completed with parital scores' },\r\n { id: ResultTypes.DEFAULTED, description: 'Defaulted' },\r\n { id: ResultTypes.WITHDREW, description: 'Withdrew' },\r\n { id: ResultTypes.RETIRED, description: 'Retired' },\r\n { id: ResultTypes.INCOMPLETE, description: 'Incomplete' },\r\n { id: ResultTypes.MATCH_NOT_PLAYED, description: 'Match not played' },\r\n];\r\n\r\nexport const PlayerManageOptions = [\r\n { id: PlayerActionTypes.WITHDRAW, description: 'Withdraw' },\r\n { id: PlayerActionTypes.MOVE_TO_TEAM, description: 'Move to team' },\r\n { id: PlayerActionTypes.COPY_TO_TEAM, description: 'Copy to team' },\r\n { id: PlayerActionTypes.MARK_AS_SUBSTITUTE, description: 'Mark as Substitute Player' },\r\n { id: PlayerActionTypes.MARK_AS_ROSTERED, description: 'Mark as Rostered Player' },\r\n];\r\n\r\nexport const DateFilterTypes = {\r\n UPCOMING: 1,\r\n IN_PROGRESS: 2,\r\n PAST: 3\r\n};\r\n\r\nexport const searchDateFilterTypes = [\r\n { id: DateFilterTypes.UPCOMING, description: 'Upcoming' },\r\n { id: DateFilterTypes.IN_PROGRESS, description: 'In progress' },\r\n { id: DateFilterTypes.PAST, description: 'Past' },\r\n];\r\n\r\nexport const TournamentTeamsCount = {\r\n FOUR: 4,\r\n EIGHT: 8,\r\n SIXTEEN: 16,\r\n};\r\n\r\nexport const tournamentTeamsCountOptions = [\r\n { id: TournamentTeamsCount.FOUR, description: '4 teams / 2 matches' },\r\n { id: TournamentTeamsCount.EIGHT, description: '8 teams / 4 matches' },\r\n { id: TournamentTeamsCount.SIXTEEN, description: '16 teams / 8 matches' },\r\n];\r\n\r\nexport const LeagueSearchEntities = {\r\n CONFERENCES: 'conferences',\r\n SESSIONS: 'sessions',\r\n};\r\n\r\nexport const SportTypeIds = {\r\n TENNIS: 1,\r\n PICKLEBALL: 2\r\n};\r\n\r\nexport const SportTypes = {\r\n 1: 'Tennis',\r\n 2: 'Pickleball'\r\n};\r\n\r\nexport const sportTypes = [\r\n { id: SportTypeIds.TENNIS, description: 'Tennis' },\r\n { id: SportTypeIds.PICKLEBALL, description: 'Pickleball' },\r\n];\r\n\r\nexport const getTypeForId = (id, types) => {\r\n return types.find((type) => type.id === id);\r\n};\r\n\r\nexport const PlayerAvailabilityStatusTypes = {\r\n YES: 1,\r\n MAYBE: 2,\r\n NO: 3,\r\n NOT_SET: 4,\r\n};\r\n\r\nexport const PlayerAvailabilityStatus = {\r\n 1: 'YES',\r\n 2: 'MAYBE',\r\n 3: 'NO',\r\n};\r\n\r\nexport const PlayerAvailabilityColors = {\r\n GREEN: 'rsvpGreen',\r\n ORANGE: 'rsvpOrange',\r\n RED: 'rsvpRed',\r\n};\r\n\r\nexport const SessionStandingsRules = {\r\n 1: 'Win/Loss record',\r\n 2: '% of Team Matches won',\r\n 3: '% of Games won',\r\n 4: 'Win/Loss record',\r\n 5: '% of Team Matches won',\r\n 6: '% of Points won'\r\n};\r\n\r\nexport const SessionStandingsTypes = {\r\n TENNIS_WIN_LOSS_RECORD: 1,\r\n TENNIS_PERCENT_OF_TEAM_MATCHES_WON: 2,\r\n TENNIS_PERCENT_OF_GAMES_WON: 3,\r\n PICKLEBALL_WIN_LOSS_RECORD: 4,\r\n PICKLEBALL_PERCENT_OF_TEAM_MATCHES_WON: 5,\r\n PICKLEBALL_PERCENT_OF_POINTS_WON: 6,\r\n};\r\n\r\nexport const tennisSessionStandingsOptions = [\r\n { id: SessionStandingsTypes.TENNIS_WIN_LOSS_RECORD, description: 'Win/Loss record' },\r\n { id: SessionStandingsTypes.TENNIS_PERCENT_OF_TEAM_MATCHES_WON, description: '% of Team Matches won' },\r\n { id: SessionStandingsTypes.TENNIS_PERCENT_OF_GAMES_WON, description: '% of Games won' },\r\n];\r\n\r\nexport const pickleballSessionStandingsOptions = [\r\n { id: SessionStandingsTypes.PICKLEBALL_WIN_LOSS_RECORD, description: 'Win/Loss record' },\r\n { id: SessionStandingsTypes.PICKLEBALL_PERCENT_OF_TEAM_MATCHES_WON, description: '% of Team Matches won' },\r\n { id: SessionStandingsTypes.PICKLEBALL_PERCENT_OF_POINTS_WON, description: '% of Points won' },\r\n];\r\n\r\nexport const SearchSortTypes = {\r\n START_DATE: 'startdate',\r\n AGE: 'age',\r\n GENDER: 'gender',\r\n UTR: 'utr',\r\n UTRP: 'utrp'\r\n};\r\n\r\nexport const SessionDateStatuses = {\r\n 1: 'upcoming',\r\n 2: 'inprogress',\r\n 3: 'past',\r\n};\r\n\r\nexport const SliderTypes = {\r\n AGE: 'Age',\r\n UTR: 'UTR',\r\n UTRP: 'UTRP'\r\n};\r\n","import axios from 'axios';\r\n// import MockAdapter from 'axios-mock-adapter';\r\nimport config from '../config';\r\n\r\nexport const getProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/api',\r\n });\r\n};\r\n\r\nexport const getApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.apiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\nexport const getAxiosInstance = () => {\r\n return axios.create({});\r\n};\r\n\r\nexport const getLeaguesProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/leagues-api',\r\n });\r\n};\r\n\r\nexport const getLeaguesApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getLeaguesProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.leaguesApiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\nexport const getSearchProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/search-api',\r\n });\r\n};\r\n\r\nexport const getSearchApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getSearchProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.searchApiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\n// export const axiosMock = () => {\r\n// const axiosInstance = axios.create({});\r\n// const mock = new MockAdapter(axiosInstance);\r\n// return {\r\n// mock,\r\n// axiosInstance,\r\n// };\r\n// };\r\n","import * as queryString from 'query-string';\r\nimport { createApi } from '@reduxjs/toolkit/query/react';\r\nimport { axiosBaseQuery } from '../redux/services/baseQuery';\r\nimport { WithdrawTypes } from '../utils/types';\r\n\r\nimport { getLeaguesApiAxiosInstance, getApiAxiosInstance } from '../utils/network';\r\n\r\nconst leaguesApiAxiosInstance = getLeaguesApiAxiosInstance();\r\nconst mainApiAxiosInstance = getApiAxiosInstance();\r\n\r\nconst { REFUND } = WithdrawTypes;\r\n\r\nexport const getBreadcrumbs = (context, contextId) => {\r\n const url = `/v1/leagues/breadcrumbs?type=${context}&id=${contextId}`;\r\n return leaguesApiAxiosInstance.get(url);\r\n};\r\n\r\nexport const getUser = () => {\r\n return mainApiAxiosInstance.get(`v1/auth/current`);\r\n};\r\n\r\nexport const getPreferences = () => {\r\n return mainApiAxiosInstance.get(`v1/preferences/feed`)\r\n};\r\n\r\nexport const getActiveLeagueTeams = () => {\r\n const url = '/v2/leagues/member/teams?activeOnly=true';\r\n return leaguesApiAxiosInstance.get(url);\r\n};\r\n\r\nexport const getTeamsForSession = (sessionId, parameters) => {\r\n const url = `/v1/leagues/sessions/${sessionId}/teamsforcopying`;\r\n return leaguesApiAxiosInstance.get(url, {\r\n params: parameters,\r\n paramsSerializer: (params) => queryString.stringify(params, { arrayFormat: 'repeat' }),\r\n });\r\n};\r\n\r\nexport const searchLeagueSessions = (axiosInstance, requestBody) => {\r\n const url = `v4/search/leagues/sessions`;\r\n return axiosInstance.post(url, requestBody);\r\n};\r\n\r\nexport const scrollLeagueSessions = (axiosInstance, requestBody) => {\r\n const url = `v4/search/leagues/sessions/scroll`;\r\n return axiosInstance.post(url, requestBody);\r\n};\r\n\r\nexport const leaguesApi = createApi({\r\n reducerPath: 'leaguesApi',\r\n baseQuery: axiosBaseQuery({\r\n baseUrl: '',\r\n }),\r\n tagTypes: [\r\n 'league-summary',\r\n 'conference',\r\n 'conference-sessions',\r\n 'league-fees',\r\n 'conference-summary',\r\n 'session',\r\n 'session-summary',\r\n 'session-teams',\r\n 'session-schedule',\r\n 'session-standings',\r\n 'team',\r\n 'team-summary',\r\n 'team-schedule',\r\n 'players',\r\n 'registration-fees',\r\n 'schedule',\r\n 'match-summary',\r\n 'player-matches',\r\n 'member-teams',\r\n 'player-available-teams',\r\n 'league-conferences',\r\n 'session-names',\r\n 'user-leagues',\r\n 'team-match-rosters',\r\n 'team-match-lineups',\r\n 'billing-countries',\r\n 'session-schedule-by-date'\r\n ],\r\n endpoints: (build) => ({\r\n // GET\r\n getLeagueSummary: build.query({\r\n query: (leagueId) => ({ url: `/v1/leagues/${leagueId}/summary`, method: 'GET' }),\r\n providesTags: (result, error, leagueId) => [{ type: 'league-summary', id: leagueId }],\r\n }),\r\n getConference: build.query({\r\n query: (conferenceId) => ({ url: `/v2/leagues/conferences/${conferenceId}`, method: 'GET' }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'conference', id: conferenceId }],\r\n }),\r\n getConferenceSessions: build.query({\r\n query: ({ conferenceId, pageNumber, pageSize }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/sessions?pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n method: 'GET',\r\n }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'conference-sessions', id: conferenceId }],\r\n }),\r\n getLeagueFees: build.query({\r\n query: (conferenceId) => ({ url: `/v1/leagues/conferences/${conferenceId}/leaguefees`, method: 'GET' }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'league-fees', id: conferenceId }],\r\n }),\r\n getConferenceSummary: build.query({\r\n query: (conferenceId) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/summary`,\r\n method: 'GET',\r\n }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'conference-summary', id: conferenceId }],\r\n }),\r\n getSession: build.query({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session', id: sessionId }],\r\n }),\r\n getSessionSummary: build.query({\r\n query: (sessionId) => ({ url: `/v2/leagues/sessions/${sessionId}/summary`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session-summary', id: sessionId }],\r\n }),\r\n getSessionTeams: build.query({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/teams`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session-teams', id: sessionId }],\r\n }),\r\n getSessionSchedule: build.query({\r\n query: ({ sessionId, showDraftSchedule }) => ({\r\n url: `/v2/leagues/sessions/${sessionId}/schedule?showDraftSchedules=${showDraftSchedule}`,\r\n method: 'GET',\r\n }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, arg) => [{ type: 'session-schedule', id: arg.sessionId }],\r\n }),\r\n getSessionScheduleByDate: build.query({\r\n query: ({ sessionId, showDraftSchedule }) => ({\r\n url: `/v1/leagues/sessions/${sessionId}/scheduleByDate?showDraftSchedules=${showDraftSchedule}`,\r\n method: 'GET',\r\n }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, arg) => [{ type: 'session-schedule-by-date', id: arg.sessionId }],\r\n }),\r\n getSessionStandings: build.query({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/teamstandings`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session-standings', id: sessionId }],\r\n }),\r\n getTeam: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team', id: teamId }],\r\n }),\r\n getTeamSummary: build.query({\r\n query: (teamId) => ({ url: `/v2/leagues/teams/${teamId}/summary`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team-summary', id: teamId }],\r\n }),\r\n getTeamSchedule: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/schedule`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team-schedule', id: teamId }],\r\n }),\r\n getTeamScheduleByDate: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/schedulebydate`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team-schedule', id: teamId }],\r\n }),\r\n getRegistrationFees: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/registration-fees`, method: 'GET' }),\r\n providesTags: ['registration-fees'],\r\n }),\r\n getPlayers: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/members`, method: 'GET' }),\r\n transformResponse: (response) => {\r\n const players = response?.teamMembers?.map((member) => {\r\n return { ...member, teamId: response?.teamId };\r\n });\r\n return players;\r\n },\r\n providesTags: (result, error, teamId) => [{ type: 'players', id: teamId }],\r\n }),\r\n getSchedule: build.query({\r\n query: (scheduleId) => ({ url: `/v1/leagues/schedules/${scheduleId}`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, scheduleId) => [{ type: 'schedule', id: scheduleId }],\r\n }),\r\n getMatchSummary: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/summary`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, teamMatchId) => [{ type: 'match-summary', id: teamMatchId }],\r\n }),\r\n getPlayerMatches: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/playermatches`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, teamMatchId) => [{ type: 'player-matches', id: teamMatchId }],\r\n }),\r\n getLatestTeamMatchUpdate: build.query({\r\n query: ({ teamMatchId, timestamp }) => {\r\n let pollingUrl;\r\n if (timestamp) {\r\n pollingUrl = `/v1/leagues/teammatches/${teamMatchId}/latest?timestamp=${timestamp}`;\r\n } else {\r\n pollingUrl = `/v1/leagues/teammatches/${teamMatchId}/latest`;\r\n }\r\n return { url: pollingUrl, method: 'GET' };\r\n },\r\n }),\r\n getMemberTeams: build.query({\r\n query: () => ({ url: `/v2/leagues/member/teams`, method: 'GET' }),\r\n providesTags: () => [{ type: 'member-teams' }],\r\n }),\r\n getPlayersAvailableTeams: build.query({\r\n query: ({ sessionId, memberId }) => ({ url: `/v1/leagues/session/${sessionId}/playeravailableteams?memberId=${memberId}`, method: 'GET' }),\r\n providesTags: (result, error, arg) => [{ type: 'player-available-teams', id: arg.memberId }],\r\n keepUnusedDataFor: 0,\r\n }),\r\n getLeagueConferences: build.query({\r\n query: (leagueId) => ({ url: `/v1/leagues/${leagueId}/conferences`, method: 'GET' }),\r\n providesTags: (result, error, leagueId) => [{ type: 'league-conferences', id: leagueId }],\r\n }),\r\n getSessionNames: build.query({\r\n query: (conferenceId) => ({ url: `/v1/leagues/conferences/${conferenceId}/sessionnames`, method: 'GET' }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'session-names', id: conferenceId }],\r\n }),\r\n getUserLeagues: build.query({\r\n query: () => ({ url: `/v1/leagues/my-leagues`, method: 'GET' }),\r\n providesTags: () => [{ type: 'user-leagues' }],\r\n }),\r\n getTeamMatchRosters: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/rosters`, method: 'GET' }),\r\n providesTags: (result, error, teamMatchId) => [{ type: 'team-match-rosters', id: teamMatchId }],\r\n }),\r\n getTeamMatchLineups: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/lineups`, method: 'GET' }),\r\n providesTags: (result, error, teamMatchId) => [{ type: 'team-match-lineups', id: teamMatchId }],\r\n }),\r\n getBillingCountries: build.query({\r\n query: () => ({ url: `/v1/leagues/billingcountries`, method: 'GET' }),\r\n transformResponse: (response) => {\r\n const formattedCountries = response.map((country) => {\r\n return { id: country.value, description: country.label };\r\n });\r\n return formattedCountries;\r\n },\r\n providesTags: () => [{ type: 'billing-countries' }],\r\n }),\r\n\r\n // POST\r\n\r\n createConference: build.mutation({\r\n query: (conference) => ({ url: `/v1/leagues/conferences`, method: 'POST', data: conference }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'league-summary', id: arg.leagueId }],\r\n }),\r\n addOrganizer: build.mutation({\r\n query: ({ conferenceId, organizer }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/organizers`,\r\n method: 'POST',\r\n data: organizer,\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'conference', id: arg.conferenceId }],\r\n }),\r\n createSession: build.mutation({\r\n query: (session) => ({ url: `/v1/leagues/sessions`, method: 'POST', data: session }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'conference-sessions', id: arg.conferenceId }],\r\n }),\r\n initiateRegistration: build.mutation({\r\n query: (registrationData) => ({ url: `/v1/leagues/sessions/initiate-registration`, method: 'POST', data: registrationData }),\r\n }),\r\n requestToCaptain: build.mutation({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/captainrequests`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-summary', id: arg.sessionId }],\r\n }),\r\n createEmptySchedule: build.mutation({\r\n query: (sessionId) => ({ url: `/v2/leagues/sessions/${sessionId}/schedules/create-empty`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-schedule', id: arg.sessionId }],\r\n }),\r\n createSchedule: build.mutation({\r\n query: ({ sessionId, scheduleId }) => ({ url: `/v1/leagues/sessions/${sessionId}/schedules`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n }),\r\n createTeamSeeds: build.mutation({\r\n query: ({ sessionId, data, scheduleId }) => ({ url: `/v1/leagues/sessions/${sessionId}/teamseeds`, method: 'POST', data }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n }),\r\n createTeam: build.mutation({\r\n query: (team) => ({ url: `/v1/leagues/teams`, method: 'POST', data: team }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-teams', id: arg.sessionId }],\r\n }),\r\n addCaptain: build.mutation({\r\n query: ({ teamId, captain }) => ({ url: `/v1/leagues/teams/${teamId}/captains`, method: 'POST', data: captain }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'team-summary', id: arg.teamId },\r\n ],\r\n }),\r\n messageTeamPlayers: build.mutation({\r\n query: ({ teamId, message, includeCaptains }) => ({\r\n url: `/v1/leagues/teams/${teamId}/message`,\r\n method: 'POST',\r\n data: { message, includeCaptains },\r\n }),\r\n }),\r\n validateRegistrationPin: build.mutation({\r\n query: ({ teamId, pin }) => ({ url: `/v1/leagues/teams/${teamId}/validate-registration-pin`, method: 'POST', data: { pin } }),\r\n }),\r\n publishSchedule: build.mutation({\r\n query: ({ scheduleId, sessionId, data }) => ({ url: `/v1/leagues/schedules/${scheduleId}/publish`, method: 'POST', data }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n ],\r\n }),\r\n postPlayerMatchResult: build.mutation({\r\n query: ({ playerMatchId, playerMatch, teamMatchId }) => ({\r\n url: `/v1/leagues/playermatches/${playerMatchId}/playermatchresult`,\r\n method: 'POST',\r\n data: playerMatch,\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'player-matches', id: arg.teamMatchId }],\r\n }),\r\n requestToJoinSession: build.mutation({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/joinrequests`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-summary', id: arg.sessionId }],\r\n }),\r\n copyTeamsToSession: build.mutation({\r\n query: ({ sessionId, teamData }) => ({ url: `/v1/leagues/sessions/${sessionId}/copyteams`, method: 'POST', data: teamData }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-teams', id: arg.sessionId }],\r\n }),\r\n validateUsapMembership: build.mutation({\r\n query: ({ sessionId, usapMemberId }) => ({ url: `/v1/leagues/sessions/${sessionId}/validate-usap-member`, method: 'POST', data: { usapMemberId } })\r\n }),\r\n\r\n // PUT\r\n\r\n addScheduleRound: build.mutation({\r\n query: ({ scheduleId, newRound }) => ({ url: `/v1/leagues/schedules/${scheduleId}/add-round`, method: 'PUT', data: newRound }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'schedule', id: arg.scheduleId },],\r\n }),\r\n addTeamMatch: build.mutation({\r\n query: ({ scheduleId, newMatch }) => ({ url: `/v1/leagues/schedules/${scheduleId}/add-teammatch`, method: 'PUT', data: newMatch }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'schedule', id: arg.scheduleId },],\r\n }),\r\n updateConference: build.mutation({\r\n query: ({ conferenceId, conference, leagueId }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}`,\r\n method: 'PUT',\r\n data: conference,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'conference', id: arg.conferenceId },\r\n { type: 'league-summary', id: arg.leagueId },\r\n ],\r\n }),\r\n updateSession: build.mutation({\r\n query: ({ sessionId, session, conferenceId }) => ({ url: `/v1/leagues/sessions/${sessionId}`, method: 'PUT', data: session }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'conference-sessions', id: arg.conferenceId },\r\n ],\r\n }),\r\n updateTeam: build.mutation({\r\n query: ({ teamId, team, sessionId }) => ({ url: `/v1/leagues/teams/${teamId}`, method: 'PUT', data: team }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team-summary', id: arg.teamId },\r\n ],\r\n }),\r\n updateUnpublishSchedule: build.mutation({\r\n query: ({ scheduleId, sessionId }) => ({ url: `/v1/leagues/schedules/${scheduleId}/unpublish`, method: 'PUT' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n }),\r\n updatePlayerRegistration: build.mutation({\r\n query: ({ sessionId, teamId, withdrawRequest, withDrawType }) => ({\r\n url: `/v1/leagues/teams/${teamId}/update-registration`,\r\n method: 'PUT',\r\n data: withdrawRequest,\r\n }),\r\n invalidatesTags: (result, error, arg) => {\r\n let tags = [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ];\r\n if (arg.withDrawType !== REFUND) {\r\n tags = [...tags, { type: 'players', id: arg.teamId }];\r\n }\r\n return tags;\r\n },\r\n }),\r\n updateTeamMatchSummary: build.mutation({\r\n query: ({ teamMatchId, sessionId, scheduleId, teamMatch }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}`,\r\n method: 'PUT',\r\n data: teamMatch,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'match-summary', id: arg.teamMatchId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n ],\r\n }),\r\n updateTeamMatchDateLocation: build.mutation({\r\n query: ({ teamMatchId, sessionId, scheduleId, data }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/location-date`,\r\n method: 'PUT',\r\n data,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'match-summary', id: arg.teamMatchId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n ],\r\n }),\r\n updateTeamMatchPositions: build.mutation({\r\n query: ({ teamMatchId, teamMatchPositions, scheduleId, sessionId }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/positions`,\r\n method: 'PUT',\r\n data: teamMatchPositions,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'match-summary', id: arg.teamMatchId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n ],\r\n }),\r\n updatePlayerMatchResult: build.mutation({\r\n query: ({ playerMatchId, playerMatch, teamMatchId }) => ({\r\n url: `/v1/leagues/playermatches/${playerMatchId}/playermatchresult`,\r\n method: 'PUT',\r\n data: playerMatch,\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'player-matches', id: arg.teamMatchId }],\r\n }),\r\n movePlayerToTeam: build.mutation({\r\n query: ({ memberId, fromTeamId, toTeamId, sessionId }) => ({\r\n url: `/v1/leagues/teammembers/move`,\r\n method: 'PUT',\r\n data: { memberId, fromTeamId, toTeamId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'member-teams' },\r\n { type: 'players', id: arg.fromTeamId },\r\n { type: 'players', id: arg.toTeamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team', id: arg.fromTeamId },\r\n { type: 'team', id: arg.toTeamId },\r\n { type: 'team-summary', id: arg.fromTeamId },\r\n { type: 'team-summary', id: arg.toTeamId },\r\n { type: 'player-available-teams', id: arg.memberId },\r\n ],\r\n }),\r\n copyPlayerToTeam: build.mutation({\r\n query: ({ memberId, fromTeamId, toTeamIds, isSubstitute, sessionId }) => ({\r\n url: `/v1/leagues/teammembers/copy`,\r\n method: 'PUT',\r\n data: { memberId, fromTeamId, toTeamIds, isSubstitute },\r\n }),\r\n invalidatesTags: (result, error, arg) => {\r\n const tags = [\r\n { type: 'member-teams' },\r\n { type: 'team-summary', id: arg.fromTeamId },\r\n { type: 'players', id: arg.fromTeamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team', id: arg.fromTeamId },\r\n { type: 'player-available-teams', id: arg.memberId },\r\n ];\r\n arg.toTeamIds.forEach((teamId) => {\r\n const newTags = [\r\n { type: 'players', id: teamId },\r\n { type: 'team', id: teamId },\r\n { type: 'team-summary', id: teamId },\r\n ];\r\n tags.push(...newTags);\r\n });\r\n return tags;\r\n },\r\n }),\r\n togglePlayerRosterStatus: build.mutation({\r\n query: ({ memberId, teamId, sessionId }) => ({\r\n url: `/v1/leagues/teammembers/toggle-substitute`,\r\n method: 'PUT',\r\n data: { memberId, teamId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'member-teams' },\r\n { type: 'team-summary', id: arg.teamId },\r\n { type: 'players', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team', id: arg.teamId },\r\n { type: 'player-available-teams', id: arg.memberId },\r\n ],\r\n }),\r\n updatePlayerAvailabilityStatus: build.mutation({\r\n query: ({ teamMemberIds, playerAvailabilityStatusId, teamMatchId }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/playeravailability`,\r\n method: 'PUT',\r\n data: { teamMemberIds, playerAvailabilityStatusId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team-match-rosters', id: arg.teamMatchId },\r\n ],\r\n }),\r\n updateTeamMatchLineups: build.mutation({\r\n query: ({ teamMatchId, lineups }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/lineups`,\r\n method: 'PUT',\r\n data: lineups,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team-match-lineups', id: arg.teamMatchId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n ],\r\n }),\r\n updatePlayerReminderStatus: build.mutation({\r\n query: ({ teamId, teamMemberIds, teamMatchId }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/reminders`,\r\n method: 'PUT',\r\n data: { teamId, teamMemberIds, teamMatchId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team-match-rosters', id: arg.teamMatchId },\r\n ],\r\n }),\r\n updateTeamMatchLineupStatus: build.mutation({\r\n query: ({ teamMatchId, lineupStatusId, notifyPlayersWhenLocked }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/setlineupstatus`,\r\n method: 'PUT',\r\n data: { lineupStatusId, notifyPlayersWhenLocked },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n ],\r\n }),\r\n\r\n // DELETE\r\n\r\n removeOrganizer: build.mutation({\r\n query: ({ conferenceId, organizerId }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/organizers/${organizerId}`,\r\n method: 'DELETE',\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'conference', id: arg.conferenceId }],\r\n }),\r\n removeTeam: build.mutation({\r\n query: ({ teamId, sessionId }) => ({ url: `/v1/leagues/teams/${teamId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n keepUnusedDataFor: 0,\r\n }),\r\n removeCaptain: build.mutation({\r\n query: ({ teamId, captainId }) => ({ url: `/v1/leagues/teams/${teamId}/captains/${captainId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'team-summary', id: arg.teamId },\r\n ],\r\n }),\r\n removeSchedule: build.mutation({\r\n query: ({ scheduleId, sessionId }) => ({ url: `/v1/leagues/schedules/${scheduleId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n ],\r\n }),\r\n removeSession: build.mutation({\r\n query: ({ sessionId, conferenceId }) => ({ url: `/v1/leagues/sessions/${sessionId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'conference-sessions', id: arg.conferenceId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n ],\r\n }),\r\n clearTeamMatch: build.mutation({\r\n query: ({teamMatchId}) => ({ url: `/v1/leagues/playermatches/${teamMatchId}/clear`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'team-match-lineups', id: arg.teamMatchId },\r\n ],\r\n }),\r\n removeScheduleRound: build.mutation({\r\n query: ({scheduleId, roundId}) => ({ url: `/v1/leagues/schedules/${scheduleId}/delete-round`, method: 'DELETE', data: { roundId }, }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId }\r\n ],\r\n }),\r\n removeTeamMatch: build.mutation({\r\n query: ({teamMatchId}) => ({ url: `/v1/leagues/teammatches/${teamMatchId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'team-match-lineups', id: arg.teamMatchId },\r\n ],\r\n }),\r\n }),\r\n});\r\n\r\nexport const {\r\n useAddScheduleRoundMutation,\r\n useAddTeamMatchMutation,\r\n useGetLeagueSummaryQuery,\r\n useGetConferenceQuery,\r\n useGetConferenceSessionsQuery,\r\n useGetLeagueFeesQuery,\r\n useGetConferenceSummaryQuery,\r\n useGetSessionQuery,\r\n useGetSessionSummaryQuery,\r\n useGetSessionTeamsQuery,\r\n useGetSessionScheduleQuery,\r\n useLazyGetSessionScheduleByDateQuery,\r\n useGetSessionStandingsQuery,\r\n useGetTeamQuery,\r\n useGetTeamSummaryQuery,\r\n useGetRegistrationFeesQuery,\r\n useGetPlayersQuery,\r\n useGetScheduleQuery,\r\n useGetMatchSummaryQuery,\r\n useGetPlayerMatchesQuery,\r\n useGetTeamScheduleQuery,\r\n useLazyGetTeamScheduleByDateQuery,\r\n useGetLatestTeamMatchUpdateQuery,\r\n useGetMemberTeamsQuery,\r\n useGetPlayersAvailableTeamsQuery,\r\n useGetLeagueConferencesQuery,\r\n useGetSessionNamesQuery,\r\n useGetUserLeaguesQuery,\r\n useGetTeamMatchRostersQuery,\r\n useGetTeamMatchLineupsQuery,\r\n useGetBillingCountriesQuery,\r\n useCreateConferenceMutation,\r\n useAddOrganizerMutation,\r\n useCreateSessionMutation,\r\n useInitiateRegistrationMutation,\r\n useRequestToCaptainMutation,\r\n useCreateEmptyScheduleMutation,\r\n useCreateScheduleMutation,\r\n useCreateTeamSeedsMutation,\r\n usePublishScheduleMutation,\r\n useCreateTeamMutation,\r\n useAddCaptainMutation,\r\n useMessageTeamPlayersMutation,\r\n useValidateRegistrationPinMutation,\r\n usePostPlayerMatchResultMutation,\r\n useRequestToJoinSessionMutation,\r\n useCopyTeamsToSessionMutation,\r\n useValidateUsapMembershipMutation,\r\n useUpdateConferenceMutation,\r\n useUpdateSessionMutation,\r\n useUpdateTeamMutation,\r\n useUpdatePlayerRegistrationMutation,\r\n useUpdateTeamMatchSummaryMutation,\r\n useUpdateTeamMatchDateLocationMutation,\r\n useUpdateTeamMatchPositionsMutation,\r\n useUpdatePlayerMatchResultMutation,\r\n useUpdateUnpublishScheduleMutation,\r\n useMovePlayerToTeamMutation,\r\n useCopyPlayerToTeamMutation,\r\n useTogglePlayerRosterStatusMutation,\r\n useUpdatePlayerAvailabilityStatusMutation,\r\n useUpdateTeamMatchLineupsMutation,\r\n useUpdatePlayerReminderStatusMutation,\r\n useUpdateTeamMatchLineupStatusMutation,\r\n useRemoveOrganizerMutation,\r\n useRemoveTeamMutation,\r\n useRemoveCaptainMutation,\r\n useRemoveScheduleMutation,\r\n useRemoveSessionMutation,\r\n useClearTeamMatchMutation,\r\n useRemoveScheduleRoundMutation,\r\n useRemoveTeamMatchMutation\r\n} = leaguesApi;\r\n","/* eslint-disable */\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\n\r\nconst MISSING_TEAM_TIME_SLOT_ERROR_CODE = 30057;\r\n\r\nexport const axiosBaseQuery =\r\n ({ baseUrl }) =>\r\n async ({ url, method, data }) => {\r\n const requestUrl = `${baseUrl}${url}`;\r\n const isUsingProxy = config.useProxy;\r\n const requestBaseUrl = isUsingProxy ? `/leagues-api${requestUrl}` : `${config.leaguesApiHost}${requestUrl}`;\r\n\r\n try {\r\n const result = await axios({ url: requestBaseUrl, method, data, withCredentials: !isUsingProxy });\r\n return { data: result.data };\r\n } catch (axiosError) {\r\n const err = axiosError;\r\n const errorMessage =\r\n err?.response?.data?.MessageStatusCode === MISSING_TEAM_TIME_SLOT_ERROR_CODE\r\n ? err?.response?.data?.Message\r\n : err.response?.data?.DisplayMessage;\r\n\r\n return {\r\n error: { status: err.response?.status, message: errorMessage || null },\r\n };\r\n }\r\n };\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getUser } from '../../api/leaguesApi';\r\nimport config from '../../config';\r\n\r\nexport const getAuthUser = createAsyncThunk('auth/getAuthUser', async () => {\r\n try {\r\n const res = await getUser();\r\n return res.data;\r\n } catch (err) {\r\n window.open(`${config.appHost}/login?redirect=${window.location.href}`, '_self');\r\n const customError = {\r\n name: 'Axios Auth Error',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getActiveLeagueTeams, getPreferences } from '../../api/leaguesApi';\r\n\r\nexport const getActiveTeams = createAsyncThunk('user/getActiveTeams', async () => {\r\n try {\r\n const response = await getActiveLeagueTeams();\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Axios Types Error',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n\r\nexport const getUserPreferences = createAsyncThunk('user/getUserPreferences', async () => {\r\n try {\r\n const response = await getPreferences();\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Axios Types Error',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import * as queryString from 'query-string';\r\nimport urljoin from 'url-join';\r\nimport srcset from 'srcset';\r\nimport config from '../config';\r\n\r\n/* eslint no-param-reassign: [\"error\", { \"props\": false }] */\r\n\r\nexport function urlIsAbsolute(url) {\r\n const regex = /^https?:\\/\\//;\r\n const startsWithHttpOrHttps = regex.test(url);\r\n return startsWithHttpOrHttps;\r\n}\r\n\r\nexport function formatUrlForCdn(cdnUrl, urlPath) {\r\n // urls that start with /v*/ need to have that stripped off, other urls need to be prefixed with the public path\r\n if (!urlIsAbsolute(urlPath)) {\r\n const regex = /^\\/v(0?[1-9]|[1-9][0-9])\\//;\r\n const isApiSource = regex.test(urlPath);\r\n\r\n if (isApiSource) {\r\n return urljoin(cdnUrl || '', urlPath);\r\n }\r\n\r\n return urljoin(config.publicPath, urlPath);\r\n }\r\n\r\n return urlPath;\r\n}\r\n\r\nexport function updateSrcSetForCdn(srcSet, cdnUrl) {\r\n const parsedSrcSet = srcset.parse(srcSet);\r\n parsedSrcSet.forEach((src) => {\r\n src.url = formatUrlForCdn(cdnUrl, src.url);\r\n });\r\n return srcset.stringify(parsedSrcSet);\r\n}\r\nexport function parseUrlParam(url, param) {\r\n const parsed = queryString.parse(url);\r\n if (param in parsed) {\r\n return parsed[param];\r\n }\r\n return '';\r\n}\r\n","import React from 'react';\r\nimport config from '../../config';\r\nimport { formatUrlForCdn, updateSrcSetForCdn } from '../../utils/url';\r\n\r\nconst Img = ({ srcSet, defaultImage, src, alt, useRawSrcSet, onImgLoad, ...rest }) => {\r\n const { cdnUrl } = config;\r\n const useCdn = cdnUrl;\r\n let cdnSrcSet;\r\n let cdnSrc;\r\n if (useCdn) {\r\n if (srcSet) {\r\n cdnSrcSet = useRawSrcSet ? srcSet : updateSrcSetForCdn(srcSet, cdnUrl);\r\n }\r\n cdnSrc = formatUrlForCdn(cdnUrl, src);\r\n }\r\n\r\n const handleSetImg = (img) => {\r\n if (img && onImgLoad) {\r\n onImgLoad(img);\r\n }\r\n };\r\n\r\n return (\r\n handleSetImg(el)}\r\n onError={(e) => {\r\n if (defaultImage) {\r\n e.target.src = `${defaultImage}`;\r\n e.target.srcset = `${defaultImage}`;\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default Img;\r\n","import config from '../config';\r\n\r\nconst { marketingAppHost, appHost } = config;\r\n\r\nexport const ageSliderDictionary = {\r\n 1: 8,\r\n 2: 9,\r\n 3: 10,\r\n 4: 11,\r\n 5: 12,\r\n 6: 13,\r\n 7: 14,\r\n 8: 15,\r\n 9: 16,\r\n 10: 17,\r\n 11: 18,\r\n 12: 21,\r\n 13: 25,\r\n 14: 30,\r\n 15: 35,\r\n 16: 40,\r\n 17: 45,\r\n 18: 50,\r\n 19: 55,\r\n 20: 60,\r\n 21: 65,\r\n 22: 70,\r\n};\r\n\r\nexport const utrpSliderDictionary = {\r\n 1: 'P1',\r\n 2: 'P2',\r\n 3: 'P3',\r\n 4: 'P4',\r\n};\r\n\r\nexport function getAgeKeyByValue(value) {\r\n // handle values outside the range\r\n if (value < 8) {\r\n return 1;\r\n }\r\n if (value > 70) {\r\n return 22;\r\n }\r\n // handle values within the range, fallback to 1 if there is no match\r\n return Object.keys(ageSliderDictionary).find((key) => ageSliderDictionary[key] === value) || 1;\r\n}\r\n\r\nexport const UTPRRanges = {\r\n P1: 1,\r\n P2: 2,\r\n P3: 3,\r\n P4: 4\r\n};\r\n\r\nexport const DefaultSliderValues = {\r\n utrRange: [1, 16],\r\n ageRange: [1, 22],\r\n utrpRange: [1, 10]\r\n};\r\n\r\nexport const SortType = {\r\n ASC: 'asc',\r\n DESC: 'desc',\r\n};\r\n\r\nexport const ResponseStatuses = {\r\n OK: 200,\r\n CREATED: 201,\r\n NO_CONTENT: 204,\r\n NOT_FOUND: 404,\r\n};\r\n\r\nexport const LeagueTabs = {\r\n CAPTAINS: 'captains',\r\n CONFERENCES: 'conferences',\r\n DETAILS: 'details',\r\n EDIT_CAPTAINS: 'edit captains',\r\n EDIT_SETTINGS: 'edit settings',\r\n ORGANIZERS: 'organizers',\r\n OVERVIEW: 'overview',\r\n PLAYERS: 'players',\r\n ROSTER: 'roster',\r\n SCHEDULE: 'schedule',\r\n SESSIONS: 'sessions',\r\n TEAMS: 'teams',\r\n DRAW: 'draw',\r\n LINES: 'lines',\r\n LOCATION: 'location',\r\n AWAY_TEAM: 'away team',\r\n HOME_TEAM: 'home team'\r\n};\r\n\r\nexport const ManageSessionTabs = {\r\n TEAMS: 'teams',\r\n SCHEDULE: 'schedule',\r\n DRAW: 'draw',\r\n PLAYERS: 'players',\r\n DETAILS: 'details'\r\n};\r\n\r\nexport const SessionTabs = {\r\n OVERVIEW: 'overview',\r\n SCHEDULE: 'schedule',\r\n DRAW: 'draw',\r\n PLAYERS: 'players',\r\n STANDINGS: 'team standings',\r\n};\r\n\r\nexport const BreadcrumbContexts = {\r\n LEAGUE: 'league',\r\n CONFERENCE: 'conference',\r\n SESSION: 'session',\r\n TEAM: 'team',\r\n};\r\n\r\nexport const LeagueRoles = {\r\n LEAGUE_ADMIN: 'League Admin',\r\n CONFERENCE_ORGANIZER: 'Conference Organizer',\r\n TEAM_CAPTAIN: 'Team Captain',\r\n};\r\n\r\nexport const DistanceSliderMarks = [\r\n { value: 10, label: '10mi' },\r\n { value: 25, label: '25mi' },\r\n { value: 50, label: '50mi' },\r\n { value: 75, label: '75mi' },\r\n { value: 100, label: '100mi' },\r\n { value: 125, label: '125mi' },\r\n];\r\n\r\nexport const dateFormat = 'MMM Do YYYY';\r\nexport const dateTimeFormat = 'MMM Do YYYY - h:mm A';\r\nexport const defaultGridSpacing = 3;\r\nexport const formPaperStyles = { px: 4, py: 2, my: 5 };\r\nexport const homeTeamIndicator = '(H)';\r\n\r\nexport const ScorePositionKeys = {\r\n POSITION_ONE_SCORE: 'position1Score',\r\n POSITION_ONE_TB_SCORE: 'position1Tiebreaker',\r\n POSITION_TWO_SCORE: 'position2Score',\r\n POSITION_TWO_TB_SCORE: 'position2Tiebreaker'\r\n};\r\n\r\nexport const managingTennisHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'matchesPlayed', label: 'Matches' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const tennisHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'record', label: 'Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const teamProfileTennisHeadCells = [\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const managingPickleballHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'utrp-numeric-single', label: 'UTR-P' },\r\n { id: 'utrp-numeric-double', label: 'UTR-P' },\r\n { id: 'matchesPlayed', label: 'Matches' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const pickleballHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'utrp-numeric-single', label: 'UTR-P' },\r\n { id: 'utrp-numeric-double', label: 'UTR-P' },\r\n { id: 'record', label: 'Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const teamProfilePickleballHeadCells = [\r\n { id: 'utrp-numeric-single', label: 'UTR-P' },\r\n { id: 'utrp-numeric-double', label: 'UTR-P' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const tennisTeamMatchHeadCells = [\r\n { id: 'name', label: 'Rostered Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const pickleballTeamMatchHeadCells = [\r\n { id: 'name', label: 'Rostered Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'utrp', label: 'UTRP' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const tennisSubstituteTeamMatchHeadCells = [\r\n { id: 'name', label: 'Substitute Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const pickleballSubstituteTeamMatchHeadCells = [\r\n { id: 'name', label: 'Substitute Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'utrp', label: 'UTRP' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const sessionStandingsHeadCells = [\r\n { id: 'rank', label: 'Rank' },\r\n { id: 'teamName', label: 'Name' },\r\n { id: 'teamPowerIndexSingles', label: 'TPI S' },\r\n { id: 'teamPowerIndexDoubles', label: 'TPI D' },\r\n { id: 'teamMatchWins', label: 'Wins' },\r\n { id: 'teamMatchLosses', label: 'Losses' },\r\n { id: 'playerMatchPoints', label: 'Points' },\r\n];\r\n\r\nexport const GridSizes = {\r\n ONE: 1,\r\n TWO: 2,\r\n THREE: 3,\r\n FOUR: 4,\r\n FIVE: 5,\r\n SIX: 6,\r\n SEVEN: 7,\r\n EIGHT: 8,\r\n NINE: 9,\r\n TEN: 10,\r\n ELEVEN: 11,\r\n TWELVE: 12\r\n};\r\n\r\nexport const TypographySizes = {\r\n LARGE: 'large',\r\n LARGE_BOLD: 'large-bold',\r\n LARGE_BOOK: 'large-book',\r\n LARGE_LIGHT: 'large-light',\r\n LARGE_MEDIUM: 'large-medium',\r\n MEDIUM_BOOK: 'medium-book',\r\n MEDIUM_MEDIUM: 'medium-medium',\r\n MEDIUM_SEMIBOLD: 'medium-semibold',\r\n SMALL_BOOK: 'small-book',\r\n SMALL_MEDIUM: 'small-medium',\r\n SMALL_MEDIUM_CAP: 'small-medium-cap',\r\n X_SMALL_BOOK: 'x-small-book',\r\n X_SMALL_BOOK_CAP: 'x-small-book-cap',\r\n X_SMALL_MEDIUM: 'x-small-medium',\r\n X_SMALL_MEDIUM_CAP: 'x-small-medium-cap',\r\n XX_SMALL_BOOK: 'xx-small-book',\r\n XX_SMALL_MEDIUM_CAP: 'xx-small-medium-cap',\r\n};\r\n\r\nexport const SharedUICategories = {\r\n PRIMARY: 'primary',\r\n SECONDARY: 'secondary',\r\n DISPLAY: 'display',\r\n PRIMARY_EXPANDED: 'primary-expanded',\r\n SECONDARY_FLIPPED: 'secondary-flipped',\r\n LINK: 'link'\r\n};\r\n\r\nexport const LineupStatusType = {\r\n DRAFT: 1,\r\n LOCKED: 2,\r\n PUBLISHED: 3\r\n};\r\n\r\nexport const LineupButtonLabels = {\r\n PUBLISH: 'Publish',\r\n UNPUBLISH: 'Unpublish',\r\n LOCK: 'Lock',\r\n UNLOCK: 'Unlock'\r\n};\r\n\r\nexport const LineupButtonTooltipText = {\r\n PUBLISH_TOOLTIP: 'Publishing will make your lineup visible to players outside your team',\r\n UNPUBLISH_TOOLTIP: 'Unpublishing will revert the lineup to \"Locked,\" so only your team can see it',\r\n LOCK_TOOLTIP: 'Locking will allow your team members to see the lineup',\r\n UNLOCK_TOOLTIP: 'Unlocking will limit lineup visibility to team captains only'\r\n};\r\n\r\nexport const FooterExploreItems = [\r\n { href: `${appHost}/cities`, label: 'Cities' },\r\n { href: `${appHost}/states`, label: 'States' },\r\n { href: `${appHost}/countries`, label: 'Countries' },\r\n];\r\n\r\nexport const FooterProviderItems = [\r\n { href: `${marketingAppHost}/pages/clubs`, label: 'Clubs' },\r\n { href: `${marketingAppHost}/pages/academies`, label: 'Academies' },\r\n { href: `${marketingAppHost}/pages/high-school`, label: 'High Schools' },\r\n { href: `${marketingAppHost}/pages/college`, label: 'Colleges' },\r\n { href: `${marketingAppHost}/pages/get-in-touch`, label: 'Get in Touch' },\r\n];\r\n\r\nexport const FooterMoreItems = [\r\n { href: `${marketingAppHost}/blogs/news`, label: 'News' },\r\n { href: `${marketingAppHost}/blogs/press`, label: 'Press' },\r\n { href: `${marketingAppHost}/collections/all`, label: 'Shop' },\r\n { href: 'https://apply.workable.com/universal-tennis/', label: 'Careers' },\r\n { href: `${marketingAppHost}/pages/about-us`, label: 'About Us' },\r\n { href: `${marketingAppHost}/pages/foundation`, label: 'Foundation' },\r\n { href: 'https://insights.utrsports.net/', label: 'Pro Insights' },\r\n];\r\n\r\nexport const FooterSupportItems = [\r\n { href: 'https://support.universaltennis.com/support/home', label: 'Help Center' },\r\n { href: `${marketingAppHost}/policies/privacy-policy`, label: 'Privacy Policy' },\r\n { href: `${marketingAppHost}/policies/terms-of-service`, label: 'Terms & Conditions' },\r\n { href: `${marketingAppHost}/pages/guidelines`, label: 'Guidelines' },\r\n { href: `${marketingAppHost}/pages/verified`, label: 'Verified Events' },\r\n { href: `${marketingAppHost}/pages/how-utr-works`, label: 'About UTR Rating' },\r\n { href: `${marketingAppHost}/pages/how-utr-p-works`, label: 'About UTR-P Rating' },\r\n];\r\n\r\nexport const FooterSocialMedia = [\r\n { id: 1, label: 'X', href: 'https://x.com/UTR_Sports_' },\r\n { id: 2, label: 'Facebook', href: 'https://www.facebook.com/UTRSports' },\r\n { id: 3, label: 'Instagram', href: 'https://www.instagram.com/utr_sports/' },\r\n { id: 4, label: 'TikTok', href: 'https://www.tiktok.com/@utr_sports' },\r\n { id: 5, label: 'YouTube', href: 'https://www.youtube.com/c/myutr' },\r\n];\r\n\r\nexport const RegistrationStepIds = {\r\n TEAM_SELECTION: 1,\r\n PASSWORD_CONFIRMATION: 2,\r\n EVENT_QUESTIONS: 3,\r\n CONFIRM_DETAILS: 4\r\n};\r\n","import moment from 'moment';\r\nimport { SportTypeIds } from './types';\r\nimport { ageSliderDictionary, utrpSliderDictionary } from './constants';\r\n\r\nconst { TENNIS } = SportTypeIds;\r\n\r\nexport const getAgeKeys = (ages) => {\r\n return ages.map((age) => parseInt(Object.keys(ageSliderDictionary).find((key) => ageSliderDictionary[key] === age)));\r\n};\r\n\r\nexport const ageDisplay = (value) => {\r\n const startRange = value[0];\r\n const endRange = value[1];\r\n if (startRange === 1 && endRange === Object.keys(ageSliderDictionary).length) {\r\n return 'All';\r\n }\r\n if (startRange === 1) {\r\n return `${ageSliderDictionary[endRange]} and Under`;\r\n }\r\n if (endRange === Object.keys(ageSliderDictionary).length) {\r\n return `${ageSliderDictionary[startRange]} and Over`;\r\n }\r\n return `${ageSliderDictionary[startRange]} to ${ageSliderDictionary[endRange]}`;\r\n};\r\n\r\nexport const getAdjustedTimeOfDay = ({ timeOfDay, format = null }) => {\r\n const day = moment();\r\n const offset = moment().utcOffset();\r\n const splitTime = timeOfDay.split(/:/);\r\n\r\n day.hours(parseInt(splitTime[0])).minutes(parseInt(splitTime[1]));\r\n day.add(offset, 'minutes');\r\n\r\n if (format) {\r\n return day.format(format);\r\n }\r\n\r\n const hours = day.get('hour');\r\n const minutes = day.get('minute');\r\n\r\n return `${hours}:${minutes}`;\r\n};\r\n\r\nexport const getPlayerDisplayUtr = (player, isDoubles = false) => {\r\n const {\r\n utrDoubles,\r\n utrDoublesDisplay,\r\n utrDoublesNotVerified,\r\n utrDoublesNotVerifiedDisplay,\r\n utrSingles,\r\n utrSinglesDisplay,\r\n utrSinglesNotVerified,\r\n utrSinglesNotVerifiedDisplay,\r\n utrRange,\r\n } = player || {};\r\n\r\n if (isDoubles) {\r\n if (utrDoubles && utrDoubles !== 0) {\r\n return { isVerified: true, rating: utrDoublesDisplay };\r\n }\r\n if (utrDoublesNotVerified && utrDoublesNotVerified !== 0) {\r\n return { isVerified: false, rating: utrDoublesNotVerifiedDisplay };\r\n }\r\n } else {\r\n if (utrSingles && utrSingles !== 0) {\r\n return { isVerified: true, rating: utrSinglesDisplay };\r\n }\r\n if (utrSinglesNotVerified && utrSinglesNotVerified !== 0) {\r\n return { isVerified: false, rating: utrSinglesNotVerifiedDisplay };\r\n }\r\n }\r\n\r\n if (utrRange) {\r\n const { minUtrDisplay, maxUtrDisplay } = utrRange;\r\n return { isVerified: false, rating: `${minUtrDisplay}-${maxUtrDisplay}` };\r\n }\r\n\r\n return { isVerified: false, rating: '0.00' };\r\n};\r\n\r\nexport const getPlayerDisplayPickleballRating = (player) => {\r\n const { utrRange } = player || {};\r\n const rating = utrRange?.pickleballRatingDisplay || 'UR';\r\n\r\n return { isVerified: false, rating };\r\n};\r\n\r\nexport const getPlayerTableDisplayPickleballRating = (player) => {\r\n const { utrRange } = player || {};\r\n\r\n let rating;\r\n\r\n if (utrRange?.minUtrDisplay && utrRange?.maxUtrDisplay) {\r\n rating = `${utrRange?.minUtrDisplay} - ${utrRange?.maxUtrDisplay}`;\r\n } else if (utrRange?.pickleballRatingDisplay) {\r\n rating = `${utrRange?.pickleballRatingDisplay}`;\r\n } else {\r\n rating = 'UR';\r\n }\r\n\r\n return rating;\r\n};\r\n\r\nexport const getPlayerRating = ({ player, isTennisMatch, isDoubles = false }) => {\r\n if (isTennisMatch) {\r\n return getPlayerDisplayUtr(player, isDoubles);\r\n }\r\n return getPlayerDisplayPickleballRating(player);\r\n};\r\n\r\nexport const getDisplayUTRPRating = (player, isDoubles) => {\r\n const { singlesPkbRatingDisplay, doublesPkbRatingDisplay, utrRange } = player || {};\r\n\r\n if (isDoubles) {\r\n const rating = doublesPkbRatingDisplay?.pkbRating || utrRange?.pickleballRatingDisplay || '-';\r\n const reliability = doublesPkbRatingDisplay?.reliability || (utrRange?.pickleballRatingDisplay && 'Estimated') || '';\r\n const displayVerifiedIcon = doublesPkbRatingDisplay?.reliability === 'Reliable' || doublesPkbRatingDisplay?.reliability === 'Projected';\r\n return { rating, reliability, displayVerifiedIcon };\r\n }\r\n\r\n const rating = singlesPkbRatingDisplay?.pkbRating || utrRange?.pickleballRatingDisplay || '-';\r\n const reliability = singlesPkbRatingDisplay?.reliability || (utrRange?.pickleballRatingDisplay && 'Estimated') || '';\r\n const displayVerifiedIcon = singlesPkbRatingDisplay?.reliability === 'Reliable' || singlesPkbRatingDisplay?.reliability === 'Projected';\r\n return { rating, reliability, displayVerifiedIcon };\r\n};\r\n\r\nexport const getFormattedDate = (startDateUtc, endDateUtc, format) => {\r\n const startDate = moment.utc(startDateUtc).local(true);\r\n const endDate = moment.utc(endDateUtc).local(true);\r\n const formattedStartDate = startDate.format(format);\r\n const formattedEndDate = endDate.format(format);\r\n const isOnSameDay = moment(startDate).isSame(endDate, 'day');\r\n\r\n return isOnSameDay ? formattedStartDate : `${formattedStartDate} - ${formattedEndDate}`;\r\n};\r\n\r\nexport const getAdjustedDate = ({ dateUtc, format = null, adjustForDSL = false }) => {\r\n const isTodayDLS = moment().isDST();\r\n const isDateDLS = moment(dateUtc).isDST();\r\n\r\n const shouldAddHour = (isTodayDLS && !isDateDLS && !adjustForDSL) || (!isTodayDLS && isDateDLS && adjustForDSL);\r\n const shouldSubtractHour = (!isTodayDLS && isDateDLS && !adjustForDSL) || (isTodayDLS && !isDateDLS && adjustForDSL);\r\n\r\n let date;\r\n\r\n if (shouldAddHour) {\r\n date = moment.utc(dateUtc).local().add(1, 'hour');\r\n } else if (shouldSubtractHour) {\r\n date = moment.utc(dateUtc).local().subtract(1, 'hour');\r\n } else {\r\n date = moment.utc(dateUtc).local();\r\n }\r\n\r\n if (format) {\r\n return date.format(format);\r\n }\r\n\r\n return date;\r\n};\r\n\r\nexport const getFormattedUtrRange = (minUtr, maxUtr) => {\r\n const isUtrMinInteger = Number.isInteger(minUtr);\r\n const isUtrMaxInteger = Number.isInteger(maxUtr);\r\n const minRange = isUtrMinInteger ? minUtr.toFixed(1) : minUtr;\r\n const maxRange = isUtrMaxInteger ? maxUtr.toFixed(1) : maxUtr;\r\n\r\n return `${minRange} - ${maxRange}`;\r\n};\r\n\r\nexport const utrpSliderDisplay = (value) => {\r\n const startRange = value[0];\r\n const endRange = value[1];\r\n if (startRange && endRange) {\r\n return `${utrpSliderDictionary[startRange]} to ${utrpSliderDictionary[endRange]}`;\r\n }\r\n return '';\r\n};\r\n\r\nexport const getConferenceTableHeadCells = (sportsTypeId) => {\r\n const rangeLabel = sportsTypeId === SportTypeIds.TENNIS ? 'UTR' : 'UTRP';\r\n return [\r\n { id: 'name', label: 'Conference Name' },\r\n { id: 'age', label: 'Age' },\r\n { id: 'gender', label: 'Gender' },\r\n { id: 'range', label: rangeLabel },\r\n { id: 'empty' },\r\n ];\r\n};\r\n\r\nexport const getFormattedConferenceRange = ({ conferenceRatings, sportTypeId, showRatingPrefix = false }) => {\r\n const { ratingMin, ratingMax } = conferenceRatings || {};\r\n\r\n if (sportTypeId && ratingMin && ratingMax) {\r\n const prefix = sportTypeId === TENNIS ? 'UTR' : 'UTRP';\r\n const range = getFormattedUtrRange(ratingMin, ratingMax);\r\n return showRatingPrefix ? `${prefix} ${range}` : range;\r\n }\r\n\r\n return '';\r\n};\r\n","import config from '../config';\r\nimport { ageDisplay, getAgeKeys, getFormattedConferenceRange } from './display';\r\nimport { DefaultSliderValues, SortType } from './constants';\r\nimport { genderTypes, PlayerAvailabilityStatusTypes, LeagueTypes, LeagueTierTypes, SportTypeIds, SliderTypes } from './types';\r\n\r\nconst { PICKLEBALL, TENNIS } = SportTypeIds;\r\nconst { UT_ADULT_TEAM_PICKLEBALL, UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_TENNIS } = LeagueTypes;\r\n\r\nexport const messageUser = (memberId, displayName) => {\r\n window.open(`${config.appHost}/inbox?rid=${memberId}&rname=${displayName}`, '_blank').focus();\r\n};\r\n\r\nexport const formatImageSizesByType = ({ baseUrl, imageSrc, imageType }) => {\r\n return `${baseUrl}${imageSrc}?size=1X&type=${imageType} 1x,\r\n ${baseUrl}${imageSrc}?size=2X&type=${imageType} 2x,\r\n ${baseUrl}${imageSrc}?size=3X&type=${imageType} 3x`;\r\n};\r\n\r\nexport const formatConferencesForTable = (conferences, sportTypeId) => {\r\n return conferences.map((conference) => {\r\n const { id, name, genderTypeId, minAge, maxAge, conferenceRatings } = conference;\r\n const genderType = genderTypes.find((gender) => gender.id === genderTypeId);\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const age = ageDisplay(ageKeys);\r\n\r\n return {\r\n id,\r\n name,\r\n age,\r\n gender: genderType?.description,\r\n range: getFormattedConferenceRange({ conferenceRatings, sportTypeId })\r\n };\r\n });\r\n};\r\n\r\nexport const getAlternateIds = (alternates) => {\r\n return alternates?.filter((alternate) => alternate?.teamMemberId).map((alternate) => alternate.teamMemberId);\r\n};\r\n\r\nexport const getSinglesUtr = (utrRating) => {\r\n if (utrRating && typeof utrRating === 'string' && utrRating?.includes('-')) {\r\n const array = utrRating.split('-');\r\n const numArray = array?.map(Number);\r\n const numAverage = numArray?.reduce((accumulator, currentValue) => (accumulator + currentValue) / numArray.length);\r\n return numAverage;\r\n }\r\n return parseFloat(utrRating);\r\n};\r\n\r\nexport const getPowerIndex = (powerRating, isEstimated) => {\r\n let rating;\r\n if (isEstimated && powerRating) {\r\n rating = `${powerRating} Est`;\r\n } else if (powerRating) {\r\n rating = `${powerRating}`;\r\n } else {\r\n rating = '—';\r\n }\r\n return rating;\r\n};\r\n\r\nexport const getPlayerAvailabilityStatus = (status) => {\r\n const { NOT_SET } = PlayerAvailabilityStatusTypes;\r\n let availabilityStatus = status;\r\n if (!status) {\r\n availabilityStatus = NOT_SET;\r\n }\r\n return availabilityStatus;\r\n};\r\n\r\nexport const sortPlayersByAvailability = (players) => [...players].sort(function (a, b) {\r\n return getPlayerAvailabilityStatus(a?.playerAvailabilityStatusTypeId) - getPlayerAvailabilityStatus(b?.playerAvailabilityStatusTypeId) ||\r\n getSinglesUtr(b?.singlesUtr) - getSinglesUtr(a?.singlesUtr) ||\r\n b?.utrSingles - a?.utrSingles;\r\n});\r\n\r\nexport const validateLineups = (lineupData) => {\r\n let error = null;\r\n const { lineups, position1TeamAlternatePlayers, position2TeamAlternatePlayers } = lineupData;\r\n\r\n lineups.forEach((lineup) => {\r\n const { position1, position2 } = lineup || {};\r\n const { player1TeamMemberId: position1Player1Id, player2TeamMemberId: position1Player2Id } = position1 || {};\r\n const { player1TeamMemberId: position2Player1Id, player2TeamMemberId: position2Player2Id } = position2 || {};\r\n\r\n const playerIds = [position1Player1Id, position1Player2Id, position2Player1Id, position2Player2Id];\r\n const filteredIds = playerIds.filter((id) => id);\r\n const hasDuplicatePlayers = new Set(filteredIds).size !== filteredIds.length;\r\n\r\n if (hasDuplicatePlayers) {\r\n error = `The same player appears twice in ${lineup?.isDouble ? 'Doubles' : 'Singles'} Line Match ${lineup?.lineupPosition}`;\r\n }\r\n });\r\n\r\n const hasDuplicatePosition1Alternates = new Set(position1TeamAlternatePlayers?.teamMemberIds).size !== position1TeamAlternatePlayers?.teamMemberIds?.length;\r\n const hasDuplicatePosition2Alternates = new Set(position2TeamAlternatePlayers?.teamMemberIds).size !== position2TeamAlternatePlayers?.teamMemberIds?.length;\r\n\r\n if (hasDuplicatePosition1Alternates || hasDuplicatePosition2Alternates) {\r\n error = 'A player can only appear once as an alternate';\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const getPlayerAvatarImage = (profileImage) => {\r\n const { cdnUrl } = config;\r\n return `${cdnUrl}/v1/player/${profileImage}`;\r\n};\r\n\r\nexport const getPlayerProfileUrl = (playerId) => {\r\n return `${config.appHost}/profiles/${playerId}`;\r\n};\r\n\r\nexport const mapMembersForPlayerSearch = (members) => {\r\n return members.map((member) => {\r\n const { firstName, lastName, memberId, location, id } = member;\r\n return {\r\n id,\r\n displayName: `${firstName} ${lastName}`,\r\n location: {\r\n display: location?.placeName || location?.formattedAddress,\r\n },\r\n memberId,\r\n playerProfileImages: [],\r\n };\r\n });\r\n};\r\n\r\nconst descendingComparator = (a, b, orderBy) => {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getComparator = (order, orderBy) => {\r\n return order === SortType.DESC ? (a, b) => descendingComparator(a, b, orderBy) : (a, b) => -descendingComparator(a, b, orderBy);\r\n};\r\n\r\nexport const getNewRoundNumberOptions = (rounds) => {\r\n const options = [];\r\n options.push({ description: 'Before Round 1', id: 1 });\r\n for (let i = 0; i < rounds.length; i += 1) {\r\n options.push({ description: `After Round ${i + 1}`, id: i + 2 });\r\n }\r\n return options;\r\n};\r\n\r\nexport const getLeagueTypeIdForTier = (leagueTierTypes, sportTypeId) => {\r\n const { ADULT, JUNIOR } = LeagueTierTypes;\r\n\r\n if (leagueTierTypes?.length > 1 || !leagueTierTypes?.length) {\r\n if (sportTypeId === PICKLEBALL) {\r\n return [UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL];\r\n }\r\n if (sportTypeId === TENNIS) {\r\n return [UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS];\r\n }\r\n } else {\r\n if (leagueTierTypes[0] === ADULT && sportTypeId === TENNIS) {\r\n return [UT_ADULT_TEAM_TENNIS];\r\n }\r\n if (leagueTierTypes[0] === JUNIOR && sportTypeId === TENNIS) {\r\n return [UT_JUNIOR_TEAM_TENNIS];\r\n }\r\n if (leagueTierTypes[0] === ADULT && sportTypeId === PICKLEBALL) {\r\n return [UT_ADULT_TEAM_PICKLEBALL];\r\n }\r\n if (leagueTierTypes[0] === JUNIOR && sportTypeId === PICKLEBALL) {\r\n return [UT_JUNIOR_TEAM_PICKLEBALL];\r\n }\r\n }\r\n\r\n return [];\r\n};\r\n\r\nexport const getRangeForSlider = (sliderType) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const UTPRRanges = {\r\n P1: 1,\r\n P2: 2,\r\n P3: 3,\r\n P4: 4\r\n };\r\n\r\n const { ageRange, utrRange } = DefaultSliderValues;\r\n switch (sliderType) {\r\n case AGE:\r\n return ageRange;\r\n case UTR:\r\n return utrRange;\r\n case UTRP:\r\n // slider value will be updated with DefaultSliderValues.utrpRange when search endpoint is updated with new conferenceRatings response\r\n return [UTPRRanges.P1, UTPRRanges.P4];\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nexport const getSportTypeForLeagueId = (id) => {\r\n const isTennisLeague = id === UT_ADULT_TEAM_TENNIS || id === UT_JUNIOR_TEAM_TENNIS;\r\n const isPickleballLeague = id === UT_JUNIOR_TEAM_PICKLEBALL || id === UT_ADULT_TEAM_PICKLEBALL;\r\n\r\n if (isTennisLeague) {\r\n return TENNIS;\r\n }\r\n\r\n if (isPickleballLeague) {\r\n return PICKLEBALL;\r\n }\r\n};\r\n","import React from 'react';\r\nimport Img from '../Img';\r\nimport { formatImageSizesByType } from '../../utils/helpers';\r\n\r\nimport styles from './backgroundImage.module.scss';\r\n\r\nconst BackgroundImage = ({ baseUrl, defaultImage, imageType, images, extraCls, children, parentStylesClass, style, useRawSrcSet }) => {\r\n const imageSrc = images.default;\r\n const formattedImageSizes = formatImageSizesByType({ baseUrl, imageSrc, imageType });\r\n let imgSrcUrl;\r\n\r\n if (imageSrc) {\r\n imgSrcUrl = `${baseUrl}${imageSrc}`;\r\n } else {\r\n imgSrcUrl = defaultImage;\r\n }\r\n\r\n const handleUpdateImage = (imageRef) => {\r\n const img = imageRef;\r\n if (img) {\r\n const src = img.currentSrc ? img.currentSrc : img.src;\r\n img.parentNode.style.backgroundImage = `url(\"${src}\")`;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default BackgroundImage;\r\n","/* eslint-disable global-require */\r\n/* eslint-disable no-eval */\r\n/* eslint-disable eqeqeq */\r\nimport Rox from 'rox-browser';\r\nimport { getFlagsContext } from './utils/rollout';\r\n\r\nclass UtrRoxFlag extends Rox.Flag {\r\n isEnabled(user) {\r\n return super.isEnabled(getFlagsContext(user));\r\n }\r\n}\r\n\r\nexport default {\r\n messaging: new UtrRoxFlag(),\r\n personalClub: new UtrRoxFlag(),\r\n createPlayerGroupMainMenu: new UtrRoxFlag(),\r\n ratingsListFlag: new UtrRoxFlag(),\r\n};\r\n","import React from 'react';\r\nimport flagContainer from '../../flagContainer';\r\n\r\nconst withFeatureFlags = (WrappedComponent) => {\r\n return (props) => ;\r\n};\r\n\r\nexport default withFeatureFlags;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n sideMenuOpen: false,\r\n};\r\n\r\nconst uiSlice = createSlice({\r\n name: 'ui',\r\n initialState,\r\n reducers: {\r\n setSideMenu(state, action) {\r\n state.sideMenuOpen = action.payload;\r\n },\r\n toggleSideMenu(state) {\r\n state.sideMenuOpen = !state.sideMenuOpen;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSideMenu, toggleSideMenu } = uiSlice.actions;\r\nexport default uiSlice.reducer;\r\n","import React from 'react';\r\n\r\nconst Description = ({ descriptionItems, noEllipsis }) => {\r\n let description;\r\n const createDescriptionFromArray = (descriptionArray) => {\r\n return descriptionArray.filter(Boolean).join(' \\u2022 ');\r\n };\r\n\r\n if (typeof descriptionItems === 'string' || typeof descriptionItems === 'number') {\r\n description = descriptionItems;\r\n } else if (typeof descriptionItems === 'object') {\r\n description = createDescriptionFromArray(descriptionItems);\r\n }\r\n\r\n return noEllipsis ? (\r\n {description}\r\n ) : (\r\n {description}\r\n );\r\n};\r\n\r\nexport default Description;\r\n","export default __webpack_public_path__ + \"static/media/icon-search.9f01af10.svg\";","export default __webpack_public_path__ + \"static/media/icon-verified-blue.c9b19813.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-player.922c1cc4.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-club.80fda859.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-college.5087be21.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-event.8d53c48f.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-school.faf79fc7.svg\";","/* eslint-disable react/forbid-prop-types */\r\nimport React from 'react';\r\nimport Icon from '@mui/material/Icon';\r\n\r\nimport { utrIconPropTypes, deafultUtrIconPropTypes } from '../../../utils/proptypes';\r\n\r\nconst UtrIcon = (props) => {\r\n const { icon, size, alt, style, clickable, onClick } = props;\r\n if (clickable) {\r\n style.cursor = 'pointer';\r\n }\r\n return (\r\n \r\n {alt}\r\n \r\n );\r\n};\r\n\r\nUtrIcon.propTypes = {\r\n ...utrIconPropTypes\r\n};\r\n\r\nUtrIcon.defaultProps = {\r\n ...deafultUtrIconPropTypes\r\n};\r\n\r\nexport default UtrIcon;\r\n","import { cloneDeep } from 'lodash';\r\n\r\nconst _ = { cloneDeep };\r\n\r\nexport const ratingStatusPopUpData = {\r\n rated: {\r\n title: 'Established Rating',\r\n description:\r\n 'This player has played enough matches for their rating to be reliable. It usually takes 6-10 matches to get a reliable rating, depending on the reliability of your opponent and how close the score was.',\r\n },\r\n unrated: {\r\n title: 'Unrated',\r\n description: 'This player has not played any matches or had a rating in the past year.',\r\n },\r\n inactive: {\r\n title: 'Inactive Rating',\r\n description:\r\n 'This player has not played any matches in the past 12 months. Their rating is the last time they had a rating on UTR.',\r\n },\r\n projected: {\r\n title: 'Projected Rating',\r\n description:\r\n 'This player hasn’t played enough matches in the last 12 months for their rating to be reliable. It usually takes 6-10 matches to get a reliable rating, depending on the reliability of your opponent and how close the score was. As the player plays more matches, the grey reliability bar will fill up around the projected rating. Once it is full, the rating will become reliable and turn from grey to a colored circle.',\r\n },\r\n};\r\n\r\nconst ratedStrings = ['Projected', 'Inactive', 'Rated'];\r\n\r\nexport const getEventDateString = (eventSchedule, showYear) => {\r\n const { eventStartDate, eventEndDate, eventStartMonth, eventEndMonth, eventStartYear, eventEndYear } = eventSchedule;\r\n if (eventStartMonth === eventEndMonth) {\r\n if (eventStartDate === eventEndDate) {\r\n return `${eventStartMonth} ${eventStartDate}${showYear ? `, ${eventStartYear}` : ''}`;\r\n }\r\n return `${eventStartMonth} ${eventStartDate} - ${eventEndDate}${showYear ? `, ${eventStartYear}` : ''}`;\r\n }\r\n return `${eventStartMonth} ${eventStartDate}${showYear ? `, ${eventStartYear}` : ''} - ${eventEndMonth} ${eventEndDate}${\r\n showYear ? `, ${eventEndYear}` : ''\r\n }`;\r\n};\r\n\r\nconst getRatingStatus = (ratingStatus, ratingValue) => {\r\n if (ratingValue && ratingValue > 0 && ratedStrings.includes(ratingStatus)) {\r\n return ratingStatus;\r\n }\r\n /*\r\n If rating is 0 even though the rating status is available make it unrated\r\n and rating status is unrated consider it as unrated and then check for projected status if rating exists\r\n */\r\n if (ratingValue && ratingValue > 0) {\r\n // If unrated and there is a rating condider the rating to be projected\r\n return 'Projected';\r\n }\r\n return 'Unrated';\r\n};\r\n\r\nconst getRatingProgress = (ratingStatus, ratingValue, ratingProgress) => {\r\n if (ratingValue && ratingValue > 0 && ratedStrings.includes(ratingStatus)) {\r\n return ratingProgress;\r\n }\r\n if (ratingValue && ratingValue > 0) {\r\n return 0;\r\n }\r\n return ratingProgress;\r\n};\r\n\r\nexport const getRatingDetails = (rating, userIsPowered, showDecimals) => {\r\n const object = {};\r\n let utrValue;\r\n let verifiedRating = false;\r\n\r\n switch (rating.ratingChoice) {\r\n case 'SinglesUTR':\r\n utrValue = rating.myUtrSingles;\r\n object.status = getRatingStatus(rating.myUtrStatusSingles, rating.myUtrSingles);\r\n object.matchType = 'singles';\r\n object.sortValue = object.status === 'Rated' ? 3 : 2;\r\n object.progress = getRatingProgress(rating.myUtrStatusSingles, rating.myUtrSingles, rating.myUtrProgressSingles);\r\n break;\r\n case 'DoublesUTR':\r\n utrValue = rating.myUtrDoubles;\r\n object.status = getRatingStatus(rating.myUtrStatusDoubles, rating.myUtrDoubles);\r\n object.matchType = 'doubles';\r\n object.sortValue = object.status === 'Rated' ? 3 : 2;\r\n object.progress = getRatingProgress(rating.myUtrStatusDoubles, rating.myUtrDoubles, rating.myUtrProgressDoubles);\r\n break;\r\n case 'VerifiedDoublesUTR':\r\n utrValue = rating.doublesUtr;\r\n object.status = getRatingStatus(rating.ratingStatusDoubles, rating.doublesUtr);\r\n verifiedRating = true;\r\n object.matchType = 'doubles';\r\n object.sortValue = object.status === 'Rated' ? 5 : 4;\r\n object.progress = getRatingProgress(rating.ratingStatusDoubles, rating.doublesUtr, rating.ratingProgressDoubles);\r\n break;\r\n default:\r\n utrValue = rating.singlesUtr;\r\n object.status = getRatingStatus(rating.ratingStatusSingles, rating.singlesUtr);\r\n verifiedRating = true;\r\n object.matchType = 'singles';\r\n object.sortValue = object.status === 'Rated' ? 5 : 4;\r\n object.progress = getRatingProgress(rating.ratingStatusSingles, rating.singlesUtr, rating.ratingProgressSingles);\r\n break;\r\n }\r\n if (utrValue && typeof utrValue === 'string') {\r\n utrValue = parseFloat(utrValue);\r\n }\r\n\r\n // Text to display what kind of a Rating it is\r\n if (object.status === 'Projected') {\r\n object.utrType = 'UTR (P)';\r\n } else {\r\n object.utrType = 'UTR';\r\n }\r\n\r\n // Title text i.e text displayed on Hover\r\n if (object.status === 'Projected') {\r\n object.title = 'Projected';\r\n }\r\n\r\n object.actualValue = utrValue;\r\n // Display UR for all Unrated conditions\r\n if (!utrValue || utrValue === 0 || object.status === 'Unrated') {\r\n object.value = 'UR';\r\n object.sortValue = 1;\r\n } else {\r\n object.value = `${utrValue.toFixed(2)}`;\r\n if (userIsPowered || showDecimals) {\r\n object.value = `${utrValue.toFixed(2)}`;\r\n } else {\r\n object.value = `${Math.round(utrValue)}`;\r\n }\r\n }\r\n\r\n // Get number value of rating\r\n if (object.value !== 'UR') {\r\n object.ratingNumber = `${parseInt(object.value)}`;\r\n } else {\r\n object.ratingNumber = object.value;\r\n }\r\n\r\n // Get Decimal value of rating\r\n const ratingArray = object.value.split('.');\r\n if (ratingArray.length > 1) {\r\n [, object.ratingDecimal] = ratingArray;\r\n } else {\r\n object.ratingDecimal = '';\r\n }\r\n\r\n // Logic to show verified match icon\r\n object.verified = verifiedRating;\r\n\r\n // Info PopUp Data\r\n object.infoTitle = ratingStatusPopUpData[object.status.toLowerCase()].title;\r\n object.infoDescription = ratingStatusPopUpData[object.status.toLowerCase()].description;\r\n\r\n return object;\r\n};\r\n\r\nexport const updateRatingObject = ({ player, ratingType, utrType }) => {\r\n const unDisplayedStatusStatus = ['Inactive', 'Unrated'];\r\n const newRatingObject = player ? _.cloneDeep(player) : {};\r\n\r\n // force singles or doubles return\r\n if (ratingType && utrType) {\r\n if (ratingType === 'singles') {\r\n if (utrType === 'sanctioned') {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n }\r\n } else if (utrType === 'sanctioned') {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n }\r\n } else if (ratingType) {\r\n // only return singles value\r\n if (ratingType === 'singles') {\r\n if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n }\r\n // only return doubles value\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n }\r\n } else if (utrType) {\r\n // only return verified rating\r\n if (utrType === 'sanctioned') {\r\n if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n if (player.singlesUtr && player.singlesUtr > 0 && player.ratingStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for verified singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.ratingStatusSingles = 'Unrated';\r\n newRatingObject.singlesUtr = 0;\r\n }\r\n }\r\n // only return unverified rating\r\n } else if (player.myUtrSingles && player.myUtrSingles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusSingles)) {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n } else if (player.myUtrDoubles && player.myUtrDoubles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n if (player.myUtrSingles && player.myUtrSingles > 0 && player.myUtrStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.myUtrStatusSingles = 'Unrated';\r\n newRatingObject.myUtrSingles = 0;\r\n }\r\n }\r\n\r\n // return the most relevant rating (any)\r\n // if there is no forced display, use player perference\r\n } else if (player.ratingChoice) {\r\n // If there is a reating choice no updation needed\r\n // otherwise show Rated or Projected rating if exists in the priority order of verifiedSingles, verifiedDoubles, myutrSingles and myUtrDoubles\r\n /*\r\n Checking with statuses of 'Inactive' and 'Unrated' since status null condition with a rating should be treated as Projected rating in getRatingDetails Method\r\n */\r\n } else if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else if (player.myUtrSingles && player.myUtrSingles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusSingles)) {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n } else if (player.myUtrDoubles && player.myUtrDoubles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n if (player.myUtrSingles && player.myUtrSingles > 0 && player.myUtrStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.myUtrStatusSingles = 'Unrated';\r\n newRatingObject.myUtrSingles = 0;\r\n }\r\n }\r\n return newRatingObject;\r\n};\r\n","export const gtag = (name, props) => {\r\n if (window?.dataLayer) {\r\n window.dataLayer.push({\r\n event: name,\r\n ...props,\r\n });\r\n }\r\n};\r\n\r\nexport const getClickAttrs = ({ context, location, category }) => {\r\n const attrs = {};\r\n if (category) {\r\n attrs['data-category'] = category;\r\n }\r\n if (context) {\r\n attrs['data-context'] = context;\r\n }\r\n if (location) {\r\n attrs['data-location'] = location;\r\n }\r\n return attrs;\r\n};\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable no-undef */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable class-methods-use-this */\r\n/* eslint-disable react/no-string-refs */\r\nimport React, { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport 'url-search-params-polyfill';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport Button from '@mui/material/Button';\r\n\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport Description from './Description';\r\nimport Img from '../Img';\r\nimport SearchIcon from '../../assets/icons/icon-search.svg';\r\nimport VerifiedIcon from '../../assets/icons/icon-verified-blue.svg';\r\nimport PlayerIcon from '../../assets/icons/icon-avatar-player.svg';\r\nimport ClubIcon from '../../assets/icons/icon-avatar-club.svg';\r\nimport CollegeIcon from '../../assets/icons/icon-avatar-college.svg';\r\nimport EventIcon from '../../assets/icons/icon-avatar-event.svg';\r\nimport SchoolIcon from '../../assets/icons/icon-avatar-school.svg';\r\n\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport config from '../../config';\r\n\r\nimport { getApiAxiosInstance } from '../../utils/network';\r\nimport { getEventDateString, getRatingDetails, updateRatingObject } from './utils';\r\nimport { LeagueTypes } from '../../utils/types';\r\nimport { useStatsig } from '../../hooks/StatsigContextProvider';\r\n\r\nimport styles from './globalSearch.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\n\r\nconst { appHost, apiHost } = config;\r\nconst defaultSearchState = {\r\n clubs: { total: 0, hits: [] },\r\n colleges: { total: 0, hits: [] },\r\n events: { total: 0, hits: [] },\r\n highSchools: { total: 0, hits: [] },\r\n players: { total: 0, hits: [] },\r\n};\r\n\r\nconst GlobalSearch = () => {\r\n const { statsig } = useStatsig();\r\n const navigate = useNavigate();\r\n const cancelRef = useRef(null);\r\n const wrapperRef = useRef(null);\r\n const queryRef = useRef(null);\r\n const { preferences } = useSelector((state) => state?.user);\r\n const { UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS, UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL } = LeagueTypes;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showDropDown, setShowDropDown] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [hasSearched, setHasSearched] = useState(false);\r\n const [searchState, setSearchState] = useState(defaultSearchState);\r\n const maxResultsForSection = 4;\r\n const { clubs, colleges, events, highSchools, players } = searchState;\r\n const isAdultTeamPickballEnabled = statsig?.featureGates?.adultTeamPickleball;\r\n const isJuniorTeamPickballEnabled = statsig?.featureGates?.juniorTeamPickleball;\r\n\r\n const hasNoResults =\r\n clubs.total === 0 &&\r\n colleges.total === 0 &&\r\n events.total === 0 &&\r\n highSchools.total === 0 &&\r\n players.total === 0 &&\r\n !isLoading &&\r\n hasSearched &&\r\n searchQuery;\r\n\r\n const hasSomeResults =\r\n clubs.total > 0 || colleges.total > 0 || events.total > 0 || highSchools.total > 0 || players.total > 0 || isLoading;\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n const axiosInstance = getApiAxiosInstance();\r\n const params = new URLSearchParams();\r\n\r\n params.append('query', searchQuery);\r\n params.append('top', 10);\r\n params.append('skip', 0);\r\n params.append('schoolClubSearch', true);\r\n\r\n const searchUrl = `${apiHost}/v2/search?${params}`;\r\n const cancel = cancelRef.current;\r\n\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get(searchUrl, {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { data } = response;\r\n const stateToSet = {\r\n clubs: data?.clubs,\r\n events: data?.events,\r\n players: data?.players,\r\n highSchools: data?.highSchools,\r\n colleges: data?.highSchools,\r\n };\r\n setSearchState(stateToSet);\r\n setIsLoading(false);\r\n setHasSearched(true);\r\n }\r\n };\r\n if (isLoading && !!searchQuery.length) {\r\n getSearchResults();\r\n }\r\n }, [isLoading, searchQuery]);\r\n\r\n const handleClickOutside = useCallback((event) => {\r\n if (wrapperRef && !wrapperRef.current.contains(event.target)) {\r\n setShowDropDown(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [handleClickOutside]);\r\n\r\n const handleOnFocus = () => {\r\n setShowDropDown(true);\r\n queryRef.current.value = searchQuery;\r\n };\r\n\r\n const handleKeyUp = (event) => {\r\n const query = event.target.value;\r\n\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n };\r\n\r\n const handlePaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const query = target.value.trim();\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n }, 200);\r\n };\r\n\r\n const handleSeeAllClick = async (event, typeFilter) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n setShowDropDown(false);\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (searchQuery) {\r\n params.append('query', searchQuery);\r\n }\r\n params.append('utrMin', 1);\r\n params.append('utrMax', 16);\r\n params.append('utrType', 'verified');\r\n params.append('utrTeamType', 'singles');\r\n params.append('utrFitPosition', 6);\r\n params.append('type', typeFilter);\r\n\r\n window.location = `${appHost}/search?${params}`;\r\n };\r\n\r\n const handleClearClick = () => {\r\n queryRef.current.value = '';\r\n setSearchState(defaultSearchState);\r\n setSearchQuery('');\r\n setShowDropDown(false);\r\n setHasSearched(false);\r\n\r\n setTimeout(() => {\r\n queryRef.current.focus();\r\n }, 200);\r\n };\r\n\r\n const handlePlayerClick = (player) => {\r\n window.location = `${appHost}/profiles/${player.id}`;\r\n };\r\n\r\n const handleEventClick = (event) => {\r\n window.location = `${appHost}/events/${event.id}`;\r\n };\r\n\r\n const handleClubClick = (club) => {\r\n window.location = `${appHost}/clubs/${club.id}`;\r\n };\r\n\r\n const handleTypeFilterClick = (typeFilter) => {\r\n setShowDropDown(false);\r\n window.location = `${appHost}/search?utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter}`;\r\n };\r\n\r\n const handleTeamLeagueSearchClick = (leagueId) => (event) => {\r\n event.preventDefault();\r\n setShowDropDown(false);\r\n navigate(`/search/league/${leagueId}`);\r\n };\r\n\r\n const renderPlayer = (player, index) => {\r\n const { displayName, descriptionShort, gender, location, playerProfileImages } = player;\r\n const userIsPowered = false;\r\n const rating = getRatingDetails(updateRatingObject({ player }), userIsPowered);\r\n let description = '';\r\n\r\n if (descriptionShort) {\r\n description = [descriptionShort];\r\n } else {\r\n description = location && location.display ? [location.display] : [];\r\n }\r\n const descriptionItems = [...(gender ? [gender.charAt(0)] : []), ...description];\r\n\r\n return (\r\n index < maxResultsForSection && (\r\n handlePlayerClick(player)}\r\n key={`p${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Player Clicked - playerId: ${player.id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n {`${displayName} `}\r\n {rating.verified ? : ''}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderSchool = (schoolClub, index) => {\r\n const { id, name, location, profilePhotoUrl, isCollege } = schoolClub;\r\n const { displayName, shortName } = schoolClub.school;\r\n const photoUrl = profilePhotoUrl ? `/v1/club/${profilePhotoUrl}?variant=icon` : null;\r\n const descriptionItems = [...(location && location.display ? [location.display] : [])];\r\n const schoolName = name || displayName || shortName;\r\n return (\r\n index < maxResultsForSection && (\r\n \r\n
\r\n
\r\n {photoUrl ? (\r\n {\r\n e.target.src = '/img/v2/icons/icon-utr-logo.svg';\r\n e.target.srcset = '/img/v2/icons/icon-utr-logo.svg';\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

{schoolName}

\r\n

{schoolName}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderClub = (club, index) => {\r\n const { id, name, location, memberCount } = club;\r\n const descriptionItems = [\r\n ...(location && location.display ? [location && location.display] : []),\r\n ...(memberCount && memberCount >= 10 ? [`${memberCount} member${memberCount && memberCount > 1 ? 's' : ''}`] : []),\r\n ];\r\n return index < 4 ? (\r\n handleClubClick(club)}\r\n key={`c${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Club Clicked - id: ${id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n

{name}

\r\n
\r\n \r\n
\r\n
\r\n \r\n ) : null;\r\n };\r\n\r\n const renderEvent = (event, index) => {\r\n const { id, name, eventSchedule, eventState } = event;\r\n const descriptionItems = [];\r\n if (eventSchedule) {\r\n descriptionItems.push(getEventDateString(eventSchedule, eventState && eventState.value === 'completed'));\r\n }\r\n return (\r\n index < maxResultsForSection && (\r\n handleEventClick(event)}\r\n key={`e${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Event Clicked - id: ${id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n

{name}

\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderDropdown = () => {\r\n const hasQuery = !!searchQuery.length;\r\n const showTennisPills = !!preferences?.showTennisContent;\r\n const showPickleballPills = !!preferences?.showPickleballContent;\r\n return (\r\n
\r\n {!hasQuery && (\r\n
\r\n
What are you looking for?
\r\n
\r\n handleTypeFilterClick('players')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Players`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Players\r\n \r\n handleTypeFilterClick('events')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `All Events`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n All Events\r\n \r\n {showTennisPills && (\r\n <>\r\n handleTypeFilterClick('flexLeagues')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Flex Leagues`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Flex Leagues\r\n \r\n \r\n Adult Team Tennis\r\n \r\n \r\n Junior Team Tennis\r\n \r\n handleTypeFilterClick('proTennisTour')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `UTR Pro Tennis Tour`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n UTR Pro Tennis Tour\r\n \r\n \r\n )}\r\n handleTypeFilterClick('clubs')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Clubs`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Clubs\r\n \r\n {showTennisPills && (\r\n <>\r\n handleTypeFilterClick('colleges')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Colleges`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Colleges\r\n \r\n handleTypeFilterClick('highSchools')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `High Schools`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n High Schools\r\n \r\n handleTypeFilterClick('paidHits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Paid Hits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Paid Hits\r\n \r\n handleTypeFilterClick(paidHitClubs)}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Paid Hitters`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Paid Hitters\r\n \r\n handleTypeFilterClick('juniorCircuits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Junior Circuits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Junior Circuits\r\n \r\n handleTypeFilterClick('collegeCircuits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `College Circuits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n College Circuits\r\n \r\n handleTypeFilterClick('juniorRegionals')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Junior Regionals`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Junior Regionals\r\n \r\n handleTypeFilterClick('camps')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Camps`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Camps\r\n \r\n \r\n )}\r\n {showPickleballPills && (\r\n <>\r\n handleTypeFilterClick('pickleball')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Pickleball`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Pickleball\r\n \r\n {isAdultTeamPickballEnabled && (\r\n \r\n Adult Team Pickleball\r\n \r\n )}\r\n {isJuniorTeamPickballEnabled && (\r\n \r\n Junior Team Pickleball\r\n \r\n )}\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n {hasNoResults &&
No Matches Found
}\r\n {hasSomeResults && (\r\n
\r\n {!!players?.hits.length && (\r\n <>\r\n
\r\n Players\r\n handleSeeAllClick(e, 'players')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all players: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {players.hits.map((player, i) => renderPlayer(player.source, i))}\r\n \r\n )}\r\n\r\n {!!events?.hits.length && (\r\n <>\r\n
\r\n Events\r\n handleSeeAllClick(e, 'events')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all events: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {events.hits.map((event, i) => renderEvent(event.source, i))}\r\n \r\n )}\r\n {!!colleges?.hits.length && (\r\n <>\r\n
\r\n Colleges\r\n handleSeeAllClick(e, 'colleges')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all colleges: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {colleges.hits.map((school, i) => renderSchool(school.source, i))}\r\n \r\n )}\r\n {!!highSchools?.hits.length && (\r\n <>\r\n
\r\n High Schools\r\n handleSeeAllClick(e, 'highSchools')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all high schools: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {highSchools.hits.map((school, i) => renderSchool(school.source, i))}\r\n \r\n )}\r\n {!!clubs?.hits.length && (\r\n <>\r\n
\r\n Clubs\r\n handleSeeAllClick(e, 'clubs')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all clubs: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {clubs.hits.map((club, i) => renderClub(club.source, i))}\r\n \r\n )}\r\n {isLoading && (\r\n
\r\n \r\n Loading...\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {!!searchQuery.length && (\r\n handleClearClick()}\r\n />\r\n )}\r\n
\r\n {showDropDown &&
{renderDropdown()}
}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GlobalSearch;\r\n","export default __webpack_public_path__ + \"static/media/icon-home.0dd65c30.svg\";","export default __webpack_public_path__ + \"static/media/icon-play.53107f02.svg\";","export default __webpack_public_path__ + \"static/media/icon-profile.acbf78e2.svg\";","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Rox from 'rox-browser';\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport Img from '../Img';\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport withFeatureFlags from '../hocs/withFeatureFlags';\r\nimport { toggleSideMenu } from '../../redux/uiSlice';\r\nimport GlobalSearch from '../GlobalSearch';\r\n\r\nimport HomeIcon from '../../assets/icons/icon-home.svg';\r\nimport PlayIcon from '../../assets/icons/icon-play.svg';\r\nimport ProfileIcon from '../../assets/icons/icon-profile.svg';\r\n\r\nimport config from '../../config';\r\nimport styles from './header.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\nimport { headerPropTypes } from '../../utils/proptypes';\r\n\r\nconst Header = (props) => {\r\n const { auth, featureFlags } = props;\r\n const showHeaderItems = !!auth.user;\r\n\r\n const handleLogoClick = () => {\r\n if (process.env.REACT_APP_CONFIG_SOURCE === 'prod') {\r\n window.open(`${config.appHost}`);\r\n } else {\r\n Rox.showOverrides();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n toggleSideMenu,\r\n};\r\n\r\nfunction mapStateToProps({ auth }) {\r\n return { auth };\r\n}\r\n\r\nHeader.propTypes = {\r\n ...headerPropTypes\r\n};\r\n\r\nexport default withFeatureFlags(connect(mapStateToProps, mapDispatchToProps)(Header));\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nconst Input = ({ control, name, hasError, label, isRequired = false, ...rest }) => (\r\n }\r\n />\r\n);\r\n\r\nexport default Input;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nconst LoadingIndicator = ({ size = 60, backgroundColor, ...props }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default LoadingIndicator;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\nimport Grid from '@mui/material/Grid';\r\nimport Typography from '@mui/material/Typography';\r\nimport throttle from 'lodash/throttle';\r\n\r\nconst parse = require('autosuggest-highlight/parse');\r\n\r\nconst autocompleteService = { current: null };\r\n\r\nconst LocationAutoComplete = ({ field, error, label, isRequired }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const [options, setOptions] = useState([]);\r\n\r\n const getPlacePredictions = useMemo(\r\n () =>\r\n throttle((request, callback) => {\r\n autocompleteService.current.getPlacePredictions(request, callback);\r\n }, 200),\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!autocompleteService.current && window.google) {\r\n autocompleteService.current = new window.google.maps.places.AutocompleteService();\r\n }\r\n if (!autocompleteService.current) {\r\n return undefined;\r\n }\r\n\r\n if (inputValue === '') {\r\n setOptions([]);\r\n return undefined;\r\n }\r\n\r\n getPlacePredictions({ input: inputValue }, (results) => {\r\n if (active) {\r\n let newOptions = [];\r\n\r\n if (results) {\r\n newOptions = [...newOptions, ...results];\r\n }\r\n\r\n setOptions(newOptions);\r\n }\r\n });\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [inputValue]);\r\n\r\n return (\r\n (typeof option === 'string' ? option : option.description)}\r\n filterOptions={(x) => x}\r\n options={[field.value, ...options]}\r\n autoComplete\r\n includeInputInList\r\n filterSelectedOptions\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n field.onChange(newValue);\r\n setOptions(newValue ? [newValue, ...options] : options);\r\n }\r\n }}\r\n onInputChange={(_, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n renderInput={(params) => }\r\n renderOption={(props, option) => {\r\n const matches = option.structured_formatting.main_text_matched_substrings;\r\n const parts = parse(\r\n option.structured_formatting.main_text,\r\n matches.map((match) => [match.offset, match.offset + match.length])\r\n );\r\n\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n\r\n \r\n {option.structured_formatting.secondary_text}\r\n \r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default LocationAutoComplete;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport LocationAutoComplete from '../LocationAutoComplete';\r\n\r\nconst Location = ({ control, name, hasError, label, isRequired = false }) => (\r\n }\r\n />\r\n);\r\n\r\nexport default Location;\r\n","import React from 'react';\r\nimport MuiSlider from '@mui/material/Slider';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport { ageSliderDictionary } from '../../../utils/constants';\r\nimport { ageDisplay } from '../../../utils/display';\r\nimport { SliderTypes } from '../../../utils/types';\r\n\r\nconst Slider = ({ label, field, control, isLabelHidden, sliderType }) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n\r\n const getSliderData = (value) => {\r\n let sliderLength;\r\n let display;\r\n let step = 1;\r\n\r\n switch (sliderType) {\r\n case AGE:\r\n sliderLength = Object.keys(ageSliderDictionary).length;\r\n display = ageDisplay(value);\r\n break;\r\n case UTR:\r\n sliderLength = 16;\r\n display = `${value[0]?.toFixed(1)} - ${value[1]?.toFixed(1)}`;\r\n step = 0.5;\r\n break;\r\n case UTRP:\r\n sliderLength = 10;\r\n display = `${value[0]?.toFixed(2)} - ${value[1]?.toFixed(2)}`;\r\n step = 0.5;\r\n break;\r\n default:\r\n sliderLength = '';\r\n display = '';\r\n }\r\n return { sliderLength, display, step };\r\n };\r\n\r\n return (\r\n {\r\n const { sliderLength, display, step } = getSliderData(value);\r\n return (\r\n
    \r\n
    \r\n \r\n
    {display}
    \r\n
    \r\n \r\n
    \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default Slider;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\n\r\nconst Select = (props) => {\r\n const {\r\n control,\r\n isFullWidth,\r\n isRequired = false,\r\n label,\r\n labelId,\r\n name,\r\n options,\r\n hasError,\r\n helperText,\r\n onSelectChange,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n (\r\n \r\n {label}\r\n {\r\n onChange(value);\r\n if (onSelectChange) {\r\n onSelectChange(value);\r\n }\r\n }}\r\n fullWidth={isFullWidth}\r\n label={label}\r\n labelId={labelId}\r\n error={hasError}\r\n >\r\n {options.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n {hasError && helperText && {helperText}}\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default Select;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport { formSubmitButtonPropTypes, defaultFormSubmitButtonPropTypes } from '../../../utils/proptypes';\r\n\r\nconst FormSubmitButton = ({ label, isSubmitting, style }) => (\r\n \r\n }\r\n >\r\n {label}\r\n \r\n \r\n);\r\n\r\nFormSubmitButton.propTypes = {\r\n ...formSubmitButtonPropTypes\r\n};\r\n\r\nFormSubmitButton.defaultProps = {\r\n ...defaultFormSubmitButtonPropTypes\r\n};\r\n\r\nexport default FormSubmitButton;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport { Autocomplete, TextField, Grid, Typography } from '@mui/material';\r\n\r\nimport BackgroundImage from '../../BackgroundImage';\r\nimport { getApiAxiosInstance } from '../../../utils/network';\r\nimport { playerSearchPropTypes, defaultPlayerSearchPropTypes } from '../../../utils/proptypes';\r\nimport { useDebounce } from '../../../hooks/useDebounce';\r\n\r\nconst PlayerSearch = ({ isProPlayerSearch = false, searchMembersOnly = false, showPickleballContent = false, showTennisContent = false, onPlayerSelected, selectedPlayers = [], label, isRequired = false }) => {\r\n const cancelRef = useRef(null);\r\n const resultLimit = 10;\r\n const [query, setQuery] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [searchResults, setSearchResults] = useState([]);\r\n const searchQuery = useDebounce(query, 500);\r\n const axiosInstance = getApiAxiosInstance();\r\n\r\n const clearState = () => {\r\n setIsLoading(false);\r\n setSearchResults([]);\r\n setQuery('');\r\n };\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n setIsLoading(true);\r\n const params = new URLSearchParams();\r\n params.append('query', searchQuery);\r\n params.append('top', resultLimit);\r\n params.append('isDemoPlayer', false);\r\n params.append('showPickleballContent', false);\r\n params.append('showTennisContent', false);\r\n\r\n if (isProPlayerSearch) {\r\n params.append('filter', 'isPro:true');\r\n }\r\n\r\n if (searchMembersOnly) {\r\n params.append('exists', 'memberId');\r\n }\r\n\r\n if (showPickleballContent) {\r\n params.delete('showPickleballContent', false);\r\n }\r\n\r\n if (showTennisContent) {\r\n params.delete('showTennisContent', false);\r\n }\r\n\r\n const cancel = cancelRef.current;\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get('v2/search/players', {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { hits } = response.data;\r\n const filteredHits = hits.filter((hit) => {\r\n return selectedPlayers.every((player) => player.memberId !== hit.source.memberId);\r\n });\r\n const results = filteredHits;\r\n setSearchResults(results);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n if (searchQuery.length > 0) {\r\n getSearchResults();\r\n }\r\n }, [searchQuery]);\r\n\r\n const updateStateForQuery = (queryString) => {\r\n if (queryString?.length > 0) {\r\n setQuery(queryString);\r\n setSearchResults([]);\r\n } else {\r\n setQuery('');\r\n setSearchResults([]);\r\n }\r\n };\r\n\r\n const handleOnInputChange = (value) => {\r\n updateStateForQuery(value);\r\n };\r\n\r\n const handleOnInputPaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const queryString = target.value.trim();\r\n updateStateForQuery(queryString);\r\n }, 200);\r\n };\r\n\r\n const handleOnChange = (player) => {\r\n onPlayerSelected(player);\r\n clearState();\r\n };\r\n\r\n return (\r\n x}\r\n onPaste={handleOnInputPaste}\r\n options={searchResults}\r\n loading={isLoading}\r\n getOptionLabel={(option) => (option?.source?.displayName ? option.source.displayName : '')}\r\n isOptionEqualToValue={(option, value) => option?.source?.id === value.source.id}\r\n onInputChange={(_, value, reason) => {\r\n if ((value || value === '') && reason === 'input') {\r\n handleOnInputChange(value);\r\n }\r\n }}\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n handleOnChange(newValue.source);\r\n }\r\n }}\r\n renderInput={(params) => (\r\n {params.InputProps.endAdornment},\r\n }}\r\n />\r\n )}\r\n renderOption={(optionProps, option) => {\r\n const { playerProfileImages, displayName, location } = option?.source || {};\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {displayName}\r\n {location?.display}\r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nPlayerSearch.propTypes = {\r\n ...playerSearchPropTypes\r\n};\r\n\r\nPlayerSearch.defaultProps = {\r\n ...defaultPlayerSearchPropTypes\r\n};\r\n\r\nexport default PlayerSearch;\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useDebounce = (value, delay) => {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n};\r\n","import React from 'react';\r\n\r\nimport { Grid, Typography, Box, Paper } from '@mui/material';\r\nimport CloseRoundedIcon from '@mui/icons-material/CloseRounded';\r\nimport BackgroundImage from '../../BackgroundImage';\r\n\r\nconst PlayerSearchResultCard = ({ player, onRemovePlayer, showRemoveButton, ...rest }) => {\r\n const { displayName, location, playerProfileImages } = player;\r\n\r\n const handleOnRemovePlayer = () => {\r\n onRemovePlayer(player);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {displayName}\r\n {location?.display}\r\n \r\n {showRemoveButton && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlayerSearchResultCard;\r\n","const geocoder = { current: null };\r\n\r\nexport const getLocationData = async (location) => {\r\n const request = { placeId: location.place_id };\r\n\r\n if (!geocoder.current && window.google) {\r\n geocoder.current = new window.google.maps.Geocoder();\r\n }\r\n\r\n let geocodeResults = null;\r\n\r\n await geocoder.current.geocode(request, (results, status) => {\r\n if (status === window.google.maps.places.PlacesServiceStatus.OK && results) {\r\n geocodeResults = results[0];\r\n }\r\n });\r\n\r\n if (geocodeResults) {\r\n const { formatted_address, place_id: placeId, geometry } = geocodeResults;\r\n return {\r\n placeId,\r\n formattedAddress: formatted_address,\r\n placeName: location.structured_formatting.main_text,\r\n lat: geometry.location.lat(),\r\n lng: geometry.location.lng(),\r\n };\r\n }\r\n};\r\n\r\nexport const getLocationNameFromCoordinates = async (lat, lng) => {\r\n if (!geocoder.current && window.google) {\r\n geocoder.current = new window.google.maps.Geocoder();\r\n }\r\n\r\n let geocodeResults = null;\r\n const latLng = { lat, lng };\r\n await geocoder.current.geocode({ location: latLng }, (results, status) => {\r\n if (status === window.google.maps.places.PlacesServiceStatus.OK && results) {\r\n geocodeResults = results[0];\r\n }\r\n });\r\n\r\n if (geocodeResults) {\r\n const { address_components } = geocodeResults;\r\n const city = address_components.find((comp) => comp.types.includes('locality'));\r\n const state = address_components.find((comp) => comp.types.includes('administrative_area_level_1'));\r\n return `${city?.long_name}, ${state?.short_name}`;\r\n }\r\n};\r\n\r\nexport const getBrowserLocationCoordinates = async () => {\r\n let locationError = null;\r\n const options = {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 60000,\r\n };\r\n const position = await new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(resolve, reject, options);\r\n }).catch((error) => {\r\n locationError = error;\r\n });\r\n\r\n return {\r\n lat: position?.coords?.latitude,\r\n lng: position?.coords?.longitude,\r\n error: locationError,\r\n };\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n isOpen: false,\r\n error: null,\r\n};\r\n\r\nconst errorPopupSlice = createSlice({\r\n name: 'errorPopup',\r\n initialState,\r\n reducers: {\r\n showErrorPopup(state, action) {\r\n state.isOpen = true;\r\n state.error = action.payload;\r\n },\r\n\r\n hideErrorPopup(state) {\r\n state.isOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { showErrorPopup, hideErrorPopup } = errorPopupSlice.actions;\r\nexport default errorPopupSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n sportTypeId: null,\r\n};\r\n\r\nconst conferenceDetailsSlice = createSlice({\r\n name: 'conferenceDetails',\r\n initialState,\r\n reducers: {\r\n setSportTypeId(state, action) {\r\n state.sportTypeId = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSportTypeId } = conferenceDetailsSlice.actions;\r\nexport default conferenceDetailsSlice.reducer;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport Input from '../../Form/Input';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Location from '../../Form/Location';\r\nimport Slider from '../../Form/Slider';\r\nimport Select from '../../Form/Select';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport PlayerSearch from '../../Form/PlayerSearch';\r\nimport PlayerSearchResultCard from '../../Cards/PlayerSearchResultCard';\r\nimport { DefaultSliderValues, ageSliderDictionary, getAgeKeyByValue, defaultGridSpacing, formPaperStyles } from '../../../utils/constants';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { genderTypes, SportTypeIds, SliderTypes } from '../../../utils/types';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { createConferenceFormPropTypes, defaultCreateConferenceFormPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useCreateConferenceMutation, useUpdateConferenceMutation } from '../../../api/leaguesApi';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\n\r\nconst CreateConferenceForm = ({ isManaging, conferenceDetails = null, onConferenceUpdated, isLoadingConference }) => {\r\n const { utrRange, ageRange, utrpRange } = DefaultSliderValues;\r\n const { TENNIS } = SportTypeIds;\r\n const { UTR, UTRP, AGE } = SliderTypes;\r\n const [createConference] = useCreateConferenceMutation();\r\n const [updateConference, { isSuccess: isUpdated }] = useUpdateConferenceMutation();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const conferenceId = params?.conferenceId;\r\n\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [conferenceOrganizer, setConferenceOrganizer] = useState();\r\n const [leagueId, setLeagueId] = useState();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const buttonText = isManaging ? 'Save Changes' : 'Create Conference';\r\n const defaultValues = {\r\n name: '',\r\n location: '',\r\n leagueId: parseInt(params?.leagueId),\r\n genderTypeId: '',\r\n details: '',\r\n ageRange,\r\n conferenceRatingRange: [],\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n reset,\r\n formState: { errors, dirtyFields, isSubmitting },\r\n control,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (sportTypeId) {\r\n const confRange = sportTypeId === TENNIS ? utrRange : utrpRange;\r\n reset({ ...defaultValues, conferenceRatingRange: confRange });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isManaging && conferenceDetails) {\r\n const {\r\n maxAge,\r\n minAge,\r\n location,\r\n leagueId: conferenceLeagueId,\r\n sportTypeId: sportId,\r\n conferenceRatings,\r\n ...fetchedConference\r\n } = conferenceDetails;\r\n\r\n const conferenceLocation = location?.placeName || location?.formattedAddress || '';\r\n const confAgeRange = [parseInt(getAgeKeyByValue(minAge)), parseInt(getAgeKeyByValue(maxAge))];\r\n const { ratingMin, ratingMax } = conferenceRatings || {};\r\n const confRatingRange = [ratingMin, ratingMax];\r\n\r\n const formData = {\r\n ...fetchedConference,\r\n location: conferenceLocation,\r\n ageRange: confAgeRange,\r\n conferenceRatingRange: confRatingRange,\r\n };\r\n\r\n setOriginalLocation(location);\r\n setLeagueId(conferenceLeagueId);\r\n dispatch(setSportTypeId(sportId));\r\n reset(formData);\r\n }\r\n }, [conferenceDetails]);\r\n\r\n useEffect(() => {\r\n if (isUpdated) {\r\n onConferenceUpdated();\r\n }\r\n }, [isUpdated]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const conference = { ...formValues };\r\n const [minAge, maxAge] = conference.ageRange;\r\n const [ratingMin, ratingMax] = conference.conferenceRatingRange;\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(conference.location);\r\n conference.location = formattedLocation;\r\n } else {\r\n conference.location = originalLocation;\r\n }\r\n\r\n conference.minAge = ageSliderDictionary[minAge];\r\n conference.maxAge = ageSliderDictionary[maxAge];\r\n conference.conferenceRatings = {};\r\n\r\n conference.conferenceRatings.ratingMin = ratingMin;\r\n conference.conferenceRatings.ratingMax = ratingMax;\r\n\r\n delete conference.ageRange;\r\n delete conference.conferenceRatingRange;\r\n\r\n if (isManaging) {\r\n try {\r\n await updateConference({ conferenceId, conference, leagueId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n } else {\r\n conference.conferenceOrganizerMemberId = conferenceOrganizer.memberId;\r\n try {\r\n await createConference(conference).unwrap();\r\n navigate(`/leagues/${params?.leagueId}`);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnAddConferenceOrganizer = (organizer) => {\r\n setConferenceOrganizer(organizer);\r\n };\r\n\r\n const handleOnRemoveConferenceOrganizer = () => {\r\n setConferenceOrganizer(null);\r\n };\r\n\r\n const isTennisConference = sportTypeId === TENNIS;\r\n\r\n return (\r\n \r\n \r\n {!isManaging && (\r\n \r\n Create Conference\r\n \r\n \r\n )}\r\n {isManaging && isLoadingConference ? (\r\n \r\n ) : (\r\n
    \r\n \r\n Conference Details\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 {!isManaging && (\r\n \r\n Conference Organizer\r\n \r\n \r\n {conferenceOrganizer ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n Conference Audience\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\nCreateConferenceForm.propTypes = {\r\n ...createConferenceFormPropTypes\r\n};\r\n\r\nCreateConferenceForm.defaultProps = {\r\n ...defaultCreateConferenceFormPropTypes\r\n};\r\n\r\nexport default CreateConferenceForm;\r\n","import React from 'react';\r\n\r\nimport CreateConferenceForm from '../../components/Forms/CreateConferenceForm';\r\n\r\nconst CreateConferencePage = () => ;\r\n\r\nexport default CreateConferencePage;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MuiDateTimePicker from '@mui/lab/DateTimePicker';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport { dateTimeFormat } from '../../../utils/constants';\r\n\r\nconst DateTimePicker = ({ control, name, label, isRequired = false, minutesStep, minDate, onDateChange }) => {\r\n const handleOnDateChange = (date) => {\r\n if (onDateChange) {\r\n onDateChange(date);\r\n }\r\n };\r\n\r\n return (\r\n \r\n (\r\n {\r\n onChange(e);\r\n handleOnDateChange(e);\r\n }}\r\n minDateTime={minDate}\r\n renderInput={(inputProps) => }\r\n />\r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DateTimePicker;\r\n","import * as React from 'react';\r\n\r\nconst ApprovedIcon = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default ApprovedIcon;\r\n","import React from 'react';\r\n\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport ApprovedIcon from '../Icons/ApprovedIcon';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { popupPropTypes, defaultPopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst Popup = ({ open, onClose, title, message, isSuccessful, errorMessage, buttonLabel, onAction, actionLabel }) => (\r\n \r\n \r\n {isSuccessful && (\r\n \r\n )}\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n {!!errorMessage && (\r\n \r\n \r\n {errorMessage}\r\n \r\n \r\n )}\r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nPopup.propTypes = {\r\n ...popupPropTypes\r\n};\r\n\r\nPopup.defaultProps = {\r\n ...defaultPopupPropTypes\r\n};\r\n\r\nexport default Popup;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport Radio from '@mui/material/Radio';\r\nimport MuiRadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\n\r\nimport { radioGroupPropTypes } from '../../../utils/proptypes';\r\n\r\nconst RadioGroup = ({ control, name, options, sx, ...rest }) => (\r\n (\r\n \r\n {options.map((option) => (\r\n } sx={sx} />\r\n ))}\r\n \r\n )}\r\n />\r\n);\r\n\r\nRadioGroup.propTypes = {\r\n ...radioGroupPropTypes,\r\n};\r\n\r\nexport default RadioGroup;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport TextField from '@mui/material/TextField';\r\nimport Divider from '@mui/material/Divider';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\n\r\nimport { tennisScoringTypes, durationTypes, MatchFormatTypes, pickleballScoringTypes, SportTypeIds } from '../../utils/types';\r\nimport { defaultGridSpacing } from '../../utils/constants';\r\n\r\nconst SessionMatchFormat = ({ matchFormat, control, errors, isDisabled, sportTypeId }) => {\r\n const { SINGLES, DOUBLES, BOTH } = MatchFormatTypes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const scoringTypes = isTennisMatch ? tennisScoringTypes : pickleballScoringTypes;\r\n\r\n const Singles = () => {\r\n return (\r\n <>\r\n \r\n SINGLES\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 Scoring Format\r\n \r\n {scoringTypes.map((scoringType) => (\r\n \r\n {scoringType.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n Time allotted per match\r\n \r\n {durationTypes.map((duration) => (\r\n \r\n {duration.description}\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 const Doubles = () => (\r\n <>\r\n \r\n DOUBLES\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 Scoring Format\r\n \r\n {scoringTypes.map((scoringType) => (\r\n \r\n {scoringType.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n Time allotted per match\r\n \r\n {durationTypes.map((duration) => (\r\n \r\n {duration.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n
    \r\n {matchFormat === SINGLES && }\r\n {matchFormat === DOUBLES && }\r\n {matchFormat === BOTH && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default SessionMatchFormat;\r\n","import moment from 'moment';\r\nimport { sessionTypes, openClosedStatusTypes, getTypeForId, LeagueSessionTypes, FrequencyTypes } from './types';\r\nimport { getFormattedDate } from './display';\r\n\r\nconst { TOURNAMENT } = LeagueSessionTypes;\r\n\r\nexport const getSessionRounds = (schedule) => {\r\n const { draws } = schedule;\r\n\r\n const mappedDraws = draws?.reduce((acc, cur) => {\r\n if (cur?.rounds) {\r\n return [\r\n ...acc,\r\n ...cur.rounds\r\n ];\r\n }\r\n return acc;\r\n }, [])?.map((round) => ({ ...round, matches: round.teamMatches }));\r\n\r\n return mappedDraws;\r\n};\r\n\r\nexport const getRoundCount = (teamCount, matchesPerTeam) => {\r\n if (teamCount % 2 === 0) {\r\n return matchesPerTeam;\r\n }\r\n return Math.floor(matchesPerTeam + matchesPerTeam / (teamCount - 1));\r\n};\r\n\r\nexport const mapSession = (data) => {\r\n const { startDateUtc, endDateUtc, teamRegistrationEndDateUtc, teamRegistrationStartDateUtc, sessionTypeId, sessionStatusTypeId } = data;\r\n const dateFormat = 'MMM D';\r\n const sessionType = getTypeForId(sessionTypeId, sessionTypes);\r\n const status = getTypeForId(sessionStatusTypeId, openClosedStatusTypes);\r\n const sessionDates = getFormattedDate(startDateUtc, endDateUtc, dateFormat);\r\n const registrationDates = getFormattedDate(teamRegistrationStartDateUtc, teamRegistrationEndDateUtc, dateFormat);\r\n\r\n return {\r\n status: status.description,\r\n sessionType: sessionType.description,\r\n sessionDates,\r\n registrationDates,\r\n ...data,\r\n };\r\n};\r\n\r\nexport const getTooManyMatchesPerTeamError = (session) => {\r\n const { startDateUtc, endDateUtc, teamMatchFrequencyTypeId, sessionTypeId, matchesPerTeam } = session;\r\n if (sessionTypeId === TOURNAMENT) return false;\r\n if (!startDateUtc || !endDateUtc || !teamMatchFrequencyTypeId) return false;\r\n\r\n const numberOfTotalWeeks = moment(endDateUtc).diff(moment(startDateUtc), 'weeks') || 1;\r\n // teamMatchFrequencyTypeId dynamic in case we want to change to every 3/4 weeks.\r\n const totalWeeksAvailable =\r\n teamMatchFrequencyTypeId === FrequencyTypes.ONCE_A_WEEK\r\n ? numberOfTotalWeeks\r\n : Math.floor(numberOfTotalWeeks / teamMatchFrequencyTypeId);\r\n\r\n if (!totalWeeksAvailable) {\r\n return true;\r\n }\r\n if (+matchesPerTeam > totalWeeksAvailable) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\nimport moment from 'moment';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport DateTimePicker from '../../Form/DateTimePicker';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport Input from '../../Form/Input';\r\nimport Location from '../../Form/Location';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Popup from '../../Popups/Popup';\r\nimport RadioGroup from '../../Form/RadioGroup';\r\nimport Select from '../../Form/Select';\r\nimport SessionMatchFormat from '../../SessionMatchFormat';\r\nimport { getTooManyMatchesPerTeamError } from '../../../utils/sessions';\r\n\r\nimport {\r\n FrequencyTypes,\r\n LeagueSessionTypes,\r\n MatchFormatTypes,\r\n SessionDrawTypes,\r\n SportTypeIds,\r\n SessionStandingsRules,\r\n SessionStandingsTypes,\r\n StatusTypes,\r\n TournamentTeamsCount,\r\n drawTypes,\r\n matchFrequencyTypes,\r\n openClosedStatusTypes,\r\n pickleballSessionStandingsOptions,\r\n sessionMatchFormatTypes,\r\n sessionTypes,\r\n tournamentTeamsCountOptions,\r\n tennisSessionStandingsOptions,\r\n} from '../../../utils/types';\r\nimport { LeagueTabs, defaultGridSpacing, formPaperStyles } from '../../../utils/constants';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { useCreateSessionMutation, useUpdateSessionMutation, useGetLeagueFeesQuery } from '../../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\nimport { createSessionFormPropTypes, defaultCreateSessionFormPropTypes } from '../../../utils/proptypes';\r\n\r\nconst minutesStep = 15;\r\nconst CUSTOM_MORE_MATCHES_TEXT = 'There are more matches per team than weeks in the session.';\r\n\r\nconst CreateSessionForm = ({ sessionDetails, isManaging, isLoadingSession, onSessionUpdated }) => {\r\n const navigate = useNavigate();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const sessionId = params?.sessionId;\r\n const { OPEN } = StatusTypes;\r\n const { ONCE_A_WEEK } = FrequencyTypes;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { TENNIS } = SportTypeIds;\r\n const { FIRST_MATCH_BACK_DRAW } = SessionDrawTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { FOUR, EIGHT, SIXTEEN } = TournamentTeamsCount;\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const { hasRegisteredPlayers, hasPostedResults, hasPublishedSchedule, hasSchedule } = sessionDetails || {};\r\n const isTennisSession = sportTypeId === TENNIS;\r\n const buttonText = isManaging ? 'Save Changes' : 'Create Session';\r\n const isRestrictedSession = hasPostedResults && hasPublishedSchedule;\r\n const standingsRuleOptions = isTennisSession ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n\r\n const [startDate, setStartDate] = useState(moment());\r\n const [teamRegisterStartDate, setTeamRegisterStartDate] = useState(moment());\r\n const [totalPlayerCost, setTotalPlayerCost] = useState();\r\n const [matchFormat, setMatchFormat] = useState('');\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [isTournamentSession, setIsTournamentSession] = useState(false);\r\n const [conferenceId, setConferenceId] = useState(parseInt(params?.conferenceId) || skipToken);\r\n const [leagueVerifiedFee, setLeagueVerifiedFee] = useState(0);\r\n const [showRuleConfirmationModal, setShowRuleConfirmationModal] = useState(false);\r\n const [sessionStandingsRuleId, setSessionStandingsRuleId] = useState(isTennisSession ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD);\r\n const [updatedStandingsRuleId, setUpdatedStandingsRuleId] = useState(null);\r\n\r\n const [createSession] = useCreateSessionMutation();\r\n const [updateSession, { isSuccess: isUpdated }] = useUpdateSessionMutation();\r\n const { data: leaguesFees, isLoading: isLoadingLeaguesFees, error } = useGetLeagueFeesQuery(conferenceId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n conferenceId: parseInt(params?.conferenceId),\r\n description: '',\r\n doublesMatchCount: '',\r\n doublesPointsPerMatch: '',\r\n doublesScoringFormatTypeId: '',\r\n doublesTimeAllowedTypeId: '',\r\n drawTypeId: FIRST_MATCH_BACK_DRAW,\r\n endDateUtc: moment().add(5, 'days'),\r\n matchesPerTeam: '',\r\n name: '',\r\n registrationFee: 0,\r\n registrationVerificationFee: 0,\r\n sessionStatusTypeId: OPEN,\r\n sessionMatchTypeId: SINGLES,\r\n sessionTypeId: '',\r\n singlesMatchCount: '',\r\n singlesPointsPerMatch: '',\r\n singlesScoringFormatTypeId: '',\r\n singlesTimeAllowedTypeId: '',\r\n startDateUtc: moment().add(3, 'days'),\r\n teamRegistrationEndDateUtc: moment().add(2, 'days').add(2, 'hour'),\r\n teamRegistrationStartDateUtc: moment().add(2, 'hour'),\r\n teamRequiredPlayersMin: 2,\r\n teamsMax: '',\r\n location: '',\r\n teamMatchFrequencyTypeId: ONCE_A_WEEK,\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields, isSubmitting },\r\n control,\r\n reset,\r\n getValues,\r\n setValue,\r\n setError,\r\n clearErrors,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (isManaging && sessionDetails) {\r\n const {\r\n conferenceId: sessionConferenceId,\r\n endDateUtc,\r\n startDateUtc,\r\n registrationFee,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n description,\r\n sessionStandingsTypeId,\r\n drawTypeId,\r\n ...fetchedSession\r\n } = sessionDetails;\r\n\r\n setConferenceId(sessionConferenceId);\r\n setSessionStandingsRuleId(sessionStandingsTypeId);\r\n\r\n let sessionLocation = '';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n if (isTournament) {\r\n sessionLocation = sessionDetails.location?.placeName || '';\r\n setOriginalLocation(sessionDetails.location);\r\n setIsTournamentSession(true);\r\n }\r\n\r\n let formData;\r\n\r\n if (sessionMatchTypeId !== BOTH) {\r\n formData = {\r\n ...defaultValues,\r\n ...fetchedSession,\r\n sessionTypeId,\r\n drawTypeId,\r\n description: description || '',\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n } else {\r\n formData = {\r\n ...fetchedSession,\r\n drawTypeId,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n description: description || '',\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n }\r\n setTotalPlayerCost(parseInt(registrationFee) + parseInt(registrationVerificationFee));\r\n setLeagueVerifiedFee(registrationVerificationFee);\r\n reset(formData);\r\n setMatchFormat(sessionMatchTypeId);\r\n dispatch(setSportTypeId(sessionDetails?.sportTypeId));\r\n }\r\n }, [sessionDetails]);\r\n\r\n useEffect(() => {\r\n if (isUpdated) {\r\n onSessionUpdated();\r\n }\r\n }, [isUpdated]);\r\n\r\n useEffect(() => {\r\n if (leaguesFees && !isManaging) {\r\n setLeagueVerifiedFee(leaguesFees?.registrationVerificationFee);\r\n setTotalPlayerCost(leaguesFees?.registrationVerificationFee);\r\n }\r\n }, [leaguesFees]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const session = { ...formValues };\r\n\r\n session.startDateUtc = getAdjustedDate({ dateUtc: session.startDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.endDateUtc = getAdjustedDate({ dateUtc: session.endDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.teamRegistrationStartDateUtc = getAdjustedDate({ dateUtc: session.teamRegistrationStartDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.teamRegistrationEndDateUtc = getAdjustedDate({ dateUtc: session.teamRegistrationEndDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.description = session.description.trim().length === 0 ? null : session.description;\r\n session.sessionMatchTypeId = matchFormat;\r\n session.sessionStandingsTypeId = sessionStandingsRuleId;\r\n\r\n if (!isManaging) {\r\n session.registrationVerificationFee = leagueVerifiedFee;\r\n }\r\n\r\n if (matchFormat === SINGLES) {\r\n delete session.doublesMatchCount;\r\n delete session.doublesPointsPerMatch;\r\n delete session.doublesScoringFormatTypeId;\r\n delete session.doublesTimeAllowedTypeId;\r\n } else if (matchFormat === DOUBLES) {\r\n delete session.singlesMatchCount;\r\n delete session.singlesPointsPerMatch;\r\n delete session.singlesScoringFormatTypeId;\r\n delete session.singlesTimeAllowedTypeId;\r\n }\r\n\r\n const sessionType = getValues('sessionTypeId');\r\n\r\n if (sessionType === TOURNAMENT) {\r\n delete session.teamMatchFrequencyTypeId;\r\n\r\n if (dirtyFields.location) {\r\n session.location = await getLocationData(formValues.location);\r\n } else {\r\n session.location = originalLocation;\r\n }\r\n } else {\r\n delete session.location;\r\n }\r\n\r\n if (isManaging) {\r\n try {\r\n await updateSession({ sessionId, session, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n } else {\r\n try {\r\n await createSession(session).unwrap();\r\n navigate(`/leagues/conference/${params?.conferenceId}/manage`, { state: { activeTab: LeagueTabs.SESSIONS } });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleEntryFeeChange = (e) => {\r\n const feeValue = parseInt(e.target.value);\r\n if (!Number.isNaN(feeValue)) {\r\n setTotalPlayerCost(parseInt(e.target.value) + leagueVerifiedFee);\r\n } else {\r\n setTotalPlayerCost(leagueVerifiedFee);\r\n }\r\n };\r\n\r\n const handleOnMatchFormatChange = (event) => {\r\n setMatchFormat(event.target.value);\r\n };\r\n\r\n const handleOnEventStartDateChange = (date) => {\r\n setStartDate(date);\r\n };\r\n\r\n const handleOnRegistrationStartDateChange = (date) => {\r\n setTeamRegisterStartDate(date);\r\n };\r\n\r\n const handleOnSessionTypeChange = (event) => {\r\n const isTournament = event.target.value === TOURNAMENT;\r\n setIsTournamentSession(isTournament);\r\n };\r\n\r\n const handleMatchesPerTeamCheck = (event) => {\r\n clearErrors('matchesPerTeam');\r\n setValue('matchesPerTeam', event.target.value);\r\n const session = getValues();\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError({\r\n ...session,\r\n matchesPerTeam: +event.target.value,\r\n });\r\n\r\n if (hasErrors) {\r\n setError('matchesPerTeam', { type: 'custom', message: CUSTOM_MORE_MATCHES_TEXT });\r\n }\r\n\r\n return;\r\n };\r\n\r\n const handleOnTournamentTeamsChange = (event) => {\r\n const teamsCount = event.target.value;\r\n switch (teamsCount) {\r\n case FOUR:\r\n setValue('matchesPerTeam', 2);\r\n break;\r\n case EIGHT:\r\n setValue('matchesPerTeam', 4);\r\n break;\r\n case SIXTEEN:\r\n setValue('matchesPerTeam', 8);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleOnSessionRuleChange = (event) => {\r\n const ruleValue = event?.target?.value;\r\n\r\n if (ruleValue !== sessionStandingsRuleId) {\r\n setShowRuleConfirmationModal(true);\r\n setUpdatedStandingsRuleId(ruleValue);\r\n }\r\n };\r\n\r\n const handleOnConfirmRuleChange = () => {\r\n setShowRuleConfirmationModal(false);\r\n setSessionStandingsRuleId(updatedStandingsRuleId);\r\n };\r\n\r\n const handleOnCloseRuleModal = () => {\r\n setShowRuleConfirmationModal(false);\r\n setUpdatedStandingsRuleId(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {!isManaging && (\r\n \r\n Create Session\r\n \r\n \r\n )}\r\n {isManaging && isLoadingSession && isLoadingLeaguesFees ? (\r\n \r\n ) : (\r\n
    \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTournamentSession && (\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 {!isTournamentSession && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Team Standings Rule\r\n \r\n {standingsRuleOptions.map((rule) => (\r\n \r\n {rule?.description}\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 Team Match Format\r\n \r\n \r\n \r\n Format Type\r\n \r\n {sessionMatchFormatTypes.map((session) => (\r\n \r\n {session.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n Session Status\r\n Teams can be added to an open session\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 {isTournamentSession ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!isTournamentSession && (\r\n \r\n \r\n {errors.matchesPerTeam && (\r\n \r\n {errors.matchesPerTeam.message}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n Session Player Entry Fee\r\n \r\n (\r\n $,\r\n }}\r\n inputProps={{ style: { textAlign: 'right', width: 55 } }}\r\n onChange={(e) => {\r\n onChange(e);\r\n handleEntryFeeChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n \r\n {`League Fee: $${leagueVerifiedFee}`}\r\n \r\n \r\n {`Total per Player: $${totalPlayerCost}`}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCreateSessionForm.propTypes = {\r\n ...createSessionFormPropTypes\r\n};\r\n\r\nCreateSessionForm.defaultProps = {\r\n ...defaultCreateSessionFormPropTypes\r\n};\r\n\r\nexport default CreateSessionForm;\r\n","import React from 'react';\r\n\r\nimport CreateSessionForm from '../../components/Forms/CreateSessionForm';\r\n\r\nconst CreateSessionPage = () => ;\r\n\r\nexport default CreateSessionPage;\r\n","import React from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport Button from '@mui/material/Button';\r\nimport Grid from '@mui/material/Grid';\r\nimport Link from '@mui/material/Link';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport Select from '@mui/material/Select';\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport Typography from '@mui/material/Typography';\r\nimport MuiListSubheader from '@mui/material/ListSubheader';\r\nimport TextField from '@mui/material/TextField';\r\nimport Switch from '@mui/material/Switch';\r\n\r\nexport const StyledTableRow = styled(TableRow)(({ theme }) => ({\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n '&:last-child td, &:last-child th': {\r\n border: 0,\r\n },\r\n}));\r\n\r\nexport const TeamMatchCardSelect = styled(Select)(({ theme }) => ({\r\n ':after': { borderBottomColor: theme.appColors.gradientBlue },\r\n}));\r\n\r\nexport const PostScoreInput = styled(TextField, {\r\n shouldForwardProp: (prop) => prop !== 'showTiebreaker',\r\n})(({ showTiebreaker = false, disable = false }) => ({\r\n '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button': {\r\n display: 'none',\r\n },\r\n '& input[type=number]': {\r\n MozAppearance: 'textfield',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& input': {\r\n textAlign: 'center'\r\n },\r\n '& fieldset': {\r\n borderRightWidth: showTiebreaker ? 0 : 1\r\n },\r\n borderRadius: 4,\r\n borderBottomRightRadius: showTiebreaker ? 0 : 4,\r\n borderTopRightRadius: showTiebreaker ? 0 : 4,\r\n\r\n },\r\n textAlign: 'center',\r\n width: 56,\r\n height: 56,\r\n disabled: disable,\r\n '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {\r\n WebkitAppearance: 'none',\r\n },\r\n}));\r\n\r\nexport const PostScoreTieBreakInput = styled(TextField)(() => ({\r\n '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button': {\r\n display: 'none',\r\n WebkitAppearance: 'none',\r\n },\r\n '& input[type=number]': {\r\n MozAppearance: 'textfield',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& input': {\r\n textAlign: 'center'\r\n },\r\n '& fieldset': {\r\n borderLeftWidth: 1\r\n },\r\n textAlign: 'center',\r\n borderRadius: 4,\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n },\r\n outline: 'none',\r\n width: 56,\r\n height: 56,\r\n}));\r\n\r\nexport const TiebreakerText = styled(Typography)(({ theme }) => ({\r\n position: 'absolute',\r\n fontSize: 10,\r\n top: 6,\r\n right: 12,\r\n color: theme.appColors.darkText,\r\n}));\r\n\r\nexport const ListSubheader = styled(MuiListSubheader)(({ theme }) => ({\r\n backgroundColor: theme.appColors.blue,\r\n color: theme.appColors.white,\r\n}));\r\n\r\nexport const ScoreCardTypography = styled(Typography, {\r\n shouldForwardProp: (prop) => prop !== 'isLoser' && prop !== 'isWinner',\r\n})(({ theme, isLoser, isWinner }) => {\r\n if (isLoser) {\r\n return {\r\n color: theme.appColors.grey,\r\n };\r\n }\r\n if (isWinner) {\r\n return {\r\n color: theme.appColors.black,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n };\r\n }\r\n return {\r\n color: theme.appColors.black,\r\n };\r\n});\r\n\r\nexport const ScoreCardTiebreakerTypography = styled(ScoreCardTypography)(() => ({\r\n fontSize: 12,\r\n marginLeft: 0.8,\r\n marginRight: 8,\r\n}));\r\n\r\nexport const StyledGrid = styled(Grid)(({ theme }) => ({\r\n color: theme.palette.common.black,\r\n padding: theme.spacing(2),\r\n}));\r\n\r\nexport const MemberTeamTableLink = styled(Link)(() => ({\r\n fontSize: '1rem',\r\n}));\r\n\r\nexport const LinkStyledButton = styled(Button)(() => ({\r\n '&:hover': {\r\n background: 'none',\r\n },\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n padding: 0,\r\n minHeight: 0,\r\n minWidth: 0,\r\n fontWeight: 'normal',\r\n textTransform: 'none',\r\n}));\r\n\r\nexport const PostScoreSubtitle = styled(Typography)(({ theme }) => ({\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n letterSpacing: 1,\r\n fontWeight: 500,\r\n color: theme.appColors.darkText,\r\n textTransform: 'uppercase',\r\n}));\r\n\r\nexport const CustomSwitch = styled(Switch)(({ theme }) => ({\r\n width: 54,\r\n height: 32,\r\n padding: 0,\r\n '& .MuiSwitch-switchBase': {\r\n padding: 0,\r\n margin: 2,\r\n transitionDuration: '300ms',\r\n '&.Mui-checked': {\r\n transform: 'translateX(22px)',\r\n color: theme.appColors.white,\r\n '& + .MuiSwitch-track': {\r\n backgroundColor: theme.appColors.lighterGreen,\r\n opacity: 1,\r\n border: 0,\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.5,\r\n },\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n width: 28,\r\n height: 28,\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: 32 / 2,\r\n backgroundColor: theme.appColors.coolGrey600,\r\n opacity: 1,\r\n },\r\n}));\r\n\r\nexport const StyledTooltip = styled(({ className, ...props }) => (\r\n \r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: theme.appColors.blueGrey100,\r\n boxShadow: theme.shadows[1],\r\n color: theme.palette.common.black,\r\n padding: 7,\r\n fontSize: 14,\r\n fontWeight: 325,\r\n textAlign: 'center',\r\n fontFamily: theme.typography.secondary.fontFamily\r\n },\r\n [`& .${tooltipClasses.arrow}`]: {\r\n color: theme.appColors.blueGrey100,\r\n '&::before': {\r\n backgroundColor: theme.appColors.blueGrey100,\r\n border: '1px solid #999'\r\n }\r\n },\r\n}));\r\n","import React, { useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { SinglePersonIcon, DoublePersonIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport MuiTableRow from '@mui/material/TableRow';\r\nimport TableSortLabel from '@mui/material/TableSortLabel';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Typography from '@mui/material/Typography';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { SortType } from '../../../utils/constants';\r\nimport { getComparator } from '../../../utils/helpers';\r\nimport { leaguesTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst LeaguesTable = (props) => {\r\n const theme = useTheme();\r\n const { headCells, tableData, isLoading, sortBy, rowComponent, title = null, isSortingDisabled = false } = props;\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState(sortBy);\r\n const TableRow = rowComponent;\r\n\r\n const handleRequestSort = (property) => (event) => {\r\n event.preventDefault();\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n return (\r\n \r\n {title && (\r\n \r\n \r\n {title}\r\n \r\n \r\n )}\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n \r\n <>\r\n {headCell.label}\r\n {headCell.id === 'utrp-numeric-single' && (\r\n \r\n )}\r\n {headCell.id === 'utrp-numeric-double' && (\r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData\r\n .slice()\r\n .sort(getComparator(sortOrder, orderProperty))\r\n .map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return ;\r\n })}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nLeaguesTable.propTypes = {\r\n ...leaguesTablePropTypes,\r\n};\r\n\r\nexport default LeaguesTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport TableCell from '@mui/material/TableCell';\r\n\r\nimport { StyledTableRow } from '../../Styled';\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { formatConferencesForTable } from '../../../utils/helpers';\r\nimport { getConferenceTableHeadCells } from '../../../utils/display';\r\n\r\nconst ConferencesTable = ({ leagueConferences = [], isLoading, onManageClicked }) => {\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const [conferences, setConferences] = useState([]);\r\n const headCells = getConferenceTableHeadCells(sportTypeId);\r\n\r\n useEffect(() => {\r\n if (leagueConferences) {\r\n const formattedConferences = formatConferencesForTable(leagueConferences, sportTypeId);\r\n setConferences(formattedConferences);\r\n }\r\n }, [leagueConferences, sportTypeId]);\r\n\r\n const ConferenceTableRow = ({ rowData, labelId }) => {\r\n const { id, name, age, gender, range } = rowData;\r\n\r\n const handleOnManageConferenceClicked = (conferenceId) => {\r\n onManageClicked(conferenceId);\r\n };\r\n return (\r\n \r\n \r\n {name}\r\n \r\n {age}\r\n {gender}\r\n {range}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ConferencesTable;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport ConferencesTable from '../../../components/Tables/ConferencesTable';\r\n\r\nconst ConferencesTab = ({ conferences = [], onManageClicked, isLoading }) => {\r\n const handleOnManageClicked = (conferenceId) => {\r\n onManageClicked(conferenceId);\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!conferences.length ? (\r\n \r\n No conferences have been created for this League.\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ConferencesTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport ConferencesTab from './ConferencesTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst LeagueDeskPage = ({ isLoading, leagueData, organizerLeagues, leagueId, isLeagueOrganizer, onLeagueSelected }) => {\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (leagueData) {\r\n dispatch(setSportTypeId(leagueData?.sportTypeId));\r\n }\r\n }, [leagueData]);\r\n\r\n const handleOnCreateConferenceClicked = () => {\r\n navigate(`/leagues/${leagueId}/conference/create`);\r\n };\r\n\r\n const handleOnManageClicked = (conferenceId) => {\r\n navigate(`/leagues/conference/${conferenceId}/manage`);\r\n };\r\n\r\n const handleOnLeagueChange = (event) => {\r\n const id = event?.target?.value;\r\n onLeagueSelected(id);\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n {leagueData && (\r\n \r\n \r\n Team League Desk\r\n \r\n \r\n {isLeagueOrganizer && organizerLeagues?.length > 1 ? (\r\n \r\n Select League\r\n \r\n {organizerLeagues?.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n {leagueData.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\r\nexport default LeagueDeskPage;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport LeagueDeskPage from '..';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\nimport { useGetLeagueSummaryQuery, useGetUserLeaguesQuery } from '../../../api/leaguesApi';\r\n\r\nconst LeagueDeskWrapper = () => {\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const { leagueId } = useParams();\r\n const [organizerLeagues, setOrganizerLeagues] = useState([]);\r\n const [isLeagueOrganizer, setIsOrganizerLeague] = useState(false);\r\n\r\n const { data: leagueData, isLoading: isLoadingLeagueData, error: leagueDataError } = useGetLeagueSummaryQuery(parseInt(leagueId));\r\n const { data: userLeagues, isLoading: isLoadingOrganizerLeagues, error: organizerLeaguesError } = useGetUserLeaguesQuery();\r\n\r\n const isLoading = isLoadingLeagueData || isLoadingOrganizerLeagues;\r\n\r\n if (leagueDataError) {\r\n dispatch(showErrorPopup(leagueDataError));\r\n }\r\n\r\n if (organizerLeaguesError) {\r\n dispatch(showErrorPopup(organizerLeaguesError));\r\n }\r\n\r\n useEffect(() => {\r\n if (leagueData) {\r\n dispatch(setSportTypeId(leagueData?.sportTypeId));\r\n }\r\n\r\n if (userLeagues) {\r\n const tennisLeagues = userLeagues?.leagues?.tennis || [];\r\n const pickleballLeagues = userLeagues?.leagues?.pickleball || [];\r\n const formattedLeagues = [...tennisLeagues, ...pickleballLeagues].map((league) => {\r\n return (\r\n { id: league.id, description: league.name }\r\n );\r\n });\r\n const organizerLeagueIds = formattedLeagues.map((league) => league.id);\r\n const isOrganizerLeague = organizerLeagueIds.includes(parseInt(leagueId));\r\n\r\n setIsOrganizerLeague(isOrganizerLeague);\r\n setOrganizerLeagues(formattedLeagues);\r\n }\r\n }, [leagueData, userLeagues]);\r\n\r\n if (leagueDataError) {\r\n dispatch(showErrorPopup(leagueDataError));\r\n }\r\n\r\n if (organizerLeaguesError) {\r\n dispatch(showErrorPopup(organizerLeaguesError));\r\n }\r\n\r\n const handleOnLeagueSelected = (id) => {\r\n navigate(`/leagues/${id}`);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LeagueDeskWrapper;\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getBreadcrumbs } from '../../api/leaguesApi';\r\n\r\nexport const getBreadcrumbData = createAsyncThunk('ui/getBreadcrumbData', async (data) => {\r\n const { context, contextId } = data || {};\r\n try {\r\n const response = await getBreadcrumbs(context, contextId);\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Error loading breadcrumbs',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LinearProgress from '@mui/material/LinearProgress';\r\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport { BreadcrumbContexts } from '../../utils/constants';\r\nimport { getBreadcrumbData } from '../../redux/services/breadcrumbService';\r\n\r\nconst Breadcrumbs = ({ context, contextId, shouldUpdateBreadcrumb, onBreadcrumbUpdated, isAdmin = false }) => {\r\n const dispatch = useDispatch();\r\n const { data, loading } = useSelector((state) => state.breadcrumbs);\r\n const { CONFERENCE, SESSION, TEAM } = BreadcrumbContexts;\r\n const { league, conference, session, team } = data;\r\n const leagueUrl = `/leagues/${league?.id}`;\r\n const conferenceUrl = `/leagues/conference/${conference?.id}/manage`;\r\n const sessionUrl = isAdmin ? `/leagues/session/${session?.id}/manage` : `/leagues/session/${session?.id}`;\r\n\r\n useEffect(() => {\r\n if (context && contextId) {\r\n if (!data || data[context]?.id !== parseInt(contextId)) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (shouldUpdateBreadcrumb) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n onBreadcrumbUpdated();\r\n }\r\n }, [shouldUpdateBreadcrumb]);\r\n\r\n const getLastLabel = () => {\r\n let label;\r\n switch (context) {\r\n case CONFERENCE:\r\n label = conference?.name;\r\n break;\r\n case SESSION:\r\n label = session?.name;\r\n break;\r\n case TEAM:\r\n label = team?.name;\r\n break;\r\n default:\r\n label = '';\r\n }\r\n return label;\r\n };\r\n\r\n const renderBreadcrumb = (url, name, isCurrentContext, isBelowContext) => {\r\n if (isCurrentContext) {\r\n return {getLastLabel()};\r\n }\r\n\r\n if (isBelowContext) {\r\n return {name};\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const isConferenceContext = conference?.id && conference?.name && context === CONFERENCE;\r\n const isBelowConferenceContext = conference?.id && conference?.name && (context === SESSION || context === TEAM);\r\n const isSessionContext = session?.id && session?.name && context === SESSION;\r\n const isBelowSessionContext = session?.id && session?.name && context === TEAM;\r\n const isTeamContext = team?.id && team?.name && context === TEAM;\r\n\r\n return (\r\n
    \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n {data && (\r\n \r\n {isAdmin && league?.id && league?.name && {league.name}}\r\n {isAdmin && renderBreadcrumb(conferenceUrl, conference?.name, isConferenceContext, isBelowConferenceContext)}\r\n {renderBreadcrumb(sessionUrl, session?.name, isSessionContext, isBelowSessionContext)}\r\n {isTeamContext && {team?.name}}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n isOpen: false,\r\n title: null,\r\n message: null,\r\n};\r\n\r\nconst genericPopupSlice = createSlice({\r\n name: 'genericPopup',\r\n initialState,\r\n reducers: {\r\n showPopup(state, action) {\r\n state.isOpen = true;\r\n state.title = action.payload.title;\r\n state.message = action.payload.message;\r\n },\r\n\r\n hidePopup(state) {\r\n state.isOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { showPopup, hidePopup } = genericPopupSlice.actions;\r\nexport default genericPopupSlice.reducer;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport PlayerSearchResultCard from '../Cards/PlayerSearchResultCard';\r\nimport Popup from '../Popups/Popup';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { LeagueRoles } from '../../utils/constants';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\n\r\nconst MemberRoleManager = ({ members = [], isUpdatingRole, isLoadingTeam, memberRole, onAddMemberRole, onRemoveMemberRole }) => {\r\n const { TEAM_CAPTAIN } = LeagueRoles;\r\n const dispatch = useDispatch();\r\n const [originalMembers, setOriginalMembers] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [isRemovingMember, setIsRemovingMember] = useState(false);\r\n const [memberAwaitingAction, setMemberAwaitingAction] = useState();\r\n const minimumAmountOfMembersNeeded = 1;\r\n const maximumAmountOfCaptains = 3;\r\n\r\n useEffect(() => {\r\n if (members?.length) {\r\n const mappedMembers = mapMembersForPlayerSearch(members);\r\n setOriginalMembers(mappedMembers);\r\n }\r\n }, [members]);\r\n\r\n const isPermittedToRemoveMember = () => {\r\n if (members?.length === minimumAmountOfMembersNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: `There must always be at least one ${memberRole}`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isPermittedToAddMember = () => {\r\n if (members?.length === maximumAmountOfCaptains && memberRole === TEAM_CAPTAIN) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: `Only 3 Captains are permitted per team.`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnAddMemberRole = (member) => {\r\n setMemberAwaitingAction(member);\r\n setIsRemovingMember(false);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnRemoveMemberRole = (member) => {\r\n setMemberAwaitingAction(member);\r\n setIsRemovingMember(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveMember = isPermittedToRemoveMember();\r\n if (isAbleToRemoveMember) {\r\n onRemoveMemberRole(memberAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToAddMember = isPermittedToAddMember();\r\n if (isAbleToAddMember) {\r\n onAddMemberRole(memberAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingMember ? 'Remove' : 'Add';\r\n const popupAction = isRemovingMember ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} ${memberRole}`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${memberAwaitingAction?.displayName} as a ${memberRole}?`;\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n {`Current ${memberRole}s`}\r\n \r\n \r\n {isUpdatingRole ? (\r\n \r\n ) : (\r\n originalMembers.map((player) => (\r\n \r\n ))\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberRoleManager;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport TableCell from '@mui/material/TableCell';\r\n\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { StyledTableRow } from '../../Styled';\r\nimport { openClosedStatusTypes, sessionTypes, getTypeForId } from '../../../utils/types';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'type', label: 'Type' },\r\n { id: 'status', label: 'Status' },\r\n { id: 'startDate', label: 'Start Date' },\r\n { id: 'empty' },\r\n { id: 'view' },\r\n];\r\n\r\nconst SessionsTable = ({ conferenceSessions = [], isLoading, onManageClick, onViewClick, onRemoveClick }) => {\r\n const [sessions, setSessions] = useState([]);\r\n\r\n useEffect(() => {\r\n const formattedSessions = conferenceSessions.map((session) => {\r\n const { sessionTypeId, sessionStatusTypeId, startDateUtc, ...fetchedSession } = session;\r\n const sessionType = getTypeForId(sessionTypeId, sessionTypes);\r\n const sessionStatus = getTypeForId(sessionStatusTypeId, openClosedStatusTypes);\r\n\r\n return {\r\n ...fetchedSession,\r\n type: sessionType.description,\r\n status: sessionStatus.description,\r\n startDate: getAdjustedDate({ dateUtc: startDateUtc, format: 'MMMM Do YYYY' }),\r\n };\r\n });\r\n\r\n setSessions(formattedSessions);\r\n }, [conferenceSessions]);\r\n\r\n const SessionTableRow = ({ rowData, labelId }) => {\r\n const { id, name, type, status, startDate, hasRegisteredPlayers } = rowData;\r\n\r\n const handleManageClick = () => {\r\n onManageClick(id);\r\n };\r\n\r\n const handleOnViewClick = () => {\r\n onViewClick(id);\r\n };\r\n\r\n const handleOnRemoveClick = () => {\r\n onRemoveClick(id, hasRegisteredPlayers);\r\n };\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n {type}\r\n {status}\r\n {startDate}\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 return ;\r\n};\r\n\r\nexport default SessionsTable;\r\n","import React from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Pagination from '@mui/material/Pagination';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport SessionsTable from '../../../components/Tables/SessionsTable';\r\n\r\nconst SessionsTab = ({ sessions, conferenceId, isLoading, onRemoveSession, onPageChange, pageCount, currentPage }) => {\r\n const navigate = useNavigate();\r\n\r\n const handleOnCreateSessionClick = () => {\r\n navigate(`/leagues/${conferenceId}/session/create`);\r\n };\r\n\r\n const handleOnManageClick = (sessionId) => {\r\n navigate(`/leagues/session/${sessionId}/manage`);\r\n };\r\n\r\n const handleOnViewClick = (sessionId) => {\r\n navigate(`/leagues/session/${sessionId}`);\r\n };\r\n\r\n const handleOnRemoveClick = (sessionId, hasRegisteredPlayers) => {\r\n onRemoveSession(sessionId, hasRegisteredPlayers);\r\n };\r\n\r\n const handleOnPageChange = (event, page) => {\r\n event.preventDefault();\r\n onPageChange(page);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!sessions?.length ? (\r\n \r\n No sessions have been created for this conference.\r\n \r\n ) : (\r\n <>\r\n \r\n {pageCount > 1 && (\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\nexport default SessionsTab;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation, useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Tab from '@mui/material/Tab';\r\nimport TabContext from '@mui/lab/TabContext';\r\nimport TabList from '@mui/lab/TabList';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport Breadcrumbs from '../../components/Breadcrumbs';\r\nimport CreateConferenceForm from '../../components/Forms/CreateConferenceForm';\r\nimport MemberRoleManager from '../../components/MemberRoleManager';\r\nimport SessionsTab from './SessionsTab';\r\nimport Popup from '../../components/Popups/Popup';\r\n\r\nimport { LeagueTabs, LeagueRoles, BreadcrumbContexts } from '../../utils/constants';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport {\r\n useGetConferenceQuery,\r\n useAddOrganizerMutation,\r\n useRemoveOrganizerMutation,\r\n useRemoveSessionMutation,\r\n} from '../../api/leaguesApi';\r\nimport { useGetConferenceSessions } from '../../hooks/useGetConferenceSessions';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst ManageConferencePage = () => {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const { conferenceId } = useParams();\r\n const { CONFERENCE } = BreadcrumbContexts;\r\n const { CONFERENCE_ORGANIZER } = LeagueRoles;\r\n const { DETAILS, SESSIONS, ORGANIZERS } = LeagueTabs;\r\n const [activeTab, setActiveTab] = useState(SESSIONS);\r\n const [shouldUpdateBreadcrumb, setShouldUpdateBreadcrumb] = useState(false);\r\n const [showDeleteConfirmation, setShowDeleteConfirmation] = useState(false);\r\n const [showDeleteError, setShowDeleteError] = useState(false);\r\n const [sessionIdToDelete, setSessionIdToDelete] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n\r\n const unableToDeleteMessage =\r\n 'There are players registered to teams. To delete the session, players must first be removed from the team.';\r\n const deleteSessionMessage =\r\n 'Deleting this session will remove it from the conference. Any teams associated with the session will be removed too. Are you sure you want to delete?';\r\n\r\n const {\r\n data: conferenceDetails,\r\n isLoading: isLoadingConference,\r\n error: conferenceError,\r\n isFetchingConference,\r\n } = useGetConferenceQuery(parseInt(conferenceId));\r\n\r\n const { sessionResults, isLoadingSessions, totalPages } = useGetConferenceSessions(parseInt(conferenceId), pageNumber);\r\n\r\n const [addOrganizer, { isLoading: isAddingOrganizer }] = useAddOrganizerMutation();\r\n const [removeOrganizer, { isLoading: isRemovingOrganizer }] = useRemoveOrganizerMutation();\r\n const [removeSession, { isLoading: isRemovingSession }] = useRemoveSessionMutation();\r\n const isUpdatingOrganizers = isAddingOrganizer || isRemovingOrganizer || isFetchingConference;\r\n const isSessionsLoading = isLoadingSessions || isRemovingSession;\r\n\r\n if (conferenceError) {\r\n dispatch(showErrorPopup(conferenceError));\r\n }\r\n\r\n useEffect(() => {\r\n if (location?.state?.activeTab) {\r\n setActiveTab(location?.state?.activeTab);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (conferenceDetails) {\r\n dispatch(setSportTypeId(conferenceDetails?.sportTypeId));\r\n }\r\n }, [conferenceDetails]);\r\n\r\n const handleTabChange = (_, value) => {\r\n setActiveTab(value);\r\n };\r\n\r\n const handleOnBreadcrumbUpdated = () => {\r\n setShouldUpdateBreadcrumb(false);\r\n };\r\n\r\n const handleOnConferenceUpdated = () => {\r\n setShouldUpdateBreadcrumb(true);\r\n setActiveTab(SESSIONS);\r\n };\r\n\r\n const handleOnRemoveConferenceOrganizer = async (removedOrganizer) => {\r\n try {\r\n await removeOrganizer({ conferenceId, organizerId: removedOrganizer.id });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnAddConferenceOrganizer = async (addedOrganizer) => {\r\n try {\r\n await addOrganizer({ conferenceId, organizer: { memberId: addedOrganizer.memberId } }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnRemoveSession = async (sessionId, hasRegisteredPlayers) => {\r\n if (hasRegisteredPlayers) {\r\n setShowDeleteError(true);\r\n } else {\r\n setSessionIdToDelete(sessionId);\r\n setShowDeleteConfirmation(true);\r\n }\r\n };\r\n\r\n const handleOnDeleteConfirmed = async () => {\r\n setShowDeleteConfirmation(false);\r\n\r\n try {\r\n await removeSession({ sessionId: sessionIdToDelete, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnCloseDeletePopup = () => {\r\n setShowDeleteConfirmation(false);\r\n };\r\n\r\n const handleOnCloseDeleteErrorPopup = () => {\r\n setShowDeleteError(false);\r\n };\r\n\r\n const handleOnPageChange = (page) => {\r\n setPageNumber(page);\r\n };\r\n\r\n const tabs = [SESSIONS, ORGANIZERS, DETAILS];\r\n return (\r\n \r\n \r\n \r\n \r\n Manage Conference\r\n \r\n \r\n \r\n \r\n \r\n {tabs.map((tab) => (\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\nexport default ManageConferencePage;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { useGetConferenceSessionsQuery } from '../api/leaguesApi';\r\n\r\nexport const useGetConferenceSessions = (conferenceId, pageNumber) => {\r\n const pageSize = 25;\r\n const dispatch = useDispatch();\r\n const [sessionResults, setSessionResults] = useState([]);\r\n const [totalPages, setTotalPages] = useState(null);\r\n\r\n const {\r\n data: sessions,\r\n isLoading: isLoadingSessions,\r\n error: sessionError,\r\n } = useGetConferenceSessionsQuery({ conferenceId, pageNumber, pageSize });\r\n\r\n if (sessionError) {\r\n dispatch(showErrorPopup(sessionError));\r\n }\r\n\r\n useEffect(() => {\r\n if (sessions) {\r\n const { results, totalCount } = sessions || {};\r\n const pages = Math.ceil(totalCount / pageSize);\r\n setTotalPages(pages);\r\n setSessionResults(results);\r\n }\r\n }, [sessions]);\r\n\r\n return { sessionResults, totalPages, isLoadingSessions };\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { SortableTable, SquareAvatarWithName, Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Stack from '@mui/material/Stack';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\n\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { OrderByTypes } from '../../../utils/types';\r\nimport { getPowerIndex } from '../../../utils/helpers';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { addTeamsTablePropTypes, defaultAddTeamsTablePropTypes, teamTableRowProps } from '../../../utils/proptypes';\r\n\r\nconst headCells = [\r\n { id: OrderByTypes.TEAM_NAME, label: 'Team Name' },\r\n { id: 'captainNames', label: 'Captains', isSortingDisabled: true },\r\n { id: OrderByTypes.SESSION_NAME, label: 'Session' },\r\n { id: 'teamPowerIndexSingle', label: 'TPI S', isSortingDisabled: true },\r\n { id: 'teamPowerIndexDouble', label: 'TPI D', isSortingDisabled: true },\r\n { id: 'record', label: 'Record', isSortingDisabled: true },\r\n { id: OrderByTypes.RANK, label: 'Rank' },\r\n { id: 'checkbox' },\r\n];\r\n\r\nconst MAX_CAPTAINS_TO_SHOW = 2;\r\n\r\nconst AddTeamsTable = ({\r\n sessionTeams = [],\r\n isLoading,\r\n sortByProperty,\r\n sortOrder,\r\n selectedTeamIds,\r\n onTeamSelected,\r\n onSortChange,\r\n maxTeamsReached,\r\n}) => {\r\n const [teams, setTeams] = useState([]);\r\n const theme = useTheme();\r\n const { MEDIUM_MEDIUM, SMALL_MEDIUM, SMALL_BOOK, X_SMALL_MEDIUM } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const tableCellStyles = { borderBottom: 'none', maxWidth: '200px' };\r\n const smallTableCellStyles = { borderBottom: 'none', maxWidth: '150px' };\r\n\r\n useEffect(() => {\r\n const formattedTeams = sessionTeams.map((team) => {\r\n const { captains, sessionEndDateUtc, sessionStartDateUtc, wins, losses, ...rest } = team;\r\n const captainNames = captains.slice(0, MAX_CAPTAINS_TO_SHOW).map((captain) => `${captain?.firstName} ${captain?.lastName}`);\r\n const dateFormat = 'll';\r\n const startDate = getAdjustedDate({ dateUtc: sessionStartDateUtc, format: dateFormat });\r\n const endDate = getAdjustedDate({ dateUtc: sessionEndDateUtc, format: dateFormat });\r\n return {\r\n ...rest,\r\n captainNames,\r\n sessionDates: `${startDate} - ${endDate}`,\r\n record: `${wins} - ${losses}`,\r\n isSelected: selectedTeamIds?.includes(team.id),\r\n };\r\n });\r\n setTeams(formattedTeams);\r\n }, [sessionTeams]);\r\n\r\n const handleOnOrderPropertyChange = (property) => {\r\n onSortChange(property);\r\n };\r\n\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const { id, name, teamMemberCount, sessionName, captainNames, sessionDates, record, rank, teamPowerIndex } = rowData;\r\n\r\n const teamUrl = `/teams/${id}`;\r\n\r\n const handleOnItemSelected = () => {\r\n const selectedTeam = teams.find((team) => team.id === id);\r\n onTeamSelected(id, selectedTeam);\r\n };\r\n\r\n const isItemSelected = selectedTeamIds.includes(id);\r\n\r\n TeamTableRow.propTypes = {\r\n ...teamTableRowProps,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {captainNames?.map((captain) => (\r\n \r\n {captain}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n {sessionDates}\r\n \r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated)}\r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated)}\r\n \r\n \r\n \r\n \r\n {record}\r\n \r\n \r\n \r\n \r\n {rank}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return sessionTeams?.length && !isLoading ? (\r\n \r\n ) : (\r\n <>\r\n \r\n Teams.\r\n \r\n \r\n Select a conference and session to see teams\r\n \r\n \r\n );\r\n};\r\n\r\nAddTeamsTable.propTypes = {\r\n ...addTeamsTablePropTypes,\r\n};\r\n\r\nAddTeamsTable.defaultProps = {\r\n ...defaultAddTeamsTablePropTypes,\r\n};\r\n\r\nexport default AddTeamsTable;\r\n","import React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport { modalBaseSimplePropTypes, defaultModalBaseSimplePropTypes } from '../../utils/proptypes';\r\n\r\nconst DialogTitleSimple = (props) => {\r\n const { children, onClose, hideHeaderCloseIcon, ...other } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose && !hideHeaderCloseIcon ? (\r\n theme.palette.grey[500],\r\n }}\r\n >\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst ModalBaseSimple = (props) => {\r\n const { open, onClose, title, children } = props;\r\n return (\r\n \r\n {title}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nModalBaseSimple.propTypes = {\r\n ...modalBaseSimplePropTypes\r\n};\r\n\r\nModalBaseSimple.defaultProps = {\r\n ...defaultModalBaseSimplePropTypes\r\n};\r\n\r\nexport default ModalBaseSimple;\r\n","import React from 'react';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Button from '@mui/material/Button';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport ModalBaseSimple from './ModalBaseSimple';\r\n\r\nconst AddTeamsNotificationModal = ({ open = false, selections, teamsCount, onClose, onSendClick, onChange }) => {\r\n const handleOnChange = (event) => {\r\n onChange(event);\r\n };\r\n\r\n const teamsText = teamsCount === 1 ? 'team' : 'teams';\r\n\r\n return (\r\n \r\n \r\n \r\n Would you like to notify captains or players?\r\n \r\n }\r\n label=\"Notify captains their team has been added\"\r\n />\r\n }\r\n label=\"Invite players to register for their team\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddTeamsNotificationModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Button, Typography, SquareAvatarWithName, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\nimport Pagination from '@mui/material/Pagination';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport AddTeamsTable from '../Tables/AddTeamsTable';\r\nimport AddTeamsNotificationModal from './AddTeamsNotificationModal';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { addTeamsModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst AddTeamsModal = ({\r\n isOpen,\r\n isLoadingOptions,\r\n isLoadingTeams,\r\n onClose,\r\n teams,\r\n maxTeams,\r\n currentTeamCount,\r\n currentPage,\r\n pageCount,\r\n conferences = [],\r\n sessions = [],\r\n selectedConferenceId,\r\n selectedSessionIds = [],\r\n onConferenceChange,\r\n onSessionChange,\r\n onApplyClick,\r\n onPageChange,\r\n onSortChange,\r\n onCloseSessionDropdown,\r\n onAddTeams,\r\n sortByProperty,\r\n sortOrder,\r\n}) => {\r\n const theme = useTheme();\r\n const { PRIMARY, DISPLAY, SECONDARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, XX_SMALL_MEDIUM_CAP, MEDIUM_MEDIUM, SMALL_MEDIUM } = TypographySizes;\r\n const [selectedTeamIds, setSelectedTeamIds] = useState([]);\r\n const [teamsToAdd, setTeamsToAdd] = useState([]);\r\n const [teamCount, setTeamCount] = useState();\r\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\r\n const [showSessionDropdown, setShowSessionDropdown] = useState(false);\r\n const [notifications, setNotifications] = useState({ notifyCaptains: false, notifyPlayers: false });\r\n\r\n const hasSessions = !!sessions?.length;\r\n const sessionLabelText = !hasSessions ? 'No sessions available' : 'Select Sessions';\r\n const isApplyDisabled = !selectedSessionIds.length;\r\n\r\n useEffect(() => {\r\n const teamsCount = currentTeamCount + teamsToAdd.length;\r\n setTeamCount(teamsCount);\r\n }, [teamsToAdd]);\r\n\r\n useEffect(() => {\r\n setTeamCount(currentTeamCount);\r\n }, [currentTeamCount]);\r\n\r\n const clearState = () => {\r\n setTeamsToAdd([]);\r\n setNotifications({ notifyCaptains: false, notifyPlayers: false });\r\n setSelectedTeamIds([]);\r\n };\r\n\r\n const handleOnConferenceChange = (event) => {\r\n onConferenceChange(event.target.value);\r\n };\r\n\r\n const handleOnSessionsChange = (event) => {\r\n onSessionChange(event.target.value);\r\n };\r\n\r\n const handleOnApplyClick = (event) => {\r\n event.preventDefault();\r\n setShowSessionDropdown(false);\r\n onApplyClick();\r\n };\r\n\r\n const handleOnTeamSelected = (id, team) => {\r\n if (selectedTeamIds.includes(id)) {\r\n const updatedSelectedTeamIds = selectedTeamIds.filter((teamId) => teamId !== id);\r\n const updatedTeamsToAdd = teamsToAdd.filter((addedTeam) => addedTeam.id !== team.id);\r\n\r\n setSelectedTeamIds(updatedSelectedTeamIds);\r\n setTeamsToAdd(updatedTeamsToAdd);\r\n } else {\r\n const selectedIds = [...selectedTeamIds, id];\r\n if (selectedIds.length <= maxTeams - currentTeamCount) {\r\n setSelectedTeamIds(selectedIds);\r\n setTeamsToAdd([...teamsToAdd, team]);\r\n }\r\n }\r\n };\r\n\r\n const handleOnTeamRemoved = (id, team) => {\r\n const updatedSelectedTeamIds = selectedTeamIds?.filter((teamId) => teamId !== id);\r\n const updatedTeamsToAdd = teamsToAdd?.filter((addedTeam) => addedTeam.id !== team.id);\r\n\r\n setSelectedTeamIds(updatedSelectedTeamIds);\r\n setTeamsToAdd(updatedTeamsToAdd);\r\n };\r\n\r\n const handleOnPageChange = (event, page) => {\r\n event.preventDefault();\r\n onPageChange(page);\r\n };\r\n\r\n const handleOnSortPropertyChange = (property) => {\r\n onSortChange(property);\r\n };\r\n\r\n const getOptionSelections = (selectedOptions, options) => {\r\n const optionNames = options.reduce((selectedOptionDescriptions, option) => {\r\n if (selectedOptions.includes(option.sessionId)) {\r\n selectedOptionDescriptions.push(option.sessionName);\r\n }\r\n return selectedOptionDescriptions;\r\n }, []);\r\n\r\n return optionNames.join(', ');\r\n };\r\n\r\n const handleOnAddTeamsClick = () => {\r\n setShowConfirmationModal(true);\r\n };\r\n\r\n const handleOnCloseConfirmationModal = () => {\r\n setShowConfirmationModal(false);\r\n };\r\n\r\n const handleOnNotificationChange = (event) => {\r\n setNotifications({\r\n ...notifications,\r\n [event.target.name]: event.target.checked,\r\n });\r\n };\r\n\r\n const handleOnSendClick = () => {\r\n onAddTeams(notifications, selectedTeamIds);\r\n setShowConfirmationModal(false);\r\n clearState();\r\n };\r\n\r\n const handleOnCloseSessionDropdown = () => {\r\n setShowSessionDropdown(false);\r\n onCloseSessionDropdown();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add an existing team\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 Select Conference\r\n \r\n {conferences?.map((option) => (\r\n \r\n {option.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n {sessionLabelText}\r\n setShowSessionDropdown(true)}\r\n onClose={handleOnCloseSessionDropdown}\r\n multiple\r\n disabled={!hasSessions || isLoadingOptions}\r\n labelId=\"session-select\"\r\n onChange={handleOnSessionsChange}\r\n renderValue={(selected) => getOptionSelections(selected, sessions)}\r\n >\r\n {sessions?.map((option) => (\r\n \r\n -1} />\r\n {option.sessionName}\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 {isLoadingTeams ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {pageCount > 1 && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {`Selected Teams (${teamCount}/${maxTeams})`}\r\n {teamsToAdd.map((team) => (\r\n \r\n \r\n \r\n handleOnTeamRemoved(team?.id, team)} sx={{ '&:hover': { borderRadius: '50%' } }}>\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\nAddTeamsModal.propTypes = {\r\n ...addTeamsModalPropTypes\r\n};\r\n\r\nexport default AddTeamsModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\n\r\nimport AddTeamsModal from '../Modals/AddTeamsModal';\r\nimport { useGetLeagueConferencesQuery, useGetSessionNamesQuery } from '../../api/leaguesApi';\r\nimport { useGetTeamsForSessions } from '../../hooks/useGetTeamsForSessions';\r\nimport { OrderByRuleTypes, OrderByTypes } from '../../utils/types';\r\n\r\nconst AddTeamContainer = ({ sessionId, leagueId, conferenceId, isOpen, onClose, maxTeams, teamCount, onAddTeams }) => {\r\n const dispatch = useDispatch();\r\n const { ASCENDING, DESCENDING } = OrderByRuleTypes;\r\n const { TEAM_NAME } = OrderByTypes;\r\n const [selectedConferenceId, setSelectedConferenceId] = useState(null);\r\n const [selectedSessionIds, setSelectedSessionIds] = useState([]);\r\n const [originalSessionIds, setOriginalSessionIds] = useState([]);\r\n const [sortOrder, setSortOrder] = useState(ASCENDING);\r\n const [sortByProperty, setSortByProperty] = useState(TEAM_NAME);\r\n const [sessionNames, setSessionNames] = useState([]);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n const { data, isFetching: isLoadingConferences, error } = useGetLeagueConferencesQuery(leagueId, { skip: !isOpen });\r\n\r\n const {\r\n data: conferenceSessionNames,\r\n isFetching: isLoadingSessionNames,\r\n error: sessionNamesError,\r\n } = useGetSessionNamesQuery(selectedConferenceId, { skip: !isOpen || !selectedConferenceId });\r\n\r\n const fetchingError = error || sessionNamesError;\r\n const isLoading = isLoadingConferences || isLoadingSessionNames;\r\n\r\n const { teamSearchResults, isFetchingResults, handleRefetch, clearSearchResults, totalPages } = useGetTeamsForSessions(\r\n sessionId,\r\n selectedSessionIds,\r\n sortByProperty,\r\n sortOrder,\r\n pageNumber\r\n );\r\n\r\n if (fetchingError) {\r\n dispatch(showErrorPopup(fetchingError));\r\n }\r\n\r\n useEffect(() => {\r\n if (conferenceId) {\r\n setSelectedConferenceId(conferenceId);\r\n }\r\n }, [conferenceId]);\r\n\r\n useEffect(() => {\r\n if (conferenceSessionNames?.results?.length) {\r\n const filteredSessionNames = conferenceSessionNames.results.filter((result) => result.sessionId !== sessionId);\r\n const sessionIds = filteredSessionNames.map((session) => session.sessionId);\r\n setSessionNames(filteredSessionNames);\r\n\r\n if (sessionIds?.length) {\r\n setSelectedSessionIds(sessionIds);\r\n setOriginalSessionIds(sessionIds);\r\n handleRefetch();\r\n } else {\r\n setSelectedSessionIds([]);\r\n setOriginalSessionIds([]);\r\n }\r\n }\r\n }, [conferenceSessionNames]);\r\n\r\n useEffect(() => {\r\n if (sessionNames?.length && isOpen) {\r\n handleRefetch();\r\n }\r\n }, [sessionNames, isOpen]);\r\n\r\n const handleAddTeams = async (notifications, teamIds) => {\r\n onClose();\r\n const { notifyPlayers, notifyCaptains } = notifications;\r\n const requestBody = {\r\n sessionId,\r\n teamIds,\r\n notifyPlayers,\r\n notifyCaptains,\r\n };\r\n\r\n onAddTeams(requestBody);\r\n };\r\n\r\n const handleOnCloseAddTeamModal = () => {\r\n onClose();\r\n };\r\n\r\n const handleOnConferenceChange = (id) => {\r\n clearSearchResults();\r\n setSessionNames([]);\r\n setPageNumber(1);\r\n setSelectedConferenceId(id);\r\n };\r\n\r\n const handleOnSessionIdsChange = (sessionIds) => {\r\n setSelectedSessionIds(sessionIds);\r\n };\r\n\r\n const handleOnApplyClick = () => {\r\n setPageNumber(1);\r\n setOriginalSessionIds(selectedSessionIds);\r\n handleRefetch();\r\n };\r\n\r\n const handleOnPageChange = (page) => {\r\n setPageNumber(page);\r\n handleRefetch();\r\n };\r\n\r\n const handleOnCloseSessionDropdown = () => {\r\n setSelectedSessionIds(originalSessionIds);\r\n };\r\n\r\n const handleOnSortChange = (property) => {\r\n if (property === sortByProperty) {\r\n const sortDirection = sortOrder === ASCENDING ? DESCENDING : ASCENDING;\r\n setSortOrder(sortDirection);\r\n } else {\r\n setSortOrder(ASCENDING);\r\n }\r\n setSortByProperty(property);\r\n handleRefetch();\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddTeamContainer;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { getTeamsForSession } from '../api/leaguesApi';\r\n\r\nexport const useGetTeamsForSessions = (sessionId, sessionIds, sortBy, sortOrder, pageNumber) => {\r\n const pageSize = 20;\r\n const dispatch = useDispatch();\r\n\r\n const [teamSearchResults, setTeamSearchResults] = useState([]);\r\n const [isFetchingResults, setIsFetchingResults] = useState(false);\r\n const [totalPages, setTotalPages] = useState(null);\r\n const [refetch, setRefetch] = useState(false);\r\n\r\n const handleRefetch = () => {\r\n setRefetch(true);\r\n };\r\n\r\n const clearSearchResults = () => {\r\n setTotalPages(null);\r\n setTeamSearchResults([]);\r\n };\r\n\r\n useEffect(() => {\r\n const handleOnSubmit = async () => {\r\n setIsFetchingResults(true);\r\n\r\n const parameters = {\r\n fromSessionIds: sessionIds || [],\r\n orderBy: sortBy,\r\n orderByRule: sortOrder.id,\r\n pageNumber,\r\n pageSize,\r\n };\r\n\r\n const response = await getTeamsForSession(sessionId, parameters).catch((searchError) => {\r\n setIsFetchingResults(false);\r\n dispatch(showErrorPopup(searchError));\r\n });\r\n\r\n if (response?.data) {\r\n const { results, totalCount } = response.data;\r\n const pages = Math.ceil(totalCount / pageSize);\r\n\r\n setTotalPages(pages);\r\n setTeamSearchResults(results);\r\n setIsFetchingResults(false);\r\n }\r\n\r\n setRefetch(false);\r\n };\r\n\r\n if (refetch) {\r\n handleOnSubmit();\r\n }\r\n }, [refetch]);\r\n\r\n return { teamSearchResults, isFetchingResults, handleRefetch, clearSearchResults, totalPages };\r\n};\r\n","import React, { useState } from 'react';\r\n\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport { Box, Checkbox, FormControlLabel } from '@mui/material';\r\n\r\nimport { confirmPublishSchedulePopupPropTypes, defaultConfirmPublishSchedulePopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst ConfirmPublishSchedulePopup = ({ open, onClose, title, message, checkboxLabel, errorMessage, buttonLabel, onAction, actionLabel }) => {\r\n const [isNotifyingTeams, setIsNotifyingTeams] = useState(false);\r\n\r\n const handleActionButtonClick = () => {\r\n onAction({ isNotifyingTeams });\r\n };\r\n\r\n const handleOnNotifyChange = (event) => {\r\n setIsNotifyingTeams(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n {!!title && (\r\n \r\n {title}\r\n \r\n )}\r\n\r\n \r\n {message}\r\n \r\n {!!errorMessage && (\r\n \r\n {errorMessage}\r\n \r\n )}\r\n \r\n } label={checkboxLabel} />\r\n \r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nConfirmPublishSchedulePopup.propTypes = {\r\n ...confirmPublishSchedulePopupPropTypes\r\n};\r\n\r\nConfirmPublishSchedulePopup.defaultProps = {\r\n ...defaultConfirmPublishSchedulePopupPropTypes\r\n};\r\n\r\nexport default ConfirmPublishSchedulePopup;\r\n","import React from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport { bootstrapDialogTitlePropTypes, modalBaseWithHeaderPropTypes, defaultModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst BootstrapDialog = styled(Dialog)(({ theme }) => ({\r\n '& .MuiDialogContent-root': {\r\n padding: theme.spacing(2),\r\n },\r\n '& .MuiDialogActions-root': {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst BootstrapDialogTitle = (props) => {\r\n const { children, onClose, ...other } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose && (\r\n theme.palette.grey[500],\r\n }}\r\n >\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nBootstrapDialogTitle.propTypes = {\r\n ...bootstrapDialogTitlePropTypes\r\n};\r\n\r\nconst ModalBaseWithHeader = (props) => {\r\n const { title, onClose, open, children } = props;\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nModalBaseWithHeader.propTypes = {\r\n ...modalBaseWithHeaderPropTypes\r\n};\r\n\r\nModalBaseWithHeader.defaultProps = {\r\n ...defaultModalPropTypes\r\n};\r\n\r\nexport default ModalBaseWithHeader;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport OutlinedInput from '@mui/material/OutlinedInput';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\nexport const getOptionSelections = (selectedOptions, options) => {\r\n const optionDescriptions = options.reduce((selectedOptionDescriptions, option) => {\r\n if (selectedOptions.includes(option.id)) {\r\n selectedOptionDescriptions.push(option.description);\r\n }\r\n return selectedOptionDescriptions;\r\n }, []);\r\n\r\n return optionDescriptions.join(', ');\r\n};\r\n\r\nconst MultiSelect = ({ control, isFullWidth, isRequired = false, label, labelId, name, options, hasError }) => (\r\n (\r\n \r\n {label}\r\n }\r\n renderValue={(selected) => getOptionSelections(selected, options)}\r\n MenuProps={MenuProps}\r\n error={hasError}\r\n >\r\n {options.map((option) => (\r\n \r\n -1} />\r\n {option.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n);\r\n\r\nexport default MultiSelect;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport ModalBaseWithHeader from './ModalBaseWithHeader';\r\nimport MultiSelect from '../Form/MultiSelect';\r\n\r\nconst CopyPlayerModal = ({ availableTeams, onClose, open, onSubmit, isLoadingAvailableTeams }) => {\r\n const [isSubstituteChecked, setIsSubstituteChecked] = useState(false);\r\n\r\n const defaultValues = { teamIds: [] };\r\n const {\r\n handleSubmit,\r\n formState,\r\n formState: { errors },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (formState.isSubmitSuccessful) {\r\n reset({ teamIds: [] });\r\n setIsSubstituteChecked(false);\r\n }\r\n }, [formState, reset]);\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.teamIds, isSubstituteChecked);\r\n };\r\n\r\n const handleOnCheckboxChange = (event) => {\r\n setIsSubstituteChecked(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {isLoadingAvailableTeams && }\r\n {!!availableTeams.length && (\r\n <>\r\n \r\n Select one or more teams to copy the player to\r\n \r\n \r\n \r\n }\r\n label=\"Substitute Player\"\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\nexport default CopyPlayerModal;\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Select from '@mui/material/Select';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Grid from '@mui/material/Grid';\r\nimport ControlPointIcon from '@mui/icons-material/ControlPoint';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\n\r\nimport RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline';\r\n\r\nimport { Typography, FullPageModal } from '@universal-tennis/ui-shared';\r\nimport { useForm, useFieldArray } from 'react-hook-form';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { getPowerIndex } from '../../utils/helpers';\r\nimport { createDrawModalPropTypes, defaultCreateDrawModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst CreateDrawModal = (props) => {\r\n const theme = useTheme();\r\n const { onClose, open, onSubmit, selectableTeams, onSkip } = props;\r\n\r\n const mappedSelectableTeams = selectableTeams?.map((team) => {\r\n return {\r\n teamId: team?.id,\r\n name: team?.name,\r\n seed: team?.seed,\r\n teamPowerIndex: team?.teamPowerIndex\r\n };\r\n });\r\n const sortDefaultvalues = mappedSelectableTeams?.slice().filter((team) => !!team.seed);\r\n const sortedArray = sortDefaultvalues?.sort((a, b) => parseFloat(a.seed) - parseFloat(b.seed)) || [];\r\n\r\n const defaultValues = sortedArray.length === selectableTeams.length ? {\r\n drawTeams: sortedArray\r\n } : {\r\n drawTeams: [...sortedArray, { name: '' }]\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n register,\r\n watch,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const { fields, append, remove } = useFieldArray({\r\n control,\r\n name: 'drawTeams',\r\n rules: { minLength: 1 }\r\n });\r\n\r\n const SEED_DESCRIPTION = `Provide up to ${selectableTeams?.length} seeds for the draw.`;\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.drawTeams);\r\n };\r\n\r\n const watchFieldArray = watch('drawTeams', defaultValues);\r\n const controlledFields = fields.map((field, index) => {\r\n return {\r\n ...field,\r\n ...watchFieldArray[index]\r\n };\r\n });\r\n\r\n const isShowingCTAButton = (controlledFields.length >= 1 && controlledFields[0].teamId);\r\n\r\n const getTeamNameForSelection = (teamId) => {\r\n const selectedTeam = mappedSelectableTeams?.find((team) => team?.teamId === teamId);\r\n return `${selectedTeam?.name}`;\r\n };\r\n\r\n return (\r\n onSkip()}\r\n >\r\n \r\n \r\n
    \r\n \r\n \r\n {SEED_DESCRIPTION}\r\n \r\n\r\n {controlledFields.map((item, index) => {\r\n return (\r\n \r\n \r\n {index + 1}.\r\n \r\n\r\n \r\n Select Team\r\n getTeamNameForSelection(value)}\r\n {...register(`drawTeams.${index}.teamId`)}\r\n >\r\n {mappedSelectableTeams\r\n .filter((selectableTeam) => {\r\n const isSelectableTeamSelected = !!controlledFields.find((selectedTeam) => selectedTeam.teamId === selectableTeam.teamId);\r\n const isSelectableTeamIsInThisField = selectableTeam.teamId === item.teamId;\r\n\r\n if (isSelectableTeamIsInThisField) return selectableTeam;\r\n if (isSelectableTeamSelected) return;\r\n return selectableTeam;\r\n })\r\n .map((team) => (\r\n \r\n \r\n \r\n {team.name}\r\n \r\n \r\n TPI S: \r\n {getPowerIndex(team?.teamPowerIndex?.singlesRating, team?.teamPowerIndex?.isSinglesEstimated)}\r\n \r\n \r\n TPI D:\r\n {getPowerIndex(team?.teamPowerIndex?.doublesRating, team?.teamPowerIndex?.isDoublesEstimated)}\r\n \r\n \r\n \r\n )) }\r\n \r\n \r\n {selectableTeams?.length === controlledFields?.length ? null : (\r\n \r\n ) }\r\n {controlledFields?.length !== 1 ? (\r\n \r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nCreateDrawModal.propTypes = {\r\n ...createDrawModalPropTypes\r\n};\r\n\r\nCreateDrawModal.defaultProps = {\r\n ...defaultCreateDrawModalPropTypes\r\n};\r\n\r\nexport default CreateDrawModal;\r\n","import React from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nimport { tennisScoringTypes, pickleballScoringTypes, durationTypes, SportTypeIds, getTypeForId } from '../../utils/types';\r\n\r\nimport { matchFormatPropTypes } from '../../utils/proptypes';\r\n\r\nconst MatchFormat = ({\r\n matchCount = '',\r\n pointsPerMatch = '',\r\n scoringFormatTypeId = '',\r\n timeAllowedTypeId = '',\r\n isDoubles = false,\r\n sportTypeId = '',\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const scoringTypes = isTennisMatch ? tennisScoringTypes : pickleballScoringTypes;\r\n const scoringFormatDescription = getTypeForId(scoringFormatTypeId, scoringTypes)?.description;\r\n const timeAllottedPerMatch = getTypeForId(timeAllowedTypeId, durationTypes)?.description;\r\n\r\n const formatType = isDoubles ? 'Doubles' : 'Singles';\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {formatType} matches per team\r\n \r\n \r\n {matchCount}\r\n \r\n \r\n \r\n \r\n Points per match win\r\n \r\n \r\n {pointsPerMatch}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Scoring Format\r\n \r\n \r\n {scoringFormatDescription}\r\n \r\n \r\n \r\n \r\n Time allotted per match\r\n \r\n \r\n {timeAllottedPerMatch}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMatchFormat.propTypes = {\r\n ...matchFormatPropTypes,\r\n};\r\n\r\nexport default MatchFormat;\r\n","import React from 'react';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst FullPageModal = ({ title, children, ctaTitle, onCtaClick, isOpen, onClose, isCtaButtonDisabled = false }) => {\r\n const theme = useTheme();\r\n const { PRIMARY, DISPLAY } = SharedUICategories;\r\n const { MEDIUM_BOOK } = TypographySizes;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\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\nexport default FullPageModal;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MuiTimePicker from '@mui/lab/TimePicker';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nconst TimePicker = (props) => {\r\n const { control, name, label, isRequired = false } = props;\r\n\r\n return (\r\n \r\n (\r\n }\r\n />\r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TimePicker;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\nimport moment from 'moment';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport DatePicker from '@mui/lab/DatePicker';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport FullPageModal from './FullPageModal';\r\nimport Input from '../Form/Input';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport Location from '../Form/Location';\r\nimport Popup from '../Popups/Popup';\r\nimport Select from '../Form/Select';\r\nimport SessionMatchFormat from '../SessionMatchFormat';\r\nimport TimePicker from '../Form/TimePicker';\r\nimport { CustomSwitch } from '../Styled';\r\nimport { getTooManyMatchesPerTeamError } from '../../utils/sessions';\r\n\r\nimport {\r\n FrequencyTypes,\r\n LeagueSessionTypes,\r\n MatchFormatTypes,\r\n SessionDrawTypes,\r\n SessionStandingsRules,\r\n SessionStandingsTypes,\r\n StatusTypes,\r\n TournamentTeamsCount,\r\n drawTypes,\r\n matchFrequencyTypes,\r\n sessionMatchFormatTypes,\r\n sessionTypes,\r\n tournamentTeamsCountOptions,\r\n tennisSessionStandingsOptions,\r\n pickleballSessionStandingsOptions,\r\n SportTypeIds,\r\n} from '../../utils/types';\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { getLocationData } from '../../utils/location';\r\nimport { useUpdateSessionMutation, useGetLeagueFeesQuery } from '../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../utils/display';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport { manageSessionModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst CUSTOM_MORE_MATCHES_TEXT = 'There are more matches per team than weeks in the session.';\r\n\r\nconst ManageSessionModal = ({ sessionDetails = {}, isLoadingSession = false, title = '', isOpen = false, onClose, onSaveClick }) => {\r\n const params = useParams();\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_BOOK, X_SMALL_BOOK, MEDIUM_BOOK } = TypographySizes;\r\n const dispatch = useDispatch();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const sessionId = params?.sessionId;\r\n const { OPEN, CLOSED } = StatusTypes;\r\n const { ONCE_A_WEEK } = FrequencyTypes;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { FIRST_MATCH_BACK_DRAW } = SessionDrawTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { FOUR, EIGHT, SIXTEEN } = TournamentTeamsCount;\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const { hasRegisteredPlayers, hasPostedResults, hasPublishedSchedule, hasSchedule } = sessionDetails || {};\r\n const isRestrictedSession = hasPostedResults && hasPublishedSchedule;\r\n const canRegister = sessionDetails?.sessionStatusTypeId === OPEN;\r\n const isTennisSession = sportTypeId === SportTypeIds.TENNIS;\r\n const standingsRuleOptions = isTennisSession ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n\r\n const [sessionRegistrationStatus, setSessionRegistrationStatus] = useState(true);\r\n const [updatedSessionRegistrationStatus, setUpdatedSessionRegistrationStatus] = useState(OPEN);\r\n const [startDate, setStartDate] = useState(sessionDetails?.startDateUtc);\r\n const [endDate, setEndDate] = useState(sessionDetails?.endDateUtc);\r\n const [registrationStartDate, setRegistrationStartDate] = useState(sessionDetails?.teamRegistrationStartDateUtc);\r\n const [registrationEndDate, setRegistrationEndDate] = useState(sessionDetails?.teamRegistrationEndDateUtc);\r\n const [totalPlayerCost, setTotalPlayerCost] = useState();\r\n const [matchFormat, setMatchFormat] = useState('');\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalFormData, setOriginalFormData] = useState();\r\n const [isTournamentSession, setIsTournamentSession] = useState(false);\r\n const [conferenceId, setConferenceId] = useState(parseInt(params?.conferenceId) || skipToken);\r\n const [leagueVerifiedFee, setLeagueVerifiedFee] = useState(0);\r\n const [showRuleConfirmationModal, setShowRuleConfirmationModal] = useState(false);\r\n const [sessionStandingsRuleId, setSessionStandingsRuleId] = useState(\r\n isTennisSession ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD\r\n );\r\n const [updatedStandingsRuleId, setUpdatedStandingsRuleId] = useState(null);\r\n\r\n const registrationStatusDescription = sessionRegistrationStatus ? 'Open' : 'Closed';\r\n const [updateSession] = useUpdateSessionMutation();\r\n const { isLoading: isLoadingLeaguesFees, error } = useGetLeagueFeesQuery(conferenceId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n conferenceId: parseInt(params?.conferenceId),\r\n description: '',\r\n doublesMatchCount: '',\r\n doublesPointsPerMatch: '',\r\n doublesScoringFormatTypeId: '',\r\n doublesTimeAllowedTypeId: '',\r\n drawTypeId: FIRST_MATCH_BACK_DRAW,\r\n endDateUtc: moment().add(5, 'days'),\r\n matchesPerTeam: '',\r\n name: '',\r\n registrationFee: 0,\r\n registrationVerificationFee: 0,\r\n sessionStatusTypeId: OPEN,\r\n sessionDetails: SINGLES,\r\n sessionTypeId: '',\r\n singlesMatchCount: '',\r\n singlesPointsPerMatch: '',\r\n singlesScoringFormatTypeId: '',\r\n singlesTimeAllowedTypeId: '',\r\n startDateUtc: moment().add(3, 'days'),\r\n teamRegistrationEndDateUtc: moment().add(2, 'days').add(2, 'hour'),\r\n teamRegistrationStartDateUtc: moment().add(2, 'hour'),\r\n teamRequiredPlayersMin: 2,\r\n teamsMax: '',\r\n location: '',\r\n teamMatchFrequencyTypeId: ONCE_A_WEEK,\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n getValues,\r\n setValue,\r\n setError,\r\n clearErrors,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (sessionDetails) {\r\n const {\r\n conferenceId: sessionConferenceId,\r\n endDateUtc,\r\n startDateUtc,\r\n registrationFee,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n sessionStandingsTypeId,\r\n sessionStatusTypeId,\r\n description,\r\n drawTypeId,\r\n ...fetchedSession\r\n } = sessionDetails;\r\n\r\n setConferenceId(sessionConferenceId);\r\n setSessionStandingsRuleId(sessionStandingsTypeId ?? sessionStandingsRuleId);\r\n\r\n let sessionLocation = '';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n if (isTournament) {\r\n sessionLocation = sessionDetails?.location?.placeName || '';\r\n setOriginalLocation(sessionDetails?.location);\r\n setIsTournamentSession(true);\r\n }\r\n\r\n let formData;\r\n\r\n if (sessionMatchTypeId !== BOTH) {\r\n formData = {\r\n ...defaultValues,\r\n ...fetchedSession,\r\n sessionTypeId,\r\n drawTypeId,\r\n description: description || '',\r\n registrationFee,\r\n sessionStatusTypeId,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({\r\n dateUtc: teamRegistrationStartDateUtc,\r\n format: null,\r\n adjustForDSL: false,\r\n }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n } else {\r\n formData = {\r\n ...fetchedSession,\r\n drawTypeId,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionStatusTypeId,\r\n sessionTypeId,\r\n description: description || '',\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({\r\n dateUtc: teamRegistrationStartDateUtc,\r\n format: null,\r\n adjustForDSL: false,\r\n }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n }\r\n\r\n setSessionRegistrationStatus(canRegister);\r\n setTotalPlayerCost(parseInt(registrationFee) + parseInt(registrationVerificationFee));\r\n setLeagueVerifiedFee(registrationVerificationFee);\r\n setOriginalFormData(formData);\r\n reset(formData);\r\n setMatchFormat(sessionMatchTypeId);\r\n dispatch(setSportTypeId(sessionDetails?.sportTypeId));\r\n }\r\n }, [sessionDetails]);\r\n\r\n const extractDate = (dateTimeStr) => {\r\n return getAdjustedDate({ dateUtc: moment(dateTimeStr).toISOString(), format: 'YYYY-MM-DD' });\r\n };\r\n\r\n const extractTime = (dateUtc) => {\r\n const dateTimeStr = getAdjustedDate({ dateUtc, format: null, adjustForDSL: true }).toISOString();\r\n const tIndex = dateTimeStr.indexOf('T');\r\n return dateTimeStr.substring(tIndex);\r\n };\r\n\r\n const onHandleRegistrationStatusSwitch = () => {\r\n const newId = updatedSessionRegistrationStatus === OPEN ? CLOSED : OPEN;\r\n setSessionRegistrationStatus((prevStatus) => !prevStatus);\r\n setUpdatedSessionRegistrationStatus(newId);\r\n };\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const session = { ...formValues };\r\n\r\n session.startDateUtc = `${extractDate(startDate)}${extractTime(session.startDateUtc)}`;\r\n session.endDateUtc = `${extractDate(endDate)}${extractTime(session.endDateUtc)}`;\r\n session.teamRegistrationStartDateUtc = `${extractDate(registrationStartDate)}${extractTime(session.teamRegistrationStartDateUtc)}`;\r\n session.teamRegistrationEndDateUtc = `${extractDate(registrationEndDate)}${extractTime(session.teamRegistrationEndDateUtc)}`;\r\n session.description = session.description.trim().length === 0 ? null : session.description;\r\n session.sessionMatchTypeId = matchFormat;\r\n session.sessionStatusTypeId = updatedSessionRegistrationStatus;\r\n session.sessionStandingsTypeId = sessionStandingsRuleId;\r\n\r\n if (matchFormat === SINGLES) {\r\n delete session.doublesMatchCount;\r\n delete session.doublesPointsPerMatch;\r\n delete session.doublesScoringFormatTypeId;\r\n delete session.doublesTimeAllowedTypeId;\r\n }\r\n\r\n if (matchFormat === DOUBLES) {\r\n delete session.singlesMatchCount;\r\n delete session.singlesPointsPerMatch;\r\n delete session.singlesScoringFormatTypeId;\r\n delete session.singlesTimeAllowedTypeId;\r\n }\r\n\r\n const sessionType = getValues('sessionTypeId');\r\n\r\n if (sessionType === TOURNAMENT) {\r\n delete session.teamMatchFrequencyTypeId;\r\n\r\n if (dirtyFields.location) {\r\n session.location = await getLocationData(formValues.location);\r\n } else {\r\n session.location = originalLocation;\r\n }\r\n } else {\r\n delete session.location;\r\n }\r\n\r\n try {\r\n await updateSession({ sessionId, session, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleEntryFeeChange = (e) => {\r\n const feeValue = parseInt(e.target.value);\r\n if (!Number.isNaN(feeValue)) {\r\n setTotalPlayerCost(parseInt(e.target.value) + leagueVerifiedFee);\r\n } else {\r\n setTotalPlayerCost(leagueVerifiedFee);\r\n }\r\n };\r\n\r\n const handleOnMatchFormatChange = (event) => {\r\n setMatchFormat(event.target.value);\r\n };\r\n\r\n const handleOnEventStartDateChange = (date) => {\r\n setStartDate(date);\r\n };\r\n\r\n const handleOnEventEndDateChange = (date) => {\r\n setEndDate(date);\r\n };\r\n\r\n const handleOnRegistrationStartDateChange = (date) => {\r\n setRegistrationStartDate(date);\r\n };\r\n\r\n const handleOnRegistrationEndDateChange = (date) => {\r\n setRegistrationEndDate(date);\r\n };\r\n\r\n const handleOnSessionTypeChange = (event) => {\r\n const isTournament = event.target.value === TOURNAMENT;\r\n setIsTournamentSession(isTournament);\r\n };\r\n\r\n const handleMatchesPerTeamCheck = (event) => {\r\n clearErrors('matchesPerTeam');\r\n setValue('matchesPerTeam', event.target.value);\r\n const session = getValues();\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError({\r\n ...session,\r\n matchesPerTeam: +event.target.value,\r\n });\r\n\r\n if (hasErrors) {\r\n setError('matchesPerTeam', { type: 'custom', message: CUSTOM_MORE_MATCHES_TEXT });\r\n }\r\n };\r\n\r\n const handleOnTournamentTeamsChange = (event) => {\r\n const teamsCount = event.target.value;\r\n switch (teamsCount) {\r\n case FOUR:\r\n setValue('matchesPerTeam', 2);\r\n break;\r\n case EIGHT:\r\n setValue('matchesPerTeam', 4);\r\n break;\r\n case SIXTEEN:\r\n setValue('matchesPerTeam', 8);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n setSessionRegistrationStatus(canRegister);\r\n setMatchFormat(sessionDetails?.sessionMatchTypeId);\r\n reset(originalFormData);\r\n onClose();\r\n };\r\n\r\n const handleOnSessionRuleChange = (event) => {\r\n const ruleValue = event?.target?.value;\r\n\r\n if (ruleValue !== sessionStandingsRuleId) {\r\n setShowRuleConfirmationModal(true);\r\n setUpdatedStandingsRuleId(ruleValue);\r\n }\r\n };\r\n\r\n const handleOnConfirmRuleChange = () => {\r\n setShowRuleConfirmationModal(false);\r\n setSessionStandingsRuleId(updatedStandingsRuleId);\r\n };\r\n\r\n const handleOnCloseRuleModal = () => {\r\n setShowRuleConfirmationModal(false);\r\n setUpdatedStandingsRuleId(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {isLoadingSession && isLoadingLeaguesFees ? (\r\n \r\n ) : (\r\n
    \r\n \r\n General\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isTournamentSession && (\r\n \r\n Team Standings Rule\r\n \r\n {standingsRuleOptions.map((rule) => (\r\n \r\n {rule?.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {isTournamentSession && (\r\n \r\n )}\r\n \r\n \r\n {isTournamentSession && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!isTournamentSession && (\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 Team Match Format\r\n \r\n \r\n \r\n \r\n \r\n Format Type\r\n \r\n {sessionMatchFormatTypes.map((session) => (\r\n \r\n {session.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n \r\n \r\n \r\n Session Status\r\n \r\n \r\n Teams can be added to an open session\r\n \r\n \r\n \r\n \r\n {registrationStatusDescription}\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 {isTournamentSession ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!isTournamentSession && (\r\n \r\n \r\n {errors.matchesPerTeam && (\r\n \r\n {errors.matchesPerTeam.message}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n \r\n \r\n \r\n Session Player Entry Fee\r\n \r\n \r\n (\r\n $,\r\n }}\r\n inputProps={{ style: { textAlign: 'right', width: 55 } }}\r\n onChange={(e) => {\r\n onChange(e);\r\n handleEntryFeeChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n \r\n {`League Fee: $${leagueVerifiedFee}`}\r\n \r\n \r\n {`Total per Player: $${totalPlayerCost}`}\r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nManageSessionModal.propTypes = { ...manageSessionModalPropTypes };\r\n\r\nexport default ManageSessionModal;\r\n","import React, { useState } from 'react';\r\nimport { Typography, EditIcon } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport {\r\n drawTypes,\r\n sessionTypes,\r\n LeagueSessionTypes,\r\n sessionMatchFormatTypes,\r\n MatchFormatTypes,\r\n StatusTypes,\r\n getTypeForId,\r\n} from '../../../utils/types';\r\n\r\nimport MatchFormat from '../../../components/MatchFormat';\r\nimport ManageSessionModal from '../../../components/Modals/ManageSessionModal';\r\nimport { manageSessionDetailsTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst DetailsTab = ({ sessionDetails = {} }) => {\r\n const theme = useTheme();\r\n const {\r\n name,\r\n sessionTypeId,\r\n drawTypeId,\r\n location,\r\n description,\r\n sessionMatchTypeId,\r\n singlesMatchCount,\r\n singlesPointsPerMatch,\r\n singlesScoringFormatTypeId,\r\n singlesTimeAllowedTypeId,\r\n sportTypeId,\r\n doublesMatchCount,\r\n doublesPointsPerMatch,\r\n doublesScoringFormatTypeId,\r\n doublesTimeAllowedTypeId,\r\n sessionStatusTypeId,\r\n teamsMax,\r\n registrationFee,\r\n registrationVerificationFee,\r\n startDateUtc,\r\n endDateUtc,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n } = sessionDetails || {};\r\n const { SECONDARY } = SharedUICategories;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const { OPEN } = StatusTypes;\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const sessionStatusMessage = sessionStatusTypeId === OPEN ? 'Open. Teams can be added.' : 'Closed. Teams can not be added.';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n const totalPlayerCost = parseInt(registrationFee) + parseInt(registrationVerificationFee);\r\n const dateFormat = `MMM D, YYYY \\u2022 h:mm A`;\r\n const sessionStartDate = getAdjustedDate({ dateUtc: startDateUtc, format: dateFormat });\r\n const sessionEndDate = getAdjustedDate({ dateUtc: endDateUtc, format: dateFormat });\r\n const registrationStartDate = getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: dateFormat });\r\n const registrationEndDate = getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: dateFormat });\r\n const formatTypeDescription = getTypeForId(sessionMatchTypeId, sessionMatchFormatTypes)?.description;\r\n const drawTypeDescription = getTypeForId(drawTypeId, drawTypes)?.description;\r\n const typeDescription = getTypeForId(sessionTypeId, sessionTypes)?.description;\r\n\r\n const handleOnEditClick = () => {\r\n setShowEditModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditModal(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n General\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {typeDescription}\r\n \r\n \r\n {isTournament && (\r\n \r\n \r\n Draw Type\r\n \r\n \r\n {drawTypeDescription}\r\n \r\n \r\n )}\r\n {location && (\r\n \r\n \r\n Location\r\n \r\n \r\n {location?.formattedAddress}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {sessionStartDate}\r\n \r\n \r\n \r\n \r\n Session End Date\r\n \r\n \r\n {sessionEndDate}\r\n \r\n \r\n \r\n {description && (\r\n \r\n \r\n Description\r\n \r\n \r\n {description}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Team Match Format\r\n \r\n \r\n \r\n \r\n \r\n Format Type\r\n \r\n \r\n {formatTypeDescription}\r\n \r\n \r\n \r\n {sessionMatchTypeId === SINGLES && (\r\n \r\n )}\r\n {sessionMatchTypeId === DOUBLES && (\r\n \r\n )}\r\n {sessionMatchTypeId === BOTH && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n \r\n \r\n \r\n Session Status\r\n \r\n \r\n {sessionStatusMessage}\r\n \r\n \r\n \r\n \r\n \r\n Registration Start Date\r\n \r\n \r\n {registrationStartDate}\r\n \r\n \r\n \r\n \r\n Registration End Date\r\n \r\n \r\n {registrationEndDate}\r\n \r\n \r\n \r\n \r\n \r\n Max Teams\r\n \r\n \r\n {teamsMax}\r\n \r\n \r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n \r\n \r\n \r\n Session player entry fee\r\n \r\n \r\n {`$${registrationFee}`}\r\n \r\n \r\n \r\n \r\n League Fee\r\n \r\n \r\n {`$${registrationVerificationFee}`}\r\n \r\n \r\n \r\n \r\n Total per player\r\n \r\n \r\n {`$${totalPlayerCost}`}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDetailsTab.propTypes = {\r\n ...manageSessionDetailsTabPropTypes,\r\n};\r\n\r\nexport default DetailsTab;\r\n","import { getAdjustedDate } from '../../utils/display';\r\n\r\nexport const ONE_ROUND = 1;\r\nexport const FULL_PAGE_ROUNDS = 3;\r\nexport const BYE_ROUND = 'Bye';\r\nexport const TBD_ROUND = 'TBD';\r\nexport const MAIN_DRAW_TABLE_NUMBER = 1;\r\nexport const BACK_DRAW_TABLE_NUMBER = 2;\r\nexport const SINGLE_ROUND_BYE = 1;\r\nexport const DOUBLE_ROUND_BYE = 2;\r\nexport const MANAGE_SESSION_PAGE_TYPE = 'MANAGE_SESSION_PAGE';\r\n\r\nexport const getSortedSelectableTeamsBySeed = ({ selectableTeams }) => {\r\n const sortOptions = selectableTeams.slice();\r\n return sortOptions.sort((a, b) => {\r\n const aSeed = a.seed;\r\n const bSeed = b.seed;\r\n\r\n if (aSeed === null) {\r\n return 1;\r\n }\r\n\r\n if (bSeed === null) {\r\n return -1;\r\n }\r\n\r\n if (aSeed === bSeed) {\r\n return 0;\r\n }\r\n\r\n return parseFloat(aSeed) - parseFloat(bSeed);\r\n });\r\n};\r\n\r\nexport const getAllSelectedTeams = ({ teamMatches }) => {\r\n return teamMatches.reduce((acc, cur) => {\r\n const { position1Team, position2Team } = cur;\r\n const teamIDs = [position1Team?.teamId, position2Team?.teamId];\r\n return [...acc, ...teamIDs];\r\n }, []).filter((id) => !!id);\r\n};\r\n\r\nexport const getAvailableTeams = ({ selectableTeams, teamMatchesInRound, teamMatch }) => {\r\n const { position1Team, position2Team } = teamMatch;\r\n const alreadySelectedTeamIDs = getAllSelectedTeams({ teamMatches: teamMatchesInRound });\r\n const currentTeamMatchIDs = [position1Team?.teamId, position2Team?.teamId].filter((id) => !!id);\r\n const sortedSelectableTeamsArray = getSortedSelectableTeamsBySeed({ selectableTeams });\r\n\r\n return sortedSelectableTeamsArray.filter((item) => {\r\n const isSelectableTeamIsInThisMatch = currentTeamMatchIDs?.includes(item.id);\r\n const isSelectableTeamSelected = alreadySelectedTeamIDs?.includes(item.id);\r\n\r\n if (isSelectableTeamIsInThisMatch) return item;\r\n if (!isSelectableTeamSelected) return item;\r\n return;\r\n });\r\n};\r\n\r\nexport const getNameWithSeed = ({ team }) => {\r\n if (!team) return null;\r\n const seedNumberPos1 = team?.seed ? `${team?.seed}.` : null;\r\n return seedNumberPos1 ? `${seedNumberPos1} ${team?.name}` : `${team?.name}`;\r\n};\r\n\r\nexport const getHideViewOnPublish = ({ handleOnViewCard, hasPosition1Team, hasPosition2Team }) => {\r\n if (!hasPosition1Team || !hasPosition2Team) return {};\r\n\r\n return { onViewClick: handleOnViewCard };\r\n};\r\n\r\nexport const getHideEditOnByes = ({ teamMatch, onEditMatch, publishedPosition1Team, publishedPosition2Team, options }) => {\r\n const { optionOne, optionTwo } = options;\r\n const hasByes = optionOne === BYE_ROUND || optionTwo === BYE_ROUND;\r\n\r\n if (publishedPosition1Team?.name === BYE_ROUND || publishedPosition2Team?.name === BYE_ROUND || hasByes) {\r\n return {};\r\n }\r\n\r\n return { onEditClick: () => onEditMatch(teamMatch) };\r\n};\r\n\r\nexport const getFormattedDrawCardSelectOptions = ({ roundNumber, hasPublishedSchedule, position1TeamId, position2TeamId }) => {\r\n const optionOne =\r\n roundNumber === 1 && hasPublishedSchedule && !position1TeamId && !!position2TeamId ? BYE_ROUND : position1TeamId;\r\n const optionTwo =\r\n roundNumber === 1 && hasPublishedSchedule && !position2TeamId && !!position1TeamId ? BYE_ROUND : position2TeamId;\r\n\r\n return { optionOne, optionTwo };\r\n};\r\n\r\nexport const getFormatedFields = ({ isUsingState, currentMatch, location, matchDate }) => {\r\n const locationLabel = location?.placeName;\r\n const dateFormat = 'ddd, MMM Do [at] h:mm A';\r\n const dateLabel = matchDate && getAdjustedDate({ dateUtc: matchDate, format: dateFormat });\r\n\r\n const currentStateDateLabel =\r\n currentMatch?.matchDate && getAdjustedDate({ dateUtc: currentMatch.matchDate, format: dateFormat });\r\n const formatedDateLabel = isUsingState && currentStateDateLabel ? currentStateDateLabel : dateLabel;\r\n const formatedLocationLabel =\r\n isUsingState && currentMatch?.location?.placeName ? currentMatch?.location?.placeName : locationLabel;\r\n\r\n return { formatedDateLabel, formatedLocationLabel };\r\n};\r\n\r\nexport const getFormattedTeamPageDrawFields = ({ isUsingState, currentMatch, location, matchDate }) => {\r\n const locationLabel = location?.placeName;\r\n const dateFormat = 'ddd, MMM';\r\n const timeFormat = 'h:mm A';\r\n const dateLabel = matchDate && getAdjustedDate({ dateUtc: matchDate, format: dateFormat });\r\n const timeLabel = matchDate && getAdjustedDate({ dateUtc: matchDate, format: timeFormat });\r\n\r\n const currentStateDateLabel =\r\n currentMatch?.matchDate && getAdjustedDate({ dateUtc: currentMatch.matchDate, format: dateFormat });\r\n const currentStateTimeLabel =\r\n currentMatch?.matchDate && getAdjustedDate({ dateUtc: currentMatch.matchDate, format: timeFormat });\r\n const formattedDateLabel = isUsingState && currentStateDateLabel ? currentStateDateLabel : dateLabel;\r\n const formattedTimeLabel = isUsingState && currentStateTimeLabel ? currentStateTimeLabel : timeLabel;\r\n const formattedLocationLabel =\r\n isUsingState && currentMatch?.location?.placeName ? currentMatch?.location?.placeName : locationLabel;\r\n\r\n return { formattedDateLabel, formattedLocationLabel, formattedTimeLabel };\r\n};\r\n\r\nexport const getDrawCardSelectOptions = ({ selectableTeams, teamMatch, teamMatchesInRound }) => {\r\n if (!selectableTeams) return { options: [] };\r\n const availableTeams = getAvailableTeams({ selectableTeams, teamMatchesInRound, teamMatch });\r\n\r\n return availableTeams.map((team) => {\r\n const label = getNameWithSeed({ team });\r\n\r\n return {\r\n id: team.id,\r\n label,\r\n };\r\n });\r\n};\r\n\r\nconst getFindTeamMatchID = ({ rounds, teamMatchId }) => {\r\n const flattenMatches = rounds.reduce((acc, cur) => {\r\n if (cur.teamMatches) {\r\n return [...acc, ...cur.teamMatches];\r\n }\r\n return acc;\r\n }, []);\r\n\r\n return flattenMatches.find((match) => match.teamMatchId === teamMatchId);\r\n};\r\n\r\n// Users can only select teams in round 1 of the main draw, this may change.\r\nexport const getRoundOneMainDrawTeamMatches = ({ draws }) => draws?.find((draw) => draw.number === MAIN_DRAW_TABLE_NUMBER)?.rounds?.find((round) => round.number === 1)?.teamMatches;\r\n\r\nexport const getTeamIDsFromTeamMatches = ({ teamMatches }) => teamMatches?.reduce((acc, cur) => {\r\n const teamIDs = [cur?.position1Team?.teamId, cur?.position2Team?.teamId];\r\n return [...acc, ...teamIDs];\r\n}, []).filter((id) => !!id);\r\n\r\nconst getSingleByeDoubleNullLabels = ({ dataFormatted, rounds, teamMatch, tbdWinnerLabel = null, displayTournamentBracketStyle = false }) => {\r\n const position1FromTeamMatchId = teamMatch?.position1FromTeamMatchId;\r\n const position2FromTeamMatchId = teamMatch?.position2FromTeamMatchId;\r\n\r\n const position1FromTeamMatch = getFindTeamMatchID({ rounds, teamMatchId: position1FromTeamMatchId });\r\n const position2FromTeamMatch = getFindTeamMatchID({ rounds, teamMatchId: position2FromTeamMatchId });\r\n\r\n const getTbdWinnerLabel = (position) => {\r\n let label;\r\n if (tbdWinnerLabel && displayTournamentBracketStyle) {\r\n label = `Winner ${tbdWinnerLabel} ${position}`;\r\n } else {\r\n label = TBD_ROUND;\r\n }\r\n return label;\r\n };\r\n\r\n let publishedPosition1Team;\r\n let publishedPosition2Team;\r\n switch (true) {\r\n case position1FromTeamMatch?.byeStatusTypeId > position2FromTeamMatch?.byeStatusTypeId:\r\n publishedPosition1Team = { name: BYE_ROUND, points: null };\r\n publishedPosition2Team = { name: getTbdWinnerLabel(2), points: null };\r\n break;\r\n\r\n case position2FromTeamMatch?.byeStatusTypeId > position1FromTeamMatch?.byeStatusTypeId:\r\n publishedPosition1Team = { name: getTbdWinnerLabel(1), points: null };\r\n publishedPosition2Team = { name: BYE_ROUND, points: null };\r\n break;\r\n\r\n default:\r\n publishedPosition1Team = { name: getTbdWinnerLabel(1), points: null };\r\n publishedPosition2Team = { name: getTbdWinnerLabel(2), points: null };\r\n break;\r\n }\r\n\r\n return {\r\n dataFormatted,\r\n publishedPosition1Team,\r\n publishedPosition2Team\r\n };\r\n};\r\n\r\nexport const getDataFormattedAndPublishedTeams = ({ dateLabel, locationLabel, options, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch }) => {\r\n const { position1Team, position2Team, byeStatusTypeId } = teamMatch;\r\n const isMainFirstRoundPublished = isMainDraw && roundNumber === 1 && hasPublishedSchedule;\r\n\r\n const labelPost1 = getNameWithSeed({ team: position1Team });\r\n const labelPost2 = getNameWithSeed({ team: position2Team });\r\n\r\n const { optionOne, optionTwo } = getFormattedDrawCardSelectOptions({ roundNumber, hasPublishedSchedule, position1TeamId: position1Team?.teamId, position2TeamId: position2Team?.teamId });\r\n\r\n const optionOneNullOrBye = !optionOne && byeStatusTypeId === SINGLE_ROUND_BYE ? BYE_ROUND : '';\r\n const optionTwoNullOrBye = !optionTwo && byeStatusTypeId === SINGLE_ROUND_BYE ? BYE_ROUND : '';\r\n\r\n const dataFormatted = {\r\n options,\r\n selectedOptions: {\r\n optionOne: optionOne || optionOneNullOrBye,\r\n optionTwo: optionTwo || optionTwoNullOrBye,\r\n },\r\n dateLabel,\r\n locationLabel,\r\n };\r\n\r\n let emptyByeTbdLabel;\r\n switch (true) {\r\n case isMainFirstRoundPublished:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === DOUBLE_ROUND_BYE:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === SINGLE_ROUND_BYE:\r\n if (position1Team || position2Team) {\r\n emptyByeTbdLabel = BYE_ROUND;\r\n } else {\r\n return getSingleByeDoubleNullLabels({ dataFormatted, rounds: totalRounds, teamMatch });\r\n }\r\n break;\r\n\r\n default:\r\n emptyByeTbdLabel = TBD_ROUND;\r\n break;\r\n }\r\n\r\n const publishedPosition1Team = { name: position1Team ? labelPost1 : emptyByeTbdLabel, points: position1Team?.points };\r\n const publishedPosition2Team = { name: position2Team ? labelPost2 : emptyByeTbdLabel, points: position2Team?.points };\r\n\r\n return { dataFormatted, publishedPosition1Team, publishedPosition2Team };\r\n};\r\n\r\nexport const getTeamPageDataFormattedAndPublishedTeams = ({ dateLabel, locationLabel, timeLabel, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch, previousRoundName, currentMatchIndex }) => {\r\n const { position1Team, position2Team, byeStatusTypeId } = teamMatch;\r\n const isFirstRound = roundNumber === 1;\r\n const isMainFirstRoundPublished = isMainDraw && isFirstRound && hasPublishedSchedule;\r\n\r\n const dataFormatted = {\r\n dateLabel,\r\n timeLabel,\r\n locationLabel,\r\n };\r\n\r\n let emptyByeTbdLabel;\r\n switch (true) {\r\n case isMainFirstRoundPublished:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === DOUBLE_ROUND_BYE:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === SINGLE_ROUND_BYE:\r\n if (position1Team || position2Team) {\r\n emptyByeTbdLabel = BYE_ROUND;\r\n } else {\r\n return getSingleByeDoubleNullLabels({ dataFormatted, rounds: totalRounds, teamMatch, previousRoundName, displayTournamentBracketStyle: true });\r\n }\r\n break;\r\n\r\n default:\r\n emptyByeTbdLabel = TBD_ROUND;\r\n break;\r\n }\r\n\r\n const getTbdWinnerMatchIndex = (matchIndex) => {\r\n return [matchIndex + matchIndex + 1, matchIndex + matchIndex + 2];\r\n };\r\n\r\n const getEmptyByeTbdLabel = (positionTeam, winnerLabel, positionIndex) => {\r\n let label;\r\n if (positionTeam) {\r\n label = positionTeam.name;\r\n } else if (winnerLabel) {\r\n label = `Winner ${previousRoundName} ${getTbdWinnerMatchIndex(currentMatchIndex)[positionIndex]}`;\r\n } else {\r\n label = emptyByeTbdLabel;\r\n }\r\n return label;\r\n };\r\n\r\n const publishedPosition1Team = { name: getEmptyByeTbdLabel(position1Team, previousRoundName, 0), points: position1Team?.points, seed: position1Team?.seed, href: position1Team?.teamId && `/teams/${position1Team?.teamId}` };\r\n const publishedPosition2Team = { name: getEmptyByeTbdLabel(position2Team, previousRoundName, 1), points: position2Team?.points, seed: position2Team?.seed, href: position2Team?.teamId && `/teams/${position2Team?.teamId}` };\r\n\r\n return { dataFormatted, publishedPosition1Team, publishedPosition2Team };\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nconst MOBILE_SIZE = 768;\r\nconst DESKTOP_SIZE = 1200;\r\n\r\nconst useIsMobile = () => {\r\n const [width, setWidth] = useState();\r\n const handleWindowSizeChange = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n\r\n useEffect(() => {\r\n setWidth(window.innerWidth);\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n };\r\n }, []);\r\n\r\n return width <= MOBILE_SIZE;\r\n};\r\n\r\nexport const useIsTablet = () => {\r\n const [width, setWidth] = useState();\r\n const handleWindowSizeChange = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n\r\n useEffect(() => {\r\n setWidth(window.innerWidth);\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n };\r\n }, []);\r\n\r\n return width >= MOBILE_SIZE && width <= DESKTOP_SIZE;\r\n};\r\n\r\nexport default useIsMobile;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { DrawCard } from '@universal-tennis/ui-shared';\r\nimport {\r\n FULL_PAGE_ROUNDS,\r\n ONE_ROUND,\r\n TBD_ROUND,\r\n getFormatedFields,\r\n getHideViewOnPublish,\r\n getDrawCardSelectOptions,\r\n getHideEditOnByes,\r\n getDataFormattedAndPublishedTeams,\r\n} from './utils';\r\nimport { useIsTablet } from '../../hooks/useIsMobile';\r\n\r\nconst TBDLabel = {\r\n name: TBD_ROUND,\r\n points: 0,\r\n};\r\n\r\nexport const useGetTableRowsData = ({\r\n selectableTeams,\r\n draw,\r\n totalRounds,\r\n onEditMatch,\r\n onViewMatch,\r\n onChangeClick,\r\n hasPublishedSchedule,\r\n isManaging,\r\n isMainDraw,\r\n}) => {\r\n const { rounds } = draw;\r\n const isTablet = useIsTablet();\r\n const [initialRoundIndex, setInitialRoundIndex] = useState(0);\r\n const [selectedHeaderRows, setSelectedHeaderRows] = useState([]);\r\n const [selectedTableRows, setSelectedTableRows] = useState([]);\r\n\r\n const getTableRows = () =>\r\n rounds &&\r\n rounds\r\n .map((round) => {\r\n const { number: roundNumber } = round;\r\n\r\n return round.teamMatches?.map((teamMatch) => {\r\n const { matchDate, location, position1Team, position2Team } = teamMatch;\r\n const { formatedDateLabel, formatedLocationLabel } = getFormatedFields({ teamMatch, location, matchDate });\r\n\r\n const isDisabled = !hasPublishedSchedule && roundNumber !== 1;\r\n const isScorelessMatch = !position1Team?.points && !position2Team?.points;\r\n\r\n const options = getDrawCardSelectOptions({ teamMatch, selectableTeams, teamMatchesInRound: round.teamMatches });\r\n const { dataFormatted, publishedPosition1Team, publishedPosition2Team } = getDataFormattedAndPublishedTeams({ dateLabel: formatedDateLabel, locationLabel: formatedLocationLabel, options, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch });\r\n\r\n const handleOnViewCard = () => {\r\n onViewMatch(teamMatch);\r\n };\r\n\r\n const hideViewOnPublish = getHideViewOnPublish({ roundNumber, handleOnViewCard, hasPosition1Team: position1Team, hasPosition2Team: position2Team });\r\n const hideEditOnPublish = getHideEditOnByes({ teamMatch, isDisabled, hasPublishedSchedule, onEditMatch, publishedPosition1Team, publishedPosition2Team, options: dataFormatted?.selectedOptions });\r\n\r\n if (hasPublishedSchedule) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isDisabled) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n onChangeClick({ selectedTeam, teamMatch })}\r\n emptyLabel=\"Select a team\"\r\n {...hideEditOnPublish}\r\n />\r\n );\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n const tableRows = getTableRows();\r\n const initialRounds = rounds\r\n ?.map((round) => ({\r\n name: round.name,\r\n }))\r\n ?.slice(initialRoundIndex, initialRoundIndex + FULL_PAGE_ROUNDS);\r\n const takeFirstThree = tableRows?.slice(initialRoundIndex, FULL_PAGE_ROUNDS + initialRoundIndex);\r\n\r\n setSelectedHeaderRows(initialRounds);\r\n setSelectedTableRows(takeFirstThree);\r\n }, [selectableTeams, draw, isTablet, hasPublishedSchedule, rounds, initialRoundIndex]);\r\n\r\n const handleOnForwardRoundClick = () => setInitialRoundIndex(initialRoundIndex + ONE_ROUND);\r\n const handleOnBackwardRoundClick = () => setInitialRoundIndex(initialRoundIndex - ONE_ROUND);\r\n\r\n const isShowingForward =\r\n !(initialRoundIndex + FULL_PAGE_ROUNDS === rounds?.length) &&\r\n initialRoundIndex !== rounds?.length - ONE_ROUND &&\r\n rounds?.length > FULL_PAGE_ROUNDS;\r\n\r\n const isShowingBackward = initialRoundIndex !== 0;\r\n\r\n return {\r\n tableRows: selectedTableRows,\r\n headerRows: selectedHeaderRows,\r\n handleOnForwardRoundClick,\r\n handleOnBackwardRoundClick,\r\n isShowingForward,\r\n isShowingBackward,\r\n };\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { TeamDrawCard } from '@universal-tennis/ui-shared';\r\nimport {\r\n FULL_PAGE_ROUNDS,\r\n ONE_ROUND,\r\n TBD_ROUND,\r\n getFormattedTeamPageDrawFields,\r\n getTeamPageDataFormattedAndPublishedTeams,\r\n} from './utils';\r\nimport { useIsTablet } from '../../hooks/useIsMobile';\r\n\r\nconst TBDLabel = {\r\n name: TBD_ROUND,\r\n points: 0,\r\n};\r\n\r\nexport const useGetTeamPageTableRowsData = ({\r\n selectableTeams,\r\n draw,\r\n totalRounds,\r\n hasPublishedSchedule,\r\n isMainDraw,\r\n}) => {\r\n const { rounds } = draw;\r\n const isTablet = useIsTablet();\r\n const [initialRoundIndex, setInitialRoundIndex] = useState(0);\r\n const [selectedHeaderRows, setSelectedHeaderRows] = useState([]);\r\n const [selectedTableRows, setSelectedTableRows] = useState([]);\r\n\r\n const getPreviousRoundName = (drawRounds, roundId) => {\r\n const roundIndex = drawRounds.findIndex((round) => round.id === roundId);\r\n\r\n if (roundIndex === -1 || roundIndex === 0) {\r\n return null;\r\n }\r\n\r\n const previousRound = drawRounds[roundIndex - 1];\r\n return previousRound.name;\r\n };\r\n\r\n const getTableRows = () =>\r\n rounds?.map((round) => {\r\n const { number: roundNumber } = round;\r\n\r\n return round.teamMatches?.map((teamMatch, index) => {\r\n const { matchDate = null, location = null, position1Team = null, position2Team = null, teamMatchId = '' } = teamMatch;\r\n const { formattedDateLabel = null, formattedLocationLabel = null, formattedTimeLabel = null } = getFormattedTeamPageDrawFields({ teamMatch, location, matchDate });\r\n\r\n const isNotFirstRound = roundNumber !== 1;\r\n const isDisabled = !hasPublishedSchedule && isNotFirstRound;\r\n const isScorelessMatch = !position1Team?.points && !position2Team?.points;\r\n const previousRoundName = getPreviousRoundName(rounds, round.id);\r\n const currentMatchIndex = index;\r\n const teamMatchLink = `/leagues/match/${teamMatchId}`;\r\n const showTeamMatchLink = position1Team !== null && position2Team !== null;\r\n\r\n const { dataFormatted = {}, publishedPosition1Team = {}, publishedPosition2Team = {} } = getTeamPageDataFormattedAndPublishedTeams({ dateLabel: formattedDateLabel, locationLabel: formattedLocationLabel, timeLabel: formattedTimeLabel, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch, previousRoundName, currentMatchIndex });\r\n\r\n if (hasPublishedSchedule) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isDisabled) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n const tableRows = getTableRows();\r\n const initialRounds = rounds\r\n ?.map((round) => ({\r\n name: round.name,\r\n }))\r\n ?.slice(initialRoundIndex, initialRoundIndex + FULL_PAGE_ROUNDS);\r\n const takeFirstThree = tableRows?.slice(initialRoundIndex, FULL_PAGE_ROUNDS + initialRoundIndex);\r\n\r\n setSelectedHeaderRows(initialRounds);\r\n setSelectedTableRows(takeFirstThree);\r\n }, [selectableTeams, draw, isTablet, hasPublishedSchedule, rounds, initialRoundIndex]);\r\n\r\n const handleOnForwardRoundClick = () => setInitialRoundIndex(initialRoundIndex + ONE_ROUND);\r\n const handleOnBackwardRoundClick = () => setInitialRoundIndex(initialRoundIndex - ONE_ROUND);\r\n\r\n const isShowingForward =\r\n !(initialRoundIndex + FULL_PAGE_ROUNDS === rounds?.length) &&\r\n initialRoundIndex !== rounds?.length - ONE_ROUND &&\r\n rounds?.length > FULL_PAGE_ROUNDS;\r\n\r\n const isShowingBackward = initialRoundIndex !== 0;\r\n\r\n return {\r\n tableRows: selectedTableRows,\r\n headerRows: selectedHeaderRows,\r\n handleOnForwardRoundClick,\r\n handleOnBackwardRoundClick,\r\n isShowingForward,\r\n isShowingBackward,\r\n };\r\n};\r\n","import React from 'react';\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { TeamDrawCardTable } from '@universal-tennis/ui-shared';\r\nimport { IconButton } from '@mui/material';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { useGetTeamPageTableRowsData } from '../useGetTeamPageTableRowsData';\r\n\r\nconst TeamPageDrawTable = ({\r\n draw,\r\n hasPublishedSchedule,\r\n isLoading,\r\n isMainDraw,\r\n totalRounds,\r\n isMobile,\r\n showMainDraw = true\r\n}) => {\r\n const { drawId } = draw;\r\n const { tableRows, headerRows, handleOnBackwardRoundClick, handleOnForwardRoundClick, isShowingForward, isShowingBackward } = useGetTeamPageTableRowsData({ draw, totalRounds, drawId, hasPublishedSchedule, isMainDraw });\r\n\r\n const TeamPageDrawCardTable = ;\r\n\r\n const ForwardBackwardButtons = (\r\n !isMobile && (\r\n \r\n \r\n {isShowingBackward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n {isShowingForward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n )\r\n );\r\n\r\n return (\r\n \r\n {isLoading ? () : (\r\n \r\n {\r\n (showMainDraw && isMainDraw) || (!showMainDraw && !isMainDraw) ? (\r\n <>\r\n {ForwardBackwardButtons}\r\n {TeamPageDrawCardTable}\r\n \r\n ) : null\r\n }\r\n \r\n )}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default TeamPageDrawTable;\r\n","import React from 'react';\r\n\r\nimport { useTheme, IconButton } from '@mui/material';\r\n\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport { Typography, DrawCardTable } from '@universal-tennis/ui-shared';\r\nimport { useGetTableRowsData } from './useGetTableRowsData';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport TeamPageDrawTable from './TeamPageDrawTable';\r\nimport { drawTablePropTypes } from '../../utils/proptypes';\r\n\r\nconst DrawTable = ({\r\n onEditMatch,\r\n onViewMatch,\r\n onChangeClick,\r\n draw,\r\n selectableTeams,\r\n hasPublishedSchedule,\r\n isUpdatingTeamMatch,\r\n isManaging,\r\n isLoading,\r\n isMainDraw,\r\n totalRounds,\r\n isMobile,\r\n displayTournamentBracketStyle,\r\n showMainDraw,\r\n}) => {\r\n const theme = useTheme();\r\n const { name, drawId } = draw;\r\n const { tableRows, headerRows, handleOnBackwardRoundClick, handleOnForwardRoundClick, isShowingForward, isShowingBackward } =\r\n useGetTableRowsData({\r\n draw,\r\n totalRounds,\r\n isUpdatingTeamMatch,\r\n selectableTeams,\r\n onEditMatch,\r\n onViewMatch,\r\n onChangeClick,\r\n drawId,\r\n hasPublishedSchedule,\r\n isManaging,\r\n isMainDraw,\r\n });\r\n\r\n return (\r\n <>\r\n {displayTournamentBracketStyle ? (\r\n \r\n ) : (\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {isShowingBackward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n {isShowingForward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nDrawTable.propTypes = {\r\n ...drawTablePropTypes,\r\n};\r\n\r\nexport default DrawTable;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\nimport Loading from '../LoadingIndicator';\r\nimport DrawTable from './DrawTable';\r\nimport useIsMobile from '../../hooks/useIsMobile';\r\nimport { MAIN_DRAW_TABLE_NUMBER, MANAGE_SESSION_PAGE_TYPE, getRoundOneMainDrawTeamMatches, getTeamIDsFromTeamMatches } from './utils';\r\nimport { drawTypes, getTypeForId } from '../../utils/types';\r\n\r\nconst getHasAllTeamsSelected = ({ selectableTeams, schedule }) => {\r\n if (!schedule) return false;\r\n const { draws } = schedule;\r\n\r\n const teamMatches = getRoundOneMainDrawTeamMatches({ draws });\r\n const teamMatchesIDs = getTeamIDsFromTeamMatches({ teamMatches });\r\n const selectedTeams = selectableTeams?.filter((team) => teamMatchesIDs?.includes(team.id));\r\n\r\n return selectedTeams?.length === selectableTeams?.length;\r\n};\r\n\r\nconst getHasATeamInAllMatches = ({ schedule }) => {\r\n if (!schedule) return false;\r\n const { draws } = schedule;\r\n\r\n const teamMatches = getRoundOneMainDrawTeamMatches({ draws });\r\n const matchesWithoutTeams = teamMatches?.filter((match) => !match.position1Team?.teamId && !match.position2Team?.teamId);\r\n\r\n return matchesWithoutTeams?.length === 0;\r\n};\r\n\r\nconst DrawTab = ({\r\n onDrawCreateClick,\r\n onDrawEditClick,\r\n onDrawPublishClick,\r\n onDrawUnpublishClick,\r\n onDrawDeleteClick,\r\n onEditMatch,\r\n onViewMatch,\r\n isLoading,\r\n isDrawDisabled,\r\n hasPublishPrivileges,\r\n hasPostedResults,\r\n selectableTeams,\r\n descriptionText,\r\n schedule,\r\n hasPublishedSchedule,\r\n onChangeClick,\r\n pageType,\r\n}) => {\r\n const isLoadingInitalState = isLoading && !schedule;\r\n const isDrawTable = !!schedule;\r\n const drawType = getTypeForId(schedule?.drawTypeId, drawTypes);\r\n const isMobile = useIsMobile();\r\n const hasAllTeamsSelected = useMemo(() => getHasAllTeamsSelected({ selectableTeams, schedule }), [schedule]);\r\n const hasATeamInAllMatches = useMemo(() => getHasATeamInAllMatches({ schedule }), [schedule]);\r\n const totalRounds = schedule?.draws?.reduce((acc, cur) => {\r\n if (!cur.rounds) return acc;\r\n return [...acc, ...cur.rounds];\r\n }, []);\r\n\r\n let isPublishDisabled;\r\n switch (true) {\r\n case !hasPublishPrivileges:\r\n isPublishDisabled = true;\r\n break;\r\n\r\n case !hasPublishedSchedule && !(hasAllTeamsSelected && hasATeamInAllMatches):\r\n isPublishDisabled = true;\r\n break;\r\n\r\n case hasPublishedSchedule && hasPostedResults:\r\n isPublishDisabled = true;\r\n break;\r\n\r\n default:\r\n isPublishDisabled = false;\r\n break;\r\n }\r\n\r\n const InitialState = isDrawTable ? (\r\n \r\n \r\n \r\n \r\n \r\n {drawType?.description}\r\n \r\n \r\n {descriptionText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {schedule?.draws?.map((draw) => {\r\n if (pageType === MANAGE_SESSION_PAGE_TYPE && draw.number !== 1 && !hasPublishedSchedule) return;\r\n if (pageType !== MANAGE_SESSION_PAGE_TYPE && !hasPublishedSchedule) return;\r\n\r\n return (\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n Create a tournament draw\r\n \r\n\r\n \r\n A draw structures how your tournament is played. A draw can be created once team registration has closed.\r\n \r\n\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {isLoadingInitalState ? : InitialState}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default DrawTab;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography, Button, SwapIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Stack from '@mui/material/Stack';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport Input from '../../../components/Form/Input';\r\nimport Location from '../../../components/Form/Location';\r\nimport DateTimePicker from '../../../components/Form/DateTimePicker';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nconst MatchEditModal = ({ isOpen, onClose, onSubmit, match, allowTeamSwap = false, isMultiRoundSession, isAttemptingToPostScore = false }) => {\r\n const theme = useTheme();\r\n const { PRIMARY, SECONDARY, DISPLAY } = SharedUICategories;\r\n const { MEDIUM_BOOK } = TypographySizes;\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalDescription, setOriginalDescription] = useState();\r\n const [originalDate, setOriginalDate] = useState();\r\n const [homeTeam, setHomeTeam] = useState();\r\n const [awayTeam, setAwayTeam] = useState();\r\n const defaultValues = { location: '', matchDate: '', description: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const hasUpdatedTeamPositions = homeTeam !== match?.position1Team && awayTeam !== match?.position2Team;\r\n const isUpdated = dirtyFields?.location || dirtyFields?.matchDate || dirtyFields?.description || hasUpdatedTeamPositions;\r\n\r\n useEffect(() => {\r\n if (match) {\r\n let matchDate = '';\r\n let matchLocation = '';\r\n let matchDescription = '';\r\n\r\n if (match?.matchDate) {\r\n matchDate = getAdjustedDate({ dateUtc: match.matchDate });\r\n setOriginalDate(match.matchDate);\r\n }\r\n\r\n if (match?.location) {\r\n matchLocation = match.location?.placeName || match.location?.formattedAddress || '';\r\n setOriginalLocation(match.location);\r\n }\r\n\r\n if (match?.description) {\r\n matchDescription = match.description || '';\r\n setOriginalDescription(match.description);\r\n }\r\n\r\n if (match?.position1Team) {\r\n setHomeTeam(match?.position1Team);\r\n }\r\n\r\n if (match?.position2Team) {\r\n setAwayTeam(match?.position2Team);\r\n }\r\n\r\n reset({ matchDate, location: matchLocation, description: matchDescription });\r\n }\r\n }, [match]);\r\n\r\n const handleOnSubmit = async (formValues) => {\r\n const teamMatch = { ...formValues, teamMatchId: match?.teamMatchId };\r\n\r\n if (dirtyFields.location) {\r\n teamMatch.location = await getLocationData(formValues.location);\r\n } else {\r\n teamMatch.location = originalLocation;\r\n }\r\n\r\n if (dirtyFields.description) {\r\n teamMatch.description = formValues.description;\r\n } else {\r\n teamMatch.description = originalDescription;\r\n }\r\n\r\n if (dirtyFields.matchDate) {\r\n teamMatch.matchDate = teamMatch.matchDate.toISOString();\r\n } else {\r\n teamMatch.matchDate = originalDate;\r\n }\r\n\r\n teamMatch.position1TeamId = homeTeam?.teamId;\r\n teamMatch.position2TeamId = awayTeam?.teamId;\r\n\r\n onSubmit(teamMatch);\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n if (isUpdated) {\r\n reset({ matchDate: originalDate, location: originalLocation?.placeName, description: originalDescription });\r\n setHomeTeam(match?.position1Team);\r\n setAwayTeam(match?.position2Team);\r\n }\r\n };\r\n\r\n const handleOnSwap = () => {\r\n setHomeTeam(awayTeam);\r\n setAwayTeam(homeTeam);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {isAttemptingToPostScore ? 'Enter match date' : 'Edit team match'}\r\n \r\n \r\n {isAttemptingToPostScore && (\r\n \r\n To enter a score you must first enter a valid match date\r\n \r\n )}\r\n \r\n \r\n {!isAttemptingToPostScore && }\r\n {!isAttemptingToPostScore && }\r\n \r\n \r\n {allowTeamSwap && isMultiRoundSession && !isAttemptingToPostScore && (\r\n <>\r\n \r\n Teams\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\nexport default MatchEditModal;\r\n","import React, { useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport ModalBaseWithHeader from './ModalBaseWithHeader';\r\nimport Select from '../Form/Select';\r\n\r\nconst MovePlayerModal = ({ availableTeams, onClose, open, onSubmit, isLoadingAvailableTeams }) => {\r\n const defaultValues = { teamId: '' };\r\n const {\r\n handleSubmit,\r\n formState,\r\n formState: { errors },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (formState.isSubmitSuccessful) {\r\n reset({ teamId: '' });\r\n }\r\n }, [formState, reset]);\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.teamId);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {isLoadingAvailableTeams && }\r\n {!!availableTeams.length && (\r\n <>\r\n \r\n Select the team to move the player to.\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\nexport default MovePlayerModal;\r\n","import React from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { playerWithdrawTypes } from '../../utils/types';\r\nimport { playerWithdrawModalPropTypes, defaultModalPropTypes } from '../../utils/proptypes';\r\nimport ModalBaseWithHeader from './ModalBaseWithHeader';\r\nimport Select from '../Form/Select';\r\n\r\nconst PlayerWithdrawModal = (props) => {\r\n const { onClose, open, onSubmit, canBeRefunded } = props;\r\n const defaultValues = { withdrawType: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.withdrawType);\r\n reset();\r\n };\r\n\r\n const selectOptions = canBeRefunded ? playerWithdrawTypes : [playerWithdrawTypes[0]];\r\n const message = canBeRefunded ? 'You can withdraw and/or refund a player from a session.' : 'You can withdraw a player from a session.';\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nPlayerWithdrawModal.propTypes = {\r\n ...playerWithdrawModalPropTypes\r\n};\r\n\r\nPlayerWithdrawModal.defaultProps = {\r\n ...defaultModalPropTypes\r\n};\r\n\r\nexport default PlayerWithdrawModal;\r\n","import React, { useState } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography, SinglePersonIcon, DoublePersonIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport MuiTableRow from '@mui/material/TableRow';\r\nimport TableSortLabel from '@mui/material/TableSortLabel';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { SortType, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getComparator } from '../../../utils/helpers';\r\nimport { genericTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst GenericTable = (props) => {\r\n const { headCells, tableData, isLoading, sortBy, rowComponent, isSortingDisabled = false } = props;\r\n const theme = useTheme();\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState(sortBy);\r\n const TableRow = rowComponent;\r\n const { SECONDARY } = SharedUICategories;\r\n const { XX_SMALL_MEDIUM_CAP } = TypographySizes;\r\n\r\n const handleRequestSort = (property) => (event) => {\r\n event.preventDefault();\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n return (\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell, index) => {\r\n const isFirstLabel = index === 0;\r\n const widthOfSortIcon = '22px';\r\n return (\r\n \r\n \r\n <>\r\n \r\n {headCell.label}\r\n \r\n {headCell.id === 'utrp-numeric-single' && (\r\n \r\n )}\r\n {headCell.id === 'utrp-numeric-double' && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData.sort(getComparator(sortOrder, orderProperty)).map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return ;\r\n })}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nGenericTable.propTypes = {\r\n ...genericTablePropTypes,\r\n};\r\n\r\nexport default GenericTable;\r\n","export default __webpack_public_path__ + \"static/media/icon-chat-blue.a83f17d4.svg\";","import React from 'react';\r\n\r\nimport UtrIcon from '../UtrIcon';\r\nimport ChatIcon from '../../../assets/icons/icon-chat-blue.svg';\r\nimport { messageIconPropTypes, defaultMessageIconPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { messageUser } from '../../../utils/helpers';\r\n\r\nconst MessageIcon = (props) => {\r\n const { memberId, displayName, style, size = '24px' } = props;\r\n\r\n const handleClick = () => {\r\n messageUser(memberId, displayName);\r\n };\r\n\r\n if (memberId && displayName) {\r\n return ;\r\n }\r\n return null;\r\n};\r\n\r\nMessageIcon.propTypes = {\r\n ...messageIconPropTypes\r\n};\r\n\r\nMessageIcon.defaultProps = {\r\n ...defaultMessageIconPropTypes\r\n};\r\n\r\nexport default MessageIcon;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport MuiTypography from '@mui/material/Typography';\r\n\r\nimport VerifiedIcon from '../../assets/icons/icon-verified-blue.svg';\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst PlayerUtr = ({ utr, isVerified, isAppended = false, isUpdatedDesign = false }) => {\r\n const theme = useTheme();\r\n const displayComponent = isUpdatedDesign ? {utr} : {utr};\r\n\r\n return isVerified ? (\r\n \r\n {displayComponent}\r\n \r\n \r\n ) : (\r\n displayComponent\r\n );\r\n};\r\n\r\nexport default PlayerUtr;\r\n","import React, { useState } from 'react';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\r\nimport { PlayerActionTypes } from '../../utils/types';\r\n\r\nconst ITEM_HEIGHT = 48;\r\n\r\nconst MoreMenu = ({ options, onOptionSelected, disableMove, disableCopy, isSubstitute }) => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const { MOVE_TO_TEAM, COPY_TO_TEAM, MARK_AS_ROSTERED, MARK_AS_SUBSTITUTE } = PlayerActionTypes;\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleOnItemSelected = (event) => {\r\n onOptionSelected(event.target.value);\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleOnClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const filteredOptions = isSubstitute\r\n ? options.filter((option) => option.id !== MARK_AS_SUBSTITUTE)\r\n : options.filter((option) => option.id !== MARK_AS_ROSTERED);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {filteredOptions.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default MoreMenu;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Stack from '@mui/material/Stack';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport GenericTable from '../GenericTable';\r\nimport MessageIcon from '../../Icons/MessageIcon';\r\nimport PlayerUtr from '../../PlayerUtr';\r\nimport MoreMenu from '../../MoreMenu';\r\nimport { getPlayerDisplayUtr, getDisplayUTRPRating } from '../../../utils/display';\r\nimport { getPlayerProfileUrl, getPlayerAvatarImage } from '../../../utils/helpers';\r\nimport { PlayerManageOptions, PlayerActionTypes, SportTypeIds } from '../../../utils/types';\r\nimport {\r\n managingPickleballHeadCells,\r\n managingTennisHeadCells,\r\n tennisHeadCells,\r\n pickleballHeadCells,\r\n SharedUICategories,\r\n TypographySizes,\r\n} from '../../../utils/constants';\r\n\r\nimport { playersTablePropTypes, playersTableDefaultPropTypes, playerTableRowPropTypes } from '../../../utils/proptypes';\r\n\r\nconst PlayersTable = ({\r\n teamPlayers = [],\r\n isLoading,\r\n onWithdrawPlayer,\r\n onMovePlayer,\r\n onCopyPlayer,\r\n onTogglePlayerStatus,\r\n isManaging = false,\r\n hasSessionEnded,\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK } = TypographySizes;\r\n const { WITHDRAW, MOVE_TO_TEAM, COPY_TO_TEAM, MARK_AS_ROSTERED, MARK_AS_SUBSTITUTE } = PlayerActionTypes;\r\n const [players, setPlayers] = useState([]);\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n useEffect(() => {\r\n const formattedPlayers = teamPlayers.map((player) => {\r\n const { isVerified, rating } = getPlayerDisplayUtr(player);\r\n const { isVerified: isVerifiedDoubles, rating: doublesUtr } = getPlayerDisplayUtr(player, true);\r\n const {\r\n memberId,\r\n teamId,\r\n firstName,\r\n lastName,\r\n wins,\r\n losses,\r\n location,\r\n gender,\r\n playerId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n canBeRefunded,\r\n isSubstitute,\r\n } = player || {};\r\n return {\r\n id: memberId,\r\n gender,\r\n playerId,\r\n teamId,\r\n name: `${firstName} ${lastName}`,\r\n matchesPlayed: wins + losses,\r\n location: location?.placeName || location?.formattedAddress || '',\r\n record: `${wins} - ${losses}`,\r\n doublesUtr,\r\n isVerifiedDoubles,\r\n singlesUtr: rating,\r\n isVerifiedSingles: isVerified,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n singlesUTRP: getDisplayUTRPRating(player),\r\n doublesUTRP: getDisplayUTRPRating(player, true),\r\n };\r\n });\r\n setPlayers(formattedPlayers);\r\n }, [teamPlayers]);\r\n\r\n const PlayerTableRow = ({ rowData, labelId }) => {\r\n const {\r\n doublesUtr,\r\n id,\r\n isVerifiedDoubles,\r\n isVerifiedSingles,\r\n matchesPlayed,\r\n name,\r\n playerId,\r\n profileImage,\r\n record,\r\n singlesUtr,\r\n teamId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n singlesUTRP,\r\n doublesUTRP,\r\n } = rowData;\r\n\r\n PlayerTableRow.propTypes = {\r\n ...playerTableRowPropTypes,\r\n };\r\n\r\n const handleOnMenuOptionSelected = (selectedOption) => {\r\n switch (selectedOption) {\r\n case WITHDRAW:\r\n onWithdrawPlayer(id, teamId, canBeRefunded);\r\n break;\r\n case MOVE_TO_TEAM:\r\n onMovePlayer(id, teamId);\r\n break;\r\n case COPY_TO_TEAM:\r\n onCopyPlayer(id, teamId);\r\n break;\r\n case MARK_AS_ROSTERED:\r\n case MARK_AS_SUBSTITUTE:\r\n onTogglePlayerStatus(id, teamId);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const avatarImage = getPlayerAvatarImage(profileImage);\r\n const playerUrl = getPlayerProfileUrl(playerId);\r\n\r\n PlayerTableRow.propTypes = {\r\n ...playerTableRowPropTypes,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isTennisMatch ? (\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 {singlesUTRP?.rating}\r\n \r\n \r\n \r\n \r\n {doublesUTRP?.rating}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {isManaging ? matchesPlayed : record}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isManaging && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const pickleballHeaderCells = isManaging ? managingPickleballHeadCells : pickleballHeadCells;\r\n const tennisHeaderCells = isManaging ? managingTennisHeadCells : tennisHeadCells;\r\n const headCells = isTennisMatch ? tennisHeaderCells : pickleballHeaderCells;\r\n\r\n return ;\r\n};\r\n\r\nPlayersTable.propTypes = {\r\n ...playersTablePropTypes,\r\n};\r\n\r\nPlayersTable.defaultProps = {\r\n ...playersTableDefaultPropTypes,\r\n};\r\n\r\nexport default PlayersTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { AvatarWithName, Typography, VerifiedIcon } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Stack from '@mui/material/Stack';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport GenericTable from '../../GenericTable';\r\nimport MessageIcon from '../../../Icons/MessageIcon';\r\nimport PlayerUtr from '../../../PlayerUtr';\r\nimport MoreMenu from '../../../MoreMenu';\r\nimport { getPlayerDisplayUtr, getDisplayUTRPRating } from '../../../../utils/display';\r\nimport { PlayerManageOptions, PlayerActionTypes, SportTypeIds } from '../../../../utils/types';\r\nimport {\r\n teamProfilePickleballHeadCells,\r\n teamProfileTennisHeadCells,\r\n SharedUICategories,\r\n TypographySizes,\r\n} from '../../../../utils/constants';\r\nimport { getPlayerAvatarImage, getPlayerProfileUrl } from '../../../../utils/helpers';\r\nimport { playerTablePropTypes, playersTableRowPropTypes } from '../../../../utils/proptypes';\r\n\r\n// This component will replace all PlayerTable components once the new designs are gradually added\r\n\r\nconst PlayersTable = ({\r\n teamPlayers = [],\r\n isLoading,\r\n onWithdrawPlayer,\r\n onMovePlayer,\r\n onCopyPlayer,\r\n onTogglePlayerStatus,\r\n isManaging = false,\r\n isSubstitutePlayers = false,\r\n hasSessionEnded,\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK } = TypographySizes;\r\n const { WITHDRAW, MOVE_TO_TEAM, COPY_TO_TEAM, MARK_AS_ROSTERED, MARK_AS_SUBSTITUTE } = PlayerActionTypes;\r\n const [players, setPlayers] = useState([]);\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n useEffect(() => {\r\n const formattedPlayers = teamPlayers.map((player) => {\r\n const { isVerified, rating } = getPlayerDisplayUtr(player);\r\n const { isVerified: isVerifiedDoubles, rating: doublesUtr } = getPlayerDisplayUtr(player, true);\r\n const {\r\n memberId,\r\n teamId,\r\n firstName,\r\n lastName,\r\n playerId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n canBeRefunded,\r\n isSubstitute,\r\n profileImage,\r\n record,\r\n } = player || {};\r\n return {\r\n id: memberId,\r\n playerId,\r\n teamId,\r\n name: `${firstName} ${lastName}`,\r\n doublesUtr,\r\n isVerifiedDoubles,\r\n singlesUtr: rating,\r\n isVerifiedSingles: isVerified,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n profileImage,\r\n singlesUTRP: getDisplayUTRPRating(player),\r\n doublesUTRP: getDisplayUTRPRating(player, true),\r\n singlesRecord: `${record?.singlesWins}-${record?.singlesLosses}`,\r\n doublesRecord: `${record?.doublesWins}-${record?.doublesLosses}`,\r\n };\r\n });\r\n setPlayers(formattedPlayers);\r\n }, [teamPlayers]);\r\n\r\n const PlayerTableRow = ({ rowData, labelId }) => {\r\n const {\r\n doublesUtr,\r\n id,\r\n isVerifiedDoubles,\r\n isVerifiedSingles,\r\n name,\r\n profileImage,\r\n playerId,\r\n singlesUtr,\r\n teamId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n singlesUTRP,\r\n doublesUTRP,\r\n singlesRecord,\r\n doublesRecord,\r\n } = rowData;\r\n\r\n PlayerTableRow.propTypes = {\r\n ...playersTableRowPropTypes,\r\n };\r\n\r\n const handleOnMenuOptionSelected = (selectedOption) => {\r\n switch (selectedOption) {\r\n case WITHDRAW:\r\n onWithdrawPlayer(id, teamId, canBeRefunded);\r\n break;\r\n case MOVE_TO_TEAM:\r\n onMovePlayer(id, teamId);\r\n break;\r\n case COPY_TO_TEAM:\r\n onCopyPlayer(id, teamId);\r\n break;\r\n case MARK_AS_ROSTERED:\r\n case MARK_AS_SUBSTITUTE:\r\n onTogglePlayerStatus(id, teamId);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const avatarImage = getPlayerAvatarImage(profileImage);\r\n const playerUrl = getPlayerProfileUrl(playerId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTennisMatch ? (\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 {singlesUTRP?.rating}\r\n \r\n {singlesUTRP?.displayVerifiedIcon && }\r\n \r\n {singlesUTRP?.reliability !== 'Reliable' && (\r\n \r\n {singlesUTRP?.reliability}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {doublesUTRP?.rating}\r\n \r\n {doublesUTRP?.displayVerifiedIcon && }\r\n \r\n {doublesUTRP?.reliability !== 'Reliable' && (\r\n \r\n {doublesUTRP?.reliability}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {singlesRecord}\r\n \r\n \r\n \r\n \r\n {doublesRecord}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isManaging && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const nameHeadCell = { id: 'name', label: isSubstitutePlayers ? 'Substitute Player' : 'Rostered Player' };\r\n const headCells = isTennisMatch ? [nameHeadCell, ...teamProfileTennisHeadCells] : [nameHeadCell, ...teamProfilePickleballHeadCells];\r\n\r\n return ;\r\n};\r\n\r\nPlayersTable.propTypes = {\r\n ...playerTablePropTypes,\r\n};\r\n\r\nexport default PlayersTable;\r\n","export const groupPlayersByStatus = (players) => {\r\n return players.reduce(\r\n (statuses, player) => {\r\n statuses[player.isSubstitute ? 'substitutes' : 'rostered'].push(player);\r\n return statuses;\r\n },\r\n { substitutes: [], rostered: [] }\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport PlayersTable from '../../Tables/PlayersTable/PlayersTable';\r\n\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { useGetPlayersQuery } from '../../../api/leaguesApi';\r\nimport { groupPlayersByStatus } from '../../../utils/teams';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { playersTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst PlayersTab = ({ teamId = '', isCaptainView = false, onMessageAllPlayers = () => {} }) => {\r\n const dispatch = useDispatch();\r\n const [teamPlayers, setTeamPlayers] = useState({});\r\n const { data: players, isLoading, error } = useGetPlayersQuery(teamId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n useEffect(() => {\r\n if (players?.length) {\r\n const groupedPlayers = groupPlayersByStatus(players);\r\n setTeamPlayers(groupedPlayers);\r\n }\r\n }, [players]);\r\n\r\n const handleOnMessageAllClick = () => {\r\n onMessageAllPlayers();\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n {isCaptainView && !isLoading && (\r\n \r\n )}\r\n {!!teamPlayers?.rostered?.length && (\r\n \r\n \r\n \r\n )}\r\n {!!teamPlayers?.substitutes?.length && (\r\n \r\n \r\n \r\n )}\r\n {!isLoading && !teamPlayers?.rostered?.length && !teamPlayers?.substitutes?.length && (\r\n \r\n {' '}\r\n No players have registered for this team\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nPlayersTab.propTypes = {\r\n ...playersTabPropTypes,\r\n};\r\n\r\nexport default PlayersTab;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport FormControl from '@mui/material/FormControl';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayersTable from '../Tables/PlayersTable';\r\nimport PlayerTab from './PlayersTab';\r\n\r\nimport { groupPlayersByStatus } from '../../utils/teams';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useGetPlayersQuery, useGetSessionTeamsQuery } from '../../api/leaguesApi';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { playerTabPropTypes } from '../../utils/proptypes';\r\n\r\nconst PlayersTab = ({\r\n sessionId,\r\n onWithdrawPlayer,\r\n onMovePlayer,\r\n onCopyPlayer,\r\n onTogglePlayerStatus,\r\n isManaging = false,\r\n hasSessionEnded,\r\n isUpdating,\r\n displaySinglesAndDoublesRecord,\r\n}) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { MEDIUM_MEDIUM } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [teamId, setTeamId] = useState('');\r\n const [teams, setTeams] = useState([]);\r\n const [players, setPlayers] = useState([]);\r\n\r\n const {\r\n data: teamPlayers,\r\n isLoading: isLoadingPlayers,\r\n error: playersError,\r\n isFetchingPlayers,\r\n } = useGetPlayersQuery(teamId, { skip: !teamId });\r\n const { data: sessionTeams, isFetching: isLoadingSessionTeams, error: teamsError } = useGetSessionTeamsQuery(sessionId);\r\n\r\n const isLoading = isUpdating || isLoadingPlayers || isLoadingSessionTeams || isFetchingPlayers;\r\n\r\n if (teamsError) {\r\n dispatch(showErrorPopup(teamsError));\r\n }\r\n\r\n if (playersError) {\r\n dispatch(showErrorPopup(playersError));\r\n }\r\n\r\n useEffect(() => {\r\n if (sessionTeams) {\r\n const teamSelections = sessionTeams?.teams?.map((team) => {\r\n return {\r\n id: team.id,\r\n description: team.name,\r\n };\r\n });\r\n setTeams(teamSelections);\r\n }\r\n }, [sessionTeams]);\r\n\r\n useEffect(() => {\r\n if (teamPlayers) {\r\n const groupedPlayers = groupPlayersByStatus(teamPlayers);\r\n setPlayers(groupedPlayers);\r\n }\r\n }, [teamPlayers]);\r\n\r\n const handleOnTeamChange = (event) => {\r\n setTeamId(event.target.value);\r\n };\r\n\r\n const showNoResults = !players?.rostered?.length && !players?.substitutes?.length && teamId && !isLoading;\r\n const isFirstSearch = !teamId && !players?.length && !isLoading;\r\n\r\n const renderContent = () => {\r\n return (\r\n <>\r\n {isFirstSearch && (\r\n \r\n Select team from dropdown.\r\n \r\n )}\r\n {showNoResults && (\r\n \r\n No players have registered for this team.\r\n \r\n )}\r\n {!!players?.rostered?.length && (\r\n \r\n {displaySinglesAndDoublesRecord ? (\r\n \r\n ) : (\r\n <>\r\n \r\n Rostered\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!!players?.substitutes?.length && (\r\n \r\n {displaySinglesAndDoublesRecord ? (\r\n \r\n ) : (\r\n <>\r\n \r\n Substitutes\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {!teams?.length && !isLoading ? (\r\n \r\n \r\n No teams have been created for this session.\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Select Team\r\n \r\n \r\n {isLoading ? : renderContent()}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nPlayersTab.propTypes = {\r\n ...playerTabPropTypes,\r\n};\r\n\r\nexport default PlayersTab;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport moment from 'moment';\r\n\r\nimport { SwapNoBorderIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport DatePicker from '@mui/lab/DatePicker';\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport Location from '../Form/Location';\r\nimport Select from '../Form/Select';\r\nimport TimePicker from '../Form/TimePicker';\r\nimport FullPageModal from '../Modals/FullPageModal';\r\n\r\nimport { getLocationData } from '../../utils/location';\r\nimport { defaultGridSpacing } from '../../utils/constants';\r\nimport { addTeamMatchModalPropTypes } from '../../utils/proptypes';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useGetSessionTeamsQuery, useAddTeamMatchMutation } from '../../api/leaguesApi';\r\n\r\nconst AddTeamMatchModal = ({\r\n sessionId = '',\r\n isOpen = false,\r\n onClose,\r\n roundId = '',\r\n onSaveClick,\r\n scheduleId = '',\r\n refetchSessionSchedule,\r\n session,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const [matchStartDate, setMatchStartDate] = useState('');\r\n const [awayTeam, setAwayTeam] = useState('');\r\n const [homeTeam, setHomeTeam] = useState('');\r\n const [selectedHomeTeam, setSelectedHomeTeam] = useState('');\r\n const [selectedAwayTeam, setSelectedAwayTeam] = useState('');\r\n const [teams, setTeams] = useState([]);\r\n const [onAddTeamMatch] = useAddTeamMatchMutation({ scheduleId });\r\n\r\n const getDateTimeString = (date, time) => {\r\n const tIndex = time.indexOf('T');\r\n const formattedTime = time.slice(tIndex);\r\n return `${date}${formattedTime}`;\r\n };\r\n\r\n const { data: sessionTeams, isFetching: isLoadingSessionTeams, error: teamsError } = useGetSessionTeamsQuery(sessionId);\r\n\r\n if (teamsError) {\r\n dispatch(showErrorPopup(teamsError));\r\n }\r\n\r\n const defaultValues = {\r\n position1TeamId: '',\r\n position2TeamId: '',\r\n matchLocation: '',\r\n matchStartDate: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n reset,\r\n formState: { errors, dirtyFields, isValid, isDirty },\r\n control,\r\n } = useForm({ defaultValues: { ...defaultValues }, mode: 'all' });\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const manualMultiweekRound = { ...formValues };\r\n manualMultiweekRound.matchStartTimeUtc = moment(manualMultiweekRound.matchStartTimeUtc, 'hh:mm:ss');\r\n\r\n const dateStr = matchStartDate.toISOString();\r\n const date = moment(dateStr).utc().format('YYYY-MM-DD');\r\n const time = manualMultiweekRound.matchStartTimeUtc.toISOString();\r\n\r\n if (dirtyFields.matchLocation) {\r\n const formattedLocation = await getLocationData(manualMultiweekRound.matchLocation);\r\n manualMultiweekRound.matchLocation = formattedLocation;\r\n }\r\n\r\n const payload = {\r\n roundId,\r\n position1TeamId: homeTeam,\r\n position2TeamId: awayTeam !== '' ? awayTeam : null,\r\n matchDateTime: getDateTimeString(date, time),\r\n matchLocation: manualMultiweekRound.matchLocation,\r\n };\r\n\r\n try {\r\n await onAddTeamMatch({\r\n scheduleId,\r\n newMatch: payload,\r\n }).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n\r\n reset(defaultValues);\r\n };\r\n\r\n const handleOnCustomStartDateChange = (date) => {\r\n setMatchStartDate(date);\r\n };\r\n\r\n const handleOnAwayTeamChange = (event) => {\r\n const selectedTeam = event?.target?.value;\r\n setSelectedAwayTeam(selectedTeam);\r\n setAwayTeam(selectedTeam);\r\n };\r\n\r\n const handleOnHomeTeamChange = (event) => {\r\n const selectedTeam = event?.target?.value;\r\n setSelectedHomeTeam(selectedTeam);\r\n setHomeTeam(selectedTeam);\r\n };\r\n\r\n const handleOnSwapTeams = () => {\r\n const tempHomeTeam = selectedHomeTeam;\r\n setSelectedHomeTeam(selectedAwayTeam);\r\n setSelectedAwayTeam(tempHomeTeam);\r\n\r\n // Update displayed teams in the dropdowns\r\n setHomeTeam(selectedAwayTeam);\r\n setAwayTeam(tempHomeTeam);\r\n };\r\n\r\n useEffect(() => {\r\n if (sessionTeams) {\r\n const teamSelections = sessionTeams?.teams.map((team) => {\r\n return {\r\n id: team.id,\r\n description: team.name,\r\n };\r\n });\r\n setTeams(teamSelections);\r\n }\r\n }, [sessionTeams]);\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const clearForm = () => {\r\n reset(defaultValues);\r\n setHomeTeam('');\r\n setAwayTeam('');\r\n setMatchStartDate('');\r\n };\r\n\r\n const handleOnClose = () => {\r\n clearForm();\r\n onClose();\r\n };\r\n\r\n const shouldDisableDate = (date) => {\r\n const sessionStartDate = moment(session?.startDateUtc);\r\n const sessionEndDate = moment(session?.endDateUtc);\r\n const currentDate = moment(date).startOf('day');\r\n return currentDate.isBefore(sessionStartDate?.startOf('day')) || currentDate?.isAfter(sessionEndDate.endOf('day'));\r\n };\r\n const isCtaButtonDisabled = matchStartDate === '' || !isValid || homeTeam === null || homeTeam === undefined || !isDirty;\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n }\r\n shouldDisableDate={shouldDisableDate}\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 {teams?.length && !isLoadingSessionTeams && (\r\n team.id !== selectedHomeTeam)}\r\n labelId=\"away-team-select\"\r\n isFullWidth\r\n control={control}\r\n hasError={!!errors.position2TeamId}\r\n value={awayTeam}\r\n onSelectChange={handleOnAwayTeamChange}\r\n disabled={teams.length === 1}\r\n sx={{ mb: 3 }}\r\n />\r\n )}\r\n {teams?.length && !isLoadingSessionTeams && (\r\n team.id !== selectedAwayTeam)}\r\n labelId=\"home-team-select\"\r\n isFullWidth\r\n control={control}\r\n hasError={!!errors.position1TeamId}\r\n value={homeTeam}\r\n onSelectChange={handleOnHomeTeamChange}\r\n isRequired\r\n helperText=\"Required\"\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\nAddTeamMatchModal.propTypes = {\r\n ...addTeamMatchModalPropTypes,\r\n};\r\n\r\nexport default AddTeamMatchModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport UIButton from '@mui/material/Button';\r\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Stack from '@mui/material/Stack';\r\n\r\nimport { PlayerAvailabilityStatusTypes, PlayerAvailabilityStatus, PlayerAvailabilityColors } from '../../utils/types';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst PlayerAvailabilityResponse = ({ onAvailabilityChange, currentUserData, error }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { YES, MAYBE, NO } = PlayerAvailabilityStatusTypes;\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [availabilityStatus, setAvailabilityStatus] = useState();\r\n const [userTeamMemberId, setUserTeamMemberId] = useState();\r\n const [showAvailabilityOptions, setShowAvailabilityOptions] = useState(false);\r\n const [showRsvpStatus, setShowRsvpStatus] = useState(false);\r\n const [buttonColor, setButtonColor] = useState('');\r\n const open = Boolean(anchorEl);\r\n\r\n const getColorForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return PlayerAvailabilityColors.GREEN;\r\n case MAYBE:\r\n return PlayerAvailabilityColors.ORANGE;\r\n case NO:\r\n return PlayerAvailabilityColors.RED;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (currentUserData) {\r\n const { playerAvailabilityStatusTypeId, teamMemberId } = currentUserData || {};\r\n const isUserMemberOfTeam = !!teamMemberId;\r\n\r\n if (isUserMemberOfTeam && playerAvailabilityStatusTypeId) {\r\n setShowRsvpStatus(true);\r\n setShowAvailabilityOptions(false);\r\n setAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n const color = getColorForAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n setButtonColor(color);\r\n } else if (isUserMemberOfTeam && !playerAvailabilityStatusTypeId) {\r\n setShowAvailabilityOptions(true);\r\n }\r\n setUserTeamMemberId(teamMemberId);\r\n }\r\n }, [currentUserData]);\r\n\r\n useEffect(() => {\r\n if (error) {\r\n const { playerAvailabilityStatusTypeId } = currentUserData || {};\r\n if (currentUserData?.playerAvailabilityStatusTypeId) {\r\n setAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n const color = getColorForAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n setButtonColor(color);\r\n } else {\r\n setShowAvailabilityOptions(true);\r\n setShowRsvpStatus(false);\r\n }\r\n }\r\n }, [error]);\r\n\r\n const handleOnRsvpClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleOnAvailabilityChange = (status) => {\r\n const color = getColorForAvailabilityStatus(status);\r\n\r\n setButtonColor(color);\r\n setAvailabilityStatus(status);\r\n\r\n if (showAvailabilityOptions) {\r\n setShowAvailabilityOptions(false);\r\n setShowRsvpStatus(true);\r\n }\r\n\r\n if (anchorEl) {\r\n setAnchorEl(null);\r\n }\r\n\r\n onAvailabilityChange({ teamMemberId: userTeamMemberId, availabilityStatus: status });\r\n };\r\n\r\n const handleOnClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const rsvpStatus = PlayerAvailabilityStatus[availabilityStatus];\r\n return (\r\n <>\r\n {showRsvpStatus && (\r\n <>\r\n }\r\n onClick={handleOnRsvpClick}\r\n >\r\n {`RSVP:${rsvpStatus}`}\r\n \r\n \r\n handleOnAvailabilityChange(YES)}>\r\n Yes\r\n \r\n handleOnAvailabilityChange(MAYBE)}>\r\n Maybe\r\n \r\n handleOnAvailabilityChange(NO)}>\r\n No\r\n \r\n \r\n \r\n\r\n )}\r\n {showAvailabilityOptions && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvailabilityResponse;\r\n","import React from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport Link from '@mui/material/Link';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../../utils/constants';\r\nimport { teamMatchLinkPropTypes } from '../../../../utils/proptypes';\r\n\r\nconst TeamMatchLink = ({ teamMatchLink, roundName, isMultiWeekByDate }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK } = TypographySizes;\r\n\r\n return (\r\n \r\n {!isMultiWeekByDate && (\r\n \r\n {roundName}\r\n \r\n )}\r\n \r\n Team Match\r\n \r\n \r\n );\r\n};\r\n\r\nTeamMatchLink.propTypes = {\r\n ...teamMatchLinkPropTypes,\r\n};\r\n\r\nexport default TeamMatchLink;\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\n\r\nconst arrowStyles = {\r\n borderTop: '10px solid transparent',\r\n borderBottom: '10px solid transparent',\r\n borderLeft: '10px solid white',\r\n height: 0,\r\n width: 0\r\n};\r\nconst rectangleStyles = {\r\n background: 'white',\r\n height: 20,\r\n width: 3\r\n};\r\n\r\nconst blackArrowStyles = {\r\n borderTop: '8px solid transparent',\r\n borderBottom: '8px solid transparent',\r\n borderLeft: '8px solid black',\r\n height: 0,\r\n width: 0\r\n};\r\n\r\nconst blackRectangleStyles = {\r\n background: 'black',\r\n height: 16,\r\n width: 3\r\n};\r\n\r\nconst WinnerIndicator = ({ sx, isBlack }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WinnerIndicator;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport { SquareAvatarWithName, Typography, DeleteIcon, EditIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport PlayerAvailabilityResponse from '../../PlayerAvailabilityResponse';\r\nimport TeamMatchLink from './TeamMatchLink';\r\nimport WinnerIndicator from '../../WinnerIndicator';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { StyledGrid } from '../../Styled';\r\nimport { scheduleMatchCardPropTypes, defaultScheduleMatchCardPropTypes } from '../../../utils/proptypes';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { useUpdatePlayerAvailabilityStatusMutation } from '../../../api/leaguesApi';\r\n\r\nconst ScheduleMatchCard = ({\r\n match,\r\n round,\r\n isLeagueDeskSchedule = false,\r\n onEditMatch,\r\n onDeleteMatch,\r\n matchNumber = null,\r\n isMultiWeekByDate = false,\r\n}) => {\r\n const { teamMatchId, matchDate, location, position1Team, position2Team, winnerTeamId } = match;\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { DISPLAY, PRIMARY, SECONDARY } = SharedUICategories;\r\n const { LARGE, MEDIUM_BOOK, MEDIUM_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const [userAvailabilityData, setUserAvailabilityData] = useState();\r\n const [isUserOnBothTeams, setIsUserOnBothTeams] = useState();\r\n const [showAvailability, setShowAvailability] = useState();\r\n\r\n const day = getAdjustedDate({ dateUtc: matchDate, format: 'D' });\r\n const month = getAdjustedDate({ dateUtc: matchDate, format: 'MMM' });\r\n const time = getAdjustedDate({ dateUtc: matchDate, format: 'h:mm A' });\r\n const isPosition1Winner = position1Team.teamId === winnerTeamId;\r\n const isPosition2Winner = position2Team.teamId === winnerTeamId;\r\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'));\r\n const teamNameGridItemWidth = '200px';\r\n const isMediumAndUpScreen = useMediaQuery(theme.breakpoints.up('md'));\r\n const maxLinkWidth = isMediumAndUpScreen ? teamNameGridItemWidth : 'auto';\r\n const mediumScreenMargin = isMediumScreen ? 2 : 0;\r\n const teamMatchLink = `/leagues/match/${teamMatchId}`;\r\n const roundName = round ? round?.name : match?.round?.roundName;\r\n const hasNoScoresPosted = position1Team?.points === 0 && position2Team?.points === 0;\r\n const widthOfFirstGridItem = '90px';\r\n const borderRightStyles = `1px solid ${theme.appColors.lightGrey}`;\r\n const displayMatchActions = isLeagueDeskSchedule && !match?.hasPostedScores && !isMultiWeekByDate;\r\n\r\n const [updatePlayerAvailability, { error: playerAvailabilityError }] = useUpdatePlayerAvailabilityStatusMutation();\r\n\r\n useEffect(() => {\r\n if (match) {\r\n const { requestingMemberPlayerAvailability: userAvailabilityPosition1 } = match?.position1Team || {};\r\n const { requestingMemberPlayerAvailability: userAvailabilityPosition2 } = match?.position2Team || {};\r\n const showAvailabilityOptions = !!userAvailabilityPosition1 || !!userAvailabilityPosition2;\r\n const isUserMemberOfBothTeams = !!userAvailabilityPosition1?.teamMemberId && !!userAvailabilityPosition2?.teamMemberId;\r\n\r\n if (isUserMemberOfBothTeams || !!userAvailabilityPosition1) {\r\n setUserAvailabilityData(userAvailabilityPosition1);\r\n } else if (userAvailabilityPosition2) {\r\n setUserAvailabilityData(userAvailabilityPosition2);\r\n }\r\n\r\n setShowAvailability(showAvailabilityOptions);\r\n setIsUserOnBothTeams(isUserMemberOfBothTeams);\r\n }\r\n }, [match]);\r\n\r\n const getWinnerFontSize = (isPositionWinner) => {\r\n if (isPositionWinner) {\r\n return MEDIUM_MEDIUM;\r\n }\r\n return MEDIUM_BOOK;\r\n };\r\n\r\n const getWinnerFontColor = (isPositionWinner) => {\r\n if (isPositionWinner) {\r\n return theme.appColors.black;\r\n }\r\n return theme.appColors.blueGrey;\r\n };\r\n\r\n const handleOnPlayerAvailabilityChange = async ({ teamMemberId, availabilityStatus }) => {\r\n let teamMemberIds = [teamMemberId];\r\n\r\n if (isUserOnBothTeams) {\r\n teamMemberIds = [\r\n position1Team?.requestingMemberPlayerAvailability?.teamMemberId,\r\n position2Team?.requestingMemberPlayerAvailability?.teamMemberId,\r\n ];\r\n }\r\n\r\n try {\r\n await updatePlayerAvailability({\r\n teamMemberIds,\r\n playerAvailabilityStatusId: availabilityStatus,\r\n teamMatchId: parseInt(teamMatchId),\r\n }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnEditClick = () => {\r\n onEditMatch(match);\r\n };\r\n\r\n const handleOnDeleteClick = () => {\r\n onDeleteMatch(teamMatchId, round?.name, matchNumber);\r\n };\r\n\r\n const ByeMatch = () => {\r\n return (\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 {displayMatchActions && (\r\n \r\n \r\n handleOnDeleteClick()} aria-label=\"Delete team match\">\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {location ? (\r\n \r\n \r\n \r\n \r\n \r\n {`${month} ${day}`}\r\n \r\n \r\n {time}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isPosition2Winner && }\r\n \r\n \r\n {hasNoScoresPosted ? '—' : position2Team.points}\r\n \r\n \r\n \r\n {isPosition1Winner && }\r\n \r\n \r\n {hasNoScoresPosted ? '—' : position1Team.points}\r\n \r\n \r\n \r\n \r\n \r\n {location.placeName}\r\n \r\n \r\n {location.formattedAddress}\r\n \r\n \r\n {showAvailability && (\r\n \r\n \r\n \r\n )}\r\n {displayMatchActions && (\r\n \r\n \r\n <>\r\n \r\n \r\n \r\n handleOnDeleteClick()} aria-label=\"Delete team match\">\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\nScheduleMatchCard.propTypes = {\r\n ...scheduleMatchCardPropTypes,\r\n};\r\n\r\nScheduleMatchCard.defaultProps = {\r\n ...defaultScheduleMatchCardPropTypes,\r\n};\r\n\r\nexport default ScheduleMatchCard;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { useTheme } from '@mui/material';\r\nimport Box from '@mui/material/Box';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport { AddIcon, Button, Typography, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport ScheduleMatchCard from '../Cards/ScheduleMatchCard';\r\n\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { multiWeekByRoundPropTypes } from '../../utils/proptypes';\r\n\r\nconst MultiWeekRound = ({ round, onEditMatch, onDeleteMatch, isLeagueDeskSchedule, onDeleteRound, onAddTeamMatch, teams, isManaging }) => {\r\n const theme = useTheme();\r\n const { SMALL_BOOK } = TypographySizes;\r\n const { SECONDARY, LINK } = SharedUICategories;\r\n const roundMatches = [...(round?.matches || {})];\r\n const sortedRoundMatches = useMemo(() => {\r\n const sortMatches = (matches) => matches?.sort((a, b) => new Date(a.matchDate) - new Date(b.matchDate));\r\n return sortMatches([...roundMatches]);\r\n }, [roundMatches]);\r\n const roundHasNoPostedScores = !round?.hasPostedScores;\r\n\r\n const handleOnEditClick = (match) => {\r\n onEditMatch(match);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {round?.name}\r\n \r\n {roundHasNoPostedScores && isManaging && (\r\n onDeleteRound(round?.id, round?.name)}>\r\n \r\n \r\n )}\r\n \r\n {sortedRoundMatches.map((match, index) => {\r\n const matchNumber = index + 1;\r\n return (\r\n \r\n );\r\n })}\r\n {isManaging && (\r\n onAddTeamMatch(round?.id)}\r\n startIcon={}\r\n category={LINK}\r\n disabled={!teams?.length}\r\n >\r\n \r\n Add a team match\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nMultiWeekRound.propTypes = {\r\n ...multiWeekByRoundPropTypes,\r\n};\r\n\r\nexport default MultiWeekRound;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport ScheduleMatchCard from '../Cards/ScheduleMatchCard';\r\n\r\nimport { multiWeekByDatePropTypes } from '../../utils/proptypes';\r\n\r\nconst MultiWeekByDate = ({ scheduleByDate, onEditMatch, isLeagueDeskSchedule }) => {\r\n const { teamMatches } = scheduleByDate || [];\r\n\r\n const handleOnEditClick = (match) => {\r\n onEditMatch(match);\r\n };\r\n\r\n return (\r\n \r\n {teamMatches?.map((match) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nMultiWeekByDate.propTypes = {\r\n ...multiWeekByDatePropTypes,\r\n};\r\n\r\nexport default MultiWeekByDate;\r\n","import React from 'react';\r\n\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport { TypographySizes, SharedUICategories } from '../../../../utils/constants';\r\n\r\nconst TeamPageDrawTableSelect = ({ selectedValue = true, onChange }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK } = TypographySizes;\r\n return (\r\n \r\n \r\n \r\n Main Draw\r\n Back Draw\r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default TeamPageDrawTableSelect;\r\n","import React, { useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport AddTeamMatchModal from '../AddTeamMatchModal';\r\nimport MultiWeekRound from '../MultiWeekRound';\r\nimport MultiWeekByDate from '../MultiWeekByDate';\r\nimport DrawTable from '../DrawTab/DrawTable';\r\nimport useIsMobile from '../../hooks/useIsMobile';\r\nimport { MAIN_DRAW_TABLE_NUMBER, MANAGE_SESSION_PAGE_TYPE } from '../DrawTab/utils';\r\nimport { MultiRoundScheduleTypes } from '../../utils/types';\r\nimport TeamPageDrawTableSelect from '../DrawTab/TeamPageDrawTable/TeamPageDrawTableSelect';\r\nimport { schedulePropTypes } from '../../utils/proptypes';\r\n\r\nconst Schedule = ({\r\n seasonRounds,\r\n isManaging = false,\r\n onEditMatch,\r\n onDeleteMatch,\r\n isLeagueDeskSchedule = false,\r\n drawSchedule,\r\n isSchedulePublished,\r\n pageType,\r\n scheduleByDate,\r\n multiRoundScheduleType,\r\n displayTournamentBracketStyle,\r\n sessionId,\r\n onDeleteRound,\r\n scheduleId,\r\n refetchSessionSchedule,\r\n teams,\r\n session,\r\n}) => {\r\n const isMobile = useIsMobile();\r\n const navigate = useNavigate();\r\n const [showAddTeamMatchModal, setShowAddTeamMatchModal] = useState(false);\r\n const [roundId, setRoundId] = useState();\r\n const [showMainDraw, setShowMainDraw] = useState(true);\r\n const { BY_ROUND, BY_DATE } = MultiRoundScheduleTypes;\r\n const hasSeasonRounds =\r\n !!seasonRounds?.length && multiRoundScheduleType === BY_ROUND && (pageType === MANAGE_SESSION_PAGE_TYPE || isSchedulePublished);\r\n const hasDrawSchedule = drawSchedule?.draws.length && isSchedulePublished;\r\n const hasMultiRoundScheduleByDate = !!scheduleByDate?.teamMatches?.length && multiRoundScheduleType === BY_DATE;\r\n const totalRounds = drawSchedule?.draws.reduce((acc, cur) => {\r\n if (!cur.rounds) return acc;\r\n return [...acc, ...cur.rounds];\r\n }, []);\r\n\r\n const handleOnEditMatch = (match) => {\r\n onEditMatch(match);\r\n };\r\n\r\n const handleOnAddTeamMatch = (roundIdToSet) => {\r\n setRoundId(roundIdToSet);\r\n setShowAddTeamMatchModal(true);\r\n };\r\n\r\n const handleOnCloseAddTeamMatchModal = () => {\r\n setShowAddTeamMatchModal(false);\r\n };\r\n\r\n const handleOnViewDrawMatchClick = (match) => {\r\n navigate(`/leagues/match/${match?.teamMatchId}`);\r\n };\r\n\r\n return (\r\n <>\r\n {displayTournamentBracketStyle && hasDrawSchedule && (\r\n {\r\n setShowMainDraw(e.target.value);\r\n }}\r\n />\r\n )}\r\n {hasSeasonRounds &&\r\n seasonRounds.map((round) => (\r\n \r\n ))}\r\n \r\n {hasMultiRoundScheduleByDate && (\r\n \r\n )}\r\n {hasDrawSchedule &&\r\n drawSchedule?.draws.map((draw) => {\r\n if (!isSchedulePublished) return;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nSchedule.propTypes = {\r\n ...schedulePropTypes,\r\n};\r\n\r\nexport default Schedule;\r\n","import React from 'react';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport InputLabel from '@mui/material/InputLabel';\r\n\r\nimport { multiRoundScheduleTypes } from '../../../utils/types';\r\n\r\nconst MultiRoundScheduleSelect = (props) => {\r\n const { scheduleType, disabled, onChange } = props;\r\n\r\n return (\r\n \r\n Select Schedule View\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MultiRoundScheduleSelect;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport MultiRoundScheduleSelect from '../../../../components/Form/MultiRoundScheduleSelect';\r\n\r\nimport { MultiRoundScheduleTypes } from '../../../../utils/types';\r\nimport { TypographySizes, SharedUICategories } from '../../../../utils/constants';\r\nimport { manageSessionActionsPropTypes } from '../../../../utils/proptypes';\r\n\r\nconst SessionActions = ({\r\n onAddRound,\r\n onAddTeamClick,\r\n onGenerateSchedule,\r\n onCreateSchedule,\r\n onPublish,\r\n onUnpublishSchedule,\r\n onScheduleChange,\r\n onDeleteSchedule,\r\n isCreatingManualSchedule,\r\n hasPostedScores,\r\n isLoadingSchedule = false,\r\n isScheduleCreated = false,\r\n isSchedulePublished = false,\r\n multiRoundScheduleType,\r\n teams = [],\r\n maxTeamsCount = null,\r\n hasSessionEnded = false,\r\n}) => {\r\n const theme = useTheme();\r\n const { DISPLAY, SECONDARY, PRIMARY, PRIMARY_EXPANDED } = SharedUICategories;\r\n const { BY_ROUND } = MultiRoundScheduleTypes;\r\n const { MEDIUM_BOOK, SMALL_BOOK } = TypographySizes;\r\n const paperStyles = { px: 2.5, pb: 2.5, pt: 2, width: '300px' };\r\n const displayManualScheduleSelect = isSchedulePublished && isScheduleCreated;\r\n const isTeamActionsDisabled = teams.length === maxTeamsCount || hasSessionEnded;\r\n\r\n return (\r\n <>\r\n {!isScheduleCreated && !isCreatingManualSchedule && (\r\n \r\n \r\n \r\n Auto generate schedule?\r\n \r\n \r\n Select this option to automatically create a balanced schedule. Each team will play a set number of matches,\r\n with an even mix of home and away games, based on your initial settings.\r\n \r\n \r\n \r\n \r\n \r\n Manually create schedule?\r\n \r\n \r\n Choose this option if you prefer to build your schedule from scratch. You'll control the number of rounds,\r\n team matches per round, and which teams face off in each match.\r\n \r\n \r\n \r\n \r\n )}\r\n {isScheduleCreated && (\r\n \r\n \r\n {displayManualScheduleSelect && (\r\n \r\n )}\r\n \r\n {multiRoundScheduleType === BY_ROUND && (\r\n \r\n \r\n \r\n \r\n \r\n {isSchedulePublished ? (\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\nSessionActions.propTypes = {\r\n ...manageSessionActionsPropTypes,\r\n};\r\n\r\nexport default SessionActions;\r\n","import React from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\n\r\nimport RadioGroup from '../Form/RadioGroup';\r\nimport Select from '../Form/Select';\r\n\r\nimport { tennisSessionStandingsOptions, pickleballSessionStandingsOptions, SessionStandingsTypes } from '../../utils/types';\r\nimport { getNewRoundNumberOptions } from '../../utils/helpers';\r\nimport { addScheduleRoundPopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst AddScheduleRoundPopup = ({\r\n rounds = [],\r\n open = false,\r\n onClose,\r\n title = '',\r\n insertRoundMessage = '',\r\n teamStandingsMessage = '',\r\n errorMessage = '',\r\n buttonLabel = '',\r\n onAction,\r\n actionLabel,\r\n isTennis = false,\r\n disableAddRoundButton,\r\n}) => {\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const radioGroupOptions = isTennis ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n const defaultSessionStandingType = isTennis ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD;\r\n const newRoundNumberOptions = rounds && getNewRoundNumberOptions(rounds);\r\n const firstRound = 1;\r\n\r\n const defaultValues = {\r\n newRoundNumber: firstRound,\r\n sessionStandingTypeId: defaultSessionStandingType,\r\n };\r\n const { handleSubmit, control, reset } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleOnAddRound = () => {\r\n handleSubmit(onAction)();\r\n };\r\n\r\n const handleOnClose = () => {\r\n reset(defaultValues);\r\n onClose();\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {!!title && (\r\n \r\n {title}\r\n \r\n )}\r\n {rounds?.length > 0 && (\r\n \r\n \r\n {insertRoundMessage}\r\n \r\n \r\n \r\n )}\r\n \r\n {teamStandingsMessage}\r\n \r\n \r\n {!!errorMessage && (\r\n \r\n {errorMessage}\r\n \r\n )}\r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nAddScheduleRoundPopup.propTypes = {\r\n ...addScheduleRoundPopupPropTypes,\r\n};\r\n\r\nexport default AddScheduleRoundPopup;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { getSessionRounds } from '../utils/sessions';\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { showPopup } from '../redux/genericPopupSlice';\r\nimport {\r\n useGetSessionScheduleQuery,\r\n useLazyGetSessionScheduleByDateQuery,\r\n useCreateScheduleMutation,\r\n useRemoveScheduleMutation,\r\n useUpdateUnpublishScheduleMutation,\r\n usePublishScheduleMutation\r\n} from '../api/leaguesApi';\r\nimport { ResponseStatuses } from '../utils/constants';\r\nimport { ScheduleStatuses, MultiRoundScheduleTypes } from '../utils/types';\r\n\r\nconst useSessionSchedule = ({ sessionId, showDraftSchedule, isMultiRoundSession, skipFetch = false }) => {\r\n const dispatch = useDispatch();\r\n const { NOT_FOUND } = ResponseStatuses;\r\n const { PUBLISHED } = ScheduleStatuses;\r\n const { BY_ROUND, BY_DATE } = MultiRoundScheduleTypes;\r\n const [drawSchedule, setDrawSchedule] = useState();\r\n const [hasPostedScores, setHasPostedScores] = useState(false);\r\n const [isScheduleCreated, setIsScheduleCreated] = useState(false);\r\n const [isSchedulePublished, setIsSchedulePublished] = useState(false);\r\n const [multiRoundScheduleType, setMultiRoundScheduleType] = useState(BY_ROUND);\r\n const [scheduleByDate, setScheduleByDate] = useState();\r\n const [scheduleId, setScheduleId] = useState();\r\n const [scheduleRounds, setScheduleRounds] = useState();\r\n\r\n const {\r\n data: schedule,\r\n isFetching: isFetchingSchedule,\r\n refetch: refetchSessionSchedule,\r\n error: scheduleError,\r\n } = useGetSessionScheduleQuery({ sessionId, showDraftSchedule }, { skip: isMultiRoundSession === null || skipFetch });\r\n const [getScheduleByDate, { data: dateSchedule, isFetching: isFetchingScheduleByDate, error: dateScheduleError, }] = useLazyGetSessionScheduleByDateQuery();\r\n const [createSchedule, { isLoading: isCreatingSchedule }] = useCreateScheduleMutation();\r\n const [removeSchedule] = useRemoveScheduleMutation();\r\n const [unpublishSchedule] = useUpdateUnpublishScheduleMutation();\r\n const [publishSchedule, { isLoading: isPublishingSchedule }] = usePublishScheduleMutation();\r\n const isLoadingSchedule = isFetchingSchedule || isFetchingScheduleByDate || isPublishingSchedule || isCreatingSchedule;\r\n\r\n const getMappedSchedule = (data) => {\r\n if (isMultiRoundSession) {\r\n setScheduleRounds(getSessionRounds(data));\r\n } else {\r\n setDrawSchedule(data);\r\n }\r\n };\r\n\r\n const resetSchedule = () => {\r\n setIsScheduleCreated(false);\r\n setDrawSchedule(null);\r\n setScheduleRounds(null);\r\n setScheduleByDate(null);\r\n setScheduleId(null);\r\n setMultiRoundScheduleType(BY_ROUND);\r\n };\r\n\r\n const onCreateSchedule = async () => {\r\n try {\r\n const scheduleData = await createSchedule({ sessionId }).unwrap();\r\n if (scheduleData) {\r\n getMappedSchedule(scheduleData);\r\n setScheduleId(scheduleData?.scheduleId);\r\n setIsScheduleCreated(true);\r\n setIsSchedulePublished(false);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onDeleteSchedule = async () => {\r\n try {\r\n await removeSchedule({ scheduleId, sessionId });\r\n resetSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onPublishSchedule = async (scheduleData) => {\r\n const scheduleType = isMultiRoundSession ? 'schedule' : 'draw';\r\n try {\r\n await publishSchedule({ scheduleId, sessionId, data: scheduleData }).unwrap();\r\n setIsSchedulePublished(true);\r\n dispatch(showPopup({ title: 'Success!', message: `The session ${scheduleType} has been published!` }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onUnpublishSchedule = async () => {\r\n try {\r\n await unpublishSchedule({ scheduleId, sessionId });\r\n setIsSchedulePublished(false);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onGetScheduleByDate = async (scheduleType) => {\r\n if (scheduleType === BY_DATE) {\r\n try {\r\n const response = await getScheduleByDate({ sessionId, showDraftSchedule });\r\n if (response) {\r\n setScheduleByDate(response?.data);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n\r\n setMultiRoundScheduleType(scheduleType);\r\n };\r\n\r\n if (dateScheduleError) {\r\n const hasError = dateScheduleError?.status !== NOT_FOUND;\r\n if (hasError) {\r\n dispatch(showErrorPopup(dateScheduleError));\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (schedule) {\r\n const { scheduleId: id, hasPostedScores: hasScoresPosted, statusId } = schedule || {};\r\n setHasPostedScores(hasScoresPosted);\r\n setScheduleId(id);\r\n setIsSchedulePublished(statusId === PUBLISHED);\r\n setIsScheduleCreated(true);\r\n getMappedSchedule(schedule);\r\n }\r\n\r\n if (dateSchedule) {\r\n const { scheduleId: id, hasPostedScores: hasScoresPosted, statusId } = dateSchedule || {};\r\n setScheduleByDate(dateSchedule);\r\n setHasPostedScores(hasScoresPosted);\r\n setScheduleId(id);\r\n setIsSchedulePublished(statusId === PUBLISHED);\r\n }\r\n }, [schedule, dateSchedule]);\r\n\r\n useEffect(() => {\r\n if (scheduleError) {\r\n if (scheduleError?.status === NOT_FOUND) {\r\n resetSchedule();\r\n } else {\r\n dispatch(showErrorPopup(scheduleError));\r\n }\r\n }\r\n }, [scheduleError]);\r\n\r\n return {\r\n scheduleId,\r\n scheduleRounds,\r\n scheduleByDate,\r\n drawSchedule,\r\n hasPostedScores,\r\n isCreatingSchedule,\r\n isLoadingSchedule,\r\n isScheduleCreated,\r\n isSchedulePublished,\r\n isPublishingSchedule,\r\n onCreateSchedule,\r\n onDeleteSchedule,\r\n onPublishSchedule,\r\n onUnpublishSchedule,\r\n onGetScheduleByDate,\r\n refetchSessionSchedule,\r\n multiRoundScheduleType\r\n };\r\n};\r\n\r\nexport default useSessionSchedule;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Popup from '../../../components/Popups/Popup';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport Schedule from '../../../components/Schedule';\r\nimport SessionActions from './SessionActions';\r\nimport MatchEditModal from '../../TeamMatchPage/MatchEditModal';\r\nimport ConfirmPublishSchedulePopup from '../../../components/Popups/ConfirmPublishSchedulePopup';\r\nimport AddScheduleRoundPopup from '../../../components/Popups/AddScheduleRoundPopup';\r\n\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { LeagueSessionTypes, SportTypeIds } from '../../../utils/types';\r\nimport { getRoundCount, getTooManyMatchesPerTeamError } from '../../../utils/sessions';\r\nimport {\r\n useUpdateTeamMatchSummaryMutation,\r\n useCreateEmptyScheduleMutation,\r\n useAddScheduleRoundMutation,\r\n useRemoveScheduleRoundMutation,\r\n useRemoveTeamMatchMutation,\r\n} from '../../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { MANAGE_SESSION_PAGE_TYPE } from '../../../components/DrawTab/utils';\r\nimport useSessionSchedule from '../../../hooks/useSessionSchedule';\r\nimport { manageSessionScheduleTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst SCHEDULE_CREATION_MORE_MATCHES_TEXT =\r\n 'There are more matches per team than weeks in the session. All match dates will default to the session start date. Please be sure to update match times prior to publishing';\r\n\r\nconst ScheduleTab = ({ session, isLoadingSession, onAddTeamClick, teams, maxTeamsCount, hasSessionEnded }) => {\r\n const dispatch = useDispatch();\r\n const { startDateUtc, endDateUtc, id: sessionId, sessionTypeId, matchesPerTeam } = session;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const { TENNIS } = SportTypeIds;\r\n const teamCount = teams?.length;\r\n const [isCreatingManualSchedule, setIsCreatingManualSchedule] = useState(false);\r\n const [showGeneratePopup, setShowGeneratePopup] = useState(false);\r\n const [showPublishPopup, setShowPublishPopup] = useState(false);\r\n const [showAddRoundPopup, setShowAddRoundPopup] = useState(false);\r\n const [showDeleteRoundPopup, setShowDeleteRoundPopup] = useState(false);\r\n const [showDeleteMatchPopup, setShowDeleteMatchPopup] = useState(false);\r\n const [showUnpublishPopup, setShowUnpublishPopup] = useState(false);\r\n const [roundIdToDelete, setRoundIdToDelete] = useState();\r\n const [roundName, setRoundName] = useState();\r\n const [matchNumber, setMatchNumber] = useState();\r\n const [matchIdToDelete, setMatchIdToDelete] = useState();\r\n const [showDeleteSchedulePopup, setShowDeleteSchedulePopup] = useState(false);\r\n const [matchToUpdate, setMatchToUpdate] = useState(null);\r\n const [showEditMatchModal, setShowEditMatchModal] = useState(false);\r\n\r\n const isMultiRoundSession = sessionTypeId === MULTI_ROUND;\r\n const dateFormat = 'll';\r\n const startDate = getAdjustedDate({ dateUtc: startDateUtc, format: dateFormat });\r\n const endDate = getAdjustedDate({ dateUtc: endDateUtc, format: dateFormat });\r\n const roundCount = getRoundCount(teamCount, matchesPerTeam);\r\n const schedulePopupMessage = `Using the ${teamCount} teams in this session, we will generate a schedule with ${roundCount} rounds from ${startDate} - ${endDate}.`;\r\n const publishPopupMessage =\r\n 'Publishing will make the schedule viewable to the public. The schedule can be modified until the first match score is posted.';\r\n const insertRoundMessage = 'Where would you like to insert this round?';\r\n const teamStandingsMessage = 'How would you like team standings to be calculated?';\r\n const deletePopupMessage = 'Are you sure you want to delete this schedule?';\r\n const confirmPublishCheckboxMessage = 'Notify teams that the schedule has been published';\r\n const unpublishPopupMessage = 'Are you sure you want to Unpublish this Schedule?';\r\n\r\n const [updateTeamMatchSummary, { isLoading: isUpdatingSummary }] = useUpdateTeamMatchSummaryMutation();\r\n const [onCreateEmptySchedule] = useCreateEmptyScheduleMutation({ sessionId });\r\n const {\r\n scheduleId,\r\n scheduleRounds,\r\n scheduleByDate,\r\n drawSchedule,\r\n hasPostedScores,\r\n isLoadingSchedule,\r\n isScheduleCreated,\r\n isSchedulePublished,\r\n onCreateSchedule,\r\n onDeleteSchedule,\r\n onGetScheduleByDate,\r\n onPublishSchedule,\r\n onUnpublishSchedule,\r\n multiRoundScheduleType,\r\n refetchSessionSchedule,\r\n } = useSessionSchedule({ sessionId, showDraftSchedule: true, isMultiRoundSession });\r\n\r\n const [onAddScheduleRound, { isLoading: isAddingRound }] = useAddScheduleRoundMutation({ scheduleId });\r\n const [onDeleteRound] = useRemoveScheduleRoundMutation();\r\n const [onRemoveMatch] = useRemoveTeamMatchMutation();\r\n\r\n const isTennis = session.sportTypeId === TENNIS;\r\n const isLoading = isLoadingSession || isLoadingSchedule || isUpdatingSummary;\r\n\r\n const handleOnScheduleChange = (event) => {\r\n const scheduleType = event?.target?.value;\r\n onGetScheduleByDate(scheduleType);\r\n };\r\n\r\n const handleOnGenerateSchedule = () => {\r\n setShowGeneratePopup(true);\r\n };\r\n\r\n const handleOnCreateSchedule = async () => {\r\n setIsCreatingManualSchedule(true);\r\n try {\r\n await onCreateEmptySchedule(sessionId).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnConfirmGenerateSchedule = () => {\r\n setShowGeneratePopup(false);\r\n onCreateSchedule();\r\n };\r\n\r\n const handleOnConfirmPublishSchedule = ({ isNotifyingTeams }) => {\r\n setShowPublishPopup(false);\r\n onPublishSchedule({ notifyTeams: isNotifyingTeams });\r\n };\r\n\r\n const handleOnPublish = () => {\r\n setShowPublishPopup(true);\r\n };\r\n\r\n const handleOnUnpublish = () => {\r\n setShowUnpublishPopup(true);\r\n };\r\n\r\n const handleOnDeleteSchedule = () => {\r\n setShowDeleteSchedulePopup(true);\r\n };\r\n\r\n const handleOnConfirmDeleteSchedule = async () => {\r\n onDeleteSchedule();\r\n setShowDeleteSchedulePopup(false);\r\n setIsCreatingManualSchedule(false);\r\n };\r\n\r\n const handleOnCloseGeneratePopup = () => {\r\n setShowGeneratePopup(false);\r\n };\r\n\r\n const handleOnClosePublishPopup = () => {\r\n setShowPublishPopup(false);\r\n };\r\n\r\n const handleOnEditMatch = (match) => {\r\n setMatchToUpdate(match);\r\n setShowEditMatchModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditMatchModal(false);\r\n };\r\n\r\n const handleOnEditSubmit = async (teamMatch) => {\r\n setShowEditMatchModal(false);\r\n try {\r\n await updateTeamMatchSummary({ teamMatchId: matchToUpdate.teamMatchId, sessionId, scheduleId, teamMatch }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnDisplayAddRound = () => {\r\n setShowAddRoundPopup(true);\r\n };\r\n\r\n const handleOnAddRound = async (newRound) => {\r\n if (!isAddingRound) {\r\n try {\r\n await onAddScheduleRound({\r\n scheduleId,\r\n newRound,\r\n }).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n setShowAddRoundPopup(false);\r\n };\r\n\r\n const handleOnCloseAddRoundPopup = async () => {\r\n setShowAddRoundPopup(false);\r\n };\r\n\r\n const handleOnDeleteRound = (roundId, name) => {\r\n setRoundIdToDelete(roundId);\r\n setRoundName(name);\r\n setShowDeleteRoundPopup(true);\r\n };\r\n\r\n const handleOnConfirmDeleteRound = async () => {\r\n try {\r\n await onDeleteRound({ scheduleId, roundId: roundIdToDelete }).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowDeleteRoundPopup(false);\r\n };\r\n\r\n const handleOnDeleteMatch = (teamMatchId, round, matchIndex) => {\r\n setMatchIdToDelete(teamMatchId);\r\n setRoundName(round);\r\n setMatchNumber(matchIndex);\r\n setShowDeleteMatchPopup(true);\r\n };\r\n\r\n const handleOnConfirmDeleteTeamMatch = async () => {\r\n try {\r\n await onRemoveMatch({ teamMatchId: matchIdToDelete });\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowDeleteMatchPopup(false);\r\n };\r\n\r\n const handleOnUnpublishSchedule = async () => {\r\n try {\r\n await onUnpublishSchedule();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowUnpublishPopup(false);\r\n };\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError(session);\r\n\r\n return (\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n setShowDeleteSchedulePopup(false)}\r\n title=\"Delete Schedule\"\r\n message={deletePopupMessage}\r\n />\r\n \r\n setShowDeleteRoundPopup(false)}\r\n title=\"Delete Round\"\r\n message={`Are you sure you wish to remove ${roundName} from the schedule? This could result in teams having different numbers of matches for the season.`}\r\n />\r\n setShowDeleteMatchPopup(false)}\r\n title=\"Delete Team Match\"\r\n message={`Are you sure you wish to remove team match ${matchNumber} from ${roundName}? This could result in teams having different numbers of matches for the season.`}\r\n />\r\n setShowUnpublishPopup(false)}\r\n title=\"Unpublish Schedule\"\r\n message={unpublishPopupMessage}\r\n />\r\n \r\n );\r\n};\r\n\r\nScheduleTab.propTypes = {\r\n ...manageSessionScheduleTabPropTypes,\r\n};\r\n\r\nexport default ScheduleTab;\r\n","import React from 'react';\r\n\r\nimport { AvatarWithName, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { getPlayerAvatarImage, getPlayerProfileUrl } from '../../../utils/helpers';\r\nimport { manageSessionCaptainCardPropTypes } from '../../../utils/proptypes';\r\n\r\nconst ManageSessionCaptainCard = ({ captain, onRemoveClick }) => {\r\n const theme = useTheme();\r\n const { displayName, memberId, playerId, profileImage, location } = captain;\r\n const href = getPlayerProfileUrl(playerId);\r\n\r\n const handleOnRemoveClick = () => {\r\n onRemoveClick(captain);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {location?.display}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nManageSessionCaptainCard.propTypes = {\r\n ...manageSessionCaptainCardPropTypes,\r\n};\r\n\r\nexport default ManageSessionCaptainCard;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Button, AddIcon, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Paper from '@mui/material/Paper';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\n\r\nimport ManageSessionCaptainCard from '../Cards/ManageSessionCaptainCard';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport Popup from '../Popups/Popup';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\nimport { manageSessionTeamCaptainPropTypes } from '../../utils/proptypes';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\n\r\nconst ManageSessionTeamCaptain = ({\r\n captains = [],\r\n isUpdatingCaptains = false,\r\n isLoadingTeam = false,\r\n onAddCaptain,\r\n onRemoveCaptain,\r\n isRequired = false,\r\n maxCaptains = null,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const { SMALL_BOOK } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [originalCaptains, setOriginalCaptains] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [showCaptainSearch, setShowCaptainSearch] = useState(false);\r\n const [isRemovingCaptain, setIsRemovingCaptain] = useState(false);\r\n const [captainAwaitingAction, setCaptainAwaitingAction] = useState();\r\n const minimumAmountOfCaptainsNeeded = 1;\r\n const maximumAmountOfCaptains = maxCaptains || 3;\r\n const maxCaptainsAdded = captains?.length === maximumAmountOfCaptains && captains[0] !== null;\r\n\r\n useEffect(() => {\r\n if (captains?.length > 0) {\r\n const mappedMembers = mapMembersForPlayerSearch(captains);\r\n setOriginalCaptains(mappedMembers);\r\n }\r\n }, [captains]);\r\n\r\n const isPermittedToRemoveCaptain = () => {\r\n if (captains?.length === minimumAmountOfCaptainsNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: 'There must always be at least one captain',\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnAddCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(false);\r\n setShowConfirmationPopup(true);\r\n setShowCaptainSearch(false);\r\n };\r\n\r\n const handleOnRemoveCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveCaptain = isPermittedToRemoveCaptain();\r\n if (isAbleToRemoveCaptain) {\r\n onRemoveCaptain(captainAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n if (!maxCaptainsAdded) {\r\n onAddCaptain(captainAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnAddCaptainClick = () => {\r\n setShowCaptainSearch((prevStatus) => !prevStatus);\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingCaptain ? 'Remove' : 'Add';\r\n const popupAction = isRemovingCaptain ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} captain`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${captainAwaitingAction?.displayName} as a captain?`;\r\n const displayMaxCaptainsAddedText = maxCaptainsAdded;\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {isUpdatingCaptains ? (\r\n \r\n ) : (\r\n originalCaptains?.map((captain) => (\r\n \r\n ))\r\n )}\r\n \r\n {showCaptainSearch && (\r\n \r\n \r\n \r\n )}\r\n {!maxCaptainsAdded && (\r\n }\r\n >\r\n \r\n Add a team captain\r\n \r\n \r\n )}\r\n \r\n {displayMaxCaptainsAddedText && (\r\n \r\n Max captains added\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nManageSessionTeamCaptain.propTypes = {\r\n ...manageSessionTeamCaptainPropTypes,\r\n};\r\n\r\nexport default ManageSessionTeamCaptain;\r\n","import React, { useState } from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport TextField from '@mui/material/TextField';\r\nimport Visibility from '@mui/icons-material/Visibility';\r\nimport VisibilityOff from '@mui/icons-material/VisibilityOff';\r\n\r\nconst PasswordInput = (props) => {\r\n const { control, name, label, error, isRequired = false, helperText } = props;\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n return (\r\n (\r\n \r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n ),\r\n }}\r\n label={label}\r\n />\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default PasswordInput;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { Box } from '@mui/material';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport ManageSessionTeamCaptain from '../../../components/ManageSessionTeamCaptain';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport FullPageModal from '../../../components/Modals/FullPageModal';\r\nimport Input from '../../../components/Form/Input';\r\nimport Location from '../../../components/Form/Location';\r\nimport PasswordInput from '../../../components/Form/PasswordInput';\r\nimport TimePicker from '../../../components/Form/TimePicker';\r\nimport Select from '../../../components/Form/Select';\r\nimport { CustomSwitch } from '../../../components/Styled';\r\n\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { weekdays, LeagueSessionTypes, StatusTypes } from '../../../utils/types';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { getAdjustedTimeOfDay } from '../../../utils/display';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { manageTeamModalPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useGetTeamQuery, useUpdateTeamMutation, useAddCaptainMutation, useRemoveCaptainMutation } from '../../../api/leaguesApi';\r\n\r\nconst ManageTeamModal = ({ isOpen, onClose, teamId, onSaveClick }) => {\r\n const dispatch = useDispatch();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_BOOK } = TypographySizes;\r\n const { OPEN, CLOSED } = StatusTypes;\r\n const { data: teamDetails, isLoading: isLoadingTeam, isFetching } = useGetTeamQuery(teamId);\r\n const [addCaptain, { isLoading: isAddingCaptain }] = useAddCaptainMutation();\r\n const [removeCaptain, { isLoading: isRemovingCaptain }] = useRemoveCaptainMutation();\r\n const { TOURNAMENT, MULTI_ROUND } = LeagueSessionTypes;\r\n const [sessionTypeId, setSessionTypeId] = useState();\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalFormData, setOriginalFormData] = useState();\r\n const [teamRegistrationStatus, setTeamRegistrationStatus] = useState(true);\r\n const [updatedTeamRegistrationStatus, setUpdatedTeamRegistrationStatus] = useState(OPEN);\r\n const registrationStatusDescription = teamRegistrationStatus ? 'Open' : 'Closed';\r\n const isUpdatingCaptains = isAddingCaptain || isRemovingCaptain || isFetching;\r\n\r\n const [updateTeam] = useUpdateTeamMutation();\r\n\r\n const defaultValues = {\r\n name: '',\r\n registrationPin: '',\r\n teamRegistrationAvailabilityStatusTypeId: 1,\r\n dayOfWeek: '',\r\n location: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (teamDetails) {\r\n const {\r\n name,\r\n timeOfDay,\r\n homeCourtLocation,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n registrationPin,\r\n sessionTypeId: teamSessionTypeId,\r\n dayOfWeek,\r\n } = teamDetails;\r\n\r\n let time = null;\r\n if (timeOfDay) {\r\n const adjustedTime = getAdjustedTimeOfDay({ timeOfDay });\r\n time = moment(adjustedTime, 'hh:mm:ss');\r\n }\r\n\r\n let timeSlotDay = '';\r\n if (dayOfWeek) {\r\n timeSlotDay = weekdays.find((weekday) => weekday.description === dayOfWeek);\r\n }\r\n\r\n const canRegister = teamRegistrationAvailabilityStatusTypeId === 1;\r\n const teamLocation = homeCourtLocation?.placeName || homeCourtLocation?.formattedAddress || '';\r\n const formData = {\r\n name,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n location: teamLocation,\r\n matchStartTimeUtc: time,\r\n dayOfWeek: timeSlotDay.id,\r\n registrationPin: registrationPin || '',\r\n };\r\n\r\n setTeamRegistrationStatus(canRegister);\r\n setSessionTypeId(teamSessionTypeId);\r\n setOriginalLocation(homeCourtLocation);\r\n setOriginalFormData(formData);\r\n reset(formData);\r\n }\r\n }, [teamDetails]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const team = { ...formValues };\r\n const { matchStartTimeUtc, location: teamLocation } = formValues;\r\n\r\n if (sessionTypeId === MULTI_ROUND) {\r\n const matchTime = matchStartTimeUtc.clone();\r\n const utcOffset = matchTime.utcOffset();\r\n const adjustedTime = matchTime.subtract(utcOffset, 'minutes');\r\n const hours = adjustedTime.get('hour');\r\n const minutes = adjustedTime.get('minutes');\r\n\r\n team.timeOfDay = `${hours}:${minutes}`;\r\n }\r\n\r\n team.teamRegistrationAvailabilityStatusTypeId = parseInt(updatedTeamRegistrationStatus);\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(teamLocation);\r\n team.homeCourtLocation = formattedLocation;\r\n } else {\r\n team.homeCourtLocation = originalLocation;\r\n }\r\n\r\n if (sessionTypeId === TOURNAMENT) {\r\n delete team.dayOfWeek;\r\n delete team.timeOfDay;\r\n }\r\n\r\n delete team.location;\r\n delete team.matchStartTimeUtc;\r\n delete team.sessionId;\r\n\r\n try {\r\n await updateTeam({ teamId: teamDetails?.id, team, sessionId: teamDetails?.sessionId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n reset(originalFormData);\r\n };\r\n\r\n const handleOnRemoveTeamCaptain = async (removedCaptain) => {\r\n try {\r\n await removeCaptain({ teamId, captainId: removedCaptain.id });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnAddTeamCaptain = async (addedCaptain) => {\r\n try {\r\n await addCaptain({ teamId, captain: { memberId: addedCaptain.memberId } }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onHandleRegistrationStatusSwitch = () => {\r\n const newId = updatedTeamRegistrationStatus === OPEN ? CLOSED : OPEN;\r\n setTeamRegistrationStatus((prevStatus) => !prevStatus);\r\n setUpdatedTeamRegistrationStatus(newId);\r\n };\r\n\r\n return (\r\n \r\n \r\n {isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n
    \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionTypeId === MULTI_ROUND && (\r\n <>\r\n \r\n League Play Time Slot\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 Registration Settings\r\n \r\n \r\n \r\n \r\n Team Player Registration\r\n \r\n \r\n \r\n {registrationStatusDescription}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n You can set an optional password that your players will need in order to register for this team.\r\n \r\n \r\n \r\n
    \r\n \r\n Captains\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nManageTeamModal.propTypes = {\r\n ...manageTeamModalPropTypes,\r\n};\r\n\r\nexport default ManageTeamModal;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport ManageSessionCaptainCard from '../Cards/ManageSessionCaptainCard';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport Popup from '../Popups/Popup';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\nimport { createTeamCaptainManagerPropTypes } from '../../utils/proptypes';\r\n\r\nconst CreateTeamCaptainManager = ({\r\n captains = [],\r\n isUpdatingCaptains = false,\r\n isLoadingTeam = false,\r\n onAddCaptain,\r\n onRemoveCaptain,\r\n isRequired = false,\r\n}) => {\r\n const [originalCaptains, setOriginalCaptains] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [showCaptainSearch, setShowCaptainSearch] = useState(false);\r\n const [isRemovingCaptain, setIsRemovingCaptain] = useState(false);\r\n const [captainAwaitingAction, setCaptainAwaitingAction] = useState();\r\n const captainsArray = captains && Array.isArray(captains) ? captains : [captains];\r\n\r\n const maxCaptainsAdded = captainsArray?.length === 1 && captainsArray[0] !== null;\r\n\r\n useEffect(() => {\r\n if (captains && captainsArray?.length > 0) {\r\n const mappedMembers = mapMembersForPlayerSearch(captainsArray);\r\n setOriginalCaptains(mappedMembers);\r\n }\r\n }, [captains]);\r\n\r\n const handleOnAddCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(false);\r\n setShowConfirmationPopup(true);\r\n setShowCaptainSearch(false);\r\n };\r\n\r\n const handleOnRemoveCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n onRemoveCaptain(captainAwaitingAction);\r\n setOriginalCaptains([]);\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n onAddCaptain(captainAwaitingAction);\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingCaptain ? 'Remove' : 'Add';\r\n const popupAction = isRemovingCaptain ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} captain`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${captainAwaitingAction?.displayName} as a captain?`;\r\n const displayCaptainSearch = showCaptainSearch || !maxCaptainsAdded;\r\n\r\n const renderCaptains = () =>\r\n originalCaptains.map((captain) => (\r\n \r\n ));\r\n\r\n const renderCaptainSearch = () => (\r\n \r\n \r\n \r\n );\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n {isUpdatingCaptains ? : renderCaptains()}\r\n {displayCaptainSearch && renderCaptainSearch()}\r\n \r\n \r\n );\r\n};\r\n\r\nCreateTeamCaptainManager.propTypes = {\r\n ...createTeamCaptainManagerPropTypes,\r\n};\r\n\r\nexport default CreateTeamCaptainManager;\r\n","import React, { useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport CreateTeamCaptainManager from '../../../components/CreateTeamCaptainManager';\r\nimport FullPageModal from '../../../components/Modals/FullPageModal';\r\nimport Input from '../../../components/Form/Input';\r\nimport Location from '../../../components/Form/Location';\r\nimport PasswordInput from '../../../components/Form/PasswordInput';\r\nimport TimePicker from '../../../components/Form/TimePicker';\r\nimport Select from '../../../components/Form/Select';\r\nimport { CustomSwitch } from '../../../components/Styled';\r\n\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { LeagueSessionTypes, StatusTypes, weekdays } from '../../../utils/types';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { defaultCreateTeamModalPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useCreateTeamMutation } from '../../../api/leaguesApi';\r\n\r\nconst CreateTeamModal = ({ isOpen = false, onClose, onSaveClick, sessionTypeId }) => {\r\n const dispatch = useDispatch();\r\n const params = useParams();\r\n const sessionId = params?.sessionId;\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_BOOK } = TypographySizes;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const { OPEN, CLOSED } = StatusTypes;\r\n const [homeLocation, setHomeLocation] = useState('');\r\n const [teamRegistrationStatus, setTeamRegistrationStatus] = useState(true);\r\n const [updatedTeamRegistrationStatus, setUpdatedTeamRegistrationStatus] = useState(OPEN);\r\n const registrationStatusDescription = teamRegistrationStatus ? 'Open' : 'Closed';\r\n const [teamCaptain, setTeamCaptain] = useState();\r\n\r\n const [createTeam, { isLoading }] = useCreateTeamMutation();\r\n\r\n const defaultValues = {\r\n name: '',\r\n sessionId,\r\n registrationPin: '',\r\n teamRegistrationAvailabilityStatusTypeId: 1,\r\n dayOfWeek: '',\r\n location: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, isValid, isDirty },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const disableCtaButton = !isValid || !teamCaptain || !isDirty;\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const team = { ...formValues };\r\n const { matchStartTimeUtc, location } = formValues;\r\n const formattedLocation = await getLocationData(location);\r\n\r\n if (sessionTypeId === MULTI_ROUND) {\r\n const matchTime = matchStartTimeUtc.clone();\r\n const utcOffset = matchTime.utcOffset();\r\n const adjustedTime = matchTime.subtract(utcOffset, 'minutes');\r\n const hours = adjustedTime.get('hour');\r\n const minutes = adjustedTime.get('minutes');\r\n\r\n team.timeOfDay = `${hours}:${minutes}`;\r\n }\r\n\r\n try {\r\n team.homeCourtLocation = formattedLocation;\r\n team.teamRegistrationAvailabilityStatusTypeId = parseInt(updatedTeamRegistrationStatus);\r\n team.teamCaptainMemberId = teamCaptain.memberId;\r\n await createTeam(team).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n\r\n setTeamRegistrationStatus(OPEN);\r\n setTeamCaptain(null);\r\n reset(defaultValues);\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n reset(defaultValues);\r\n setTeamCaptain(null);\r\n setTeamRegistrationStatus(OPEN);\r\n onClose();\r\n };\r\n\r\n const handleOnAddTeamCaptain = (player) => {\r\n setTeamCaptain(player);\r\n };\r\n\r\n const handleOnRemoveTeamCaptain = () => {\r\n setTeamCaptain(null);\r\n };\r\n\r\n const handleOnLocationChange = (e) => {\r\n setHomeLocation(e.target.value);\r\n };\r\n\r\n const onHandleRegistrationStatusSwitch = () => {\r\n const newId = updatedTeamRegistrationStatus === OPEN ? CLOSED : OPEN;\r\n setTeamRegistrationStatus((prevStatus) => !prevStatus);\r\n setUpdatedTeamRegistrationStatus(newId);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n Details\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 Team Captains\r\n \r\n \r\n \r\n {sessionTypeId === MULTI_ROUND && (\r\n <>\r\n \r\n League Play Time Slot\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 Registration Settings\r\n \r\n \r\n \r\n \r\n Team Player Registration\r\n \r\n \r\n \r\n {registrationStatusDescription}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n You can set an optional password that your players will need in order to register for this team.\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nCreateTeamModal.propTypes = {\r\n ...defaultCreateTeamModalPropTypes,\r\n};\r\n\r\nexport default CreateTeamModal;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { SquareAvatarWithName, AvatarWithName, Typography, SortableTable, EditIcon, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport { Box } from '@mui/material';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport MessageIcon from '../../Icons/MessageIcon';\r\nimport { getComparator, getPowerIndex } from '../../../utils/helpers';\r\nimport { SortType, TypographySizes, SharedUICategories } from '../../../utils/constants';\r\nimport { teamsTablePropTypes, teamsTableRowProps } from '../../../utils/proptypes';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'location', label: 'Location' },\r\n { id: 'captainName', label: 'Captain' },\r\n { id: 'teamPowerIndexSingles', label: 'TPI S', isSortingDisabled: true },\r\n { id: 'teamPowerIndexDoubles', label: 'TPI D', isSortingDisabled: true },\r\n { id: 'numberOfPlayers', label: '# players' },\r\n { id: 'actions' },\r\n];\r\n\r\nconst TeamsTable = ({ sessionTeams = [], onManageClicked, onRemoveClicked, hasSessionStarted = false }) => {\r\n const theme = useTheme();\r\n const [teams, setTeams] = useState([]);\r\n const { MEDIUM_MEDIUM, SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState('name');\r\n const tableData = teams?.sort(getComparator(sortOrder, orderProperty));\r\n\r\n const handleRequestSort = (property) => {\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n useEffect(() => {\r\n const formattedTeams = sessionTeams.map((team) => {\r\n const { captains } = team;\r\n return {\r\n ...team,\r\n captainName: `${captains[0]?.firstName} ${captains[0]?.lastName}`,\r\n };\r\n });\r\n setTeams(formattedTeams);\r\n }, [sessionTeams]);\r\n\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const { id, name, homeCourtLocation, teamMemberCount, captains, captainName, teamPowerIndex } = rowData;\r\n const { memberId } = captains?.[0] || [];\r\n const isRemoveDisabled = teamMemberCount > 0 || hasSessionStarted;\r\n const teamUrl = `/teams/${id}`;\r\n const tableCellStyles = { borderBottom: 'none', backgroundColor: theme.appColors.white };\r\n\r\n const singlesPowerRating = getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated);\r\n const doublesPowerRating = getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated);\r\n\r\n const handleOnManageClicked = () => {\r\n onManageClicked(id);\r\n };\r\n\r\n const handleOnRemoveClicked = () => {\r\n const teamData = { id, teamMemberCount, name };\r\n onRemoveClicked(teamData);\r\n };\r\n\r\n TeamTableRow.propTypes = {\r\n ...teamsTableRowProps,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {homeCourtLocation?.formattedAddress}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {singlesPowerRating}\r\n \r\n \r\n \r\n \r\n {doublesPowerRating}\r\n \r\n \r\n \r\n \r\n {teamMemberCount}\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 return (\r\n \r\n );\r\n};\r\n\r\nTeamsTable.propTypes = {\r\n ...teamsTablePropTypes,\r\n};\r\n\r\nexport default TeamsTable;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport ManageTeamModal from '../ManageTeamModal';\r\nimport CreateTeamModal from '../CreateTeamModal';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport Popup from '../../../components/Popups/Popup';\r\nimport TeamsTable from '../../../components/Tables/TeamsTable';\r\nimport { showPopup } from '../../../redux/genericPopupSlice';\r\nimport { TypographySizes, SharedUICategories } from '../../../utils/constants';\r\nimport { manageSessionTeamsTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst TeamsTab = ({\r\n teams = [],\r\n maxTeamsCount,\r\n sessionTypeId,\r\n isLoading,\r\n onRemoveTeam,\r\n hasSessionStarted,\r\n hasSessionEnded,\r\n onAddTeamClick,\r\n}) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { MEDIUM_MEDIUM } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [teamToRemove, setTeamToRemove] = useState(null);\r\n const [showCreateTeamModal, setShowCreateTeamModal] = useState(false);\r\n const [showManageTeamModal, setShowManageTeamModal] = useState(false);\r\n const isTeamActionsDisabled = teams.length === maxTeamsCount || hasSessionEnded;\r\n const [selectedTeamId, setSelectedTeamId] = useState(null);\r\n\r\n const handleOnAddTeamClick = () => {\r\n onAddTeamClick();\r\n };\r\n\r\n const handleOnCreateTeamClick = () => {\r\n setShowCreateTeamModal(true);\r\n };\r\n\r\n const handleOnManageClick = (teamId) => {\r\n setSelectedTeamId(teamId);\r\n setShowManageTeamModal(true);\r\n };\r\n\r\n const handleOnCloseManageTeamModal = () => {\r\n setShowManageTeamModal(false);\r\n };\r\n\r\n const handleOnCloseCreateTeamModal = () => {\r\n setShowCreateTeamModal(false);\r\n };\r\n\r\n const handleOnRemoveClick = (teamData) => {\r\n const { teamMemberCount, ...rest } = teamData;\r\n if (teamMemberCount > 0) {\r\n dispatch(showPopup({ title: 'Error', message: 'You cannot remove a team that has registered players' }));\r\n } else {\r\n setTeamToRemove({ ...rest });\r\n setShowConfirmationPopup(true);\r\n }\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n onRemoveTeam(teamToRemove);\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!teams.length ? (\r\n \r\n \r\n No teams have been created for this session.\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\nTeamsTab.propTypes = {\r\n ...manageSessionTeamsTabPropTypes,\r\n};\r\n\r\nexport default TeamsTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { useTheme, Container } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport Tab from '@mui/material/Tab';\r\nimport Tabs from '@mui/material/Tabs';\r\n\r\nimport { SharedUICategories, TypographySizes, ManageSessionTabs } from '../../../utils/constants';\r\nimport { manageSessionPageHeaderPropTypes } from '../../../utils/proptypes';\r\nimport { getBreadcrumbData } from '../../../redux/services/breadcrumbService';\r\n\r\nconst ManageSessionPageHeader = ({ context, contextId, tab, sessionName = '', onTabChange, isMultiRoundSession, shouldUpdateBreadcrumb, onBreadcrumbUpdated }) => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const { DISPLAY, SECONDARY } = SharedUICategories;\r\n const { LARGE_LIGHT, X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { TEAMS, SCHEDULE, PLAYERS, DETAILS, DRAW } = ManageSessionTabs;\r\n const { data } = useSelector((state) => state.breadcrumbs);\r\n const { league, conference } = data;\r\n const leagueUrl = `/leagues/${league?.id}`;\r\n const conferenceUrl = `/leagues/conference/${conference?.id}/manage`;\r\n const scheduleDrawLabel = isMultiRoundSession ? SCHEDULE : DRAW;\r\n\r\n useEffect(() => {\r\n if (context && contextId) {\r\n if (!data || data[context]?.id !== parseInt(contextId)) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (shouldUpdateBreadcrumb) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n onBreadcrumbUpdated();\r\n }\r\n }, [shouldUpdateBreadcrumb]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {league?.name}\r\n \r\n \r\n \r\n   /  \r\n \r\n \r\n \r\n {conference?.name}\r\n \r\n \r\n \r\n \r\n {sessionName}\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\nManageSessionPageHeader.propTypes = {\r\n ...manageSessionPageHeaderPropTypes\r\n};\r\n\r\nexport default ManageSessionPageHeader;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useLocation, useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport moment from 'moment';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport TabContext from '@mui/lab/TabContext';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\n\r\nimport AddTeamContainer from '../../components/AddTeamContainer';\r\nimport ConfirmPublishSchedulePopup from '../../components/Popups/ConfirmPublishSchedulePopup';\r\nimport CopyPlayerModal from '../../components/Modals/CopyPlayerModal';\r\nimport CreateDrawModal from '../../components/Modals/CreateDrawModal';\r\nimport DetailsTab from './DetailsTab';\r\nimport DrawTab from '../../components/DrawTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport MatchEditModal from '../TeamMatchPage/MatchEditModal';\r\nimport MovePlayerModal from '../../components/Modals/MovePlayerModal';\r\nimport PlayerWithdrawModal from '../../components/Modals/PlayerWithdrawModal';\r\nimport PlayersTab from '../../components/PlayerTab';\r\nimport Popup from '../../components/Popups/Popup';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport TeamsTab from './TeamsTab';\r\nimport ManageSessionPageHeader from './ManageSessionPageHeader';\r\n\r\nimport useSessionSchedule from '../../hooks/useSessionSchedule';\r\nimport { BYE_ROUND, MANAGE_SESSION_PAGE_TYPE, SINGLE_ROUND_BYE } from '../../components/DrawTab/utils';\r\nimport { LeagueTabs, BreadcrumbContexts } from '../../utils/constants';\r\nimport { WithdrawTypes, playerWithdrawTypes, getTypeForId, LeagueSessionTypes, StatusTypes } from '../../utils/types';\r\nimport { getAdjustedDate } from '../../utils/display';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport {\r\n useGetSessionQuery,\r\n useGetSessionTeamsQuery,\r\n useGetPlayersAvailableTeamsQuery,\r\n useUpdatePlayerRegistrationMutation,\r\n useRemoveTeamMutation,\r\n useMovePlayerToTeamMutation,\r\n useCopyPlayerToTeamMutation,\r\n useTogglePlayerRosterStatusMutation,\r\n useCreateTeamSeedsMutation,\r\n useUpdateTeamMatchPositionsMutation,\r\n useCopyTeamsToSessionMutation,\r\n useUpdateTeamMatchDateLocationMutation,\r\n} from '../../api/leaguesApi';\r\n\r\nconst publishPopupMessage = 'Publishing the draw allows the public to view the draw.';\r\nconst deletePopupMessage = 'Are you sure you want to delete this Draw?';\r\nconst unpublishPopupMessage = 'Are you sure you want to Unpublish this Draw?';\r\n\r\nconst positions = {\r\n ONE: 1,\r\n TWO: 2,\r\n};\r\n\r\nconst ManageSessionPage = () => {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const params = useParams();\r\n const navigate = useNavigate();\r\n const theme = useTheme();\r\n\r\n const sessionId = parseInt(params.sessionId);\r\n const { data } = useSelector((state) => state.breadcrumbs);\r\n const { WITHDRAW, REFUND } = WithdrawTypes;\r\n const { DETAILS, TEAMS, PLAYERS, SCHEDULE, DRAW } = LeagueTabs;\r\n const { SESSION } = BreadcrumbContexts;\r\n\r\n const [activeTab, setActiveTab] = useState(TEAMS);\r\n const [showWithdrawModal, setShowWithdrawModal] = useState(false);\r\n const [showDrawModal, setShowDrawModal] = useState(false);\r\n const [showMoveModal, setShowMoveModal] = useState(false);\r\n const [showCopyModal, setShowCopyModal] = useState(false);\r\n const [matchToUpdate, setMatchToUpdate] = useState(null);\r\n const [showEditMatchModal, setShowEditMatchModal] = useState(false);\r\n const [showAddTeamModal, setShowAddTeamModal] = useState(false);\r\n const [withdrawData, setWithdrawData] = useState({ playerId: null, teamId: null });\r\n const [movePlayerData, setMovePlayerData] = useState({ memberId: null, fromTeamId: null });\r\n const [copyPlayerData, setCopyPlayerData] = useState({ memberId: null, fromTeamId: null, isSubstitute: false });\r\n const [availableTeamData, setAvailableTeamData] = useState(skipToken);\r\n const [availablePlayerTeams, setAvailablePlayerTeams] = useState(skipToken);\r\n const [canPlayerBeRefunded, setCanPlayerBeRefunded] = useState(false);\r\n const [showPublishPopup, setShowPublishPopup] = useState(false);\r\n const [showUnpublishPopup, setShowUnpublishPopup] = useState(false);\r\n const [leagueId, setLeagueId] = useState(null);\r\n const [showDeletePopup, setShowDeletePopup] = useState(false);\r\n const [selectedConferenceId, setSelectedConferenceId] = useState(null);\r\n const [sessionDetails, setSessionDetails] = useState({\r\n hasSessionStarted: false,\r\n hasSessionEnded: false,\r\n isMultiRoundSession: null,\r\n });\r\n\r\n const {\r\n data: playerTeamAvailability,\r\n isLoading: isLoadingAvailableTeams,\r\n error: availableTeamsError,\r\n } = useGetPlayersAvailableTeamsQuery(availableTeamData);\r\n const { data: session, isLoading: isLoadingSession, error: sessionError, refetch: refetchSession } = useGetSessionQuery(sessionId);\r\n const {\r\n data: sessionTeams,\r\n isFetching: isLoadingSessionTeams,\r\n error: teamsError,\r\n refetch: refetchSessionTeams,\r\n } = useGetSessionTeamsQuery(sessionId);\r\n const [removeTeam, { isLoading: isRemovingTeam }] = useRemoveTeamMutation();\r\n const [updatePlayerRegistration, { isLoading: isWithdrawing }] = useUpdatePlayerRegistrationMutation();\r\n const [movePlayer, { isLoading: isMovingPlayer }] = useMovePlayerToTeamMutation();\r\n const [copyPlayer, { isLoading: isCopyingPlayer }] = useCopyPlayerToTeamMutation();\r\n const [createTeamSeeds, { isLoading: isCreatingTeamSeeds }] = useCreateTeamSeedsMutation();\r\n const [shouldUpdateBreadcrumb, setShouldUpdateBreadcrumb] = useState(false);\r\n const [updateTeamMatchDateLocation, { isLoading: isUpdatingTeamMatchLocation }] = useUpdateTeamMatchDateLocationMutation();\r\n const [updateTeamMatchPositions] = useUpdateTeamMatchPositionsMutation();\r\n const [togglePlayerRosterStatus, { isLoading: isUpdatingRosterStatus }] = useTogglePlayerRosterStatusMutation();\r\n const [addTeams, { isLoading: isAddingTeams }] = useCopyTeamsToSessionMutation();\r\n\r\n const {\r\n scheduleId,\r\n drawSchedule,\r\n onCreateSchedule,\r\n onDeleteSchedule,\r\n isPublishingSchedule,\r\n isCreatingSchedule,\r\n onPublishSchedule,\r\n onUnpublishSchedule,\r\n refetchSessionSchedule,\r\n } = useSessionSchedule({ sessionId, showDraftSchedule: true, isMultiRoundSession: sessionDetails?.isMultiRoundSession });\r\n\r\n const isLoadingTeams = isLoadingSessionTeams || isRemovingTeam || isLoadingSession || isAddingTeams;\r\n const isUpdatingTeamPlayers = isWithdrawing || isMovingPlayer || isCopyingPlayer || isUpdatingRosterStatus;\r\n const isLoadingSeedsTable = isCreatingSchedule || isCreatingTeamSeeds;\r\n\r\n const { OPEN } = StatusTypes;\r\n\r\n const resetDrawCache = async () => {\r\n await refetchSession();\r\n await refetchSessionTeams();\r\n await refetchSessionSchedule();\r\n };\r\n\r\n if (availableTeamsError) {\r\n dispatch(showPopup({ isError: true, title: 'Error loading available teams for player', message: availableTeamsError?.message }));\r\n }\r\n\r\n if (sessionError) {\r\n dispatch(showErrorPopup(sessionError));\r\n }\r\n\r\n if (teamsError) {\r\n dispatch(showErrorPopup(teamsError));\r\n }\r\n\r\n useEffect(() => {\r\n if (location?.state?.activeTab) {\r\n setActiveTab(location?.state?.activeTab);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (session) {\r\n const hasSessionStarted = moment(session.startDateUtc).isSameOrBefore(moment());\r\n const hasSessionEnded = moment(session.endDateUtc).isSameOrBefore(moment());\r\n const isMultiRoundSession = session.sessionTypeId === LeagueSessionTypes.MULTI_ROUND;\r\n setSessionDetails({ hasSessionStarted, hasSessionEnded, isMultiRoundSession });\r\n dispatch(setSportTypeId(session?.sportTypeId));\r\n }\r\n }, [session]);\r\n\r\n useEffect(() => {\r\n if (playerTeamAvailability) {\r\n const teamSelections = playerTeamAvailability?.availableTeams.map((team) => {\r\n return { id: team.teamId, description: team.teamName };\r\n });\r\n setAvailablePlayerTeams(teamSelections);\r\n }\r\n }, [playerTeamAvailability]);\r\n\r\n useEffect(() => {\r\n if (data?.session?.id === sessionId) {\r\n setLeagueId(data.league.id);\r\n setSelectedConferenceId(data.conference.id);\r\n }\r\n }, [data]);\r\n\r\n const handleOnAddTeam = () => {\r\n setShowAddTeamModal(true);\r\n };\r\n\r\n const handleOnCloseAddTeamModal = () => {\r\n setShowAddTeamModal(false);\r\n };\r\n\r\n const handleOnWithdrawPlayer = (playerId, playerTeamId, canBeRefunded) => {\r\n setCanPlayerBeRefunded(canBeRefunded);\r\n setShowWithdrawModal(true);\r\n setWithdrawData({ playerId, teamId: playerTeamId });\r\n };\r\n\r\n const handleOnCloseWithdrawModal = () => {\r\n setShowWithdrawModal(false);\r\n };\r\n\r\n const handleDrawCreateClick = () => {\r\n setShowDrawModal(!showDrawModal);\r\n };\r\n\r\n const handleOnDrawEditClick = () => {\r\n setShowDrawModal(!showDrawModal);\r\n };\r\n\r\n const handleOnMovePlayer = (memberId, playerTeamId) => {\r\n setAvailableTeamData({ sessionId, memberId });\r\n setShowMoveModal(true);\r\n setMovePlayerData({ memberId, fromTeamId: playerTeamId });\r\n };\r\n\r\n const handleOnCloseMoveModal = () => {\r\n setShowMoveModal(false);\r\n setAvailableTeamData(skipToken);\r\n };\r\n\r\n const handleOnCopyPlayer = (memberId, playerTeamId) => {\r\n setAvailableTeamData({ sessionId, memberId });\r\n setShowCopyModal(true);\r\n setCopyPlayerData({ memberId, fromTeamId: playerTeamId });\r\n };\r\n\r\n const handleOnCloseCopyModal = () => {\r\n setShowCopyModal(false);\r\n setAvailableTeamData(skipToken);\r\n };\r\n\r\n const handleOnClosePublishPopup = () => {\r\n setShowPublishPopup(false);\r\n };\r\n\r\n const handleOnPublishClick = () => {\r\n setShowPublishPopup(true);\r\n };\r\n\r\n const handleOnDrawUnpublishClick = () => {\r\n setShowUnpublishPopup(true);\r\n };\r\n\r\n const handleOnDrawDeleteClick = () => {\r\n setShowDeletePopup(true);\r\n };\r\n\r\n const handleOnEditMatch = (match) => {\r\n setMatchToUpdate(match);\r\n setShowEditMatchModal(true);\r\n };\r\n\r\n const handleOnViewMatch = ({ teamMatchId }) => {\r\n navigate(`/leagues/match/${teamMatchId}`);\r\n };\r\n\r\n const handleOnEditSubmit = async (teamMatch) => {\r\n setShowEditMatchModal(false);\r\n const { teamMatchId } = teamMatch;\r\n const matchDateTimeData = {\r\n location: teamMatch?.location,\r\n matchDate: teamMatch?.matchDate,\r\n description: teamMatch?.description,\r\n };\r\n\r\n try {\r\n await updateTeamMatchDateLocation({ teamMatchId, sessionId, scheduleId, data: matchDateTimeData }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnRemoveTeam = async (teamData) => {\r\n const { id, name } = teamData;\r\n try {\r\n await removeTeam({ teamId: id, sessionId }).unwrap();\r\n dispatch(showPopup({ title: 'Success', message: `${name} has been removed` }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleWithdrawSubmit = async (withdrawType) => {\r\n setShowWithdrawModal(false);\r\n const withdrawRequest = { sessionId: parseInt(sessionId), memberId: withdrawData.playerId };\r\n\r\n let isWithdrawingPlayer = false;\r\n let isRefunding = false;\r\n\r\n if (withdrawType === WITHDRAW) {\r\n isWithdrawingPlayer = true;\r\n } else if (withdrawType === REFUND) {\r\n isRefunding = true;\r\n } else {\r\n isWithdrawingPlayer = true;\r\n isRefunding = true;\r\n }\r\n\r\n withdrawRequest.withdraw = isWithdrawingPlayer;\r\n withdrawRequest.refund = isRefunding;\r\n\r\n try {\r\n await updatePlayerRegistration({ sessionId, teamId: withdrawData.teamId, withdrawRequest, withdrawType }).unwrap();\r\n const transactionType = getTypeForId(withdrawType, playerWithdrawTypes);\r\n dispatch(showPopup({ title: 'Success', message: `Your ${transactionType?.description?.toLowerCase()} was successful.` }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleMovePlayerSubmit = async (newTeamId) => {\r\n setShowMoveModal(false);\r\n\r\n const moveRequest = { ...movePlayerData, toTeamId: newTeamId };\r\n\r\n try {\r\n await movePlayer({ ...moveRequest, sessionId }).unwrap();\r\n dispatch(showPopup({ title: 'Success', message: 'Player moved successfully' }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleCopyPlayerSubmit = async (newTeamIds, isSubstitute) => {\r\n setShowCopyModal(false);\r\n\r\n const copyRequest = { ...copyPlayerData, toTeamIds: newTeamIds, isSubstitute };\r\n\r\n try {\r\n await copyPlayer({ ...copyRequest, sessionId }).unwrap();\r\n dispatch(showPopup({ title: 'Success', message: 'Player copied successfully' }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnTogglePlayerStatus = async (memberId, teamId) => {\r\n try {\r\n await togglePlayerRosterStatus({ memberId, teamId, sessionId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnDrawSubmit = async (seeds) => {\r\n const formatData = seeds.map(({ teamId, seed }, index) => {\r\n const formatSeed = seed && index + 1 < seed ? index + 1 : seed;\r\n\r\n return {\r\n teamId,\r\n seed: formatSeed || index + 1,\r\n };\r\n });\r\n\r\n const filteredData = formatData.filter((item) => item.teamId);\r\n\r\n try {\r\n if (filteredData.length > 0) {\r\n await createTeamSeeds({ scheduleId, sessionId, data: { teamseeds: filteredData } }).unwrap();\r\n }\r\n if (!drawSchedule) {\r\n await onCreateSchedule();\r\n }\r\n await resetDrawCache();\r\n handleDrawCreateClick();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnAddTeams = async (requestBody) => {\r\n try {\r\n await addTeams({ sessionId, teamData: requestBody }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnDrawSkip = async () => {\r\n const mockTeam = {\r\n teamId: sessionTeams?.teams[0]?.id,\r\n seed: null,\r\n };\r\n\r\n try {\r\n await createTeamSeeds({ scheduleId, sessionId, data: { teamseeds: [mockTeam] } }).unwrap();\r\n await onCreateSchedule();\r\n await resetDrawCache();\r\n handleDrawCreateClick();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnChangeClick = async ({ selectedTeam, teamMatch }) => {\r\n const { teamMatchId } = teamMatch;\r\n const { position1Team, position2Team } = teamMatch;\r\n const { id, position } = selectedTeam;\r\n const formatId = !id || id === BYE_ROUND || id === null || id === undefined ? null : id;\r\n const hasBye = id === BYE_ROUND;\r\n\r\n let teamMatchPositions;\r\n switch (position) {\r\n case positions.ONE: {\r\n const position2TeamId = position2Team?.teamId || null;\r\n const hasNoByeRound = !position2TeamId && !formatId;\r\n\r\n teamMatchPositions = {\r\n position1TeamId: formatId,\r\n position2TeamId,\r\n byeStatusTypeId: hasBye && !hasNoByeRound ? SINGLE_ROUND_BYE : null,\r\n };\r\n break;\r\n }\r\n\r\n case positions.TWO: {\r\n const position1TeamId = position1Team?.teamId || null;\r\n const hasNoByeRound = !position1TeamId && !formatId;\r\n\r\n teamMatchPositions = {\r\n position1TeamId,\r\n position2TeamId: formatId,\r\n byeStatusTypeId: hasBye && !hasNoByeRound ? SINGLE_ROUND_BYE : null,\r\n };\r\n break;\r\n }\r\n default:\r\n teamMatchPositions = {\r\n position1TeamId: null,\r\n position2TeamId: null,\r\n byeStatusTypeId: null,\r\n };\r\n break;\r\n }\r\n\r\n try {\r\n await updateTeamMatchPositions({ teamMatchId, teamMatchPositions, scheduleId, sessionId });\r\n await refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnConfirmPublishSchedule = async ({ isNotifyingTeams }) => {\r\n const publishData = {\r\n notifyTeams: isNotifyingTeams,\r\n };\r\n\r\n try {\r\n await onPublishSchedule(publishData);\r\n await resetDrawCache();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n\r\n setShowPublishPopup(false);\r\n };\r\n\r\n const handleOnConfirmDeleteSchedule = async () => {\r\n try {\r\n await onDeleteSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowDeletePopup(false);\r\n };\r\n\r\n const handleOnUnpublishSchedule = async () => {\r\n try {\r\n await onUnpublishSchedule();\r\n await resetDrawCache();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowUnpublishPopup(false);\r\n };\r\n\r\n const { hasSessionStarted, hasSessionEnded, isMultiRoundSession } = sessionDetails;\r\n const dateFormat = 'MMM Do, YYYY';\r\n const startDrawLabel = session?.startDateUtc && getAdjustedDate({ dateUtc: session?.startDateUtc, format: dateFormat });\r\n const endDrawLabel = session?.startDateUtc && getAdjustedDate({ dateUtc: session?.endDateUtc, format: dateFormat });\r\n\r\n const isDrawDisabled = session?.sessionStatusTypeId === OPEN || sessionTeams?.teams?.length === 0;\r\n const hasPostedResults = session?.hasPostedResults;\r\n\r\n const handleOnTabChanged = (_, newValue) => {\r\n setActiveTab(newValue);\r\n };\r\n\r\n const handleOnBreadcrumbUpdated = () => {\r\n setShouldUpdateBreadcrumb(false);\r\n };\r\n\r\n return (\r\n \r\n {isLoadingSession ? (\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 {showDrawModal && (\r\n \r\n )}\r\n \r\n \r\n setShowUnpublishPopup(false)}\r\n title=\"Unpublish Draw\"\r\n message={unpublishPopupMessage}\r\n />\r\n setShowDeletePopup(false)}\r\n title=\"Delete Draw\"\r\n message={deletePopupMessage}\r\n />\r\n \r\n setShowEditMatchModal(false)}\r\n onSubmit={handleOnEditSubmit}\r\n match={matchToUpdate}\r\n allowTeamSwap\r\n />\r\n {showAddTeamModal && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ManageSessionPage;\r\n","import React from 'react';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Typography from '@mui/material/Typography';\r\nimport Button from '@mui/material/Button';\r\nimport Divider from '@mui/material/Divider';\r\n\r\nimport ModalBaseSimple from './ModalBaseSimple';\r\n\r\nimport { shareTeamModalPropTypes, defaultModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst ShareTeamModal = ({ open, url, onClose, onCopyClick }) => {\r\n return (\r\n \r\n \r\n \r\n To add a player to your team share this link to your team page.\r\n \r\n \r\n When they click the link they can register for your team. If you have a team PIN, make sure to send it with\r\n your invitation.\r\n \r\n \r\n \r\n Team Page Link\r\n \r\n {url}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nShareTeamModal.propTypes = {\r\n ...shareTeamModalPropTypes\r\n};\r\n\r\nShareTeamModal.defaultProps = {\r\n ...defaultModalPropTypes\r\n};\r\n\r\nexport default ShareTeamModal;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport TableCell from '@mui/material/TableCell';\r\nimport Typography from '@mui/material/Typography';\r\nimport Button from '@mui/material/Button';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\n\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { getPlayerProfileUrl } from '../../../utils/helpers';\r\nimport { StyledTableRow, MemberTeamTableLink } from '../../Styled';\r\n\r\nconst headCells = [\r\n { id: 'team', label: 'Team' },\r\n { id: 'record', label: 'Record' },\r\n { id: 'session', label: 'Session' },\r\n { id: 'captain', label: 'Captain' },\r\n { id: 'actions' },\r\n];\r\n\r\nconst MemberTeamsTable = ({ memberTeams = [], isLoading, onShareClicked }) => {\r\n const [teams, setTeams] = useState([]);\r\n\r\n useEffect(() => {\r\n const formattedTeams = memberTeams.map((team) => {\r\n const { teamId, teamName, teamMatchWins, teamMatchLosses, sessionId, sessionName, captains } = team;\r\n const [teamCaptain] = captains;\r\n return {\r\n teamId,\r\n teamName,\r\n record: `${teamMatchWins} - ${teamMatchLosses}`,\r\n sessionName,\r\n sessionId,\r\n captainName: `${teamCaptain.firstName} ${teamCaptain.lastName}`,\r\n captainPlayerId: teamCaptain.playerId,\r\n };\r\n });\r\n setTeams(formattedTeams);\r\n }, [memberTeams]);\r\n\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const { teamName, teamId, record, sessionName, sessionId, captainName, captainPlayerId } = rowData;\r\n\r\n const handleOnShareClicked = (event) => {\r\n event.preventDefault();\r\n onShareClicked(teamId);\r\n };\r\n\r\n return (\r\n \r\n \r\n {teamName}\r\n \r\n \r\n {record}\r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n {captainName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default MemberTeamsTable;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport ShareTeamModal from '../../components/Modals/ShareTeamModal';\r\nimport MemberTeamsTable from '../../components/Tables/MemberTeamsTable';\r\nimport { useGetMemberTeamsQuery } from '../../api/leaguesApi';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { SportTypeIds } from '../../utils/types';\r\n\r\nconst MemberTeamsPage = () => {\r\n const dispatch = useDispatch();\r\n const { sportId } = useParams();\r\n const [showShareModal, setShowShareModal] = useState(false);\r\n const [sharedTeamId, setSharedTeamId] = useState(null);\r\n const { data, isFetching, error } = useGetMemberTeamsQuery();\r\n const teamUrl = `https://leagues.utrsports.net/teams/${sharedTeamId}`;\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const handleOnShareClick = (teamId) => {\r\n setSharedTeamId(teamId);\r\n setShowShareModal(true);\r\n };\r\n\r\n const handleOnCloseShareModal = () => {\r\n setShowShareModal(false);\r\n };\r\n\r\n const handleOnShareCopyClick = () => {\r\n navigator.clipboard.writeText(teamUrl);\r\n setShowShareModal(false);\r\n };\r\n\r\n const teamsToDisplay = parseInt(sportId) === SportTypeIds.TENNIS ? data?.memberTeams?.tennis : data?.memberTeams?.pickleball || [];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberTeamsPage;\r\n","export default __webpack_public_path__ + \"static/media/usap-sanctioned-logo.282a14f8.png\";","import React, { useEffect, useState } from 'react';\r\nimport { SortableTable } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport Typography from '@mui/material/Typography';\r\nimport Link from '@mui/material/Link';\r\n\r\nimport UtrIcon from '../../Icons/UtrIcon';\r\n\r\nimport { StyledTableRow } from '../../Styled';\r\nimport { ageDisplay, getAgeKeys, getAdjustedDate } from '../../../utils/display';\r\nimport { genderTypes, LeagueSanctionTypes } from '../../../utils/types';\r\nimport { leagueSearchResultsTablePropTypes, sessionTableRowProps } from '../../../utils/proptypes';\r\nimport usapLogo from '../../../assets/logos/usap-sanctioned-logo.png';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name', isSortingDisabled: true },\r\n { id: 'conference', label: 'Conference', isSortingDisabled: true },\r\n { id: 'location', label: 'Location', isSortingDisabled: true },\r\n { id: 'age', label: 'Age' },\r\n { id: 'rating', label: 'Rating' },\r\n { id: 'gender', label: 'Gender' },\r\n { id: 'startDate', label: 'Start' },\r\n { id: 'end', label: 'End', isSortingDisabled: true },\r\n];\r\n\r\nconst LeaguesSearchResultsTable = ({ searchResults, isLoading, onSortChange, sortByProperty, sortOrder }) => {\r\n const { USAP } = LeagueSanctionTypes;\r\n const [sessions, setSessions] = useState([]);\r\n\r\n useEffect(() => {\r\n if (searchResults?.length) {\r\n const formattedResults = searchResults.map((result) => {\r\n const { name, conferenceName, location, minAge, maxAge, utrRangeMin, utrRangeMax, genderTypeId, sportTypeId, startDateUtc, endDateUtc, sanctionTypeId } = result;\r\n const genderType = genderTypes.find((gender) => gender.id === genderTypeId);\r\n const dateFormat = 'L';\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const age = ageDisplay(ageKeys);\r\n const startDate = getAdjustedDate({ dateUtc: startDateUtc, format: dateFormat });\r\n const end = getAdjustedDate({ dateUtc: endDateUtc, format: dateFormat });\r\n const isUSAPSanctionedSession = sanctionTypeId === USAP;\r\n return {\r\n ...result,\r\n sessionName: name,\r\n conference: conferenceName,\r\n sportTypeId,\r\n location: location?.placeName || location?.formattedAddress,\r\n rating: `${utrRangeMin}-${utrRangeMax}`,\r\n age,\r\n gender: genderType.description,\r\n startDate,\r\n end,\r\n isUSAPSanctionedSession\r\n };\r\n });\r\n setSessions(formattedResults);\r\n }\r\n }, [searchResults]);\r\n\r\n const handleOnOrderPropertyChange = (property) => {\r\n onSortChange(property);\r\n };\r\n\r\n const SessionTableRow = ({ rowData, labelId }) => {\r\n const { id, name, conference, location, age, rating, gender, startDate, end, isUSAPSanctionedSession } = rowData;\r\n const sessionUrl = `/leagues/session/${id}`;\r\n\r\n SessionTableRow.propTypes = {\r\n ...sessionTableRowProps\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n {isUSAPSanctionedSession && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {conference}\r\n {location}\r\n {age}\r\n {rating}\r\n {gender}\r\n {startDate}\r\n {end}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {!isLoading && !searchResults.length ? (\r\n \r\n No results found for your search\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nLeaguesSearchResultsTable.propTypes = {\r\n ...leagueSearchResultsTablePropTypes\r\n};\r\n\r\nexport default LeaguesSearchResultsTable;\r\n","import React, { useState } from 'react';\r\n\r\nimport Popover from '@mui/material/Popover';\r\nimport Button from '@mui/material/Button';\r\n\r\nconst FilterButton = ({ buttonTitle, children, isFilterApplied, isOpen = false, onOpen, onClose }) => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleClick = (event) => {\r\n onOpen();\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n onClose();\r\n setAnchorEl(null);\r\n };\r\n\r\n const id = isOpen ? 'button-popover' : undefined;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FilterButton;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\nimport Grid from '@mui/material/Grid';\r\nimport Typography from '@mui/material/Typography';\r\nimport throttle from 'lodash/throttle';\r\n\r\nconst parse = require('autosuggest-highlight/parse');\r\n\r\nconst autocompleteService = { current: null };\r\n\r\nconst LocationAutoCompleteControlled = ({ value, label, isRequired, onChange, variant = 'outlined' }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const [options, setOptions] = useState([]);\r\n\r\n const getPlacePredictions = useMemo(\r\n () =>\r\n throttle((request, callback) => {\r\n autocompleteService.current.getPlacePredictions(request, callback);\r\n }, 200),\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!autocompleteService.current && window.google) {\r\n autocompleteService.current = new window.google.maps.places.AutocompleteService();\r\n }\r\n if (!autocompleteService.current) {\r\n return undefined;\r\n }\r\n\r\n if (inputValue === '') {\r\n setOptions(value ? [value] : []);\r\n return undefined;\r\n }\r\n\r\n getPlacePredictions({ input: inputValue }, (results) => {\r\n if (active) {\r\n let newOptions = [];\r\n\r\n if (value) {\r\n newOptions = [value];\r\n }\r\n\r\n if (results) {\r\n newOptions = [...newOptions, ...results];\r\n }\r\n\r\n setOptions(newOptions);\r\n }\r\n });\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [inputValue, value]);\r\n\r\n return (\r\n (typeof option === 'string' ? option : option.description)}\r\n filterOptions={(x) => x}\r\n options={[value, ...options]}\r\n autoComplete\r\n value={value}\r\n disableClearable\r\n includeInputInList\r\n filterSelectedOptions\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n onChange(newValue);\r\n setOptions(newValue ? [newValue, ...options] : options);\r\n }\r\n }}\r\n onInputChange={(_, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n renderInput={(params) => }\r\n renderOption={(props, option) => {\r\n const matches = option.structured_formatting.main_text_matched_substrings;\r\n const parts = parse(\r\n option.structured_formatting.main_text,\r\n matches.map((match) => [match.offset, match.offset + match.length])\r\n );\r\n\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {parts.map((part, index) => (\r\n /* eslint-disable-next-line react/no-array-index-key */\r\n \r\n {part.text}\r\n \r\n ))}\r\n \r\n {option.structured_formatting.secondary_text}\r\n \r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default LocationAutoCompleteControlled;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport DistanceSlider from '@mui/material/Slider';\r\nimport Typography from '@mui/material/Typography';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\n\r\nimport FilterButton from '../../../components/FilterButton';\r\nimport Location from '../../../components/ControlledLocationAutoComplete';\r\nimport { DistanceSliderMarks } from '../../../utils/constants';\r\nimport { getBrowserLocationCoordinates, getLocationData, getLocationNameFromCoordinates } from '../../../utils/location';\r\n\r\nconst LocationFilter = ({\r\n hasResetFilters,\r\n onApplyFilter,\r\n onIsLoadingCurrentLocation,\r\n onClearLocation,\r\n onCurrentLocationClick,\r\n currentLocation,\r\n}) => {\r\n const defaultSliderValue = 50;\r\n const defaultFilterData = {\r\n value: '',\r\n label: 'Location',\r\n sliderValue: defaultSliderValue,\r\n };\r\n const [filterData, setFilterData] = useState(defaultFilterData);\r\n const [isFilterApplied, setIsFilterApplied] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const { value, label, sliderValue } = filterData;\r\n\r\n const getLocationName = async (lat, lng) => {\r\n const location = await getLocationNameFromCoordinates(lat, lng);\r\n setFilterData({ ...filterData, value: location, label: `Near ${location}` });\r\n setIsFilterApplied(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (hasResetFilters) {\r\n setFilterData(defaultFilterData);\r\n setIsFilterApplied(false);\r\n }\r\n }, [hasResetFilters]);\r\n\r\n useEffect(() => {\r\n if (currentLocation) {\r\n getLocationName(currentLocation.lat, currentLocation.lng);\r\n } else {\r\n setIsFilterApplied(false);\r\n setFilterData(defaultFilterData);\r\n }\r\n }, [currentLocation]);\r\n\r\n const handleOnLocationChange = (newLocation) => {\r\n setFilterData({ ...filterData, value: newLocation });\r\n };\r\n\r\n const handleOnSliderChange = (event) => {\r\n setFilterData({ ...filterData, sliderValue: event.target.value });\r\n };\r\n\r\n const handleOnCurrentLocationClick = async () => {\r\n setIsOpen(false);\r\n if (navigator.geolocation) {\r\n onIsLoadingCurrentLocation(true);\r\n\r\n const { lat, lng, error } = await getBrowserLocationCoordinates();\r\n onCurrentLocationClick(lat, lng, sliderValue, error);\r\n\r\n if (lat && lng) {\r\n await getLocationName(lat, lng);\r\n }\r\n }\r\n };\r\n\r\n const handleOnApplyLocation = async () => {\r\n setIsOpen(false);\r\n if (value?.place_id) {\r\n const locationData = await getLocationData(value);\r\n const { lat, lng } = locationData;\r\n onApplyFilter(sliderValue, lat, lng);\r\n await getLocationName(lat, lng);\r\n } else {\r\n onApplyFilter(sliderValue);\r\n }\r\n\r\n setIsFilterApplied(true);\r\n };\r\n\r\n const handleOnOpenLocation = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleOnCloseLocation = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n const handleOnClearLocation = () => {\r\n setFilterData(defaultFilterData);\r\n setIsOpen(false);\r\n setIsFilterApplied(false);\r\n onClearLocation();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Location\r\n \r\n \r\n \r\n \r\n \r\n \r\n Distance\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LocationFilter;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { isEqual } from 'lodash';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Slider from '@mui/material/Slider';\r\nimport Typography from '@mui/material/Typography';\r\nimport FilterButton from '../../../components/FilterButton';\r\n\r\nimport { ageSliderDictionary, utrpSliderDictionary } from '../../../utils/constants';\r\nimport { ageDisplay, utrpSliderDisplay } from '../../../utils/display';\r\nimport { SliderTypes } from '../../../utils/types';\r\nimport { getRangeForSlider } from '../../../utils/helpers';\r\nimport { sliderFilterPropTypes } from '../../../utils/proptypes';\r\n\r\nconst _ = { isEqual };\r\n\r\nconst SliderFilter = ({ onApplyFilter, hasResetFilters, sliderType }) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const rangeValue = getRangeForSlider(sliderType);\r\n const title = SliderTypes[sliderType.toUpperCase()];\r\n const defaultFilterData = {\r\n value: rangeValue,\r\n label: title,\r\n };\r\n const [filterData, setFilterData] = useState(defaultFilterData);\r\n const [isFilterApplied, setIsFilterApplied] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const getSliderData = (value) => {\r\n let sliderLength;\r\n let display;\r\n let step = 1;\r\n\r\n switch (sliderType) {\r\n case AGE:\r\n sliderLength = Object.keys(ageSliderDictionary).length;\r\n display = ageDisplay(value);\r\n break;\r\n case UTR:\r\n sliderLength = 16;\r\n display = `${value[0]?.toFixed(1)} - ${value[1]?.toFixed(1)}`;\r\n step = 0.5;\r\n break;\r\n case UTRP:\r\n sliderLength = Object.keys(utrpSliderDictionary).length;\r\n display = utrpSliderDisplay(value);\r\n break;\r\n default:\r\n sliderLength = '';\r\n display = '';\r\n }\r\n return { sliderLength, display, step };\r\n };\r\n\r\n const { value, label } = filterData;\r\n const { sliderLength, display, step } = getSliderData(value);\r\n\r\n useEffect(() => {\r\n if (hasResetFilters) {\r\n setFilterData(defaultFilterData);\r\n setIsFilterApplied(false);\r\n }\r\n }, [hasResetFilters]);\r\n\r\n const handleOnSliderChange = (event) => {\r\n setFilterData({ ...filterData, value: event.target.value });\r\n };\r\n\r\n const handleOnApplyClicked = () => {\r\n onApplyFilter(value);\r\n\r\n const isEqualToDefaultValue = _.isEqual(value, defaultFilterData.value);\r\n if (isEqualToDefaultValue) {\r\n setFilterData(defaultFilterData);\r\n setIsFilterApplied(false);\r\n } else {\r\n setFilterData({ ...filterData, label: display });\r\n setIsFilterApplied(true);\r\n }\r\n\r\n setIsOpen(false);\r\n };\r\n\r\n const handleOnOpenLocation = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleOnCloseLocation = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n {display}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSliderFilter.propTypes = {\r\n ...sliderFilterPropTypes\r\n};\r\n\r\nexport default SliderFilter;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Checkbox from '@mui/material/Checkbox';\r\n\r\nimport FilterButton from '../FilterButton';\r\nimport { multiSelectFilterPropTypes } from '../../utils/proptypes';\r\n\r\nconst MultiSelectFilter = ({ selectOptions, onApplyFilter, hasResetFilters, label, currentValue }) => {\r\n const [filterData, setFilterData] = useState([]);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [isFilterApplied, setIsFilterApplied] = useState(false);\r\n\r\n useEffect(() => {\r\n if (currentValue && !filterData.includes(currentValue)) {\r\n if (hasResetFilters) {\r\n setFilterData([currentValue]);\r\n } else {\r\n setFilterData([...filterData, currentValue]);\r\n }\r\n setIsFilterApplied(true);\r\n }\r\n\r\n if (!currentValue && hasResetFilters) {\r\n setFilterData([]);\r\n setIsFilterApplied(false);\r\n }\r\n }, [currentValue, hasResetFilters]);\r\n\r\n const handleOnChange = (event) => {\r\n const value = parseInt(event.target.value);\r\n\r\n if (filterData.includes(value)) {\r\n const updatedData = filterData.filter((status) => status !== value);\r\n setFilterData(updatedData);\r\n } else {\r\n setFilterData([...filterData, value]);\r\n }\r\n };\r\n\r\n const handleOnApplyClicked = () => {\r\n const hasNoSelections = !filterData.length;\r\n const appliedFilters = hasNoSelections ? null : filterData;\r\n onApplyFilter(appliedFilters);\r\n\r\n if (hasNoSelections) {\r\n setFilterData([]);\r\n setIsFilterApplied(false);\r\n } else {\r\n setIsFilterApplied(true);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleOnOpen = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleOnClose = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n const getButtonLabel = () => {\r\n let buttonLabel = label;\r\n\r\n if (filterData.length) {\r\n const appliedFilters = selectOptions.filter((type) => filterData.includes(type.id)).map((status) => status.description);\r\n buttonLabel = `${appliedFilters.join(', ')}`;\r\n }\r\n return buttonLabel;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {selectOptions.map((status) => {\r\n const { id, description } = status;\r\n const isChecked = filterData.includes(id);\r\n return (\r\n }\r\n label={description}\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\nMultiSelectFilter.propTypes = {\r\n ...multiSelectFilterPropTypes.propTypes\r\n};\r\n\r\nMultiSelectFilter.defaultProps = {\r\n ...multiSelectFilterPropTypes.defaultProps\r\n};\r\n\r\nexport default MultiSelectFilter;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { getSearchApiAxiosInstance } from '../utils/network';\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { searchLeagueSessions, scrollLeagueSessions } from '../api/leaguesApi';\r\nimport { ResponseStatuses } from '../utils/constants';\r\n\r\nconst usePostLeaguesSearch = ({ searchFilters }) => {\r\n const maxResults = 20;\r\n const axiosInstance = getSearchApiAxiosInstance();\r\n const dispatch = useDispatch();\r\n\r\n const [apiResponse, setApiResponse] = useState();\r\n const [searchResults, setSearchResults] = useState([]);\r\n const [isFetchingResults, setIsFetchingResults] = useState(false);\r\n const [isEndOfResults, setIsEndOfResults] = useState(false);\r\n const [refetch, setRefetch] = useState(false);\r\n const [currentScrollId, setCurrentScrollId] = useState(null);\r\n const [isLoadingMoreResults, setIsLoadingMoreResults] = useState(false);\r\n\r\n const handleOnLoadMoreClick = () => {\r\n setRefetch(true);\r\n setIsLoadingMoreResults(true);\r\n };\r\n\r\n const handleRefetch = () => {\r\n setRefetch(true);\r\n setCurrentScrollId(null);\r\n };\r\n\r\n const clearSearchResults = () => {\r\n setSearchResults([]);\r\n setCurrentScrollId(null);\r\n };\r\n\r\n const getSearchResults = async () => {\r\n const requestBody = {\r\n pagination: { take: maxResults },\r\n searchProperties: { ...searchFilters },\r\n };\r\n const response = await searchLeagueSessions(axiosInstance, requestBody).catch((searchError) => {\r\n setIsFetchingResults(false);\r\n dispatch(showErrorPopup(searchError));\r\n });\r\n\r\n setApiResponse(response);\r\n };\r\n\r\n const handleInvalidScrollId = () => {\r\n setSearchResults([]);\r\n setCurrentScrollId(null);\r\n getSearchResults();\r\n };\r\n\r\n const getScrollResults = async (scrollId) => {\r\n const response = await scrollLeagueSessions(axiosInstance, { scrollId }).catch((searchError) => {\r\n if (searchError.response?.status === ResponseStatuses.NOT_FOUND) {\r\n setIsFetchingResults(false);\r\n handleInvalidScrollId();\r\n return;\r\n }\r\n dispatch(showErrorPopup(searchError));\r\n });\r\n\r\n setApiResponse(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (apiResponse?.data) {\r\n const { documents, scrollId } = apiResponse.data || {};\r\n\r\n if (scrollId) {\r\n setCurrentScrollId(scrollId);\r\n }\r\n setIsFetchingResults(false);\r\n\r\n if (documents.length < maxResults) {\r\n setIsEndOfResults(true);\r\n } else {\r\n setIsEndOfResults(false);\r\n }\r\n\r\n if (isLoadingMoreResults) {\r\n setSearchResults([...searchResults, ...documents]);\r\n } else {\r\n setSearchResults(documents);\r\n }\r\n\r\n setRefetch(false);\r\n setIsLoadingMoreResults(false);\r\n }\r\n }, [apiResponse]);\r\n\r\n useEffect(() => {\r\n const handleOnSearchSubmit = async () => {\r\n setIsFetchingResults(true);\r\n\r\n const requestScrollId = isLoadingMoreResults ? currentScrollId : null;\r\n\r\n if (requestScrollId) {\r\n await getScrollResults(requestScrollId);\r\n } else {\r\n await getSearchResults();\r\n }\r\n };\r\n\r\n if (refetch) {\r\n handleOnSearchSubmit();\r\n }\r\n }, [refetch, isLoadingMoreResults]);\r\n\r\n return { searchResults, isFetchingResults, isEndOfResults, handleOnLoadMoreClick, handleRefetch, clearSearchResults };\r\n};\r\n\r\nexport default usePostLeaguesSearch;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Stack from '@mui/material/Stack';\r\nimport Typography from '@mui/material/Typography';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport LeaguesSearchResultsTable from '../../components/Tables/LeagueSearchResultsTable';\r\nimport LocationFilter from './LocationFilter';\r\nimport SliderFilter from './SliderFilter';\r\nimport MultiSelectFilter from '../../components/MultiSelectFilter';\r\nimport usePostLeaguesSearch from '../../hooks/usePostLeaguesSearch';\r\n\r\nimport { genderTypes, SportTypeIds, tierTypes, OrderByRuleTypes, searchDateFilterTypes, SessionDateStatuses, SliderTypes, SearchSortTypes } from '../../utils/types';\r\nimport { ageSliderDictionary, utrpSliderDictionary } from '../../utils/constants';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { getLeagueTypeIdForTier, getSportTypeForLeagueId } from '../../utils/helpers';\r\nimport { searchPagePropTypes } from '../../utils/proptypes';\r\n\r\nconst defaultDistance = 50;\r\n\r\nconst SearchPage = ({ userLocation, leagueTypeId, sportType, leagueTierType }) => {\r\n const dispatch = useDispatch();\r\n const { TENNIS } = SportTypeIds;\r\n const { START_DATE, UTR: UTR_SORT, UTRP: UTRP_SORT } = SearchSortTypes;\r\n const { ASCENDING, DESCENDING } = OrderByRuleTypes;\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const dateStatus = searchDateFilterTypes[0].id;\r\n const defaultDateStatus = SessionDateStatuses[dateStatus];\r\n\r\n const defaultSearchFilters = {\r\n leagueTypeIds: [parseInt(leagueTypeId)],\r\n distanceFilter: {\r\n distance: defaultDistance,\r\n lat: userLocation?.lat || null,\r\n long: userLocation?.lng || null,\r\n },\r\n ageFilter: null,\r\n utrFilter: null,\r\n utrPFilter: null,\r\n sessionDateStatuses: [defaultDateStatus],\r\n genderTypeIds: [],\r\n sportTypeIds: [sportType],\r\n sortBy: SearchSortTypes.START_DATE,\r\n orderByRule: ASCENDING.id\r\n };\r\n\r\n const [searchFilters, setSearchFilters] = useState(defaultSearchFilters);\r\n const [hasResetSearchFilters, setHasResetSearchFilters] = useState(false);\r\n const [currentLocation, setCurrentLocation] = useState();\r\n const [currentLeagueTierType, setCurrentLeagueTierType] = useState(leagueTierType);\r\n const [currentDateStatus, setCurrentDateStatus] = useState(dateStatus);\r\n const [isLoadingCurrentLocation, setIsLoadingCurrentLocation] = useState();\r\n const [sortOrder, setSortOrder] = useState(ASCENDING);\r\n const [sortByProperty, setSortByProperty] = useState(START_DATE);\r\n\r\n const { searchResults, isFetchingResults, isEndOfResults, handleOnLoadMoreClick, handleRefetch, clearSearchResults } = usePostLeaguesSearch({ searchFilters });\r\n\r\n const handleOnUrlChange = async () => {\r\n clearSearchResults();\r\n };\r\n\r\n useEffect(() => {\r\n const resetSearchOnUrlChange = async () => {\r\n const { lat, lng } = userLocation || {};\r\n const leagueId = parseInt(leagueTypeId);\r\n const sportTypeId = getSportTypeForLeagueId(leagueId);\r\n\r\n await handleOnUrlChange();\r\n\r\n setSearchFilters({\r\n ...defaultSearchFilters,\r\n sportTypeIds: [sportTypeId],\r\n leagueTypeIds: [leagueId],\r\n });\r\n setHasResetSearchFilters(true);\r\n setCurrentLeagueTierType(leagueTierType);\r\n setCurrentLocation({ lat, lng });\r\n handleRefetch();\r\n };\r\n if (leagueTypeId && userLocation) {\r\n resetSearchOnUrlChange();\r\n }\r\n }, [leagueTypeId, userLocation, leagueTierType]);\r\n\r\n const resetSearch = () => {\r\n handleRefetch();\r\n setHasResetSearchFilters(false);\r\n };\r\n\r\n const handleOnApplyDateFilter = (dateStatuses) => {\r\n resetSearch();\r\n\r\n if (dateStatuses) {\r\n const sessionDateStatuses = dateStatuses?.map((status) => SessionDateStatuses[status]);\r\n setSearchFilters({ ...searchFilters, sessionDateStatuses });\r\n } else {\r\n setCurrentDateStatus(null);\r\n setSearchFilters({ ...searchFilters, sessionDateStatuses: null });\r\n }\r\n };\r\n\r\n const handleOnApplyTypeFilter = (tierTypeId) => {\r\n resetSearch();\r\n const leagueTypeIds = getLeagueTypeIdForTier(tierTypeId, sportType);\r\n\r\n if (!tierTypeId) {\r\n setCurrentLeagueTierType(null);\r\n }\r\n\r\n setSearchFilters({ ...searchFilters, leagueTypeIds });\r\n };\r\n\r\n const handleOnApplyAgeFilter = (ages) => {\r\n const [min, max] = ages;\r\n const minAge = ageSliderDictionary[min];\r\n const maxAge = ageSliderDictionary[max];\r\n\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, ageFilter: { minAge, maxAge } });\r\n };\r\n\r\n const handleOnApplyTennisRatingFilter = (utrs) => {\r\n const [utrRangeMin, utrRangeMax] = utrs;\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, utrFilter: { utrRangeMin, utrRangeMax } });\r\n };\r\n\r\n const handleOnApplyPickleballRatingFilter = (utrps) => {\r\n const [utrPMin, utrPRMax] = utrps;\r\n const utrPRangeMin = utrpSliderDictionary[utrPMin];\r\n const utrPRangeMax = utrpSliderDictionary[utrPRMax];\r\n\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, utrPFilter: { utrPRangeMin, utrPRangeMax } });\r\n };\r\n\r\n const handleOnApplyGenderFilter = (genderTypeIds) => {\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, genderTypeIds });\r\n };\r\n\r\n const handleOnClearFilters = () => {\r\n resetSearch();\r\n\r\n const leagueTypeIds = getLeagueTypeIdForTier(null, sportType);\r\n setSearchFilters({ ...defaultSearchFilters, leagueTypeIds, distanceFilter: null, sessionDateStatuses: [], sportTypeIds: [] });\r\n\r\n setHasResetSearchFilters(true);\r\n setCurrentLocation(null);\r\n setCurrentDateStatus(null);\r\n setCurrentLeagueTierType(null);\r\n };\r\n\r\n const handleOnApplyLocationFilter = async (sliderValue, lat, lng) => {\r\n if (lat && lng) {\r\n setSearchFilters({ ...searchFilters, distanceFilter: { lat, long: lng, distance: sliderValue } });\r\n setCurrentLocation({ lat, lng });\r\n } else {\r\n setSearchFilters({ ...searchFilters, distanceFilter: { ...searchFilters.distanceFilter, distance: sliderValue } });\r\n }\r\n\r\n resetSearch();\r\n };\r\n\r\n const handleOnClearSearchLocationFilters = () => {\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, distanceFilter: null });\r\n };\r\n\r\n const handleOnCurrentLocationClick = async (lat, lng, distance, error) => {\r\n if (navigator.geolocation) {\r\n if (lat && lng) {\r\n setSearchFilters({ ...searchFilters, distanceFilter: { lat, long: lng, distance } });\r\n resetSearch();\r\n setIsLoadingCurrentLocation(false);\r\n }\r\n if (error) {\r\n dispatch(showPopup({ title: 'Location Service Error', message: error?.message }));\r\n setIsLoadingCurrentLocation(false);\r\n }\r\n } else {\r\n dispatch(showPopup({ title: 'Location Service', message: 'Geolocation is not available' }));\r\n }\r\n };\r\n\r\n const handleOnIsLoadingCurrentLocation = (isLoadingLocation) => {\r\n setIsLoadingCurrentLocation(isLoadingLocation);\r\n };\r\n\r\n const handleOnSortChange = (property) => {\r\n resetSearch();\r\n\r\n if (property === sortByProperty) {\r\n const sortDirection = sortOrder === ASCENDING ? DESCENDING : ASCENDING;\r\n setSortOrder(sortDirection);\r\n setSearchFilters({ ...searchFilters, orderByRule: sortDirection.id });\r\n } else {\r\n setSortOrder(ASCENDING);\r\n let sortBy = property.toLowerCase();\r\n if (property === 'rating') {\r\n sortBy = sportType === TENNIS ? UTR_SORT : UTRP_SORT;\r\n }\r\n\r\n setSearchFilters({ ...searchFilters, orderByRule: ASCENDING.id, sortBy });\r\n }\r\n setSortByProperty(property);\r\n };\r\n\r\n return (\r\n \r\n {`Search team ${sportType === TENNIS ? 'tennis' : 'pickleball'} leagues`}\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 {!isEndOfResults && !!searchResults?.length && (\r\n \r\n }\r\n >\r\n Load More\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSearchPage.propTypes = {\r\n ...searchPagePropTypes.propTypes\r\n};\r\n\r\nSearchPage.defaultProps = {\r\n ...searchPagePropTypes.defaultProps\r\n};\r\n\r\nexport default SearchPage;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport SearchPage from '..';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport { LeagueTypes, SportTypeIds, LeagueTierTypes } from '../../../utils/types';\r\n\r\nconst SearchWrapper = () => {\r\n const { user } = useSelector((state) => state.auth);\r\n const location = user?.location;\r\n const { leagueTypeId } = useParams();\r\n const { ADULT, JUNIOR } = LeagueTierTypes;\r\n const { TENNIS, PICKLEBALL } = SportTypeIds;\r\n const { UT_ADULT_TEAM_PICKLEBALL, UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_TENNIS } = LeagueTypes;\r\n const [userLocation, setUserLocation] = useState(null);\r\n const [sportType, setSportType] = useState(null);\r\n const [leagueTierType, setLeagueTierType] = useState(null);\r\n\r\n useEffect(() => {\r\n if (location?.latLng?.length) {\r\n const [lat, lng] = location.latLng;\r\n setUserLocation({ lat, lng });\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (leagueTypeId) {\r\n const parsedLeagueId = parseInt(leagueTypeId);\r\n\r\n if (parsedLeagueId === UT_ADULT_TEAM_PICKLEBALL || parsedLeagueId === UT_JUNIOR_TEAM_PICKLEBALL) {\r\n setSportType(PICKLEBALL);\r\n } else if (parsedLeagueId === UT_ADULT_TEAM_TENNIS || parsedLeagueId === UT_JUNIOR_TEAM_TENNIS) {\r\n setSportType(TENNIS);\r\n }\r\n\r\n if (parsedLeagueId === UT_ADULT_TEAM_PICKLEBALL || parsedLeagueId === UT_ADULT_TEAM_TENNIS) {\r\n setLeagueTierType(ADULT);\r\n } else if (parsedLeagueId === UT_JUNIOR_TEAM_PICKLEBALL || parsedLeagueId === UT_JUNIOR_TEAM_TENNIS) {\r\n setLeagueTierType(JUNIOR);\r\n }\r\n }\r\n }, [leagueTypeId]);\r\n\r\n return !userLocation ? : ;\r\n};\r\n\r\nexport default SearchWrapper;\r\n","import React from 'react';\r\n\r\nimport { useTheme, Container } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Tab from '@mui/material/Tab';\r\nimport Tabs from '@mui/material/Tabs';\r\n\r\nimport { SharedUICategories, TypographySizes, SessionTabs } from '../../../utils/constants';\r\nimport { sessionPageHeaderPropTypes } from '../../../utils/proptypes';\r\n\r\nconst SessionPageHeader = ({ tab, sessionName = '', onTabChange, isMultiRoundSession, conferenceName }) => {\r\n const theme = useTheme();\r\n const { DISPLAY, SECONDARY } = SharedUICategories;\r\n const { LARGE_LIGHT, X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { OVERVIEW, SCHEDULE, PLAYERS, DRAW, STANDINGS } = SessionTabs;\r\n const scheduleDrawLabel = isMultiRoundSession ? SCHEDULE : DRAW;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {conferenceName}\r\n \r\n \r\n {sessionName}\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\nSessionPageHeader.propTypes = {\r\n ...sessionPageHeaderPropTypes,\r\n};\r\n\r\nexport default SessionPageHeader;\r\n","import React from 'react';\r\nimport parsePhoneNumber from 'libphonenumber-js';\r\n\r\nimport { AvatarWithName, Typography, DeleteIcon, MessageIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport Link from '@mui/material/Link';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { messageUser, getPlayerAvatarImage, getPlayerProfileUrl } from '../../../utils/helpers';\r\nimport { managerCardPropTypes } from '../../../utils/proptypes';\r\n\r\nconst ManagerCard = ({ managers = [], isUserLoggedIn = false, isCaptainView, onRemoveClick }) => {\r\n const theme = useTheme();\r\n\r\n const handleOnMessageClick = (memberId, displayName) => {\r\n messageUser(memberId, displayName);\r\n };\r\n\r\n const handleOnRemoveClick = (managerData) => {\r\n onRemoveClick(managerData);\r\n };\r\n\r\n return managers.map(({ id, firstName, lastName, memberId, phone, email, playerId, profileImage }) => {\r\n const displayName = `${firstName} ${lastName}`;\r\n const parsedNumber = parsePhoneNumber(phone || '');\r\n const phoneNumber = parsedNumber?.formatInternational();\r\n const href = playerId && getPlayerProfileUrl(playerId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isUserLoggedIn ? (\r\n <>\r\n {phoneNumber ? (\r\n \r\n \r\n \r\n {phoneNumber}\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n {email && (\r\n \r\n \r\n \r\n {email}\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 ******@*****.com\r\n \r\n \r\n \r\n )}\r\n \r\n handleOnMessageClick(memberId, displayName)}>\r\n \r\n \r\n {isCaptainView && (\r\n handleOnRemoveClick({ captainId: id, displayName })}>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nManagerCard.propTypes = {\r\n ...managerCardPropTypes,\r\n};\r\n\r\nexport default ManagerCard;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport { useTheme } from '@mui/material';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport { getAgeKeys, ageDisplay, getFormattedConferenceRange } from '../../utils/display';\r\nimport { getTypeForId, genderTypes, RequestStatusTypes, StatusTypes, SportTypeIds, LeagueSanctionTypes } from '../../utils/types';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { registrationInfoCardPropTypes } from '../../utils/proptypes';\r\nimport usapLogo from '../../assets/logos/usap-sanctioned-logo.png';\r\n\r\nconst RegistrationInfoCard = ({\r\n cost = '',\r\n format = '',\r\n sessionDates = '',\r\n sessionData = {},\r\n onRequestToCaptain,\r\n onRegisterButtonClick,\r\n}) => {\r\n const theme = useTheme();\r\n const { USAP } = LeagueSanctionTypes;\r\n const { XX_SMALL_MEDIUM_CAP, MEDIUM_BOOK, X_SMALL_BOOK } = TypographySizes;\r\n const { PRIMARY, SECONDARY } = SharedUICategories;\r\n const { conference, session, captainRequest } = sessionData;\r\n const { conferenceRatings, sportTypeId } = conference || {};\r\n const { TENNIS } = SportTypeIds;\r\n const { currentRequest, isCaptainInSession } = captainRequest || {};\r\n const { PENDING } = RequestStatusTypes;\r\n const ageKeys = getAgeKeys([conference?.minAge, conference?.maxAge]);\r\n const ageRange = ageDisplay(ageKeys);\r\n const gender = getTypeForId(conference?.genderTypeId, genderTypes)?.description;\r\n const isTennis = sportTypeId === TENNIS;\r\n const rangeTitle = isTennis ? 'UTR Range' : 'UTR-P Range';\r\n const range = getFormattedConferenceRange({ conferenceRatings, sportTypeId, showRatingPrefix: false });\r\n const location = conference?.location?.placeName ? `${conference?.location?.placeName}` : '';\r\n const today = moment.utc();\r\n const isUSAPSanctionedSession = session?.sanctionTypeId === USAP;\r\n const isPlayerInSession = sessionData?.memberTeams?.length !== 0;\r\n const isCaptainRequestPending = currentRequest?.sessionRequestStatusTypeId === PENDING;\r\n const isTodayBeforeSessionEndDate = today.isBefore(session?.endDateUtc, 'day');\r\n const isTodayBeforeRegistrationEndDate = today.isBefore(session?.teamRegistrationEndDateUtc, 'day');\r\n const isNotAPlayerOrCaptainInSession = !isPlayerInSession && !isCaptainInSession;\r\n const showRequestToCaptainButton = isTodayBeforeRegistrationEndDate && !isCaptainRequestPending && isNotAPlayerOrCaptainInSession;\r\n const canRegister = isTodayBeforeSessionEndDate && isNotAPlayerOrCaptainInSession;\r\n const formattedStartDate = moment(session?.teamRegistrationStartDateUtc).format('MMMM Do');\r\n const formattedEndDate = moment(session?.teamRegistrationEndDateUtc).format('MMMM Do');\r\n const TEAMS_FORMING_TEXT = `Teams are forming now. Register between ${formattedStartDate} - ${formattedEndDate}.`;\r\n const TEAMS_FORMING_CAPTAIN_TEXT = `${TEAMS_FORMING_TEXT} Interested in being captain?`;\r\n const showTeamsFormingText =\r\n (isTodayBeforeRegistrationEndDate && isNotAPlayerOrCaptainInSession) || session?.sessionStatusTypeId === StatusTypes.CLOSED;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cost\r\n \r\n \r\n {cost}\r\n \r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {gender}\r\n \r\n \r\n \r\n \r\n Age Range\r\n \r\n \r\n {ageRange}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rangeTitle}\r\n \r\n \r\n {range}\r\n \r\n \r\n \r\n \r\n Format\r\n \r\n \r\n {format}\r\n \r\n \r\n {location && (\r\n \r\n \r\n Location\r\n \r\n \r\n {location}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Session Dates\r\n \r\n \r\n {sessionDates}\r\n \r\n \r\n {isUSAPSanctionedSession && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {showTeamsFormingText && showRequestToCaptainButton && (\r\n \r\n {isCaptainRequestPending ? TEAMS_FORMING_TEXT : TEAMS_FORMING_CAPTAIN_TEXT}\r\n \r\n )}\r\n {isPlayerInSession && isTodayBeforeSessionEndDate && (\r\n \r\n You're Registered for teams.\r\n \r\n )}\r\n {showRequestToCaptainButton && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRegistrationInfoCard.propTypes = {\r\n ...registrationInfoCardPropTypes,\r\n};\r\n\r\nexport default RegistrationInfoCard;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport ManagerCard from '../../../components/Cards/ManagerCard';\r\nimport RegistrationInfoCard from '../../../components/RegistrationInfoCard';\r\n\r\nimport useIsMobile from '../../../hooks/useIsMobile';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { sessionOverviewTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst OverviewTab = ({\r\n description = '',\r\n cost = '',\r\n sessionDates = '',\r\n matchFormat = '',\r\n sessionData = {},\r\n isUserLoggedIn = false,\r\n managers = [],\r\n onRegisterButtonClick,\r\n onRequestToCaptain,\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { XX_SMALL_MEDIUM_CAP, SMALL_BOOK } = TypographySizes;\r\n const isMobile = useIsMobile();\r\n\r\n const desktopPadding = '40px';\r\n const mobilePadding = '24px';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Registration Information\r\n \r\n \r\n \r\n \r\n \r\n {description && (\r\n <>\r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n Organizers\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nOverviewTab.propTypes = {\r\n ...sessionOverviewTabPropTypes,\r\n};\r\n\r\nexport default OverviewTab;\r\n","import React from 'react';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport MultiRoundScheduleSelect from '../../../components/Form/MultiRoundScheduleSelect';\r\nimport Schedule from '../../../components/Schedule';\r\n\r\nimport useSessionSchedule from '../../../hooks/useSessionSchedule';\r\nimport { LeagueSessionTypes } from '../../../utils/types';\r\n\r\nconst ScheduleTab = ({ session, isLoadingSession }) => {\r\n const { id, sessionTypeId } = session;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const isMultiRoundSession = sessionTypeId === MULTI_ROUND;\r\n const {\r\n scheduleRounds,\r\n scheduleByDate,\r\n drawSchedule,\r\n isSchedulePublished,\r\n isLoadingSchedule,\r\n onGetScheduleByDate,\r\n multiRoundScheduleType,\r\n } = useSessionSchedule({ sessionId: id, showDraftSchedule: false, isMultiRoundSession });\r\n\r\n const handleOnScheduleChange = (event) => {\r\n onGetScheduleByDate(event?.target?.value);\r\n };\r\n\r\n const displayMultiRoundScheduleSelect = scheduleRounds && isSchedulePublished && isMultiRoundSession;\r\n\r\n return (\r\n \r\n {isLoadingSession || isLoadingSchedule ? (\r\n \r\n ) : (\r\n <>\r\n {displayMultiRoundScheduleSelect && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ScheduleTab;\r\n","import React from 'react';\r\nimport { Typography, SquareAvatarWithName } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Link from '@mui/material/Link';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\n\r\nimport GenericTable from '../GenericTable';\r\nimport { SportTypeIds } from '../../../utils/types';\r\nimport { sessionStandingsHeadCells, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getPowerIndex } from '../../../utils/helpers';\r\nimport { teamTableRowPropTypes, sessionStandingsTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst SessionStandingsTable = ({ sessionStandings = [], isLoading, sportTypeId }) => {\r\n const theme = useTheme();\r\n const { SECONDARY, MEDIUM_MEDIUM } = SharedUICategories;\r\n const { SMALL_BOOK, SMALL_MEDIUM } = TypographySizes;\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const {\r\n id,\r\n teamName,\r\n teamMatchWins,\r\n teamMatchLosses,\r\n playerMatchPoints,\r\n playerMatchGameWinPercentage,\r\n teamId,\r\n rank,\r\n teamPowerIndex,\r\n } = rowData;\r\n\r\n const gamesWonPercentage = (playerMatchGameWinPercentage * 100).toFixed(2);\r\n const teamUrl = `/teams/${teamId}`;\r\n\r\n TeamTableRow.propTypes = {\r\n ...teamTableRowPropTypes,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {rank}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated)}\r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated)}\r\n \r\n \r\n \r\n \r\n {teamMatchWins}\r\n \r\n \r\n \r\n \r\n {teamMatchLosses}\r\n \r\n \r\n \r\n \r\n {playerMatchPoints}\r\n \r\n \r\n \r\n {`${gamesWonPercentage}%`}\r\n \r\n \r\n );\r\n };\r\n\r\n const percentageLabel = sportTypeId === SportTypeIds.TENNIS ? 'Games Won %' : 'Pts won %';\r\n const standingsHeadCells = [...sessionStandingsHeadCells, { id: 'playerMatchGameWinPercentage', label: percentageLabel }];\r\n\r\n return (\r\n \r\n \r\n \r\n Standings are determined using win/loss record. For more details,{' '}\r\n \r\n click here\r\n \r\n .\r\n \r\n \r\n );\r\n};\r\n\r\nSessionStandingsTable.propTypes = {\r\n ...sessionStandingsTablePropTypes,\r\n};\r\n\r\nexport default SessionStandingsTable;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nimport SessionStandingsTable from '../../../components/Tables/SessionStandingsTable';\r\n\r\nimport { standingsTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst StandingsTab = ({ sportTypeId = '', teamStandings = [] }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { MEDIUM_MEDIUM } = TypographySizes;\r\n\r\n return (\r\n \r\n {!teamStandings?.length ? (\r\n \r\n \r\n No team standings are available for this session.\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nStandingsTab.propTypes = {\r\n ...standingsTabPropTypes,\r\n};\r\n\r\nexport default StandingsTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { ContactCard, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport PasswordInput from '../../Form/PasswordInput';\r\nimport { messageUser } from '../../../utils/helpers';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport { passwordConfirmationProptypes } from '../../../utils/proptypes';\r\n\r\nconst PasswordConfirmation = ({ onPinSubmitted, isInvalidPasscode, captains = [], isLoading }) => {\r\n const defaultValues = { pin: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors, isSubmitting },\r\n control,\r\n setValue,\r\n setError,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (isInvalidPasscode) {\r\n setError('pin', isInvalidPasscode);\r\n }\r\n }, [isInvalidPasscode]);\r\n\r\n const handleOnPinSubmitted = (formValues) => {\r\n onPinSubmitted(formValues.pin);\r\n setValue('pin', '');\r\n };\r\n\r\n const handleOnMessageClick = (id, displayName) => {\r\n messageUser(id, displayName);\r\n };\r\n\r\n return (\r\n \r\n \r\n Enter team passcode\r\n \r\n \r\n \r\n Registration for this team is password protected. Please enter the password or PIN you received from the team captain or\r\n organizer.\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Don't have a passcode? Message the team captain.\r\n \r\n {!!captains?.length && (\r\n \r\n {captains.map((item) => {\r\n const displayName = `${item?.firstName} ${item?.lastName}`;\r\n return (\r\n
    \r\n \r\n handleOnMessageClick(item.id, displayName)} name={displayName} phone={item?.phone} email={item?.email} />\r\n
    \r\n );\r\n })}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nPasswordConfirmation.propTypes = {\r\n ...passwordConfirmationProptypes\r\n};\r\n\r\nexport default PasswordConfirmation;\r\n","import React, { useRef, useImperativeHandle } from 'react';\r\n\r\nconst StripeInput = React.forwardRef((props, inputRef) => {\r\n const elementRef = useRef();\r\n const { component: Component, ...rest } = props;\r\n useImperativeHandle(inputRef, () => ({\r\n focus: () => elementRef.current.focus,\r\n }));\r\n\r\n const handleOnReady = (element) => {\r\n elementRef.current = element;\r\n };\r\n\r\n return ;\r\n});\r\n\r\nexport default StripeInput;\r\n","import React, { useState } from 'react';\r\nimport { CardElement, useStripe, useElements } from '@stripe/react-stripe-js';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Stack from '@mui/material/Stack';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport Input from '../../Form/Input';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Select from '../../Form/Select';\r\nimport StripeInput from '../../Form/StripeInput';\r\nimport config from '../../../config';\r\nimport { useGetBillingCountriesQuery } from '../../../api/leaguesApi';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { submitPaymentFormPropTypes } from '../../../utils/proptypes';\r\n\r\nconst { marketingAppHost } = config;\r\n\r\nconst registrationTerms = [\r\n `By registering, I agree to UTR Sports'`,\r\n `any additional terms provided by the event organizer in the event description. I also agree to provide my contact info to the event organizer solely for the purpose of participating in this event.`,\r\n];\r\n\r\nconst SubmitPaymentForm = ({ clientSecret, onRegistrationSuccessful, segmentTrackingBody }) => {\r\n const dispatch = useDispatch();\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n const [stripeError, setStripeError] = useState('');\r\n\r\n const { data: billingCountries, isFetching, error } = useGetBillingCountriesQuery();\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n name: '',\r\n email: '',\r\n address: {\r\n country: '',\r\n },\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, isSubmitting },\r\n control,\r\n register,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleFormSubmit = async (formValues, event) => {\r\n if (window?.analytics) {\r\n window.analytics.track('Payment Info Entered', segmentTrackingBody);\r\n }\r\n event?.preventDefault();\r\n if (!stripe || !elements) {\r\n return;\r\n }\r\n\r\n const { error: stripeCardError } = await stripe.confirmCardPayment(clientSecret, {\r\n payment_method: {\r\n card: elements.getElement(CardElement),\r\n billing_details: formValues,\r\n },\r\n });\r\n\r\n if (stripeCardError) {\r\n setStripeError(stripeCardError.message);\r\n } else {\r\n onRegistrationSuccessful();\r\n if (window?.analytics) {\r\n window.analytics.track('Order Completed', segmentTrackingBody);\r\n }\r\n }\r\n };\r\n\r\n const handleInputOnFocus = () => {\r\n if (stripeError) {\r\n setStripeError(null);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {isFetching ? (\r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n {errors.email && (\r\n \r\n Must be in email format\r\n \r\n )}\r\n \r\n \r\n {registrationTerms[0]}\r\n  terms of service \r\n {registrationTerms[1]}\r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nSubmitPaymentForm.propTypes = {\r\n ...submitPaymentFormPropTypes\r\n};\r\n\r\nexport default SubmitPaymentForm;\r\n","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport SubmitPaymentForm from '../SubmitPaymentForm';\r\nimport { registrationConfirmationPropTypes } from '../../../utils/proptypes';\r\n\r\nconst RegistrationConfirmation = ({ registrationFees, clientSecret, onRegistrationSuccess, sessionId }) => {\r\n const { user } = useSelector((state) => state.auth);\r\n const { sessionEntryFee, leagueFee, serviceFee = 0, currencySymbol, total } = registrationFees || '';\r\n const formattedServiceFee = serviceFee?.toFixed(2);\r\n const formattedTotalFee = total?.toFixed(2);\r\n const finalCurrencySymbol = currencySymbol ?? '$';\r\n const PAID_LEAGUE = 'paid_league';\r\n const FREE_LEAGUE = 'free-league';\r\n const isPaidLeague = leagueFee + sessionEntryFee > 0;\r\n const segmentTrackingBody = {\r\n league_session_id: sessionId,\r\n member_id: user?.id,\r\n order_type: isPaidLeague ? PAID_LEAGUE : FREE_LEAGUE,\r\n currency: finalCurrencySymbol,\r\n session_fee: sessionEntryFee,\r\n league_fee: leagueFee,\r\n service_fee: serviceFee,\r\n amount_paid: total,\r\n revenue: total,\r\n };\r\n\r\n useEffect(() => {\r\n if (window?.analytics) {\r\n window.analytics.track('Checkout Started', segmentTrackingBody);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n Session Fee\r\n {finalCurrencySymbol}{sessionEntryFee}\r\n \r\n 0 ? 0 : 2} display=\"flex\" justifyContent=\"space-between\">\r\n League Fee\r\n {finalCurrencySymbol}{leagueFee}\r\n \r\n {serviceFee > 0 && (\r\n \r\n Service Fee\r\n {finalCurrencySymbol}{formattedServiceFee}\r\n \r\n )}\r\n \r\n \r\n Total\r\n {finalCurrencySymbol}{formattedTotalFee}\r\n \r\n \r\n \r\n Payment Information\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRegistrationConfirmation.propTypes = {\r\n ...registrationConfirmationPropTypes,\r\n};\r\n\r\nexport default RegistrationConfirmation;\r\n","import * as React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport { Typography, TeamCard, Button } from '@universal-tennis/ui-shared';\r\nimport { teamSelectionProptypes } from '../../../utils/proptypes';\r\n\r\nconst formatCaptainsString = (captains) => {\r\n if (!captains) return '';\r\n return captains.map((captain) => `${captain.firstName} ${captain.lastName}`)\r\n .map((item, i, array) => {\r\n if (i === 0) {\r\n return item;\r\n }\r\n if (i === array.length - 1) {\r\n return ` and ${item}`;\r\n }\r\n return ` ${item}`;\r\n })\r\n .toString();\r\n};\r\nconst TeamSelection = ({ onTeamCardClick, onNotifyOrgClick, teams, canSendSessionJoinRequest }) => {\r\n if (!teams) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n <>\r\n {teams.map((item) => {\r\n const getCaptains = formatCaptainsString(item?.captains);\r\n const formatDescription = `Captained by ${getCaptains}. ${item.hasRegistrationPin ? 'Requires a passcode for registration.' : ''}`;\r\n return (\r\n
    \r\n \r\n onTeamCardClick(item.id)} title={item.name} description={formatDescription} />\r\n
    \r\n );\r\n })}\r\n {teams.length === 0 && (\r\n \r\n Teams have not been added. Check back later to register for a team\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n No Team? No Problem.\r\n \r\n \r\n \r\n We'll send a message to the organizer that you are interested in finding a team.\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nTeamSelection.propTypes = {\r\n ...teamSelectionProptypes\r\n};\r\n\r\nexport default TeamSelection;\r\n","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport Input from '../../Form/Input';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\n\r\nimport { TypographySizes, SharedUICategories } from '../../../utils/constants';\r\nimport { defaultUsapValidationProptypes, usapValidationProptypes } from '../../../utils/proptypes';\r\n\r\nconst USAPValidation = ({ onMemberIdSubmitted, validationError = null, isLoading }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK, SMALL_MEDIUM } = TypographySizes;\r\n const usapUrl = 'https://usapickleball.sport80.com/';\r\n\r\n const defaultValues = {\r\n usapMemberId: ''\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, isSubmitting },\r\n control,\r\n setValue,\r\n setError\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (validationError) {\r\n setError('usapMemberId', '');\r\n }\r\n }, [validationError]);\r\n\r\n const handleFormSubmit = (values) => {\r\n onMemberIdSubmitted(values?.usapMemberId);\r\n setValue('usapMemberId', '');\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Enter your USAP member ID (required)\r\n If you don't have an ID or need to renew, click here.\r\n \r\n \r\n {validationError && (\r\n {validationError}\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nUSAPValidation.propTypes = {\r\n ...usapValidationProptypes\r\n};\r\n\r\nUSAPValidation.defaultProps = {\r\n ...defaultUsapValidationProptypes\r\n};\r\n\r\nexport default USAPValidation;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Elements } from '@stripe/react-stripe-js';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Drawer from '@mui/material/Drawer';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PasswordConfirmation from './PasswordConfirmation';\r\nimport RegistrationConfirmation from './RegistrationConfirmation';\r\nimport TeamSelection from './TeamSelection';\r\nimport USAPValidation from './USAPValidation';\r\nimport config from '../../config';\r\nimport { RegistrationStepIds, TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { defaultRegistrationDrawerPropTypes, registrationDrawerPropTypes } from '../../utils/proptypes';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useValidateRegistrationPinMutation, useValidateUsapMembershipMutation, useInitiateRegistrationMutation } from '../../api/leaguesApi';\r\n\r\nconst RegistrationDrawer = ({\r\n isOpen,\r\n isUsapSanctionedSession,\r\n onClose,\r\n onFreeSessionRegistration,\r\n onRegistrationSuccess,\r\n onTeamSelectionClick,\r\n registrationFees,\r\n teamData,\r\n teams,\r\n isSessionPage = false,\r\n ...rest\r\n}) => {\r\n const { user } = useSelector((state) => state.auth);\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('sm'));\r\n\r\n const [activeStep, setActiveStep] = useState(0);\r\n const [clientSecret, setClientSecret] = useState(null);\r\n const [isInvalidPin, setIsInvalidPin] = useState(false);\r\n const [registrationPin, setRegistrationPin] = useState(null);\r\n const [usapMemberId, setUsapMemberId] = useState(null);\r\n const [registrationSteps, setRegistrationSteps] = useState([]);\r\n const [stripeInstance, setStripeInstance] = useState(null);\r\n const [usapValidationError, setUsapValidationError] = useState(null);\r\n const [isInitiatingRegistration, setIsInitiatingRegistration] = useState(false);\r\n\r\n const userName = `${user?.firstName} ${user?.lastName}`;\r\n const drawerWidth = isLargeScreen ? 450 : '100%';\r\n\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_MEDIUM_CAP, X_SMALL_MEDIUM } = TypographySizes;\r\n const { hasRegistrationPin, teamId, sessionSummary, teamName } = teamData || {};\r\n const { TEAM_SELECTION, PASSWORD_CONFIRMATION, EVENT_QUESTIONS, CONFIRM_DETAILS } = RegistrationStepIds;\r\n\r\n const [validatePin, { isLoading: isLoadingPinValidation }] = useValidateRegistrationPinMutation();\r\n const [validateUsapMembership, { isSuccess: isUsapMembershipValid, isLoading: isLoadingMemberValidation }] = useValidateUsapMembershipMutation();\r\n const [initiateRegistration] = useInitiateRegistrationMutation();\r\n\r\n const initiateTeamRegistration = async (pin, memberId) => {\r\n setIsInitiatingRegistration(true);\r\n try {\r\n const registrationData = { teamId, sessionId: sessionSummary.id, registrationPin: pin, usapMemberId: memberId };\r\n const { clientSecret: secret, paymentAccountId, isFreeSession } = await initiateRegistration(registrationData).unwrap();\r\n if (isFreeSession) {\r\n setIsInitiatingRegistration(false);\r\n onFreeSessionRegistration();\r\n return;\r\n }\r\n if (secret && paymentAccountId) {\r\n const stripe = await loadStripe(config.stripeKey, { stripeAccount: paymentAccountId });\r\n setClientSecret(secret);\r\n setStripeInstance(stripe);\r\n setIsInitiatingRegistration(false);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n setIsInitiatingRegistration(false);\r\n }\r\n };\r\n\r\n const handleNext = () => {\r\n setActiveStep((prev) => prev + 1);\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prev) => (prev <= 0 ? prev : prev - 1));\r\n };\r\n\r\n const startRegistration = async ({ shouldAdvanceStep = false, pin, memberId }) => {\r\n if (shouldAdvanceStep) {\r\n handleNext();\r\n }\r\n\r\n await initiateTeamRegistration(pin, memberId);\r\n };\r\n\r\n useEffect(() => {\r\n const steps = [];\r\n\r\n if (isSessionPage) {\r\n steps.push({ id: TEAM_SELECTION, title: 'Team Selection' });\r\n }\r\n\r\n if (hasRegistrationPin) {\r\n steps.push({ id: PASSWORD_CONFIRMATION, title: 'Password Confirmation' });\r\n }\r\n\r\n if (isUsapSanctionedSession) {\r\n steps.push({ id: EVENT_QUESTIONS, title: 'Event Questions' });\r\n }\r\n\r\n steps.push({ id: CONFIRM_DETAILS, title: 'Confirm Details' });\r\n\r\n setRegistrationSteps(steps);\r\n\r\n const stepCount = steps?.length || 0;\r\n const isTeamPage = !isSessionPage;\r\n const hasTeamData = !!teamData;\r\n\r\n const hasPaymentOnly = (isTeamPage && stepCount === 1) || (hasTeamData && isSessionPage && stepCount === 2);\r\n const hasMultipleStepsSessionPage = hasTeamData && isSessionPage && stepCount > 2;\r\n\r\n if (hasPaymentOnly) {\r\n startRegistration({ shouldAdvanceStep: isSessionPage });\r\n } else if (hasMultipleStepsSessionPage) {\r\n handleNext();\r\n }\r\n }, [isSessionPage, hasRegistrationPin, isUsapSanctionedSession, teamData]);\r\n\r\n useEffect(() => {\r\n if (isUsapMembershipValid) {\r\n startRegistration({ shouldAdvanceStep: true, pin: registrationPin, memberId: usapMemberId });\r\n }\r\n }, [isUsapMembershipValid]);\r\n\r\n const handleOnTeamCardClick = (id) => {\r\n if (id === teamData?.teamId) {\r\n handleNext();\r\n } else {\r\n onTeamSelectionClick(id);\r\n }\r\n };\r\n\r\n const handleOnPinSubmitted = async (pin) => {\r\n setIsInvalidPin(false);\r\n\r\n try {\r\n const { isValid } = await validatePin({ teamId, pin }).unwrap();\r\n if (isValid) {\r\n setRegistrationPin(pin);\r\n if (isUsapSanctionedSession) {\r\n handleNext();\r\n } else {\r\n await startRegistration({ shouldAdvanceStep: true, pin });\r\n }\r\n } else {\r\n setRegistrationPin(null);\r\n setIsInvalidPin(true);\r\n }\r\n } catch (apiError) {\r\n setIsInvalidPin(true);\r\n }\r\n };\r\n\r\n const handleOnUSAPMemberIdSubmitted = async (memberId) => {\r\n setUsapValidationError(null);\r\n setUsapMemberId(memberId);\r\n try {\r\n await validateUsapMembership({ sessionId: sessionSummary?.id, usapMemberId: memberId }).unwrap();\r\n } catch (apiError) {\r\n setUsapValidationError(apiError?.message);\r\n }\r\n };\r\n\r\n const handleOnCloseButtonClicked = () => {\r\n onClose();\r\n };\r\n\r\n const showBackButton = activeStep !== 0;\r\n const isTeamSelectionStep = activeStep === registrationSteps.findIndex((step) => step.id === TEAM_SELECTION);\r\n const isPinValidationStep = activeStep === registrationSteps.findIndex((step) => step.id === PASSWORD_CONFIRMATION);\r\n const isEventQuestionsStep = activeStep === registrationSteps.findIndex((step) => step.id === EVENT_QUESTIONS);\r\n const isConfirmDetailsStep = activeStep === registrationSteps.findIndex((step) => step.id === CONFIRM_DETAILS);\r\n\r\n return (\r\n \r\n \r\n {showBackButton ? (\r\n \r\n \r\n \r\n ) : (\r\n
    \r\n )}\r\n \r\n \r\n {registrationSteps[activeStep]?.title}\r\n \r\n \r\n {userName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {(teams?.length > 0 || (!isSessionPage && teamName)) && !isTeamSelectionStep ? (\r\n \r\n {teamName}\r\n \r\n\r\n ) : null}\r\n {isTeamSelectionStep && isSessionPage && (\r\n \r\n )}\r\n {isPinValidationStep && hasRegistrationPin && (\r\n \r\n )}\r\n {isEventQuestionsStep && isUsapSanctionedSession && (\r\n \r\n )}\r\n {isConfirmDetailsStep && isInitiatingRegistration && (\r\n \r\n )}\r\n {isConfirmDetailsStep && clientSecret && (\r\n \r\n \r\n \r\n\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nRegistrationDrawer.propTypes = {\r\n ...registrationDrawerPropTypes\r\n};\r\n\r\nRegistrationDrawer.defaultProps = {\r\n ...defaultRegistrationDrawerPropTypes\r\n};\r\n\r\nexport default RegistrationDrawer;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\nimport TabContext from '@mui/lab/TabContext';\r\n\r\nimport Popup from '../../components/Popups/Popup';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport SessionPageHeader from './SessionPageHeader';\r\nimport OverviewTab from './OverviewTab';\r\nimport PlayersTab from '../../components/PlayerTab';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport StandingsTab from './StandingsTab';\r\nimport RegistrationDrawer from '../../components/RegistrationDrawer';\r\nimport { SessionTabs } from '../../utils/constants';\r\nimport { LeagueSessionTypes, SportTypeIds, LeagueSanctionTypes } from '../../utils/types';\r\nimport { mapSession } from '../../utils/sessions';\r\nimport { gtag } from '../../utils/analytics';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport {\r\n useGetSessionSummaryQuery,\r\n useRequestToCaptainMutation,\r\n useGetSessionStandingsQuery,\r\n useGetTeamSummaryQuery,\r\n useGetRegistrationFeesQuery,\r\n useGetSessionTeamsQuery,\r\n useRequestToJoinSessionMutation,\r\n} from '../../api/leaguesApi';\r\nimport { sessionPagePropTypes } from '../../utils/proptypes';\r\n\r\nconst SessionPage = () => {\r\n const { OVERVIEW, PLAYERS, SCHEDULE, DRAW, STANDINGS } = SessionTabs;\r\n const { user } = useSelector((state) => state.auth);\r\n const dispatch = useDispatch();\r\n const { sessionId } = useParams();\r\n const { MULTI_ROUND, TOURNAMENT } = LeagueSessionTypes;\r\n const [activeTab, setActiveTab] = useState(OVERVIEW);\r\n const [teamId, setTeamId] = useState(null);\r\n const [currentTeamData, setCurrentTeamData] = useState(null);\r\n const [showRegistrationDrawer, setShowRegistrationDrawer] = useState(false);\r\n const [showRegistrationSuccessPopup, setShowRegistrationSuccessPopup] = useState(false);\r\n const [showNotifyOrganizerSuccessPopup, setShowNotifyOrganizerSuccessPopup] = useState(false);\r\n const [showNotifyOrganizerFailurePopup, setShowNotifyOrganizerFailurePopup] = useState(false);\r\n const isUserLoggedIn = !!user;\r\n\r\n const { data: teamsAvailableData } = useGetSessionTeamsQuery(sessionId);\r\n const { data: teamData } = useGetTeamSummaryQuery(teamId, { skip: !teamId });\r\n const { data: registrationFees } = useGetRegistrationFeesQuery(teamId, { skip: !teamId });\r\n const { data: sessionData, isLoading, error: sessionSummaryError, refetch: refetchSummary } = useGetSessionSummaryQuery(sessionId);\r\n const {\r\n data: sessionStandings,\r\n isLoading: isLoadingStandings,\r\n error: standingsError,\r\n refetch: refetchStandings,\r\n } = useGetSessionStandingsQuery(sessionId);\r\n\r\n const [requestToCaptain, { isSuccess: isSuccessfulRequest }] = useRequestToCaptainMutation();\r\n const [requestToJoinSession] = useRequestToJoinSessionMutation();\r\n\r\n if (sessionSummaryError) {\r\n dispatch(showErrorPopup(sessionSummaryError));\r\n }\r\n\r\n if (standingsError) {\r\n dispatch(showErrorPopup(standingsError));\r\n }\r\n\r\n useEffect(() => {\r\n if (isSuccessfulRequest) {\r\n dispatch(\r\n showPopup({\r\n isError: false,\r\n title: 'Success',\r\n message: 'Your Captain request has been submitted! You will be contacted by the conference organizer shortly.',\r\n })\r\n );\r\n }\r\n }, [isSuccessfulRequest]);\r\n\r\n useEffect(() => {\r\n if (teamData) {\r\n setCurrentTeamData(teamData);\r\n }\r\n }, [teamData]);\r\n\r\n useEffect(() => {\r\n if (sessionData?.session?.sportTypeId) {\r\n dispatch(setSportTypeId(sessionData?.session?.sportTypeId));\r\n }\r\n }, [sessionData]);\r\n\r\n const handleRemoveTeamData = () => {\r\n setTeamId(null);\r\n setCurrentTeamData(null);\r\n };\r\n\r\n const handleRestAPIState = () => {\r\n refetchSummary();\r\n refetchStandings();\r\n };\r\n\r\n const handleOnTabChanged = (_, newValue) => {\r\n setActiveTab(newValue);\r\n };\r\n\r\n const handleOnRequestToCaptain = async () => {\r\n try {\r\n await requestToCaptain(sessionId).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnTeamSelectionClick = (id) => {\r\n setTeamId(id);\r\n if (teamData?.teamId === id) {\r\n setCurrentTeamData(teamData);\r\n }\r\n };\r\n\r\n const handleOnNotifyOrgClick = async () => {\r\n try {\r\n await requestToJoinSession(sessionId).unwrap();\r\n setShowNotifyOrganizerSuccessPopup(true);\r\n } catch (apiError) {\r\n setShowNotifyOrganizerFailurePopup(true);\r\n }\r\n };\r\n\r\n const handleOnRegisterClick = () => {\r\n gtag('event', {\r\n category: 'Checkout Started',\r\n context: `Leagues Session Page - sessionId: ${sessionId}`,\r\n });\r\n setShowRegistrationDrawer(true);\r\n };\r\n\r\n const handleOnRegistrationSuccess = () => {\r\n const { sessionEntryFee, leagueFee } = registrationFees || '';\r\n const totalFee = sessionEntryFee + leagueFee;\r\n const isTennis = sessionData?.session?.sportTypeId === SportTypeIds.TENNIS;\r\n gtag('purchase', {\r\n category: 'Event Registration',\r\n context: `Team ${isTennis ? 'Tennis' : 'Pickleball'}`,\r\n value: totalFee,\r\n });\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const handleOnCloseRegistrationSuccessPopup = async () => {\r\n await setShowRegistrationDrawer(false);\r\n await setShowRegistrationSuccessPopup(false);\r\n await handleRestAPIState();\r\n await handleRemoveTeamData();\r\n };\r\n\r\n const handleOnCloseNotificationSuccessPopup = () => {\r\n setShowRegistrationDrawer(false);\r\n setShowNotifyOrganizerSuccessPopup(false);\r\n };\r\n\r\n const handleOnCloseNotificationFailurePopup = () => {\r\n setShowNotifyOrganizerFailurePopup(false);\r\n };\r\n\r\n const handleOnCloseDrawer = () => {\r\n handleRemoveTeamData();\r\n setShowRegistrationDrawer(false);\r\n };\r\n\r\n const handleOnFreeSessionRegistration = () => {\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const isMultiRoundSession = sessionData?.session?.sessionTypeId === MULTI_ROUND;\r\n\r\n const renderSessionContent = (data) => {\r\n const { session: currentSession, conferenceOrganizers } = data;\r\n const mappedSession = mapSession(currentSession);\r\n const {\r\n description,\r\n doublesMatchCount,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionDates,\r\n sportTypeId,\r\n singlesMatchCount,\r\n } = mappedSession;\r\n const sessionDescription = description || 'No description was provided for this session.';\r\n const cost = `$${registrationFee} - $${registrationFee + registrationVerificationFee}`;\r\n const singlesFormat = `${singlesMatchCount} Singles`;\r\n const doublesFormat = `${doublesMatchCount} Doubles`;\r\n const isTournament = currentSession?.sessionTypeId === TOURNAMENT;\r\n const MATCH_TAB = isTournament ? DRAW : SCHEDULE;\r\n const teamStandings = [...sessionStandings.teamStandings];\r\n const noSidePadding = { px: 0 };\r\n let format;\r\n if (singlesMatchCount !== 0 && doublesMatchCount !== 0) {\r\n format = `${doublesFormat} / ${singlesFormat}`;\r\n } else if (doublesMatchCount === 0) {\r\n format = singlesFormat;\r\n } else if (singlesMatchCount === 0) {\r\n format = doublesFormat;\r\n }\r\n\r\n return (\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 return (\r\n \r\n {(isLoading || isLoadingStandings) && }\r\n {sessionData && sessionStandings && (\r\n <>\r\n \r\n \r\n {renderSessionContent(sessionData)}\r\n \r\n )}\r\n {showRegistrationDrawer && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSessionPage.propTypes = {\r\n ...sessionPagePropTypes,\r\n};\r\n\r\nexport default SessionPage;\r\n","import React from 'react';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Typography from '@mui/material/Typography';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Link from '@mui/material/Link';\r\n\r\nconst CompletedSessionModal = ({ isOpen, onClose }) => {\r\n const verifiedRulesLink = 'https://www.utrsports.net/verified';\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n };\r\n\r\n return (\r\n \r\n Verified Session Complete\r\n \r\n \r\n {`Editing scores for this team match is closed as its verified session ended more than 3 days ago. For questions, please view the `}\r\n \r\n verifed rules\r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CompletedSessionModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { StyledTooltip } from '../../../components/Styled';\r\nimport { SharedUICategories, TypographySizes, LineupStatusType, LineupButtonLabels, LineupButtonTooltipText } from '../../../utils/constants';\r\n\r\nconst LineupControls = ({ lineupData, canUserViewLineups, hasMatchDatePassed, onShowLineupModal, onLineupStatusChange }) => {\r\n const { LOCKED, PUBLISHED, DRAFT } = LineupStatusType;\r\n const { PUBLISH, UNPUBLISH, LOCK, UNLOCK } = LineupButtonLabels;\r\n const { PUBLISH_TOOLTIP, LOCK_TOOLTIP, UNPUBLISH_TOOLTIP, UNLOCK_TOOLTIP } = LineupButtonTooltipText;\r\n\r\n const [lineupStatusId, setLineupStatusId] = useState(false);\r\n const [showSetLinesButton, setShowLinesButton] = useState(false);\r\n const [showEditLinesButton, setShowEditLinesButton] = useState(false);\r\n const [showLockButton, setShowLockButton] = useState(false);\r\n const [showPublishButton, setShowPublishButton] = useState(false);\r\n const [isLineupStatusButtonsDisabled, setIsLineupStatusButtonsDisabled] = useState(false);\r\n const [isUserCaptain, setIsUserCaptain] = useState(false);\r\n const [lineupButtonLabels, setLineupButtonLabels] = useState({\r\n lockButton: LOCK,\r\n publishButton: PUBLISH,\r\n lockTooltip: LOCK_TOOLTIP,\r\n publishTooltip: PUBLISH_TOOLTIP\r\n });\r\n\r\n useEffect(() => {\r\n if (lineupData) {\r\n const { isTeamCaptain, numberOfSetLines, hasPostedScores, statusId, numberOfLines } = lineupData;\r\n const isDraftLineup = statusId === DRAFT;\r\n const isLockedLineup = statusId === LOCKED;\r\n const isCaptainWithNoScoresPosted = isTeamCaptain && !hasPostedScores;\r\n const isSetLinesButtonVisible = isCaptainWithNoScoresPosted && numberOfSetLines === 0;\r\n const isEditLinesButtonVisible = isCaptainWithNoScoresPosted && numberOfSetLines > 0 && isDraftLineup;\r\n const isLockButtonVisible = isCaptainWithNoScoresPosted && (isDraftLineup || isLockedLineup) && numberOfSetLines > 0;\r\n const isPublishButtonVisible = isCaptainWithNoScoresPosted && numberOfSetLines > 0;\r\n const isStatusButtonsDisabled = isTeamCaptain && isDraftLineup && numberOfSetLines < numberOfLines;\r\n const lockButtonLabel = isDraftLineup ? LOCK : UNLOCK;\r\n const lockTooltipText = isDraftLineup ? LOCK_TOOLTIP : UNLOCK_TOOLTIP;\r\n const publishButtonLabel = isDraftLineup || isLockedLineup ? PUBLISH : UNPUBLISH;\r\n const publishTooltipText = isDraftLineup || isLockedLineup ? PUBLISH_TOOLTIP : UNPUBLISH_TOOLTIP;\r\n\r\n setLineupStatusId(statusId);\r\n setShowLinesButton(isSetLinesButtonVisible);\r\n setShowEditLinesButton(isEditLinesButtonVisible);\r\n setShowLockButton(isLockButtonVisible);\r\n setShowPublishButton(isPublishButtonVisible);\r\n setIsUserCaptain(isTeamCaptain);\r\n setIsLineupStatusButtonsDisabled(isStatusButtonsDisabled);\r\n setLineupButtonLabels({\r\n lockButton: lockButtonLabel,\r\n publishButton: publishButtonLabel,\r\n lockTooltip: lockTooltipText,\r\n publishTooltip: publishTooltipText\r\n });\r\n }\r\n }, [lineupData]);\r\n\r\n const handleOnShowLineupModal = () => {\r\n onShowLineupModal();\r\n };\r\n\r\n const handleOnToggleLock = () => {\r\n let updatedStatus;\r\n\r\n if (lineupStatusId === DRAFT || lineupStatusId === PUBLISHED) {\r\n updatedStatus = LOCKED;\r\n } else {\r\n updatedStatus = DRAFT;\r\n }\r\n\r\n onLineupStatusChange(updatedStatus);\r\n };\r\n\r\n const handleOnTogglePublish = () => {\r\n let updatedStatus;\r\n\r\n if (lineupStatusId === DRAFT || lineupStatusId === LOCKED) {\r\n updatedStatus = PUBLISHED;\r\n } else if (lineupStatusId === PUBLISHED) {\r\n updatedStatus = LOCKED;\r\n }\r\n\r\n onLineupStatusChange(updatedStatus);\r\n };\r\n\r\n return (\r\n \r\n {showSetLinesButton && (\r\n \r\n \r\n \r\n )}\r\n {isUserCaptain && (\r\n \r\n \r\n {showLockButton && (\r\n isLineupStatusButtonsDisabled ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n )}\r\n {showPublishButton && (\r\n isLineupStatusButtonsDisabled ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n {showEditLinesButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!isUserCaptain && !canUserViewLineups && !hasMatchDatePassed && (\r\n \r\n Lines have not been published\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LineupControls;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport { UTMap, Typography } from '@universal-tennis/ui-shared';\r\n\r\nconst LocationTab = ({ description = '', location }) => {\r\n const { placeId, placeName, formattedAddress } = location || {};\r\n\r\n return (\r\n \r\n {location ? (\r\n \r\n \r\n {placeName}\r\n \r\n \r\n {formattedAddress}\r\n \r\n \r\n \r\n \r\n \r\n {description}\r\n \r\n \r\n ) : (\r\n \r\n TBD\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LocationTab;\r\n","import { ResultTypes } from './types';\r\n\r\nconst { COMPLETED, COMPLETED_WITH_PARTIAL_SCORES, DEFAULTED, WITHDREW, RETIRED, INCOMPLETE, MATCH_NOT_PLAYED } = ResultTypes;\r\n\r\nexport const SideKeys = {\r\n SIDE_1: 'side1',\r\n SIDE_2: 'side2',\r\n};\r\n\r\nexport const MatchPositionKeys = {\r\n MATCH_POSITION_1: 'position1',\r\n MATCH_POSITION_2: 'position2',\r\n};\r\n\r\nexport const MatchPositions = {\r\n POSITION_1: 1,\r\n POSITION_2: 2,\r\n};\r\n\r\nexport const PlayerKeys = {\r\n PLAYER_1: 'player1',\r\n PLAYER_2: 'player2',\r\n};\r\n\r\nexport const ValidationErrors = {\r\n SET_SCORE_INVALID: 'Invalid score for set ',\r\n SET_SCORE_INCOMPLETE: 'Incomplete score for set ',\r\n MISSING_TIEBREAKER_SCORE: 'Missing tiebreaker scores for set ',\r\n TIEBREAKER_SAME_SCORE: 'Tiebreaker scores cannot be the same',\r\n TIEBREAKER_MISMATCHED_SCORE: 'Tiebreaker winner must have higher set score',\r\n TIEBREAKER_MINIMUM_NOT_MET: 'Tiebreaker winner must have at least 7 points',\r\n TIEBREAKER_FAST_FOUR_MINIMUM_NOT_MET: 'Tiebreaker winner must have at least 5 points',\r\n TIEBREAKER_MARGIN_INVALID: 'Tiebreaker winner must win by 2 points',\r\n TIEBREAKER_OUT_OF_RANGE: 'Tiebreaker score is out of range for set ',\r\n TWO_WITH_TIEBREAKER_INVALID_SET_THREE_SCORE: 'Set 3 score must be 1-0 or 0-1',\r\n NO_WINNER_DETERMINED: 'Match outcome must have an evident winner',\r\n NO_MULTIPLE_PARTIAL_SCORES: 'Match outcome cannot have more than one set with a partial score',\r\n NO_SCORES_FOR_OUTCOME: 'Match outcome should not have scores entered',\r\n SET_SCORES_REQUIRED_FOR_OUTCOME: 'At minimum a score needs to be entered for set 1',\r\n UNDER_WIN_LIMIT: 'Winning team must have 2 wins for this match format',\r\n OVER_WIN_LIMIT: 'Winning team cannot have more than 2 wins for this match format',\r\n SETS_ORDERED_INCORRECTLY: 'Sets are ordered incorrectly',\r\n GAME_SCORE_INVALID: 'Invalid score for game ',\r\n GAME_SCORE_INCOMPLETE: 'Incomplete score for game ',\r\n GAME_SCORE_NO_TIE: 'Cannot have a tie score for game ',\r\n GAME_SCORES_REQUIRED_FOR_OUTCOME: 'At minimum a score needs to be entered for game 1',\r\n};\r\n\r\nexport const isNumericScore = (score) => {\r\n return !Number.isNaN(parseInt(score));\r\n};\r\n\r\nexport const hasScoresEntered = (matchScores) => {\r\n let hasScore = false;\r\n matchScores.forEach((input) => {\r\n const hasPosition1Score = input?.position1Score || input?.position1Score === 0;\r\n const hasPosition2Score = input?.position2Score || input?.position2Score === 0;\r\n if (hasPosition1Score || hasPosition2Score) {\r\n hasScore = true;\r\n }\r\n });\r\n return hasScore;\r\n};\r\n\r\nexport const findPlayerInTeam = (playerId, teamMembers = []) => {\r\n return teamMembers.find((player) => player.playerId === playerId);\r\n};\r\n\r\nexport const getPlayerName = (playerId, teamMembers) => {\r\n const player = findPlayerInTeam(playerId, teamMembers);\r\n return `${player?.firstName} ${player?.lastName}`;\r\n};\r\n\r\nexport const clearMatchScores = (match) => {\r\n const { side1, side2 } = match || {};\r\n const clearedSideResult = {\r\n set1Score: null,\r\n set2Score: null,\r\n set3Score: null,\r\n set4Score: null,\r\n set5Score: null,\r\n tieBreakSet1Score: null,\r\n tieBreakSet2Score: null,\r\n tieBreakSet3Score: null,\r\n tieBreakSet4Score: null,\r\n tieBreakSet5Score: null,\r\n };\r\n\r\n const updatedMatch = {\r\n ...match,\r\n side1: { ...side1, sideResult: { ...side1.sideResult, ...clearedSideResult } },\r\n side2: { ...side2, sideResult: { ...side2.sideResult, ...clearedSideResult } },\r\n };\r\n\r\n return updatedMatch;\r\n};\r\n\r\nexport const switchMatchScores = (match) => {\r\n const { side1, side2 } = match || {};\r\n const updatedMatch = {\r\n ...match,\r\n side1: { ...side1, sideResult: { ...side2.sideResult, sideId: side1.sideResult.sideId } },\r\n side2: { ...side2, sideResult: { ...side1.sideResult, sideId: side2.sideResult.sideId } },\r\n };\r\n return updatedMatch;\r\n};\r\n\r\nconst getResultScore = (score) => {\r\n return score === '' ? null : score;\r\n};\r\n\r\nexport const getPositionsForMatch = (match = {}, isSide1Position1) => {\r\n const { side1, side2 } = match;\r\n const position1 = isSide1Position1 ? side1 : side2;\r\n const position2 = isSide1Position1 ? side2 : side1;\r\n\r\n return { position1, position2 };\r\n};\r\n\r\nexport const hasDuplicatePlayersInMatch = (match) => {\r\n const { side1, side2, isDoubles } = match;\r\n\r\n if (isDoubles) {\r\n const playerIds = [side1?.player1?.playerId, side1?.player2?.playerId, side2?.player1?.playerId, side2?.player2?.playerId].filter((playerId) => playerId);\r\n if (playerIds.length !== new Set(playerIds).size) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n return side1?.player1?.playerId && side2?.player1?.playerId && side1?.player1?.playerId === side2?.player1?.playerId;\r\n};\r\n\r\nexport const hasInvalidPlayerCount = (match, matchOutcomeId) => {\r\n const { side1, side2, isDoubles } = match;\r\n const requiredPlayersForDoublesDefault = 2;\r\n const requiredPlayersForSinglesDefault = 1;\r\n const requiredPlayersForSingles = 2;\r\n const requiredPlayersForDoubles = 4;\r\n const playerIds = [side1?.player1?.playerId, side1?.player2?.playerId, side2?.player1?.playerId, side2?.player2?.playerId].filter((playerId) => playerId);\r\n\r\n switch (matchOutcomeId) {\r\n case MATCH_NOT_PLAYED: {\r\n if (playerIds.length !== 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n case DEFAULTED: {\r\n if (isDoubles && playerIds.length !== requiredPlayersForDoublesDefault) {\r\n return true;\r\n }\r\n if (!isDoubles && playerIds.length !== requiredPlayersForSinglesDefault) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n case RETIRED:\r\n case WITHDREW:\r\n case COMPLETED:\r\n case INCOMPLETE:\r\n case COMPLETED_WITH_PARTIAL_SCORES: {\r\n if (isDoubles && playerIds.length !== requiredPlayersForDoubles) {\r\n return true;\r\n }\r\n if (!isDoubles && playerIds.length !== requiredPlayersForSingles) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const createDefaultedMatchResults = (match, matchOutcome, isSide1Position1) => {\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const { side1, side2 } = match;\r\n const clearedSideResult = {\r\n set1Score: null,\r\n set2Score: null,\r\n set3Score: null,\r\n set4Score: null,\r\n set5Score: null,\r\n tieBreakSet1Score: null,\r\n tieBreakSet2Score: null,\r\n tieBreakSet3Score: null,\r\n tieBreakSet4Score: null,\r\n tieBreakSet5Score: null,\r\n };\r\n const results = {\r\n winningSideId: matchOutcome.winningSideId,\r\n resultCompletionTypeId: DEFAULTED,\r\n side1Results: {\r\n ...clearedSideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n sideId: side1.sideId,\r\n },\r\n side2Results: {\r\n ...clearedSideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n sideId: side2.sideId,\r\n },\r\n };\r\n if (matchOutcome.outcomeId === MATCH_NOT_PLAYED) {\r\n return {\r\n ...results,\r\n winningSideId: null,\r\n resultCompletionTypeId: MATCH_NOT_PLAYED,\r\n };\r\n }\r\n\r\n const { side1Results, side2Results } = results;\r\n const position1 = isSide1Position1 ? side1 : side2;\r\n const position2 = isSide1Position1 ? side2 : side1;\r\n const position1Results = isSide1Position1 ? side1Results : side2Results;\r\n const position2Results = isSide1Position1 ? side2Results : side1Results;\r\n\r\n const position1Winner = position1?.sideId === matchOutcome.winningSideId;\r\n\r\n if (position1Winner) {\r\n position1Results.player1MemberId = position1?.player1?.memberId || position1?.player1?.id;\r\n position1Results.player1PlayerId = position1?.player1?.playerId;\r\n position1Results.player2MemberId = position1?.player2?.memberId || position1?.player2?.id;\r\n position1Results.player2PlayerId = position1?.player2?.playerId;\r\n } else {\r\n position2Results.player1MemberId = position2?.player1?.memberId || position2?.player1?.id;\r\n position2Results.player1PlayerId = position2?.player1?.playerId;\r\n position2Results.player2MemberId = position2?.player2?.memberId || position2?.player2?.id;\r\n position2Results.player2PlayerId = position2?.player2?.playerId;\r\n }\r\n\r\n return results;\r\n};\r\n\r\nexport const createMatchResults = (match, sets, winningSideId, resultCompletionTypeId, isSide1Position1) => {\r\n const { side1, side2 } = match;\r\n const results = {\r\n winningSideId,\r\n resultCompletionTypeId,\r\n side1Results: {\r\n ...side1.sideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n },\r\n side2Results: {\r\n ...side2.sideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n },\r\n };\r\n const { side1Results, side2Results } = results;\r\n\r\n const position1 = isSide1Position1 ? side1 : side2;\r\n const position2 = isSide1Position1 ? side2 : side1;\r\n const position1Results = isSide1Position1 ? side1Results : side2Results;\r\n const position2Results = isSide1Position1 ? side2Results : side1Results;\r\n\r\n position1Results.player1MemberId = position1?.player1?.memberId || position1?.player1?.id;\r\n position1Results.player1PlayerId = position1?.player1?.playerId;\r\n position1Results.player2MemberId = position1?.player2?.memberId || position1?.player2?.id;\r\n position1Results.player2PlayerId = position1?.player2?.playerId;\r\n position1Results.set1Score = getResultScore(sets[0].position1Score);\r\n position1Results.set2Score = getResultScore(sets[1]?.position1Score);\r\n position1Results.set3Score = getResultScore(sets[2]?.position1Score);\r\n position1Results.tieBreakSet1Score = getResultScore(sets[0]?.position1Tiebreaker);\r\n position1Results.tieBreakSet2Score = getResultScore(sets[1]?.position1Tiebreaker);\r\n position1Results.tieBreakSet3Score = getResultScore(sets[2]?.position1Tiebreaker);\r\n\r\n position2Results.player1MemberId = position2?.player1?.memberId || position2?.player1?.id;\r\n position2Results.player1PlayerId = position2?.player1?.playerId;\r\n position2Results.player2MemberId = position2?.player2?.memberId || position2?.player2?.id;\r\n position2Results.player2PlayerId = position2?.player2?.playerId;\r\n position2Results.set1Score = getResultScore(sets[0].position2Score);\r\n position2Results.set2Score = getResultScore(sets[1]?.position2Score);\r\n position2Results.set3Score = getResultScore(sets[2]?.position2Score);\r\n position2Results.tieBreakSet1Score = getResultScore(sets[0]?.position2Tiebreaker);\r\n position2Results.tieBreakSet2Score = getResultScore(sets[1]?.position2Tiebreaker);\r\n position2Results.tieBreakSet3Score = getResultScore(sets[2]?.position2Tiebreaker);\r\n\r\n return results;\r\n};\r\n\r\nexport const getMatchOutcomeOptions = (match, position1Team, position2Team, isSide1Position1) => {\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1) || {};\r\n const positionOnePlayerOne = position1?.player1?.firstName && position1?.player1?.lastName ? `${position1?.player1?.firstName} ${position1?.player1?.lastName}` : 'Not set';\r\n const positionTwoPlayerOne = position2?.player1?.firstName && position2?.player1?.lastName ? `${position2?.player1?.firstName} ${position2?.player1?.lastName}` : 'Not set';\r\n const position1SideId = position1?.sideId;\r\n const position2SideId = position2?.sideId;\r\n const isDoubles = match?.isDoubles;\r\n const position1Name = isDoubles ? position1Team?.name : positionOnePlayerOne;\r\n const position2Name = isDoubles ? position2Team?.name : positionTwoPlayerOne;\r\n\r\n const matchOutcomes = [\r\n { id: 1, outcomeId: COMPLETED, name: 'Completed' },\r\n { id: 2, outcomeId: COMPLETED_WITH_PARTIAL_SCORES, name: 'Completed with partial scores' },\r\n { id: 3, outcomeId: INCOMPLETE, name: 'Postponed' },\r\n { id: 4, outcomeId: DEFAULTED, winningSideId: position2SideId, name: `Defaulted - ${position1Team?.name}` },\r\n { id: 5, outcomeId: DEFAULTED, winningSideId: position1SideId, name: `Defaulted - ${position2Team?.name}` },\r\n { id: 6, outcomeId: MATCH_NOT_PLAYED, name: `Match not played` },\r\n { id: 7, outcomeId: RETIRED, winningSideId: position2SideId, name: `Retired - ${position1Name}` },\r\n { id: 8, outcomeId: RETIRED, winningSideId: position1SideId, name: `Retired - ${position2Name}` },\r\n { id: 9, outcomeId: WITHDREW, winningSideId: position2SideId, name: `Withdrew - ${position1Name}` },\r\n { id: 10, outcomeId: WITHDREW, winningSideId: position1SideId, name: `Withdrew - ${position2Name}` },\r\n ];\r\n\r\n return matchOutcomes;\r\n};\r\n\r\nexport const hasScores = (scoreType) => {\r\n const hasPosition1Score = isNumericScore(scoreType?.position1Score);\r\n const hasPosition2Score = isNumericScore(scoreType?.position2Score);\r\n\r\n return hasPosition1Score && hasPosition2Score;\r\n};\r\n\r\nexport const hasPartialScores = (scoreType) => {\r\n const hasPosition1Score = isNumericScore(scoreType?.position1Score);\r\n const hasPosition2Score = isNumericScore(scoreType?.position2Score);\r\n\r\n if ((hasPosition1Score && !hasPosition2Score) || (hasPosition2Score && !hasPosition1Score)) {\r\n return true;\r\n }\r\n\r\n if (hasPosition1Score && hasPosition2Score) {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isPosition1Winner = (contest) => {\r\n const position1Score = parseInt(contest?.position1Score);\r\n const position2Score = parseInt(contest?.position2Score);\r\n\r\n return position1Score > position2Score;\r\n};\r\n\r\nexport const isPosition2Winner = (contest) => {\r\n const position1Score = parseInt(contest?.position1Score);\r\n const position2Score = parseInt(contest?.position2Score);\r\n\r\n return position2Score > position1Score;\r\n};\r\n\r\nexport const getOutcomeForExistingMatch = ({ options = [], resultCompletionTypeId, winnerSideId }) => {\r\n let outcome;\r\n let outcomeIndex;\r\n const playerSpecificOutcomes = [RETIRED, WITHDREW, DEFAULTED];\r\n\r\n if (playerSpecificOutcomes.includes(resultCompletionTypeId)) {\r\n outcomeIndex = options?.findIndex(\r\n (option) => resultCompletionTypeId === option?.outcomeId && winnerSideId === option?.winningSideId\r\n );\r\n\r\n outcome = options[outcomeIndex];\r\n } else {\r\n outcomeIndex = options?.findIndex((option) => option?.outcomeId === resultCompletionTypeId);\r\n outcome = options[outcomeIndex];\r\n }\r\n\r\n return outcome;\r\n};\r\n","import { isEqual } from 'lodash';\r\nimport { TennisScoringFormatTypes, ResultTypes } from './types';\r\nimport { isNumericScore, hasScores, hasPartialScores, ValidationErrors, isPosition1Winner, isPosition2Winner, getPositionsForMatch } from './postScoreShared';\r\n\r\nconst _ = { isEqual };\r\nconst { BEST_OF_THREE, TWO_SETS_WITH_TIEBREAKER, SINGLE_SET, TIME_BASED, FAST_FOUR } = TennisScoringFormatTypes;\r\nconst { COMPLETED, COMPLETED_WITH_PARTIAL_SCORES, DEFAULTED, WITHDREW, RETIRED } = ResultTypes;\r\n\r\nexport const DefaultSets = [\r\n { id: 1, position1Score: '', position2Score: '', position1Tiebreaker: '', position2Tiebreaker: '' },\r\n { id: 2, position1Score: '', position2Score: '', position1Tiebreaker: '', position2Tiebreaker: '' },\r\n { id: 3, position1Score: '', position2Score: '', position1Tiebreaker: '', position2Tiebreaker: '' },\r\n];\r\n\r\nexport const isSetTied = (set, scoringFormatTypeId) => {\r\n const hasPosition1Score = isNumericScore(set?.position1Score);\r\n const hasPosition2Score = isNumericScore(set?.position2Score);\r\n const hasTiebreakerScore = set.position1Tiebreaker !== '' || set.position2Tiebreaker !== '';\r\n\r\n let isTieScore;\r\n\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set?.position1Score === 7 && set?.position2Score === 6) || (set?.position1Score === 6 && set?.position2Score === 7));\r\n break;\r\n case TWO_SETS_WITH_TIEBREAKER:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set?.position1Score === 7 && set?.position2Score === 6) ||\r\n (set?.position1Score === 6 && set?.position2Score === 7) ||\r\n (set.id === 3 && Math.abs(set?.position1Score - set?.position2Score) === 1));\r\n break;\r\n case SINGLE_SET:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set.position1Score >= 6 && set.position2Score > 6) || (set.position1Score > 6 && set.position2Score >= 6)) &&\r\n Math.abs(set.position1Score - set.position2Score) === 1;\r\n break;\r\n case FAST_FOUR:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set?.position1Score === 4 && set?.position2Score === 3) || (set?.position1Score === 3 && set?.position2Score === 4));\r\n break;\r\n case TIME_BASED:\r\n isTieScore = hasPosition1Score && hasPosition2Score && Math.abs(set?.position1Score - set?.position2Score) === 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return isTieScore || hasTiebreakerScore;\r\n};\r\n\r\nexport const switchSetScores = (sets) => {\r\n const switchedSets = sets.map((set) => {\r\n const { id, position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n return {\r\n id,\r\n position1Score: position2Score,\r\n position2Score: position1Score,\r\n position1Tiebreaker: position2Tiebreaker,\r\n position2Tiebreaker: position1Tiebreaker,\r\n };\r\n });\r\n\r\n return switchedSets;\r\n};\r\n\r\nexport const getValidatedValueForSet = (setId, value, scoringFormatTypeId, isTieBreaker) => {\r\n const maxScoreForRegularSets = 7;\r\n const maxScoreForProSets = 11;\r\n const maxScoreForFastFourSets = 4;\r\n const maxScoreForMatchTiebreakerSet = 1;\r\n let score = parseInt(value);\r\n\r\n score %= 100;\r\n\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE:\r\n if (score > maxScoreForRegularSets && !isTieBreaker) {\r\n score = maxScoreForRegularSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case TWO_SETS_WITH_TIEBREAKER:\r\n if (setId === 1 || setId === 2) {\r\n if (score > maxScoreForRegularSets && !isTieBreaker) {\r\n score = maxScoreForRegularSets;\r\n }\r\n } else if (score > maxScoreForMatchTiebreakerSet && !isTieBreaker) {\r\n score = maxScoreForMatchTiebreakerSet;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case SINGLE_SET:\r\n if (score > maxScoreForProSets && !isTieBreaker) {\r\n score = maxScoreForProSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case TIME_BASED:\r\n if (score > maxScoreForProSets && !isTieBreaker) {\r\n score = maxScoreForProSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case FAST_FOUR:\r\n if (score > maxScoreForFastFourSets && !isTieBreaker) {\r\n score = maxScoreForFastFourSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return Number.isNaN(score) ? '' : score;\r\n};\r\n\r\nconst hasUnorderedScoringSets = (sets) => {\r\n const scoringSets = sets.filter((set) => hasScores(set));\r\n const skippedFirstSetIds = [2, 3];\r\n const skippedSecondSetIds = [1, 3];\r\n const sortedSetIds = scoringSets.map((set) => set.id).sort();\r\n\r\n return _.isEqual(sortedSetIds, skippedFirstSetIds) || _.isEqual(sortedSetIds, skippedSecondSetIds);\r\n};\r\n\r\nconst validateTiebreaker = (set) => {\r\n const tiebreakerVictoryMargin = 1;\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n\r\n let tiebreakerError = null;\r\n\r\n const isTiebreakerMismatch =\r\n (position1Score > position2Score && position2Tiebreaker > position1Tiebreaker) ||\r\n (position2Score > position1Score && position1Tiebreaker > position2Tiebreaker);\r\n\r\n if (position1Tiebreaker === position2Tiebreaker) {\r\n tiebreakerError = ValidationErrors.TIEBREAKER_SAME_SCORE;\r\n } else if (isTiebreakerMismatch) {\r\n tiebreakerError = ValidationErrors.TIEBREAKER_MISMATCHED_SCORE;\r\n } else if (Math.abs(position1Tiebreaker - position2Tiebreaker) < tiebreakerVictoryMargin) {\r\n tiebreakerError = ValidationErrors.TIEBREAKER_MARGIN_INVALID;\r\n }\r\n\r\n return tiebreakerError;\r\n};\r\n\r\nexport const validateCompletedBestOfThree = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const minPointsAllowed = 6;\r\n const maxPointsAllowed = 7;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const hasNotMetMinimumAmountOfPoints = position1Score < minPointsAllowed && position2Score < minPointsAllowed;\r\n\r\n const isTiebreakerScore =\r\n (position1Score === maxPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position2Score === maxPointsAllowed && position1Score === minPointsAllowed);\r\n\r\n const hasTieScore =\r\n (position1Score === minPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position1Score === maxPointsAllowed && position2Score === maxPointsAllowed);\r\n\r\n const hasOutOfRangeScore =\r\n (position1Score === maxPointsAllowed && position2Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === maxPointsAllowed && position1Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position1Score === minPointsAllowed && position2Score === maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === minPointsAllowed && position1Score === maxPointsAllowedForSevenPointWinner);\r\n\r\n let error = null;\r\n\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (isTiebreakerScore && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateCompletedTwoSetWithTiebreaker = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const minPointsAllowed = 6;\r\n const maxPointsAllowed = 7;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const maxThirdSetPointsAllowed = 1;\r\n const minThirdSetPointsAllowed = 0;\r\n\r\n const isTiebreakerSet3Score =\r\n (position1Score === maxThirdSetPointsAllowed && position2Score === minThirdSetPointsAllowed) ||\r\n (position2Score === maxThirdSetPointsAllowed && position1Score === minThirdSetPointsAllowed);\r\n\r\n const isTiebreakerScore =\r\n (position1Score === maxPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position2Score === maxPointsAllowed && position1Score === minPointsAllowed);\r\n\r\n const hasTieScore =\r\n (position1Score === minPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position1Score === maxPointsAllowed && position2Score === maxPointsAllowed);\r\n\r\n const hasOutOfRangeScore =\r\n (position1Score === maxPointsAllowed && position2Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === maxPointsAllowed && position1Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position1Score === minPointsAllowed && position2Score === maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === minPointsAllowed && position1Score === maxPointsAllowedForSevenPointWinner);\r\n\r\n const hasNotMetMinimumAmountOfPoints = position1Score < minPointsAllowed && position2Score < minPointsAllowed;\r\n const hasThirdSetTie = position1Score === position2Score;\r\n const hasOutOfRangeThirdSetScore = position1Score > maxThirdSetPointsAllowed || position2Score > maxThirdSetPointsAllowed;\r\n\r\n let error = null;\r\n\r\n if (set.id !== 3) {\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n } else if (hasThirdSetTie || hasOutOfRangeThirdSetScore) {\r\n error = ValidationErrors.TWO_WITH_TIEBREAKER_INVALID_SET_THREE_SCORE;\r\n }\r\n\r\n if ((isTiebreakerScore || isTiebreakerSet3Score) && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateCompletedSingleSet = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const maxPointsAllowedForElevenPointWinner = 9;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const maxProSetPointsAllowed = 11;\r\n const maxRegularSetPointsAllowed = 7;\r\n const minPointsAllowed = 0;\r\n const minPointsNeededForWin = 6;\r\n const tiebreakerMargin = 1;\r\n\r\n const isTiebreakerScore =\r\n ((position1Score >= minPointsAllowed && position1Score <= maxProSetPointsAllowed) ||\r\n (position2Score >= minPointsAllowed && position2Score <= maxProSetPointsAllowed)) &&\r\n Math.abs(position1Score - position2Score) === tiebreakerMargin;\r\n\r\n const hasOutOfRangeRegularSetScore =\r\n (position1Score === maxRegularSetPointsAllowed && position2Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === maxRegularSetPointsAllowed && position1Score < maxPointsAllowedForSevenPointWinner);\r\n\r\n const hasOutOfRangeProSetScore =\r\n (position1Score === maxProSetPointsAllowed && position2Score < maxPointsAllowedForElevenPointWinner) ||\r\n (position2Score === maxProSetPointsAllowed && position1Score < maxPointsAllowedForElevenPointWinner);\r\n\r\n const hasOutOfRangeScore =\r\n position1Score > maxProSetPointsAllowed ||\r\n position2Score > maxProSetPointsAllowed ||\r\n position1Score < minPointsAllowed ||\r\n position2Score < minPointsAllowed;\r\n\r\n const hasNotMetMinimumAmountOfPoints = position1Score < minPointsNeededForWin && position2Score < minPointsNeededForWin;\r\n\r\n const hasTieScore = position1Score === position2Score;\r\n\r\n let error = null;\r\n\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore || hasOutOfRangeProSetScore || hasOutOfRangeRegularSetScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (isTiebreakerScore && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateCompletedFastFour = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const maxPointsAllowed = 4;\r\n const minTiebreakerPoints = 3;\r\n const hasNotMetMinimumAmountOfPoints = position1Score < maxPointsAllowed && position2Score < maxPointsAllowed;\r\n\r\n const isTiebreakerScore =\r\n (position1Score === maxPointsAllowed && position2Score === minTiebreakerPoints) ||\r\n (position2Score === maxPointsAllowed && position1Score === minTiebreakerPoints);\r\n\r\n const hasTieScore = position1Score === position2Score;\r\n\r\n let error = null;\r\n\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (isTiebreakerScore && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateTimeBasedSet = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const maxSetPointsAllowed = 11;\r\n const minPointsAllowed = 0;\r\n let error = null;\r\n\r\n const hasTieScore = position1Score === position2Score && set.id === 1;\r\n const hasOutOfRangeScore =\r\n position1Score > maxSetPointsAllowed ||\r\n position2Score > maxSetPointsAllowed ||\r\n position1Score < minPointsAllowed ||\r\n position2Score < minPointsAllowed;\r\n\r\n if (hasTieScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const isValidCompletedSetScore = (set, scoringFormatTypeId) => {\r\n const hasSetScores = hasScores(set);\r\n const hasPartialSetScores = hasPartialScores(set);\r\n let error = null;\r\n\r\n if (hasSetScores) {\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE: {\r\n const validationError = validateCompletedBestOfThree(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n case TWO_SETS_WITH_TIEBREAKER: {\r\n const validationError = validateCompletedTwoSetWithTiebreaker(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n case SINGLE_SET: {\r\n const validationError = validateCompletedSingleSet(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n case FAST_FOUR: {\r\n const validationError = validateCompletedFastFour(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n } else if (hasPartialSetScores) {\r\n error = `${ValidationErrors.SET_SCORE_INCOMPLETE} ${set.id}`;\r\n }\r\n\r\n return { isValidCompletedSet: !error, error };\r\n};\r\n\r\nexport const isValidPartialSetScore = (set, scoringFormatTypeId) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const hasSetScores = hasScores(set);\r\n const hasPartialSetScores = hasPartialScores(set);\r\n const minScoreForSet = 0;\r\n const maxScoreForRegularSet = 7;\r\n const minTieScoreForRegularSet = 6;\r\n const maxScoreForProSet = 11;\r\n const maxScoreForFastFourSet = 4;\r\n const minTieScoreForFastFourSet = 3;\r\n const maxScoreFastFourTiebreaker = 5;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const minScoreNeededForTiebreaker = 6;\r\n const errorMessage = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n let error = null;\r\n\r\n if (hasSetScores) {\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE:\r\n case TWO_SETS_WITH_TIEBREAKER: {\r\n const isPosition1ScoreInvalid =\r\n position1Score < minScoreForSet ||\r\n position1Score > maxScoreForRegularSet ||\r\n (position1Score === maxScoreForRegularSet && position2Score < maxPointsAllowedForSevenPointWinner);\r\n const isPosition2ScoreInvalid =\r\n position2Score < minScoreForSet ||\r\n position2Score > maxScoreForRegularSet ||\r\n (position2Score === maxScoreForRegularSet && position1Score < maxPointsAllowedForSevenPointWinner);\r\n const hasMissingTiebreakerScore =\r\n (position1Score === maxScoreForRegularSet && position2Score === minTieScoreForRegularSet && !hasTiebreakerScore) ||\r\n (position2Score === maxScoreForRegularSet && position1Score === minTieScoreForRegularSet && !hasTiebreakerScore);\r\n\r\n if (isPosition1ScoreInvalid || isPosition2ScoreInvalid) {\r\n error = errorMessage;\r\n break;\r\n }\r\n\r\n if (hasMissingTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n break;\r\n }\r\n break;\r\n }\r\n case SINGLE_SET: {\r\n const isPosition1ScoreInvalid = position1Score < minScoreForSet || position1Score > maxScoreForProSet;\r\n const isPosition2ScoreInvalid = position2Score < minScoreForSet || position2Score > maxScoreForProSet;\r\n const hasMissingTiebreakerScore =\r\n ((position1Score === minScoreNeededForTiebreaker && position2Score > minScoreNeededForTiebreaker) ||\r\n (position2Score === minScoreNeededForTiebreaker && position1Score > minScoreNeededForTiebreaker)) && Math.abs(position1Score - position2Score) === 1;\r\n\r\n if (isPosition1ScoreInvalid || isPosition2ScoreInvalid) {\r\n error = errorMessage;\r\n break;\r\n }\r\n\r\n if (hasMissingTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n break;\r\n }\r\n break;\r\n }\r\n case FAST_FOUR: {\r\n const isPosition1ScoreInvalid = position1Score < minScoreForSet || position1Score > maxScoreForFastFourSet;\r\n const isPosition2ScoreInvalid = position2Score < minScoreForSet || position2Score > maxScoreForFastFourSet;\r\n const hasMissingTiebreakerScore =\r\n (position1Score === maxScoreForFastFourSet && position2Score === minTieScoreForFastFourSet && !hasTiebreakerScore) ||\r\n (position2Score === maxScoreForFastFourSet && position1Score === minTieScoreForFastFourSet && !hasTiebreakerScore);\r\n\r\n if (isPosition1ScoreInvalid || isPosition2ScoreInvalid) {\r\n error = errorMessage;\r\n break;\r\n }\r\n if (hasMissingTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n break;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n } else if (hasPartialSetScores) {\r\n error = `${ValidationErrors.SET_SCORE_INCOMPLETE} ${set.id}`;\r\n }\r\n if (hasTiebreakerScore) {\r\n const isPosition1TiebreakerInvalid = position1Tiebreaker < minScoreForSet;\r\n const isPosition2TiebreakerInvalid = position2Tiebreaker < minScoreForSet;\r\n\r\n if (isPosition1TiebreakerInvalid || isPosition2TiebreakerInvalid) {\r\n error = errorMessage;\r\n }\r\n if (scoringFormatTypeId === FAST_FOUR) {\r\n if (position1Tiebreaker > maxScoreFastFourTiebreaker || position2Tiebreaker > maxScoreFastFourTiebreaker) {\r\n error = errorMessage;\r\n }\r\n }\r\n }\r\n\r\n return { isValidPartialScore: !error, error };\r\n};\r\n\r\nexport const getPartialScoreWinnerForTimeBasedSets = (sets) => {\r\n const scoringSets = sets.filter((set) => hasScores(set));\r\n let position1GamesWon = 0;\r\n let position2GamesWon = 0;\r\n let isPosition1FirstSetWinner;\r\n let validationError = null;\r\n\r\n for (let index = 0; index < scoringSets.length; index += 1) {\r\n const set = sets[index];\r\n const { position1Score, position2Score } = set;\r\n const isFirstSet = set.id === 1;\r\n\r\n validationError = validateTimeBasedSet(set);\r\n\r\n if (validationError) {\r\n break;\r\n } else {\r\n position1GamesWon += parseInt(position1Score);\r\n position2GamesWon += parseInt(position2Score);\r\n\r\n if (isFirstSet) {\r\n isPosition1FirstSetWinner = isPosition1Winner(set);\r\n }\r\n }\r\n }\r\n\r\n const isGamesWonTied = position1GamesWon === position2GamesWon;\r\n let isWinnerPosition1;\r\n\r\n if (isGamesWonTied) {\r\n isWinnerPosition1 = isPosition1FirstSetWinner;\r\n } else {\r\n isWinnerPosition1 = position1GamesWon > position2GamesWon;\r\n }\r\n\r\n return { validationError, isWinnerPosition1 };\r\n};\r\n\r\nexport const getWinnerForSets = (sets, matchOutcome, scoringFormatTypeId) => {\r\n const maxAmountOfPartialSets = 1;\r\n let partialSetCount = 0;\r\n let validationError = null;\r\n let isWinnerPosition1 = false;\r\n let position1CompletedWins = 0;\r\n let position2CompletedWins = 0;\r\n let position1PartialWins = 0;\r\n let position2PartialWins = 0;\r\n let invalidSetId = null;\r\n\r\n if (hasUnorderedScoringSets(sets)) {\r\n validationError = ValidationErrors.SETS_ORDERED_INCORRECTLY;\r\n } else {\r\n if (scoringFormatTypeId === TIME_BASED && matchOutcome === COMPLETED_WITH_PARTIAL_SCORES) {\r\n return getPartialScoreWinnerForTimeBasedSets(sets);\r\n }\r\n\r\n sets.forEach((set) => {\r\n const hasSetScores = hasScores(set);\r\n const hasPartialSetScores = hasPartialScores(set);\r\n\r\n switch (matchOutcome) {\r\n case COMPLETED: {\r\n const { error } = isValidCompletedSetScore(set, scoringFormatTypeId);\r\n if (error) {\r\n validationError = error;\r\n break;\r\n }\r\n\r\n if (isPosition1Winner(set)) {\r\n position1CompletedWins += 1;\r\n } else if (isPosition2Winner(set)) {\r\n position2CompletedWins += 1;\r\n }\r\n break;\r\n }\r\n case COMPLETED_WITH_PARTIAL_SCORES:\r\n {\r\n if (invalidSetId === set.id && hasSetScores) {\r\n validationError = ValidationErrors.NO_MULTIPLE_PARTIAL_SCORES;\r\n break;\r\n }\r\n\r\n const { isValidCompletedSet } = isValidCompletedSetScore(set, scoringFormatTypeId);\r\n\r\n if (isValidCompletedSet) {\r\n if (isPosition1Winner(set)) {\r\n position1CompletedWins += 1;\r\n } else if (isPosition2Winner(set)) {\r\n position2CompletedWins += 1;\r\n }\r\n } else if (!isValidCompletedSet && partialSetCount <= maxAmountOfPartialSets) {\r\n const { isValidPartialScore, error } = isValidPartialSetScore(set, scoringFormatTypeId);\r\n\r\n if (isValidPartialScore) {\r\n partialSetCount += 1;\r\n invalidSetId = set.id + 1;\r\n\r\n if (isPosition1Winner(set)) {\r\n position1PartialWins += 1;\r\n } else if (isPosition2Winner(set)) {\r\n position2PartialWins += 1;\r\n }\r\n } else {\r\n validationError = error;\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n case WITHDREW:\r\n case DEFAULTED:\r\n if (hasSetScores || hasPartialSetScores) {\r\n validationError = ValidationErrors.NO_SCORES_FOR_OUTCOME;\r\n break;\r\n }\r\n break;\r\n case RETIRED: {\r\n if (invalidSetId === set.id && hasSetScores) {\r\n validationError = ValidationErrors.NO_MULTIPLE_PARTIAL_SCORES;\r\n break;\r\n }\r\n\r\n if (!hasSetScores && set.id === 1) {\r\n validationError = ValidationErrors.SET_SCORES_REQUIRED_FOR_OUTCOME;\r\n break;\r\n }\r\n\r\n const { isValidCompletedSet, error: validSetError } = isValidCompletedSetScore(set, scoringFormatTypeId);\r\n if (isValidCompletedSet) {\r\n break;\r\n } else if (!isValidCompletedSet && partialSetCount <= maxAmountOfPartialSets) {\r\n const { isValidPartialScore, error } = isValidPartialSetScore(set, scoringFormatTypeId);\r\n if (isValidPartialScore) {\r\n partialSetCount += 1;\r\n invalidSetId = set.id + 1;\r\n break;\r\n } else {\r\n validationError = error;\r\n break;\r\n }\r\n } else {\r\n validationError = validSetError;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n if (validationError) {\r\n return { validationError };\r\n }\r\n\r\n const totalPosition1Wins = position1CompletedWins + position1PartialWins;\r\n const totalPosition2Wins = position2CompletedWins + position2PartialWins;\r\n isWinnerPosition1 = totalPosition1Wins > totalPosition2Wins;\r\n\r\n const twoWinMaxFormats = [BEST_OF_THREE, TWO_SETS_WITH_TIEBREAKER, FAST_FOUR];\r\n\r\n if (twoWinMaxFormats.includes(scoringFormatTypeId) && matchOutcome === COMPLETED) {\r\n const winsRequired = 2;\r\n const isUnderWinRequirement =\r\n (isWinnerPosition1 && totalPosition1Wins < winsRequired) || (!isWinnerPosition1 && totalPosition2Wins < winsRequired);\r\n const isOverWinRequirement =\r\n (isWinnerPosition1 && totalPosition1Wins > winsRequired) || (!isWinnerPosition1 && totalPosition2Wins > winsRequired);\r\n\r\n if (isUnderWinRequirement) {\r\n validationError = ValidationErrors.UNDER_WIN_LIMIT;\r\n } else if (isOverWinRequirement) {\r\n validationError = ValidationErrors.OVER_WIN_LIMIT;\r\n }\r\n } else if (matchOutcome === COMPLETED_WITH_PARTIAL_SCORES) {\r\n if (position1CompletedWins > position2CompletedWins) {\r\n isWinnerPosition1 = true;\r\n } else if (position1CompletedWins < position2CompletedWins) {\r\n isWinnerPosition1 = false;\r\n } else if (totalPosition1Wins > totalPosition2Wins) {\r\n isWinnerPosition1 = true;\r\n } else if (totalPosition1Wins < totalPosition2Wins) {\r\n isWinnerPosition1 = false;\r\n } else if (totalPosition1Wins === totalPosition2Wins) {\r\n validationError = ValidationErrors.NO_WINNER_DETERMINED;\r\n }\r\n } else if (totalPosition1Wins === totalPosition2Wins && matchOutcome === COMPLETED) {\r\n validationError = ValidationErrors.NO_WINNER_DETERMINED;\r\n }\r\n\r\n return { validationError, isWinnerPosition1 };\r\n};\r\n\r\nexport const getExistingMatchSets = (match, isSide1Position1) => {\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1);\r\n const position1Result = position1?.sideResult;\r\n const position2Result = position2?.sideResult;\r\n\r\n const hasSet1Position1Score = isNumericScore(position1Result?.set1Score);\r\n const hasSet1Position2Score = isNumericScore(position2Result?.set1Score);\r\n const hasSet1Position1TiebreakerScore = isNumericScore(position1Result?.tieBreakSet1Score);\r\n const hasSet1Position2TiebreakerScore = isNumericScore(position2Result?.tieBreakSet1Score);\r\n\r\n const hasSet2Position1Score = isNumericScore(position1Result?.set2Score);\r\n const hasSet2Position2Score = isNumericScore(position2Result?.set2Score);\r\n const hasSet2Position1TiebreakerScore = isNumericScore(position1Result?.tieBreakSet2Score);\r\n const hasSet2Position2TiebreakerScore = isNumericScore(position2Result?.tieBreakSet2Score);\r\n\r\n const hasSet3Position1Score = isNumericScore(position1Result?.set3Score);\r\n const hasSet3Position2Score = isNumericScore(position2Result?.set3Score);\r\n const hasSet3Position1TiebreakerScore = isNumericScore(position1Result?.tieBreakSet3Score);\r\n const hasSet3Position2TiebreakerScore = isNumericScore(position2Result?.tieBreakSet3Score);\r\n\r\n return [\r\n {\r\n id: 1,\r\n position1Score: hasSet1Position1Score ? position1Result?.set1Score : '',\r\n position2Score: hasSet1Position2Score ? position2Result?.set1Score : '',\r\n position1Tiebreaker: hasSet1Position1TiebreakerScore ? position1Result?.tieBreakSet1Score : '',\r\n position2Tiebreaker: hasSet1Position2TiebreakerScore ? position2Result?.tieBreakSet1Score : '',\r\n },\r\n {\r\n id: 2,\r\n position1Score: hasSet2Position1Score ? position1Result?.set2Score : '',\r\n position2Score: hasSet2Position2Score ? position2Result?.set2Score : '',\r\n position1Tiebreaker: hasSet2Position1TiebreakerScore ? position1Result?.tieBreakSet2Score : '',\r\n position2Tiebreaker: hasSet2Position2TiebreakerScore ? position2Result?.tieBreakSet2Score : '',\r\n },\r\n {\r\n id: 3,\r\n position1Score: hasSet3Position1Score ? position1Result?.set3Score : '',\r\n position2Score: hasSet3Position2Score ? position2Result?.set3Score : '',\r\n position1Tiebreaker: hasSet3Position1TiebreakerScore ? position1Result?.tieBreakSet3Score : '',\r\n position2Tiebreaker: hasSet3Position2TiebreakerScore ? position2Result?.tieBreakSet3Score : '',\r\n },\r\n ];\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { PostScoreInput, PostScoreTieBreakInput, TiebreakerText } from '../../../../components/Styled';\r\nimport { ScorePositionKeys } from '../../../../utils/constants';\r\nimport { isSetTied } from '../../../../utils/postScore';\r\n\r\nconst UTSet = ({ onScoreChange, onFocus, set, currentSetId, scoringFormatTypeId, isDisabled }) => {\r\n const { id, position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const { POSITION_ONE_SCORE, POSITION_ONE_TB_SCORE, POSITION_TWO_SCORE, POSITION_TWO_TB_SCORE } = ScorePositionKeys;\r\n\r\n const [isTie, setIsTie] = useState(false);\r\n const [showTiebreakerInput, setShowTiebreakerInput] = useState(false);\r\n\r\n const showPosition1Tiebreaker = isTie && !showTiebreakerInput && !!position1Tiebreaker;\r\n const showPosition2Tiebreaker = isTie && !showTiebreakerInput && !!position2Tiebreaker;\r\n\r\n useEffect(() => {\r\n const isSetTie = isSetTied(set, scoringFormatTypeId);\r\n setIsTie(isSetTie);\r\n setShowTiebreakerInput(isSetTie && currentSetId === set.id);\r\n }, [set, currentSetId]);\r\n\r\n const handleOnScoreChange = (changedSet, positionKey, event, isTiebreaker = false) => {\r\n const { value } = event.target;\r\n onScoreChange(changedSet, positionKey, value, isTiebreaker);\r\n };\r\n\r\n const handleOnFocus = () => {\r\n onFocus(set);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n handleOnScoreChange(set, POSITION_TWO_SCORE, event)}\r\n onFocus={handleOnFocus}\r\n value={position2Score}\r\n showTiebreaker={showTiebreakerInput}\r\n />\r\n {showPosition2Tiebreaker && {position2Tiebreaker}}\r\n {showTiebreakerInput && (\r\n handleOnScoreChange(set, POSITION_TWO_TB_SCORE, event, true)}\r\n onFocus={handleOnFocus}\r\n placeholder=\"0\"\r\n value={position2Tiebreaker}\r\n />\r\n )}\r\n \r\n \r\n handleOnScoreChange(set, POSITION_ONE_SCORE, event)}\r\n onFocus={handleOnFocus}\r\n placeholder=\"0\"\r\n value={position1Score}\r\n showTiebreaker={showTiebreakerInput}\r\n />\r\n {showPosition1Tiebreaker && {position1Tiebreaker}}\r\n {showTiebreakerInput && (\r\n handleOnScoreChange(set, POSITION_ONE_TB_SCORE, event, true)}\r\n placeholder=\"0\"\r\n value={position1Tiebreaker}\r\n />\r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default UTSet;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\n\r\nimport { ResultTypes } from '../../../utils/types';\r\n\r\nconst MatchOutcomeSelect = ({ options, hasEnteredScores, onMatchOutComeChange, outcome }) => {\r\n const { DEFAULTED, MATCH_NOT_PLAYED, RETIRED, WITHDREW } = ResultTypes;\r\n const handleOnMatchOutcomeChange = (event) => {\r\n const { value } = event.target;\r\n onMatchOutComeChange(value);\r\n };\r\n\r\n const filteredOptions = useMemo(() => {\r\n if (outcome?.outcomeId === DEFAULTED || outcome?.outcomeId === MATCH_NOT_PLAYED) {\r\n return options.filter((option) => option.outcomeId !== RETIRED && option.outcomeId !== WITHDREW);\r\n }\r\n\r\n if (hasEnteredScores) {\r\n return options.filter((option) => option.outcomeId !== WITHDREW);\r\n }\r\n\r\n return options.filter((option) => option.outcomeId !== RETIRED);\r\n }, [options, hasEnteredScores]);\r\n\r\n return (\r\n \r\n Match Outcome\r\n `${selected.name}`}\r\n label=\"Match Outcome\"\r\n >\r\n {filteredOptions?.map((option) => {\r\n return (\r\n \r\n {option.name}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MatchOutcomeSelect;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\n\r\nimport { PlayerKeys, findPlayerInTeam } from '../../../utils/postScoreShared';\r\n\r\nconst PlayerSelect = ({ isDoubles, player1Id = '', player2Id, playerOptions = [], side, onPlayerChange, isSmallScreen }) => {\r\n const { PLAYER_1, PLAYER_2 } = PlayerKeys;\r\n\r\n const handleOnPlayerChange = (player) => (event) => {\r\n const selectedPlayer = findPlayerInTeam(event.target.value, playerOptions);\r\n onPlayerChange(selectedPlayer, side, player);\r\n };\r\n\r\n const renderOptions = () => {\r\n return playerOptions?.map((player) => (\r\n \r\n {`${player.firstName} ${player.lastName}`}\r\n \r\n ));\r\n };\r\n\r\n return (\r\n \r\n {isDoubles ? (\r\n \r\n \r\n Player 1\r\n \r\n \r\n None\r\n \r\n {renderOptions()}\r\n \r\n \r\n \r\n Player 2\r\n \r\n \r\n None\r\n \r\n {renderOptions()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n Player Name\r\n \r\n \r\n None\r\n \r\n {renderOptions()}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerSelect;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { cloneDeep, isEqual } from 'lodash';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\nimport { Typography, Button, SwapIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Stack from '@mui/material/Stack';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport UTSet from './UTSet';\r\nimport { ScorePositionKeys, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { ResultTypes, TennisScoringFormatTypes, tennisScoringTypes, getTypeForId } from '../../../utils/types';\r\nimport {\r\n SideKeys,\r\n createMatchResults,\r\n getMatchOutcomeOptions,\r\n getPositionsForMatch,\r\n switchMatchScores,\r\n createDefaultedMatchResults,\r\n hasDuplicatePlayersInMatch,\r\n hasScoresEntered,\r\n hasInvalidPlayerCount,\r\n getOutcomeForExistingMatch\r\n} from '../../../utils/postScoreShared';\r\n\r\nimport {\r\n DefaultSets,\r\n getExistingMatchSets,\r\n getValidatedValueForSet,\r\n getWinnerForSets,\r\n isSetTied, switchSetScores\r\n} from '../../../utils/postScore';\r\n\r\nimport MatchOutcomeSelect from '../MatchOutcomeSelect';\r\nimport PlayerSelect from '../PlayerSelect';\r\n\r\nconst _ = { cloneDeep, isEqual };\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst PostTennisScoreModal = ({\r\n isOpen,\r\n onClose,\r\n position1Team,\r\n position2Team,\r\n position1Players,\r\n position2Players,\r\n selectedMatch,\r\n onSaveMatchScore,\r\n onDuplicatePlayersInMatch,\r\n onInvalidPlayerCount\r\n}) => {\r\n const theme = useTheme();\r\n const { SINGLE_SET } = TennisScoringFormatTypes;\r\n const { SIDE_1, SIDE_2 } = SideKeys;\r\n const { DISPLAY, PRIMARY, SECONDARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, X_SMALL_MEDIUM_CAP, } = TypographySizes;\r\n const { name: position1TeamName, teamId: position1TeamId } = position1Team || {};\r\n const { name: position2TeamName } = position2Team || {};\r\n const { DEFAULTED, MATCH_NOT_PLAYED, INCOMPLETE } = ResultTypes;\r\n const [currentMatch, setCurrentMatch] = useState();\r\n const [sets, setSets] = useState(DefaultSets);\r\n const [originalSets, setOriginalSets] = useState([]);\r\n const [currentSetId, setCurrentSetId] = useState(0);\r\n const [originalMatch, setOriginalMatch] = useState();\r\n const [scoringError, setScoringError] = useState();\r\n const [hasEnteredScores, setHasEnteredScores] = useState(false);\r\n const [matchOutcomeOptions, setMatchOutcomeOptions] = useState();\r\n const [matchOutcome, setMatchOutcome] = useState();\r\n const [originalMatchOutcome, setOriginalMatchOutcome] = useState();\r\n const [winningSideId, setWinningSideId] = useState(null);\r\n const [isEditing, setIsEditing] = useState(false);\r\n const hasUnchangedScores = _.isEqual(originalSets, sets);\r\n const hasUnchangedMatch = _.isEqual(originalMatch, currentMatch);\r\n const hasUnchangedMatchOutcome = _.isEqual(originalMatchOutcome, matchOutcome);\r\n const isUnchangedMatch = hasUnchangedMatch && hasUnchangedScores && hasUnchangedMatchOutcome;\r\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'));\r\n const isSide1Position1 = selectedMatch?.side1?.teamId === position1TeamId;\r\n\r\n useEffect(() => {\r\n if (selectedMatch) {\r\n setCurrentMatch(selectedMatch);\r\n setOriginalMatch(selectedMatch);\r\n\r\n const options = getMatchOutcomeOptions(selectedMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n\r\n if (!matchOutcome) {\r\n setMatchOutcome(options[0]);\r\n setOriginalMatchOutcome(options[0]);\r\n }\r\n\r\n if (selectedMatch?.resultCompletionTypeId) {\r\n const { resultCompletionTypeId, winningSideId: winnerSideId } = selectedMatch;\r\n const existingSets = getExistingMatchSets(selectedMatch, isSide1Position1);\r\n\r\n if (selectedMatch?.scoringFormatTypeId === SINGLE_SET) {\r\n setSets([existingSets[0]]);\r\n setOriginalSets([existingSets[0]]);\r\n } else {\r\n setSets(existingSets);\r\n setOriginalSets(existingSets);\r\n }\r\n\r\n setIsEditing(true);\r\n\r\n const outcome = getOutcomeForExistingMatch({ options, resultCompletionTypeId, winnerSideId });\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n\r\n setMatchOutcome(outcome);\r\n setOriginalMatchOutcome(outcome);\r\n } else if (selectedMatch?.scoringFormatTypeId === SINGLE_SET) {\r\n setSets([DefaultSets[0]]);\r\n } else {\r\n setSets(DefaultSets);\r\n }\r\n }\r\n }, [selectedMatch]);\r\n\r\n useEffect(() => {\r\n if (!hasUnchangedMatch) {\r\n const options = getMatchOutcomeOptions(currentMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n }\r\n }, [currentMatch]);\r\n\r\n const handleOnClose = () => {\r\n setMatchOutcome(matchOutcomeOptions[0]);\r\n onClose();\r\n setScoringError(null);\r\n };\r\n\r\n useEffect(() => {\r\n const hasScores = hasScoresEntered(sets);\r\n setHasEnteredScores(hasScores);\r\n }, [sets]);\r\n\r\n const handleOnSetScoreChange = (set, positionKey, value, isTiebreaker) => {\r\n setScoringError(null);\r\n\r\n const { id: setId } = set;\r\n const validatedValue = getValidatedValueForSet(setId, value, currentMatch?.scoringFormatTypeId, isTiebreaker);\r\n const newSets = _.cloneDeep(sets);\r\n const setIndex = newSets.findIndex((newSet) => newSet.id === setId);\r\n const updatedSet = newSets[setIndex];\r\n updatedSet[positionKey] = validatedValue;\r\n\r\n if (validatedValue && !isTiebreaker && setId !== 1) {\r\n if (positionKey === ScorePositionKeys.POSITION_TWO_SCORE && !isSetTied(updatedSet, currentMatch?.scoringFormatTypeId)) {\r\n setCurrentSetId(setId + 1);\r\n }\r\n }\r\n setSets(newSets);\r\n };\r\n\r\n const handleOnSetFocus = (set) => {\r\n setCurrentSetId(set.id);\r\n };\r\n\r\n const handleOnSaveScore = () => {\r\n let results;\r\n let hasNoErrors = true;\r\n\r\n const hasDuplicatePlayers = hasDuplicatePlayersInMatch(currentMatch);\r\n const hasInvalidPlayerAmount = hasInvalidPlayerCount(currentMatch, matchOutcome?.outcomeId);\r\n\r\n if (hasDuplicatePlayers) {\r\n onDuplicatePlayersInMatch();\r\n return;\r\n }\r\n\r\n if (hasInvalidPlayerAmount) {\r\n onInvalidPlayerCount();\r\n return;\r\n }\r\n\r\n if (matchOutcome.outcomeId === MATCH_NOT_PLAYED || matchOutcome.outcomeId === DEFAULTED) {\r\n results = createDefaultedMatchResults(currentMatch, matchOutcome, isSide1Position1);\r\n } else {\r\n const { validationError, isWinnerPosition1 } = getWinnerForSets(\r\n sets,\r\n matchOutcome.outcomeId,\r\n currentMatch?.scoringFormatTypeId\r\n );\r\n\r\n if (validationError) {\r\n hasNoErrors = false;\r\n setScoringError(validationError);\r\n } else {\r\n let winnerId = null;\r\n\r\n if (!winningSideId && matchOutcome.outcomeId !== INCOMPLETE) {\r\n winnerId = isSide1Position1 && isWinnerPosition1 ? currentMatch.side1.sideId : currentMatch.side2.sideId;\r\n }\r\n\r\n const winningSide = winningSideId || winnerId;\r\n results = createMatchResults(currentMatch, sets, winningSide, matchOutcome.outcomeId, isSide1Position1);\r\n }\r\n }\r\n\r\n if (hasNoErrors) {\r\n onSaveMatchScore(currentMatch.id, results, isEditing);\r\n setIsEditing(false);\r\n setMatchOutcome(null);\r\n }\r\n };\r\n\r\n const handleOnMatchOutcomeChange = (outcome) => {\r\n setScoringError(null);\r\n\r\n const outcomeIndex = matchOutcomeOptions.findIndex((option) => option.id === outcome?.id);\r\n setMatchOutcome(matchOutcomeOptions[outcomeIndex]);\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n };\r\n\r\n const handleOnSwitchScores = () => {\r\n const updatedSetScores = switchSetScores(sets);\r\n setSets(updatedSetScores);\r\n\r\n if (currentMatch?.resultCompletionTypeId) {\r\n const updatedMatch = switchMatchScores(currentMatch);\r\n setCurrentMatch(updatedMatch);\r\n }\r\n };\r\n\r\n const handleOnPlayerChange = (player, side, playerPosition) => {\r\n setCurrentMatch({\r\n ...currentMatch,\r\n [side]: { ...currentMatch[side], [playerPosition]: player },\r\n });\r\n };\r\n\r\n let position1Player1Id;\r\n let position1Player2Id;\r\n let position2Player1Id;\r\n let position2Player2Id;\r\n const isDoubles = currentMatch?.isDoubles;\r\n\r\n if (currentMatch) {\r\n const { position1, position2 } = getPositionsForMatch(currentMatch, isSide1Position1);\r\n position1Player1Id = position1?.player1?.playerId;\r\n position1Player2Id = position1.player2?.playerId;\r\n position2Player1Id = position2?.player1?.playerId;\r\n position2Player2Id = position2.player2?.playerId;\r\n }\r\n\r\n const matchName = `${isDoubles ? 'Doubles' : 'Singles'} Match #${currentMatch?.lineupPosition}`;\r\n const scoringType = getTypeForId(currentMatch?.scoringFormatTypeId, tennisScoringTypes);\r\n const position1PlayerSide = isSide1Position1 ? SIDE_1 : SIDE_2;\r\n const position2PlayerSide = isSide1Position1 ? SIDE_2 : SIDE_1;\r\n const nonScoringOutcomes = [ResultTypes.DEFAULTED, ResultTypes.MATCH_NOT_PLAYED, ResultTypes.WITHDREW];\r\n const hasNonScoringOutcome = nonScoringOutcomes.includes(matchOutcome?.outcomeId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${matchName} - ${scoringType?.description}`}\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 Match Outcome\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 Scores\r\n \r\n \r\n \r\n {isSmallScreen ? (\r\n \r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {sets?.map((set) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {sets?.map((set) => (\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 {scoringError && (\r\n \r\n \r\n {scoringError}\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\nexport default PostTennisScoreModal;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { PostScoreInput } from '../../../../components/Styled';\r\nimport { ScorePositionKeys } from '../../../../utils/constants';\r\n\r\nconst PickleballGame = ({ onScoreChange, game, isDisabled }) => {\r\n const { id, position1Score, position2Score } = game;\r\n const { POSITION_ONE_SCORE, POSITION_TWO_SCORE } = ScorePositionKeys;\r\n\r\n const handleOnScoreChange = (changedGame, positionKey, event, isTiebreaker = false) => {\r\n const { value } = event.target;\r\n onScoreChange(changedGame, positionKey, value, isTiebreaker);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n handleOnScoreChange(game, POSITION_TWO_SCORE, event)}\r\n placeholder=\"0\"\r\n value={position2Score}\r\n />\r\n \r\n \r\n handleOnScoreChange(game, POSITION_ONE_SCORE, event)}\r\n placeholder=\"0\"\r\n value={position1Score}\r\n />\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PickleballGame;\r\n","import { ResultTypes, PickleballScoringFormatTypes } from './types';\r\nimport { isNumericScore, ValidationErrors, hasScores, hasPartialScores, getPositionsForMatch, isPosition1Winner, isPosition2Winner } from './postScoreShared';\r\n\r\nconst { BEST_OF_THREE_GAMES, SINGLE_GAME, TIME_BASED_GAME } = PickleballScoringFormatTypes;\r\nconst { COMPLETED, COMPLETED_WITH_PARTIAL_SCORES, DEFAULTED, WITHDREW, RETIRED } = ResultTypes;\r\n\r\nconst GAME_ONE_ID = 1;\r\n\r\nexport const DefaultPickleballGames = [\r\n { id: 1, position1Score: '', position2Score: '' },\r\n { id: 2, position1Score: '', position2Score: '' },\r\n { id: 3, position1Score: '', position2Score: '' },\r\n];\r\n\r\nexport const switchGameScores = (games) => {\r\n const switchedGames = games.map((game) => {\r\n const { id, position1Score, position2Score } = game;\r\n return {\r\n id,\r\n position1Score: position2Score,\r\n position2Score: position1Score,\r\n };\r\n });\r\n\r\n return switchedGames;\r\n};\r\n\r\nexport const getValidatedValueForGame = (value) => {\r\n const maxScoreForGames = 99;\r\n let score = parseInt(value);\r\n\r\n score %= 100;\r\n\r\n if (score > maxScoreForGames) {\r\n score = maxScoreForGames;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n\r\n return Number.isNaN(score) ? '' : score;\r\n};\r\n\r\nexport const validatePickleballGame = (game) => {\r\n const { position1Score, position2Score } = game;\r\n const minPointsAllowed = 0;\r\n const maxPointsAllowed = 99;\r\n const hasTieScore = position1Score === position2Score;\r\n const hasOutOfRangeScore =\r\n (position1Score < minPointsAllowed) || (position2Score < minPointsAllowed) ||\r\n (position1Score > maxPointsAllowed) || (position2Score > maxPointsAllowed);\r\n\r\n let error = null;\r\n\r\n if (hasOutOfRangeScore) {\r\n error = `${ValidationErrors.GAME_SCORE_INVALID} ${game.id}`;\r\n }\r\n\r\n if (hasTieScore && game.id === GAME_ONE_ID) {\r\n error = `${ValidationErrors.GAME_SCORE_NO_TIE} ${game.id}`;\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const isValidCompletedGameScore = (game, scoringFormatTypeId) => {\r\n const hasGameScores = hasScores(game);\r\n const hasPartialGameScores = hasPartialScores(game);\r\n let error = null;\r\n\r\n if (hasGameScores) {\r\n switch (scoringFormatTypeId) {\r\n case SINGLE_GAME:\r\n case TIME_BASED_GAME:\r\n case BEST_OF_THREE_GAMES: {\r\n const validationError = validatePickleballGame(game);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n } else if (hasPartialGameScores) {\r\n error = `${ValidationErrors.GAME_SCORE_INCOMPLETE} ${game.id}`;\r\n }\r\n\r\n return { isValidCompletedGame: !error, error };\r\n};\r\n\r\nexport const getWinnerForGames = (games, matchOutcome, scoringFormatTypeId) => {\r\n let validationError = null;\r\n let isWinnerPosition1 = false;\r\n let tieScoreGameId = null;\r\n let position1Wins = 0;\r\n let position2Wins = 0;\r\n let positionOneTotalPoints = 0;\r\n let positionTwoTotalPoints = 0;\r\n\r\n games.forEach((game) => {\r\n const hasGameScores = hasScores(game);\r\n const hasPartialGameScores = hasPartialScores(game);\r\n const isTieScore = hasScores && game?.position1Score === game?.position2Score;\r\n\r\n switch (matchOutcome) {\r\n case COMPLETED_WITH_PARTIAL_SCORES:\r\n case COMPLETED: {\r\n const { error } = isValidCompletedGameScore(game, scoringFormatTypeId);\r\n if (error) {\r\n validationError = error;\r\n break;\r\n }\r\n\r\n if (isPosition1Winner(game)) {\r\n position1Wins += 1;\r\n } else if (isPosition2Winner(game)) {\r\n position2Wins += 1;\r\n }\r\n\r\n positionOneTotalPoints += parseInt(game?.position1Score);\r\n positionTwoTotalPoints += parseInt(game?.position2Score);\r\n\r\n if (isTieScore && game.id !== GAME_ONE_ID) {\r\n tieScoreGameId = game.id;\r\n }\r\n\r\n if (tieScoreGameId && tieScoreGameId < game.id) {\r\n validationError = `${ValidationErrors.GAME_SCORE_NO_TIE} ${tieScoreGameId}`;\r\n }\r\n\r\n break;\r\n }\r\n case WITHDREW:\r\n case DEFAULTED:\r\n if (hasGameScores || hasPartialGameScores) {\r\n validationError = ValidationErrors.NO_SCORES_FOR_OUTCOME;\r\n break;\r\n }\r\n break;\r\n case RETIRED: {\r\n if (!hasGameScores && game.id === GAME_ONE_ID) {\r\n validationError = ValidationErrors.GAME_SCORES_REQUIRED_FOR_OUTCOME;\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n });\r\n\r\n if (validationError) {\r\n return { validationError };\r\n }\r\n\r\n if (matchOutcome === COMPLETED_WITH_PARTIAL_SCORES || matchOutcome === COMPLETED) {\r\n if (position1Wins > position2Wins) {\r\n isWinnerPosition1 = true;\r\n } else if (position1Wins < position2Wins) {\r\n isWinnerPosition1 = false;\r\n } else if (position1Wins === position2Wins && positionOneTotalPoints > positionTwoTotalPoints) {\r\n isWinnerPosition1 = true;\r\n } else if (position1Wins === position2Wins && positionOneTotalPoints < positionTwoTotalPoints) {\r\n isWinnerPosition1 = false;\r\n } else if (position1Wins === position2Wins) {\r\n validationError = ValidationErrors.NO_WINNER_DETERMINED;\r\n }\r\n }\r\n\r\n return { validationError, isWinnerPosition1 };\r\n};\r\n\r\nexport const getExistingPickleballMatchGames = (match, isSide1Position1) => {\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1);\r\n const position1Result = position1?.sideResult;\r\n const position2Result = position2?.sideResult;\r\n\r\n const hasSet1Position1Score = isNumericScore(position1Result?.set1Score);\r\n const hasSet1Position2Score = isNumericScore(position2Result?.set1Score);\r\n\r\n const hasSet2Position1Score = isNumericScore(position1Result?.set2Score);\r\n const hasSet2Position2Score = isNumericScore(position2Result?.set2Score);\r\n\r\n const hasSet3Position1Score = isNumericScore(position1Result?.set3Score);\r\n const hasSet3Position2Score = isNumericScore(position2Result?.set3Score);\r\n\r\n return [\r\n {\r\n id: 1,\r\n position1Score: hasSet1Position1Score ? position1Result?.set1Score : '',\r\n position2Score: hasSet1Position2Score ? position2Result?.set1Score : '',\r\n },\r\n {\r\n id: 2,\r\n position1Score: hasSet2Position1Score ? position1Result?.set2Score : '',\r\n position2Score: hasSet2Position2Score ? position2Result?.set2Score : '',\r\n },\r\n {\r\n id: 3,\r\n position1Score: hasSet3Position1Score ? position1Result?.set3Score : '',\r\n position2Score: hasSet3Position2Score ? position2Result?.set3Score : '',\r\n },\r\n ];\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { cloneDeep, isEqual } from 'lodash';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\nimport { Typography, Button, SwapIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Stack from '@mui/material/Stack';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport PickleballGame from './PickleballGame';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { ResultTypes, getTypeForId, pickleballScoringTypes } from '../../../utils/types';\r\nimport {\r\n SideKeys,\r\n createMatchResults,\r\n getMatchOutcomeOptions,\r\n getPositionsForMatch,\r\n hasScores,\r\n hasScoresEntered,\r\n switchMatchScores,\r\n createDefaultedMatchResults,\r\n hasDuplicatePlayersInMatch,\r\n getOutcomeForExistingMatch,\r\n hasInvalidPlayerCount\r\n} from '../../../utils/postScoreShared';\r\n\r\nimport {\r\n DefaultPickleballGames,\r\n getExistingPickleballMatchGames,\r\n getValidatedValueForGame,\r\n getWinnerForGames,\r\n switchGameScores\r\n} from '../../../utils/postPickleballScore';\r\n\r\nimport MatchOutcomeSelect from '../MatchOutcomeSelect';\r\nimport PlayerSelect from '../PlayerSelect';\r\n\r\nconst _ = { cloneDeep, isEqual };\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst PostPickleballScoreModal = ({\r\n isOpen,\r\n onClose,\r\n position1Team,\r\n position2Team,\r\n position1Players,\r\n position2Players,\r\n selectedMatch,\r\n onSaveMatchScore,\r\n onDuplicatePlayersInMatch,\r\n onInvalidPlayerCount\r\n}) => {\r\n const theme = useTheme();\r\n const { SIDE_1, SIDE_2 } = SideKeys;\r\n const { DISPLAY, PRIMARY, SECONDARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, X_SMALL_MEDIUM_CAP, } = TypographySizes;\r\n const { name: position1TeamName, teamId: position1TeamId } = position1Team || {};\r\n const { name: position2TeamName } = position2Team || {};\r\n const { DEFAULTED, MATCH_NOT_PLAYED, INCOMPLETE } = ResultTypes;\r\n const [currentMatch, setCurrentMatch] = useState();\r\n const [games, setGames] = useState(DefaultPickleballGames);\r\n const [originalGames, setOriginalGames] = useState([]);\r\n const [originalMatch, setOriginalMatch] = useState();\r\n const [scoringError, setScoringError] = useState();\r\n const [hasEnteredScores, setHasEnteredScores] = useState(false);\r\n const [matchOutcomeOptions, setMatchOutcomeOptions] = useState();\r\n const [matchOutcome, setMatchOutcome] = useState();\r\n const [originalMatchOutcome, setOriginalMatchOutcome] = useState();\r\n const [winningSideId, setWinningSideId] = useState(null);\r\n const [isEditing, setIsEditing] = useState(false);\r\n const hasUnchangedScores = _.isEqual(originalGames, games);\r\n const hasUnchangedMatch = _.isEqual(originalMatch, currentMatch);\r\n const hasUnchangedMatchOutcome = _.isEqual(originalMatchOutcome, matchOutcome);\r\n const isUnchangedMatch = hasUnchangedMatch && hasUnchangedScores && hasUnchangedMatchOutcome;\r\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'));\r\n const isSide1Position1 = selectedMatch?.side1?.teamId === position1TeamId;\r\n\r\n useEffect(() => {\r\n if (selectedMatch) {\r\n setCurrentMatch(selectedMatch);\r\n setOriginalMatch(selectedMatch);\r\n\r\n const options = getMatchOutcomeOptions(selectedMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n\r\n if (!matchOutcome) {\r\n setMatchOutcome(options[0]);\r\n setOriginalMatchOutcome(options[0]);\r\n }\r\n\r\n if (selectedMatch?.resultCompletionTypeId) {\r\n setIsEditing(true);\r\n\r\n const { resultCompletionTypeId, winningSideId: winnerSideId } = selectedMatch;\r\n const existingGames = getExistingPickleballMatchGames(selectedMatch, isSide1Position1);\r\n setGames(existingGames);\r\n setOriginalGames(existingGames);\r\n\r\n const outcome = getOutcomeForExistingMatch({ options, resultCompletionTypeId, winnerSideId });\r\n setMatchOutcome(outcome);\r\n setOriginalMatchOutcome(outcome);\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n } else {\r\n setGames(DefaultPickleballGames);\r\n }\r\n }\r\n }, [selectedMatch]);\r\n\r\n useEffect(() => {\r\n if (!hasUnchangedMatch) {\r\n const options = getMatchOutcomeOptions(currentMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n }\r\n }, [currentMatch]);\r\n\r\n const handleOnClose = () => {\r\n setMatchOutcome(matchOutcomeOptions[0]);\r\n onClose();\r\n setScoringError(null);\r\n };\r\n\r\n useEffect(() => {\r\n const hasSetScores = hasScoresEntered(games);\r\n setHasEnteredScores(hasSetScores);\r\n }, [games]);\r\n\r\n const handleOnGameScoreChange = (game, positionKey, value) => {\r\n setScoringError(null);\r\n\r\n const { id: gameId } = game;\r\n const validatedValue = getValidatedValueForGame(value);\r\n const newGames = _.cloneDeep(games);\r\n const gameIndex = newGames.findIndex((newGame) => newGame.id === gameId);\r\n const updatedGame = newGames[gameIndex];\r\n updatedGame[positionKey] = validatedValue;\r\n\r\n setGames(newGames);\r\n };\r\n\r\n const handleOnSaveScore = () => {\r\n let results;\r\n let hasNoErrors = true;\r\n\r\n const hasDuplicatePlayers = hasDuplicatePlayersInMatch(currentMatch);\r\n const hasInvalidPlayerAmount = hasInvalidPlayerCount(currentMatch, matchOutcome?.outcomeId);\r\n\r\n if (hasDuplicatePlayers) {\r\n onDuplicatePlayersInMatch();\r\n return;\r\n }\r\n\r\n if (hasInvalidPlayerAmount) {\r\n onInvalidPlayerCount();\r\n return;\r\n }\r\n\r\n if (matchOutcome.outcomeId === MATCH_NOT_PLAYED || matchOutcome.outcomeId === DEFAULTED) {\r\n results = createDefaultedMatchResults(currentMatch, matchOutcome, isSide1Position1);\r\n } else {\r\n const { validationError, isWinnerPosition1 } = getWinnerForGames(\r\n games,\r\n matchOutcome.outcomeId,\r\n currentMatch?.scoringFormatTypeId\r\n );\r\n\r\n if (validationError) {\r\n hasNoErrors = false;\r\n setScoringError(validationError);\r\n } else {\r\n let winnerId = null;\r\n\r\n if (!winningSideId && matchOutcome.outcomeId !== INCOMPLETE) {\r\n winnerId = isSide1Position1 && isWinnerPosition1 ? currentMatch.side1.sideId : currentMatch.side2.sideId;\r\n }\r\n\r\n const winningSide = winningSideId || winnerId;\r\n results = createMatchResults(currentMatch, games, winningSide, matchOutcome.outcomeId, isSide1Position1);\r\n }\r\n }\r\n\r\n if (hasNoErrors) {\r\n onSaveMatchScore(currentMatch.id, results, isEditing);\r\n setIsEditing(false);\r\n setMatchOutcome(null);\r\n }\r\n };\r\n\r\n const handleOnMatchOutcomeChange = (outcome) => {\r\n setScoringError(null);\r\n\r\n const outcomeIndex = matchOutcomeOptions.findIndex((option) => option.id === outcome?.id);\r\n setMatchOutcome(matchOutcomeOptions[outcomeIndex]);\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n };\r\n\r\n const handleOnSwitchScores = () => {\r\n const updatedGames = switchGameScores(games);\r\n setGames(updatedGames);\r\n\r\n if (currentMatch?.resultCompletionTypeId) {\r\n const updatedMatch = switchMatchScores(currentMatch);\r\n setCurrentMatch(updatedMatch);\r\n }\r\n };\r\n\r\n const handleOnPlayerChange = (player, side, playerPosition) => {\r\n setCurrentMatch({\r\n ...currentMatch,\r\n [side]: { ...currentMatch[side], [playerPosition]: player },\r\n });\r\n };\r\n\r\n let position1Player1Id;\r\n let position1Player2Id;\r\n let position2Player1Id;\r\n let position2Player2Id;\r\n const isDoubles = currentMatch?.isDoubles;\r\n\r\n if (currentMatch) {\r\n const { position1, position2 } = getPositionsForMatch(currentMatch, isSide1Position1);\r\n position1Player1Id = position1?.player1?.playerId;\r\n position1Player2Id = position1.player2?.playerId;\r\n position2Player1Id = position2?.player1?.playerId;\r\n position2Player2Id = position2.player2?.playerId;\r\n }\r\n\r\n const matchName = `${isDoubles ? 'Doubles' : 'Singles'} Match #${currentMatch?.lineupPosition}`;\r\n const scoringType = getTypeForId(currentMatch?.scoringFormatTypeId, pickleballScoringTypes);\r\n const position1PlayerSide = isSide1Position1 ? SIDE_1 : SIDE_2;\r\n const position2PlayerSide = isSide1Position1 ? SIDE_2 : SIDE_1;\r\n const nonScoringOutcomes = [ResultTypes.DEFAULTED, ResultTypes.MATCH_NOT_PLAYED, ResultTypes.WITHDREW];\r\n const hasNonScoringOutcome = nonScoringOutcomes.includes(matchOutcome?.outcomeId);\r\n\r\n const renderPickleballGames = () => {\r\n return (\r\n games.map((game, index) => {\r\n let hasPreviousGameScore = true;\r\n let hasCurrentScores = false;\r\n\r\n if (game.id !== 1) {\r\n hasPreviousGameScore = hasScores(games[index - 1]);\r\n hasCurrentScores = hasScores(game);\r\n }\r\n\r\n return (\r\n \r\n );\r\n })\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${matchName} - ${scoringType?.description}`}\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 Match Outcome\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 Scores\r\n \r\n \r\n \r\n {isSmallScreen ? (\r\n \r\n\r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {renderPickleballGames()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {renderPickleballGames()}\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 {scoringError && (\r\n \r\n \r\n {scoringError}\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\nexport default PostPickleballScoreModal;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { isNumericScore } from '../../../../utils/postScoreShared';\r\nimport { ResultTypes } from '../../../../utils/types';\r\nimport { SharedUICategories, TypographySizes } from '../../../../utils/constants';\r\n\r\nconst SetScores = ({ position = {}, isPositionWinner = false, outcomeDescription = '', isScorelessOutcome = false, resultCompletionTypeId = null }) => {\r\n const theme = useTheme();\r\n const { DEFAULTED, WITHDREW, RETIRED } = ResultTypes;\r\n const hasSet1Score = isNumericScore(position?.sideResult?.set1Score);\r\n const hasSet2Score = isNumericScore(position?.sideResult?.set2Score);\r\n const hasSet3Score = isNumericScore(position?.sideResult?.set3Score);\r\n const hasSet1TiebreakerScore = isNumericScore(position?.sideResult?.tieBreakSet1Score);\r\n const hasSet2TiebreakerScore = isNumericScore(position?.sideResult?.tieBreakSet2Score);\r\n const hasSet3TiebreakerScore = isNumericScore(position?.sideResult?.tieBreakSet3Score);\r\n const fontSize = isPositionWinner ? TypographySizes.MEDIUM_MEDIUM : TypographySizes.MEDIUM_BOOK;\r\n const fontColor = isPositionWinner ? theme.appColors.black : theme.appColors.blueGrey;\r\n const displayOutcomeDescription = (resultCompletionTypeId === DEFAULTED || resultCompletionTypeId === RETIRED || resultCompletionTypeId === WITHDREW) && !isPositionWinner;\r\n const noScores = !displayOutcomeDescription && !hasSet1Score && !hasSet2Score && !hasSet3Score && !isScorelessOutcome;\r\n\r\n return (\r\n \r\n \r\n {displayOutcomeDescription && (\r\n {outcomeDescription}\r\n )}\r\n {hasSet1Score && (\r\n \r\n {position?.sideResult?.set1Score}\r\n {hasSet1TiebreakerScore && (\r\n \r\n {position?.sideResult?.tieBreakSet1Score}\r\n \r\n )}\r\n \r\n )}\r\n {hasSet2Score && (\r\n \r\n {position?.sideResult?.set2Score}\r\n {hasSet2TiebreakerScore && (\r\n \r\n {position?.sideResult?.tieBreakSet2Score}\r\n \r\n )}\r\n \r\n )}\r\n {hasSet3Score && (\r\n \r\n {position?.sideResult?.set3Score}\r\n {hasSet3TiebreakerScore && (\r\n \r\n {position?.sideResult?.tieBreakSet3Score}\r\n \r\n )}\r\n \r\n )}\r\n {noScores && (\r\n \r\n -\r\n -\r\n -\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SetScores;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { getPlayerDisplayUtr } from '../../utils/display';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport { getPlayerProfileUrl } from '../../utils/helpers';\r\n\r\nconst PlayerAvatarWithUtr = ({ player1 = {}, player2 = {}, isWinner = false, isDoubles = false }) => {\r\n const theme = useTheme();\r\n const fontSize = isWinner ? TypographySizes.MEDIUM_MEDIUM : TypographySizes.MEDIUM_BOOK;\r\n const player1FirstLast = player1 && `${player1.firstName} ${player1.lastName}`;\r\n const player2FirstLast = player2 && `${player2.firstName} ${player2.lastName}`;\r\n const player1Name = player1FirstLast || 'To Be Determined';\r\n const player2Name = player2FirstLast || 'To Be Determined';\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n const AvatarWithUtrTemplate = ({ player, playerName }) => {\r\n const href = player ? getPlayerProfileUrl(player?.playerId) : null;\r\n const rating = isTennisMatch ? getPlayerDisplayUtr(player, isDoubles).rating : player?.utrRange?.pickleballRatingDisplay;\r\n return (\r\n <>\r\n \r\n {player && {rating}}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {isDoubles && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvatarWithUtr;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography, CloseIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\nimport { Button, IconButton } from '@mui/material';\r\n\r\nimport TeamMatchSetScores from './TeamMatchSetScores';\r\nimport { ResultTypes, matchResultTypes, getTypeForId } from '../../../utils/types';\r\nimport { getPositionsForMatch } from '../../../utils/postScoreShared';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport PlayerAvatarWithUtr from '../../PlayerAvatarWithUtr';\r\nimport WinnerIndicator from '../../WinnerIndicator';\r\n\r\nconst TeamMatchScoreCard = ({ position1Team = {}, position2Team = {}, match = null, isManaging = false, onEditClicked, isDoubles = false, onClearMatchClick }) => {\r\n const { side1, side2, resultCompletionTypeId, winningSideId } = match || {};\r\n const { DEFAULTED, WITHDREW, INCOMPLETE, MATCH_NOT_PLAYED } = ResultTypes;\r\n const { name: position1TeamName, teamId: position1TeamId } = position1Team || {};\r\n const { name: position2TeamName } = position2Team || {};\r\n\r\n const isSide1Position1 = position1TeamId === side1?.teamId;\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1);\r\n const isPosition1Winner = position1.sideId === winningSideId;\r\n const isPosition2Winner = position2.sideId === winningSideId;\r\n\r\n const theme = useTheme();\r\n const isIncompleteOutcome = resultCompletionTypeId === INCOMPLETE;\r\n const isDefaultedOutcome = resultCompletionTypeId === DEFAULTED;\r\n const scorelessOutcomes = [DEFAULTED, WITHDREW];\r\n const isScorelessOutcome = scorelessOutcomes.includes(resultCompletionTypeId);\r\n const outcome = getTypeForId(resultCompletionTypeId, matchResultTypes);\r\n const showClearButton = !!resultCompletionTypeId || side1?.player1 || side1?.player2 || side2?.player1 || side2?.player2;\r\n\r\n const handleOnEditClicked = () => {\r\n onEditClicked(match, isDoubles);\r\n };\r\n\r\n const handleOnClearPlayerMatch = () => {\r\n onClearMatchClick(match);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isDoubles ? 'Doubles' : 'Singles'} Line Match {match.lineupPosition}\r\n \r\n {isManaging && (\r\n \r\n \r\n {showClearButton && (\r\n <>\r\n |\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {resultCompletionTypeId === MATCH_NOT_PLAYED ? (\r\n \r\n \r\n Match not played\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {position2TeamName}\r\n {isDefaultedOutcome && !isPosition2Winner ? (\r\n \r\n -\r\n \r\n ) : (\r\n \r\n {isPosition2Winner && }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {isIncompleteOutcome && (\r\n Incomplete\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName}\r\n {isDefaultedOutcome && !isPosition1Winner ? (\r\n \r\n -\r\n \r\n ) : (\r\n \r\n {isPosition1Winner && }\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\nexport default TeamMatchScoreCard;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport PlayerAvatarWithUtr from '../../PlayerAvatarWithUtr';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nconst TeamMatchAlternatesCard = ({ positionAlternates = [] }) => {\r\n const theme = useTheme();\r\n const { alternatePlayers } = positionAlternates;\r\n\r\n return (\r\n <>\r\n \r\n {positionAlternates?.teamName} Alternates\r\n \r\n \r\n \r\n \r\n {alternatePlayers.map((alternate) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamMatchAlternatesCard;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography, Button, CalendarIcon, SessionIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport Container from '@mui/material/Container';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport WinnerIndicator from '../../../components/WinnerIndicator';\r\nimport { homeTeamIndicator } from '../../../utils/constants';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { LeagueSessionTypes } from '../../../utils/types';\r\nimport { teamMatchSummaryPropTypes, defaultTeamMatchSummaryPropTypes } from '../../../utils/proptypes';\r\nimport { TBD_ROUND } from '../../../components/DrawTab/utils';\r\n\r\nconst TeamMatchSummary = ({ isLoading, onEditClicked, summary = {}, scores, isUpdating = true, winningTeamId }) => {\r\n const { canEditTeamMatch, sessionName, position1Team, position2Team, matchDate, sessionId, sessionTypeId } = summary;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const isMultiRoundSession = sessionTypeId === MULTI_ROUND;\r\n const hasNoScoresPosted = scores?.position1 === 0 && scores?.position2 === 0;\r\n const homeTeam = position1Team?.name;\r\n const homeScore = hasNoScoresPosted ? '-' : scores?.position1;\r\n const awayTeam = position2Team?.name;\r\n const awayScore = hasNoScoresPosted ? '-' : scores?.position2;\r\n const date = matchDate ? getAdjustedDate({ dateUtc: matchDate, format: 'MMM Do, YYYY [\\u2022] h:mm A' }) : TBD_ROUND;\r\n const theme = useTheme();\r\n const hasWinner = position1Team?.isWinner || position2Team?.isWinner;\r\n const isPosition1Winner = hasWinner && position1Team?.teamId === winningTeamId;\r\n const isPosition2Winner = hasWinner && position2Team?.teamId === winningTeamId;\r\n const sessionUrl = `/leagues/session/${sessionId}`;\r\n const awayTeamUrl = `/teams/${position2Team?.teamId}`;\r\n const homeTeamUrl = `/teams/${position1Team?.teamId}`;\r\n const homeTeamTextColor = hasWinner && isPosition2Winner ? theme.appColors.grey : theme.appColors.white;\r\n const awayTeamTextColor = hasWinner && isPosition1Winner ? theme.appColors.grey : theme.appColors.white;\r\n\r\n const handleOnEditClick = () => {\r\n onEditClicked();\r\n };\r\n\r\n const truncatedTextStyles = {\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n minWidth: 0\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n Team match\r\n {canEditTeamMatch && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {awayTeam}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {homeTeam}\r\n \r\n \r\n {isMultiRoundSession && {homeTeamIndicator}}\r\n \r\n\r\n \r\n \r\n \r\n {isUpdating ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {isPosition2Winner && ()}\r\n \r\n {awayScore}\r\n \r\n \r\n \r\n {isPosition1Winner && ()}\r\n \r\n {homeScore}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {date}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nTeamMatchSummary.propTypes = {\r\n ...teamMatchSummaryPropTypes\r\n};\r\n\r\nTeamMatchSummary.defaultProps = {\r\n ...defaultTeamMatchSummaryPropTypes\r\n};\r\n\r\nexport default TeamMatchSummary;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { PlayerAvailabilityStatusTypes } from '../../../../utils/types';\r\n\r\nconst PlayerAvailabilityEditModal = ({ onStatusChange, isOpen, onClose }) => {\r\n const { YES, MAYBE, NO } = PlayerAvailabilityStatusTypes;\r\n\r\n const handleOnAvailabilityChange = (event) => {\r\n const status = event.currentTarget.value;\r\n onStatusChange(status);\r\n };\r\n\r\n return (\r\n \r\n \r\n Update player RSVP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n What would you like to update the player's RSVP to?\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\nexport default PlayerAvailabilityEditModal;\r\n","import React, { useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\n\r\nimport { PlayerAvailabilityStatusTypes } from '../../../../utils/types';\r\nimport { CustomSwitch } from '../../../../components/Styled';\r\n\r\nconst PlayerAvailabilityReminderModal = ({ isOpen, onClose, players, onReminderChange }) => {\r\n const theme = useTheme();\r\n const { YES, NO, MAYBE } = PlayerAvailabilityStatusTypes;\r\n\r\n const [playersToRemind, setPlayersToRemind] = useState([]);\r\n\r\n const handleAvailabilityReminderSwitch = (playerIds) => {\r\n const index = playersToRemind?.findIndex((selectedPlayerIds) =>\r\n selectedPlayerIds?.every((id) => playerIds.includes(id)));\r\n const removePlayerIds = index !== -1;\r\n if (removePlayerIds) {\r\n const updatedPlayersToRemind = [...playersToRemind];\r\n updatedPlayersToRemind?.splice(index, 1);\r\n setPlayersToRemind(updatedPlayersToRemind);\r\n } else {\r\n setPlayersToRemind([...playersToRemind, playerIds]);\r\n }\r\n };\r\n\r\n const isReminderSwitchChecked = (playerIds) => {\r\n return playersToRemind?.some((selectedPlayerIds) =>\r\n selectedPlayerIds?.every((id) => playerIds.includes(id)));\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n setPlayersToRemind([]);\r\n };\r\n\r\n const handleSendNotification = () => {\r\n onReminderChange({ teamMemberIds: playersToRemind?.flat() });\r\n onClose();\r\n setPlayersToRemind([]);\r\n };\r\n\r\n const getLabelForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return 'Yes';\r\n case MAYBE:\r\n return 'Maybe';\r\n case NO:\r\n return 'No';\r\n default:\r\n return 'No response';\r\n }\r\n };\r\n\r\n const groupedPlayersByAvailability = players.reduce((result, player) => {\r\n const statusTypeId = player.playerAvailabilityStatusTypeId;\r\n if (!result[statusTypeId]) {\r\n result[statusTypeId] = [];\r\n }\r\n result[statusTypeId].push(player.teamMemberId);\r\n return result;\r\n }, {});\r\n\r\n return (\r\n \r\n \r\n Send reminders to\r\n \r\n \r\n {Object.entries(groupedPlayersByAvailability).map(([status, ids]) => {\r\n return (\r\n \r\n \r\n {getLabelForAvailabilityStatus(parseInt(status))}\r\n {ids.length}\r\n \r\n handleAvailabilityReminderSwitch(ids)} />\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\nexport default PlayerAvailabilityReminderModal;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AvailabilityYesIcon, AvailabilityNoIcon, AvailabilityMaybeIcon, AvailabilityNotSetIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { PlayerAvailabilityStatusTypes } from '../../utils/types';\r\n\r\nconst PlayerAvailabilityIndicator = ({ availabilityStatus = null, onAvailabilityClick, isIconOnly = false }) => {\r\n const theme = useTheme();\r\n const { YES, MAYBE, NO } = PlayerAvailabilityStatusTypes;\r\n const iconSize = 24;\r\n\r\n const getButtonForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return ;\r\n case MAYBE:\r\n return ;\r\n case NO:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n const getIconForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return ;\r\n case MAYBE:\r\n return ;\r\n case NO:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isIconOnly ? (\r\n getIconForAvailabilityStatus(availabilityStatus)\r\n ) : (\r\n getButtonForAvailabilityStatus(availabilityStatus)\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvailabilityIndicator;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport Paper from '@mui/material/Paper';\r\nimport { SharedUICategories, TypographySizes } from '../../../../utils/constants';\r\nimport { SportTypeIds } from '../../../../utils/types';\r\nimport { getPlayerAvatarImage } from '../../../../utils/helpers';\r\n\r\nimport LoadingIndicator from '../../../../components/LoadingIndicator';\r\nimport PlayerAvailabilityIndicator from '../../../../components/PlayerAvailabilityIndicator';\r\n\r\nconst PlayerTableRow = ({ rowData, labelId, onAvailabilityClick, isUserCaptain, isUserTeamMember }) => {\r\n const {\r\n doublesUtr,\r\n id,\r\n teamMemberId,\r\n name,\r\n playerAvailabilityStatusTypeId,\r\n profileImage,\r\n singlesRecord,\r\n doublesRecord,\r\n singlesUtr,\r\n utrp\r\n } = rowData;\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK } = TypographySizes;\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const playerImage = getPlayerAvatarImage(profileImage);\r\n\r\n const handleOnAvailabilityClick = () => {\r\n onAvailabilityClick(teamMemberId);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {(isUserCaptain || isUserTeamMember) && (\r\n \r\n )}\r\n \r\n {isTennisMatch ? (\r\n <>\r\n \r\n {singlesUtr}\r\n \r\n \r\n {doublesUtr}\r\n \r\n \r\n ) : (\r\n \r\n {utrp}\r\n \r\n )}\r\n \r\n {singlesRecord}\r\n \r\n \r\n {doublesRecord}\r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nconst TeamTabTable = ({ headCells = [], tableData = [], isLoading, onAvailabilityClick, isUserCaptain, isUserTeamMember }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { XX_SMALL_MEDIUM_CAP } = TypographySizes;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell, index) => (\r\n \r\n {headCell.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData\r\n .map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return (\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\nexport default TeamTabTable;\r\n","import React from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Slide from '@mui/material/Slide';\r\nimport Box from '@mui/material/Box';\r\nimport Snackbar from '@mui/material/Snackbar';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst SuccessSnackbar = ({\r\n isOpen,\r\n onClose,\r\n title,\r\n message\r\n}) => {\r\n const theme = useTheme();\r\n return (\r\n \r\n \r\n {title}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SuccessSnackbar;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport { Box } from '@mui/material';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport PlayerAvailabilityEditModal from './PlayerAvailabilityEditModal';\r\nimport PlayerAvailabilityReminderModal from './PlayerAvailabilityReminderModal';\r\nimport TeamTabTable from './TeamTabTable';\r\nimport SuccessSnackbar from '../../../components/SuccessSnackbar';\r\n\r\nimport { getPlayerDisplayUtr } from '../../../utils/display';\r\nimport { SportTypeIds } from '../../../utils/types';\r\nimport { sortPlayersByAvailability } from '../../../utils/helpers';\r\nimport {\r\n tennisTeamMatchHeadCells,\r\n pickleballTeamMatchHeadCells,\r\n tennisSubstituteTeamMatchHeadCells,\r\n pickleballSubstituteTeamMatchHeadCells,\r\n TypographySizes,\r\n SharedUICategories\r\n} from '../../../utils/constants';\r\n\r\nconst TeamTab = ({\r\n teamPlayers = [],\r\n isLoading,\r\n teamName,\r\n onAvailabilityChange,\r\n onReminderChange,\r\n displaySuccessSnackbar,\r\n onCloseSuccessSnackbar,\r\n isUserCaptain,\r\n isUserTeamMember\r\n}) => {\r\n const [players, setPlayers] = useState([]);\r\n const [showRemindersModal, setShowRemindersModal] = useState(false);\r\n const [showAvailabilityModal, setShowAvailabilityModal] = useState(false);\r\n const [availabilityIdToBeUpdated, setAvailabilityIdToBeUpdated] = useState();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const { PRIMARY, SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK, LARGE_BOOK } = TypographySizes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n useEffect(() => {\r\n const formattedPlayers = teamPlayers.map((player) => {\r\n const { rating } = getPlayerDisplayUtr(player);\r\n const { rating: doublesUtr } = getPlayerDisplayUtr(player, true);\r\n const {\r\n memberId,\r\n firstName,\r\n lastName,\r\n playerAvailabilityStatusTypeId,\r\n record,\r\n profileImage,\r\n isSubstitute,\r\n utrRange,\r\n teamMemberId,\r\n } = player || {};\r\n return {\r\n id: memberId,\r\n name: `${firstName} ${lastName}`,\r\n playerAvailabilityStatusTypeId,\r\n singlesRecord: record ? `${record?.singlesWins} - ${record?.singlesLosses}` : '-',\r\n doublesRecord: record ? `${record?.doublesWins} - ${record?.doublesLosses}` : '-',\r\n doublesUtr,\r\n profileImage,\r\n isSubstitute,\r\n singlesUtr: rating,\r\n teamMemberId,\r\n utrp: utrRange?.pickleballRatingDisplay || 'UR'\r\n };\r\n });\r\n setPlayers(formattedPlayers);\r\n }, [teamPlayers]);\r\n\r\n const handleOnSendRemindersClick = () => {\r\n setShowRemindersModal(true);\r\n };\r\n\r\n const handleOnCloseRemindersModal = () => {\r\n setShowRemindersModal(false);\r\n };\r\n\r\n const handleOnCloseAvailabilityModal = () => {\r\n setShowAvailabilityModal(false);\r\n };\r\n\r\n const handleOnAvailabilityClick = (teamMemberId) => {\r\n setAvailabilityIdToBeUpdated(teamMemberId);\r\n setShowAvailabilityModal(true);\r\n };\r\n\r\n const handleOnAvailabilityStatusChange = (status) => {\r\n handleOnCloseAvailabilityModal();\r\n onAvailabilityChange({ teamMemberId: availabilityIdToBeUpdated, availabilityStatus: status });\r\n };\r\n\r\n const filteredRosteredPlayers = players?.filter((player) => !player.isSubstitute);\r\n const filteredSubstitutePlayers = players?.filter((player) => player.isSubstitute);\r\n const headCells = isTennisMatch ? tennisTeamMatchHeadCells : pickleballTeamMatchHeadCells;\r\n const substituteHeadCells = isTennisMatch ? tennisSubstituteTeamMatchHeadCells : pickleballSubstituteTeamMatchHeadCells;\r\n const remindersPlayerData = [...filteredRosteredPlayers, ...filteredSubstitutePlayers];\r\n\r\n return (\r\n \r\n \r\n {teamName}\r\n {isUserCaptain && !!players.length && }\r\n \r\n {!players.length && (\r\n \r\n No players have been rostered on the team.\r\n \r\n )}\r\n {!!filteredRosteredPlayers?.length && (\r\n \r\n )}\r\n {!!filteredSubstitutePlayers?.length && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamTab;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport PlayerUtr from '../PlayerUtr';\r\nimport { getPlayerDisplayPickleballRating, getPlayerDisplayUtr } from '../../utils/display';\r\n\r\nconst PlayerRating = ({ player, isDoubles = false, isAppended = false }) => {\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n const { isVerified, rating } = isTennisMatch ? getPlayerDisplayUtr(player, isDoubles) : getPlayerDisplayPickleballRating(player);\r\n\r\n return isTennisMatch ? (\r\n \r\n ) : (\r\n {rating}\r\n );\r\n};\r\n\r\nexport default PlayerRating;\r\n","import React from 'react';\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Stack from '@mui/material/Stack';\r\n\r\nimport PlayerRating from '../PlayerRating';\r\nimport PlayerAvailabilityIndicator from '../PlayerAvailabilityIndicator';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport config from '../../config';\r\n\r\nconst LineupDropdownItem = ({ player }) => {\r\n const theme = useTheme();\r\n const { firstName, lastName, profileImage, record, playerAvailabilityStatusTypeId } = player || {};\r\n const { doublesWins, doublesLosses, singlesWins, singlesLosses } = record || {};\r\n const playerImage = `${config.cdnUrl}/v1/player/${profileImage}`;\r\n const name = `${firstName} ${lastName}`;\r\n const noRecord = '0 - 0';\r\n let totalPlayed = 0;\r\n let doublesRecord = noRecord;\r\n let singlesRecord = noRecord;\r\n\r\n if (record) {\r\n totalPlayed = doublesLosses + doublesWins + singlesLosses + singlesWins;\r\n doublesRecord = `${doublesWins} - ${doublesLosses}`;\r\n singlesRecord = `${singlesWins} - ${singlesLosses}`;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n {`Played: ${totalPlayed}`}\r\n {`SGLS: ${singlesRecord}`}\r\n {`DBLS: ${doublesRecord}`}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LineupDropdownItem;\r\n","import React from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport RemoveIcon from '@mui/icons-material/HighlightOff';\r\nimport Select from '@mui/material/Select';\r\n\r\nimport LineupDropdownItem from '../../LineupDropdownItem';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nconst LineupAlternatesCard = ({\r\n teamName = '',\r\n roster = [],\r\n fields,\r\n register,\r\n name,\r\n teamId,\r\n error,\r\n onAddAlternate,\r\n onRemoveAlternate,\r\n isDisabled\r\n}) => {\r\n const handleOnAddAlternateClick = () => {\r\n onAddAlternate(teamId);\r\n };\r\n\r\n const handleOnRemoveAlternateClick = (indexToRemove) => {\r\n onRemoveAlternate(indexToRemove, teamId);\r\n };\r\n\r\n const getPlayerNameForSelection = (teamMemberId) => {\r\n const player = roster?.find((teamPlayer) => teamPlayer?.teamMemberId === teamMemberId);\r\n return `${player?.firstName} ${player?.lastName}`;\r\n };\r\n\r\n return (\r\n \r\n \r\n {`${teamName} Alternates`}\r\n \r\n \r\n \r\n {fields?.map((field, index) => (\r\n \r\n \r\n {`${teamName} alternate`}\r\n getPlayerNameForSelection(value)}\r\n sx={{ width: '100%' }}\r\n {...register(`${name}.${index}.teamMemberId`)}\r\n >\r\n {roster?.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {fields?.length !== 1 && (\r\n handleOnRemoveAlternateClick(index)} aria-label=\"delete\">\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\nexport default LineupAlternatesCard;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\n\r\nimport LineupDropdownItem from '../../LineupDropdownItem';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { MatchPositions, MatchPositionKeys } from '../../../utils/postScoreShared';\r\nimport { sortPlayersByAvailability } from '../../../utils/helpers';\r\n\r\nconst LineupCard = ({\r\n isDoubles = false,\r\n position1Team,\r\n position2Team,\r\n lineup,\r\n onPlayerChange,\r\n canEditPosition1,\r\n canEditPosition2,\r\n}) => {\r\n const { POSITION_1, POSITION_2 } = MatchPositions;\r\n const { MATCH_POSITION_1, MATCH_POSITION_2 } = MatchPositionKeys;\r\n const [currentLineup, setCurrentLineup] = useState();\r\n const [selectedPlayer1Position1, setSelectedPlayer1Position1] = useState();\r\n const [selectedPlayer2Position1, setSelectedPlayer2Position1] = useState();\r\n const [selectedPlayer1Position2, setSelectedPlayer1Position2] = useState();\r\n const [selectedPlayer2Position2, setSelectedPlayer2Position2] = useState();\r\n\r\n const cardTitle = `${isDoubles ? 'Doubles' : 'Singles'} line match ${lineup?.lineupPosition}`;\r\n const showBothPositions = canEditPosition1 && canEditPosition2;\r\n const position1Players = position1Team?.teamMembers;\r\n const position2Players = position2Team?.teamMembers;\r\n const position1TeamName = position1Team?.name;\r\n const position2TeamName = position2Team?.name;\r\n const teamName = canEditPosition1 && !canEditPosition2 ? position1TeamName : position2TeamName;\r\n\r\n const position = !showBothPositions && canEditPosition1 && !canEditPosition2 ? POSITION_1 : POSITION_2;\r\n\r\n useEffect(() => {\r\n if (lineup) {\r\n setCurrentLineup(lineup);\r\n setSelectedPlayer1Position1(lineup?.position1?.player1TeamMemberId);\r\n setSelectedPlayer2Position1(lineup?.position1?.player2TeamMemberId);\r\n setSelectedPlayer1Position2(lineup?.position2?.player1TeamMemberId);\r\n setSelectedPlayer2Position2(lineup?.position2?.player2TeamMemberId);\r\n }\r\n }, [lineup]);\r\n\r\n const handleOnPlayerChange = (event, teamPosition, isPlayerTwo = false) => {\r\n const isPosition1 = teamPosition === POSITION_1;\r\n const positionKey = isPosition1 ? MATCH_POSITION_1 : MATCH_POSITION_2;\r\n const positionTeamId = isPosition1 ? position1Team?.teamId : position2Team?.teamId;\r\n const playerTeamMemberId = event.target.value;\r\n\r\n if (isPosition1 && !isPlayerTwo) {\r\n setSelectedPlayer1Position1(event.target.value);\r\n } else if (isPosition1 && isPlayerTwo) {\r\n setSelectedPlayer2Position1(event.target.value);\r\n } else if (!isPosition1 && !isPlayerTwo) {\r\n setSelectedPlayer1Position2(event.target.value);\r\n } else if (!isPosition1 && isPlayerTwo) {\r\n setSelectedPlayer2Position2(event.target.value);\r\n }\r\n\r\n const updatedLineup = {\r\n ...currentLineup,\r\n [positionKey]: {\r\n teamId: positionTeamId,\r\n player1TeamMemberId: isPlayerTwo ? currentLineup[positionKey]?.player1TeamMemberId : playerTeamMemberId,\r\n player2TeamMemberId: isPlayerTwo ? playerTeamMemberId : currentLineup[positionKey]?.player2TeamMemberId\r\n }\r\n };\r\n\r\n setCurrentLineup(updatedLineup);\r\n onPlayerChange({ updatedLineup, playerTeamMemberId, teamId: positionTeamId });\r\n };\r\n\r\n const getPlayerNameForSelection = (teamMemberId, teamPosition) => {\r\n const isPosition1 = teamPosition === POSITION_1;\r\n const team = isPosition1 ? position1Players : position2Players;\r\n const player = team.find((teamPlayer) => teamPlayer?.teamMemberId === teamMemberId);\r\n\r\n return `${player?.firstName} ${player?.lastName}`;\r\n };\r\n\r\n const sortedPosition2Players = useMemo(() => {\r\n return sortPlayersByAvailability(position2Players) || [];\r\n }, [position2Players]);\r\n\r\n const sortedPosition1Players = useMemo(() => {\r\n return sortPlayersByAvailability(position1Players) || [];\r\n }, [position1Players]);\r\n\r\n const doublesPlayer2Value = position === POSITION_1 ? selectedPlayer2Position1 : selectedPlayer2Position2;\r\n const doublesPlayer1Value = position === POSITION_1 ? selectedPlayer1Position1 : selectedPlayer1Position2;\r\n const singlesPlayerValue = position === POSITION_1 ? selectedPlayer1Position1 : selectedPlayer1Position2;\r\n const players = canEditPosition1 && !canEditPosition2 ? sortedPosition1Players : sortedPosition2Players;\r\n\r\n return (\r\n \r\n \r\n {cardTitle}\r\n \r\n \r\n {isDoubles ? (\r\n \r\n {showBothPositions ? (\r\n \r\n \r\n {position2TeamName}\r\n handleOnPlayerChange(event, POSITION_2)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_2)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition2Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position2TeamName}\r\n handleOnPlayerChange(event, POSITION_2, true)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_2)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition2Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position1TeamName}\r\n handleOnPlayerChange(event, POSITION_1)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_1)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition1Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position1TeamName}\r\n handleOnPlayerChange(event, POSITION_1, true)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_1)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition1Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {teamName}\r\n handleOnPlayerChange(event, position)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, position)}\r\n >\r\n \r\n None\r\n \r\n {players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {teamName}\r\n handleOnPlayerChange(event, position, true)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, position)}\r\n >\r\n \r\n None\r\n \r\n {players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n {showBothPositions ? (\r\n \r\n \r\n {position2TeamName}\r\n handleOnPlayerChange(event, POSITION_2)}\r\n label={position2TeamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_2)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition2Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position1TeamName}\r\n handleOnPlayerChange(event, POSITION_1)}\r\n label={position1TeamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_1)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition1Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {teamName}\r\n handleOnPlayerChange(event, position)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, position)}\r\n >\r\n \r\n None\r\n \r\n {players.map((player) => (\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\nexport default LineupCard;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport { useForm, useFieldArray } from 'react-hook-form';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport LineupAlternatesCard from '../Cards/LineupAlternatesCard';\r\nimport LineupCard from '../Cards/LineupCard';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { MatchPositions } from '../../utils/postScoreShared';\r\nimport { getAlternateIds, validateLineups } from '../../utils/helpers';\r\nimport { useUpdateTeamMatchLineupsMutation, useGetTeamMatchLineupsQuery } from '../../api/leaguesApi';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst POSITION_1_ALTERNATES = 'position1Alternates';\r\nconst POSITION_2_ALTERNATES = 'position2Alternates';\r\nconst APPENDED_ALTERNATE = { teamMemberId: '' };\r\n\r\nconst SetLineupModal = ({\r\n onClose,\r\n isOpen,\r\n position1Team,\r\n position2Team,\r\n}) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { teamMatchId } = useParams();\r\n const { DISPLAY, PRIMARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, } = TypographySizes;\r\n const [matchLineups, setMatchLineups] = useState([]);\r\n const [position1AlternatePlayers, setPosition1AlternatePlayers] = useState([]);\r\n const [position2AlternatePlayers, setPosition2AlternatePlayers] = useState([]);\r\n const [isAlternatesDisabled, setIsAlternatesDisabled] = useState(false);\r\n\r\n const { data: lineupData, isFetching, error } = useGetTeamMatchLineupsQuery(teamMatchId);\r\n const [updateLineups] = useUpdateTeamMatchLineupsMutation();\r\n const isPosition1Lineup = lineupData?.canEditPosition1 && !lineupData?.canEditPosition2;\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n position1Alternates: [{ teamMemberId: '' }],\r\n position2Alternates: [{ teamMemberId: '' }]\r\n };\r\n const { register, control, handleSubmit, formState: { errors }, getValues, resetField } = useForm({ defaultValues, mode: 'all' });\r\n const { fields: position1Fields, append: position1Append, remove: position1Remove } = useFieldArray({\r\n control,\r\n name: POSITION_1_ALTERNATES,\r\n rules: { minLength: 1 }\r\n });\r\n const { fields: position2Fields, append: position2Append, remove: position2Remove } = useFieldArray({\r\n control,\r\n name: POSITION_2_ALTERNATES,\r\n rules: { minLength: 1 }\r\n });\r\n\r\n const mappedAlternateIds = (alternates) => {\r\n return alternates?.map((alternate) => ({ teamMemberId: alternate?.teamMemberId }));\r\n };\r\n\r\n useEffect(() => {\r\n if (lineupData) {\r\n setMatchLineups([...lineupData.singlesLineups, ...lineupData.doublesLineups]);\r\n\r\n if (lineupData?.position1Alternates?.alternates?.length) {\r\n const position1Ids = mappedAlternateIds(lineupData.position1Alternates.alternates);\r\n resetField(POSITION_1_ALTERNATES, { defaultValue: position1Ids });\r\n }\r\n if (lineupData?.position2Alternates?.alternates?.length) {\r\n const position2Ids = mappedAlternateIds(lineupData.position2Alternates.alternates);\r\n resetField(POSITION_2_ALTERNATES, { defaultValue: position2Ids });\r\n }\r\n }\r\n }, [lineupData]);\r\n\r\n useEffect(() => {\r\n if (position1Team && position2Team) {\r\n setPosition1AlternatePlayers(position1Team?.teamMembers);\r\n setPosition2AlternatePlayers(position2Team?.teamMembers);\r\n }\r\n }, [position1Team, position2Team]);\r\n\r\n useEffect(() => {\r\n if (matchLineups) {\r\n setIsAlternatesDisabled(true);\r\n const lineupTeamMemberIds = matchLineups.reduce((lineupIds, lineup) => {\r\n if (!lineupIds?.position1Ids && !lineupIds?.position2Ids) {\r\n lineupIds.position1Ids = [];\r\n lineupIds.position2Ids = [];\r\n }\r\n\r\n if (lineupIds?.position1Ids?.length || lineupIds?.position2Ids?.length) {\r\n setIsAlternatesDisabled(false);\r\n }\r\n\r\n if (lineup.position1?.player1TeamMemberId) {\r\n lineupIds.position1Ids.push(lineup.position1?.player1TeamMemberId);\r\n }\r\n if (lineup.position1?.player2TeamMemberId) {\r\n lineupIds.position1Ids.push(lineup.position1?.player2TeamMemberId);\r\n }\r\n\r\n if (lineup.position2?.player1TeamMemberId) {\r\n lineupIds.position2Ids.push(lineup.position2?.player1TeamMemberId);\r\n }\r\n if (lineup.position2?.player2TeamMemberId) {\r\n lineupIds.position2Ids.push(lineup.position2?.player2TeamMemberId);\r\n }\r\n\r\n return lineupIds;\r\n }, {});\r\n\r\n const position1Alternates = position1Team?.teamMembers?.filter((player) => !lineupTeamMemberIds?.position1Ids?.includes(player.teamMemberId));\r\n const position2Alternates = position2Team?.teamMembers?.filter((player) => !lineupTeamMemberIds?.position2Ids?.includes(player.teamMemberId));\r\n setPosition1AlternatePlayers(position1Alternates);\r\n setPosition2AlternatePlayers(position2Alternates);\r\n }\r\n }, [matchLineups]);\r\n\r\n const handleOnFormSubmit = async (formValues) => {\r\n const position1AlternateIds = getAlternateIds(formValues?.position1Alternates);\r\n const position2AlternateIds = getAlternateIds(formValues?.position2Alternates);\r\n\r\n const lineups = {\r\n lineups: matchLineups,\r\n position1TeamAlternatePlayers: {\r\n teamId: position1Team?.teamId,\r\n teamMemberIds: position1AlternateIds\r\n },\r\n position2TeamAlternatePlayers: {\r\n teamId: position2Team?.teamId,\r\n teamMemberIds: position2AlternateIds\r\n },\r\n };\r\n\r\n const validationError = validateLineups(lineups);\r\n\r\n if (validationError) {\r\n dispatch(showErrorPopup({ message: validationError }));\r\n return;\r\n }\r\n\r\n try {\r\n await updateLineups({ teamMatchId, lineups }).unwrap();\r\n onClose();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleOnPlayerChange = ({ updatedLineup, playerTeamMemberId, teamId }) => {\r\n const foundIndex = matchLineups.findIndex((lineup) => lineup?.playerMatchId === updatedLineup?.playerMatchId);\r\n const isExistingLineup = foundIndex !== -1;\r\n const updatedMatchLineups = [...matchLineups];\r\n const alternates = getValues();\r\n\r\n if (isExistingLineup) {\r\n updatedMatchLineups[foundIndex] = updatedLineup;\r\n setMatchLineups(updatedMatchLineups);\r\n } else {\r\n const updatedLineups = [...updatedMatchLineups, updatedLineup];\r\n setMatchLineups(updatedLineups);\r\n }\r\n\r\n if (teamId === position1Team?.teamId) {\r\n const position1AlternateIds = getAlternateIds(alternates?.position1Alternates);\r\n if (position1AlternateIds.includes(playerTeamMemberId)) {\r\n const playerIndex = alternates?.position1Alternates?.findIndex((alternate) => alternate.teamMemberId === playerTeamMemberId);\r\n position1Remove(playerIndex);\r\n\r\n if (playerIndex === 0) {\r\n position1Append(APPENDED_ALTERNATE);\r\n }\r\n }\r\n } else if (teamId === position2Team?.teamId) {\r\n const position2AlternateIds = getAlternateIds(alternates?.position2Alternates);\r\n if (position2AlternateIds.includes(playerTeamMemberId)) {\r\n const playerIndex = alternates?.position2Alternates?.findIndex((alternate) => alternate.teamMemberId === playerTeamMemberId);\r\n position2Remove(playerIndex);\r\n\r\n if (playerIndex === 0) {\r\n position2Append(APPENDED_ALTERNATE);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleOnAddAlternate = (teamId) => {\r\n const isPosition1Team = teamId === position1Team?.teamId;\r\n\r\n if (isPosition1Team) {\r\n position1Append(APPENDED_ALTERNATE);\r\n } else {\r\n position2Append(APPENDED_ALTERNATE);\r\n }\r\n };\r\n\r\n const handleOnRemoveAlternate = (indexToRemove, teamId) => {\r\n const isPosition1Team = teamId === position1Team?.teamId;\r\n\r\n if (isPosition1Team) {\r\n position1Remove(indexToRemove);\r\n } else {\r\n position2Remove(indexToRemove);\r\n }\r\n };\r\n\r\n const alternatePositionFields = isPosition1Lineup ? position1Fields : position2Fields;\r\n const alternateError = isPosition1Lineup ? !!errors.position1Alternates : !!errors.position2Alternates;\r\n const alternateFieldName = isPosition1Lineup ? POSITION_1_ALTERNATES : POSITION_2_ALTERNATES;\r\n const alternateRoster = isPosition1Lineup ? position1AlternatePlayers : position2AlternatePlayers;\r\n const alternateTeamName = isPosition1Lineup ? position1Team?.name : position2Team?.name;\r\n const alternateTeamId = isPosition1Lineup ? position1Team?.teamId : position2Team?.teamId;\r\n\r\n return (\r\n \r\n {isFetching ? (\r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Set lines\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lineupData?.singlesLineups?.map((lineup) => (\r\n \r\n \r\n \r\n ))}\r\n {lineupData?.doublesLineups?.map((lineup) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n {lineupData?.canEditPosition1 && lineupData?.canEditPosition2 ? (\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\nexport default SetLineupModal;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { useGetPlayerMatchesQuery, useUpdateTeamMatchLineupStatusMutation } from '../api/leaguesApi';\r\nimport { LineupStatusType } from '../utils/constants';\r\n\r\nconst LineupStatusMessaging = {\r\n locked: {\r\n title: 'Lineups locked!',\r\n message: 'To make changes, unlock this lineup',\r\n notifyPlayersMessage: 'Notifications have been sent to all players. To make changes, unlock this lineup.'\r\n },\r\n published: {\r\n title: 'Lineups published!',\r\n message: 'Your lineup is live. Notifications will go out when both teams\\' lineups are visible.'\r\n }\r\n};\r\n\r\nexport const usePlayerMatches = (teamMatchId) => {\r\n const dispatch = useDispatch();\r\n const { LOCKED, PUBLISHED } = LineupStatusType;\r\n const [playerMatches, setPlayerMatches] = useState(null);\r\n const [lineupData, setLineupData] = useState(null);\r\n const [canUserViewLineups, setCanUserViewLineup] = useState(false);\r\n const [showCompletedSessionWarning, setShowCompletedSessionWarning] = useState();\r\n const [lineupStatusConfirmation, setLineupStatusConfirmation] = useState({ title: '', message: '', showConfirmation: false });\r\n\r\n const { data, isFetching: isLoadingPlayerMatches, error } = useGetPlayerMatchesQuery(teamMatchId);\r\n const [updateLineupStatus] = useUpdateTeamMatchLineupStatusMutation();\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setPlayerMatches(data);\r\n const { showVerifiedCompletedSessionWarning, lineups } = data || {};\r\n setShowCompletedSessionWarning(showVerifiedCompletedSessionWarning);\r\n\r\n if (lineups) {\r\n setLineupData(lineups);\r\n setCanUserViewLineup(lineups?.canViewLineups);\r\n }\r\n }\r\n }, [data]);\r\n\r\n const getSnackbarConfirmationNotification = (status, isNotifyingPlayers) => {\r\n const { locked, published } = LineupStatusMessaging;\r\n const isCurrentStatusPublished = lineupData?.statusId === PUBLISHED;\r\n\r\n if (isNotifyingPlayers && status === LOCKED && !isCurrentStatusPublished) {\r\n return { title: locked.title, message: locked.notifyPlayersMessage, showConfirmation: true };\r\n }\r\n if (!isNotifyingPlayers && status === LOCKED && !isCurrentStatusPublished) {\r\n return { title: locked.title, message: locked.message, showConfirmation: true };\r\n }\r\n if (status === PUBLISHED) {\r\n return { title: published.title, message: published.message, showConfirmation: true };\r\n }\r\n\r\n return lineupStatusConfirmation;\r\n };\r\n\r\n const handleOnLineupStatusChange = async ({ status, isNotifyingPlayers }) => {\r\n try {\r\n await updateLineupStatus({\r\n teamMatchId: parseInt(teamMatchId),\r\n lineupStatusId: status,\r\n notifyPlayersWhenLocked: isNotifyingPlayers\r\n }).unwrap();\r\n const confirmation = getSnackbarConfirmationNotification(status, isNotifyingPlayers);\r\n setLineupStatusConfirmation(confirmation);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnCloseStatusConfirmation = () => {\r\n setLineupStatusConfirmation({ title: '', message: '', showConfirmation: false });\r\n };\r\n\r\n return {\r\n playerMatches,\r\n showCompletedSessionWarning,\r\n isLoadingPlayerMatches,\r\n lineupData,\r\n handleOnLineupStatusChange,\r\n handleOnCloseStatusConfirmation,\r\n lineupStatusConfirmation,\r\n canUserViewLineups\r\n };\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Container from '@mui/material/Container';\r\nimport Tab from '@mui/material/Tab';\r\nimport TabContext from '@mui/lab/TabContext';\r\nimport TabList from '@mui/lab/TabList';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\n\r\nimport CompletedSessionModal from './CompletedSessionModal';\r\nimport LineupControls from './LineupControls';\r\nimport LocationTab from './LocationTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport MatchEditModal from './MatchEditModal';\r\nimport PlayerAvailabilityResponse from '../../components/PlayerAvailabilityResponse';\r\nimport Popup from '../../components/Popups/Popup';\r\nimport PostTennisScoreModal from './PostTennisScoreModal';\r\nimport PostPickleballScoreModal from './PostPickleballScoreModal';\r\nimport TeamMatchScoreCard from '../../components/Cards/TeamMatchScoreCard';\r\nimport TeamMatchAlternatesCard from '../../components/Cards/TeamMatchAlternatesCard';\r\nimport TeamMatchSummary from './TeamMatchSummary';\r\nimport TeamTab from './TeamTab';\r\nimport SetLineupModal from '../../components/Modals/SetLineupModal';\r\nimport SuccessSnackbar from '../../components/SuccessSnackbar';\r\n\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport { LeagueTabs, LineupStatusType } from '../../utils/constants';\r\nimport {\r\n useGetLatestTeamMatchUpdateQuery,\r\n useGetMatchSummaryQuery,\r\n useUpdateTeamMatchSummaryMutation,\r\n usePostPlayerMatchResultMutation,\r\n useUpdatePlayerMatchResultMutation,\r\n useUpdatePlayerAvailabilityStatusMutation,\r\n useUpdatePlayerReminderStatusMutation,\r\n useClearTeamMatchMutation,\r\n} from '../../api/leaguesApi';\r\nimport { useGetTeamMatchRosters } from '../../hooks/useGetTeamMatchRosters';\r\nimport { usePlayerMatches } from '../../hooks/usePlayerMatches';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst TeamMatchPage = () => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const { LINES, LOCATION, AWAY_TEAM, HOME_TEAM } = LeagueTabs;\r\n const { teamMatchId } = useParams();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const [activeTab, setActiveTab] = useState(LINES);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showPostScoreModal, setShowPostScoreModal] = useState(false);\r\n const [selectedMatch, setSelectedMatch] = useState();\r\n const [teamScores, setTeamScores] = useState({ position1: 0, position2: 0 });\r\n const [pollingInterval, setPollingInterval] = useState(0);\r\n const [isPostingScore, setIsPostingScore] = useState(false);\r\n const [winningTeamId, setWinningTeamId] = useState(null);\r\n const [timestamp, setTimestamp] = useState(null);\r\n const [showCompletedSessionModal, setShowCompletedSessionModal] = useState(false);\r\n const [showLineupModal, setShowLineupModal] = useState(false);\r\n const [showClearMatchModal, setShowClearMatchModal] = useState(false);\r\n const [showAvailabilityReminderSnackbar, setShowAvailabilityReminderSnackbar] = useState(false);\r\n const [matchToBeCleared, setMatchToBeCleared] = useState(null);\r\n const [showLineupNotificationModal, setShowLineupNotificationModal] = useState(false);\r\n const [updatedLineupStatus, setUpdatedLineupStatus] = useState(null);\r\n const [hasMatchDatePassed, setHasMatchDatePassed] = useState(false);\r\n const [isAttemptingToPostScore, setIsAttemptingToPostScore] = useState(false);\r\n const [teamMatchDate, setTeamMatchDate] = useState(null);\r\n\r\n const { position1Team, position2Team, userAvailabilityData, userTeamMemberIds, isLoadingRosters, isUserOnBothTeams } =\r\n useGetTeamMatchRosters(teamMatchId);\r\n const { data, isFetching, error, refetch: refetchMatchSummary } = useGetMatchSummaryQuery(teamMatchId);\r\n const { data: latestResultData, error: latestResultError } = useGetLatestTeamMatchUpdateQuery(\r\n { teamMatchId, timestamp },\r\n { pollingInterval, skip: pollingInterval === 0 }\r\n );\r\n const {\r\n playerMatches,\r\n showCompletedSessionWarning,\r\n isLoadingPlayerMatches,\r\n lineupData,\r\n handleOnLineupStatusChange,\r\n lineupStatusConfirmation,\r\n handleOnCloseStatusConfirmation,\r\n canUserViewLineups,\r\n } = usePlayerMatches(teamMatchId);\r\n\r\n const [postPlayerMatchResult] = usePostPlayerMatchResultMutation();\r\n const [updatePlayerMatchResult] = useUpdatePlayerMatchResultMutation();\r\n const [updateTeamMatchSummary, { isLoading: isUpdatingSummary }] = useUpdateTeamMatchSummaryMutation();\r\n const [updatePlayerAvailability, { error: playerAvailabilityError }] = useUpdatePlayerAvailabilityStatusMutation();\r\n const [updatePlayerReminder] = useUpdatePlayerReminderStatusMutation();\r\n const [clearTeamMatch, { isLoading: isClearingTeamMatch }] = useClearTeamMatchMutation();\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n if (latestResultError) {\r\n dispatch(showErrorPopup(latestResultError));\r\n }\r\n\r\n const sortMatchesByLineupPosition = (matches) => {\r\n return [...matches].sort((a, b) => (a.lineupPosition > b.lineupPosition ? 1 : -1));\r\n };\r\n\r\n useEffect(() => {\r\n if (data) {\r\n if (data.position1Team?.isWinner) {\r\n setWinningTeamId(data.position1Team?.teamId);\r\n } else if (data.position2Team?.isWinner) {\r\n setWinningTeamId(data.position2Team?.teamId);\r\n } else {\r\n setWinningTeamId(null);\r\n }\r\n\r\n if (data?.resultsLastUpdatedMs) {\r\n setTimestamp(data?.resultsLastUpdatedMs);\r\n }\r\n\r\n if (data?.matchDate) {\r\n const isNowAfterMatchDate = moment.utc().isAfter(data.matchDate);\r\n setHasMatchDatePassed(isNowAfterMatchDate);\r\n setTeamMatchDate(data.matchDate);\r\n }\r\n\r\n const position1 = data?.position1Team?.playerMatchPoints;\r\n const position2 = data?.position2Team?.playerMatchPoints;\r\n setTeamScores({ position1, position2 });\r\n dispatch(setSportTypeId(data?.sportTypeId));\r\n }\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n if (latestResultData) {\r\n const isUpdated = latestResultData?.update;\r\n if (isUpdated) {\r\n setPollingInterval(0);\r\n setIsPostingScore(false);\r\n refetchMatchSummary();\r\n }\r\n }\r\n }, [latestResultData]);\r\n\r\n const handleOnEditClicked = () => {\r\n setShowEditModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditModal(false);\r\n };\r\n\r\n const handleOnEditSubmit = async (teamMatch) => {\r\n setShowEditModal(false);\r\n\r\n try {\r\n await updateTeamMatchSummary({ teamMatchId: data?.teamMatchId, teamMatch }).unwrap();\r\n if (isAttemptingToPostScore) {\r\n setIsAttemptingToPostScore(false);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const showDuplicatePlayersError = () => {\r\n dispatch(showPopup({ title: 'Match Error', message: 'A player can only be listed once in an individual match' }));\r\n };\r\n\r\n const showInvalidPlayerCountError = () => {\r\n dispatch(showPopup({ title: 'Match Error', message: 'The amount of players set for this outcome is invalid.' }));\r\n };\r\n\r\n const handleOnCloseScoreModal = () => {\r\n setShowPostScoreModal(false);\r\n };\r\n\r\n const handleOnSaveMatchScore = async (playerMatchId, results, isUpdating) => {\r\n if (isPostingScore) {\r\n setPollingInterval(0);\r\n }\r\n\r\n setShowPostScoreModal(false);\r\n setIsPostingScore(true);\r\n\r\n try {\r\n if (isUpdating) {\r\n await updatePlayerMatchResult({ playerMatchId, playerMatch: results, teamMatchId }).unwrap();\r\n } else {\r\n await postPlayerMatchResult({ playerMatchId, playerMatch: results, teamMatchId }).unwrap();\r\n }\r\n setPollingInterval(3000);\r\n } catch (apiError) {\r\n setPollingInterval(0);\r\n dispatch(showErrorPopup(apiError));\r\n setIsPostingScore(false);\r\n }\r\n };\r\n\r\n const handleOnEditScoreClicked = (match, isDoubles) => {\r\n if (showCompletedSessionWarning) {\r\n setShowCompletedSessionModal(true);\r\n return;\r\n }\r\n\r\n if (!teamMatchDate) {\r\n setIsAttemptingToPostScore(true);\r\n setShowEditModal(true);\r\n return;\r\n }\r\n\r\n const singlesMatches = playerMatches?.singlePlayerMatches.length ? playerMatches?.singlePlayerMatches : [];\r\n const doublesMatches = playerMatches?.doublesPlayerMatches.length ? playerMatches?.doublesPlayerMatches : [];\r\n const allMatches = [...singlesMatches, ...doublesMatches];\r\n const matchToBeUpdated = allMatches?.find((playerMatch) => playerMatch.id === match.id);\r\n const selectedMatchToBeUpdated = {\r\n ...matchToBeUpdated,\r\n isDoubles,\r\n scoringFormatTypeId: isDoubles ? playerMatches?.doublesScoringFormatTypeId : playerMatches?.singlesScoringFormatTypeId,\r\n };\r\n\r\n setSelectedMatch(selectedMatchToBeUpdated);\r\n setShowPostScoreModal(true);\r\n };\r\n\r\n const handleOnCloseCompletedSessionModal = () => {\r\n setShowCompletedSessionModal(false);\r\n };\r\n\r\n const handleOnCloseSuccessSnackbar = () => {\r\n setShowAvailabilityReminderSnackbar(false);\r\n };\r\n\r\n const handleOnTabChange = (_, value) => {\r\n setActiveTab(value);\r\n };\r\n\r\n const handleOnPlayerAvailabilityChange = async ({ teamMemberId, availabilityStatus }) => {\r\n let teamMemberIds = [teamMemberId];\r\n\r\n if (isUserOnBothTeams) {\r\n teamMemberIds = userTeamMemberIds;\r\n }\r\n\r\n try {\r\n await updatePlayerAvailability({\r\n teamMemberIds,\r\n playerAvailabilityStatusId: availabilityStatus,\r\n teamMatchId: parseInt(teamMatchId),\r\n }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnShowLineupModal = () => {\r\n setShowLineupModal(true);\r\n };\r\n\r\n const handleOnCloseLineupModal = () => {\r\n setShowLineupModal(false);\r\n };\r\n\r\n const handleOnReminderChange = async ({ teamMemberIds, teamId }) => {\r\n try {\r\n await updatePlayerReminder({\r\n teamId: parseInt(teamId),\r\n teamMemberIds,\r\n teamMatchId: parseInt(teamMatchId),\r\n }).unwrap();\r\n setShowAvailabilityReminderSnackbar(true);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnClearMatchClick = (match) => {\r\n setMatchToBeCleared(match);\r\n setShowClearMatchModal(true);\r\n };\r\n\r\n const handleOnConfirmClearMatch = async () => {\r\n if (isPostingScore) {\r\n setPollingInterval(0);\r\n }\r\n\r\n setShowClearMatchModal(false);\r\n setIsPostingScore(true);\r\n\r\n try {\r\n await clearTeamMatch({ teamMatchId: matchToBeCleared?.id }).unwrap();\r\n setPollingInterval(3000);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n setIsPostingScore(false);\r\n setPollingInterval(0);\r\n }\r\n };\r\n\r\n const handleOnLineupStatusClick = (status) => {\r\n setUpdatedLineupStatus(status);\r\n\r\n if (status === LineupStatusType.LOCKED && lineupData.statusId !== LineupStatusType.PUBLISHED) {\r\n setShowLineupNotificationModal(true);\r\n } else {\r\n handleOnLineupStatusChange({ status, isNotifyingPlayers: false });\r\n }\r\n };\r\n\r\n const handleOnLineupModalAction = (isNotifyingPlayers) => {\r\n setShowLineupNotificationModal(false);\r\n handleOnLineupStatusChange({ status: updatedLineupStatus, isNotifyingPlayers });\r\n };\r\n\r\n const handleOnCloseClearMatchModal = () => {\r\n setShowClearMatchModal(false);\r\n };\r\n\r\n const singleMatchesToDisplay = playerMatches?.singlePlayerMatches.length\r\n ? sortMatchesByLineupPosition([...(playerMatches?.singlePlayerMatches || {})])\r\n : [];\r\n const doubleMatchesToDisplay = playerMatches?.doublesPlayerMatches.length\r\n ? sortMatchesByLineupPosition([...(playerMatches?.doublesPlayerMatches || {})])\r\n : [];\r\n const showPosition2Alternates = !!playerMatches?.position2TeamAlternates?.alternatePlayers?.length;\r\n const showPosition1Alternates = !!playerMatches?.position1TeamAlternates?.alternatePlayers?.length;\r\n const tabs = [LINES, AWAY_TEAM, HOME_TEAM, LOCATION];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {userAvailabilityData && (\r\n \r\n \r\n \r\n )}\r\n {data && (\r\n \r\n \r\n {tabs.map((tab) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {isLoadingPlayerMatches || isClearingTeamMatch ? (\r\n \r\n ) : (\r\n \r\n {playerMatches && data && (\r\n \r\n \r\n {(canUserViewLineups || hasMatchDatePassed) && (\r\n <>\r\n {!!singleMatchesToDisplay.length &&\r\n singleMatchesToDisplay.map((match) => (\r\n \r\n \r\n \r\n ))}\r\n {!!doubleMatchesToDisplay.length &&\r\n doubleMatchesToDisplay.map((match) => (\r\n \r\n \r\n \r\n ))}\r\n {showPosition2Alternates && (\r\n \r\n \r\n \r\n )}\r\n {showPosition1Alternates && (\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 handleOnReminderChange({ teamMemberIds, teamId: position2Team?.teamId })}\r\n displaySuccessSnackbar={showAvailabilityReminderSnackbar}\r\n onCloseSuccessSnackbar={handleOnCloseSuccessSnackbar}\r\n isUserCaptain={position2Team?.requestingMember?.isCaptain}\r\n isUserTeamMember={!!position2Team?.requestingMember?.teamMemberId}\r\n />\r\n \r\n \r\n handleOnReminderChange({ teamMemberIds, teamId: position1Team?.teamId })}\r\n displaySuccessSnackbar={showAvailabilityReminderSnackbar}\r\n onCloseSuccessSnackbar={handleOnCloseSuccessSnackbar}\r\n isUserCaptain={position1Team?.requestingMember?.isCaptain}\r\n isUserTeamMember={!!position1Team?.requestingMember?.teamMemberId}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {sportTypeId === SportTypeIds.TENNIS ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {showLineupModal && (\r\n \r\n )}\r\n \r\n handleOnLineupModalAction(true)}\r\n actionLabel=\"Yes\"\r\n buttonLabel=\"No\"\r\n open={showLineupNotificationModal}\r\n onClose={() => handleOnLineupModalAction(false)}\r\n title=\"Notify players?\"\r\n message=\"Would you like to notify players that the lines have been locked?\"\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamMatchPage;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { useGetTeamMatchRostersQuery } from '../api/leaguesApi';\r\n\r\nexport const useGetTeamMatchRosters = (teamMatchId) => {\r\n const dispatch = useDispatch();\r\n const [position1Team, setPosition1Team] = useState([]);\r\n const [position2Team, setPosition2Team] = useState([]);\r\n const [userAvailabilityData, setUserAvailabilityData] = useState();\r\n const [isUserOnBothTeams, setIsUserOnBothTeams] = useState(false);\r\n const [userTeamMemberIds, setUserTeamMemberIds] = useState(false);\r\n\r\n const { data: rosters, error, isLoading: isLoadingRosters } = useGetTeamMatchRostersQuery(teamMatchId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n useEffect(() => {\r\n if (rosters) {\r\n const { position1Team: position1, position2Team: position2 } = rosters;\r\n\r\n if (position1?.requestingMember?.teamMemberId && position2?.requestingMember?.teamMemberId === null) {\r\n setUserAvailabilityData(position1?.requestingMember);\r\n } else if (position2?.requestingMember?.teamMemberId && position1?.requestingMember?.teamMemberId === null) {\r\n setUserAvailabilityData(position2?.requestingMember);\r\n } else if (position1?.requestingMember?.teamMemberId && position2?.requestingMember?.teamMemberId) {\r\n setUserAvailabilityData(position1?.requestingMember);\r\n setIsUserOnBothTeams(true);\r\n setUserTeamMemberIds([position1?.requestingMember?.teamMemberId, position2?.requestingMember?.teamMemberId]);\r\n }\r\n\r\n setPosition1Team(position1);\r\n setPosition2Team(position2);\r\n }\r\n }, [rosters]);\r\n\r\n return { position1Team, position2Team, userAvailabilityData, userTeamMemberIds, isLoadingRosters, isUserOnBothTeams };\r\n};\r\n","import * as React from 'react';\r\nimport MuiAlert from '@mui/material/Alert';\r\n\r\nconst Alert = React.forwardRef(function Alert(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default Alert;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport FullPageModal from './FullPageModal';\r\nimport Input from '../Form/Input';\r\nimport Location from '../Form/Location';\r\nimport PasswordInput from '../Form/PasswordInput';\r\nimport Select from '../Form/Select';\r\nimport TimePicker from '../Form/TimePicker';\r\n\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { getAdjustedTimeOfDay } from '../../utils/display';\r\nimport { getLocationData } from '../../utils/location';\r\nimport { openClosedStatusTypes, weekdays, LeagueSessionTypes } from '../../utils/types';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useUpdateTeamMutation } from '../../api/leaguesApi';\r\n\r\nconst EditTeamDetailsModal = ({ teamDetails, title, isOpen, onClose, onSaveClick }) => {\r\n const dispatch = useDispatch();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { TOURNAMENT, MULTI_ROUND } = LeagueSessionTypes;\r\n const [sessionTypeId, setSessionTypeId] = useState();\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalFormData, setOriginalFormData] = useState();\r\n\r\n const [updateTeam] = useUpdateTeamMutation();\r\n\r\n const defaultValues = {\r\n name: '',\r\n registrationPin: '',\r\n teamRegistrationAvailabilityStatusTypeId: 1,\r\n dayOfWeek: '',\r\n location: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (teamDetails) {\r\n const {\r\n name,\r\n timeOfDay,\r\n homeCourtLocation,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n registrationPin,\r\n sessionTypeId: teamSessionTypeId,\r\n dayOfWeek,\r\n } = teamDetails;\r\n\r\n let time = null;\r\n if (timeOfDay) {\r\n const adjustedTime = getAdjustedTimeOfDay({ timeOfDay });\r\n time = moment(adjustedTime, 'hh:mm:ss');\r\n }\r\n\r\n let timeSlotDay = '';\r\n if (dayOfWeek) {\r\n timeSlotDay = weekdays.find((weekday) => weekday.description === dayOfWeek);\r\n }\r\n\r\n const teamLocation = homeCourtLocation?.placeName || homeCourtLocation?.formattedAddress || '';\r\n const formData = {\r\n name,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n location: teamLocation,\r\n matchStartTimeUtc: time,\r\n dayOfWeek: timeSlotDay.id,\r\n registrationPin: registrationPin || '',\r\n };\r\n\r\n setSessionTypeId(teamSessionTypeId);\r\n setOriginalLocation(homeCourtLocation);\r\n setOriginalFormData(formData);\r\n reset(formData);\r\n }\r\n }, []);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const team = { ...formValues };\r\n const { matchStartTimeUtc, location: teamLocation, teamRegistrationAvailabilityStatusTypeId } = formValues;\r\n\r\n if (sessionTypeId === MULTI_ROUND) {\r\n const matchTime = matchStartTimeUtc.clone();\r\n const utcOffset = matchTime.utcOffset();\r\n const adjustedTime = matchTime.subtract(utcOffset, 'minutes');\r\n const hours = adjustedTime.get('hour');\r\n const minutes = adjustedTime.get('minutes');\r\n\r\n team.timeOfDay = `${hours}:${minutes}`;\r\n }\r\n\r\n team.teamRegistrationAvailabilityStatusTypeId = parseInt(teamRegistrationAvailabilityStatusTypeId);\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(teamLocation);\r\n team.homeCourtLocation = formattedLocation;\r\n } else {\r\n team.homeCourtLocation = originalLocation;\r\n }\r\n\r\n if (sessionTypeId === TOURNAMENT) {\r\n delete team.dayOfWeek;\r\n delete team.timeOfDay;\r\n }\r\n\r\n delete team.location;\r\n delete team.matchStartTimeUtc;\r\n delete team.sessionId;\r\n\r\n try {\r\n await updateTeam({ teamId: teamDetails?.id, team, sessionId: teamDetails?.sessionId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n reset(originalFormData);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n General\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionTypeId === MULTI_ROUND && (\r\n <>\r\n League Play Time Slot\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n Team Registration\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\nexport default EditTeamDetailsModal;\r\n","import React, { useState } from 'react';\r\nimport { Typography, EditIcon, VisibilityIcon, VisibilityOffIcon } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport EditTeamDetailsModal from '../../../components/Modals/EditTeamDetailsModal';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getAdjustedTimeOfDay } from '../../../utils/display';\r\nimport { weekdays, openClosedStatusTypes, getTypeForId } from '../../../utils/types';\r\n\r\nconst DetailsTab = ({ teamDetails }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const { timeOfDay, dayOfWeek, registrationPin, homeCourtLocation, name, teamRegistrationAvailabilityStatusTypeId } = teamDetails || {};\r\n const teamLocation = homeCourtLocation?.placeName || homeCourtLocation?.formattedAddress || '';\r\n const registrationStatus = getTypeForId(teamRegistrationAvailabilityStatusTypeId, openClosedStatusTypes);\r\n\r\n let time = null;\r\n if (teamDetails?.timeOfDay) {\r\n time = getAdjustedTimeOfDay({ timeOfDay, format: 'LT' });\r\n }\r\n\r\n let timeSlotDay = '';\r\n if (teamDetails?.dayOfWeek) {\r\n timeSlotDay = weekdays.find((weekday) => weekday.description === dayOfWeek);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n setShowEditModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditModal(false);\r\n };\r\n\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n return (\r\n \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n General\r\n \r\n \r\n Team name\r\n {name}\r\n \r\n \r\n Home court\r\n {teamLocation}\r\n \r\n \r\n \r\n \r\n \r\n League Play Time Slot\r\n \r\n \r\n Day\r\n {timeSlotDay?.description}\r\n \r\n \r\n Match start time\r\n {time}\r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n Team player registrations\r\n {registrationStatus?.description}\r\n \r\n \r\n \r\n Password\r\n \r\n {showPassword ? : }\r\n \r\n \r\n {registrationPin ? (\r\n {showPassword ? registrationPin : '********'}\r\n ) : (\r\n None\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DetailsTab;\r\n","import React, { useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport FullPageModal from './FullPageModal';\r\nimport Input from '../Form/Input';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst MessagePlayersModal = ({ isOpen, onMessageSubmitted, onRequestClose }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK } = TypographySizes;\r\n const [shouldIncludeCaptains, setShouldIncludeCaptains] = useState(false);\r\n const defaultValues = { message: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const clearForm = () => {\r\n reset({ message: '' });\r\n setShouldIncludeCaptains(false);\r\n };\r\n\r\n const handleOnSubmit = (formValues) => {\r\n onMessageSubmitted(formValues.message, shouldIncludeCaptains);\r\n clearForm();\r\n };\r\n\r\n const handleOnRequestClose = () => {\r\n onRequestClose();\r\n clearForm();\r\n };\r\n\r\n const handleOnCheckboxChange = (event) => {\r\n setShouldIncludeCaptains(event.target.checked);\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n handleSubmit(handleOnSubmit)();\r\n };\r\n\r\n return (\r\n \r\n \r\n Send an email to all players on the team\r\n \r\n }\r\n label={Include captains}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MessagePlayersModal;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport { useTheme } from '@mui/material';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport { getAgeKeys, ageDisplay, getFormattedConferenceRange } from '../../../utils/display';\r\nimport { getTypeForId, genderTypes, SportTypeIds } from '../../../utils/types';\r\nimport { teamProfileInfoPropTypes } from '../../../utils/proptypes';\r\n\r\nconst TeamProfileInfoCard = ({ teamData, registrationFees, onJoinClick, onShareClick, isRegistrationAvailable }) => {\r\n const theme = useTheme();\r\n const { conference, homeCourtLocation, sessionSummary } = teamData;\r\n const { minAge, maxAge, genderTypeId, conferenceRatings, sportTypeId } = conference || {};\r\n const { sessionEntryFee, total } = registrationFees;\r\n const { TENNIS } = SportTypeIds;\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const ageRange = ageDisplay(ageKeys);\r\n const ages = ageRange?.toLowerCase() === 'all' ? 'All ages' : ageRange;\r\n const isTennis = sportTypeId === TENNIS;\r\n const rangeTitle = isTennis ? 'UTR Range' : 'UTR-P Range';\r\n const range = getFormattedConferenceRange({ conferenceRatings, sportTypeId, showRatingPrefix: false });\r\n const gender = getTypeForId(genderTypeId, genderTypes);\r\n const location = homeCourtLocation?.formattedAddress ? `${homeCourtLocation?.formattedAddress}` : '';\r\n const cost = sessionEntryFee === total ? `$${total}` : `$${sessionEntryFee}-$${total}`;\r\n const today = moment.utc();\r\n const isTodayAfterSessionEndDate = today.isAfter(sessionSummary?.endDateUtc, 'day');\r\n const isRegistrationDisabled = !isRegistrationAvailable || isTodayAfterSessionEndDate;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cost\r\n \r\n \r\n {cost}\r\n \r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {gender?.description}\r\n \r\n \r\n \r\n \r\n Age Range\r\n \r\n \r\n {ages}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rangeTitle}\r\n \r\n \r\n {range}\r\n \r\n \r\n {location && (\r\n \r\n \r\n Location\r\n \r\n \r\n {location}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n }\r\n sx={{ mb: 2 }}\r\n >\r\n Join This Team\r\n \r\n \r\n Contact a captain to know more\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTeamProfileInfoCard.propTypes = {\r\n ...teamProfileInfoPropTypes,\r\n};\r\n\r\nexport default TeamProfileInfoCard;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography, Button, AddIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport ManagerCard from '../../../components/Cards/ManagerCard';\r\nimport FullPageModal from '../../../components/Modals/FullPageModal';\r\nimport PlayerSearch from '../../../components/Form/PlayerSearch';\r\nimport Popup from '../../../components/Popups/Popup';\r\nimport TeamProfileInfoCard from '../../../components/Cards/TeamProfileInfoCard';\r\n\r\nimport { mapMembersForPlayerSearch } from '../../../utils/helpers';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { showPopup } from '../../../redux/genericPopupSlice';\r\nimport { useAddCaptainMutation, useRemoveCaptainMutation } from '../../../api/leaguesApi';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport useIsMobile from '../../../hooks/useIsMobile';\r\nimport { teamPageOverviewTabPropTypes, defaultTeamPageOverviewTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst OverviewTab = ({\r\n teamSummary,\r\n isCaptainView,\r\n isRegistrationAvailable,\r\n isLoadingRegistration,\r\n onRegisterClick,\r\n onShareClick,\r\n fees,\r\n captains,\r\n isUserLoggedIn,\r\n}) => {\r\n const theme = useTheme();\r\n const isMobile = useIsMobile();\r\n const { teamId } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n const [showAddCaptainModal, setShowAddCaptainModal] = useState(false);\r\n const [originalCaptains, setOriginalCaptains] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [captainToBeUpdated, setCaptainToBeUpdated] = useState();\r\n\r\n const [addCaptain, { isLoading: isAddingCaptain }] = useAddCaptainMutation();\r\n const [removeCaptain, { isLoading: isRemovingCaptain }] = useRemoveCaptainMutation();\r\n const isUpdatingCaptains = isAddingCaptain || isRemovingCaptain;\r\n const popupMessage = `Are you sure you want to remove ${captainToBeUpdated?.displayName} as a Captain?`;\r\n const minimumAmountOfMembersNeeded = 1;\r\n const maximumAmountOfCaptains = 3;\r\n const desktopPadding = '40px';\r\n const mobilePadding = '24px';\r\n\r\n useEffect(() => {\r\n if (captains?.length) {\r\n const mappedCaptains = mapMembersForPlayerSearch(captains);\r\n setOriginalCaptains(mappedCaptains);\r\n }\r\n }, [captains]);\r\n\r\n const isPermittedToRemoveMember = () => {\r\n if (captains?.length === minimumAmountOfMembersNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Sorry',\r\n message: `There must always be at least one Captain`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isPermittedToAddMember = () => {\r\n if (captains?.length === maximumAmountOfCaptains) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Sorry',\r\n message: `Only 3 Captains are permitted per team.`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnConfirmRemoval = async () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveMember = isPermittedToRemoveMember();\r\n if (isAbleToRemoveMember) {\r\n try {\r\n await removeCaptain({ teamId, captainId: captainToBeUpdated.captainId }).unwrap();\r\n setCaptainToBeUpdated(null);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = async () => {\r\n setShowAddCaptainModal(false);\r\n\r\n const isAbleToAddMember = isPermittedToAddMember();\r\n if (isAbleToAddMember) {\r\n try {\r\n await addCaptain({ teamId, captain: { memberId: captainToBeUpdated.memberId } }).unwrap();\r\n setCaptainToBeUpdated(null);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const handleOnAddCaptainClick = () => {\r\n setShowAddCaptainModal(true);\r\n };\r\n\r\n const handleOnPlayerSelected = (player) => {\r\n setCaptainToBeUpdated(player);\r\n };\r\n\r\n const handleOnCloseAddCaptainModal = async () => {\r\n setShowAddCaptainModal(false);\r\n };\r\n\r\n const handleOnRemoveClick = (captainToBeRemoved) => {\r\n setCaptainToBeUpdated(captainToBeRemoved);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Registration Information\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Captains\r\n \r\n \r\n {isUpdatingCaptains ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {isCaptainView && (\r\n }\r\n >\r\n \r\n Add a team captain\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\nOverviewTab.propTypes = {\r\n ...teamPageOverviewTabPropTypes,\r\n};\r\nOverviewTab.defaultProps = {\r\n ...defaultTeamPageOverviewTabPropTypes\r\n};\r\n\r\nexport default OverviewTab;\r\n","import React from 'react';\r\n\r\nimport ToggleButton from '@mui/material/ToggleButton';\r\nimport ToggleButtonGroup from '@mui/material/ToggleButtonGroup';\r\n\r\nimport { multiRoundScheduleTypes } from '../../../utils/types';\r\n\r\nconst MultiRoundScheduleToggle = (props) => {\r\n const { scheduleType, disabled, onChange } = props;\r\n\r\n return (\r\n \r\n {multiRoundScheduleTypes.map((option) => (\r\n {option.description}\r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default MultiRoundScheduleToggle;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport MultiRoundScheduleToggle from '../../../components/Form/MultiRoundScheduleToggle';\r\nimport Schedule from '../../../components/Schedule';\r\nimport { ResponseStatuses } from '../../../utils/constants';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { ScheduleStatuses, MultiRoundScheduleTypes } from '../../../utils/types';\r\nimport { useGetTeamScheduleQuery, useLazyGetTeamScheduleByDateQuery } from '../../../api/leaguesApi';\r\n\r\nimport { teamPageScheduleTabPropTypes } from '../../../utils/proptypes';\r\n\r\nimport useSessionSchedule from '../../../hooks/useSessionSchedule';\r\n\r\nconst ScheduleTab = ({ teamId, isTournament, session }) => {\r\n const dispatch = useDispatch();\r\n const { NOT_FOUND } = ResponseStatuses;\r\n const [rounds, setRounds] = useState([]);\r\n const [multiRoundScheduleType, setMultiRoundScheduleType] = useState(0);\r\n\r\n const [getTeamScheduleByDate, { data: teamScheduleByDate, isFetching: isLoadingTeamScheduleByDate, error: teamScheduleByDateError }] =\r\n useLazyGetTeamScheduleByDateQuery();\r\n const { data: teamSchedule, isLoading, error } = useGetTeamScheduleQuery(teamId, { skip: isTournament });\r\n const { drawSchedule, isLoadingSchedule } = useSessionSchedule({\r\n sessionId: session?.id,\r\n showDraftSchedule: false,\r\n isMultiRoundSession: !isTournament,\r\n skipFetch: !isTournament,\r\n });\r\n\r\n if (teamScheduleByDateError) {\r\n const hasError = teamScheduleByDateError?.status !== NOT_FOUND;\r\n if (hasError) {\r\n dispatch(showErrorPopup(teamScheduleByDateError));\r\n }\r\n }\r\n\r\n if (error) {\r\n const hasError = error?.status !== NOT_FOUND;\r\n if (hasError) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n }\r\n\r\n const handleOnScheduleChange = async (event) => {\r\n const scheduleType = parseInt(event?.target?.value);\r\n if (!teamScheduleByDate && scheduleType === MultiRoundScheduleTypes.BY_DATE) {\r\n await getTeamScheduleByDate(teamId);\r\n }\r\n\r\n setMultiRoundScheduleType(scheduleType);\r\n };\r\n\r\n useEffect(() => {\r\n if (teamSchedule) {\r\n const mappedRoundMatches = teamSchedule.rounds.map((round) => {\r\n const filteredTeamMatches = teamSchedule.teamMatches.filter((match) => match.roundId === round.roundId);\r\n return {\r\n ...round,\r\n matches: filteredTeamMatches,\r\n };\r\n });\r\n setRounds(mappedRoundMatches);\r\n }\r\n }, [teamSchedule]);\r\n\r\n const isSchedulePublished =\r\n drawSchedule?.statusId === ScheduleStatuses.PUBLISHED || teamSchedule?.statusId === ScheduleStatuses.PUBLISHED;\r\n\r\n return (\r\n \r\n {isLoading || isLoadingSchedule || isLoadingTeamScheduleByDate ? (\r\n \r\n ) : (\r\n <>\r\n {teamSchedule && isSchedulePublished && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nScheduleTab.propTypes = {\r\n ...teamPageScheduleTabPropTypes,\r\n};\r\n\r\nexport default ScheduleTab;\r\n","import React from 'react';\r\n\r\nimport { useTheme, Container } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport Tab from '@mui/material/Tab';\r\nimport Tabs from '@mui/material/Tabs';\r\n\r\nimport { SharedUICategories, TypographySizes, LeagueTabs } from '../../../utils/constants';\r\nimport { getPowerIndex } from '../../../utils/helpers';\r\nimport useIsMobile from '../../../hooks/useIsMobile';\r\nimport { teamPageHeaderPropTypes } from '../../../utils/proptypes';\r\n\r\nconst TeamPageHeader = ({\r\n tab,\r\n teamName,\r\n wins,\r\n losses,\r\n sessionId,\r\n sessionName,\r\n isCaptainView,\r\n onTabChange,\r\n isTournament,\r\n teamPowerIndex,\r\n}) => {\r\n const theme = useTheme();\r\n const isMobile = useIsMobile();\r\n const { DISPLAY, SECONDARY } = SharedUICategories;\r\n const { LARGE_LIGHT, X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { OVERVIEW, PLAYERS, DETAILS, SCHEDULE, DRAW } = LeagueTabs;\r\n const mobileAndDesktopCategory = isMobile ? SECONDARY : DISPLAY;\r\n const mobileAndDesktopSize = isMobile ? X_SMALL_MEDIUM_CAP : LARGE_LIGHT;\r\n const mobileDisplay = isMobile && 'flex';\r\n const mobileSpacing = isMobile && 0.5;\r\n const mobileColon = isMobile && ':';\r\n const record = `${wins || 0} - ${losses || 0}`;\r\n const MATCH_TAB = isTournament ? DRAW : SCHEDULE;\r\n const sessionLink = `/leagues/session/${sessionId}`;\r\n const singlesPowerRating = getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated);\r\n const doublesPowerRating = getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n {teamName}\r\n \r\n \r\n \r\n \r\n \r\n TPI S{mobileColon}\r\n \r\n \r\n {singlesPowerRating}\r\n \r\n \r\n \r\n \r\n TPI D{mobileColon}\r\n \r\n \r\n {doublesPowerRating}\r\n \r\n \r\n \r\n \r\n Record{mobileColon}\r\n \r\n \r\n {record}\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 {isCaptainView && }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTeamPageHeader.propTypes = {\r\n ...teamPageHeaderPropTypes,\r\n};\r\n\r\nexport default TeamPageHeader;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Snackbar from '@mui/material/Snackbar';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\nimport TabContext from '@mui/lab/TabContext';\r\n\r\nimport Alert from '../../components/Alert';\r\nimport DetailsTab from './DetailsTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport MessagePlayersModal from '../../components/Modals/MessagePlayersModal';\r\nimport OverviewTab from './OverviewTab';\r\nimport PlayersTab from '../../components/PlayerTab/PlayersTab';\r\nimport Popup from '../../components/Popups/Popup';\r\nimport RegistrationDrawer from '../../components/RegistrationDrawer';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport ShareTeamModal from '../../components/Modals/ShareTeamModal';\r\nimport TeamPageHeader from './TeamPageHeader';\r\n\r\nimport { LeagueTabs } from '../../utils/constants';\r\nimport { LeagueSessionTypes, SportTypeIds, LeagueSanctionTypes } from '../../utils/types';\r\nimport { gtag } from '../../utils/analytics';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport {\r\n useGetTeamQuery,\r\n useGetTeamSummaryQuery,\r\n useGetRegistrationFeesQuery,\r\n useMessageTeamPlayersMutation,\r\n} from '../../api/leaguesApi';\r\n\r\nconst TeamPage = () => {\r\n const { user } = useSelector((state) => state.auth);\r\n const { teamId } = useParams();\r\n const parsedTeamId = parseInt(teamId);\r\n const { OVERVIEW, PLAYERS, SCHEDULE, DRAW, DETAILS } = LeagueTabs;\r\n const dispatch = useDispatch();\r\n const isUserLoggedIn = !!user;\r\n\r\n const [isCaptainView, setIsCaptainView] = useState(false);\r\n const [tab, setTab] = useState(OVERVIEW);\r\n const [showRegistrationDrawer, setShowRegistrationDrawer] = useState(false);\r\n const [showShareModal, setShowShareModal] = useState(false);\r\n const [showRegistrationSuccessPopup, setShowRegistrationSuccessPopup] = useState(false);\r\n const [showMessagePlayersPopup, setShowMessagePlayersPopup] = useState(false);\r\n const [isSuccessAlertOpen, setIsSuccessAlertOpen] = useState(false);\r\n const noSidePadding = { pl: 0, pr: 0 };\r\n\r\n const { data: teamData, isFetching: isLoadingTeam, error: teamDataError, refetch: refetchTeam } = useGetTeamSummaryQuery(parsedTeamId);\r\n const {\r\n data: teamDetails,\r\n isLoading: isLoadingTeamDetails,\r\n error: teamDetailsError,\r\n } = useGetTeamQuery(parsedTeamId, { skip: !isCaptainView });\r\n const { data: registrationFees, error: feesError } = useGetRegistrationFeesQuery(parsedTeamId);\r\n const [messageAllPlayers, { isSuccess: hasMessagedPlayers }] = useMessageTeamPlayersMutation();\r\n\r\n if (teamDetailsError) {\r\n dispatch(showErrorPopup(teamDetailsError));\r\n }\r\n\r\n if (teamDataError) {\r\n dispatch(showErrorPopup(teamDataError));\r\n }\r\n\r\n if (feesError) {\r\n dispatch(showErrorPopup(feesError));\r\n }\r\n\r\n useEffect(() => {\r\n if (teamData && user) {\r\n const { captains, conference } = teamData;\r\n const captainIds = captains.map((captain) => captain.memberId);\r\n const isCaptain = captainIds.includes(user?.id);\r\n setIsCaptainView(isCaptain);\r\n dispatch(setSportTypeId(conference?.sportTypeId));\r\n }\r\n }, [teamData, user]);\r\n\r\n useEffect(() => {\r\n if (hasMessagedPlayers) {\r\n setIsSuccessAlertOpen(true);\r\n }\r\n }, [hasMessagedPlayers]);\r\n\r\n const handleOnTabChange = (_, newValue) => {\r\n setTab(newValue);\r\n };\r\n\r\n const handleOnRegisterClick = async () => {\r\n gtag('event', {\r\n category: 'Checkout Started',\r\n context: `Leagues Team Page - teamId: ${teamId}`,\r\n });\r\n\r\n setShowRegistrationDrawer(true);\r\n };\r\n\r\n const handleOnCloseDrawerRequest = () => {\r\n setShowRegistrationDrawer(false);\r\n };\r\n\r\n const handleOnRegistrationSuccess = () => {\r\n const { sessionEntryFee, leagueFee } = registrationFees || '';\r\n const totalFee = sessionEntryFee + leagueFee;\r\n const isTennis = teamData?.conference?.sportTypeId === SportTypeIds.TENNIS;\r\n gtag('purchase', {\r\n category: 'Event Registration',\r\n context: `Team ${isTennis ? 'Tennis' : 'Pickleball'}`,\r\n value: totalFee,\r\n });\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const handleOnCloseRegistrationSuccessPopup = () => {\r\n refetchTeam();\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(false);\r\n };\r\n\r\n const handleOnShareClick = () => {\r\n setShowShareModal(true);\r\n };\r\n\r\n const handleOnShareCopyClick = () => {\r\n navigator.clipboard.writeText(window.location.href);\r\n setShowShareModal(false);\r\n };\r\n\r\n const handleOnCloseShareModal = () => {\r\n setShowShareModal(false);\r\n };\r\n\r\n const handleOnMessagePlayersClick = () => {\r\n setShowMessagePlayersPopup(true);\r\n };\r\n\r\n const handleOnMessagePlayers = async (message, includeCaptains) => {\r\n setShowMessagePlayersPopup(false);\r\n\r\n try {\r\n await messageAllPlayers({ teamId, message, includeCaptains }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnCloseMessagePlayerModal = () => {\r\n setShowMessagePlayersPopup(false);\r\n };\r\n\r\n const handleOnCloseSuccessAlert = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n setIsSuccessAlertOpen(false);\r\n };\r\n\r\n const handleOnFreeSessionRegistration = () => {\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const renderTeamContent = (teamSummary, fees) => {\r\n const { isRegistrationAvailable, sessionSummary } = teamSummary;\r\n const isTournament = sessionSummary?.typeId === LeagueSessionTypes.TOURNAMENT;\r\n const MATCH_TAB = isTournament ? DRAW : SCHEDULE;\r\n\r\n return (\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 {isCaptainView && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n const isUsapSanctionedSession = teamData?.sessionSummary?.sanctionTypeId === LeagueSanctionTypes?.USAP;\r\n\r\n return (\r\n \r\n {isLoadingTeam && }\r\n {teamData && registrationFees && (\r\n <>\r\n \r\n \r\n {renderTeamContent(teamData, registrationFees)}\r\n {showRegistrationDrawer && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Message sent!\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TeamPage;\r\n","import React from 'react';\r\nimport { Route, Routes } from 'react-router-dom';\r\n\r\nimport CreateConferencePage from './pages/CreateConferencePage';\r\nimport CreateSessionPage from './pages/CreateSessionPage';\r\nimport LeagueDeskWrapper from './pages/LeagueDesk/LeagueDeskWrapper';\r\nimport ManageConferencePage from './pages/ManageConferencePage';\r\nimport ManageSessionPage from './pages/ManageSessionPage';\r\nimport MemberTeamsPage from './pages/MemberTeamsPage';\r\nimport SearchWrapper from './pages/SearchPage/SearchWrapper';\r\nimport SessionPage from './pages/SessionPage';\r\nimport TeamMatchPage from './pages/TeamMatchPage';\r\nimport TeamPage from './pages/TeamPage';\r\n\r\nconst AppRoutes = () => (\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\nexport default AppRoutes;\r\n","export const ClubTierTypes = {\r\n HIGH_SCHOOL: 5,\r\n PERFORMANCE_HIGH_SCHOOL: 17,\r\n PAID_HIT: 16,\r\n CREATE_PLAY: 11,\r\n};\r\n\r\nexport const ClubRoles = {\r\n ADMIN: 'Admin',\r\n OWNER: 'Owner',\r\n MEMBER: 'Member',\r\n};\r\n\r\nexport const clubTiers = ['Pro', 'Special', 'Free College', 'High School', 'Pro College'];\r\n\r\nexport const getClubTypeString = (tierTypeId) => {\r\n switch (tierTypeId) {\r\n case 1:\r\n return 'groups';\r\n case 4:\r\n case 6:\r\n return 'colleges';\r\n case 5:\r\n return 'schools';\r\n default:\r\n return 'clubs';\r\n }\r\n};\r\n\r\nexport const getClubsVisibleToUser = (clubs) => {\r\n const { CREATE_PLAY } = ClubTierTypes;\r\n const hiddenClubTypes = [CREATE_PLAY];\r\n return clubs.filter((club) => !hiddenClubTypes.includes(club.tierTypeId));\r\n};\r\n\r\nexport const sortClubMembershipsByPaidHit = (clubs = []) => {\r\n const { PAID_HIT } = ClubTierTypes;\r\n const paidHitClub = clubs?.find((club) => club.tierTypeId === PAID_HIT);\r\n const filteredClubs = clubs?.filter((club) => club.tierTypeId !== PAID_HIT);\r\n\r\n if (paidHitClub) {\r\n return [paidHitClub, ...filteredClubs];\r\n }\r\n return clubs;\r\n};\r\n","import React from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { getClickAttrs } from '../../utils/analytics';\r\n\r\nimport styles from './menu.module.scss';\r\n\r\nconst MenuLink = (props) => {\r\n const location = useLocation();\r\n const { path, text, trackedContent } = props || {};\r\n const { pathname } = location || {};\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default MenuLink;\r\n","/* global analytics */\r\n/* eslint-disable */\r\nimport React, { useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Cookies from 'cookies-js';\r\nimport Box from '@mui/material/Box';\r\nimport SwipeableDrawer from '@mui/material/SwipeableDrawer';\r\n\r\nimport withFeatureFlags from '../hocs/withFeatureFlags';\r\nimport { getClubTypeString, getClubsVisibleToUser, sortClubMembershipsByPaidHit, ClubRoles, clubTiers } from '../../utils/clubs';\r\nimport { getApiAxiosInstance } from '../../utils/network';\r\nimport config from '../../config';\r\nimport MenuLink from './MenuLink';\r\nimport useIsMobile from '../../hooks/useIsMobile';\r\nimport { setSideMenu } from '../../redux/uiSlice';\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\n\r\nimport styles from './menu.module.scss';\r\n\r\nconst { marketingAppHost, links, appHost } = config;\r\nconst { TENNIS, PICKLEBALL } = SportTypeIds\r\n\r\n\r\nconst SlideMenu = ({ featureFlags }) => {\r\n const location = useLocation()\r\n const dispatch = useDispatch();\r\n const { user } = useSelector((state) => state.auth);\r\n const { sideMenuOpen } = useSelector((state) => state.ui);\r\n const { memberTeams, isLoadingMemberTeams } = useSelector((state) => state.user);\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [toggleMyProfile, setToggleMyProfile] = useState(false);\r\n const [toggleMyAccount, setToggleMyAccount] = useState(false);\r\n\r\n const { createPlayerGroupMainMenu, personalClub, ratingsListFlag } = featureFlags;\r\n const { pathname } = location;\r\n const MAX_TEAM_TENNIS_TEAMS_TO_DISPLAY = 3;\r\n const MAX_CLUBS_TO_DISPLAY = 2;\r\n const isMobile = useIsMobile();\r\n\r\n const handleLogOut = async (ev) => {\r\n if (ev) {\r\n ev.preventDefault();\r\n }\r\n\r\n const axiosInstance = getApiAxiosInstance();\r\n const res = await axiosInstance.get('/v1/auth/logout');\r\n\r\n if (res.status === 200) {\r\n if (window && window.analytics) {\r\n analytics.reset();\r\n }\r\n Cookies.expire('jwt');\r\n window.location.href = `${appHost}/`;\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n dispatch(setSideMenu(false));\r\n };\r\n\r\n const handleCollapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n const handleToggleMyProfile = () => {\r\n setToggleMyProfile(!toggleMyProfile);\r\n };\r\n\r\n const handleToggleMyAccount = () => {\r\n setToggleMyAccount(!toggleMyAccount);\r\n };\r\n\r\n const { ADMIN, OWNER, MEMBER } = ClubRoles;\r\n const visibleClubs = user?.clubMemberships ? getClubsVisibleToUser(user?.clubMemberships) : [];\r\n const clubsWhereUserIsAdminOrOwner = user ? visibleClubs.filter((club) => club.roleValue === ADMIN || club.roleValue === OWNER) : [];\r\n const isPremiumClubsOrganizer = clubsWhereUserIsAdminOrOwner.findIndex((club) => clubTiers.includes(club.tierTypeName)) !== -1;\r\n const clubsWhereUserIsMember = user ? visibleClubs.filter((club) => club.roleValue === MEMBER) : [];\r\n const clubsOrderedByAdminOwner = [...clubsWhereUserIsAdminOrOwner, ...clubsWhereUserIsMember];\r\n const sortedClubMemberships = sortClubMembershipsByPaidHit(clubsOrderedByAdminOwner);\r\n\r\n let clubMembershipsToDisplay =\r\n sortedClubMemberships?.length > MAX_CLUBS_TO_DISPLAY\r\n ? [...sortedClubMemberships].splice(0, MAX_CLUBS_TO_DISPLAY)\r\n : sortedClubMemberships;\r\n\r\n return (\r\n dispatch(setSideMenu(false))}\r\n onOpen={() => dispatch(setSideMenu(true))}\r\n >\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {!!user?.firstName ? (\r\n
    \r\n {user?.firstName} {user?.lastName}\r\n
    \r\n ) : (\r\n
    Welcome to UTR Sports!
    \r\n )}\r\n {!user?.onboardingCompleted && user?.onboardingRequired && pathname === `/` && (\r\n
    \r\n {\r\n ev.preventDefault();\r\n }}\r\n href={`${appHost}/home`}\r\n {...getClickAttrs({\r\n category: 'Menu',\r\n context: 'Menu Item - Home',\r\n location: 'Menu',\r\n })}\r\n >\r\n Home\r\n \r\n
    \r\n )}\r\n
    \r\n {(user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n
    \r\n
    \r\n {user?.claimedPlayer && }\r\n \r\n {(user?.isPowered || user?.isProClubHeadOrganizer) && (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n {(user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n <>\r\n
    \r\n
    handleToggleMyProfile()} className={styles.menuTitle}>\r\n My Profile {toggleMyProfile ? '-' : '+'}\r\n
    \r\n {toggleMyProfile && (\r\n
    \r\n {user?.claimedPlayer && (\r\n \r\n )}\r\n \r\n \r\n {user?.isPowered && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n\r\n {user ? (\r\n
    \r\n
    \r\n
    \r\n {(user?.isPowered || user?.enableBetaFeatures) &&\r\n (user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n
    \r\n
    Clubs, Teams & Groups
    \r\n {clubMembershipsToDisplay.map((clubMembership) => (\r\n \r\n ))}\r\n {(visibleClubs && visibleClubs.length) > 0 && (\r\n \r\n )}\r\n {personalClub?.isEnabled(user) &&\r\n createPlayerGroupMainMenu?.isEnabled(user) &&\r\n !user?.isPersonalClubHeadOrganizer && (\r\n \r\n + Create my Players Group\r\n \r\n )}\r\n {!user?.canCreateEvent && isPremiumClubsOrganizer && (\r\n \r\n Create an Event\r\n \r\n )}\r\n
    \r\n )}\r\n {user && !isLoadingMemberTeams && !!memberTeams?.tennis?.length && (\r\n
    \r\n
    Team Tennis
    \r\n {memberTeams.tennis.slice(0, MAX_TEAM_TENNIS_TEAMS_TO_DISPLAY).map((team) => (\r\n \r\n ))}\r\n \r\n
    \r\n )}\r\n {user && !isLoadingMemberTeams && !!memberTeams?.pickleball?.length && (\r\n
    \r\n
    Team Pickleball
    \r\n {memberTeams.pickleball.slice(0, MAX_TEAM_TENNIS_TEAMS_TO_DISPLAY).map((team) => (\r\n \r\n ))}\r\n \r\n
    \r\n )}\r\n {user?.isClubOrganizer && (\r\n
    \r\n \r\n Club Resources\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n {user?.isPowered && (user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n
    \r\n
    Saved Lists
    \r\n \r\n \r\n
    \r\n )}\r\n {user?.isAdmin && (\r\n \r\n )}\r\n {ratingsListFlag?.isEnabled(user) && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n Club Resources\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n Players & Organizers {collapsed ? '-' : '+'}\r\n
    \r\n {collapsed && (\r\n
    \r\n \r\n Players\r\n \r\n \r\n Organizations\r\n \r\n \r\n College\r\n \r\n \r\n High School\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    handleToggleMyAccount()} className={styles.menuTitle}>\r\n My Account {toggleMyAccount ? '-' : '+'}\r\n
    \r\n {toggleMyAccount && (\r\n
    \r\n \r\n {(user?.isPowered || user?.isProClubHeadOrganizer) && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {(user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n \r\n UTR Sports\r\n \r\n )}\r\n \r\n Support\r\n \r\n \r\n Sign Out\r\n \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n
    Organizers / Coaches
    \r\n \r\n Organizations\r\n \r\n \r\n College\r\n \r\n \r\n High School\r\n \r\n
    \r\n
    \r\n \r\n Sign In\r\n \r\n \r\n Join\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withFeatureFlags(SlideMenu);\r\n","import React from 'react';\r\n\r\nimport styles from './loading.module.scss';\r\n\r\nconst Loading = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    LOADING

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Loading;\r\n","import React from 'react';\r\n\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Divider from '@mui/material/Divider';\r\n\r\nimport { hidePopup } from '../../redux/genericPopupSlice';\r\n\r\nconst GenericPopup = () => {\r\n const dispatch = useDispatch();\r\n const { isOpen, message, title } = useSelector((state) => state.genericPopup);\r\n\r\n const handleOnClose = () => {\r\n dispatch(hidePopup());\r\n };\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GenericPopup;\r\n","import React from 'react';\r\n\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Divider from '@mui/material/Divider';\r\nimport Link from '@mui/material/Link';\r\n\r\nimport config from '../../config';\r\nimport { hideErrorPopup } from '../../redux/errorPopupSlice';\r\n\r\nconst ErrorPopup = () => {\r\n const dispatch = useDispatch();\r\n const { isOpen, error } = useSelector((state) => state.errorPopup);\r\n\r\n const handleOnClose = () => {\r\n dispatch(hideErrorPopup());\r\n };\r\n\r\n return (\r\n \r\n \r\n Unable to complete your request\r\n \r\n \r\n \r\n \r\n {error?.message}\r\n \r\n \r\n For support, please submit a question here\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ErrorPopup;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { StatsigProvider } from 'statsig-react';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport segmentAnalytics from 'react-segment';\r\nimport { Footer } from '@universal-tennis/ui-shared';\r\nimport { StatsigContextProvider } from './hooks/StatsigContextProvider';\r\n\r\nimport { getAuthUser } from './redux/services/authServices';\r\nimport { getActiveTeams, getUserPreferences } from './redux/services/userService';\r\n\r\nimport Header from './components/Header';\r\nimport Routes from './routes';\r\nimport Menu from './components/Menu';\r\nimport Loading from './components/Loading';\r\nimport GenericPopup from './components/Popups/GenericPopup';\r\nimport ErrorPopup from './components/Popups/ErrorPopup';\r\n\r\nimport config from './config';\r\n\r\nimport { FooterExploreItems, FooterMoreItems, FooterProviderItems, FooterSupportItems, FooterSocialMedia } from './utils/constants';\r\nimport { Rox, setContextProps as RoxSetCustomProperties } from './utils/rollout';\r\nimport flagContainer from './flagContainer';\r\n\r\nconst App = () => {\r\n const { user, loading: isLoadingUser, isUserLoaded } = useSelector((state) => state.auth);\r\n const { isMemberTeamsLoaded, isLoadingMemberTeams, isLoadingPreferences, isPreferencesLoaded } = useSelector((state) => state.user);\r\n const dispatch = useDispatch();\r\n const [roxInit, setRoxInit] = useState(false);\r\n segmentAnalytics.default.load(config.segmentKey);\r\n const env = process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development';\r\n const footerPlacementMinPageHeight = '80vh';\r\n\r\n useEffect(() => {\r\n if (!user && !isLoadingUser && !isUserLoaded) {\r\n dispatch(getAuthUser());\r\n }\r\n if (!roxInit) {\r\n try {\r\n Rox.register('featureFlags', flagContainer);\r\n Rox.setup(config.roxKey, {}).then(() => {\r\n RoxSetCustomProperties();\r\n setRoxInit(true);\r\n });\r\n } catch (err) {\r\n console.log('client re-register of rox');\r\n }\r\n }\r\n\r\n if (!isMemberTeamsLoaded && !isLoadingMemberTeams) {\r\n dispatch(getActiveTeams());\r\n }\r\n\r\n if (!isPreferencesLoaded && !isLoadingPreferences) {\r\n dispatch(getUserPreferences());\r\n }\r\n }, []);\r\n\r\n const showExpandedNav = !!user;\r\n\r\n const handleOnSocialMediaClick = (id) => {\r\n const socialMediaItem = FooterSocialMedia.find((item) => item?.id === id);\r\n window.open(socialMediaItem.href, '_blank', 'noopener');\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {isLoadingUser ? (\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\nApp.propTypes = {};\r\n\r\nexport default App;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { getActiveTeams, getUserPreferences } from './services/userService';\r\n\r\nconst initialState = {\r\n memberTeams: {\r\n tennis: [],\r\n pickleball: []\r\n },\r\n isLoadingMemberTeams: false,\r\n isMemberTeamsLoaded: false,\r\n preferences: {},\r\n isLoadingPreferences: false,\r\n isPreferencesLoaded: false,\r\n};\r\n\r\nconst userSlice = createSlice({\r\n name: 'user',\r\n initialState,\r\n extraReducers: {\r\n [getActiveTeams.pending]: (state) => {\r\n state.isLoadingMemberTeams = true;\r\n state.isMemberTeamsLoaded = false;\r\n },\r\n [getActiveTeams.fulfilled]: (state, action) => {\r\n state.memberTeams = action.payload.memberTeams;\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = true;\r\n },\r\n [getActiveTeams.rejected]: (state) => {\r\n state.memberTeams = [];\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = false;\r\n },\r\n [getUserPreferences.pending]: (state) => {\r\n state.isLoadingPreferences = true;\r\n state.isPreferencesLoaded = false;\r\n },\r\n [getUserPreferences.fulfilled]: (state, action) => {\r\n state.preferences = action.payload;\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = true;\r\n },\r\n [getUserPreferences.rejected]: (state) => {\r\n state.preferences = {};\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = false;\r\n },\r\n },\r\n});\r\n\r\nexport default userSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { getAuthUser } from './services/authServices';\r\n\r\nconst initialState = {\r\n user: null,\r\n isLoadingUser: false,\r\n isUserLoaded: false,\r\n};\r\n\r\nconst authSlice = createSlice({\r\n name: 'auth',\r\n initialState,\r\n reducers: {\r\n clearUser(state) {\r\n state.user = null;\r\n },\r\n },\r\n extraReducers: {\r\n [getAuthUser.pending]: (state) => {\r\n state.isLoadingUser = true;\r\n },\r\n [getAuthUser.fulfilled]: (state, action) => {\r\n state.user = action.payload;\r\n state.isLoadingUser = false;\r\n state.isUserLoaded = true;\r\n },\r\n [getAuthUser.rejected]: (state) => {\r\n state.user = null;\r\n state.isLoadingUser = false;\r\n state.isUserLoaded = true;\r\n },\r\n },\r\n});\r\n\r\nexport const { clearUser, updateProfilePicture } = authSlice.actions;\r\nexport default authSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { getBreadcrumbData } from './services/breadcrumbService';\r\n\r\nconst initialState = {\r\n data: {},\r\n loading: false,\r\n};\r\n\r\nconst breadcrumbSlice = createSlice({\r\n name: 'breadcrumbs',\r\n initialState,\r\n extraReducers: {\r\n [getBreadcrumbData.pending]: (state) => {\r\n state.data = {};\r\n state.loading = true;\r\n },\r\n [getBreadcrumbData.fulfilled]: (state, action) => {\r\n state.data = action.payload;\r\n state.loading = false;\r\n },\r\n [getBreadcrumbData.rejected]: (state) => {\r\n state.data = {};\r\n state.loading = false;\r\n },\r\n },\r\n});\r\n\r\nexport default breadcrumbSlice.reducer;\r\n","import { combineReducers } from 'redux';\r\nimport user from './userSlice';\r\nimport auth from './authSlice';\r\nimport breadcrumbs from './breadcrumbSlice';\r\nimport ui from './uiSlice';\r\nimport genericPopup from './genericPopupSlice';\r\nimport errorPopup from './errorPopupSlice';\r\nimport conferenceDetails from './conferenceDetailsSlice';\r\nimport { leaguesApi } from '../api/leaguesApi';\r\n\r\nexport default combineReducers({\r\n user,\r\n auth,\r\n breadcrumbs,\r\n ui,\r\n genericPopup,\r\n errorPopup,\r\n conferenceDetails,\r\n [leaguesApi.reducerPath]: leaguesApi.reducer,\r\n});\r\n","import { configureStore } from '@reduxjs/toolkit';\r\nimport { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\n\r\nimport { getLeaguesApiAxiosInstance, getApiAxiosInstance } from '../utils/network';\r\nimport { leaguesApi } from '../api/leaguesApi';\r\nimport rootReducer from './rootReducer';\r\n\r\nconst apiInstances = { main: getApiAxiosInstance(), leagues: getLeaguesApiAxiosInstance() };\r\n\r\nconst persistConfig = {\r\n key: 'root',\r\n version: 1,\r\n storage,\r\n whitelist: ['breadcrumbs', 'conferenceDetails'],\r\n blacklist: [leaguesApi.reducerPath],\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\r\n\r\nexport const store = configureStore({\r\n reducer: persistedReducer,\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n thunk: {\r\n extraArgument: apiInstances,\r\n },\r\n serializableCheck: {\r\n ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],\r\n },\r\n }).concat(leaguesApi.middleware),\r\n});\r\nexport const persistor = persistStore(store);\r\n\r\nif (process.env.NODE_ENV === 'development' && module.hot) {\r\n module.hot.accept('./rootReducer', () => {\r\n const newRootReducer = require('./rootReducer').default;\r\n store.replaceReducer(newRootReducer);\r\n });\r\n}\r\n","import { createTheme } from '@mui/material';\r\n\r\nconst appColors = {\r\n black: '#000',\r\n white: '#fff',\r\n blue: '#008ded',\r\n lightBlue: '#62E6FC',\r\n blueGrey: '#778DA9',\r\n blueGrey100: '#D6DDE5',\r\n lighterGrey: '#e8eff7',\r\n lightGrey: '#d7e0ea',\r\n grey: '#828B96',\r\n darkGrey: '#5a7290',\r\n darkestGrey: '#3b4859',\r\n gradientBlue: '#00c0f7',\r\n secondaryButtonDisabled: '#bac6d6',\r\n gradientTurquoise: '#01dfcb',\r\n main: '#008ded',\r\n darkText: '#2b3339',\r\n coolGrey: '#F0F4F9',\r\n coolGrey500: '#C1CCDA',\r\n coolGrey600: '#A7B2C1',\r\n interactionBlue: '#007BCE',\r\n red: '#E0004F',\r\n green: '#108B15',\r\n lighterGreen: '#16BA1C',\r\n orange: '#FB7800',\r\n gradient: 'linear-gradient(to right, #00c0f7, #01dfcb)',\r\n\r\n};\r\n\r\nconst secondaryFont = 'Gotham SSm A, Gotham SSm B, Helvetica, Arial, sans-serif';\r\nconst primaryFont = 'Tungsten A, Tungsten B, Helvetica, Arial, sans-serif';\r\nconst appGradient = `linear-gradient(to right, ${appColors.gradientBlue}, ${appColors.gradientTurquoise})`;\r\nconst tabButtonSidePadding = '16px';\r\n\r\nconst defaultButtonStyle = {\r\n borderRadius: 22,\r\n fontSize: 12,\r\n padding: '0 22px',\r\n height: '40px',\r\n whiteSpace: 'nowrap',\r\n lineHeight: '39px',\r\n border: '1px solid transparent',\r\n};\r\n\r\nconst darkButtonStyle = {\r\n ...defaultButtonStyle,\r\n backgroundColor: appColors.black,\r\n color: appColors.white,\r\n '&:hover': {\r\n backgroundColor: appColors.darkestGrey,\r\n borderColor: appColors.darkestGrey,\r\n },\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst lightButtonStyle = {\r\n ...defaultButtonStyle,\r\n borderColor: appColors.black,\r\n backgroundColor: 'transparent',\r\n color: appColors.black,\r\n '&:hover': {\r\n borderColor: appColors.darkestGrey,\r\n },\r\n '&:disabled': {\r\n borderColor: appColors.secondaryButtonDisabled,\r\n color: appColors.secondaryButtonDisabled,\r\n },\r\n};\r\n\r\nconst whiteButtonStyle = {\r\n ...defaultButtonStyle,\r\n borderColor: appColors.white,\r\n borderWidth: 2,\r\n backgroundColor: 'transparent',\r\n color: appColors.white,\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst filterButtonStyle = {\r\n ...defaultButtonStyle,\r\n backgroundColor: 'transparent',\r\n color: appColors.blue,\r\n borderColor: appColors.blue,\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst filterSelectedButtonStyle = {\r\n ...defaultButtonStyle,\r\n backgroundColor: appColors.blue,\r\n color: appColors.white,\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst smallButtonStyle = {\r\n ...defaultButtonStyle,\r\n fontSize: 11,\r\n height: 35,\r\n lineHeight: '34px',\r\n};\r\n\r\nconst largeButtonStyle = {\r\n ...defaultButtonStyle,\r\n fontSize: 12,\r\n lineHeight: '43px',\r\n borderRadius: 24,\r\n padding: '0 50px',\r\n};\r\n\r\nlet theme = createTheme({\r\n appColors,\r\n typography: {\r\n primary: {\r\n fontFamily: primaryFont\r\n },\r\n secondary: {\r\n fontFamily: secondaryFont\r\n },\r\n fontFamily: secondaryFont,\r\n },\r\n palette: {\r\n primary: {\r\n main: appColors.main,\r\n },\r\n },\r\n});\r\n\r\ntheme = createTheme(theme, {\r\n palette: {\r\n rsvpGreen: {\r\n main: appColors.green\r\n },\r\n rsvpOrange: {\r\n main: appColors.orange\r\n },\r\n rsvpRed: {\r\n main: appColors.red\r\n },\r\n },\r\n typography: {\r\n subtitle2: {\r\n lineHeight: '1.71',\r\n letterSpacing: '0.8px',\r\n color: appColors.blue,\r\n },\r\n h2: {\r\n fontSize: '3rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '0.9',\r\n letterSpacing: '1px',\r\n },\r\n h3: {\r\n fontSize: '2.5rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '0.9',\r\n letterSpacing: '1px',\r\n },\r\n h3_grey: {\r\n fontSize: '2.5rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '0.9',\r\n letterSpacing: '1px',\r\n color: appColors.darkGrey,\r\n },\r\n h4_grey: {\r\n fontSize: '2.125rem',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n lineHeight: '1.235',\r\n letterSpacing: '1px',\r\n color: appColors.grey,\r\n },\r\n h5_grey: {\r\n fontSize: '1.5rem',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n lineHeight: '1.35',\r\n letterSpacing: '1px',\r\n color: appColors.grey,\r\n },\r\n subHeading: {\r\n fontSize: '1.25rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '1',\r\n letterSpacing: '1px',\r\n color: appColors.darkText,\r\n },\r\n caption: {\r\n fontSize: '0.9rem',\r\n },\r\n caption_blue: {\r\n fontSize: '1.5rem',\r\n color: appColors.gradientBlue,\r\n },\r\n body1: {\r\n fontWeight: theme.typography.fontWeightLight,\r\n },\r\n details: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1.43',\r\n },\r\n details_grey: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1.43',\r\n color: appColors.darkGrey,\r\n },\r\n cardSubtitle: {\r\n fontSize: '0.8rem',\r\n color: appColors.grey,\r\n },\r\n },\r\n components: {\r\n MuiButtonBase: {\r\n styleOverrides: {\r\n root: {\r\n '&.MuiTab-root': {\r\n color: appColors.blue,\r\n textTransform: 'capitalize',\r\n '&.Mui-selected': {\r\n color: theme.palette.common.black,\r\n },\r\n },\r\n },\r\n },\r\n defaultProps: {\r\n disableRipple: true,\r\n },\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n variants: [\r\n {\r\n props: { variant: 'dark' },\r\n style: { ...darkButtonStyle },\r\n },\r\n {\r\n props: { variant: 'dark', size: 'large' },\r\n style: { ...darkButtonStyle, ...largeButtonStyle },\r\n },\r\n {\r\n props: { variant: 'dark', size: 'small' },\r\n style: { ...darkButtonStyle, ...smallButtonStyle },\r\n },\r\n {\r\n props: { variant: 'light' },\r\n style: { ...lightButtonStyle },\r\n },\r\n {\r\n props: { variant: 'light', size: 'large' },\r\n style: { ...lightButtonStyle, ...largeButtonStyle },\r\n },\r\n {\r\n props: { variant: 'light', size: 'small' },\r\n style: { ...lightButtonStyle, ...smallButtonStyle },\r\n },\r\n {\r\n props: { variant: 'contained' },\r\n style: { color: theme.palette.common.white },\r\n },\r\n {\r\n props: { variant: 'filter' },\r\n style: { ...filterButtonStyle },\r\n },\r\n {\r\n props: { variant: 'filter-selected' },\r\n style: { ...filterSelectedButtonStyle },\r\n },\r\n {\r\n props: { variant: 'white' },\r\n style: { ...whiteButtonStyle },\r\n },\r\n {\r\n props: { variant: 'white', size: 'large' },\r\n style: { ...whiteButtonStyle, ...largeButtonStyle },\r\n },\r\n {\r\n props: { variant: 'white', size: 'small' },\r\n style: { ...whiteButtonStyle, ...smallButtonStyle },\r\n },\r\n ],\r\n },\r\n MuiInputLabel: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: 14,\r\n color: appColors.grey,\r\n '&.MuiInputLabel-shrink': {\r\n color: appColors.grey,\r\n fontSize: 16,\r\n },\r\n },\r\n },\r\n },\r\n MuiSlider: {\r\n styleOverrides: {\r\n thumb: {\r\n color: theme.palette.common.white,\r\n border: `1px solid ${appColors.grey}`,\r\n height: theme.spacing(3),\r\n width: theme.spacing(3),\r\n },\r\n track: {\r\n background: appGradient,\r\n borderRadius: 4,\r\n height: theme.spacing(),\r\n },\r\n },\r\n },\r\n MuiTabs: {\r\n styleOverrides: {\r\n indicator: {\r\n backgroundColor: 'transparent',\r\n color: theme.palette.common.black,\r\n border: 0,\r\n borderBottom: `1px solid`,\r\n // this border image allows for the tab underline indicator to only be the width of the button label\r\n borderImage: `linear-gradient(to right, transparent ${tabButtonSidePadding}, black ${tabButtonSidePadding}, black calc(100% - ${tabButtonSidePadding}), transparent calc(100% - ${tabButtonSidePadding})) 1 0`,\r\n borderImageSlice: 1,\r\n },\r\n },\r\n },\r\n MuiCard: {\r\n styleOverrides: {\r\n root: {\r\n boxShadow: '0 2px 4px 0 rgba(0, 0, 0, 0.05)',\r\n '& .MuiCardContent-root:last-child': {\r\n // TODO: figure out why this is not working?!\r\n paddingBottom: '16px',\r\n },\r\n },\r\n },\r\n },\r\n MuiToggleButton: {\r\n styleOverrides: {\r\n root: {\r\n width: '120px',\r\n color: appColors.black,\r\n fontSize: 12,\r\n backgroundColor: appColors.lightGrey,\r\n '&.Mui-selected, &.Mui-selected:hover': {\r\n color: appColors.white,\r\n backgroundColor: appColors.black\r\n }\r\n },\r\n },\r\n }\r\n },\r\n});\r\n\r\nexport default theme;\r\n","import React from 'react';\r\n\r\nimport { errorBoundaryPropTypes } from './proptypes';\r\n\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { error: null, errorInfo: null };\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n // Catch errors in any components below and re-render with error message\r\n this.setState({\r\n error,\r\n errorInfo,\r\n });\r\n\r\n window.NREUM.noticeError(error, { errorMessage: errorInfo, errorType: 'my-utr-selfrate' });\r\n }\r\n\r\n render() {\r\n const { main } = this.props;\r\n const { error, errorInfo } = this.state;\r\n const env = process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development';\r\n\r\n if (errorInfo) {\r\n return (\r\n
    \r\n {main\r\n ?

    Something went wrong.

    \r\n : Something went wrong.}\r\n
    \r\n {error?.toString() && env !== 'production'}\r\n
    \r\n {errorInfo.componentStack}\r\n
    \r\n
    \r\n );\r\n }\r\n // Normally, just render children\r\n return this.props.children;\r\n }\r\n}\r\n\r\nErrorBoundary.propTypes = {\r\n ...errorBoundaryPropTypes\r\n};\r\n\r\nexport default ErrorBoundary;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\nimport { Provider } from 'react-redux';\r\nimport { ThemeProvider } from '@mui/material/styles';\r\n\r\nimport './assets/sass/global.scss';\r\nimport App from './App';\r\nimport { persistor, store } from './redux/store';\r\nimport theme from './theme';\r\nimport ErrorBoundary from './utils/ErrorBoundary';\r\n\r\nReactDOM.render(\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 document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\n// reportWebVitals();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"header_container__3Ngg_\",\"container-fluid\":\"header_container-fluid__XpMai\",\"container-xl\":\"header_container-xl__1fkK6\",\"container-lg\":\"header_container-lg__3N3A_\",\"container-md\":\"header_container-md__2PNVi\",\"container-sm\":\"header_container-sm__3bb9u\",\"row\":\"header_row__25LVs\",\"no-gutters\":\"header_no-gutters__24jSF\",\"col\":\"header_col__1Gv7B\",\"col-xl\":\"header_col-xl__gCSOz\",\"col-xl-auto\":\"header_col-xl-auto__34ANA\",\"col-xl-12\":\"header_col-xl-12__3dxux\",\"col-xl-11\":\"header_col-xl-11__wwzxL\",\"col-xl-10\":\"header_col-xl-10__IjN0y\",\"col-xl-9\":\"header_col-xl-9__18EW2\",\"col-xl-8\":\"header_col-xl-8__3N2Yp\",\"col-xl-7\":\"header_col-xl-7__7Inqs\",\"col-xl-6\":\"header_col-xl-6__1ai14\",\"col-xl-5\":\"header_col-xl-5__3dGzX\",\"col-xl-4\":\"header_col-xl-4__wxMtk\",\"col-xl-3\":\"header_col-xl-3__3o9k0\",\"col-xl-2\":\"header_col-xl-2__3iikg\",\"col-xl-1\":\"header_col-xl-1__1AwG9\",\"col-lg\":\"header_col-lg__78pWk\",\"col-lg-auto\":\"header_col-lg-auto__3qlaL\",\"col-lg-12\":\"header_col-lg-12__2eeeY\",\"col-lg-11\":\"header_col-lg-11__3xeyq\",\"col-lg-10\":\"header_col-lg-10__2_mvq\",\"col-lg-9\":\"header_col-lg-9__5E4f6\",\"col-lg-8\":\"header_col-lg-8__1aYhK\",\"col-lg-7\":\"header_col-lg-7__2il9k\",\"col-lg-6\":\"header_col-lg-6__1cK_q\",\"col-lg-5\":\"header_col-lg-5__2HcQh\",\"col-lg-4\":\"header_col-lg-4__3JnAK\",\"col-lg-3\":\"header_col-lg-3__2dteL\",\"col-lg-2\":\"header_col-lg-2__2rNUq\",\"col-lg-1\":\"header_col-lg-1__1otSS\",\"col-md\":\"header_col-md__1WedE\",\"col-md-auto\":\"header_col-md-auto__170L0\",\"col-md-12\":\"header_col-md-12__25Qie\",\"col-md-11\":\"header_col-md-11__2qNWx\",\"col-md-10\":\"header_col-md-10__2NAbB\",\"col-md-9\":\"header_col-md-9__W1hy9\",\"col-md-8\":\"header_col-md-8__2wCjW\",\"col-md-7\":\"header_col-md-7__1DczZ\",\"col-md-6\":\"header_col-md-6__2u6_4\",\"col-md-5\":\"header_col-md-5__Kgz3W\",\"col-md-4\":\"header_col-md-4__3HlI6\",\"col-md-3\":\"header_col-md-3__1bZwk\",\"col-md-2\":\"header_col-md-2__2COTI\",\"col-md-1\":\"header_col-md-1__3Tqkb\",\"col-sm\":\"header_col-sm__21C_w\",\"col-sm-auto\":\"header_col-sm-auto__VSMUJ\",\"col-sm-12\":\"header_col-sm-12__kV-db\",\"col-sm-11\":\"header_col-sm-11__3HQvO\",\"col-sm-10\":\"header_col-sm-10__1XsdK\",\"col-sm-9\":\"header_col-sm-9__3tNDA\",\"col-sm-8\":\"header_col-sm-8__3Tivf\",\"col-sm-7\":\"header_col-sm-7__1WiIX\",\"col-sm-6\":\"header_col-sm-6__Rh-HN\",\"col-sm-5\":\"header_col-sm-5__33Mba\",\"col-sm-4\":\"header_col-sm-4__24UGs\",\"col-sm-3\":\"header_col-sm-3__3gg3Q\",\"col-sm-2\":\"header_col-sm-2__1kNsf\",\"col-sm-1\":\"header_col-sm-1__36CiL\",\"col-auto\":\"header_col-auto__ApVT2\",\"col-12\":\"header_col-12__3k06X\",\"col-11\":\"header_col-11__2w60A\",\"col-10\":\"header_col-10__YIgiz\",\"col-9\":\"header_col-9__1baDH\",\"col-8\":\"header_col-8__1xq-A\",\"col-7\":\"header_col-7__18gk2\",\"col-6\":\"header_col-6__2gWXb\",\"col-5\":\"header_col-5__2Y0x1\",\"col-4\":\"header_col-4__2z3ZD\",\"col-3\":\"header_col-3__dYf5x\",\"col-2\":\"header_col-2__1MkWt\",\"col-1\":\"header_col-1__i547E\",\"row-cols-1\":\"header_row-cols-1__2vC2U\",\"row-cols-2\":\"header_row-cols-2__2FCUa\",\"row-cols-3\":\"header_row-cols-3__35vrZ\",\"row-cols-4\":\"header_row-cols-4__2AmI7\",\"row-cols-5\":\"header_row-cols-5__Z68uO\",\"row-cols-6\":\"header_row-cols-6__2WvAx\",\"order-first\":\"header_order-first__1HP08\",\"order-last\":\"header_order-last__LTwr9\",\"order-0\":\"header_order-0__q0p7X\",\"order-1\":\"header_order-1__94whN\",\"order-2\":\"header_order-2__17ON3\",\"order-3\":\"header_order-3__1Ep_4\",\"order-4\":\"header_order-4__3zDfz\",\"order-5\":\"header_order-5__3cN51\",\"order-6\":\"header_order-6__y8Ouk\",\"order-7\":\"header_order-7__2rHow\",\"order-8\":\"header_order-8__28-H4\",\"order-9\":\"header_order-9__eih2C\",\"order-10\":\"header_order-10__12FRb\",\"order-11\":\"header_order-11__xaVkH\",\"order-12\":\"header_order-12__23rFK\",\"offset-1\":\"header_offset-1__2j_cx\",\"offset-2\":\"header_offset-2__4eHBs\",\"offset-3\":\"header_offset-3__3AWEX\",\"offset-4\":\"header_offset-4__stz-5\",\"offset-5\":\"header_offset-5__1RCsB\",\"offset-6\":\"header_offset-6__vy6Lb\",\"offset-7\":\"header_offset-7__2KBBX\",\"offset-8\":\"header_offset-8__3HAxH\",\"offset-9\":\"header_offset-9__2SOsY\",\"offset-10\":\"header_offset-10__1QKxe\",\"offset-11\":\"header_offset-11__2EALQ\",\"row-cols-sm-1\":\"header_row-cols-sm-1__2u4Qk\",\"row-cols-sm-2\":\"header_row-cols-sm-2__2FAnV\",\"row-cols-sm-3\":\"header_row-cols-sm-3__1RJZI\",\"row-cols-sm-4\":\"header_row-cols-sm-4__2g6bh\",\"row-cols-sm-5\":\"header_row-cols-sm-5__1BGLZ\",\"row-cols-sm-6\":\"header_row-cols-sm-6__2bj9Y\",\"order-sm-first\":\"header_order-sm-first__ai8oi\",\"order-sm-last\":\"header_order-sm-last__1IRi3\",\"order-sm-0\":\"header_order-sm-0__uishi\",\"order-sm-1\":\"header_order-sm-1__1NvxO\",\"order-sm-2\":\"header_order-sm-2__30Ggw\",\"order-sm-3\":\"header_order-sm-3__3uZy7\",\"order-sm-4\":\"header_order-sm-4__2XR-j\",\"order-sm-5\":\"header_order-sm-5__PoPCi\",\"order-sm-6\":\"header_order-sm-6__3lADH\",\"order-sm-7\":\"header_order-sm-7__TZcIl\",\"order-sm-8\":\"header_order-sm-8__eF0ui\",\"order-sm-9\":\"header_order-sm-9__1KNJo\",\"order-sm-10\":\"header_order-sm-10__1CDEx\",\"order-sm-11\":\"header_order-sm-11__1XOEz\",\"order-sm-12\":\"header_order-sm-12__rriim\",\"offset-sm-0\":\"header_offset-sm-0__1PrvO\",\"offset-sm-1\":\"header_offset-sm-1__13q1O\",\"offset-sm-2\":\"header_offset-sm-2__3G6u4\",\"offset-sm-3\":\"header_offset-sm-3__2-0PD\",\"offset-sm-4\":\"header_offset-sm-4__1L202\",\"offset-sm-5\":\"header_offset-sm-5__345gD\",\"offset-sm-6\":\"header_offset-sm-6__2Ec6H\",\"offset-sm-7\":\"header_offset-sm-7__scD0P\",\"offset-sm-8\":\"header_offset-sm-8__2AkrL\",\"offset-sm-9\":\"header_offset-sm-9__1YQ-L\",\"offset-sm-10\":\"header_offset-sm-10__2A7JL\",\"offset-sm-11\":\"header_offset-sm-11__3VEpT\",\"row-cols-md-1\":\"header_row-cols-md-1__3j3zB\",\"row-cols-md-2\":\"header_row-cols-md-2__29Enq\",\"row-cols-md-3\":\"header_row-cols-md-3__1TZWl\",\"row-cols-md-4\":\"header_row-cols-md-4__2VMrO\",\"row-cols-md-5\":\"header_row-cols-md-5__2P1kG\",\"row-cols-md-6\":\"header_row-cols-md-6__2WuLn\",\"order-md-first\":\"header_order-md-first__2inco\",\"order-md-last\":\"header_order-md-last__gohoV\",\"order-md-0\":\"header_order-md-0__3Zl9M\",\"order-md-1\":\"header_order-md-1__kK6Xq\",\"order-md-2\":\"header_order-md-2__2BrA5\",\"order-md-3\":\"header_order-md-3__3E59y\",\"order-md-4\":\"header_order-md-4__1FEaE\",\"order-md-5\":\"header_order-md-5__qFk9S\",\"order-md-6\":\"header_order-md-6__ZVwHa\",\"order-md-7\":\"header_order-md-7__238fj\",\"order-md-8\":\"header_order-md-8__2sONP\",\"order-md-9\":\"header_order-md-9__2Gx3X\",\"order-md-10\":\"header_order-md-10__3AnaQ\",\"order-md-11\":\"header_order-md-11__3WnfS\",\"order-md-12\":\"header_order-md-12__hhfC1\",\"offset-md-0\":\"header_offset-md-0__3uHAx\",\"offset-md-1\":\"header_offset-md-1__1kYps\",\"offset-md-2\":\"header_offset-md-2__2WcrB\",\"offset-md-3\":\"header_offset-md-3__31AKc\",\"offset-md-4\":\"header_offset-md-4__2rlRN\",\"offset-md-5\":\"header_offset-md-5__2pp2x\",\"offset-md-6\":\"header_offset-md-6__YxZKu\",\"offset-md-7\":\"header_offset-md-7__2xqF7\",\"offset-md-8\":\"header_offset-md-8__3jfij\",\"offset-md-9\":\"header_offset-md-9__2frBB\",\"offset-md-10\":\"header_offset-md-10__3P-Ot\",\"offset-md-11\":\"header_offset-md-11__20-bQ\",\"row-cols-lg-1\":\"header_row-cols-lg-1__3CDkX\",\"row-cols-lg-2\":\"header_row-cols-lg-2__2xnBg\",\"row-cols-lg-3\":\"header_row-cols-lg-3__mv15e\",\"row-cols-lg-4\":\"header_row-cols-lg-4__39NbC\",\"row-cols-lg-5\":\"header_row-cols-lg-5__2mhuB\",\"row-cols-lg-6\":\"header_row-cols-lg-6__1-w7a\",\"order-lg-first\":\"header_order-lg-first__169Ca\",\"order-lg-last\":\"header_order-lg-last__10oWW\",\"order-lg-0\":\"header_order-lg-0__Hvq67\",\"order-lg-1\":\"header_order-lg-1__23HE5\",\"order-lg-2\":\"header_order-lg-2__343Q5\",\"order-lg-3\":\"header_order-lg-3__31HZi\",\"order-lg-4\":\"header_order-lg-4__f_P5u\",\"order-lg-5\":\"header_order-lg-5__1S_ig\",\"order-lg-6\":\"header_order-lg-6__1afoB\",\"order-lg-7\":\"header_order-lg-7__xUb4Q\",\"order-lg-8\":\"header_order-lg-8__2-150\",\"order-lg-9\":\"header_order-lg-9__2qjw8\",\"order-lg-10\":\"header_order-lg-10__1_lLY\",\"order-lg-11\":\"header_order-lg-11__2KMJG\",\"order-lg-12\":\"header_order-lg-12__3gkzi\",\"offset-lg-0\":\"header_offset-lg-0__z5a-y\",\"offset-lg-1\":\"header_offset-lg-1__1f5KE\",\"offset-lg-2\":\"header_offset-lg-2__3rNxg\",\"offset-lg-3\":\"header_offset-lg-3__3YjWt\",\"offset-lg-4\":\"header_offset-lg-4__2qmDl\",\"offset-lg-5\":\"header_offset-lg-5__1vshg\",\"offset-lg-6\":\"header_offset-lg-6__30Zgm\",\"offset-lg-7\":\"header_offset-lg-7__d4P0e\",\"offset-lg-8\":\"header_offset-lg-8__t179x\",\"offset-lg-9\":\"header_offset-lg-9__2ApHY\",\"offset-lg-10\":\"header_offset-lg-10__3cIMi\",\"offset-lg-11\":\"header_offset-lg-11__2pOfc\",\"row-cols-xl-1\":\"header_row-cols-xl-1__L-F4Q\",\"row-cols-xl-2\":\"header_row-cols-xl-2__2XcUG\",\"row-cols-xl-3\":\"header_row-cols-xl-3__1NC22\",\"row-cols-xl-4\":\"header_row-cols-xl-4__cYYsN\",\"row-cols-xl-5\":\"header_row-cols-xl-5__2cuaa\",\"row-cols-xl-6\":\"header_row-cols-xl-6__1G53V\",\"order-xl-first\":\"header_order-xl-first__28ZYO\",\"order-xl-last\":\"header_order-xl-last__37YuI\",\"order-xl-0\":\"header_order-xl-0__2MSue\",\"order-xl-1\":\"header_order-xl-1__3x0m0\",\"order-xl-2\":\"header_order-xl-2__3VanM\",\"order-xl-3\":\"header_order-xl-3__2m2bU\",\"order-xl-4\":\"header_order-xl-4__3RvMv\",\"order-xl-5\":\"header_order-xl-5__3MwGU\",\"order-xl-6\":\"header_order-xl-6__2F-6p\",\"order-xl-7\":\"header_order-xl-7__3oO4v\",\"order-xl-8\":\"header_order-xl-8__1VRj5\",\"order-xl-9\":\"header_order-xl-9__CKzSI\",\"order-xl-10\":\"header_order-xl-10__202xf\",\"order-xl-11\":\"header_order-xl-11__2-qW3\",\"order-xl-12\":\"header_order-xl-12__BWed9\",\"offset-xl-0\":\"header_offset-xl-0__1dKK3\",\"offset-xl-1\":\"header_offset-xl-1__2FE8J\",\"offset-xl-2\":\"header_offset-xl-2__3K4JG\",\"offset-xl-3\":\"header_offset-xl-3__1cl_z\",\"offset-xl-4\":\"header_offset-xl-4__2cwSH\",\"offset-xl-5\":\"header_offset-xl-5__1Xwuj\",\"offset-xl-6\":\"header_offset-xl-6__1Bwig\",\"offset-xl-7\":\"header_offset-xl-7__3F9_0\",\"offset-xl-8\":\"header_offset-xl-8__2iXlJ\",\"offset-xl-9\":\"header_offset-xl-9__3nyuy\",\"offset-xl-10\":\"header_offset-xl-10__2MORZ\",\"offset-xl-11\":\"header_offset-xl-11__2zrzn\",\"d-none\":\"header_d-none__1NgDy\",\"d-inline\":\"header_d-inline__8cRhN\",\"d-inline-block\":\"header_d-inline-block__6O7-F\",\"d-block\":\"header_d-block__1mFv0\",\"d-table\":\"header_d-table__2Tz_U\",\"d-table-row\":\"header_d-table-row__1fgF-\",\"d-table-cell\":\"header_d-table-cell__j-Vba\",\"d-flex\":\"header_d-flex__2r4cr\",\"d-inline-flex\":\"header_d-inline-flex__165TW\",\"d-sm-none\":\"header_d-sm-none__33w-V\",\"d-sm-inline\":\"header_d-sm-inline__1Grpg\",\"d-sm-inline-block\":\"header_d-sm-inline-block__z89uJ\",\"d-sm-block\":\"header_d-sm-block__2HBaQ\",\"d-sm-table\":\"header_d-sm-table__2Vw8N\",\"d-sm-table-row\":\"header_d-sm-table-row__2Kka4\",\"d-sm-table-cell\":\"header_d-sm-table-cell__Gpi8i\",\"d-sm-flex\":\"header_d-sm-flex__3U98o\",\"d-sm-inline-flex\":\"header_d-sm-inline-flex__2GLUA\",\"d-md-none\":\"header_d-md-none__3yg4g\",\"d-md-inline\":\"header_d-md-inline__3Qxm9\",\"d-md-inline-block\":\"header_d-md-inline-block__3Hc-1\",\"d-md-block\":\"header_d-md-block__d4-Fq\",\"d-md-table\":\"header_d-md-table__2FuLA\",\"d-md-table-row\":\"header_d-md-table-row__1kBC9\",\"d-md-table-cell\":\"header_d-md-table-cell__7vgD3\",\"d-md-flex\":\"header_d-md-flex__hQ2eu\",\"d-md-inline-flex\":\"header_d-md-inline-flex__1V4Ai\",\"d-lg-none\":\"header_d-lg-none__3XKXm\",\"d-lg-inline\":\"header_d-lg-inline__-XuNO\",\"d-lg-inline-block\":\"header_d-lg-inline-block__1OVBd\",\"d-lg-block\":\"header_d-lg-block__12s8s\",\"d-lg-table\":\"header_d-lg-table__3CzVA\",\"d-lg-table-row\":\"header_d-lg-table-row__bwxkm\",\"d-lg-table-cell\":\"header_d-lg-table-cell__3U-ch\",\"d-lg-flex\":\"header_d-lg-flex__23Xob\",\"d-lg-inline-flex\":\"header_d-lg-inline-flex__3RS0u\",\"d-xl-none\":\"header_d-xl-none__whNcG\",\"d-xl-inline\":\"header_d-xl-inline__6kkmD\",\"d-xl-inline-block\":\"header_d-xl-inline-block__3osmE\",\"d-xl-block\":\"header_d-xl-block__3nXxn\",\"d-xl-table\":\"header_d-xl-table__2NES0\",\"d-xl-table-row\":\"header_d-xl-table-row__2zkJG\",\"d-xl-table-cell\":\"header_d-xl-table-cell__3QN6y\",\"d-xl-flex\":\"header_d-xl-flex__2cq7N\",\"d-xl-inline-flex\":\"header_d-xl-inline-flex__dpE2D\",\"d-print-none\":\"header_d-print-none__20zym\",\"d-print-inline\":\"header_d-print-inline__153zg\",\"d-print-inline-block\":\"header_d-print-inline-block__3J44V\",\"d-print-block\":\"header_d-print-block__22qt8\",\"d-print-table\":\"header_d-print-table__1HioU\",\"d-print-table-row\":\"header_d-print-table-row__tdMT-\",\"d-print-table-cell\":\"header_d-print-table-cell__1X-5K\",\"d-print-flex\":\"header_d-print-flex__1ACNT\",\"d-print-inline-flex\":\"header_d-print-inline-flex__3wsa0\",\"flex-row\":\"header_flex-row__qjXEB\",\"flex-column\":\"header_flex-column__1GWTD\",\"flex-row-reverse\":\"header_flex-row-reverse__3DxhX\",\"flex-column-reverse\":\"header_flex-column-reverse__1ctgd\",\"flex-wrap\":\"header_flex-wrap__1n7Yd\",\"flex-nowrap\":\"header_flex-nowrap__1eb1R\",\"flex-wrap-reverse\":\"header_flex-wrap-reverse__3NABW\",\"flex-fill\":\"header_flex-fill__erRmo\",\"flex-grow-0\":\"header_flex-grow-0__13PEb\",\"flex-grow-1\":\"header_flex-grow-1__1d6J7\",\"flex-shrink-0\":\"header_flex-shrink-0__UERVl\",\"flex-shrink-1\":\"header_flex-shrink-1__2u75A\",\"justify-content-start\":\"header_justify-content-start__38eIo\",\"justify-content-end\":\"header_justify-content-end__xNQec\",\"justify-content-center\":\"header_justify-content-center__3kb13\",\"justify-content-between\":\"header_justify-content-between__3BGr2\",\"justify-content-around\":\"header_justify-content-around__1pYye\",\"align-items-start\":\"header_align-items-start__1J0lx\",\"align-items-end\":\"header_align-items-end__yigb0\",\"align-items-center\":\"header_align-items-center__k8kTV\",\"align-items-baseline\":\"header_align-items-baseline__TZ-oK\",\"align-items-stretch\":\"header_align-items-stretch__233sz\",\"align-content-start\":\"header_align-content-start__2ez5A\",\"align-content-end\":\"header_align-content-end__W8vHE\",\"align-content-center\":\"header_align-content-center__2MNTY\",\"align-content-between\":\"header_align-content-between__2Hn1Z\",\"align-content-around\":\"header_align-content-around__3yNcF\",\"align-content-stretch\":\"header_align-content-stretch__2Reaa\",\"align-self-auto\":\"header_align-self-auto__3fB17\",\"align-self-start\":\"header_align-self-start__3nrDm\",\"align-self-end\":\"header_align-self-end__37ZrT\",\"align-self-center\":\"header_align-self-center__1oai0\",\"align-self-baseline\":\"header_align-self-baseline__3KWpX\",\"align-self-stretch\":\"header_align-self-stretch__CKpkR\",\"flex-sm-row\":\"header_flex-sm-row__2Iw6R\",\"flex-sm-column\":\"header_flex-sm-column__3zsFK\",\"flex-sm-row-reverse\":\"header_flex-sm-row-reverse__uMnkw\",\"flex-sm-column-reverse\":\"header_flex-sm-column-reverse__2xmJJ\",\"flex-sm-wrap\":\"header_flex-sm-wrap__2RfAK\",\"flex-sm-nowrap\":\"header_flex-sm-nowrap__2iEg-\",\"flex-sm-wrap-reverse\":\"header_flex-sm-wrap-reverse__2p2TD\",\"flex-sm-fill\":\"header_flex-sm-fill__1nivg\",\"flex-sm-grow-0\":\"header_flex-sm-grow-0__1Qijj\",\"flex-sm-grow-1\":\"header_flex-sm-grow-1__1FWXU\",\"flex-sm-shrink-0\":\"header_flex-sm-shrink-0__1pB9X\",\"flex-sm-shrink-1\":\"header_flex-sm-shrink-1__3zVuK\",\"justify-content-sm-start\":\"header_justify-content-sm-start__25Lhk\",\"justify-content-sm-end\":\"header_justify-content-sm-end__3xoNn\",\"justify-content-sm-center\":\"header_justify-content-sm-center__35X7A\",\"justify-content-sm-between\":\"header_justify-content-sm-between__1LBGJ\",\"justify-content-sm-around\":\"header_justify-content-sm-around__lLr-W\",\"align-items-sm-start\":\"header_align-items-sm-start__12n3f\",\"align-items-sm-end\":\"header_align-items-sm-end__1oEND\",\"align-items-sm-center\":\"header_align-items-sm-center__3jcnJ\",\"align-items-sm-baseline\":\"header_align-items-sm-baseline__1E0wW\",\"align-items-sm-stretch\":\"header_align-items-sm-stretch__1OJ--\",\"align-content-sm-start\":\"header_align-content-sm-start__l2Jng\",\"align-content-sm-end\":\"header_align-content-sm-end__1HsbJ\",\"align-content-sm-center\":\"header_align-content-sm-center__1d-X-\",\"align-content-sm-between\":\"header_align-content-sm-between__15e4R\",\"align-content-sm-around\":\"header_align-content-sm-around__27c7D\",\"align-content-sm-stretch\":\"header_align-content-sm-stretch__1lzsK\",\"align-self-sm-auto\":\"header_align-self-sm-auto__PaiA7\",\"align-self-sm-start\":\"header_align-self-sm-start__gZEAQ\",\"align-self-sm-end\":\"header_align-self-sm-end__1XSOb\",\"align-self-sm-center\":\"header_align-self-sm-center__jDx-_\",\"align-self-sm-baseline\":\"header_align-self-sm-baseline__1R-yu\",\"align-self-sm-stretch\":\"header_align-self-sm-stretch__2EoL5\",\"flex-md-row\":\"header_flex-md-row__10Eyo\",\"flex-md-column\":\"header_flex-md-column__-f7yw\",\"flex-md-row-reverse\":\"header_flex-md-row-reverse__1YtKJ\",\"flex-md-column-reverse\":\"header_flex-md-column-reverse__1FvFP\",\"flex-md-wrap\":\"header_flex-md-wrap__1OoCD\",\"flex-md-nowrap\":\"header_flex-md-nowrap__1ABOy\",\"flex-md-wrap-reverse\":\"header_flex-md-wrap-reverse__3GZhz\",\"flex-md-fill\":\"header_flex-md-fill__1TqoT\",\"flex-md-grow-0\":\"header_flex-md-grow-0__3nzQE\",\"flex-md-grow-1\":\"header_flex-md-grow-1__zFkI-\",\"flex-md-shrink-0\":\"header_flex-md-shrink-0__3vbI-\",\"flex-md-shrink-1\":\"header_flex-md-shrink-1__j9dcr\",\"justify-content-md-start\":\"header_justify-content-md-start__10iWO\",\"justify-content-md-end\":\"header_justify-content-md-end__3Tz06\",\"justify-content-md-center\":\"header_justify-content-md-center___wCW3\",\"justify-content-md-between\":\"header_justify-content-md-between__3igt-\",\"justify-content-md-around\":\"header_justify-content-md-around__1Ct5m\",\"align-items-md-start\":\"header_align-items-md-start__3CUYe\",\"align-items-md-end\":\"header_align-items-md-end__1iSi2\",\"align-items-md-center\":\"header_align-items-md-center__1KHfZ\",\"align-items-md-baseline\":\"header_align-items-md-baseline__9sdsc\",\"align-items-md-stretch\":\"header_align-items-md-stretch__1Kw_t\",\"align-content-md-start\":\"header_align-content-md-start__10o7e\",\"align-content-md-end\":\"header_align-content-md-end__yidFO\",\"align-content-md-center\":\"header_align-content-md-center__5Wug8\",\"align-content-md-between\":\"header_align-content-md-between__2UZbi\",\"align-content-md-around\":\"header_align-content-md-around__1Z6Oj\",\"align-content-md-stretch\":\"header_align-content-md-stretch__2ZbXO\",\"align-self-md-auto\":\"header_align-self-md-auto__1D98S\",\"align-self-md-start\":\"header_align-self-md-start__3drpU\",\"align-self-md-end\":\"header_align-self-md-end__2QpUK\",\"align-self-md-center\":\"header_align-self-md-center__1o6yd\",\"align-self-md-baseline\":\"header_align-self-md-baseline__1gvyz\",\"align-self-md-stretch\":\"header_align-self-md-stretch__F1aeg\",\"flex-lg-row\":\"header_flex-lg-row__3bobF\",\"flex-lg-column\":\"header_flex-lg-column__2WGgk\",\"flex-lg-row-reverse\":\"header_flex-lg-row-reverse__15w2y\",\"flex-lg-column-reverse\":\"header_flex-lg-column-reverse__1Nnu4\",\"flex-lg-wrap\":\"header_flex-lg-wrap__2SODp\",\"flex-lg-nowrap\":\"header_flex-lg-nowrap__ehu7O\",\"flex-lg-wrap-reverse\":\"header_flex-lg-wrap-reverse__IxOVB\",\"flex-lg-fill\":\"header_flex-lg-fill__2v7OX\",\"flex-lg-grow-0\":\"header_flex-lg-grow-0__1IrWA\",\"flex-lg-grow-1\":\"header_flex-lg-grow-1__3mc58\",\"flex-lg-shrink-0\":\"header_flex-lg-shrink-0__1IqdH\",\"flex-lg-shrink-1\":\"header_flex-lg-shrink-1__V6_YH\",\"justify-content-lg-start\":\"header_justify-content-lg-start__1oPup\",\"justify-content-lg-end\":\"header_justify-content-lg-end__97Ds_\",\"justify-content-lg-center\":\"header_justify-content-lg-center__2xwXS\",\"justify-content-lg-between\":\"header_justify-content-lg-between__H4DLA\",\"justify-content-lg-around\":\"header_justify-content-lg-around__3CuAl\",\"align-items-lg-start\":\"header_align-items-lg-start__AzUjW\",\"align-items-lg-end\":\"header_align-items-lg-end__2a2b2\",\"align-items-lg-center\":\"header_align-items-lg-center__2sxac\",\"align-items-lg-baseline\":\"header_align-items-lg-baseline__wd56p\",\"align-items-lg-stretch\":\"header_align-items-lg-stretch__Dcbne\",\"align-content-lg-start\":\"header_align-content-lg-start__24luw\",\"align-content-lg-end\":\"header_align-content-lg-end__NI13v\",\"align-content-lg-center\":\"header_align-content-lg-center__sJ0e1\",\"align-content-lg-between\":\"header_align-content-lg-between__2sq_m\",\"align-content-lg-around\":\"header_align-content-lg-around__3U8Iu\",\"align-content-lg-stretch\":\"header_align-content-lg-stretch__kXjkl\",\"align-self-lg-auto\":\"header_align-self-lg-auto__1S6eY\",\"align-self-lg-start\":\"header_align-self-lg-start__1YCDE\",\"align-self-lg-end\":\"header_align-self-lg-end__3Rhfu\",\"align-self-lg-center\":\"header_align-self-lg-center__2nlJ-\",\"align-self-lg-baseline\":\"header_align-self-lg-baseline__2D82J\",\"align-self-lg-stretch\":\"header_align-self-lg-stretch__2tWea\",\"flex-xl-row\":\"header_flex-xl-row__1OUFw\",\"flex-xl-column\":\"header_flex-xl-column__1gQCc\",\"flex-xl-row-reverse\":\"header_flex-xl-row-reverse__1QB4i\",\"flex-xl-column-reverse\":\"header_flex-xl-column-reverse__2RGro\",\"flex-xl-wrap\":\"header_flex-xl-wrap__HqBOV\",\"flex-xl-nowrap\":\"header_flex-xl-nowrap__2O_aL\",\"flex-xl-wrap-reverse\":\"header_flex-xl-wrap-reverse__3zBUF\",\"flex-xl-fill\":\"header_flex-xl-fill__2zXSk\",\"flex-xl-grow-0\":\"header_flex-xl-grow-0__25YbK\",\"flex-xl-grow-1\":\"header_flex-xl-grow-1__2GIla\",\"flex-xl-shrink-0\":\"header_flex-xl-shrink-0__3NgxH\",\"flex-xl-shrink-1\":\"header_flex-xl-shrink-1__2btSv\",\"justify-content-xl-start\":\"header_justify-content-xl-start__h_4iG\",\"justify-content-xl-end\":\"header_justify-content-xl-end__31WKm\",\"justify-content-xl-center\":\"header_justify-content-xl-center__26Lt4\",\"justify-content-xl-between\":\"header_justify-content-xl-between__1TZLH\",\"justify-content-xl-around\":\"header_justify-content-xl-around__2PQYp\",\"align-items-xl-start\":\"header_align-items-xl-start__3Cp3F\",\"align-items-xl-end\":\"header_align-items-xl-end__3f_iQ\",\"align-items-xl-center\":\"header_align-items-xl-center__1XdNF\",\"align-items-xl-baseline\":\"header_align-items-xl-baseline__2pGgE\",\"align-items-xl-stretch\":\"header_align-items-xl-stretch__1Eezg\",\"align-content-xl-start\":\"header_align-content-xl-start__1KruK\",\"align-content-xl-end\":\"header_align-content-xl-end__ZQ_FD\",\"align-content-xl-center\":\"header_align-content-xl-center__15cwN\",\"align-content-xl-between\":\"header_align-content-xl-between__3P8Ka\",\"align-content-xl-around\":\"header_align-content-xl-around__2HIx5\",\"align-content-xl-stretch\":\"header_align-content-xl-stretch__3u_-q\",\"align-self-xl-auto\":\"header_align-self-xl-auto__DOBI0\",\"align-self-xl-start\":\"header_align-self-xl-start__1dTys\",\"align-self-xl-end\":\"header_align-self-xl-end__2HuvV\",\"align-self-xl-center\":\"header_align-self-xl-center__GpP0n\",\"align-self-xl-baseline\":\"header_align-self-xl-baseline__3DBYF\",\"align-self-xl-stretch\":\"header_align-self-xl-stretch__1YdQV\",\"m-0\":\"header_m-0__2fSIL\",\"mt-0\":\"header_mt-0__3uAm5\",\"my-0\":\"header_my-0__2Su_t\",\"mr-0\":\"header_mr-0__DSV6v\",\"mx-0\":\"header_mx-0__3vqdF\",\"mb-0\":\"header_mb-0__3nNY5\",\"ml-0\":\"header_ml-0__3WVdY\",\"m-1\":\"header_m-1__12n7I\",\"mt-1\":\"header_mt-1__25I1z\",\"my-1\":\"header_my-1__1Xamx\",\"mr-1\":\"header_mr-1__3MQ-H\",\"mx-1\":\"header_mx-1__2odEB\",\"mb-1\":\"header_mb-1__1AvRJ\",\"ml-1\":\"header_ml-1__FYF6z\",\"m-2\":\"header_m-2__14AoF\",\"mt-2\":\"header_mt-2__V2e9-\",\"my-2\":\"header_my-2__3HDjx\",\"mr-2\":\"header_mr-2__3n2yP\",\"mx-2\":\"header_mx-2__tYsJb\",\"mb-2\":\"header_mb-2__3jhfW\",\"ml-2\":\"header_ml-2__Mloyp\",\"m-3\":\"header_m-3__3gvA_\",\"mt-3\":\"header_mt-3__ogI1y\",\"my-3\":\"header_my-3__eeAUa\",\"mr-3\":\"header_mr-3__x1K0H\",\"mx-3\":\"header_mx-3__2_7dV\",\"mb-3\":\"header_mb-3__ujdjH\",\"ml-3\":\"header_ml-3__1N-jO\",\"m-4\":\"header_m-4__CrwR3\",\"mt-4\":\"header_mt-4__AennR\",\"my-4\":\"header_my-4__1AEhB\",\"mr-4\":\"header_mr-4__3fOid\",\"mx-4\":\"header_mx-4__FJXro\",\"mb-4\":\"header_mb-4__2nd48\",\"ml-4\":\"header_ml-4__34Zv-\",\"m-5\":\"header_m-5__30MnC\",\"mt-5\":\"header_mt-5__3DhX0\",\"my-5\":\"header_my-5__1BBOp\",\"mr-5\":\"header_mr-5__3wJR8\",\"mx-5\":\"header_mx-5__3xSst\",\"mb-5\":\"header_mb-5__359EK\",\"ml-5\":\"header_ml-5__2bi6V\",\"p-0\":\"header_p-0__21qj8\",\"pt-0\":\"header_pt-0__259hM\",\"py-0\":\"header_py-0__3SZAH\",\"pr-0\":\"header_pr-0__3lHXP\",\"px-0\":\"header_px-0__YygxH\",\"pb-0\":\"header_pb-0__1uzCB\",\"pl-0\":\"header_pl-0__2vo5e\",\"p-1\":\"header_p-1__2Sba5\",\"pt-1\":\"header_pt-1__1OSkC\",\"py-1\":\"header_py-1__2bhnl\",\"pr-1\":\"header_pr-1__22v2w\",\"px-1\":\"header_px-1__1dLOB\",\"pb-1\":\"header_pb-1__qAQYE\",\"pl-1\":\"header_pl-1__u6cmp\",\"p-2\":\"header_p-2__3Tu4S\",\"pt-2\":\"header_pt-2__31FnK\",\"py-2\":\"header_py-2__DrUgL\",\"pr-2\":\"header_pr-2__3bhOH\",\"px-2\":\"header_px-2__2H7P0\",\"pb-2\":\"header_pb-2__2BqLe\",\"pl-2\":\"header_pl-2__1yHrD\",\"p-3\":\"header_p-3__3RlHd\",\"pt-3\":\"header_pt-3__VVlPP\",\"py-3\":\"header_py-3__QmRMV\",\"pr-3\":\"header_pr-3__1W07d\",\"px-3\":\"header_px-3__2-So1\",\"pb-3\":\"header_pb-3__3id8s\",\"pl-3\":\"header_pl-3__2oKOL\",\"p-4\":\"header_p-4__3xWGK\",\"pt-4\":\"header_pt-4__2Lw5S\",\"py-4\":\"header_py-4__pr1At\",\"pr-4\":\"header_pr-4__jHYv3\",\"px-4\":\"header_px-4__2Pcdh\",\"pb-4\":\"header_pb-4___bjmX\",\"pl-4\":\"header_pl-4__2Hltc\",\"p-5\":\"header_p-5__2sQcB\",\"pt-5\":\"header_pt-5__3Z8SO\",\"py-5\":\"header_py-5__2ytKU\",\"pr-5\":\"header_pr-5__2stPT\",\"px-5\":\"header_px-5__2aZEa\",\"pb-5\":\"header_pb-5__1vdzv\",\"pl-5\":\"header_pl-5__1bPVy\",\"m-n1\":\"header_m-n1__2zdAV\",\"mt-n1\":\"header_mt-n1__3dEsX\",\"my-n1\":\"header_my-n1__34uuE\",\"mr-n1\":\"header_mr-n1__qo2-r\",\"mx-n1\":\"header_mx-n1__3sl_z\",\"mb-n1\":\"header_mb-n1__2lVFX\",\"ml-n1\":\"header_ml-n1__3wzcm\",\"m-n2\":\"header_m-n2__3_-rf\",\"mt-n2\":\"header_mt-n2__3AJJ2\",\"my-n2\":\"header_my-n2__ZUzGr\",\"mr-n2\":\"header_mr-n2__1Wrb1\",\"mx-n2\":\"header_mx-n2__1TRhL\",\"mb-n2\":\"header_mb-n2__-nYGg\",\"ml-n2\":\"header_ml-n2__10Ypj\",\"m-n3\":\"header_m-n3__3HI8b\",\"mt-n3\":\"header_mt-n3__3fdQm\",\"my-n3\":\"header_my-n3__3rXTL\",\"mr-n3\":\"header_mr-n3__5Yz0O\",\"mx-n3\":\"header_mx-n3__RbINR\",\"mb-n3\":\"header_mb-n3__345Es\",\"ml-n3\":\"header_ml-n3__w4xUM\",\"m-n4\":\"header_m-n4__RDYus\",\"mt-n4\":\"header_mt-n4__1hreh\",\"my-n4\":\"header_my-n4__mxGkF\",\"mr-n4\":\"header_mr-n4__3-zMZ\",\"mx-n4\":\"header_mx-n4__jl6l2\",\"mb-n4\":\"header_mb-n4__AVp3G\",\"ml-n4\":\"header_ml-n4__26FUf\",\"m-n5\":\"header_m-n5__2syA5\",\"mt-n5\":\"header_mt-n5__1YPHp\",\"my-n5\":\"header_my-n5__3BYC0\",\"mr-n5\":\"header_mr-n5__3m9zX\",\"mx-n5\":\"header_mx-n5__34Ivl\",\"mb-n5\":\"header_mb-n5__5mTGX\",\"ml-n5\":\"header_ml-n5__2tcxg\",\"m-auto\":\"header_m-auto__37sAu\",\"mt-auto\":\"header_mt-auto__11Lwh\",\"my-auto\":\"header_my-auto__ydVek\",\"mr-auto\":\"header_mr-auto__1dPkD\",\"mx-auto\":\"header_mx-auto__2Lu28\",\"mb-auto\":\"header_mb-auto__3Q7wr\",\"ml-auto\":\"header_ml-auto__1PplA\",\"m-sm-0\":\"header_m-sm-0__1pvrA\",\"mt-sm-0\":\"header_mt-sm-0__1kDqE\",\"my-sm-0\":\"header_my-sm-0__1xmQH\",\"mr-sm-0\":\"header_mr-sm-0__37hvH\",\"mx-sm-0\":\"header_mx-sm-0__2DneY\",\"mb-sm-0\":\"header_mb-sm-0__aQFb1\",\"ml-sm-0\":\"header_ml-sm-0__f0SYN\",\"m-sm-1\":\"header_m-sm-1__eXQcf\",\"mt-sm-1\":\"header_mt-sm-1__CH45_\",\"my-sm-1\":\"header_my-sm-1__26o8s\",\"mr-sm-1\":\"header_mr-sm-1__z7sp2\",\"mx-sm-1\":\"header_mx-sm-1__hg-6s\",\"mb-sm-1\":\"header_mb-sm-1__570Mw\",\"ml-sm-1\":\"header_ml-sm-1__3Dcec\",\"m-sm-2\":\"header_m-sm-2__1VPtT\",\"mt-sm-2\":\"header_mt-sm-2__1L8f_\",\"my-sm-2\":\"header_my-sm-2__16xTv\",\"mr-sm-2\":\"header_mr-sm-2__2VxiP\",\"mx-sm-2\":\"header_mx-sm-2__3LySo\",\"mb-sm-2\":\"header_mb-sm-2__2wXFQ\",\"ml-sm-2\":\"header_ml-sm-2__3VzVv\",\"m-sm-3\":\"header_m-sm-3__3WrVl\",\"mt-sm-3\":\"header_mt-sm-3__1u8uq\",\"my-sm-3\":\"header_my-sm-3__1r7zW\",\"mr-sm-3\":\"header_mr-sm-3__1oLhR\",\"mx-sm-3\":\"header_mx-sm-3__1Zp2M\",\"mb-sm-3\":\"header_mb-sm-3__3EnXM\",\"ml-sm-3\":\"header_ml-sm-3__3dAb1\",\"m-sm-4\":\"header_m-sm-4__1h1b8\",\"mt-sm-4\":\"header_mt-sm-4__1305s\",\"my-sm-4\":\"header_my-sm-4__3yfaZ\",\"mr-sm-4\":\"header_mr-sm-4__1204a\",\"mx-sm-4\":\"header_mx-sm-4__LGKmb\",\"mb-sm-4\":\"header_mb-sm-4__3HVyl\",\"ml-sm-4\":\"header_ml-sm-4__V8kCx\",\"m-sm-5\":\"header_m-sm-5__XNnmJ\",\"mt-sm-5\":\"header_mt-sm-5__3YrQX\",\"my-sm-5\":\"header_my-sm-5__cH8SN\",\"mr-sm-5\":\"header_mr-sm-5__PvHP0\",\"mx-sm-5\":\"header_mx-sm-5__Di2vx\",\"mb-sm-5\":\"header_mb-sm-5__1F1Ph\",\"ml-sm-5\":\"header_ml-sm-5__1Wfv5\",\"p-sm-0\":\"header_p-sm-0__UCWYK\",\"pt-sm-0\":\"header_pt-sm-0__3Z_7k\",\"py-sm-0\":\"header_py-sm-0__2BVH1\",\"pr-sm-0\":\"header_pr-sm-0__3uN9r\",\"px-sm-0\":\"header_px-sm-0__1zJWQ\",\"pb-sm-0\":\"header_pb-sm-0__9nkqn\",\"pl-sm-0\":\"header_pl-sm-0__2PMJM\",\"p-sm-1\":\"header_p-sm-1__2LRH2\",\"pt-sm-1\":\"header_pt-sm-1__2A2VQ\",\"py-sm-1\":\"header_py-sm-1__1DhXL\",\"pr-sm-1\":\"header_pr-sm-1__369IV\",\"px-sm-1\":\"header_px-sm-1__2BMCG\",\"pb-sm-1\":\"header_pb-sm-1__3iM6_\",\"pl-sm-1\":\"header_pl-sm-1__196UN\",\"p-sm-2\":\"header_p-sm-2__1Dccr\",\"pt-sm-2\":\"header_pt-sm-2__zooLp\",\"py-sm-2\":\"header_py-sm-2__iQv9y\",\"pr-sm-2\":\"header_pr-sm-2__37mRP\",\"px-sm-2\":\"header_px-sm-2__zZtGN\",\"pb-sm-2\":\"header_pb-sm-2__2FlJP\",\"pl-sm-2\":\"header_pl-sm-2__fE51E\",\"p-sm-3\":\"header_p-sm-3__1HQYj\",\"pt-sm-3\":\"header_pt-sm-3__1jLdk\",\"py-sm-3\":\"header_py-sm-3__xReW4\",\"pr-sm-3\":\"header_pr-sm-3__2xtRg\",\"px-sm-3\":\"header_px-sm-3__2km53\",\"pb-sm-3\":\"header_pb-sm-3__3tWGv\",\"pl-sm-3\":\"header_pl-sm-3__2qjl5\",\"p-sm-4\":\"header_p-sm-4__ds-An\",\"pt-sm-4\":\"header_pt-sm-4__1e__c\",\"py-sm-4\":\"header_py-sm-4__3DchL\",\"pr-sm-4\":\"header_pr-sm-4__1hyVd\",\"px-sm-4\":\"header_px-sm-4__3P0Mh\",\"pb-sm-4\":\"header_pb-sm-4__3wh2u\",\"pl-sm-4\":\"header_pl-sm-4__3ahj3\",\"p-sm-5\":\"header_p-sm-5__2km6b\",\"pt-sm-5\":\"header_pt-sm-5__CzV1s\",\"py-sm-5\":\"header_py-sm-5__3pDcy\",\"pr-sm-5\":\"header_pr-sm-5__2FOe9\",\"px-sm-5\":\"header_px-sm-5__2Xsz1\",\"pb-sm-5\":\"header_pb-sm-5__nW1Ba\",\"pl-sm-5\":\"header_pl-sm-5__YCOB-\",\"m-sm-n1\":\"header_m-sm-n1__2jlAg\",\"mt-sm-n1\":\"header_mt-sm-n1__2-LBk\",\"my-sm-n1\":\"header_my-sm-n1__3I9M4\",\"mr-sm-n1\":\"header_mr-sm-n1__THXEk\",\"mx-sm-n1\":\"header_mx-sm-n1__2EcD-\",\"mb-sm-n1\":\"header_mb-sm-n1__Hzxkb\",\"ml-sm-n1\":\"header_ml-sm-n1__1EBg_\",\"m-sm-n2\":\"header_m-sm-n2__37fw0\",\"mt-sm-n2\":\"header_mt-sm-n2__3FSIH\",\"my-sm-n2\":\"header_my-sm-n2__DOl7O\",\"mr-sm-n2\":\"header_mr-sm-n2__1Jfbp\",\"mx-sm-n2\":\"header_mx-sm-n2__1Kwqs\",\"mb-sm-n2\":\"header_mb-sm-n2__2iMUO\",\"ml-sm-n2\":\"header_ml-sm-n2__DBf2H\",\"m-sm-n3\":\"header_m-sm-n3__Lo6jp\",\"mt-sm-n3\":\"header_mt-sm-n3__3IYLb\",\"my-sm-n3\":\"header_my-sm-n3__1RRfG\",\"mr-sm-n3\":\"header_mr-sm-n3__2Lta6\",\"mx-sm-n3\":\"header_mx-sm-n3__2Jr9A\",\"mb-sm-n3\":\"header_mb-sm-n3__2W62d\",\"ml-sm-n3\":\"header_ml-sm-n3__27dv2\",\"m-sm-n4\":\"header_m-sm-n4__KbG6o\",\"mt-sm-n4\":\"header_mt-sm-n4__3FgNB\",\"my-sm-n4\":\"header_my-sm-n4__1hdN0\",\"mr-sm-n4\":\"header_mr-sm-n4__3tBq7\",\"mx-sm-n4\":\"header_mx-sm-n4__1KQJd\",\"mb-sm-n4\":\"header_mb-sm-n4__2Uq-A\",\"ml-sm-n4\":\"header_ml-sm-n4__1Ytv_\",\"m-sm-n5\":\"header_m-sm-n5__NAqGF\",\"mt-sm-n5\":\"header_mt-sm-n5__1kLzc\",\"my-sm-n5\":\"header_my-sm-n5__1hrm7\",\"mr-sm-n5\":\"header_mr-sm-n5__22uzP\",\"mx-sm-n5\":\"header_mx-sm-n5__2Itpt\",\"mb-sm-n5\":\"header_mb-sm-n5__lJUuy\",\"ml-sm-n5\":\"header_ml-sm-n5__1LEuZ\",\"m-sm-auto\":\"header_m-sm-auto__1z1xD\",\"mt-sm-auto\":\"header_mt-sm-auto__3HT67\",\"my-sm-auto\":\"header_my-sm-auto__3_nsI\",\"mr-sm-auto\":\"header_mr-sm-auto__1_gys\",\"mx-sm-auto\":\"header_mx-sm-auto__28XVi\",\"mb-sm-auto\":\"header_mb-sm-auto__jA8O1\",\"ml-sm-auto\":\"header_ml-sm-auto__KGNIZ\",\"m-md-0\":\"header_m-md-0__3RnoD\",\"mt-md-0\":\"header_mt-md-0__1QlCy\",\"my-md-0\":\"header_my-md-0__WlXxf\",\"mr-md-0\":\"header_mr-md-0__H_fdR\",\"mx-md-0\":\"header_mx-md-0__1hdx1\",\"mb-md-0\":\"header_mb-md-0__2NkC5\",\"ml-md-0\":\"header_ml-md-0__3Bc7B\",\"m-md-1\":\"header_m-md-1__3_lHl\",\"mt-md-1\":\"header_mt-md-1__3KyQ0\",\"my-md-1\":\"header_my-md-1__1EIko\",\"mr-md-1\":\"header_mr-md-1__3fxMf\",\"mx-md-1\":\"header_mx-md-1__3htEh\",\"mb-md-1\":\"header_mb-md-1__2GAvq\",\"ml-md-1\":\"header_ml-md-1__Xd28f\",\"m-md-2\":\"header_m-md-2__1dcXz\",\"mt-md-2\":\"header_mt-md-2__3jnvJ\",\"my-md-2\":\"header_my-md-2__1pwBE\",\"mr-md-2\":\"header_mr-md-2__RelT6\",\"mx-md-2\":\"header_mx-md-2__367IV\",\"mb-md-2\":\"header_mb-md-2__3Skrz\",\"ml-md-2\":\"header_ml-md-2__3WGVq\",\"m-md-3\":\"header_m-md-3__3fwQ8\",\"mt-md-3\":\"header_mt-md-3__3hjYi\",\"my-md-3\":\"header_my-md-3__pU3yt\",\"mr-md-3\":\"header_mr-md-3__3hTzM\",\"mx-md-3\":\"header_mx-md-3__1amT7\",\"mb-md-3\":\"header_mb-md-3__1Rtc2\",\"ml-md-3\":\"header_ml-md-3__u8Awg\",\"m-md-4\":\"header_m-md-4__3F_IJ\",\"mt-md-4\":\"header_mt-md-4__K73aN\",\"my-md-4\":\"header_my-md-4__tH152\",\"mr-md-4\":\"header_mr-md-4__1z9v4\",\"mx-md-4\":\"header_mx-md-4__2TR-6\",\"mb-md-4\":\"header_mb-md-4__92W_8\",\"ml-md-4\":\"header_ml-md-4__75tmG\",\"m-md-5\":\"header_m-md-5__F8Hge\",\"mt-md-5\":\"header_mt-md-5__egUp2\",\"my-md-5\":\"header_my-md-5__2DRdp\",\"mr-md-5\":\"header_mr-md-5__VlBWB\",\"mx-md-5\":\"header_mx-md-5__SlwgI\",\"mb-md-5\":\"header_mb-md-5__FiNpi\",\"ml-md-5\":\"header_ml-md-5__3WmQC\",\"p-md-0\":\"header_p-md-0__3RKhp\",\"pt-md-0\":\"header_pt-md-0__1aDNi\",\"py-md-0\":\"header_py-md-0__1YEAT\",\"pr-md-0\":\"header_pr-md-0__2Vb9U\",\"px-md-0\":\"header_px-md-0__18x04\",\"pb-md-0\":\"header_pb-md-0__3dMR8\",\"pl-md-0\":\"header_pl-md-0__2rFkt\",\"p-md-1\":\"header_p-md-1__2AnSf\",\"pt-md-1\":\"header_pt-md-1__1b32-\",\"py-md-1\":\"header_py-md-1__vFxxf\",\"pr-md-1\":\"header_pr-md-1__1_xk9\",\"px-md-1\":\"header_px-md-1__3RhjG\",\"pb-md-1\":\"header_pb-md-1__1uSYb\",\"pl-md-1\":\"header_pl-md-1__108_1\",\"p-md-2\":\"header_p-md-2__2DRVR\",\"pt-md-2\":\"header_pt-md-2__umi1O\",\"py-md-2\":\"header_py-md-2__10ZNK\",\"pr-md-2\":\"header_pr-md-2__LtK-w\",\"px-md-2\":\"header_px-md-2__2YCF4\",\"pb-md-2\":\"header_pb-md-2__2NL1x\",\"pl-md-2\":\"header_pl-md-2__RFr6R\",\"p-md-3\":\"header_p-md-3__ATRAW\",\"pt-md-3\":\"header_pt-md-3__X0f9i\",\"py-md-3\":\"header_py-md-3__1arhJ\",\"pr-md-3\":\"header_pr-md-3__1iTwc\",\"px-md-3\":\"header_px-md-3__25JUS\",\"pb-md-3\":\"header_pb-md-3__3QQB1\",\"pl-md-3\":\"header_pl-md-3__2TOaa\",\"p-md-4\":\"header_p-md-4__3h8sk\",\"pt-md-4\":\"header_pt-md-4__CcHif\",\"py-md-4\":\"header_py-md-4__2T1-8\",\"pr-md-4\":\"header_pr-md-4__3dp_k\",\"px-md-4\":\"header_px-md-4__3oc6o\",\"pb-md-4\":\"header_pb-md-4__UrUny\",\"pl-md-4\":\"header_pl-md-4__1ki3H\",\"p-md-5\":\"header_p-md-5__YL-26\",\"pt-md-5\":\"header_pt-md-5__1gM5t\",\"py-md-5\":\"header_py-md-5__rzGGH\",\"pr-md-5\":\"header_pr-md-5__2dKEX\",\"px-md-5\":\"header_px-md-5__3eyj4\",\"pb-md-5\":\"header_pb-md-5__3pSWp\",\"pl-md-5\":\"header_pl-md-5__1UePb\",\"m-md-n1\":\"header_m-md-n1__3SnH4\",\"mt-md-n1\":\"header_mt-md-n1__b6wk6\",\"my-md-n1\":\"header_my-md-n1__WEf_y\",\"mr-md-n1\":\"header_mr-md-n1__qJqXx\",\"mx-md-n1\":\"header_mx-md-n1__2AWEI\",\"mb-md-n1\":\"header_mb-md-n1__16AnD\",\"ml-md-n1\":\"header_ml-md-n1__3i29q\",\"m-md-n2\":\"header_m-md-n2__1PDm6\",\"mt-md-n2\":\"header_mt-md-n2__t5sV7\",\"my-md-n2\":\"header_my-md-n2__1oyNG\",\"mr-md-n2\":\"header_mr-md-n2__9iDY3\",\"mx-md-n2\":\"header_mx-md-n2__K7-1A\",\"mb-md-n2\":\"header_mb-md-n2__2PSju\",\"ml-md-n2\":\"header_ml-md-n2__a8hEx\",\"m-md-n3\":\"header_m-md-n3__19H_e\",\"mt-md-n3\":\"header_mt-md-n3__17FMY\",\"my-md-n3\":\"header_my-md-n3__1qBhr\",\"mr-md-n3\":\"header_mr-md-n3__2doE_\",\"mx-md-n3\":\"header_mx-md-n3__jOwar\",\"mb-md-n3\":\"header_mb-md-n3__2bIDx\",\"ml-md-n3\":\"header_ml-md-n3__3ASrx\",\"m-md-n4\":\"header_m-md-n4__1SS24\",\"mt-md-n4\":\"header_mt-md-n4__2vVzG\",\"my-md-n4\":\"header_my-md-n4__13MXx\",\"mr-md-n4\":\"header_mr-md-n4__1UzWb\",\"mx-md-n4\":\"header_mx-md-n4__2dHtd\",\"mb-md-n4\":\"header_mb-md-n4__2WdS-\",\"ml-md-n4\":\"header_ml-md-n4__2nV-P\",\"m-md-n5\":\"header_m-md-n5__KT-A3\",\"mt-md-n5\":\"header_mt-md-n5__1lAIR\",\"my-md-n5\":\"header_my-md-n5__-_lBt\",\"mr-md-n5\":\"header_mr-md-n5__r14wk\",\"mx-md-n5\":\"header_mx-md-n5__36UL3\",\"mb-md-n5\":\"header_mb-md-n5__16Fhf\",\"ml-md-n5\":\"header_ml-md-n5__3XorD\",\"m-md-auto\":\"header_m-md-auto__1nEcb\",\"mt-md-auto\":\"header_mt-md-auto__LHmve\",\"my-md-auto\":\"header_my-md-auto__325bO\",\"mr-md-auto\":\"header_mr-md-auto__1lzZ2\",\"mx-md-auto\":\"header_mx-md-auto__3i4gQ\",\"mb-md-auto\":\"header_mb-md-auto__3YwG2\",\"ml-md-auto\":\"header_ml-md-auto__2hDY0\",\"m-lg-0\":\"header_m-lg-0__YZ6ED\",\"mt-lg-0\":\"header_mt-lg-0__3aHPG\",\"my-lg-0\":\"header_my-lg-0__tBnQM\",\"mr-lg-0\":\"header_mr-lg-0__3krbJ\",\"mx-lg-0\":\"header_mx-lg-0__1f-19\",\"mb-lg-0\":\"header_mb-lg-0__1FDDy\",\"ml-lg-0\":\"header_ml-lg-0__1DNn9\",\"m-lg-1\":\"header_m-lg-1__1Liom\",\"mt-lg-1\":\"header_mt-lg-1__2nqGb\",\"my-lg-1\":\"header_my-lg-1__3XzYv\",\"mr-lg-1\":\"header_mr-lg-1__1mrPp\",\"mx-lg-1\":\"header_mx-lg-1__2O3n_\",\"mb-lg-1\":\"header_mb-lg-1__v7ZHH\",\"ml-lg-1\":\"header_ml-lg-1__3Mpyo\",\"m-lg-2\":\"header_m-lg-2__3M7o1\",\"mt-lg-2\":\"header_mt-lg-2__35G_D\",\"my-lg-2\":\"header_my-lg-2__35X7u\",\"mr-lg-2\":\"header_mr-lg-2__3RlFW\",\"mx-lg-2\":\"header_mx-lg-2__1n989\",\"mb-lg-2\":\"header_mb-lg-2__3kG1v\",\"ml-lg-2\":\"header_ml-lg-2__1p8Nd\",\"m-lg-3\":\"header_m-lg-3__2dF30\",\"mt-lg-3\":\"header_mt-lg-3__dn5mi\",\"my-lg-3\":\"header_my-lg-3__3uaHr\",\"mr-lg-3\":\"header_mr-lg-3__2Hwnd\",\"mx-lg-3\":\"header_mx-lg-3__17bed\",\"mb-lg-3\":\"header_mb-lg-3__3lbDf\",\"ml-lg-3\":\"header_ml-lg-3__2Vfm1\",\"m-lg-4\":\"header_m-lg-4__2YeUK\",\"mt-lg-4\":\"header_mt-lg-4__3DDPj\",\"my-lg-4\":\"header_my-lg-4__9mV-f\",\"mr-lg-4\":\"header_mr-lg-4__1EhQZ\",\"mx-lg-4\":\"header_mx-lg-4__2ldir\",\"mb-lg-4\":\"header_mb-lg-4__pIhVh\",\"ml-lg-4\":\"header_ml-lg-4__3ZkUZ\",\"m-lg-5\":\"header_m-lg-5__2QEEt\",\"mt-lg-5\":\"header_mt-lg-5__37qCG\",\"my-lg-5\":\"header_my-lg-5__1sRJW\",\"mr-lg-5\":\"header_mr-lg-5__1gXsq\",\"mx-lg-5\":\"header_mx-lg-5__2Bs0e\",\"mb-lg-5\":\"header_mb-lg-5__3YtX6\",\"ml-lg-5\":\"header_ml-lg-5__1NRLt\",\"p-lg-0\":\"header_p-lg-0__3DpPw\",\"pt-lg-0\":\"header_pt-lg-0__2nnF9\",\"py-lg-0\":\"header_py-lg-0__-cUpr\",\"pr-lg-0\":\"header_pr-lg-0__qbAYF\",\"px-lg-0\":\"header_px-lg-0__2yyNw\",\"pb-lg-0\":\"header_pb-lg-0__2PsTo\",\"pl-lg-0\":\"header_pl-lg-0__kxGY6\",\"p-lg-1\":\"header_p-lg-1__2UJFU\",\"pt-lg-1\":\"header_pt-lg-1__3_hbj\",\"py-lg-1\":\"header_py-lg-1__2fCps\",\"pr-lg-1\":\"header_pr-lg-1__HATZo\",\"px-lg-1\":\"header_px-lg-1__dSwF0\",\"pb-lg-1\":\"header_pb-lg-1__3KMAo\",\"pl-lg-1\":\"header_pl-lg-1__1JPR0\",\"p-lg-2\":\"header_p-lg-2__37XQp\",\"pt-lg-2\":\"header_pt-lg-2__2yaWQ\",\"py-lg-2\":\"header_py-lg-2__2y91b\",\"pr-lg-2\":\"header_pr-lg-2__3Kmx5\",\"px-lg-2\":\"header_px-lg-2__1Ht4B\",\"pb-lg-2\":\"header_pb-lg-2__1jOTd\",\"pl-lg-2\":\"header_pl-lg-2__2HvOS\",\"p-lg-3\":\"header_p-lg-3__IQ7IT\",\"pt-lg-3\":\"header_pt-lg-3__32hMs\",\"py-lg-3\":\"header_py-lg-3__2K4pB\",\"pr-lg-3\":\"header_pr-lg-3__4Wms_\",\"px-lg-3\":\"header_px-lg-3__3qS57\",\"pb-lg-3\":\"header_pb-lg-3__1ldT_\",\"pl-lg-3\":\"header_pl-lg-3__2o1pU\",\"p-lg-4\":\"header_p-lg-4__23kdp\",\"pt-lg-4\":\"header_pt-lg-4__1B5Kg\",\"py-lg-4\":\"header_py-lg-4__3pj8O\",\"pr-lg-4\":\"header_pr-lg-4__3lcP_\",\"px-lg-4\":\"header_px-lg-4__1NOb-\",\"pb-lg-4\":\"header_pb-lg-4__SFE7O\",\"pl-lg-4\":\"header_pl-lg-4__2nFbh\",\"p-lg-5\":\"header_p-lg-5__1ds2T\",\"pt-lg-5\":\"header_pt-lg-5__2FLOV\",\"py-lg-5\":\"header_py-lg-5__3TnsW\",\"pr-lg-5\":\"header_pr-lg-5__1kc0p\",\"px-lg-5\":\"header_px-lg-5__3Ok_R\",\"pb-lg-5\":\"header_pb-lg-5__1H-qE\",\"pl-lg-5\":\"header_pl-lg-5__1B0Cp\",\"m-lg-n1\":\"header_m-lg-n1__12apP\",\"mt-lg-n1\":\"header_mt-lg-n1__2hGYd\",\"my-lg-n1\":\"header_my-lg-n1__3pns-\",\"mr-lg-n1\":\"header_mr-lg-n1__1N_GC\",\"mx-lg-n1\":\"header_mx-lg-n1__20Q6s\",\"mb-lg-n1\":\"header_mb-lg-n1__2fayS\",\"ml-lg-n1\":\"header_ml-lg-n1__19iev\",\"m-lg-n2\":\"header_m-lg-n2__1ICWM\",\"mt-lg-n2\":\"header_mt-lg-n2__1EM42\",\"my-lg-n2\":\"header_my-lg-n2__1Gtyv\",\"mr-lg-n2\":\"header_mr-lg-n2__Vx_NN\",\"mx-lg-n2\":\"header_mx-lg-n2__26BRg\",\"mb-lg-n2\":\"header_mb-lg-n2__cbnZ_\",\"ml-lg-n2\":\"header_ml-lg-n2__2RP5M\",\"m-lg-n3\":\"header_m-lg-n3__22J6x\",\"mt-lg-n3\":\"header_mt-lg-n3__29W4s\",\"my-lg-n3\":\"header_my-lg-n3__313QN\",\"mr-lg-n3\":\"header_mr-lg-n3__3gNdj\",\"mx-lg-n3\":\"header_mx-lg-n3__i4a9a\",\"mb-lg-n3\":\"header_mb-lg-n3__3DFUr\",\"ml-lg-n3\":\"header_ml-lg-n3__1FGEl\",\"m-lg-n4\":\"header_m-lg-n4__pFYTc\",\"mt-lg-n4\":\"header_mt-lg-n4__2fdO3\",\"my-lg-n4\":\"header_my-lg-n4__vqIkR\",\"mr-lg-n4\":\"header_mr-lg-n4__3pHKb\",\"mx-lg-n4\":\"header_mx-lg-n4__2Npji\",\"mb-lg-n4\":\"header_mb-lg-n4__3LQHa\",\"ml-lg-n4\":\"header_ml-lg-n4__WQY7O\",\"m-lg-n5\":\"header_m-lg-n5__3xn5S\",\"mt-lg-n5\":\"header_mt-lg-n5__1vv9b\",\"my-lg-n5\":\"header_my-lg-n5__3hGGV\",\"mr-lg-n5\":\"header_mr-lg-n5__t4lJX\",\"mx-lg-n5\":\"header_mx-lg-n5__D_ER2\",\"mb-lg-n5\":\"header_mb-lg-n5__12gwR\",\"ml-lg-n5\":\"header_ml-lg-n5__2UfSU\",\"m-lg-auto\":\"header_m-lg-auto__38tA-\",\"mt-lg-auto\":\"header_mt-lg-auto__yK5Q2\",\"my-lg-auto\":\"header_my-lg-auto__3HgYh\",\"mr-lg-auto\":\"header_mr-lg-auto__16CW9\",\"mx-lg-auto\":\"header_mx-lg-auto__2WjlL\",\"mb-lg-auto\":\"header_mb-lg-auto__3iRGu\",\"ml-lg-auto\":\"header_ml-lg-auto__1Obzu\",\"m-xl-0\":\"header_m-xl-0__v6JSx\",\"mt-xl-0\":\"header_mt-xl-0__2e8GI\",\"my-xl-0\":\"header_my-xl-0__2Bpum\",\"mr-xl-0\":\"header_mr-xl-0__1i1wp\",\"mx-xl-0\":\"header_mx-xl-0__LzGJi\",\"mb-xl-0\":\"header_mb-xl-0__Of5xP\",\"ml-xl-0\":\"header_ml-xl-0__1sFjQ\",\"m-xl-1\":\"header_m-xl-1__1BmTI\",\"mt-xl-1\":\"header_mt-xl-1__16OgX\",\"my-xl-1\":\"header_my-xl-1__3M82k\",\"mr-xl-1\":\"header_mr-xl-1__2vTLM\",\"mx-xl-1\":\"header_mx-xl-1__3YxUS\",\"mb-xl-1\":\"header_mb-xl-1__tjFVX\",\"ml-xl-1\":\"header_ml-xl-1__3k5zJ\",\"m-xl-2\":\"header_m-xl-2__1-Jpk\",\"mt-xl-2\":\"header_mt-xl-2__2tuJK\",\"my-xl-2\":\"header_my-xl-2__1FU8F\",\"mr-xl-2\":\"header_mr-xl-2__YAPNd\",\"mx-xl-2\":\"header_mx-xl-2__ygX4-\",\"mb-xl-2\":\"header_mb-xl-2__f4r5Z\",\"ml-xl-2\":\"header_ml-xl-2__3Zqwu\",\"m-xl-3\":\"header_m-xl-3__3prKG\",\"mt-xl-3\":\"header_mt-xl-3__1IXaa\",\"my-xl-3\":\"header_my-xl-3__1wsAI\",\"mr-xl-3\":\"header_mr-xl-3__2YPhv\",\"mx-xl-3\":\"header_mx-xl-3__33hW4\",\"mb-xl-3\":\"header_mb-xl-3__1fLGu\",\"ml-xl-3\":\"header_ml-xl-3__19Yio\",\"m-xl-4\":\"header_m-xl-4__3AtgN\",\"mt-xl-4\":\"header_mt-xl-4__1tlih\",\"my-xl-4\":\"header_my-xl-4__2pUbp\",\"mr-xl-4\":\"header_mr-xl-4__2niq0\",\"mx-xl-4\":\"header_mx-xl-4__3n5eI\",\"mb-xl-4\":\"header_mb-xl-4__286GJ\",\"ml-xl-4\":\"header_ml-xl-4__22iJe\",\"m-xl-5\":\"header_m-xl-5__1JFQU\",\"mt-xl-5\":\"header_mt-xl-5__QZiQH\",\"my-xl-5\":\"header_my-xl-5__3QoeY\",\"mr-xl-5\":\"header_mr-xl-5__13DW8\",\"mx-xl-5\":\"header_mx-xl-5__106iU\",\"mb-xl-5\":\"header_mb-xl-5__1V2NH\",\"ml-xl-5\":\"header_ml-xl-5__36Wv5\",\"p-xl-0\":\"header_p-xl-0__15_73\",\"pt-xl-0\":\"header_pt-xl-0__2UxGQ\",\"py-xl-0\":\"header_py-xl-0__k4isc\",\"pr-xl-0\":\"header_pr-xl-0__1jGLu\",\"px-xl-0\":\"header_px-xl-0__1_5k-\",\"pb-xl-0\":\"header_pb-xl-0__15vJM\",\"pl-xl-0\":\"header_pl-xl-0__176KF\",\"p-xl-1\":\"header_p-xl-1__J2-TI\",\"pt-xl-1\":\"header_pt-xl-1__GjqGT\",\"py-xl-1\":\"header_py-xl-1__2Orfw\",\"pr-xl-1\":\"header_pr-xl-1__2g-CV\",\"px-xl-1\":\"header_px-xl-1__3vy-E\",\"pb-xl-1\":\"header_pb-xl-1__1kMcZ\",\"pl-xl-1\":\"header_pl-xl-1__SwUdD\",\"p-xl-2\":\"header_p-xl-2__2avRq\",\"pt-xl-2\":\"header_pt-xl-2__ruDB9\",\"py-xl-2\":\"header_py-xl-2__3l4p5\",\"pr-xl-2\":\"header_pr-xl-2__6TPUk\",\"px-xl-2\":\"header_px-xl-2__1Zcra\",\"pb-xl-2\":\"header_pb-xl-2__3imNn\",\"pl-xl-2\":\"header_pl-xl-2__2MiFx\",\"p-xl-3\":\"header_p-xl-3__3jvd8\",\"pt-xl-3\":\"header_pt-xl-3__35_rF\",\"py-xl-3\":\"header_py-xl-3__1UYqB\",\"pr-xl-3\":\"header_pr-xl-3__1laxS\",\"px-xl-3\":\"header_px-xl-3__1iamY\",\"pb-xl-3\":\"header_pb-xl-3__3ZwFz\",\"pl-xl-3\":\"header_pl-xl-3__H1zG_\",\"p-xl-4\":\"header_p-xl-4__3bFNs\",\"pt-xl-4\":\"header_pt-xl-4__tyTW3\",\"py-xl-4\":\"header_py-xl-4__3tXGu\",\"pr-xl-4\":\"header_pr-xl-4__2Mmtm\",\"px-xl-4\":\"header_px-xl-4__3X3CC\",\"pb-xl-4\":\"header_pb-xl-4__qXNYp\",\"pl-xl-4\":\"header_pl-xl-4__1j55I\",\"p-xl-5\":\"header_p-xl-5__fGRFy\",\"pt-xl-5\":\"header_pt-xl-5__1RYqW\",\"py-xl-5\":\"header_py-xl-5__2C2Ss\",\"pr-xl-5\":\"header_pr-xl-5__3_QnS\",\"px-xl-5\":\"header_px-xl-5__2hev6\",\"pb-xl-5\":\"header_pb-xl-5__2GlFh\",\"pl-xl-5\":\"header_pl-xl-5__1cvyr\",\"m-xl-n1\":\"header_m-xl-n1__o9dP6\",\"mt-xl-n1\":\"header_mt-xl-n1__glGBf\",\"my-xl-n1\":\"header_my-xl-n1__squiS\",\"mr-xl-n1\":\"header_mr-xl-n1__2izNn\",\"mx-xl-n1\":\"header_mx-xl-n1__1LwFL\",\"mb-xl-n1\":\"header_mb-xl-n1__3Dk7R\",\"ml-xl-n1\":\"header_ml-xl-n1__3Ejh6\",\"m-xl-n2\":\"header_m-xl-n2__3dAcT\",\"mt-xl-n2\":\"header_mt-xl-n2__2J98i\",\"my-xl-n2\":\"header_my-xl-n2__eBVBU\",\"mr-xl-n2\":\"header_mr-xl-n2__1nvTt\",\"mx-xl-n2\":\"header_mx-xl-n2__ogzFs\",\"mb-xl-n2\":\"header_mb-xl-n2__3n_Wl\",\"ml-xl-n2\":\"header_ml-xl-n2__1LfiY\",\"m-xl-n3\":\"header_m-xl-n3__wj1k4\",\"mt-xl-n3\":\"header_mt-xl-n3__3yYhk\",\"my-xl-n3\":\"header_my-xl-n3__1ZH2i\",\"mr-xl-n3\":\"header_mr-xl-n3__1ckRq\",\"mx-xl-n3\":\"header_mx-xl-n3__1HH5-\",\"mb-xl-n3\":\"header_mb-xl-n3__3-p2H\",\"ml-xl-n3\":\"header_ml-xl-n3__1iY6V\",\"m-xl-n4\":\"header_m-xl-n4__Ku_WI\",\"mt-xl-n4\":\"header_mt-xl-n4__3kuzq\",\"my-xl-n4\":\"header_my-xl-n4__3xkOq\",\"mr-xl-n4\":\"header_mr-xl-n4__1z0ZH\",\"mx-xl-n4\":\"header_mx-xl-n4__3gMqi\",\"mb-xl-n4\":\"header_mb-xl-n4__3wyQV\",\"ml-xl-n4\":\"header_ml-xl-n4__398-r\",\"m-xl-n5\":\"header_m-xl-n5__2huyO\",\"mt-xl-n5\":\"header_mt-xl-n5__24_Nr\",\"my-xl-n5\":\"header_my-xl-n5__BIocv\",\"mr-xl-n5\":\"header_mr-xl-n5__3gaLn\",\"mx-xl-n5\":\"header_mx-xl-n5__13XP5\",\"mb-xl-n5\":\"header_mb-xl-n5__2X5ww\",\"ml-xl-n5\":\"header_ml-xl-n5__2_gXu\",\"m-xl-auto\":\"header_m-xl-auto__4H28C\",\"mt-xl-auto\":\"header_mt-xl-auto__2vPxO\",\"my-xl-auto\":\"header_my-xl-auto__2cASd\",\"mr-xl-auto\":\"header_mr-xl-auto__1wcOA\",\"mx-xl-auto\":\"header_mx-xl-auto__1TeHr\",\"mb-xl-auto\":\"header_mb-xl-auto__ngxjd\",\"ml-xl-auto\":\"header_ml-xl-auto__3C-td\",\"gradient-bg5\":\"header_gradient-bg5__pwixL\",\"nav\":\"header_nav__3RlcK\",\"nav-link\":\"header_nav-link__39dm_\",\"disabled\":\"header_disabled__yH3Fs\",\"nav-tabs\":\"header_nav-tabs__2kvb0\",\"active\":\"header_active__2L2Uh\",\"nav-item\":\"header_nav-item__ccCkX\",\"show\":\"header_show__3XPCE\",\"dropdown-menu\":\"header_dropdown-menu__1yuls\",\"nav-pills\":\"header_nav-pills__3oQrl\",\"nav-fill\":\"header_nav-fill__2rQJv\",\"nav-justified\":\"header_nav-justified__18Mcz\",\"tab-content\":\"header_tab-content__1AihG\",\"tab-pane\":\"header_tab-pane__2aGAk\",\"proLink\":\"header_proLink__PXQKY\",\"navDivider\":\"header_navDivider__38JPa\",\"hamburger\":\"header_hamburger__Y0jqs\",\"post\":\"header_post__1mxbV\",\"navLink\":\"header_navLink__HeNlQ\",\"mobileNavLink\":\"header_mobileNavLink__3Lgjr\",\"tranformGlyph45\":\"header_tranformGlyph45__1fs6m\",\"impersonating\":\"header_impersonating__17PzR\",\"authed\":\"header_authed__mihmJ\",\"joinBtn\":\"header_joinBtn__3_ay8\"};"],"sourceRoot":""}