@quantabit/lottery-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +68 -0
- package/dist/index.cjs +1136 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +1106 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.iife.js +1137 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.umd.js +1138 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/styles.css +1 -0
- package/package.json +79 -0
- package/types/index.d.ts +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/services/lotteryApi.js","../src/types.js","../src/i18n/index.js","../src/hooks/useLottery.js","../src/components/Lottery.jsx","../src/index.js"],"sourcesContent":["/**\n * Lottery SDK - API 客户端\n * 抽奖系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 抽奖 API 客户端\n */\nexport class LotteryApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/lottery', config);\n }\n\n // ============ 抽奖活动 ============\n\n /**\n * 获取进行中的抽奖活动\n */\n async getActiveLotteries() {\n return this.get('/active');\n }\n\n /**\n * 获取抽奖活动列表\n * @param {Object} params - 查询参数\n */\n async getLotteries(params = {}) {\n return this.get('/list', params);\n }\n\n /**\n * 获取抽奖活动详情\n * @param {string} lotteryId - 活动 ID\n */\n async getLottery(lotteryId) {\n return this.get(`/${lotteryId}`);\n }\n\n /**\n * 获取奖品列表\n * @param {string} lotteryId - 活动 ID\n */\n async getPrizes(lotteryId) {\n return this.get(`/${lotteryId}/prizes`);\n }\n\n // ============ 抽奖操作 ============\n\n /**\n * 执行抽奖\n * @param {string} lotteryId - 活动 ID\n * @param {number} times - 抽奖次数\n */\n async draw(lotteryId, times = 1) {\n return this.post(`/${lotteryId}/draw`, { times });\n }\n\n /**\n * 批量抽奖(十连抽等)\n * @param {string} lotteryId - 活动 ID\n * @param {number} count - 次数\n */\n async batchDraw(lotteryId, count) {\n return this.post(`/${lotteryId}/draw/batch`, { count });\n }\n\n /**\n * 获取抽奖资格\n * @param {string} lotteryId - 活动 ID\n */\n async getDrawChances(lotteryId) {\n return this.get(`/${lotteryId}/chances`);\n }\n\n /**\n * 获取额外抽奖机会(观看广告等)\n * @param {string} lotteryId - 活动 ID\n * @param {string} method - 获取方式\n */\n async earnChance(lotteryId, method) {\n return this.post(`/${lotteryId}/chances/earn`, { method });\n }\n\n // ============ 中奖记录 ============\n\n /**\n * 获取中奖记录\n * @param {string} lotteryId - 活动 ID\n * @param {Object} params - 查询参数\n */\n async getWinningRecords(lotteryId, params = {}) {\n return this.get(`/${lotteryId}/records`, params);\n }\n\n /**\n * 获取我的中奖记录\n * @param {Object} params - 查询参数\n */\n async getMyWinnings(params = {}) {\n return this.get('/my/winnings', params);\n }\n\n /**\n * 获取最新中奖公告\n * @param {string} lotteryId - 活动 ID\n * @param {number} limit - 返回数量\n */\n async getLatestWinners(lotteryId, limit = 10) {\n return this.get(`/${lotteryId}/winners/latest`, { limit });\n }\n\n // ============ 奖品领取 ============\n\n /**\n * 领取奖品\n * @param {string} recordId - 中奖记录 ID\n * @param {Object} receiveData - 领取信息\n */\n async claimPrize(recordId, receiveData = {}) {\n return this.post(`/winnings/${recordId}/claim`, receiveData);\n }\n\n /**\n * 获取待领取奖品\n */\n async getPendingPrizes() {\n return this.get('/my/pending');\n }\n\n /**\n * 获取奖品物流信息\n * @param {string} recordId - 中奖记录 ID\n */\n async getPrizeShipping(recordId) {\n return this.get(`/winnings/${recordId}/shipping`);\n }\n\n // ============ 活动统计 ============\n\n /**\n * 获取活动统计\n * @param {string} lotteryId - 活动 ID\n */\n async getLotteryStats(lotteryId) {\n return this.get(`/${lotteryId}/stats`);\n }\n\n /**\n * 获取中奖概率(如果公开)\n * @param {string} lotteryId - 活动 ID\n */\n async getOdds(lotteryId) {\n return this.get(`/${lotteryId}/odds`);\n }\n\n // ============ 管理员操作 ============\n\n /**\n * 创建抽奖活动(管理员)\n * @param {Object} data - 活动数据\n */\n async createLottery(data) {\n return this.post('/admin', data);\n }\n\n /**\n * 更新抽奖活动(管理员)\n * @param {string} lotteryId - 活动 ID\n * @param {Object} updates - 更新数据\n */\n async updateLottery(lotteryId, updates) {\n return this.put(`/admin/${lotteryId}`, updates);\n }\n\n /**\n * 获取活动统计(管理员)\n * @param {string} lotteryId - 活动 ID\n */\n async getAdminStats(lotteryId) {\n return this.get(`/admin/${lotteryId}/stats`);\n }\n\n // ============ 兼容性别名 ============\n\n /**\n * 获取我的奖品 (别名)\n */\n async getMyPrizes(params = {}) {\n return this.getMyWinnings(params);\n }\n\n /**\n * 获取中奖者 (别名)\n */\n async getWinners(lotteryId, limit = 10) {\n return this.getLatestWinners(lotteryId, limit);\n }\n}\n\n// 创建默认实例\nexport const lotteryApi = new LotteryApiClient();\n\n\n\nexport default lotteryApi;\n","\nexport const LotteryType = {};\n\nexport const PrizeLevel = {};\n","/**\n * Lottery SDK - 国际化\n * 抽奖系统多语言支持\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n // 抽奖\n lottery: '抽奖',\n draw: '抽奖',\n luckyDraw: '幸运抽奖',\n \n // 类型\n wheel: '转盘',\n scratch: '刮刮卡',\n slot: '老虎机',\n card: '翻牌',\n shake: '摇一摇',\n \n // 操作\n start: '开始抽奖',\n draw: '抽奖',\n spin: '转动',\n scratch: '刮开',\n flip: '翻牌',\n shake: '摇一摇',\n tryAgain: '再试一次',\n \n // 机会\n chances: '抽奖次数',\n remaining: '剩余',\n noChances: '暂无抽奖机会',\n getMoreChances: '获取更多机会',\n \n // 结果\n congratulations: '恭喜!',\n won: '获得',\n thanksForPlaying: '谢谢参与',\n noLuck: '未中奖',\n prizeClaimed: '奖品已发放',\n \n // 奖品\n prize: '奖品',\n prizes: '奖品列表',\n myPrizes: '我的奖品',\n grandPrize: '大奖',\n firstPrize: '一等奖',\n secondPrize: '二等奖',\n thirdPrize: '三等奖',\n consolation: '安慰奖',\n \n // 概率\n probability: '概率',\n rare: '稀有',\n normal: '普通',\n \n // 规则\n rules: '抽奖规则',\n howToPlay: '玩法说明',\n \n // 历史\n history: '抽奖记录',\n winners: '中奖名单',\n recentWinners: '最近中奖',\n \n // 状态\n loading: '加载中...',\n processing: '正在抽奖...',\n \n // 时间\n startsIn: '距开始',\n endsIn: '距结束',\n ended: '已结束',\n \n // 活动\n eventName: '活动名称',\n eventPeriod: '活动时间',\n },\n en: {\n lottery: 'Lottery',\n draw: 'Draw',\n luckyDraw: 'Lucky Draw',\n \n wheel: 'Wheel',\n scratch: 'Scratch Card',\n slot: 'Slot Machine',\n card: 'Card Flip',\n shake: 'Shake',\n \n start: 'Start',\n spin: 'Spin',\n flip: 'Flip',\n tryAgain: 'Try Again',\n \n chances: 'Chances',\n remaining: 'remaining',\n noChances: 'No chances left',\n getMoreChances: 'Get More Chances',\n \n congratulations: 'Congratulations!',\n won: 'You won',\n thanksForPlaying: 'Thanks for playing',\n noLuck: 'No Luck',\n prizeClaimed: 'Prize claimed',\n \n prize: 'Prize',\n prizes: 'Prizes',\n myPrizes: 'My Prizes',\n grandPrize: 'Grand Prize',\n firstPrize: '1st Prize',\n secondPrize: '2nd Prize',\n thirdPrize: '3rd Prize',\n consolation: 'Consolation',\n \n probability: 'Probability',\n rare: 'Rare',\n normal: 'Normal',\n \n rules: 'Rules',\n howToPlay: 'How to Play',\n \n history: 'History',\n winners: 'Winners',\n recentWinners: 'Recent Winners',\n \n loading: 'Loading...',\n processing: 'Drawing...',\n \n startsIn: 'Starts in',\n endsIn: 'Ends in',\n ended: 'Ended',\n \n eventName: 'Event Name',\n eventPeriod: 'Event Period',\n },\n ja: {\n lottery: '抽選',\n draw: '抽選',\n luckyDraw: 'ラッキードロー',\n \n wheel: 'ルーレット',\n scratch: 'スクラッチカード',\n slot: 'スロット',\n card: 'カードフリップ',\n shake: 'シェイク',\n \n start: 'スタート',\n spin: '回す',\n flip: 'めくる',\n tryAgain: 'もう一度',\n \n chances: '残り回数',\n remaining: '回',\n noChances: 'チャンスなし',\n getMoreChances: 'チャンスを獲得',\n \n congratulations: 'おめでとう!',\n won: '獲得',\n thanksForPlaying: 'ご参加ありがとう',\n noLuck: '残念',\n prizeClaimed: '賞品を獲得',\n \n prize: '賞品',\n prizes: '賞品リスト',\n myPrizes: 'マイ賞品',\n grandPrize: '大賞',\n firstPrize: '1等',\n secondPrize: '2等',\n thirdPrize: '3等',\n consolation: '参加賞',\n \n probability: '確率',\n rare: 'レア',\n normal: 'ノーマル',\n \n rules: 'ルール',\n howToPlay: '遊び方',\n \n history: '履歴',\n winners: '当選者',\n recentWinners: '最近の当選者',\n \n loading: '読み込み中...',\n processing: '抽選中...',\n \n startsIn: '開始まで',\n endsIn: '終了まで',\n ended: '終了',\n \n eventName: 'イベント名',\n eventPeriod: 'イベント期間',\n },\n ko: {\n lottery: '추첨',\n draw: '추첨',\n luckyDraw: '행운 추첨',\n \n wheel: '룰렛',\n scratch: '스크래치 카드',\n slot: '슬롯',\n card: '카드 뒤집기',\n shake: '흔들기',\n \n start: '시작',\n spin: '돌리기',\n flip: '뒤집기',\n tryAgain: '다시 시도',\n \n chances: '남은 기회',\n remaining: '회',\n noChances: '기회 없음',\n getMoreChances: '기회 받기',\n \n congratulations: '축하합니다!',\n won: '획득',\n thanksForPlaying: '참가해 주셔서 감사합니다',\n noLuck: '아쉽네요',\n prizeClaimed: '경품 획득',\n \n prize: '경품',\n prizes: '경품 목록',\n myPrizes: '내 경품',\n grandPrize: '대상',\n firstPrize: '1등',\n secondPrize: '2등',\n thirdPrize: '3등',\n consolation: '참가상',\n \n probability: '확률',\n rare: '레어',\n normal: '일반',\n \n rules: '규칙',\n howToPlay: '플레이 방법',\n \n history: '기록',\n winners: '당첨자',\n recentWinners: '최근 당첨자',\n \n loading: '로딩 중...',\n processing: '추첨 중...',\n \n startsIn: '시작까지',\n endsIn: '종료까지',\n ended: '종료',\n \n eventName: '이벤트 이름',\n eventPeriod: '이벤트 기간',\n },\n};\n\nlet currentLanguage = 'zh';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","/**\n * Lottery SDK - React Hooks\n * 抽奖系统相关的状态管理\n */\n\nimport { useState, useEffect, useCallback, useRef } from 'react';\nimport { lotteryApi } from '../services/lotteryApi';\n\n/**\n * 抽奖活动\n */\nexport function useLottery(lotteryId) {\n const [lottery, setLottery] = useState(null);\n const [chances, setChances] = useState(0);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n\n const fetchLottery = useCallback(async () => {\n if (!lotteryId) return;\n \n try {\n setLoading(true);\n const response = await lotteryApi.getLottery(lotteryId);\n setLottery(response.lottery);\n setChances(response.chances || 0);\n setError(null);\n } catch (err) {\n setError(err.message);\n } finally {\n setLoading(false);\n }\n }, [lotteryId]);\n\n useEffect(() => {\n fetchLottery();\n }, [fetchLottery]);\n\n return { lottery, chances, loading, error, refresh: fetchLottery };\n}\n\n/**\n * 抽奖\n */\nexport function useDraw(lotteryId) {\n const [drawing, setDrawing] = useState(false);\n const [result, setResult] = useState(null);\n const [error, setError] = useState(null);\n\n const draw = useCallback(async () => {\n try {\n setDrawing(true);\n setResult(null);\n setError(null);\n \n const response = await lotteryApi.draw(lotteryId);\n setResult(response);\n return response;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setDrawing(false);\n }\n }, [lotteryId]);\n\n const reset = useCallback(() => {\n setResult(null);\n setError(null);\n }, []);\n\n return { draw, drawing, result, error, reset };\n}\n\n/**\n * 转盘抽奖\n */\nexport function useSpinWheel(prizes) {\n const [spinning, setSpinning] = useState(false);\n const [rotation, setRotation] = useState(0);\n const [resultIndex, setResultIndex] = useState(null);\n\n const spin = useCallback((targetIndex) => {\n if (spinning) return;\n \n setSpinning(true);\n setResultIndex(null);\n\n // 计算旋转角度\n const segments = prizes.length;\n const segmentAngle = 360 / segments;\n const extraRotations = 5; // 额外转5圈\n const targetRotation = rotation + (extraRotations * 360) + (segments - targetIndex) * segmentAngle + segmentAngle / 2;\n\n setRotation(targetRotation);\n\n // 动画完成后\n setTimeout(() => {\n setSpinning(false);\n setResultIndex(targetIndex);\n }, 4000);\n }, [spinning, rotation, prizes.length]);\n\n const reset = useCallback(() => {\n setResultIndex(null);\n }, []);\n\n return { spin, spinning, rotation, resultIndex, reset };\n}\n\n/**\n * 刮刮卡\n */\nexport function useScratchCard() {\n const [scratched, setScratched] = useState(false);\n const [scratchPercent, setScratchPercent] = useState(0);\n const canvasRef = useRef(null);\n\n const initCard = useCallback((canvas, coverImage) => {\n if (!canvas) return;\n \n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n };\n img.src = coverImage || 'data:image/png;base64,...'; // 默认封面\n \n canvasRef.current = canvas;\n }, []);\n\n const handleScratch = useCallback((e) => {\n if (!canvasRef.current) return;\n \n const canvas = canvasRef.current;\n const ctx = canvas.getContext('2d');\n const rect = canvas.getBoundingClientRect();\n \n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n \n ctx.globalCompositeOperation = 'destination-out';\n ctx.beginPath();\n ctx.arc(x, y, 20, 0, Math.PI * 2);\n ctx.fill();\n \n // 计算已刮开百分比\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n let scratched = 0;\n for (let i = 3; i < imageData.data.length; i += 4) {\n if (imageData.data[i] === 0) scratched++;\n }\n const percent = (scratched / (imageData.data.length / 4)) * 100;\n setScratchPercent(percent);\n \n if (percent > 50) {\n setScratched(true);\n }\n }, []);\n\n return { scratched, scratchPercent, initCard, handleScratch };\n}\n\n/**\n * 翻牌\n */\nexport function useCardFlip(cardCount = 9) {\n const [flippedCards, setFlippedCards] = useState([]);\n const [selectedCard, setSelectedCard] = useState(null);\n const [revealed, setRevealed] = useState(false);\n\n const flipCard = useCallback((index) => {\n if (revealed || flippedCards.includes(index)) return;\n \n setSelectedCard(index);\n setFlippedCards([index]);\n }, [revealed, flippedCards]);\n\n const revealAll = useCallback(() => {\n setRevealed(true);\n setFlippedCards(Array.from({ length: cardCount }, (_, i) => i));\n }, [cardCount]);\n\n const reset = useCallback(() => {\n setFlippedCards([]);\n setSelectedCard(null);\n setRevealed(false);\n }, []);\n\n return { flippedCards, selectedCard, revealed, flipCard, revealAll, reset };\n}\n\n/**\n * 抽奖历史\n */\nexport function useLotteryHistory(lotteryId) {\n const [history, setHistory] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const fetchHistory = useCallback(async () => {\n try {\n setLoading(true);\n const response = await lotteryApi.getHistory(lotteryId);\n setHistory(response.data || []);\n } catch (err) {\n console.error('Get history error:', err);\n } finally {\n setLoading(false);\n }\n }, [lotteryId]);\n\n useEffect(() => {\n fetchHistory();\n }, [fetchHistory]);\n\n return { history, loading, refresh: fetchHistory };\n}\n\n/**\n * 中奖名单\n */\nexport function useWinners(lotteryId) {\n const [winners, setWinners] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const fetchWinners = useCallback(async () => {\n try {\n setLoading(true);\n const response = await lotteryApi.getWinners(lotteryId);\n setWinners(response.data || []);\n } catch (err) {\n console.error('Get winners error:', err);\n } finally {\n setLoading(false);\n }\n }, [lotteryId]);\n\n useEffect(() => {\n fetchWinners();\n }, [fetchWinners]);\n\n return { winners, loading, refresh: fetchWinners };\n}\n\n/**\n * 我的奖品\n */\nexport function useMyPrizes() {\n const [prizes, setPrizes] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const fetchPrizes = useCallback(async () => {\n try {\n setLoading(true);\n const response = await lotteryApi.getMyPrizes();\n setPrizes(response.data || []);\n } catch (err) {\n console.error('Get my prizes error:', err);\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n fetchPrizes();\n }, [fetchPrizes]);\n\n const claimPrize = useCallback(async (prizeId) => {\n try {\n await lotteryApi.claimPrize(prizeId);\n setPrizes(prev => prev.map(p => \n p.id === prizeId ? { ...p, claimed: true } : p\n ));\n } catch (err) {\n console.error('Claim prize error:', err);\n throw err;\n }\n }, []);\n\n return { prizes, loading, claimPrize, refresh: fetchPrizes };\n}\n\n/**\n * 倒计时\n */\nexport function useLotteryCountdown(endTime) {\n const [remaining, setRemaining] = useState({ days: 0, hours: 0, minutes: 0, seconds: 0 });\n const [isEnded, setIsEnded] = useState(false);\n\n useEffect(() => {\n if (!endTime) return;\n\n const updateCountdown = () => {\n const now = Date.now();\n const end = new Date(endTime).getTime();\n const diff = end - now;\n\n if (diff <= 0) {\n setIsEnded(true);\n setRemaining({ days: 0, hours: 0, minutes: 0, seconds: 0 });\n return;\n }\n\n setRemaining({\n days: Math.floor(diff / (1000 * 60 * 60 * 24)),\n hours: Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),\n minutes: Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)),\n seconds: Math.floor((diff % (1000 * 60)) / 1000),\n });\n };\n\n updateCountdown();\n const timer = setInterval(updateCountdown, 1000);\n\n return () => clearInterval(timer);\n }, [endTime]);\n\n return { remaining, isEnded };\n}\n\n","/**\n * Lottery SDK - React 组件\n * 抽奖系统可视化组件\n */\n\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n useLottery,\n useDraw,\n useSpinWheel,\n useCardFlip,\n useLotteryHistory,\n useWinners,\n useMyPrizes,\n useLotteryCountdown,\n} from '../hooks/useLottery';\nimport { t } from '../i18n';\nimport './Lottery.css';\n\n/**\n * 转盘抽奖\n */\nexport function SpinWheel({ lotteryId, prizes, onResult }) {\n const { chances, refresh } = useLottery(lotteryId);\n const { draw, drawing } = useDraw(lotteryId);\n const { spin, spinning, rotation, resultIndex, reset } = useSpinWheel(prizes);\n\n const handleSpin = useCallback(async () => {\n if (spinning || drawing || chances <= 0) return;\n\n try {\n const result = await draw();\n // 找到获奖奖品的索引\n const prizeIndex = prizes.findIndex(p => p.id === result.prizeId);\n spin(prizeIndex >= 0 ? prizeIndex : 0);\n \n // 动画完成后回调\n setTimeout(() => {\n onResult?.(result);\n refresh();\n }, 4500);\n } catch (err) {\n console.error('Draw error:', err);\n }\n }, [spinning, drawing, chances, draw, spin, prizes, onResult, refresh]);\n\n return (\n <div className=\"eco-lottery-wheel\">\n <div className=\"eco-lottery-wheel-container\">\n <div\n className=\"eco-lottery-wheel-disc\"\n style={{ transform: `rotate(${rotation}deg)` }}\n >\n {prizes.map((prize, qbit) => {\n const angle = (360 / prizes.length) * qbit;\n return (\n <div\n key={prize.id}\n className=\"eco-lottery-wheel-segment\"\n style={{\n transform: `rotate(${angle}deg)`,\n backgroundColor: qbit % 2 === 0 ? '#6366f1' : '#8b5cf6',\n }}\n >\n <span className=\"eco-lottery-wheel-prize\">{prize.name}</span>\n </div>\n );\n })}\n </div>\n <div className=\"eco-lottery-wheel-pointer\">▼</div>\n </div>\n\n <div className=\"eco-lottery-chances\">\n {t('chances')}: <strong>{chances}</strong>\n </div>\n\n <button\n className=\"eco-lottery-spin-btn\"\n onClick={handleSpin}\n disabled={spinning || drawing || chances <= 0}\n >\n {spinning ? t('processing') : t('spin')}\n </button>\n </div>\n );\n}\n\n/**\n * 翻牌抽奖\n */\nexport function CardFlipGame({ lotteryId, cardCount = 9, prizes, onResult }) {\n const { chances, refresh } = useLottery(lotteryId);\n const { draw, drawing } = useDraw(lotteryId);\n const { flippedCards, selectedCard, flipCard, revealAll, reset } = useCardFlip(cardCount);\n const [result, setResult] = React.useState(null);\n\n const handleFlip = useCallback(async (index) => {\n if (drawing || chances <= 0 || flippedCards.length > 0) return;\n\n try {\n const drawResult = await draw();\n setResult(drawResult);\n flipCard(index);\n \n setTimeout(() => {\n revealAll();\n onResult?.(drawResult);\n refresh();\n }, 1500);\n } catch (err) {\n console.error('Draw error:', err);\n }\n }, [drawing, chances, flippedCards, draw, flipCard, revealAll, onResult, refresh]);\n\n const handleReset = useCallback(() => {\n reset();\n setResult(null);\n }, [reset]);\n\n return (\n <div className=\"eco-lottery-cards\">\n <div className=\"eco-lottery-cards-grid\">\n {Array.from({ length: cardCount }).map((_, qbit) => {\n const isFlipped = flippedCards.includes(qbit);\n const isSelected = selectedCard === qbit;\n const prizeForCard = isSelected ? result?.prize : prizes[qbit % prizes.length];\n\n return (\n <div\n key={qbit}\n className={`eco-lottery-card ${isFlipped ? 'flipped' : ''} ${isSelected ? 'selected' : ''}`}\n onClick={() => handleFlip(qbit)}\n >\n <div className=\"eco-lottery-card-inner\">\n <div className=\"eco-lottery-card-front\">?</div>\n <div className=\"eco-lottery-card-back\">\n {isFlipped && (\n <>\n <img src={prizeForCard?.image || '/prize.png'} alt={prizeForCard?.name} />\n <span>{prizeForCard?.name}</span>\n </>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n <div className=\"eco-lottery-chances\">\n {t('chances')}: <strong>{chances}</strong>\n </div>\n\n {flippedCards.length > 0 && (\n <button className=\"eco-lottery-reset-btn\" onClick={handleReset}>\n {t('tryAgain')}\n </button>\n )}\n </div>\n );\n}\n\n/**\n * 抽奖结果弹窗\n */\nexport function LotteryResultModal({ result, onClose }) {\n if (!result) return null;\n\n const isWin = result.prize && !result.prize.isConsolation;\n\n return (\n <div className=\"eco-lottery-result-modal\">\n <div className=\"eco-lottery-result-overlay\" onClick={onClose} />\n <div className=\"eco-lottery-result-content\">\n <div className={`eco-lottery-result-icon ${isWin ? 'win' : 'lose'}`}>\n {isWin ? '🎉' : '😢'}\n </div>\n <h3>{isWin ? t('congratulations') : t('thanksForPlaying')}</h3>\n {result.prize ? (\n <>\n <img src={result.prize.image || '/prize.png'} alt={result.prize.name} />\n <p>{t('won')}: <strong>{result.prize.name}</strong></p>\n </>\n ) : (\n <p>{t('noLuck')}</p>\n )}\n <button onClick={onClose}>{t('tryAgain')}</button>\n </div>\n </div>\n );\n}\n\n/**\n * 中奖名单滚动\n */\nexport function WinnersMarquee({ lotteryId }) {\n const { winners } = useWinners(lotteryId);\n\n if (winners.length === 0) return null;\n\n return (\n <div className=\"eco-lottery-marquee\">\n <span className=\"eco-lottery-marquee-label\">🏆 {t('recentWinners')}</span>\n <div className=\"eco-lottery-marquee-content\">\n <div className=\"eco-lottery-marquee-track\">\n {[...winners, ...winners].map((w, qbit) => (\n <span key={qbit} className=\"eco-lottery-marquee-item\">\n {w.userName} 获得 {w.prizeName}\n </span>\n ))}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * 奖品列表\n */\nexport function PrizeList({ prizes }) {\n return (\n <div className=\"eco-lottery-prizes\">\n <h4>{t('prizes')}</h4>\n <div className=\"eco-lottery-prizes-grid\">\n {prizes.map((prize) => (\n <div key={prize.id} className={`eco-lottery-prize ${prize.rare ? 'rare' : ''}`}>\n <img src={prize.image || '/prize.png'} alt={prize.name} />\n <span className=\"eco-lottery-prize-name\">{prize.name}</span>\n {prize.probability && (\n <span className=\"eco-lottery-prize-prob\">{prize.probability}%</span>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n/**\n * 我的奖品\n */\nexport function MyPrizesList() {\n const { prizes, loading, claimPrize } = useMyPrizes();\n\n if (loading) {\n return (\n <div className=\"eco-lottery-loading\">\n <div className=\"eco-lottery-spinner\" />\n </div>\n );\n }\n\n if (prizes.length === 0) {\n return (\n <div className=\"eco-lottery-empty\">\n <span>🎁</span>\n <p>暂无奖品</p>\n </div>\n );\n }\n\n return (\n <div className=\"eco-lottery-my-prizes\">\n <h4>{t('myPrizes')}</h4>\n {prizes.map((prize) => (\n <div key={prize.id} className=\"eco-lottery-my-prize\">\n <img src={prize.image || '/prize.png'} alt={prize.name} />\n <div className=\"eco-lottery-my-prize-info\">\n <span className=\"eco-lottery-my-prize-name\">{prize.name}</span>\n <span className=\"eco-lottery-my-prize-time\">\n {new Date(prize.wonAt).toLocaleDateString()}\n </span>\n </div>\n {!prize.claimed ? (\n <button onClick={() => claimPrize(prize.id)}>领取</button>\n ) : (\n <span className=\"eco-lottery-claimed\">{t('prizeClaimed')}</span>\n )}\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * 倒计时\n */\nexport function LotteryCountdown({ endTime }) {\n const { remaining, isEnded } = useLotteryCountdown(endTime);\n\n if (isEnded) {\n return <div className=\"eco-lottery-countdown ended\">{t('ended')}</div>;\n }\n\n return (\n <div className=\"eco-lottery-countdown\">\n <span className=\"eco-lottery-countdown-label\">{t('endsIn')}</span>\n <div className=\"eco-lottery-countdown-timer\">\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{remaining.days}</span>\n <span className=\"eco-lottery-countdown-unit\">天</span>\n </div>\n <span className=\"eco-lottery-countdown-sep\">:</span>\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{String(remaining.hours).padStart(2, '0')}</span>\n <span className=\"eco-lottery-countdown-unit\">时</span>\n </div>\n <span className=\"eco-lottery-countdown-sep\">:</span>\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{String(remaining.minutes).padStart(2, '0')}</span>\n <span className=\"eco-lottery-countdown-unit\">分</span>\n </div>\n <span className=\"eco-lottery-countdown-sep\">:</span>\n <div className=\"eco-lottery-countdown-item\">\n <span className=\"eco-lottery-countdown-value\">{String(remaining.seconds).padStart(2, '0')}</span>\n <span className=\"eco-lottery-countdown-unit\">秒</span>\n </div>\n </div>\n </div>\n );\n}\n\n","/**\n * @quantabit/lottery-sdk\n * Lottery System SDK - Full Version\n */\n\n// API Client\nexport { lotteryApi, LotteryApiClient } from './services/lotteryApi';\n\n// Types\nexport { LotteryType, PrizeLevel } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport {\n useLottery,\n useDraw,\n useSpinWheel,\n useScratchCard,\n useCardFlip,\n useLotteryHistory,\n useWinners,\n useMyPrizes,\n useLotteryCountdown,\n} from './hooks/useLottery';\n\n// React Components\nexport {\n SpinWheel,\n CardFlipGame,\n LotteryResultModal,\n WinnersMarquee,\n PrizeList,\n MyPrizesList,\n LotteryCountdown,\n} from './components/Lottery';\n\n// Shortcut Methods\nimport { lotteryApi } from './services/lotteryApi';\n\nexport const getLottery = (...args) => lotteryApi.getLottery(...args);\nexport const draw = (...args) => lotteryApi.draw(...args);\nexport const getMyPrizes = (...args) => lotteryApi.getMyPrizes(...args);\nexport const getWinners = (...args) => lotteryApi.getWinners(...args);\n"],"names":["LotteryApiClient","BaseApiClient","constructor","config","getActiveLotteries","get","getLotteries","params","getLottery","lotteryId","getPrizes","draw","times","post","batchDraw","count","getDrawChances","earnChance","method","getWinningRecords","getMyWinnings","getLatestWinners","limit","claimPrize","recordId","receiveData","getPendingPrizes","getPrizeShipping","getLotteryStats","getOdds","createLottery","data","updateLottery","updates","put","getAdminStats","getMyPrizes","getWinners","lotteryApi","LotteryType","PrizeLevel","SUPPORTED_LANGUAGES","messages","zh","lottery","luckyDraw","wheel","scratch","slot","card","shake","start","spin","flip","tryAgain","chances","remaining","noChances","getMoreChances","congratulations","won","thanksForPlaying","noLuck","prizeClaimed","prize","prizes","myPrizes","grandPrize","firstPrize","secondPrize","thirdPrize","consolation","probability","rare","normal","rules","howToPlay","history","winners","recentWinners","loading","processing","startsIn","endsIn","ended","eventName","eventPeriod","en","ja","ko","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","useLottery","setLottery","useState","setChances","setLoading","error","setError","fetchLottery","useCallback","response","err","message","useEffect","refresh","useDraw","drawing","setDrawing","result","setResult","reset","useSpinWheel","spinning","setSpinning","rotation","setRotation","resultIndex","setResultIndex","targetIndex","segments","length","segmentAngle","extraRotations","targetRotation","setTimeout","useScratchCard","scratched","setScratched","scratchPercent","setScratchPercent","canvasRef","useRef","initCard","canvas","coverImage","ctx","getContext","img","Image","onload","drawImage","width","height","src","current","handleScratch","e","rect","getBoundingClientRect","x","clientX","left","y","clientY","top","globalCompositeOperation","beginPath","arc","Math","PI","fill","imageData","getImageData","i","percent","useCardFlip","cardCount","flippedCards","setFlippedCards","selectedCard","setSelectedCard","revealed","setRevealed","flipCard","index","revealAll","Array","from","_","useLotteryHistory","setHistory","fetchHistory","getHistory","console","useWinners","setWinners","fetchWinners","useMyPrizes","setPrizes","fetchPrizes","prizeId","prev","map","p","id","claimed","useLotteryCountdown","endTime","setRemaining","days","hours","minutes","seconds","isEnded","setIsEnded","updateCountdown","now","Date","end","getTime","diff","floor","timer","setInterval","clearInterval","SpinWheel","onResult","handleSpin","prizeIndex","findIndex","React","createElement","className","style","transform","qbit","angle","backgroundColor","name","onClick","disabled","CardFlipGame","handleFlip","drawResult","handleReset","isFlipped","isSelected","prizeForCard","Fragment","image","alt","LotteryResultModal","onClose","isWin","isConsolation","WinnersMarquee","w","userName","prizeName","PrizeList","MyPrizesList","wonAt","toLocaleDateString","LotteryCountdown","String","padStart","args"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA;AACA;AACA;AACO,MAAMA,gBAAgB,SAASC,aAAa,CAAC;AAClDC,EAAAA,WAAWA,CAACC,MAAM,GAAG,EAAE,EAAE;AACvB,IAAA,KAAK,CAAC,UAAU,EAAEA,MAAM,CAAC;AAC3B,EAAA;;AAEA;;AAEA;AACF;AACA;EACE,MAAMC,kBAAkBA,GAAG;AACzB,IAAA,OAAO,IAAI,CAACC,GAAG,CAAC,SAAS,CAAC;AAC5B,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,MAAMC,YAAYA,CAACC,MAAM,GAAG,EAAE,EAAE;AAC9B,IAAA,OAAO,IAAI,CAACF,GAAG,CAAC,OAAO,EAAEE,MAAM,CAAC;AAClC,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,UAAUA,CAACC,SAAS,EAAE;AAC1B,IAAA,OAAO,IAAI,CAACJ,GAAG,CAAC,CAAA,CAAA,EAAII,SAAS,EAAE,CAAC;AAClC,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,SAASA,CAACD,SAAS,EAAE;AACzB,IAAA,OAAO,IAAI,CAACJ,GAAG,CAAC,CAAA,CAAA,EAAII,SAAS,SAAS,CAAC;AACzC,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAME,IAAIA,CAACF,SAAS,EAAEG,KAAK,GAAG,CAAC,EAAE;AAC/B,IAAA,OAAO,IAAI,CAACC,IAAI,CAAC,CAAA,CAAA,EAAIJ,SAAS,OAAO,EAAE;AAAEG,MAAAA;AAAM,KAAC,CAAC;AACnD,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAME,SAASA,CAACL,SAAS,EAAEM,KAAK,EAAE;AAChC,IAAA,OAAO,IAAI,CAACF,IAAI,CAAC,CAAA,CAAA,EAAIJ,SAAS,aAAa,EAAE;AAAEM,MAAAA;AAAM,KAAC,CAAC;AACzD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,cAAcA,CAACP,SAAS,EAAE;AAC9B,IAAA,OAAO,IAAI,CAACJ,GAAG,CAAC,CAAA,CAAA,EAAII,SAAS,UAAU,CAAC;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMQ,UAAUA,CAACR,SAAS,EAAES,MAAM,EAAE;AAClC,IAAA,OAAO,IAAI,CAACL,IAAI,CAAC,CAAA,CAAA,EAAIJ,SAAS,eAAe,EAAE;AAAES,MAAAA;AAAO,KAAC,CAAC;AAC5D,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,iBAAiBA,CAACV,SAAS,EAAEF,MAAM,GAAG,EAAE,EAAE;IAC9C,OAAO,IAAI,CAACF,GAAG,CAAC,IAAII,SAAS,CAAA,QAAA,CAAU,EAAEF,MAAM,CAAC;AAClD,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,MAAMa,aAAaA,CAACb,MAAM,GAAG,EAAE,EAAE;AAC/B,IAAA,OAAO,IAAI,CAACF,GAAG,CAAC,cAAc,EAAEE,MAAM,CAAC;AACzC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMc,gBAAgBA,CAACZ,SAAS,EAAEa,KAAK,GAAG,EAAE,EAAE;AAC5C,IAAA,OAAO,IAAI,CAACjB,GAAG,CAAC,CAAA,CAAA,EAAII,SAAS,iBAAiB,EAAE;AAAEa,MAAAA;AAAM,KAAC,CAAC;AAC5D,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,UAAUA,CAACC,QAAQ,EAAEC,WAAW,GAAG,EAAE,EAAE;IAC3C,OAAO,IAAI,CAACZ,IAAI,CAAC,aAAaW,QAAQ,CAAA,MAAA,CAAQ,EAAEC,WAAW,CAAC;AAC9D,EAAA;;AAEA;AACF;AACA;EACE,MAAMC,gBAAgBA,GAAG;AACvB,IAAA,OAAO,IAAI,CAACrB,GAAG,CAAC,aAAa,CAAC;AAChC,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMsB,gBAAgBA,CAACH,QAAQ,EAAE;AAC/B,IAAA,OAAO,IAAI,CAACnB,GAAG,CAAC,CAAA,UAAA,EAAamB,QAAQ,WAAW,CAAC;AACnD,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;EACE,MAAMI,eAAeA,CAACnB,SAAS,EAAE;AAC/B,IAAA,OAAO,IAAI,CAACJ,GAAG,CAAC,CAAA,CAAA,EAAII,SAAS,QAAQ,CAAC;AACxC,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMoB,OAAOA,CAACpB,SAAS,EAAE;AACvB,IAAA,OAAO,IAAI,CAACJ,GAAG,CAAC,CAAA,CAAA,EAAII,SAAS,OAAO,CAAC;AACvC,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;EACE,MAAMqB,aAAaA,CAACC,IAAI,EAAE;AACxB,IAAA,OAAO,IAAI,CAAClB,IAAI,CAAC,QAAQ,EAAEkB,IAAI,CAAC;AAClC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMC,aAAaA,CAACvB,SAAS,EAAEwB,OAAO,EAAE;IACtC,OAAO,IAAI,CAACC,GAAG,CAAC,UAAUzB,SAAS,CAAA,CAAE,EAAEwB,OAAO,CAAC;AACjD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAME,aAAaA,CAAC1B,SAAS,EAAE;AAC7B,IAAA,OAAO,IAAI,CAACJ,GAAG,CAAC,CAAA,OAAA,EAAUI,SAAS,QAAQ,CAAC;AAC9C,EAAA;;AAEA;;AAEA;AACF;AACA;AACE,EAAA,MAAM2B,WAAWA,CAAC7B,MAAM,GAAG,EAAE,EAAE;AAC7B,IAAA,OAAO,IAAI,CAACa,aAAa,CAACb,MAAM,CAAC;AACnC,EAAA;;AAEA;AACF;AACA;AACE,EAAA,MAAM8B,UAAUA,CAAC5B,SAAS,EAAEa,KAAK,GAAG,EAAE,EAAE;AACtC,IAAA,OAAO,IAAI,CAACD,gBAAgB,CAACZ,SAAS,EAAEa,KAAK,CAAC;AAChD,EAAA;AACF;;AAEA;MACagB,UAAU,GAAG,IAAItC,gBAAgB;;AC3MvC,MAAMuC,WAAW,GAAG;AAEpB,MAAMC,UAAU,GAAG;;ACH1B;AACA;AACA;AACA;;AAEO,MAAMC,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAEnD,MAAMC,QAAQ,GAAG;AACtBC,EAAAA,EAAE,EAAE;AACF;AACAC,IAAAA,OAAO,EAAE,IAAI;AACbjC,IAAAA,IAAI,EAAE,IAAI;AACVkC,IAAAA,SAAS,EAAE,MAAM;AAEjB;AACAC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,OAAO,EAAE,KAAK;AACdC,IAAAA,IAAI,EAAE,KAAK;AACXC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,KAAK,EAAE,KAAK;AAEZ;AACAC,IAAAA,KAAK,EAAE,MAAM;AACbxC,IAAAA,IAAI,EAAE,IAAI;AACVyC,IAAAA,IAAI,EAAE,IAAI;AACVL,IAAAA,OAAO,EAAE,IAAI;AACbM,IAAAA,IAAI,EAAE,IAAI;AACVH,IAAAA,KAAK,EAAE,KAAK;AACZI,IAAAA,QAAQ,EAAE,MAAM;AAEhB;AACAC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,SAAS,EAAE,QAAQ;AACnBC,IAAAA,cAAc,EAAE,QAAQ;AAExB;AACAC,IAAAA,eAAe,EAAE,KAAK;AACtBC,IAAAA,GAAG,EAAE,IAAI;AACTC,IAAAA,gBAAgB,EAAE,MAAM;AACxBC,IAAAA,MAAM,EAAE,KAAK;AACbC,IAAAA,YAAY,EAAE,OAAO;AAErB;AACAC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,WAAW,EAAE,KAAK;AAClBC,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,WAAW,EAAE,KAAK;AAElB;AACAC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,MAAM,EAAE,IAAI;AAEZ;AACAC,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,SAAS,EAAE,MAAM;AAEjB;AACAC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,MAAM;AAErB;AACAC,IAAAA,OAAO,EAAE,QAAQ;AACjBC,IAAAA,UAAU,EAAE,SAAS;AAErB;AACAC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,MAAM,EAAE,KAAK;AACbC,IAAAA,KAAK,EAAE,KAAK;AAEZ;AACAC,IAAAA,SAAS,EAAE,MAAM;AACjBC,IAAAA,WAAW,EAAE;GACd;AACDC,EAAAA,EAAE,EAAE;AACF3C,IAAAA,OAAO,EAAE,SAAS;AAClBjC,IAAAA,IAAI,EAAE,MAAM;AACZkC,IAAAA,SAAS,EAAE,YAAY;AAEvBC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,OAAO,EAAE,cAAc;AACvBC,IAAAA,IAAI,EAAE,cAAc;AACpBC,IAAAA,IAAI,EAAE,WAAW;AACjBC,IAAAA,KAAK,EAAE,OAAO;AAEdC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,IAAI,EAAE,MAAM;AACZC,IAAAA,IAAI,EAAE,MAAM;AACZC,IAAAA,QAAQ,EAAE,WAAW;AAErBC,IAAAA,OAAO,EAAE,SAAS;AAClBC,IAAAA,SAAS,EAAE,WAAW;AACtBC,IAAAA,SAAS,EAAE,iBAAiB;AAC5BC,IAAAA,cAAc,EAAE,kBAAkB;AAElCC,IAAAA,eAAe,EAAE,kBAAkB;AACnCC,IAAAA,GAAG,EAAE,SAAS;AACdC,IAAAA,gBAAgB,EAAE,oBAAoB;AACtCC,IAAAA,MAAM,EAAE,SAAS;AACjBC,IAAAA,YAAY,EAAE,eAAe;AAE7BC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,QAAQ,EAAE,WAAW;AACrBC,IAAAA,UAAU,EAAE,aAAa;AACzBC,IAAAA,UAAU,EAAE,WAAW;AACvBC,IAAAA,WAAW,EAAE,WAAW;AACxBC,IAAAA,UAAU,EAAE,WAAW;AACvBC,IAAAA,WAAW,EAAE,aAAa;AAE1BC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,IAAI,EAAE,MAAM;AACZC,IAAAA,MAAM,EAAE,QAAQ;AAEhBC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,SAAS,EAAE,aAAa;AAExBC,IAAAA,OAAO,EAAE,SAAS;AAClBC,IAAAA,OAAO,EAAE,SAAS;AAClBC,IAAAA,aAAa,EAAE,gBAAgB;AAE/BC,IAAAA,OAAO,EAAE,YAAY;AACrBC,IAAAA,UAAU,EAAE,YAAY;AAExBC,IAAAA,QAAQ,EAAE,WAAW;AACrBC,IAAAA,MAAM,EAAE,SAAS;AACjBC,IAAAA,KAAK,EAAE,OAAO;AAEdC,IAAAA,SAAS,EAAE,YAAY;AACvBC,IAAAA,WAAW,EAAE;GACd;AACDE,EAAAA,EAAE,EAAE;AACF5C,IAAAA,OAAO,EAAE,IAAI;AACbjC,IAAAA,IAAI,EAAE,IAAI;AACVkC,IAAAA,SAAS,EAAE,SAAS;AAEpBC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,OAAO,EAAE,UAAU;AACnBC,IAAAA,IAAI,EAAE,MAAM;AACZC,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,KAAK,EAAE,MAAM;AAEbC,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,IAAI,EAAE,KAAK;AACXC,IAAAA,QAAQ,EAAE,MAAM;AAEhBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,SAAS,EAAE,GAAG;AACdC,IAAAA,SAAS,EAAE,QAAQ;AACnBC,IAAAA,cAAc,EAAE,SAAS;AAEzBC,IAAAA,eAAe,EAAE,QAAQ;AACzBC,IAAAA,GAAG,EAAE,IAAI;AACTC,IAAAA,gBAAgB,EAAE,UAAU;AAC5BC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,YAAY,EAAE,OAAO;AAErBC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,MAAM,EAAE,OAAO;AACfC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,WAAW,EAAE,KAAK;AAElBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,MAAM,EAAE,MAAM;AAEdC,IAAAA,KAAK,EAAE,KAAK;AACZC,IAAAA,SAAS,EAAE,KAAK;AAEhBC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,OAAO,EAAE,KAAK;AACdC,IAAAA,aAAa,EAAE,QAAQ;AAEvBC,IAAAA,OAAO,EAAE,UAAU;AACnBC,IAAAA,UAAU,EAAE,QAAQ;AAEpBC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,KAAK,EAAE,IAAI;AAEXC,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,WAAW,EAAE;GACd;AACDG,EAAAA,EAAE,EAAE;AACF7C,IAAAA,OAAO,EAAE,IAAI;AACbjC,IAAAA,IAAI,EAAE,IAAI;AACVkC,IAAAA,SAAS,EAAE,OAAO;AAElBC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,OAAO,EAAE,SAAS;AAClBC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,IAAI,EAAE,QAAQ;AACdC,IAAAA,KAAK,EAAE,KAAK;AAEZC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,IAAI,EAAE,KAAK;AACXC,IAAAA,IAAI,EAAE,KAAK;AACXC,IAAAA,QAAQ,EAAE,OAAO;AAEjBC,IAAAA,OAAO,EAAE,OAAO;AAChBC,IAAAA,SAAS,EAAE,GAAG;AACdC,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,cAAc,EAAE,OAAO;AAEvBC,IAAAA,eAAe,EAAE,QAAQ;AACzBC,IAAAA,GAAG,EAAE,IAAI;AACTC,IAAAA,gBAAgB,EAAE,eAAe;AACjCC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,YAAY,EAAE,OAAO;AAErBC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,MAAM,EAAE,OAAO;AACfC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,WAAW,EAAE,KAAK;AAElBC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,MAAM,EAAE,IAAI;AAEZC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,SAAS,EAAE,QAAQ;AAEnBC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,OAAO,EAAE,KAAK;AACdC,IAAAA,aAAa,EAAE,QAAQ;AAEvBC,IAAAA,OAAO,EAAE,SAAS;AAClBC,IAAAA,UAAU,EAAE,SAAS;AAErBC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,KAAK,EAAE,IAAI;AAEXC,IAAAA,SAAS,EAAE,QAAQ;AACnBC,IAAAA,WAAW,EAAE;AACf;AACF;AAEA,IAAII,eAAe,GAAG,IAAI;AAEnB,SAASC,WAAWA,CAACC,IAAI,EAAE;EAChC,IAAInD,mBAAmB,CAACoD,QAAQ,CAACD,IAAI,CAAC,EAAEF,eAAe,GAAGE,IAAI;AAChE;AAEO,SAASE,WAAWA,GAAG;AAC5B,EAAA,OAAOJ,eAAe;AACxB;AAEO,SAASK,CAACA,CAACC,GAAG,EAAE;AACrB,EAAA,OAAO,CAACtD,QAAQ,CAACgD,eAAe,CAAC,IAAIhD,QAAQ,CAAC6C,EAAE,EAAES,GAAG,CAAC,IAAIA,GAAG;AAC/D;;ACzQA;AACA;AACA;AACA;;;AAKA;AACA;AACA;AACO,SAASC,UAAUA,CAACxF,SAAS,EAAE;EACpC,MAAM,CAACmC,OAAO,EAAEsD,UAAU,CAAC,GAAGC,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAAC5C,OAAO,EAAE6C,UAAU,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC;EACzC,MAAM,CAACnB,OAAO,EAAEqB,UAAU,CAAC,GAAGF,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAGJ,QAAQ,CAAC,IAAI,CAAC;AAExC,EAAA,MAAMK,YAAY,GAAGC,WAAW,CAAC,YAAY;IAC3C,IAAI,CAAChG,SAAS,EAAE;IAEhB,IAAI;MACF4F,UAAU,CAAC,IAAI,CAAC;MAChB,MAAMK,QAAQ,GAAG,MAAMpE,UAAU,CAAC9B,UAAU,CAACC,SAAS,CAAC;AACvDyF,MAAAA,UAAU,CAACQ,QAAQ,CAAC9D,OAAO,CAAC;AAC5BwD,MAAAA,UAAU,CAACM,QAAQ,CAACnD,OAAO,IAAI,CAAC,CAAC;MACjCgD,QAAQ,CAAC,IAAI,CAAC;IAChB,CAAC,CAAC,OAAOI,GAAG,EAAE;AACZJ,MAAAA,QAAQ,CAACI,GAAG,CAACC,OAAO,CAAC;AACvB,IAAA,CAAC,SAAS;MACRP,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;AACF,EAAA,CAAC,EAAE,CAAC5F,SAAS,CAAC,CAAC;AAEfoG,EAAAA,SAAS,CAAC,MAAM;AACdL,IAAAA,YAAY,EAAE;AAChB,EAAA,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,OAAO;IAAE5D,OAAO;IAAEW,OAAO;IAAEyB,OAAO;IAAEsB,KAAK;AAAEQ,IAAAA,OAAO,EAAEN;GAAc;AACpE;;AAEA;AACA;AACA;AACO,SAASO,OAAOA,CAACtG,SAAS,EAAE;EACjC,MAAM,CAACuG,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACe,MAAM,EAAEC,SAAS,CAAC,GAAGhB,QAAQ,CAAC,IAAI,CAAC;EAC1C,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAGJ,QAAQ,CAAC,IAAI,CAAC;AAExC,EAAA,MAAMxF,IAAI,GAAG8F,WAAW,CAAC,YAAY;IACnC,IAAI;MACFQ,UAAU,CAAC,IAAI,CAAC;MAChBE,SAAS,CAAC,IAAI,CAAC;MACfZ,QAAQ,CAAC,IAAI,CAAC;MAEd,MAAMG,QAAQ,GAAG,MAAMpE,UAAU,CAAC3B,IAAI,CAACF,SAAS,CAAC;MACjD0G,SAAS,CAACT,QAAQ,CAAC;AACnB,MAAA,OAAOA,QAAQ;IACjB,CAAC,CAAC,OAAOC,GAAG,EAAE;AACZJ,MAAAA,QAAQ,CAACI,GAAG,CAACC,OAAO,CAAC;AACrB,MAAA,MAAMD,GAAG;AACX,IAAA,CAAC,SAAS;MACRM,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;AACF,EAAA,CAAC,EAAE,CAACxG,SAAS,CAAC,CAAC;AAEf,EAAA,MAAM2G,KAAK,GAAGX,WAAW,CAAC,MAAM;IAC9BU,SAAS,CAAC,IAAI,CAAC;IACfZ,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAE5F,IAAI;IAAEqG,OAAO;IAAEE,MAAM;IAAEZ,KAAK;AAAEc,IAAAA;GAAO;AAChD;;AAEA;AACA;AACA;AACO,SAASC,YAAYA,CAACpD,MAAM,EAAE;EACnC,MAAM,CAACqD,QAAQ,EAAEC,WAAW,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAM,CAACqB,QAAQ,EAAEC,WAAW,CAAC,GAAGtB,QAAQ,CAAC,CAAC,CAAC;EAC3C,MAAM,CAACuB,WAAW,EAAEC,cAAc,CAAC,GAAGxB,QAAQ,CAAC,IAAI,CAAC;AAEpD,EAAA,MAAM/C,IAAI,GAAGqD,WAAW,CAAEmB,WAAW,IAAK;AACxC,IAAA,IAAIN,QAAQ,EAAE;IAEdC,WAAW,CAAC,IAAI,CAAC;IACjBI,cAAc,CAAC,IAAI,CAAC;;AAEpB;AACA,IAAA,MAAME,QAAQ,GAAG5D,MAAM,CAAC6D,MAAM;AAC9B,IAAA,MAAMC,YAAY,GAAG,GAAG,GAAGF,QAAQ;AACnC,IAAA,MAAMG,cAAc,GAAG,CAAC,CAAC;AACzB,IAAA,MAAMC,cAAc,GAAGT,QAAQ,GAAIQ,cAAc,GAAG,GAAI,GAAG,CAACH,QAAQ,GAAGD,WAAW,IAAIG,YAAY,GAAGA,YAAY,GAAG,CAAC;IAErHN,WAAW,CAACQ,cAAc,CAAC;;AAE3B;AACAC,IAAAA,UAAU,CAAC,MAAM;MACfX,WAAW,CAAC,KAAK,CAAC;MAClBI,cAAc,CAACC,WAAW,CAAC;IAC7B,CAAC,EAAE,IAAI,CAAC;EACV,CAAC,EAAE,CAACN,QAAQ,EAAEE,QAAQ,EAAEvD,MAAM,CAAC6D,MAAM,CAAC,CAAC;AAEvC,EAAA,MAAMV,KAAK,GAAGX,WAAW,CAAC,MAAM;IAC9BkB,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEvE,IAAI;IAAEkE,QAAQ;IAAEE,QAAQ;IAAEE,WAAW;AAAEN,IAAAA;GAAO;AACzD;;AAEA;AACA;AACA;AACO,SAASe,cAAcA,GAAG;EAC/B,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGlC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACmC,cAAc,EAAEC,iBAAiB,CAAC,GAAGpC,QAAQ,CAAC,CAAC,CAAC;AACvD,EAAA,MAAMqC,SAAS,GAAGC,MAAM,CAAC,IAAI,CAAC;EAE9B,MAAMC,QAAQ,GAAGjC,WAAW,CAAC,CAACkC,MAAM,EAAEC,UAAU,KAAK;IACnD,IAAI,CAACD,MAAM,EAAE;AAEb,IAAA,MAAME,GAAG,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC;AACnC,IAAA,MAAMC,GAAG,GAAG,IAAIC,KAAK,EAAE;IACvBD,GAAG,CAACE,MAAM,GAAG,MAAM;AACjBJ,MAAAA,GAAG,CAACK,SAAS,CAACH,GAAG,EAAE,CAAC,EAAE,CAAC,EAAEJ,MAAM,CAACQ,KAAK,EAAER,MAAM,CAACS,MAAM,CAAC;IACvD,CAAC;AACDL,IAAAA,GAAG,CAACM,GAAG,GAAGT,UAAU,IAAI,2BAA2B,CAAC;;IAEpDJ,SAAS,CAACc,OAAO,GAAGX,MAAM;EAC5B,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAMY,aAAa,GAAG9C,WAAW,CAAE+C,CAAC,IAAK;AACvC,IAAA,IAAI,CAAChB,SAAS,CAACc,OAAO,EAAE;AAExB,IAAA,MAAMX,MAAM,GAAGH,SAAS,CAACc,OAAO;AAChC,IAAA,MAAMT,GAAG,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC;AACnC,IAAA,MAAMW,IAAI,GAAGd,MAAM,CAACe,qBAAqB,EAAE;IAE3C,MAAMC,CAAC,GAAGH,CAAC,CAACI,OAAO,GAAGH,IAAI,CAACI,IAAI;IAC/B,MAAMC,CAAC,GAAGN,CAAC,CAACO,OAAO,GAAGN,IAAI,CAACO,GAAG;IAE9BnB,GAAG,CAACoB,wBAAwB,GAAG,iBAAiB;IAChDpB,GAAG,CAACqB,SAAS,EAAE;AACfrB,IAAAA,GAAG,CAACsB,GAAG,CAACR,CAAC,EAAEG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAEM,IAAI,CAACC,EAAE,GAAG,CAAC,CAAC;IACjCxB,GAAG,CAACyB,IAAI,EAAE;;AAEV;AACA,IAAA,MAAMC,SAAS,GAAG1B,GAAG,CAAC2B,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE7B,MAAM,CAACQ,KAAK,EAAER,MAAM,CAACS,MAAM,CAAC;IACrE,IAAIhB,SAAS,GAAG,CAAC;AACjB,IAAA,KAAK,IAAIqC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,SAAS,CAACxI,IAAI,CAAC+F,MAAM,EAAE2C,CAAC,IAAI,CAAC,EAAE;MACjD,IAAIF,SAAS,CAACxI,IAAI,CAAC0I,CAAC,CAAC,KAAK,CAAC,EAAErC,SAAS,EAAE;AAC1C,IAAA;AACA,IAAA,MAAMsC,OAAO,GAAItC,SAAS,IAAImC,SAAS,CAACxI,IAAI,CAAC+F,MAAM,GAAG,CAAC,CAAC,GAAI,GAAG;IAC/DS,iBAAiB,CAACmC,OAAO,CAAC;IAE1B,IAAIA,OAAO,GAAG,EAAE,EAAE;MAChBrC,YAAY,CAAC,IAAI,CAAC;AACpB,IAAA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAED,SAAS;IAAEE,cAAc;IAAEI,QAAQ;AAAEa,IAAAA;GAAe;AAC/D;;AAEA;AACA;AACA;AACO,SAASoB,WAAWA,CAACC,SAAS,GAAG,CAAC,EAAE;EACzC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG3E,QAAQ,CAAC,EAAE,CAAC;EACpD,MAAM,CAAC4E,YAAY,EAAEC,eAAe,CAAC,GAAG7E,QAAQ,CAAC,IAAI,CAAC;EACtD,MAAM,CAAC8E,QAAQ,EAAEC,WAAW,CAAC,GAAG/E,QAAQ,CAAC,KAAK,CAAC;AAE/C,EAAA,MAAMgF,QAAQ,GAAG1E,WAAW,CAAE2E,KAAK,IAAK;IACtC,IAAIH,QAAQ,IAAIJ,YAAY,CAAChF,QAAQ,CAACuF,KAAK,CAAC,EAAE;IAE9CJ,eAAe,CAACI,KAAK,CAAC;AACtBN,IAAAA,eAAe,CAAC,CAACM,KAAK,CAAC,CAAC;AAC1B,EAAA,CAAC,EAAE,CAACH,QAAQ,EAAEJ,YAAY,CAAC,CAAC;AAE5B,EAAA,MAAMQ,SAAS,GAAG5E,WAAW,CAAC,MAAM;IAClCyE,WAAW,CAAC,IAAI,CAAC;AACjBJ,IAAAA,eAAe,CAACQ,KAAK,CAACC,IAAI,CAAC;AAAEzD,MAAAA,MAAM,EAAE8C;KAAW,EAAE,CAACY,CAAC,EAAEf,CAAC,KAAKA,CAAC,CAAC,CAAC;AACjE,EAAA,CAAC,EAAE,CAACG,SAAS,CAAC,CAAC;AAEf,EAAA,MAAMxD,KAAK,GAAGX,WAAW,CAAC,MAAM;IAC9BqE,eAAe,CAAC,EAAE,CAAC;IACnBE,eAAe,CAAC,IAAI,CAAC;IACrBE,WAAW,CAAC,KAAK,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEL,YAAY;IAAEE,YAAY;IAAEE,QAAQ;IAAEE,QAAQ;IAAEE,SAAS;AAAEjE,IAAAA;GAAO;AAC7E;;AAEA;AACA;AACA;AACO,SAASqE,iBAAiBA,CAAChL,SAAS,EAAE;EAC3C,MAAM,CAACoE,OAAO,EAAE6G,UAAU,CAAC,GAAGvF,QAAQ,CAAC,EAAE,CAAC;EAC1C,MAAM,CAACnB,OAAO,EAAEqB,UAAU,CAAC,GAAGF,QAAQ,CAAC,IAAI,CAAC;AAE5C,EAAA,MAAMwF,YAAY,GAAGlF,WAAW,CAAC,YAAY;IAC3C,IAAI;MACFJ,UAAU,CAAC,IAAI,CAAC;MAChB,MAAMK,QAAQ,GAAG,MAAMpE,UAAU,CAACsJ,UAAU,CAACnL,SAAS,CAAC;AACvDiL,MAAAA,UAAU,CAAChF,QAAQ,CAAC3E,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,OAAO4E,GAAG,EAAE;AACZkF,MAAAA,OAAO,CAACvF,KAAK,CAAC,oBAAoB,EAAEK,GAAG,CAAC;AAC1C,IAAA,CAAC,SAAS;MACRN,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;AACF,EAAA,CAAC,EAAE,CAAC5F,SAAS,CAAC,CAAC;AAEfoG,EAAAA,SAAS,CAAC,MAAM;AACd8E,IAAAA,YAAY,EAAE;AAChB,EAAA,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,OAAO;IAAE9G,OAAO;IAAEG,OAAO;AAAE8B,IAAAA,OAAO,EAAE6E;GAAc;AACpD;;AAEA;AACA;AACA;AACO,SAASG,UAAUA,CAACrL,SAAS,EAAE;EACpC,MAAM,CAACqE,OAAO,EAAEiH,UAAU,CAAC,GAAG5F,QAAQ,CAAC,EAAE,CAAC;EAC1C,MAAM,CAACnB,OAAO,EAAEqB,UAAU,CAAC,GAAGF,QAAQ,CAAC,IAAI,CAAC;AAE5C,EAAA,MAAM6F,YAAY,GAAGvF,WAAW,CAAC,YAAY;IAC3C,IAAI;MACFJ,UAAU,CAAC,IAAI,CAAC;MAChB,MAAMK,QAAQ,GAAG,MAAMpE,UAAU,CAACD,UAAU,CAAC5B,SAAS,CAAC;AACvDsL,MAAAA,UAAU,CAACrF,QAAQ,CAAC3E,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,OAAO4E,GAAG,EAAE;AACZkF,MAAAA,OAAO,CAACvF,KAAK,CAAC,oBAAoB,EAAEK,GAAG,CAAC;AAC1C,IAAA,CAAC,SAAS;MACRN,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;AACF,EAAA,CAAC,EAAE,CAAC5F,SAAS,CAAC,CAAC;AAEfoG,EAAAA,SAAS,CAAC,MAAM;AACdmF,IAAAA,YAAY,EAAE;AAChB,EAAA,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,OAAO;IAAElH,OAAO;IAAEE,OAAO;AAAE8B,IAAAA,OAAO,EAAEkF;GAAc;AACpD;;AAEA;AACA;AACA;AACO,SAASC,WAAWA,GAAG;EAC5B,MAAM,CAAChI,MAAM,EAAEiI,SAAS,CAAC,GAAG/F,QAAQ,CAAC,EAAE,CAAC;EACxC,MAAM,CAACnB,OAAO,EAAEqB,UAAU,CAAC,GAAGF,QAAQ,CAAC,IAAI,CAAC;AAE5C,EAAA,MAAMgG,WAAW,GAAG1F,WAAW,CAAC,YAAY;IAC1C,IAAI;MACFJ,UAAU,CAAC,IAAI,CAAC;AAChB,MAAA,MAAMK,QAAQ,GAAG,MAAMpE,UAAU,CAACF,WAAW,EAAE;AAC/C8J,MAAAA,SAAS,CAACxF,QAAQ,CAAC3E,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC,CAAC,OAAO4E,GAAG,EAAE;AACZkF,MAAAA,OAAO,CAACvF,KAAK,CAAC,sBAAsB,EAAEK,GAAG,CAAC;AAC5C,IAAA,CAAC,SAAS;MACRN,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;EACF,CAAC,EAAE,EAAE,CAAC;AAENQ,EAAAA,SAAS,CAAC,MAAM;AACdsF,IAAAA,WAAW,EAAE;AACf,EAAA,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;AAEjB,EAAA,MAAM5K,UAAU,GAAGkF,WAAW,CAAC,MAAO2F,OAAO,IAAK;IAChD,IAAI;AACF,MAAA,MAAM9J,UAAU,CAACf,UAAU,CAAC6K,OAAO,CAAC;AACpCF,MAAAA,SAAS,CAACG,IAAI,IAAIA,IAAI,CAACC,GAAG,CAACC,CAAC,IAC1BA,CAAC,CAACC,EAAE,KAAKJ,OAAO,GAAG;AAAE,QAAA,GAAGG,CAAC;AAAEE,QAAAA,OAAO,EAAE;OAAM,GAAGF,CAC/C,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO5F,GAAG,EAAE;AACZkF,MAAAA,OAAO,CAACvF,KAAK,CAAC,oBAAoB,EAAEK,GAAG,CAAC;AACxC,MAAA,MAAMA,GAAG;AACX,IAAA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAE1C,MAAM;IAAEe,OAAO;IAAEzD,UAAU;AAAEuF,IAAAA,OAAO,EAAEqF;GAAa;AAC9D;;AAEA;AACA;AACA;AACO,SAASO,mBAAmBA,CAACC,OAAO,EAAE;AAC3C,EAAA,MAAM,CAACnJ,SAAS,EAAEoJ,YAAY,CAAC,GAAGzG,QAAQ,CAAC;AAAE0G,IAAAA,IAAI,EAAE,CAAC;AAAEC,IAAAA,KAAK,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE;AAAE,GAAC,CAAC;EACzF,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG/G,QAAQ,CAAC,KAAK,CAAC;AAE7CU,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC8F,OAAO,EAAE;IAEd,MAAMQ,eAAe,GAAGA,MAAM;AAC5B,MAAA,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,EAAE;MACtB,MAAME,GAAG,GAAG,IAAID,IAAI,CAACV,OAAO,CAAC,CAACY,OAAO,EAAE;AACvC,MAAA,MAAMC,IAAI,GAAGF,GAAG,GAAGF,GAAG;MAEtB,IAAII,IAAI,IAAI,CAAC,EAAE;QACbN,UAAU,CAAC,IAAI,CAAC;AAChBN,QAAAA,YAAY,CAAC;AAAEC,UAAAA,IAAI,EAAE,CAAC;AAAEC,UAAAA,KAAK,EAAE,CAAC;AAAEC,UAAAA,OAAO,EAAE,CAAC;AAAEC,UAAAA,OAAO,EAAE;AAAE,SAAC,CAAC;AAC3D,QAAA;AACF,MAAA;AAEAJ,MAAAA,YAAY,CAAC;AACXC,QAAAA,IAAI,EAAEzC,IAAI,CAACqD,KAAK,CAACD,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9CV,KAAK,EAAE1C,IAAI,CAACqD,KAAK,CAAED,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAK,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACpET,QAAAA,OAAO,EAAE3C,IAAI,CAACqD,KAAK,CAAED,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,IAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AAC5DR,QAAAA,OAAO,EAAE5C,IAAI,CAACqD,KAAK,CAAED,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAI,IAAI;AACjD,OAAC,CAAC;IACJ,CAAC;AAEDL,IAAAA,eAAe,EAAE;AACjB,IAAA,MAAMO,KAAK,GAAGC,WAAW,CAACR,eAAe,EAAE,IAAI,CAAC;AAEhD,IAAA,OAAO,MAAMS,aAAa,CAACF,KAAK,CAAC;AACnC,EAAA,CAAC,EAAE,CAACf,OAAO,CAAC,CAAC;EAEb,OAAO;IAAEnJ,SAAS;AAAEyJ,IAAAA;GAAS;AAC/B;;AC7TA;AACA;AACA;AACA;;;AAgBA;AACA;AACA;AACO,SAASY,SAASA,CAAC;EAAEpN,SAAS;EAAEwD,MAAM;AAAE6J,EAAAA;AAAS,CAAC,EAAE;EACzD,MAAM;IAAEvK,OAAO;AAAEuD,IAAAA;AAAQ,GAAC,GAAGb,UAAU,CAACxF,SAAS,CAAC;EAClD,MAAM;IAAEE,IAAI;AAAEqG,IAAAA;AAAQ,GAAC,GAAGD,OAAO,CAACtG,SAAS,CAAC;EAC5C,MAAM;IAAE2C,IAAI;IAAEkE,QAAQ;IAAEE,QAAQ;IAAEE,WAAW;AAAEN,IAAAA;AAAM,GAAC,GAAGC,YAAY,CAACpD,MAAM,CAAC;AAE7E,EAAA,MAAM8J,UAAU,GAAGtH,WAAW,CAAC,YAAY;AACzC,IAAA,IAAIa,QAAQ,IAAIN,OAAO,IAAIzD,OAAO,IAAI,CAAC,EAAE;IAEzC,IAAI;AACF,MAAA,MAAM2D,MAAM,GAAG,MAAMvG,IAAI,EAAE;AAC3B;AACA,MAAA,MAAMqN,UAAU,GAAG/J,MAAM,CAACgK,SAAS,CAAC1B,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKtF,MAAM,CAACkF,OAAO,CAAC;MACjEhJ,IAAI,CAAC4K,UAAU,IAAI,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;;AAEtC;AACA9F,MAAAA,UAAU,CAAC,MAAM;QACf4F,QAAQ,GAAG5G,MAAM,CAAC;AAClBJ,QAAAA,OAAO,EAAE;MACX,CAAC,EAAE,IAAI,CAAC;IACV,CAAC,CAAC,OAAOH,GAAG,EAAE;AACZkF,MAAAA,OAAO,CAACvF,KAAK,CAAC,aAAa,EAAEK,GAAG,CAAC;AACnC,IAAA;AACF,EAAA,CAAC,EAAE,CAACW,QAAQ,EAAEN,OAAO,EAAEzD,OAAO,EAAE5C,IAAI,EAAEyC,IAAI,EAAEa,MAAM,EAAE6J,QAAQ,EAAEhH,OAAO,CAAC,CAAC;EAEvE,oBACEoH,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAmB,eAChCF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA6B,eAC1CF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,wBAAwB;AAClCC,IAAAA,KAAK,EAAE;MAAEC,SAAS,EAAE,UAAU9G,QAAQ,CAAA,IAAA;AAAO;GAAE,EAE9CvD,MAAM,CAACqI,GAAG,CAAC,CAACtI,KAAK,EAAEuK,IAAI,KAAK;IAC3B,MAAMC,KAAK,GAAI,GAAG,GAAGvK,MAAM,CAAC6D,MAAM,GAAIyG,IAAI;IAC1C,oBACEL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MACEnI,GAAG,EAAEhC,KAAK,CAACwI,EAAG;AACd4B,MAAAA,SAAS,EAAC,2BAA2B;AACrCC,MAAAA,KAAK,EAAE;QACLC,SAAS,EAAE,CAAA,OAAA,EAAUE,KAAK,CAAA,IAAA,CAAM;QAChCC,eAAe,EAAEF,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG;AAChD;KAAE,eAEFL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,MAAAA,SAAS,EAAC;AAAyB,KAAA,EAAEpK,KAAK,CAAC0K,IAAW,CACzD,CAAC;AAEV,EAAA,CAAC,CACE,CAAC,eACNR,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;AAA2B,GAAA,EAAC,QAAM,CAC9C,CAAC,eAENF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;AAAqB,GAAA,EACjCrI,CAAC,CAAC,SAAS,CAAC,EAAC,IAAE,eAAAmI,KAAA,CAAAC,aAAA,iBAAS5K,OAAgB,CACtC,CAAC,eAEN2K,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,sBAAsB;AAChCO,IAAAA,OAAO,EAAEZ,UAAW;AACpBa,IAAAA,QAAQ,EAAEtH,QAAQ,IAAIN,OAAO,IAAIzD,OAAO,IAAI;AAAE,GAAA,EAE7C+D,QAAQ,GAAGvB,CAAC,CAAC,YAAY,CAAC,GAAGA,CAAC,CAAC,MAAM,CAChC,CACL,CAAC;AAEV;;AAEA;AACA;AACA;AACO,SAAS8I,YAAYA,CAAC;EAAEpO,SAAS;AAAEmK,EAAAA,SAAS,GAAG,CAAC;EAAE3G,MAAM;AAAE6J,EAAAA;AAAS,CAAC,EAAE;EAC3E,MAAM;IAAEvK,OAAO;AAAEuD,IAAAA;AAAQ,GAAC,GAAGb,UAAU,CAACxF,SAAS,CAAC;EAClD,MAAM;IAAEE,IAAI;AAAEqG,IAAAA;AAAQ,GAAC,GAAGD,OAAO,CAACtG,SAAS,CAAC;EAC5C,MAAM;IAAEoK,YAAY;IAAEE,YAAY;IAAEI,QAAQ;IAAEE,SAAS;AAAEjE,IAAAA;AAAM,GAAC,GAAGuD,WAAW,CAACC,SAAS,CAAC;EACzF,MAAM,CAAC1D,MAAM,EAAEC,SAAS,CAAC,GAAG+G,KAAK,CAAC/H,QAAQ,CAAC,IAAI,CAAC;AAEhD,EAAA,MAAM2I,UAAU,GAAGrI,WAAW,CAAC,MAAO2E,KAAK,IAAK;IAC9C,IAAIpE,OAAO,IAAIzD,OAAO,IAAI,CAAC,IAAIsH,YAAY,CAAC/C,MAAM,GAAG,CAAC,EAAE;IAExD,IAAI;AACF,MAAA,MAAMiH,UAAU,GAAG,MAAMpO,IAAI,EAAE;MAC/BwG,SAAS,CAAC4H,UAAU,CAAC;MACrB5D,QAAQ,CAACC,KAAK,CAAC;AAEflD,MAAAA,UAAU,CAAC,MAAM;AACfmD,QAAAA,SAAS,EAAE;QACXyC,QAAQ,GAAGiB,UAAU,CAAC;AACtBjI,QAAAA,OAAO,EAAE;MACX,CAAC,EAAE,IAAI,CAAC;IACV,CAAC,CAAC,OAAOH,GAAG,EAAE;AACZkF,MAAAA,OAAO,CAACvF,KAAK,CAAC,aAAa,EAAEK,GAAG,CAAC;AACnC,IAAA;AACF,EAAA,CAAC,EAAE,CAACK,OAAO,EAAEzD,OAAO,EAAEsH,YAAY,EAAElK,IAAI,EAAEwK,QAAQ,EAAEE,SAAS,EAAEyC,QAAQ,EAAEhH,OAAO,CAAC,CAAC;AAElF,EAAA,MAAMkI,WAAW,GAAGvI,WAAW,CAAC,MAAM;AACpCW,IAAAA,KAAK,EAAE;IACPD,SAAS,CAAC,IAAI,CAAC;AACjB,EAAA,CAAC,EAAE,CAACC,KAAK,CAAC,CAAC;EAEX,oBACE8G,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAmB,eAChCF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAwB,EACpC9C,KAAK,CAACC,IAAI,CAAC;AAAEzD,IAAAA,MAAM,EAAE8C;GAAW,CAAC,CAAC0B,GAAG,CAAC,CAACd,CAAC,EAAE+C,IAAI,KAAK;AAClD,IAAA,MAAMU,SAAS,GAAGpE,YAAY,CAAChF,QAAQ,CAAC0I,IAAI,CAAC;AAC7C,IAAA,MAAMW,UAAU,GAAGnE,YAAY,KAAKwD,IAAI;AACxC,IAAA,MAAMY,YAAY,GAAGD,UAAU,GAAGhI,MAAM,EAAElD,KAAK,GAAGC,MAAM,CAACsK,IAAI,GAAGtK,MAAM,CAAC6D,MAAM,CAAC;IAE9E,oBACEoG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEnI,MAAAA,GAAG,EAAEuI,IAAK;AACVH,MAAAA,SAAS,EAAE,CAAA,iBAAA,EAAoBa,SAAS,GAAG,SAAS,GAAG,EAAE,CAAA,CAAA,EAAIC,UAAU,GAAG,UAAU,GAAG,EAAE,CAAA,CAAG;AAC5FP,MAAAA,OAAO,EAAEA,MAAMG,UAAU,CAACP,IAAI;KAAE,eAEhCL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;KAAwB,eACrCF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;AAAwB,KAAA,EAAC,GAAM,CAAC,eAC/CF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;AAAuB,KAAA,EACnCa,SAAS,iBACRf,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAkB,QAAA,EAAA,IAAA,eACElB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK9E,MAAAA,GAAG,EAAE8F,YAAY,EAAEE,KAAK,IAAI,YAAa;MAACC,GAAG,EAAEH,YAAY,EAAET;AAAK,KAAE,CAAC,eAC1ER,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAOgB,YAAY,EAAET,IAAW,CAChC,CAED,CACF,CACF,CAAC;AAEV,EAAA,CAAC,CACE,CAAC,eAENR,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAqB,EACjCrI,CAAC,CAAC,SAAS,CAAC,EAAC,IAAE,eAAAmI,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA,IAAA,EAAS5K,OAAgB,CACtC,CAAC,EAELsH,YAAY,CAAC/C,MAAM,GAAG,CAAC,iBACtBoG,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQC,IAAAA,SAAS,EAAC,uBAAuB;AAACO,IAAAA,OAAO,EAAEK;AAAY,GAAA,EAC5DjJ,CAAC,CAAC,UAAU,CACP,CAEP,CAAC;AAEV;;AAEA;AACA;AACA;AACO,SAASwJ,kBAAkBA,CAAC;EAAErI,MAAM;AAAEsI,EAAAA;AAAQ,CAAC,EAAE;AACtD,EAAA,IAAI,CAACtI,MAAM,EAAE,OAAO,IAAI;EAExB,MAAMuI,KAAK,GAAGvI,MAAM,CAAClD,KAAK,IAAI,CAACkD,MAAM,CAAClD,KAAK,CAAC0L,aAAa;EAEzD,oBACExB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA0B,eACvCF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,4BAA4B;AAACO,IAAAA,OAAO,EAAEa;AAAQ,GAAE,CAAC,eAChEtB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA4B,eACzCF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAE,CAAA,wBAAA,EAA2BqB,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;AAAG,GAAA,EACjEA,KAAK,GAAG,IAAI,GAAG,IACb,CAAC,eACNvB,KAAA,CAAAC,aAAA,aAAKsB,KAAK,GAAG1J,CAAC,CAAC,iBAAiB,CAAC,GAAGA,CAAC,CAAC,kBAAkB,CAAM,CAAC,EAC9DmB,MAAM,CAAClD,KAAK,gBACXkK,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAkB,QAAA,EAAA,IAAA,eACElB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK9E,IAAAA,GAAG,EAAEnC,MAAM,CAAClD,KAAK,CAACqL,KAAK,IAAI,YAAa;AAACC,IAAAA,GAAG,EAAEpI,MAAM,CAAClD,KAAK,CAAC0K;AAAK,GAAE,CAAC,eACxER,KAAA,CAAAC,aAAA,YAAIpI,CAAC,CAAC,KAAK,CAAC,EAAC,IAAE,eAAAmI,KAAA,CAAAC,aAAA,iBAASjH,MAAM,CAAClD,KAAK,CAAC0K,IAAa,CAAI,CACtD,CAAC,gBAEHR,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAIpI,CAAC,CAAC,QAAQ,CAAK,CACpB,eACDmI,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQQ,IAAAA,OAAO,EAAEa;AAAQ,GAAA,EAAEzJ,CAAC,CAAC,UAAU,CAAU,CAC9C,CACF,CAAC;AAEV;;AAEA;AACA;AACA;AACO,SAAS4J,cAAcA,CAAC;AAAElP,EAAAA;AAAU,CAAC,EAAE;EAC5C,MAAM;AAAEqE,IAAAA;AAAQ,GAAC,GAAGgH,UAAU,CAACrL,SAAS,CAAC;AAEzC,EAAA,IAAIqE,OAAO,CAACgD,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAErC,oBACEoG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAqB,eAClCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;GAA2B,EAAC,eAAG,EAACrI,CAAC,CAAC,eAAe,CAAQ,CAAC,eAC1EmI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA6B,eAC1CF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;AAA2B,GAAA,EACvC,CAAC,GAAGtJ,OAAO,EAAE,GAAGA,OAAO,CAAC,CAACwH,GAAG,CAAC,CAACsD,CAAC,EAAErB,IAAI,kBACpCL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMnI,IAAAA,GAAG,EAAEuI,IAAK;AAACH,IAAAA,SAAS,EAAC;AAA0B,GAAA,EAClDwB,CAAC,CAACC,QAAQ,EAAC,gBAAI,EAACD,CAAC,CAACE,SACf,CACP,CACE,CACF,CACF,CAAC;AAEV;;AAEA;AACA;AACA;AACO,SAASC,SAASA,CAAC;AAAE9L,EAAAA;AAAO,CAAC,EAAE;EACpC,oBACEiK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;AAAoB,GAAA,eACjCF,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAKpI,CAAC,CAAC,QAAQ,CAAM,CAAC,eACtBmI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAyB,EACrCnK,MAAM,CAACqI,GAAG,CAAEtI,KAAK,iBAChBkK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKnI,GAAG,EAAEhC,KAAK,CAACwI,EAAG;IAAC4B,SAAS,EAAE,qBAAqBpK,KAAK,CAACS,IAAI,GAAG,MAAM,GAAG,EAAE,CAAA;GAAG,eAC7EyJ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK9E,IAAAA,GAAG,EAAErF,KAAK,CAACqL,KAAK,IAAI,YAAa;IAACC,GAAG,EAAEtL,KAAK,CAAC0K;AAAK,GAAE,CAAC,eAC1DR,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;GAAwB,EAAEpK,KAAK,CAAC0K,IAAW,CAAC,EAC3D1K,KAAK,CAACQ,WAAW,iBAChB0J,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;GAAwB,EAAEpK,KAAK,CAACQ,WAAW,EAAC,GAAO,CAElE,CACN,CACE,CACF,CAAC;AAEV;;AAEA;AACA;AACA;AACO,SAASwL,YAAYA,GAAG;EAC7B,MAAM;IAAE/L,MAAM;IAAEe,OAAO;AAAEzD,IAAAA;GAAY,GAAG0K,WAAW,EAAE;AAErD,EAAA,IAAIjH,OAAO,EAAE;IACX,oBACEkJ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;KAAqB,eAClCF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;AAAqB,KAAE,CACnC,CAAC;AAEV,EAAA;AAEA,EAAA,IAAInK,MAAM,CAAC6D,MAAM,KAAK,CAAC,EAAE;IACvB,oBACEoG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;AAAmB,KAAA,eAChCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAM,cAAQ,CAAC,eACfD,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAG,0BAAO,CACP,CAAC;AAEV,EAAA;EAEA,oBACED,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;AAAuB,GAAA,eACpCF,KAAA,CAAAC,aAAA,aAAKpI,CAAC,CAAC,UAAU,CAAM,CAAC,EACvB9B,MAAM,CAACqI,GAAG,CAAEtI,KAAK,iBAChBkK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKnI,GAAG,EAAEhC,KAAK,CAACwI,EAAG;AAAC4B,IAAAA,SAAS,EAAC;GAAsB,eAClDF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK9E,IAAAA,GAAG,EAAErF,KAAK,CAACqL,KAAK,IAAI,YAAa;IAACC,GAAG,EAAEtL,KAAK,CAAC0K;AAAK,GAAE,CAAC,eAC1DR,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA2B,eACxCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA2B,GAAA,EAAEpK,KAAK,CAAC0K,IAAW,CAAC,eAC/DR,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;GAA2B,EACxC,IAAIf,IAAI,CAACrJ,KAAK,CAACiM,KAAK,CAAC,CAACC,kBAAkB,EACrC,CACH,CAAC,EACL,CAAClM,KAAK,CAACyI,OAAO,gBACbyB,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQQ,IAAAA,OAAO,EAAEA,MAAMpN,UAAU,CAACyC,KAAK,CAACwI,EAAE;AAAE,GAAA,EAAC,cAAU,CAAC,gBAExD0B,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAAqB,GAAA,EAAErI,CAAC,CAAC,cAAc,CAAQ,CAE9D,CACN,CACE,CAAC;AAEV;;AAEA;AACA;AACA;AACO,SAASoK,gBAAgBA,CAAC;AAAExD,EAAAA;AAAQ,CAAC,EAAE;EAC5C,MAAM;IAAEnJ,SAAS;AAAEyJ,IAAAA;AAAQ,GAAC,GAAGP,mBAAmB,CAACC,OAAO,CAAC;AAE3D,EAAA,IAAIM,OAAO,EAAE;IACX,oBAAOiB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC;AAA6B,KAAA,EAAErI,CAAC,CAAC,OAAO,CAAO,CAAC;AACxE,EAAA;EAEA,oBACEmI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAAuB,eACpCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;GAA6B,EAAErI,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAClEmI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA6B,eAC1CF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA4B,eACzCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA6B,GAAA,EAAE5K,SAAS,CAACqJ,IAAW,CAAC,eACrEqB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA4B,GAAA,EAAC,QAAO,CACjD,CAAC,eACNF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA2B,GAAA,EAAC,GAAO,CAAC,eACpDF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA4B,eACzCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA6B,GAAA,EAAEgC,MAAM,CAAC5M,SAAS,CAACsJ,KAAK,CAAC,CAACuD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAQ,CAAC,eAC/FnC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA4B,GAAA,EAAC,QAAO,CACjD,CAAC,eACNF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA2B,GAAA,EAAC,GAAO,CAAC,eACpDF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA4B,eACzCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA6B,GAAA,EAAEgC,MAAM,CAAC5M,SAAS,CAACuJ,OAAO,CAAC,CAACsD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAQ,CAAC,eACjGnC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA4B,GAAA,EAAC,QAAO,CACjD,CAAC,eACNF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA2B,GAAA,EAAC,GAAO,CAAC,eACpDF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC;GAA4B,eACzCF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA6B,GAAA,EAAEgC,MAAM,CAAC5M,SAAS,CAACwJ,OAAO,CAAC,CAACqD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAQ,CAAC,eACjGnC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC;AAA4B,GAAA,EAAC,QAAO,CACjD,CACF,CACF,CAAC;AAEV;;AChUA;AACA;AACA;AACA;;AAsCO,MAAM5N,UAAU,GAAGA,CAAC,GAAG8P,IAAI,KAAKhO,UAAU,CAAC9B,UAAU,CAAC,GAAG8P,IAAI;AAC7D,MAAM3P,IAAI,GAAGA,CAAC,GAAG2P,IAAI,KAAKhO,UAAU,CAAC3B,IAAI,CAAC,GAAG2P,IAAI;AACjD,MAAMlO,WAAW,GAAGA,CAAC,GAAGkO,IAAI,KAAKhO,UAAU,CAACF,WAAW,CAAC,GAAGkO,IAAI;AAC/D,MAAMjO,UAAU,GAAGA,CAAC,GAAGiO,IAAI,KAAKhO,UAAU,CAACD,UAAU,CAAC,GAAGiO,IAAI;;;;"}
|