{"version":3,"file":"index-12e3137b.js","sources":["../src/assets/activity_top_bg.png","../src/pages/activities/ticket/TicketPage.jsx","../src/components/activity/Activities.jsx","../src/components/activity/ActivitiesFilter.jsx","../src/pages/activities/ticket/SearchPage.jsx","../src/assets/activity_top_bg_2.png","../src/pages/activities/demo/DemoPage.jsx","../src/hooks/activity/useActivityEffectPricing.js","../src/pages/activities/ActivityDetailsPage.jsx","../src/pages/activities/TransfersPage.jsx","../src/pages/activities/DomesticPage/index.jsx","../src/pages/activities/index.jsx"],"sourcesContent":["export default \"__VITE_ASSET__fcaf0770__\"","import React from 'react';\nimport * as config from '@config';\nimport styles from '@styles/TicketPage.module.css';\nimport SelectorsForm from '@components/SelectorsForm';\nimport { Link, useNavigate, useSearchParams } from 'react-router-dom';\nimport { ActivityHotTagOptions, SelectorParser, Selector } from '@utils/constants';\nimport TopHeaderBg from '@assets/activity_top_bg.png';\n\nfunction TicketPage() {\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n\n const handleSearch = () => {\n const params = new URLSearchParams(searchParams);\n navigate(`search?${params.toString()}`);\n };\n\n return (\n
\n
\n \n
\n
个性化的体验,有目的地旅行
\n
\n
\n
\n
\n \n
\n\n
热门城市
\n
\n {[\n { selector: Selector.Sydney },\n { selector: Selector.Melbourne },\n { selector: Selector.Brisbane },\n { selector: Selector.GoldCoast },\n { selector: Selector.Perth },\n { selector: Selector.Cairns },\n { selector: Selector.Adelaide },\n { selector: Selector.Canberra },\n ].map((item, index) => {\n return (\n
\n \n
\n \n
{SelectorParser(item.selector)}
\n
\n );\n })}\n
\n \n \n );\n}\n\nexport default TicketPage;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from '@styles/SearchLayout.module.css';\nimport { DestinationName } from '@utils/constants';\nimport ActivitiesGrid from './ActivitiesGrid';\nimport { useSearchParams } from 'react-router-dom';\nimport { Result } from 'antd';\n\nfunction Activities({ activities = [], filterElement, priceSorting = true, loaded = true }) {\n const [searchParams, setSearchParams] = useSearchParams();\n const [title, setTitle] = useState('');\n const selectRef = useRef();\n\n useEffect(() => {\n const params = new URLSearchParams(searchParams);\n const selector = params.get('selector') || '';\n const sort = params.get('sort') || '';\n setTitle(DestinationName(selector));\n if (!!selectRef.current) {\n selectRef.current.value = sort;\n }\n }, [searchParams]);\n\n const handleOnChangeFilter = (e) => {\n const name = e.target.getAttribute('name');\n let value = e.target.getAttribute('value');\n // workaround select tag\n if (!!value == false) {\n value = e.target.value;\n }\n // console.log({ [name]: value });\n const params = new URLSearchParams(searchParams);\n switch (name) {\n case 'sort':\n if (value) {\n params.set('sort', value);\n } else {\n params.delete('sort');\n }\n setSearchParams(params, { replace: true });\n default:\n break;\n }\n };\n\n const Content = () => {\n if (loaded) {\n if (activities?.length > 0) {\n return (\n
\n \n
\n );\n } else {\n return 未找到活动体验,请尝试其他搜索条件

} />;\n }\n } else {\n return
Loading...
;\n }\n };\n\n return (\n
\n {priceSorting && (\n
\n
{title}
\n
\n \n
\n
\n )}\n
\n {!!filterElement &&
{filterElement}
}\n
\n \n
\n
\n
\n );\n}\n\nActivities.propTypes = {\n activities: PropTypes.array.isRequired,\n filterElement: PropTypes.element,\n priceSorting: PropTypes.bool,\n loaded: PropTypes.bool,\n};\n\nexport default Activities;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from '@styles/FilterLayout.module.css';\nimport { useSearchParams } from 'react-router-dom';\nimport { Selector } from '@utils/constants';\nimport { SelectorParser, ActivityDuration, ActivityDurationParse } from '../../utils/constants';\n\nexport const K_Kinds = 'kinds';\nexport const K_Durations = 'durations';\nexport const K_Recommendations = 'recommendations';\n\nexport const FilterConstants = {\n Duration: {\n ...ActivityDuration,\n },\n Family: 'family',\n Kind: {\n Ticket: 'ticket', //门票\n // Team: Selector.Team,\n // Car: Selector.Cars,\n // Package: Selector.Package,\n // Transfers: Selector.Transfers,\n Others: Selector.OtherExperience, //其他体验\n },\n};\n\n//`replace`: replace link stack\nfunction ActivitiesFilter({ replace = true, sticky = true }) {\n const [kinds, setKinds] = useState([]);\n const [recommendations, setRecommendations] = useState([]);\n const [durations, setDurations] = useState([]);\n const [searchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n const params = new URLSearchParams(searchParams);\n const kinds = params.getAll(K_Kinds) || [];\n const durations = params.getAll(K_Durations) || [];\n const recommendations = params.getAll(K_Recommendations) || [];\n setKinds(kinds);\n setDurations(durations);\n setRecommendations(recommendations);\n }, [searchParams]);\n\n const handleOnChangeFilter = (e, k) => {\n if (!k) {\n console.error('Empty key');\n return;\n }\n const name = e.target.getAttribute('name');\n let value = e.target.getAttribute('value');\n // workaround select tag\n if (!!value == false) {\n value = e.target.value;\n }\n // console.log({ [name]: value });\n const params = new URLSearchParams(searchParams);\n const filters = params.getAll(k) || [];\n if (filters.includes(value)) {\n params.delete(k);\n } else {\n params.set(k, value);\n }\n setSearchParams(params, { replace: replace });\n };\n\n return (\n
\n {/*
\n
分类
\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Ticket)}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Team)}\n />\n \n
\n
\n\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Package)}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Others)}\n />\n \n
\n
\n
*/}\n
\n
推荐
\n
\n
\n handleOnChangeFilter(e, K_Recommendations)}\n checked={recommendations.includes(FilterConstants.Family)}\n />\n \n
\n
\n
\n
\n
活动时长
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.LessOneHour.toString())}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.OneToFourHour.toString())}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.FourToOneDay.toString())}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.MoreThanOneDay.toString())}\n />\n \n
\n
\n
\n
\n );\n}\n\nActivitiesFilter.propTypes = {\n replace: PropTypes.bool,\n sticky: PropTypes.bool,\n};\n\nexport default ActivitiesFilter;\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport styles from '@styles/SearchPage.module.css';\nimport SelectorsForm from '@components/SelectorsForm';\nimport { Loader } from 'semantic-ui-react';\nimport { useLocation, useSearchParams } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Selector } from '@utils/constants';\nimport Activities from '@components/activity/Activities';\nimport ActivitiesFilter, { K_Kinds, K_Durations, K_Recommendations } from '@components/activity/ActivitiesFilter';\nimport BackBar from '@components/BackBar';\nimport { RestoreScrollPosition, StoreScrollPosition } from '@utils/scrollPosition';\n\nexport function SearchPage() {\n const location = useLocation();\n const [data, setData] = useState([]);\n const [loaded, setLoaded] = useState(false);\n const activities = useSelector((state) => state.activities.data);\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n\n useLayoutEffect(() => {\n return () => {\n StoreScrollPosition(location.pathname + location.search);\n };\n }, []);\n\n useEffect(() => {\n RestoreScrollPosition(location.pathname + location.search);\n }, [data]);\n\n useEffect(() => {\n filterActivities();\n }, [searchParams, fetching]);\n\n const filterActivities = () => {\n setLoaded(false);\n const params = new URLSearchParams(searchParams);\n let selector = params.get('selector') ?? '';\n let text = params.get('text') ?? '';\n if (selector == 'all') {\n selector = '';\n }\n const sort = params.get('sort');\n let newData = [...activities];\n // city\n if (selector) {\n newData = newData.filter((item) => {\n if (item.selectors?.includes(selector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == selector).sort;\n const sortB = b.selectorItems.find((item) => item.name == selector).sort;\n return sortA - sortB;\n });\n }\n // filter out transfers\n newData = newData.filter((item) => {\n if (!item.selectors?.includes(Selector.Transfers)) {\n return true;\n }\n });\n\n // filter kinds\n let kinds = params.getAll(K_Kinds) ?? [];\n if (kinds.length != 0) {\n if (kinds.length == 1 && kinds[0] == 'ticket') {\n newData = newData.filter((item) => {\n if (\n !item.selectors?.includes(Selector.Cars) &&\n !item.selectors?.includes(Selector.Cruises) &&\n !item.selectors?.includes(Selector.Team) &&\n !item.selectors?.includes(Selector.Package) &&\n !item.selectors?.includes(Selector.OtherExperience)\n ) {\n return true;\n }\n });\n } else {\n newData = newData.filter((item) => {\n for (let filter of kinds) {\n if (item.selectors?.includes(filter)) {\n return true;\n }\n }\n });\n }\n }\n // filter recommendations\n let recommendations = params.getAll(K_Recommendations) ?? [];\n if (recommendations.length != 0) {\n if (recommendations.includes('family')) {\n newData = newData.filter((item) => {\n if (!!item?.pricing?.hasFamilyPlan) {\n return true;\n }\n });\n }\n }\n // filter duration\n let durations = params.getAll(K_Durations) ?? [];\n if (durations.length != 0) {\n newData = newData.filter((item) => {\n if (durations.includes(item?.duration?.toString())) {\n return true;\n }\n });\n }\n\n if (text) {\n newData = newData.filter((item) => {\n if (\n item.name?.toLowerCase().includes(text.toLowerCase()) ||\n item.nameEN?.toLowerCase().includes(text.toLowerCase())\n ) {\n return true;\n }\n });\n }\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n setLoaded(true);\n };\n\n return (\n
\n \n
\n \n
\n
\n \n } />\n
\n
\n );\n}\n","export default \"__VITE_ASSET__0ef53d2f__\"","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useEffect } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { useState } from 'react';\nimport Activities from '@components/activity/Activities';\nimport styles from '@styles/DemoPage.module.css';\nimport TopHeaderBg from '@assets/activity_top_bg_2.png';\n\nfunction DemoPage({ title, fixedSelector }) {\n const [data, setData] = useState([]);\n const [loaded, setLoaded] = useState(false);\n const activities = useSelector((state) => state.activities.data);\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n filterActivities();\n }, [fetching, fixedSelector]);\n\n const filterActivities = () => {\n setLoaded(false);\n const params = new URLSearchParams(searchParams);\n const sort = params.get('sort');\n let newData = [...activities];\n // Fixed selector\n newData = activities.filter((item) => {\n if (item.selectors?.includes(fixedSelector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == fixedSelector).sort;\n const sortB = b.selectorItems.find((item) => item.name == fixedSelector).sort;\n return sortA - sortB;\n });\n\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n setLoaded(true);\n };\n\n return (\n
\n
\n \n
\n
{title}
\n
\n
\n
\n {}} priceSorting={false} />\n
\n
\n );\n}\n\nDemoPage.propTypes = {\n title: PropTypes.string,\n fixedSelector: PropTypes.string.isRequired,\n};\n\nexport default DemoPage;\n","import { useState, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { GetToken } from '@utils/storage';\nimport * as config from '@config';\n\nfunction useActivityEffectPricing() {\n const [fetching, setFetching] = useState(false);\n const [data, setData] = useState({});\n\n const abortControllerRef = useRef(null);\n\n const fetchEffectPricing = useCallback(async ({ activityID = '', segmentID = '', variantID = '' }) => {\n abortControllerRef.current = new AbortController();\n setFetching(true);\n const req = {\n activityID: activityID,\n segmentID: segmentID,\n variantID: variantID,\n };\n try {\n const response = await fetch(`${config.apiURL}/activity/effect-pricing`, {\n method: 'POST',\n body: JSON.stringify(req),\n headers: { Authorization: `Bearer ${GetToken()}` },\n signal: abortControllerRef.current.signal,\n });\n if (!response.ok) {\n const data = await response.json();\n throw new Error(data.error || 'An error occurred while fetch an effective pricing');\n }\n const data = await response.json();\n // console.log('Effective pricing fetched:', data);\n setData(data);\n return data;\n } catch (error) {\n if (error.name === 'AbortError') {\n console.log('Request was aborted');\n throw new Error('Request was aborted');\n } else {\n console.error('Error fetching an effective pricing:', error);\n }\n throw error;\n } finally {\n setFetching(false);\n }\n }, []);\n\n const abort = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n }, []);\n\n return { fetching, data, fetchEffectPricing, abort };\n}\n\nuseActivityEffectPricing.propTypes = {};\n\nexport default useActivityEffectPricing;\n","import React, { useState, useEffect } from 'react';\nimport { Typography, Descriptions, Card, Row, Col, Select, Spin, Alert, Grid, Image, Button, App } from 'antd';\nimport { ActivityDurationParse } from '@utils/constants';\nimport styles from '@styles/ActivityDetailsPage.module.css';\nimport useActivity from '../../hooks/activity/useActivity';\nimport { useParams } from 'react-router';\nimport BackBar from '@components/BackBar';\nimport * as config from '@config';\nimport { useCart } from '../../contexts/CartContext';\nimport useActivityEffectPricing from '../../hooks/activity/useActivityEffectPricing';\nimport useLoginUser from '../../hooks/useLoginUser';\nimport { TeamOutlined } from '@ant-design/icons';\nimport ActivityDetails from '@components/activity/ActivityDetails';\n\nconst { Title, Paragraph } = Typography;\nconst { useBreakpoint } = Grid;\n\nconst ActivityDetailsPage = () => {\n const { id } = useParams();\n const { addToCart } = useCart();\n const {\n data: { activity, commission },\n fetching: loading,\n fetchActivity,\n } = useActivity();\n const {\n fetching,\n data: { effectPricing = {} },\n fetchEffectPricing,\n } = useActivityEffectPricing();\n\n const { userInfo } = useLoginUser();\n const { message } = App.useApp();\n\n const [selectedVariant, setSelectedVariant] = useState(null);\n const [selectedSegment, setSelectedSegment] = useState(null);\n const [error, setError] = useState(null);\n const screens = useBreakpoint();\n\n useEffect(() => {\n fetchActivity(id).catch((error) => {\n setError('Some data is missing. Please try again later.');\n console.error('Error fetching activity:', error);\n });\n }, [id]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n fetchEffectPricing({\n activityID: id,\n segmentID: selectedSegment?.id,\n variantID: selectedVariant?.id,\n })\n .then((data) => {\n if (Object.keys(effectPricing).length !== 0) {\n message?.success('价格已更新');\n }\n })\n .catch((error) => {\n message?.error('价格更新失败');\n console.error('Error fetching effective pricing:', error);\n });\n }, [selectedVariant, selectedSegment, id]);\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return ;\n }\n\n if (!activity) {\n return ;\n }\n\n const {\n name,\n nameEN,\n tourCode,\n content,\n information,\n duration,\n variants,\n segmentOptions: segments,\n address,\n } = activity;\n\n // console.log('Activity:', activity);\n\n const handleVariantChange = (variantId, opt) => {\n const variant = variants.find((v) => v.id === opt.id);\n setSelectedVariant(variant || null);\n };\n\n const handleSegmentChange = (segmentId, opt) => {\n const segment = segments.find((v) => v.id === opt.id);\n setSelectedSegment(segment || null);\n };\n\n const handleAddToCart = () => {\n const req = {\n activityID: id,\n variantID: selectedVariant?.id || '',\n segmentID: selectedSegment?.id || '',\n };\n addToCart(req)\n .then((data) => {\n const { reply } = data;\n if (reply) {\n message?.success(reply);\n } else {\n message?.success('Added to cart');\n }\n })\n .catch((error) => {\n console.error('Erro to cart:', error);\n });\n };\n\n // const renderCommission = () => {\n // return (\n // <>\n // 佣金:\n // {!!commission.ratio\n // ? `${Precentage(commission.ratio)}%`\n // : `${Precentage(userInfo?.agency?.defaultCommission)}%`}\n // {!!commission.constant && `+A$${commission.constant}`}\n // \n // );\n // };\n\n const renderPricing = () => {\n if (activity.demo) {\n return null;\n }\n let variantOptions = [];\n if (variants) {\n variantOptions = variants.map((variant) => ({\n ...variant,\n key: variant.id,\n value: variant.id,\n label: variant.nameZH,\n labelEN: variant.nameEN,\n }));\n }\n let segmentOptions = [];\n if (segments) {\n segmentOptions = segments.map((segment) => ({\n key: segment.id,\n value: segment.id,\n label: segment.value,\n }));\n }\n\n return (\n \n {variantOptions.length > 0 && (\n {\n return (\n
\n \n {option.data.nameZH}\n \n \n {option.data.description}\n \n
\n );\n }}\n />\n )}\n {segmentOptions.length > 0 && (\n \n )}\n \n {effectPricing.bundlePriced && (\n \n ${effectPricing.bundlePrice}\n \n )}\n {!effectPricing.bundlePriced && (\n <>\n \n ${effectPricing.adultPrice}\n \n \n ${effectPricing.childPrice}\n \n \n )}\n {effectPricing.hasFamilyPlan && (\n \n 家庭套票 ({effectPricing.familyAdultNum} 成人 +{' '}\n {effectPricing.familyChildNum} 儿童)\n \n }\n >\n ${effectPricing.familyPrice}\n \n )}\n \n \n
\n );\n };\n\n const renderDuration = () => {\n if (!duration) {\n return null;\n }\n return (\n \n \n {ActivityDurationParse(duration) || 'N/A'}\n \n \n );\n };\n\n const renderAddress = () => {\n if (!address) {\n return null;\n }\n return (\n \n \n {address || 'N/A'}\n \n \n );\n };\n\n const renderPhotoGrid = () => {\n if (!activity.photos || activity.photos.length === 0) {\n console.log('No photos');\n return null;\n }\n\n return (\n \n \n {activity.photos.map((photo, index) => (\n \n
\n \n
\n \n ))}\n
\n
\n );\n };\n\n return (\n
\n \n {name || 'Untitled Activity'}\n \n {nameEN} {tourCode && `- Tour Code: ${tourCode}`}\n \n\n
\n
\n \n
\n
\n {renderPricing()}\n {/* {renderAddress()} */}\n {renderDuration()}\n
{renderPhotoGrid()}
\n
\n
\n
\n );\n};\n\nexport default ActivityDetailsPage;\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport styles from '@styles/TransfersPage.module.css';\nimport TopHeaderBg from '@assets/activity_top_bg_2.png';\nimport { useSelector } from 'react-redux';\nimport { createSelector } from '@reduxjs/toolkit';\nimport { useLocation } from 'react-router-dom';\nimport { RestoreScrollPosition, StoreScrollPosition } from '@utils/scrollPosition';\nimport { Selector, SelectorParser } from '../../utils/constants';\nimport { useSearchParams } from 'react-router-dom';\nimport Activities from '@components/activity/Activities';\nimport { Checkbox } from 'antd';\n\nconst cities = [\n Selector.Sydney,\n Selector.Melbourne,\n Selector.Brisbane,\n Selector.GoldCoast,\n Selector.Cairns,\n Selector.Adelaide,\n Selector.Perth,\n Selector.Tasmania,\n Selector.HamiltonIsland,\n Selector.Uluru,\n Selector.Darwin,\n Selector.Auckland,\n Selector.NewZealand,\n Selector.OtherCity,\n];\n\nfunction TransfersPage() {\n const location = useLocation();\n const [data, setData] = useState([]);\n const [loaded, setLoaded] = useState(false);\n const selectorData = (state) => state.activities.data;\n const filterHiden = createSelector(selectorData, (items) => items?.filter((item) => item.hidden == false));\n const activities = useSelector((state) => {\n return filterHiden(state);\n });\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n const params = new URLSearchParams(searchParams);\n let initCity = params.get('city') ?? '';\n const [citySelector, setCitySelector] = useState(initCity);\n\n useEffect(() => {\n filterTransfers();\n }, [searchParams, fetching]);\n\n useLayoutEffect(() => {\n return () => {\n StoreScrollPosition(location.pathname + location.search);\n };\n }, []);\n\n useEffect(() => {\n RestoreScrollPosition(location.pathname + location.search);\n }, [data]);\n\n const filterTransfers = () => {\n setLoaded(false);\n const params = new URLSearchParams(searchParams);\n const sort = params.get('sort');\n let newData = [...activities];\n // city\n if (citySelector) {\n console.log('citySelector', citySelector);\n newData = newData.filter((item) => {\n if (item.selectors?.includes(citySelector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == citySelector).sort;\n const sortB = b.selectorItems.find((item) => item.name == citySelector).sort;\n return sortA - sortB;\n });\n }\n\n // filter kind\n const fixedSelector = Selector.Transfers;\n newData = newData.filter((item) => {\n if (item.selectors?.includes(fixedSelector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == fixedSelector).sort;\n const sortB = b.selectorItems.find((item) => item.name == fixedSelector).sort;\n return sortA - sortB;\n });\n\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n setLoaded(true);\n };\n\n const handleCityChecked = (value) => {\n setCitySelector((prev) => {\n return prev == value ? null : value;\n });\n const params = new URLSearchParams(searchParams);\n params.set('city', value);\n setSearchParams(params);\n };\n\n const Filter = () => {\n return (\n
\n {[...cities].map((item, index) => {\n return (\n
\n handleCityChecked(item)}>\n {SelectorParser(item)}\n \n
\n );\n })}\n
\n );\n };\n\n return (\n
\n
\n \n
\n
\n 机场接送 节省 50% 车费 \n
\n
\n
\n
\n
{citySelector ? SelectorParser(citySelector) : '全部'}
\n } priceSorting={false} />\n
\n
\n );\n}\n\nexport default TransfersPage;\n","import React, { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Selector } from '@utils/constants';\nimport { useSearchParams } from 'react-router-dom';\nimport ActivitiesGrid from '@components/activity/ActivitiesGrid';\nimport styles from './styles.module.css';\nimport { SelectorParser } from '@utils/constants';\n\nconst CityOptions = [\n { name: '悉尼', value: Selector.Sydney },\n { name: '悉尼周边', value: Selector.NSW },\n { name: '墨尔本', value: Selector.Melbourne },\n { name: '墨尔本周边', value: Selector.VIC },\n { name: '布里斯班', value: Selector.Brisbane },\n { name: '布里斯班周边', value: Selector.QLD },\n { name: '黄金海岸', value: Selector.GoldCoast },\n { name: '凯恩斯', value: Selector.Cairns },\n { name: '阿德莱德', value: Selector.Adelaide },\n { name: '阿德莱德周边', value: Selector.SA },\n { name: '佩斯', value: Selector.Perth },\n { name: '佩斯周边', value: Selector.WA },\n { name: '堪培拉', value: Selector.Canberra },\n { name: '塔斯马尼亚', value: Selector.Tasmania },\n { name: '汉密尔顿岛', value: Selector.HamiltonIsland },\n { name: '乌鲁鲁', value: Selector.Uluru },\n { name: '达尔文', value: Selector.Darwin },\n { name: '新西兰', value: Selector.NewZealand },\n];\n\nfunction DomesticPage() {\n const activities = useSelector((state) => state.activities.data);\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n const [citySelector, setCitySelector] = useState();\n\n const [data, setData] = useState([]);\n\n useEffect(() => {\n filterActivities();\n const params = new URLSearchParams(searchParams);\n const citySelector = params.get('city');\n setCitySelector(citySelector);\n }, [fetching, searchParams]);\n\n const filterActivities = () => {\n // Accept an array of selectors instead of a single fixed one\n let selectedSelectors = [Selector.Package, Selector.Team]; // match any of these selectors\n const params = new URLSearchParams(searchParams);\n const sort = params.get('sort');\n const citySelector = params.get('city');\n\n let newData = [...activities];\n\n // Filter for multiple selectors\n newData = activities.filter((item) => {\n // Check if activity matches ANY of the selected selectors\n return selectedSelectors.some((selector) => item.selectors?.includes(selector));\n });\n\n // Filter by city\n if (citySelector) {\n newData = newData.filter((item) => item.selectors?.includes(citySelector));\n }\n\n // Modified selector sorting to handle multiple selectors\n newData?.sort((a, b) => {\n // Get the lowest sort value among all matching selectors for each item\n const getMinSortValue = (activity) => {\n const matchingItems = activity.selectorItems\n .filter((item) => selectedSelectors.includes(item.name))\n .map((item) => item.sort);\n return Math.min(...matchingItems);\n };\n\n const sortA = getMinSortValue(a);\n const sortB = getMinSortValue(b);\n return sortA - sortB;\n });\n\n // Price sorting remains the same\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n };\n\n const handleOnChangeFilter = (e, value) => {\n const params = new URLSearchParams(searchParams);\n const citySelector = params.get('city');\n if (citySelector == value) {\n params.delete('city');\n } else {\n params.set('city', value);\n }\n setSearchParams(params);\n };\n\n return (\n
\n
\n 一日游 / 当地参团 / 当地包团 {citySelector && `(${SelectorParser(citySelector)} ${data.length}个)`}{' '}\n
\n {fetching &&
加载中...
}\n\n
\n
\n
\n
\n
城市
\n {CityOptions.map((item, index) => {\n return (\n
\n
\n handleOnChangeFilter(e, item.value)}\n checked={citySelector == item.value}\n />\n \n
\n
\n );\n })}\n
\n
\n
\n
\n \n
\n
\n
\n );\n}\n\nexport default DomesticPage;\n","import React, { useEffect } from 'react';\nimport { Route, Routes } from 'react-router';\nimport TicketPage from './ticket/TicketPage';\nimport { SearchPage as TicketSearchPage } from './ticket/SearchPage';\nimport { Selector } from '@utils/constants';\nimport DemoPage from './demo/DemoPage';\nimport { useSelector } from 'react-redux';\nimport { Dimmer, Loader } from 'semantic-ui-react';\nimport ActivityDetailsPage from './ActivityDetailsPage';\nimport TransfersPage from './TransfersPage';\nimport DomesticPage from './DomesticPage';\n\nfunction Index() {\n const fetching = useSelector((state) => state.activities.fetching);\n return (\n <>\n \n \n } />\n } />\n \n }\n />\n \n \n }\n />\n \n }\n />\n \n } />\n \n }\n />\n \n }\n />\n \n }\n />\n } />\n\n } />\n \n \n \n \n \n );\n}\n\nexport default Index;\n"],"names":["TopHeaderBg$1","TicketPage","navigate","useNavigate","searchParams","setSearchParams","useSearchParams","handleSearch","params","jsxs","styles","jsx","TopHeaderBg","SelectorsForm","ActivityHotTagOptions","Selector","item","index","Link","config.baseURL","SelectorParser","Activities","activities","filterElement","priceSorting","loaded","title","setTitle","useState","selectRef","useRef","useEffect","selector","sort","DestinationName","handleOnChangeFilter","e","name","value","Content","ActivitiesGrid","Result","PropTypes","K_Kinds","K_Durations","K_Recommendations","FilterConstants","ActivityDuration","ActivitiesFilter","replace","sticky","kinds","setKinds","recommendations","setRecommendations","durations","setDurations","k","ActivityDurationParse","SearchPage","location","useLocation","data","setData","setLoaded","useSelector","state","fetching","useLayoutEffect","StoreScrollPosition","RestoreScrollPosition","filterActivities","text","newData","_a","a","b","sortA","sortB","_b","_c","_d","_e","filter","calculatePrice","pricing","BackBar","Loader","DemoPage","fixedSelector","useActivityEffectPricing","setFetching","abortControllerRef","fetchEffectPricing","useCallback","activityID","segmentID","variantID","req","response","config.apiURL","GetToken","error","abort","Title","Paragraph","Typography","useBreakpoint","Grid","ActivityDetailsPage","id","useParams","addToCart","useCart","activity","commission","loading","fetchActivity","useActivity","effectPricing","useLoginUser","message","App","selectedVariant","setSelectedVariant","selectedSegment","setSelectedSegment","setError","screens","Spin","Alert","nameEN","tourCode","content","information","duration","variants","segments","address","handleVariantChange","variantId","opt","variant","v","handleSegmentChange","segmentId","segment","handleAddToCart","reply","renderPricing","variantOptions","segmentOptions","Card","Select","option","Descriptions","Fragment","TeamOutlined","Button","renderDuration","renderPhotoGrid","Row","photo","Col","Image","ActivityDetails","cities","TransfersPage","filterHiden","createSelector","items","initCity","citySelector","setCitySelector","filterTransfers","handleCityChecked","prev","Filter","Checkbox","CityOptions","DomesticPage","selectedSelectors","getMinSortValue","matchingItems","Index","Routes","Route","TicketSearchPage","Dimmer"],"mappings":"q1CAAeA,GAAA,gCCQf,SAASC,IAAa,CAClB,MAAMC,EAAWC,KACX,CAACC,EAAcC,CAAe,EAAIC,EAAgB,EAElDC,EAAe,IAAM,CACjB,MAAAC,EAAS,IAAI,gBAAgBJ,CAAY,EAC/CF,EAAS,UAAUM,EAAO,SAAU,CAAA,EAAE,CAAA,EAG1C,OACKC,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UACnB,SAAA,CAACD,EAAA,KAAA,UAAA,CAAQ,UAAWC,EAAO,iBACvB,SAAA,CAACC,EAAAA,IAAA,MAAA,CAAI,IAAKC,EAAa,CAAA,EACvBD,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,gBACnB,SAACC,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,UAAW,SAAA,eAAa,CAAA,EACnD,CAAA,EACJ,EACCD,EAAA,KAAA,UAAA,CAAQ,UAAWC,EAAO,kBACvB,SAAA,CAACC,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,eACnB,SAAAC,EAAAA,IAACE,IAAc,WAAYC,GAAuB,aAAcP,CAAA,CAAc,CAClF,CAAA,EAECI,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,MAAO,SAAI,OAAA,EACjCC,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,qBAClB,SAAA,CACG,CAAE,SAAUK,EAAS,MAAO,EAC5B,CAAE,SAAUA,EAAS,SAAU,EAC/B,CAAE,SAAUA,EAAS,QAAS,EAC9B,CAAE,SAAUA,EAAS,SAAU,EAC/B,CAAE,SAAUA,EAAS,KAAM,EAC3B,CAAE,SAAUA,EAAS,MAAO,EAC5B,CAAE,SAAUA,EAAS,QAAS,EAC9B,CAAE,SAAUA,EAAS,QAAS,CAAA,EAChC,IAAI,CAACC,EAAMC,IAEJR,EAAAA,KAAA,MAAA,CAAgB,UAAWC,EAAO,oBAC/B,SAAA,CAAAC,MAACO,GAAK,CAAA,GAAI,mBAAmBF,EAAK,QAAQ,GACtC,SAAAL,EAAA,IAAC,MAAA,CACG,UAAWD,EAAO,gBAClB,MAAO,CACH,gBAAiB,QAAQS,EAAc,iBAAiBH,EAAK,QAAQ,UACrE,eAAgB,QAChB,mBAAoB,QACxB,CAAA,CAAA,EAER,EACAL,EAAAA,IAAC,OAAI,UAAWD,EAAO,QAAU,SAAeU,EAAAJ,EAAK,QAAQ,EAAE,CAAA,CAAA,EAXzDC,CAYV,CAEP,EACL,CAAA,EACJ,CACJ,CAAA,CAAA,CAER,CCtDA,SAASI,EAAW,CAAE,WAAAC,EAAa,GAAI,cAAAC,EAAe,aAAAC,EAAe,GAAM,OAAAC,EAAS,IAAQ,CACxF,KAAM,CAACrB,EAAcC,CAAe,EAAIC,EAAgB,EAClD,CAACoB,EAAOC,CAAQ,EAAIC,WAAS,EAAE,EAC/BC,EAAYC,EAAAA,SAElBC,EAAAA,UAAU,IAAM,CACN,MAAAvB,EAAS,IAAI,gBAAgBJ,CAAY,EACzC4B,EAAWxB,EAAO,IAAI,UAAU,GAAK,GACrCyB,EAAOzB,EAAO,IAAI,MAAM,GAAK,GAC1BmB,EAAAO,GAAgBF,CAAQ,CAAC,EAC5BH,EAAU,UACZA,EAAU,QAAQ,MAAQI,EAC9B,EACD,CAAC7B,CAAY,CAAC,EAEX,MAAA+B,EAAwBC,GAAM,CAChC,MAAMC,EAAOD,EAAE,OAAO,aAAa,MAAM,EACzC,IAAIE,EAAQF,EAAE,OAAO,aAAa,OAAO,EAEnCE,IACFA,EAAQF,EAAE,OAAO,OAGf,MAAA5B,EAAS,IAAI,gBAAgBJ,CAAY,EAC/C,OAAQiC,EAAM,CACV,IAAK,OACGC,EACO9B,EAAA,IAAI,OAAQ8B,CAAK,EAExB9B,EAAO,OAAO,MAAM,EAExBH,EAAgBG,EAAQ,CAAE,QAAS,EAAM,CAAA,CAGjD,CAAA,EAGE+B,EAAU,IACRd,GACIH,GAAA,YAAAA,EAAY,QAAS,EAEjBX,EAAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,eACnB,eAAC8B,GAAe,CAAA,WAAAlB,EAAwB,YAAa,EAAM,CAAA,CAC/D,CAAA,EAGGX,EAAAA,IAAC8B,GAAO,CAAA,MAAQ9B,EAAA,IAAA,IAAA,CAAE,MAAO,CAAE,SAAU,EAAA,EAAM,SAAA,mBAAiB,CAAA,CAAM,CAAA,QAGrE,MAAI,CAAA,MAAO,CAAE,UAAW,UAAY,SAAU,YAAA,CAAA,EAI9D,OACKF,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UAClB,SAAA,CAAAc,GACIf,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,cACnB,SAAA,CAAAC,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,MAAQ,SAAMgB,EAAA,EACpCf,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,eACnB,SAAAD,EAAA,KAAC,SAAO,CAAA,KAAK,OAAO,IAAKoB,EAAW,SAAUM,EAC1C,SAAA,CAACxB,EAAA,IAAA,SAAA,CAAO,MAAM,GAAG,SAAI,OAAA,EACpBA,EAAA,IAAA,SAAA,CAAO,MAAM,aAAa,SAAQ,WAAA,EAClCA,EAAA,IAAA,SAAA,CAAO,MAAM,YAAY,SAAQ,WAAA,CAAA,CAAA,CACtC,CACJ,CAAA,CAAA,EACJ,EAEHF,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,iBAClB,SAAA,CAAA,CAAC,CAACa,GAAiBZ,EAAA,IAAC,WAAQ,UAAWD,EAAO,kBAAoB,SAAca,EAAA,QAChF,UAAQ,CAAA,UAAWb,EAAO,mBACvB,SAAAC,MAAC4B,GAAQ,CAAA,EACb,CAAA,EACJ,CACJ,CAAA,CAAA,CAER,CAEAlB,EAAW,UAAY,CACnB,WAAYqB,EAAU,MAAM,WAC5B,cAAeA,EAAU,QACzB,aAAcA,EAAU,KACxB,OAAQA,EAAU,IACtB,ECnFO,MAAMC,GAAU,QACVC,EAAc,YACdC,GAAoB,kBAEpBC,EAAkB,CAC3B,SAAU,CACN,GAAGC,EACP,EACA,OAAQ,SACR,KAAM,CACF,OAAQ,SAKR,OAAQhC,EAAS,eACrB,CACJ,EAGA,SAASiC,GAAiB,CAAE,QAAAC,EAAU,GAAM,OAAAC,EAAS,IAAQ,CACzD,KAAM,CAACC,EAAOC,CAAQ,EAAIxB,EAAA,SAAS,CAAE,CAAA,EAC/B,CAACyB,EAAiBC,CAAkB,EAAI1B,EAAA,SAAS,CAAE,CAAA,EACnD,CAAC2B,EAAWC,CAAY,EAAI5B,EAAA,SAAS,CAAE,CAAA,EACvC,CAACxB,EAAcC,CAAe,EAAIC,EAAgB,EAExDyB,EAAAA,UAAU,IAAM,CACN,MAAAvB,EAAS,IAAI,gBAAgBJ,CAAY,EACzC+C,EAAQ3C,EAAO,OAAOmC,EAAO,GAAK,CAAA,EAClCY,EAAY/C,EAAO,OAAOoC,CAAW,GAAK,CAAA,EAC1CS,EAAkB7C,EAAO,OAAOqC,EAAiB,GAAK,CAAA,EAC5DO,EAASD,CAAK,EACdK,EAAaD,CAAS,EACtBD,EAAmBD,CAAe,CAAA,EACnC,CAACjD,CAAY,CAAC,EAEX,MAAA+B,EAAuB,CAACC,EAAGqB,IAAM,CACnC,GAAI,CAACA,EAAG,CACJ,QAAQ,MAAM,WAAW,EACzB,MACJ,CACarB,EAAE,OAAO,aAAa,MAAM,EACzC,IAAIE,EAAQF,EAAE,OAAO,aAAa,OAAO,EAEnCE,IACFA,EAAQF,EAAE,OAAO,OAGf,MAAA5B,EAAS,IAAI,gBAAgBJ,CAAY,GAC/BI,EAAO,OAAOiD,CAAC,GAAK,CAAA,GACxB,SAASnB,CAAK,EACtB9B,EAAO,OAAOiD,CAAC,EAERjD,EAAA,IAAIiD,EAAGnB,CAAK,EAEPjC,EAAAG,EAAQ,CAAE,QAAAyC,CAAA,CAAkB,CAAA,EAI5C,OAAAxC,EAAA,KAAC,MAAI,CAAA,UAAW,GAAGC,EAAO,SAAS,IAAIwC,GAAUxC,EAAO,MAAM,GA6D1D,SAAA,CAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,iBACnB,SAAA,CAAAC,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,MAAO,SAAE,KAAA,EAChCC,EAAAA,IAAC,OAAI,UAAWD,EAAO,eACnB,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,mBACnB,SAAA,CAAAC,EAAA,IAAC,QAAA,CACG,KAAMmC,EAAgB,OACtB,KAAK,WACL,GAAIA,EAAgB,OACpB,MAAOA,EAAgB,OACvB,SAAWV,GAAMD,EAAqBC,EAAGS,EAAiB,EAC1D,QAASQ,EAAgB,SAASP,EAAgB,MAAM,CAAA,CAC5D,EACCnC,EAAA,IAAA,QAAA,CAAM,QAASmC,EAAgB,OAAQ,SAAI,OAAA,CAAA,CAAA,CAChD,CACJ,CAAA,CAAA,EACJ,EACCrC,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,iBACnB,SAAA,CAAAC,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,MAAO,SAAI,OAAA,EAClCC,EAAAA,IAAC,OAAI,UAAWD,EAAO,eACnB,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,mBACnB,SAAA,CAAAC,EAAA,IAAC,QAAA,CACG,KAAK,WACL,MAAOmC,EAAgB,SAAS,YAChC,KAAK,WACL,GAAIA,EAAgB,SAAS,YAC7B,SAAWV,GAAMD,EAAqBC,EAAGQ,CAAW,EACpD,QAASW,EAAU,SAAST,EAAgB,SAAS,YAAY,UAAU,CAAA,CAC/E,EACAnC,EAAAA,IAAC,QAAM,CAAA,QAASmC,EAAgB,SAAS,YACpC,SAAsBY,EAAAZ,EAAgB,SAAS,WAAW,CAC/D,CAAA,CAAA,CAAA,CACJ,CACJ,CAAA,EACAnC,EAAAA,IAAC,OAAI,UAAWD,EAAO,eACnB,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,mBACnB,SAAA,CAAAC,EAAA,IAAC,QAAA,CACG,KAAK,WACL,MAAOmC,EAAgB,SAAS,cAChC,KAAK,WACL,GAAIA,EAAgB,SAAS,cAC7B,SAAWV,GAAMD,EAAqBC,EAAGQ,CAAW,EACpD,QAASW,EAAU,SAAST,EAAgB,SAAS,cAAc,UAAU,CAAA,CACjF,EACAnC,EAAAA,IAAC,QAAM,CAAA,QAASmC,EAAgB,SAAS,cACpC,SAAsBY,EAAAZ,EAAgB,SAAS,aAAa,CACjE,CAAA,CAAA,CAAA,CACJ,CACJ,CAAA,EACAnC,EAAAA,IAAC,OAAI,UAAWD,EAAO,eACnB,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,mBACnB,SAAA,CAAAC,EAAA,IAAC,QAAA,CACG,KAAK,WACL,MAAOmC,EAAgB,SAAS,aAChC,KAAK,WACL,GAAIA,EAAgB,SAAS,aAC7B,SAAWV,GAAMD,EAAqBC,EAAGQ,CAAW,EACpD,QAASW,EAAU,SAAST,EAAgB,SAAS,aAAa,UAAU,CAAA,CAChF,EACAnC,EAAAA,IAAC,QAAM,CAAA,QAASmC,EAAgB,SAAS,aACpC,SAAsBY,EAAAZ,EAAgB,SAAS,YAAY,CAChE,CAAA,CAAA,CAAA,CACJ,CACJ,CAAA,EACAnC,EAAAA,IAAC,OAAI,UAAWD,EAAO,eACnB,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,mBACnB,SAAA,CAAAC,EAAA,IAAC,QAAA,CACG,KAAK,WACL,MAAOmC,EAAgB,SAAS,eAChC,KAAK,WACL,GAAIA,EAAgB,SAAS,eAC7B,SAAWV,GAAMD,EAAqBC,EAAGQ,CAAW,EACpD,QAASW,EAAU,SAAST,EAAgB,SAAS,eAAe,UAAU,CAAA,CAClF,EACAnC,EAAAA,IAAC,QAAM,CAAA,QAASmC,EAAgB,SAAS,eACpC,SAAsBY,EAAAZ,EAAgB,SAAS,cAAc,CAClE,CAAA,CAAA,CAAA,CACJ,CACJ,CAAA,CAAA,EACJ,CACJ,CAAA,CAAA,CAER,CAEAE,GAAiB,UAAY,CACzB,QAASN,EAAU,KACnB,OAAQA,EAAU,IACtB,ECzMO,SAASiB,IAAa,CACzB,MAAMC,EAAWC,KACX,CAACC,EAAMC,CAAO,EAAInC,EAAA,SAAS,CAAE,CAAA,EAC7B,CAACH,EAAQuC,CAAS,EAAIpC,WAAS,EAAK,EACpCN,EAAa2C,EAAaC,GAAUA,EAAM,WAAW,IAAI,EACzDC,EAAWF,EAAaC,GAAUA,EAAM,WAAW,QAAQ,EAC3D,CAAC9D,EAAcC,CAAe,EAAIC,EAAgB,EAExD8D,EAAAA,gBAAgB,IACL,IAAM,CACWC,GAAAT,EAAS,SAAWA,EAAS,MAAM,CAAA,EAE5D,CAAE,CAAA,EAEL7B,EAAAA,UAAU,IAAM,CACUuC,GAAAV,EAAS,SAAWA,EAAS,MAAM,CAAA,EAC1D,CAACE,CAAI,CAAC,EAET/B,EAAAA,UAAU,IAAM,CACKwC,GAAA,EAClB,CAACnE,EAAc+D,CAAQ,CAAC,EAE3B,MAAMI,EAAmB,IAAM,CAC3BP,EAAU,EAAK,EACT,MAAAxD,EAAS,IAAI,gBAAgBJ,CAAY,EAC/C,IAAI4B,EAAWxB,EAAO,IAAI,UAAU,GAAK,GACrCgE,EAAOhE,EAAO,IAAI,MAAM,GAAK,GAC7BwB,GAAY,QACDA,EAAA,IAET,MAAAC,EAAOzB,EAAO,IAAI,MAAM,EAC1B,IAAAiE,EAAU,CAAC,GAAGnD,CAAU,EAExBU,IACUyC,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,IAAI0D,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAAS1C,GAClB,MAAA,EACX,CACH,EAEQyC,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IAAM,CACd,MAAAC,EAAQF,EAAE,cAAc,KAAM3D,GAASA,EAAK,MAAQgB,CAAQ,EAAE,KAC9D8C,EAAQF,EAAE,cAAc,KAAM5D,GAASA,EAAK,MAAQgB,CAAQ,EAAE,KACpE,OAAO6C,EAAQC,CAAA,IAIbL,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,GAAI,GAAC0D,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAAS3D,EAAS,YAC5B,MAAA,EACX,CACH,EAGD,IAAIoC,EAAQ3C,EAAO,OAAOmC,EAAO,GAAK,CAAA,EAClCQ,EAAM,QAAU,IACZA,EAAM,QAAU,GAAKA,EAAM,CAAC,GAAK,SACvBsB,EAAAA,EAAQ,OAAQzD,GAAS,eAC/B,GACI,GAAC0D,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAAS3D,EAAS,QACnC,GAACgE,EAAA/D,EAAK,YAAL,MAAA+D,EAAgB,SAAShE,EAAS,WACnC,GAACiE,EAAAhE,EAAK,YAAL,MAAAgE,EAAgB,SAASjE,EAAS,QACnC,GAACkE,EAAAjE,EAAK,YAAL,MAAAiE,EAAgB,SAASlE,EAAS,WACnC,GAACmE,EAAAlE,EAAK,YAAL,MAAAkE,EAAgB,SAASnE,EAAS,kBAE5B,MAAA,EACX,CACH,EAES0D,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,QAASmE,KAAUhC,EACf,IAAIuB,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAASS,GAClB,MAAA,EAEf,CACH,GAIT,IAAI9B,EAAkB7C,EAAO,OAAOqC,EAAiB,GAAK,CAAA,EACtDQ,EAAgB,QAAU,GACtBA,EAAgB,SAAS,QAAQ,IACvBoB,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,IAAM0D,EAAA1D,GAAA,YAAAA,EAAM,UAAN,MAAA0D,EAAe,cACV,MAAA,EACX,CACH,GAIT,IAAInB,EAAY/C,EAAO,OAAOoC,CAAW,GAAK,CAAA,EAmB9C,GAlBIW,EAAU,QAAU,IACVkB,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,GAAIuC,EAAU,UAASmB,EAAA1D,GAAA,YAAAA,EAAM,WAAN,YAAA0D,EAAgB,UAAU,EACtC,MAAA,EACX,CACH,GAGDF,IACUC,EAAAA,EAAQ,OAAQzD,GAAS,SAC/B,IACI0D,EAAA1D,EAAK,OAAL,MAAA0D,EAAW,cAAc,SAASF,EAAK,YAAa,KACpDO,EAAA/D,EAAK,SAAL,MAAA+D,EAAa,cAAc,SAASP,EAAK,YAAA,GAElC,MAAA,EACX,CACH,GAEDvC,EAAM,CACA,MAAAmD,EAAkBC,GAChBA,EAAQ,aACDA,EAAQ,YAEZA,EAAQ,WAEnB,OAAQpD,EAAM,CACV,IAAK,YACQwC,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeT,EAAE,OAAO,EAAIS,EAAeR,EAAE,OAAO,GAE/D,MACJ,IAAK,aACQH,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeR,EAAE,OAAO,EAAIQ,EAAeT,EAAE,OAAO,GAE/D,KAGR,CACJ,CACAZ,EAAQU,CAAO,EACfT,EAAU,EAAI,CAAA,EAGlB,OACKvD,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UACnB,SAAA,CAAAC,EAAA,IAAC2E,GAAQ,EAAA,QACR,MAAI,CAAA,UAAW5E,EAAO,eACnB,SAAAC,MAACE,IAAc,CAAA,EACnB,EACCJ,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,gBACnB,SAAA,CAAAC,EAAA,IAAC4E,GAAO,CAAA,OAAQpB,EAAU,KAAK,QAAQ,EACvCxD,EAAAA,IAACU,GAAW,WAAYyC,EAAM,OAAArC,EAAgB,cAAed,MAACqC,IAAiB,CAAA,EAAI,CAAA,EACvF,CACJ,CAAA,CAAA,CAER,sTC/JepC,GAAA,kCCUf,SAAS4E,GAAS,CAAE,MAAA9D,EAAO,cAAA+D,GAAiB,CACxC,KAAM,CAAC3B,EAAMC,CAAO,EAAInC,EAAA,SAAS,CAAE,CAAA,EAC7B,CAACH,EAAQuC,CAAS,EAAIpC,WAAS,EAAK,EACpCN,EAAa2C,EAAaC,GAAUA,EAAM,WAAW,IAAI,EACzDC,EAAWF,EAAaC,GAAUA,EAAM,WAAW,QAAQ,EAC3D,CAAC9D,EAAcC,CAAe,EAAIC,EAAgB,EAExDyB,EAAAA,UAAU,IAAM,CACKwC,GAAA,EAClB,CAACJ,EAAUsB,CAAa,CAAC,EAE5B,MAAMlB,EAAmB,IAAM,CAC3BP,EAAU,EAAK,EAET,MAAA/B,EADS,IAAI,gBAAgB7B,CAAY,EAC3B,IAAI,MAAM,EAC1B,IAAAqE,EAAU,CAAC,GAAGnD,CAAU,EAc5B,GAZUmD,EAAAnD,EAAW,OAAQN,GAAS,OAClC,IAAI0D,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAASe,GAClB,MAAA,EACX,CACH,EAEQhB,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IAAM,CACd,MAAAC,EAAQF,EAAE,cAAc,KAAM3D,GAASA,EAAK,MAAQyE,CAAa,EAAE,KACnEX,EAAQF,EAAE,cAAc,KAAM5D,GAASA,EAAK,MAAQyE,CAAa,EAAE,KACzE,OAAOZ,EAAQC,CAAA,GAGf7C,EAAM,CACA,MAAAmD,EAAkBC,GAChBA,EAAQ,aACDA,EAAQ,YAEZA,EAAQ,WAEnB,OAAQpD,EAAM,CACV,IAAK,YACQwC,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeT,EAAE,OAAO,EAAIS,EAAeR,EAAE,OAAO,GAE/D,MACJ,IAAK,aACQH,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeR,EAAE,OAAO,EAAIQ,EAAeT,EAAE,OAAO,GAE/D,KAGR,CACJ,CACAZ,EAAQU,CAAO,EACfT,EAAU,EAAI,CAAA,EAGlB,OACKvD,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UACnB,SAAA,CAACD,EAAA,KAAA,UAAA,CAAQ,UAAWC,EAAO,iBACvB,SAAA,CAACC,EAAAA,IAAA,MAAA,CAAI,IAAKC,EAAa,CAAA,EACvBD,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,gBACnB,SAACC,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,UAAY,SAAAgB,CAAM,CAAA,EAC7C,CAAA,EACJ,EACAf,EAAAA,IAAC,UAAQ,CAAA,UAAWD,EAAO,kBACvB,SAACC,MAAAU,EAAA,CAAW,WAAYyC,EAAM,OAAArC,EAAgB,SAAU,IAAM,CAAA,EAAI,aAAc,EAAO,CAAA,EAC3F,CACJ,CAAA,CAAA,CAER,CAEA+D,GAAS,UAAY,CACjB,MAAO9C,EAAU,OACjB,cAAeA,EAAU,OAAO,UACpC,yOC9EA,SAASgD,IAA2B,CAChC,KAAM,CAACvB,EAAUwB,CAAW,EAAI/D,EAAQ,SAAC,EAAK,EACxC,CAACkC,EAAMC,CAAO,EAAInC,EAAQ,SAAC,CAAE,CAAA,EAE7BgE,EAAqB9D,SAAO,IAAI,EAEhC+D,EAAqBC,cAAY,MAAO,CAAE,WAAAC,EAAa,GAAI,UAAAC,EAAY,GAAI,UAAAC,EAAY,MAAS,CAClGL,EAAmB,QAAU,IAAI,gBACjCD,EAAY,EAAI,EAChB,MAAMO,EAAM,CACR,WAAYH,EACZ,UAAWC,EACX,UAAWC,CACvB,EACQ,GAAI,CACA,MAAME,EAAW,MAAM,MAAM,GAAGC,EAAa,2BAA4B,CACrE,OAAQ,OACR,KAAM,KAAK,UAAUF,CAAG,EACxB,QAAS,CAAE,cAAe,UAAUG,GAAQ,CAAE,EAAI,EAClD,OAAQT,EAAmB,QAAQ,MACnD,CAAa,EACD,GAAI,CAACO,EAAS,GAAI,CACd,MAAMrC,EAAO,MAAMqC,EAAS,OAC5B,MAAM,IAAI,MAAMrC,EAAK,OAAS,oDAAoD,CACrF,CACD,MAAMA,EAAO,MAAMqC,EAAS,OAE5B,OAAApC,EAAQD,CAAI,EACLA,CACV,OAAQwC,EAAO,CACZ,MAAIA,EAAM,OAAS,cACf,QAAQ,IAAI,qBAAqB,EAC3B,IAAI,MAAM,qBAAqB,IAErC,QAAQ,MAAM,uCAAwCA,CAAK,EAEzDA,EAClB,QAAkB,CACNX,EAAY,EAAK,CACpB,CACJ,EAAE,CAAE,CAAA,EAECY,EAAQT,EAAAA,YAAY,IAAM,CACxBF,EAAmB,SACnBA,EAAmB,QAAQ,OAElC,EAAE,CAAE,CAAA,EAEL,MAAO,CAAE,SAAAzB,EAAU,KAAAL,EAAM,mBAAA+B,EAAoB,MAAAU,CAAK,CACtD,CAEAb,GAAyB,UAAY,CAAE,EC1CvC,KAAM,CAAE,MAAAc,GAAO,UAAAC,EAAc,EAAAC,GACvB,CAAE,cAAAC,EAAkB,EAAAC,GAEpBC,GAAsB,IAAM,CACxB,KAAA,CAAE,GAAAC,GAAOC,KACT,CAAE,UAAAC,GAAcC,KAChB,CACF,KAAM,CAAE,SAAAC,EAAU,WAAAC,CAAW,EAC7B,SAAUC,EACV,cAAAC,GACAC,GAAY,EACV,CACF,SAAAnD,EACA,KAAM,CAAE,cAAAoD,EAAgB,EAAG,EAC3B,mBAAA1B,GACAH,GAAyB,EAER8B,GAAa,EAClC,KAAM,CAAE,QAAAC,CAAA,EAAYC,GAAI,OAAO,EAEzB,CAACC,EAAiBC,CAAkB,EAAIhG,WAAS,IAAI,EACrD,CAACiG,EAAiBC,CAAkB,EAAIlG,WAAS,IAAI,EACrD,CAAC0E,EAAOyB,CAAQ,EAAInG,WAAS,IAAI,EACjCoG,EAAUrB,KA2BhB,GAzBA5E,EAAAA,UAAU,IAAM,CACZsF,EAAcP,CAAE,EAAE,MAAOR,GAAU,CAC/ByB,EAAS,+CAA+C,EAChD,QAAA,MAAM,2BAA4BzB,CAAK,CAAA,CAClD,CAAA,EACF,CAACQ,CAAE,CAAC,EAEP/E,EAAAA,UAAU,IAAM,CACL,OAAA,SAAS,EAAG,CAAC,EACD8D,EAAA,CACf,WAAYiB,EACZ,UAAWe,GAAA,YAAAA,EAAiB,GAC5B,UAAWF,GAAA,YAAAA,EAAiB,EAAA,CAC/B,EACI,KAAM7D,GAAS,CACR,OAAO,KAAKyD,CAAa,EAAE,SAAW,IACtCE,GAAA,MAAAA,EAAS,QAAQ,SACrB,CACH,EACA,MAAOnB,GAAU,CACdmB,GAAA,MAAAA,EAAS,MAAM,UACP,QAAA,MAAM,oCAAqCnB,CAAK,CAAA,CAC3D,CACN,EAAA,CAACqB,EAAiBE,EAAiBf,CAAE,CAAC,EAErCM,EACO,OAAAzG,EAAA,IAACsH,GAAK,CAAA,KAAK,OAAQ,CAAA,EAG9B,GAAI3B,EACO,OAAA3F,MAACuH,IAAM,QAAQ,QAAQ,YAAa5B,EAAO,KAAK,QAAQ,SAAQ,EAAC,CAAA,EAG5E,GAAI,CAACY,EACD,aAAQgB,GAAM,CAAA,QAAQ,oBAAoB,KAAK,UAAU,SAAQ,EAAC,CAAA,EAGhE,KAAA,CACF,KAAA7F,EACA,OAAA8F,EACA,SAAAC,EACA,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,SAAAC,EACA,eAAgBC,EAChB,QAAAC,CACA,EAAAxB,EAIEyB,EAAsB,CAACC,EAAWC,IAAQ,CACtC,MAAAC,EAAUN,EAAS,KAAMO,GAAMA,EAAE,KAAOF,EAAI,EAAE,EACpDjB,EAAmBkB,GAAW,IAAI,CAAA,EAGhCE,GAAsB,CAACC,EAAWJ,IAAQ,CACtC,MAAAK,EAAUT,EAAS,KAAMM,GAAMA,EAAE,KAAOF,EAAI,EAAE,EACpDf,EAAmBoB,GAAW,IAAI,CAAA,EAGhCC,GAAkB,IAAM,CAC1B,MAAMjD,EAAM,CACR,WAAYY,EACZ,WAAWa,GAAA,YAAAA,EAAiB,KAAM,GAClC,WAAWE,GAAA,YAAAA,EAAiB,KAAM,EAAA,EAEtCb,EAAUd,CAAG,EACR,KAAMpC,GAAS,CACN,KAAA,CAAE,MAAAsF,CAAU,EAAAtF,EACdsF,EACA3B,GAAA,MAAAA,EAAS,QAAQ2B,GAEjB3B,GAAA,MAAAA,EAAS,QAAQ,gBACrB,CACH,EACA,MAAOnB,GAAU,CACN,QAAA,MAAM,gBAAiBA,CAAK,CAAA,CACvC,CAAA,EAeH+C,GAAgB,IAAM,CACxB,GAAInC,EAAS,KACF,OAAA,KAEX,IAAIoC,EAAiB,CAAA,EACjBd,IACiBc,EAAAd,EAAS,IAAKM,IAAa,CACxC,GAAGA,EACH,IAAKA,EAAQ,GACb,MAAOA,EAAQ,GACf,MAAOA,EAAQ,OACf,QAASA,EAAQ,MACnB,EAAA,GAEN,IAAIS,EAAiB,CAAA,EACrB,OAAId,IACiBc,EAAAd,EAAS,IAAKS,IAAa,CACxC,IAAKA,EAAQ,GACb,MAAOA,EAAQ,GACf,MAAOA,EAAQ,KACjB,EAAA,GAIFzI,EAAA,KAAC+I,GAAK,MAAM,KAAK,MAAO,CAAE,aAAc,MACnC,EAAA,SAAA,CAAAF,EAAe,OAAS,GACrB3I,EAAA,IAAC8I,GAAA,CACG,MAAO,CAAE,MAAO,OAAQ,aAAc,MAAO,EAC7C,YAAY,OACZ,QAASH,EACT,SAAUX,EACV,aAAee,GAEPjJ,EAAA,KAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,cAAe,QAC1C,EAAA,SAAA,CAACE,EAAAA,IAAA+F,GAAW,KAAX,CAAgB,MAAO,CAAE,WAAY,MAAO,EACxC,SAAOgD,EAAA,KAAK,MACjB,CAAA,EACC/I,EAAAA,IAAA+F,GAAW,KAAX,CAAgB,KAAK,YAAY,MAAO,CAAE,WAAY,MAClD,EAAA,SAAAgD,EAAO,KAAK,WACjB,CAAA,CACJ,CAAA,CAAA,CAER,CACJ,EAEHH,EAAe,OAAS,GACrB5I,EAAA,IAAC8I,GAAA,CACG,MAAO,CAAE,MAAO,OAAQ,aAAc,MAAO,EAC7C,YAAY,SACZ,SAAUT,GACV,QAASO,CAAA,CACb,EAEJ9I,EAAAA,KAACkJ,EAAa,CAAA,OAAQ,EACjB,SAAA,CAAApC,EAAc,cACX5G,MAACgJ,EAAa,KAAb,CAAkB,MAAM,KACrB,SAAClJ,EAAA,KAAA,OAAA,CAAK,MAAO,CAAE,MAAO,MAAO,WAAY,MAAU,EAAA,SAAA,CAAA,IAAE8G,EAAc,WAAA,CAAA,CAAY,CACnF,CAAA,EAEH,CAACA,EAAc,cAER9G,EAAA,KAAAmJ,EAAA,SAAA,CAAA,SAAA,CAAAjJ,EAAA,IAACgJ,EAAa,KAAb,CAAkB,MAAM,KACrB,SAAAlJ,EAAA,KAAC,OAAK,CAAA,MAAO,CAAE,MAAO,MAAO,WAAY,MAAU,EAAA,SAAA,CAAA,IAAE8G,EAAc,UAAA,CAAA,CAAW,CAClF,CAAA,EACC5G,EAAA,IAAAgJ,EAAa,KAAb,CAAkB,MAAM,KACrB,SAAAlJ,EAAA,KAAC,OAAK,CAAA,MAAO,CAAE,MAAO,MAAO,WAAY,MAAU,EAAA,SAAA,CAAA,IAAE8G,EAAc,UAAA,CAAA,CAAW,CAClF,CAAA,CAAA,EACJ,EAEHA,EAAc,eACX5G,EAAA,IAACgJ,EAAa,KAAb,CACG,aACK,OACG,CAAA,SAAA,CAAAhJ,EAAA,IAACkJ,GAAa,EAAA,EAAE,UAAQtC,EAAc,eAAe,QAAM,IAC1DA,EAAc,eAAe,MAAA,EAClC,EAGJ,SAAA9G,EAAA,KAAC,QAAK,MAAO,CAAE,MAAO,MAAO,WAAY,MAAU,EAAA,SAAA,CAAA,IAAE8G,EAAc,WAAA,EAAY,CAAA,CACnF,CAAA,EAER,EACA5G,EAAAA,IAACmJ,GAAO,CAAA,KAAK,UAAU,MAAO,CAAE,UAAW,MAAO,EAAG,QAASX,GAAiB,SAE/E,QAAA,CAAA,CACJ,CAAA,CAAA,CAAA,EAIFY,GAAiB,IACdxB,EAID5H,EAAA,IAAC6I,GAAK,MAAO,CAAE,aAAc,QACzB,SAAC7I,EAAAA,IAAAgJ,EAAA,CAAa,OAAQ,EAClB,eAACA,EAAa,KAAb,CAAkB,MAAO,KAAO,WAAsBpB,CAAQ,GAAK,KAAM,CAAA,CAC9E,CAAA,CACJ,CAAA,EAPO,KAwBTyB,GAAkB,IAChB,CAAC9C,EAAS,QAAUA,EAAS,OAAO,SAAW,GAC/C,QAAQ,IAAI,WAAW,EAChB,MAIPvG,EAAAA,IAAC6I,EACG,CAAA,SAAA7I,EAAA,IAACsJ,GAAI,CAAA,OAAQ,CAAC,EAAG,CAAC,EACb,SAAA/C,EAAS,OAAO,IAAI,CAACgD,EAAOjJ,IACxBN,EAAA,IAAAwJ,GAAA,CAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACnB,SAAAxJ,EAAAA,IAAC,MACG,CAAA,SAAAA,EAAA,IAACyJ,GAAA,CACG,IAAK,SAASnJ,EAAQ,CAAC,GACvB,IAAK,GAAGE,EAAc,WAAW+I,EAAM,QAAQ,GAC/C,QAAS,CAAE,IAAK,GAAG/I,EAAc,WAAW+I,EAAM,QAAQ,EAAG,EAC7D,MAAO,CACH,UAAW,QACX,YAAa,KACjB,CAAA,CAAA,CAER,CAAA,CAX4B,EAAAA,EAAM,EAYtC,CACH,EACL,CACJ,CAAA,EAIR,OACKzJ,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UACnB,SAAA,CAAAC,EAAA,IAAC2E,GAAQ,EAAA,EACT3E,EAAAA,IAAC6F,IAAM,MAAOwB,EAAQ,GAAK,EAAI,EAAI,YAAQ,mBAAoB,CAAA,EAC/DvH,EAAAA,KAACgG,GAAU,CAAA,KAAK,YACX,SAAA,CAAA0B,EAAO,IAAEC,GAAY,gBAAgBA,CAAQ,EAAA,EAClD,EAEC3H,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,kBACnB,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAWD,EAAO,eACnB,SAACC,EAAAA,IAAA0J,GAAA,CAAgB,SAAAnD,EAAoB,CACzC,CAAA,EACCzG,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,gBAClB,SAAA,CAAc2I,GAAA,EAEdU,GAAe,EAChBpJ,MAAC,OAAI,MAAO,CAAE,aAAc,QAAW,cAAkB,CAAA,EAC7D,CAAA,EACJ,CACJ,CAAA,CAAA,CAER,sYC7RM2J,GAAS,CACXvJ,EAAS,OACTA,EAAS,UACTA,EAAS,SACTA,EAAS,UACTA,EAAS,OACTA,EAAS,SACTA,EAAS,MACTA,EAAS,SACTA,EAAS,eACTA,EAAS,MACTA,EAAS,OACTA,EAAS,SACTA,EAAS,WACTA,EAAS,SACb,EAEA,SAASwJ,IAAgB,CACrB,MAAM3G,EAAWC,KACX,CAACC,EAAMC,CAAO,EAAInC,EAAA,SAAS,CAAE,CAAA,EAC7B,CAACH,EAAQuC,CAAS,EAAIpC,WAAS,EAAK,EAEpC4I,EAAcC,GADEvG,GAAUA,EAAM,WAAW,KACCwG,GAAUA,GAAA,YAAAA,EAAO,OAAQ1J,GAASA,EAAK,QAAU,GAAM,EACnGM,EAAa2C,EAAaC,GACrBsG,EAAYtG,CAAK,CAC3B,EACKC,EAAWF,EAAaC,GAAUA,EAAM,WAAW,QAAQ,EAC3D,CAAC9D,EAAcC,CAAe,EAAIC,EAAgB,EAExD,IAAIqK,EADW,IAAI,gBAAgBvK,CAAY,EACzB,IAAI,MAAM,GAAK,GACrC,KAAM,CAACwK,EAAcC,CAAe,EAAIjJ,WAAS+I,CAAQ,EAEzD5I,EAAAA,UAAU,IAAM,CACI+I,GAAA,EACjB,CAAC1K,EAAc+D,CAAQ,CAAC,EAE3BC,EAAAA,gBAAgB,IACL,IAAM,CACWC,GAAAT,EAAS,SAAWA,EAAS,MAAM,CAAA,EAE5D,CAAE,CAAA,EAEL7B,EAAAA,UAAU,IAAM,CACUuC,GAAAV,EAAS,SAAWA,EAAS,MAAM,CAAA,EAC1D,CAACE,CAAI,CAAC,EAET,MAAMgH,EAAkB,IAAM,CAC1B9G,EAAU,EAAK,EAET,MAAA/B,EADS,IAAI,gBAAgB7B,CAAY,EAC3B,IAAI,MAAM,EAC1B,IAAAqE,EAAU,CAAC,GAAGnD,CAAU,EAExBsJ,IACQ,QAAA,IAAI,eAAgBA,CAAY,EAC9BnG,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,IAAI0D,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAASkG,GAClB,MAAA,EACX,CACH,EAEQnG,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IAAM,CACd,MAAAC,EAAQF,EAAE,cAAc,KAAM3D,GAASA,EAAK,MAAQ4J,CAAY,EAAE,KAClE9F,EAAQF,EAAE,cAAc,KAAM5D,GAASA,EAAK,MAAQ4J,CAAY,EAAE,KACxE,OAAO/F,EAAQC,CAAA,IAKvB,MAAMW,EAAgB1E,EAAS,UAa/B,GAZU0D,EAAAA,EAAQ,OAAQzD,GAAS,OAC/B,IAAI0D,EAAA1D,EAAK,YAAL,MAAA0D,EAAgB,SAASe,GAClB,MAAA,EACX,CACH,EAEQhB,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IAAM,CACd,MAAAC,EAAQF,EAAE,cAAc,KAAM3D,GAASA,EAAK,MAAQyE,CAAa,EAAE,KACnEX,EAAQF,EAAE,cAAc,KAAM5D,GAASA,EAAK,MAAQyE,CAAa,EAAE,KACzE,OAAOZ,EAAQC,CAAA,GAGf7C,EAAM,CACA,MAAAmD,EAAkBC,GAChBA,EAAQ,aACDA,EAAQ,YAEZA,EAAQ,WAEnB,OAAQpD,EAAM,CACV,IAAK,YACQwC,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeT,EAAE,OAAO,EAAIS,EAAeR,EAAE,OAAO,GAE/D,MACJ,IAAK,aACQH,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeR,EAAE,OAAO,EAAIQ,EAAeT,EAAE,OAAO,GAE/D,KAGR,CACJ,CACAZ,EAAQU,CAAO,EACfT,EAAU,EAAI,CAAA,EAGZ+G,EAAqBzI,GAAU,CACjCuI,EAAiBG,GACNA,GAAQ1I,EAAQ,KAAOA,CACjC,EACK9B,MAAAA,EAAS,IAAI,gBAAgBJ,CAAY,EAC/CI,EAAO,IAAI,OAAQ8B,CAAK,EACxBjC,EAAgBG,CAAM,CAAA,EAGpByK,EAAS,IAENtK,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,iBAClB,SAAA,CAAC,GAAG4J,EAAM,EAAE,IAAI,CAACtJ,EAAMC,UAEf,MACG,CAAA,SAAAN,EAAA,IAACuK,GAAS,CAAA,QAASlK,GAAQ4J,EAAc,SAAU,IAAMG,EAAkB/J,CAAI,EAC1E,SAAAI,EAAeJ,CAAI,CACxB,CAAA,GAHMC,CAIV,CAEP,CACL,CAAA,EAIR,OACKR,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UACnB,SAAA,CAACD,EAAA,KAAA,UAAA,CAAQ,UAAWC,EAAO,iBACvB,SAAA,CAACC,EAAAA,IAAA,MAAA,CAAI,IAAKC,EAAa,CAAA,EACvBD,EAAAA,IAAC,OAAI,UAAWD,EAAO,gBACnB,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UAAW,SAAA,CAAA,QACxBC,EAAA,IAAA,OAAA,CAAK,UAAWD,EAAO,SAAU,SAAU,aAAA,CAAA,CAAA,CACrD,CACJ,CAAA,CAAA,EACJ,EACCD,EAAA,KAAA,UAAA,CAAQ,UAAWC,EAAO,kBACvB,SAAA,CAACC,EAAAA,IAAA,MAAA,CAAI,UAAWD,EAAO,MAAQ,WAAeU,EAAewJ,CAAY,EAAI,IAAK,CAAA,EAClFjK,EAAAA,IAACU,EAAW,CAAA,WAAYyC,EAAM,OAAArC,EAAgB,cAAgBd,EAAA,IAAAsK,EAAA,CAAO,CAAA,EAAI,aAAc,EAAO,CAAA,CAAA,EAClG,CACJ,CAAA,CAAA,CAER,geCxJME,GAAc,CAChB,CAAE,KAAM,KAAM,MAAOpK,EAAS,MAAO,EACrC,CAAE,KAAM,OAAQ,MAAOA,EAAS,GAAI,EACpC,CAAE,KAAM,MAAO,MAAOA,EAAS,SAAU,EACzC,CAAE,KAAM,QAAS,MAAOA,EAAS,GAAI,EACrC,CAAE,KAAM,OAAQ,MAAOA,EAAS,QAAS,EACzC,CAAE,KAAM,SAAU,MAAOA,EAAS,GAAI,EACtC,CAAE,KAAM,OAAQ,MAAOA,EAAS,SAAU,EAC1C,CAAE,KAAM,MAAO,MAAOA,EAAS,MAAO,EACtC,CAAE,KAAM,OAAQ,MAAOA,EAAS,QAAS,EACzC,CAAE,KAAM,SAAU,MAAOA,EAAS,EAAG,EACrC,CAAE,KAAM,KAAM,MAAOA,EAAS,KAAM,EACpC,CAAE,KAAM,OAAQ,MAAOA,EAAS,EAAG,EACnC,CAAE,KAAM,MAAO,MAAOA,EAAS,QAAS,EACxC,CAAE,KAAM,QAAS,MAAOA,EAAS,QAAS,EAC1C,CAAE,KAAM,QAAS,MAAOA,EAAS,cAAe,EAChD,CAAE,KAAM,MAAO,MAAOA,EAAS,KAAM,EACrC,CAAE,KAAM,MAAO,MAAOA,EAAS,MAAO,EACtC,CAAE,KAAM,MAAO,MAAOA,EAAS,UAAW,CAC9C,EAEA,SAASqK,IAAe,CACpB,MAAM9J,EAAa2C,EAAaC,GAAUA,EAAM,WAAW,IAAI,EACzDC,EAAWF,EAAaC,GAAUA,EAAM,WAAW,QAAQ,EAC3D,CAAC9D,EAAcC,CAAe,EAAIC,EAAgB,EAClD,CAACsK,EAAcC,CAAe,EAAIjJ,EAAS,SAAA,EAE3C,CAACkC,EAAMC,CAAO,EAAInC,EAAA,SAAS,CAAE,CAAA,EAEnCG,EAAAA,UAAU,IAAM,CACKwC,IAEXqG,MAAAA,EADS,IAAI,gBAAgBxK,CAAY,EACnB,IAAI,MAAM,EACtCyK,EAAgBD,CAAY,CAAA,EAC7B,CAACzG,EAAU/D,CAAY,CAAC,EAE3B,MAAMmE,EAAmB,IAAM,CAE3B,IAAI8G,EAAoB,CAACtK,EAAS,QAASA,EAAS,IAAI,EAClD,MAAAP,EAAS,IAAI,gBAAgBJ,CAAY,EACzC6B,EAAOzB,EAAO,IAAI,MAAM,EACxBoK,EAAepK,EAAO,IAAI,MAAM,EAElC,IAAAiE,EAAU,CAAC,GAAGnD,CAAU,EA6B5B,GA1BUmD,EAAAnD,EAAW,OAAQN,GAElBqK,EAAkB,KAAMrJ,GAAA,OAAa,OAAA0C,EAAA1D,EAAK,YAAL,YAAA0D,EAAgB,SAAS1C,GAAS,CACjF,EAGG4I,IACUnG,EAAAA,EAAQ,OAAQzD,GAAA,OAAS,OAAA0D,EAAA1D,EAAK,YAAL,YAAA0D,EAAgB,SAASkG,GAAa,GAIpEnG,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IAAM,CAEd,MAAA0G,EAAmBpE,GAAa,CAClC,MAAMqE,EAAgBrE,EAAS,cAC1B,OAAQlG,GAASqK,EAAkB,SAASrK,EAAK,IAAI,CAAC,EACtD,IAAKA,GAASA,EAAK,IAAI,EACrB,OAAA,KAAK,IAAI,GAAGuK,CAAa,CAAA,EAG9B1G,EAAQyG,EAAgB3G,CAAC,EACzBG,EAAQwG,EAAgB1G,CAAC,EAC/B,OAAOC,EAAQC,CAAA,GAIf7C,EAAM,CACA,MAAAmD,EAAkBC,GAChBA,EAAQ,aACDA,EAAQ,YAEZA,EAAQ,WAGnB,OAAQpD,EAAM,CACV,IAAK,YACQwC,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeT,EAAE,OAAO,EAAIS,EAAeR,EAAE,OAAO,GAE/D,MACJ,IAAK,aACQH,GAAA,MAAAA,EAAA,KAAK,CAACE,EAAGC,IACPQ,EAAeR,EAAE,OAAO,EAAIQ,EAAeT,EAAE,OAAO,GAE/D,KAGR,CACJ,CACAZ,EAAQU,CAAO,CAAA,EAGbtC,EAAuB,CAACC,EAAGE,IAAU,CACjC,MAAA9B,EAAS,IAAI,gBAAgBJ,CAAY,EAC1BI,EAAO,IAAI,MAAM,GAClB8B,EAChB9B,EAAO,OAAO,MAAM,EAEbA,EAAA,IAAI,OAAQ8B,CAAK,EAE5BjC,EAAgBG,CAAM,CAAA,EAG1B,OACKC,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,UACnB,SAAA,CAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,OAAQ,SAAA,CAAA,qBACRkK,GAAgB,IAAIxJ,EAAewJ,CAAY,CAAC,IAAI9G,EAAK,MAAM,KAAM,GAAA,EAC5F,EACCK,GAAaxD,EAAAA,IAAA,MAAA,CAAI,SAAM,QAAA,CAAA,EAEvBF,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,kBACnB,SAAA,CAAAC,MAAC,MAAI,CAAA,UAAWD,EAAO,iBACnB,SAACC,MAAA,MAAA,CAAI,UAAWD,EAAO,OACnB,SAAAD,OAAC,MAAI,CAAA,UAAWC,EAAO,eACnB,SAAA,CAAAC,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,MAAO,SAAE,KAAA,EAC/ByK,GAAY,IAAI,CAACnK,EAAMC,IAEhBN,EAAA,IAAC,OAAgB,UAAWD,EAAO,eAC/B,SAACD,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,mBACnB,SAAA,CAAAC,EAAA,IAAC,QAAA,CACG,KAAMK,EAAK,MACX,KAAK,WACL,GAAIA,EAAK,MACT,MAAOA,EAAK,MACZ,SAAWoB,GAAMD,EAAqBC,EAAGpB,EAAK,KAAK,EACnD,QAAS4J,GAAgB5J,EAAK,KAAA,CAClC,QACC,QAAM,CAAA,QAASA,EAAK,MAAQ,WAAK,KAAK,CAAA,EAC3C,GAXMC,CAYV,CAEP,CAAA,CACL,CAAA,CACJ,CAAA,EACJ,EACAN,EAAA,IAAC,MAAI,CAAA,UAAWD,EAAO,eACnB,SAACC,EAAAA,IAAA6B,GAAA,CAAe,WAAYsB,EAAM,YAAa,EAAA,CAAM,CACzD,CAAA,CAAA,EACJ,CACJ,CAAA,CAAA,CAER,CC/IA,SAAS0H,IAAQ,CACb,MAAMrH,EAAWF,EAAaC,GAAUA,EAAM,WAAW,QAAQ,EACjE,OAEQzD,EAAA,KAAAmJ,WAAA,CAAA,SAAA,CAAAnJ,OAACgL,EACG,CAAA,SAAA,CAAA9K,EAAA,IAAC+K,EAAA,CACG,KAAK,aACL,MAAK,GACL,eACKD,EACG,CAAA,SAAA,CAAC9K,EAAAA,IAAA+K,EAAA,CAAM,KAAK,GAAG,MAAK,GAAC,QAAS/K,EAAA,IAACV,KAAW,CAAI,CAAA,EAC9CU,EAAAA,IAAC+K,GAAM,KAAK,UAAU,MAAK,GAAC,QAAU/K,EAAA,IAAAgL,GAAA,CAAA,CAAiB,CAAI,CAAA,CAAA,EAC/D,CAAA,CAER,EACAhL,EAAA,IAAC+K,EAAA,CACG,KAAK,qBACL,MAAK,GACL,cACKD,EACG,CAAA,SAAA9K,EAAA,IAAC+K,EAAA,CACG,KAAK,GACL,MAAK,GACL,QACK/K,EAAAA,IAAA6E,GAAA,CAAS,MAAM,UAAU,cAAezE,EAAS,wBAAyB,CAAA,CAAA,EAGvF,CAAA,CAER,EACAJ,EAAA,IAAC+K,EAAA,CACG,KAAK,oBACL,MAAK,GACL,QACI/K,EAAA,IAAC8K,EACG,CAAA,SAAA9K,EAAA,IAAC+K,EAAM,CAAA,KAAK,GAAG,MAAK,GAAC,QAAU/K,EAAAA,IAAAyK,GAAA,CAAa,CAAA,CAAI,CAAA,EACpD,CAAA,CAER,EACAzK,EAAA,IAAC+K,EAAA,CACG,KAAK,aACL,MAAK,GACL,cACKD,EACG,CAAA,SAAA9K,EAAA,IAAC+K,EAAA,CACG,KAAK,GACL,MAAK,GACL,QAAU/K,EAAAA,IAAA6E,GAAA,CAAS,MAAM,SAAS,cAAezE,EAAS,QAAS,CAAA,CAAA,EAE3E,CAAA,CAER,QACC2K,EAAM,CAAA,KAAK,eAAe,QAAS/K,MAAC4J,IAAc,CAAA,EAAI,EAEvD5J,EAAAA,IAAC+K,GAAM,KAAK,OAAO,MAAK,GAAC,QAAU/K,EAAA,IAAAkG,GAAA,CAAA,CAAoB,CAAI,CAAA,CAAA,EAC/D,EACAlG,EAAAA,IAACiL,GAAO,CAAA,OAAQzH,EAAU,KAAI,GAAC,SAAQ,GACnC,SAACxD,EAAAA,IAAA4E,GAAA,CAAA,CAAO,CACZ,CAAA,CACJ,CAAA,CAAA,CAER"}