From 7dcd63938e3f51b9cec6394d03f4fa7d79d87248 Mon Sep 17 00:00:00 2001 From: ngochieu276 Date: Mon, 4 May 2026 12:39:17 +0700 Subject: [PATCH 1/3] solution 1 --- src/problem1/index.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/problem1/index.ts diff --git a/src/problem1/index.ts b/src/problem1/index.ts new file mode 100644 index 0000000000..0517606a50 --- /dev/null +++ b/src/problem1/index.ts @@ -0,0 +1,21 @@ +const sum_to_n_a = function (n: number) { + if (n <= 0) return 0; + n = Math.floor(n); + let sum = 0; + for (let i = 1; i <= n; i++) { + sum += i; + } + return sum; +}; + +const sum_to_n_b = function (n: number) { + if (n <= 0) return 0; + n = Math.floor(n); + return (n * (n + 1)) / 2; +}; + +const sum_to_n_c = function (n: number) { + if (n <= 0) return 0; + n = Math.floor(n); + return Array.from({ length: n }, (_, i) => i + 1).reduce((acc, v) => acc + v, 0); +}; From d9c0e362dea33eeed1a19f64df7e01ef4cef8d18 Mon Sep 17 00:00:00 2001 From: ngochieu276 Date: Mon, 4 May 2026 12:40:08 +0700 Subject: [PATCH 2/3] problem 2 solution --- src/problem2/.gitignore | 21 + src/problem2/index.html | 38 +- src/problem2/package-lock.json | 3495 +++++++++++++++++ src/problem2/package.json | 33 + src/problem2/postcss.config.js | 6 + src/problem2/src/App.tsx | 56 + src/problem2/src/components/layout/Header.tsx | 62 + src/problem2/src/components/layout/Layout.tsx | 28 + .../src/components/layout/Sidebar.tsx | 62 + src/problem2/src/components/layout/index.ts | 3 + .../src/components/swap/ConfirmSwapModal.tsx | 95 + .../src/components/swap/OrderDetails.tsx | 56 + src/problem2/src/components/swap/Slippage.tsx | 34 + src/problem2/src/components/swap/SwapCard.tsx | 207 + .../src/components/swap/TokenInput.tsx | 88 + .../src/components/swap/TokenModal.tsx | 89 + src/problem2/src/components/swap/index.ts | 6 + src/problem2/src/components/ui/Button.tsx | 56 + src/problem2/src/components/ui/Input.tsx | 27 + src/problem2/src/components/ui/Modal.tsx | 42 + src/problem2/src/components/ui/Skeleton.tsx | 14 + src/problem2/src/components/ui/Toast.tsx | 66 + src/problem2/src/components/ui/index.ts | 5 + src/problem2/src/constants/index.ts | 1 + src/problem2/src/constants/tokens.ts | 67 + src/problem2/src/hooks/useSwap.ts | 60 + src/problem2/src/index.css | 32 + src/problem2/src/main.tsx | 11 + src/problem2/src/pages/swap/index.tsx | 14 + src/problem2/src/prices.json | 158 + src/problem2/src/tokens/1INCH.svg | 17 + src/problem2/src/tokens/AAVE.svg | 4 + src/problem2/src/tokens/ACT.svg | 15 + src/problem2/src/tokens/ADA.svg | 4 + src/problem2/src/tokens/AEVO.svg | 12 + src/problem2/src/tokens/AGI.svg | 6 + src/problem2/src/tokens/AI16Z.svg | 19 + src/problem2/src/tokens/AIXBT.svg | 19 + src/problem2/src/tokens/AKRO.svg | 10 + src/problem2/src/tokens/AKT.svg | 5 + src/problem2/src/tokens/ALGO.svg | 4 + src/problem2/src/tokens/ALPHA.svg | 20 + src/problem2/src/tokens/ALT.svg | 15 + src/problem2/src/tokens/AMP.svg | 5 + src/problem2/src/tokens/ANC.svg | 6 + src/problem2/src/tokens/ANDR.svg | 48 + src/problem2/src/tokens/ANIME.svg | 97 + src/problem2/src/tokens/ANKR.svg | 4 + src/problem2/src/tokens/ANT.svg | 20 + src/problem2/src/tokens/ANY.svg | 10 + src/problem2/src/tokens/APE.svg | 14 + src/problem2/src/tokens/APOLLO.svg | 21 + src/problem2/src/tokens/APT.svg | 11 + src/problem2/src/tokens/AR.svg | 5 + src/problem2/src/tokens/ARB.svg | 16 + src/problem2/src/tokens/ARCH.svg | 11 + src/problem2/src/tokens/ASA.svg | 4 + src/problem2/src/tokens/ASTRO.svg | 12 + src/problem2/src/tokens/ATOM-dATOM.svg | 20 + src/problem2/src/tokens/ATOM.svg | 9 + src/problem2/src/tokens/AUDIO.svg | 10 + src/problem2/src/tokens/AUT.svg | 208 + src/problem2/src/tokens/AVA.svg | 10 + src/problem2/src/tokens/AVAIL.svg | 200 + src/problem2/src/tokens/AVAX.svg | 4 + src/problem2/src/tokens/AXL.svg | 4 + src/problem2/src/tokens/AXS.svg | 4 + src/problem2/src/tokens/AXT.svg | 71 + src/problem2/src/tokens/BAKE.svg | 16 + src/problem2/src/tokens/BAL.svg | 6 + src/problem2/src/tokens/BAND.svg | 4 + src/problem2/src/tokens/BAT.svg | 4 + src/problem2/src/tokens/BCD.svg | 4 + src/problem2/src/tokens/BCH.svg | 4 + src/problem2/src/tokens/BCHA.svg | 5 + src/problem2/src/tokens/BCN.svg | 4 + src/problem2/src/tokens/BCNA.svg | 6 + src/problem2/src/tokens/BELT.svg | 1 + src/problem2/src/tokens/BERA.svg | 11 + src/problem2/src/tokens/BETH.svg | 21 + src/problem2/src/tokens/BHC.svg | 4 + src/problem2/src/tokens/BIT.svg | 4 + src/problem2/src/tokens/BLAST.svg | 11 + src/problem2/src/tokens/BLD.svg | 19 + src/problem2/src/tokens/BLOX.svg | 23 + src/problem2/src/tokens/BLUR.svg | 19 + src/problem2/src/tokens/BNB.svg | 4 + src/problem2/src/tokens/BNT.svg | 4 + src/problem2/src/tokens/BOLT.svg | 21 + src/problem2/src/tokens/BONK.svg | 424 ++ src/problem2/src/tokens/BOOT.svg | 10 + src/problem2/src/tokens/BRAINS.svg | 11 + src/problem2/src/tokens/BRETT.svg | 34 + src/problem2/src/tokens/BRKL.svg | 276 ++ src/problem2/src/tokens/BTC.svg | 5 + src/problem2/src/tokens/BTCST.svg | 4 + src/problem2/src/tokens/BTG.svg | 4 + src/problem2/src/tokens/BTM.svg | 7 + src/problem2/src/tokens/BTMX.svg | 5 + src/problem2/src/tokens/BTSG.svg | 4 + src/problem2/src/tokens/BTT.svg | 7 + src/problem2/src/tokens/BUNNY.svg | 4 + src/problem2/src/tokens/BUSD.svg | 8 + src/problem2/src/tokens/BUSDT.svg | 5 + src/problem2/src/tokens/C98.svg | 7 + src/problem2/src/tokens/CAKE.svg | 8 + src/problem2/src/tokens/CANTO.svg | 11 + src/problem2/src/tokens/CARB.svg | 11 + src/problem2/src/tokens/CAT.svg | 65 + src/problem2/src/tokens/CEL.svg | 11 + src/problem2/src/tokens/CELO.svg | 4 + src/problem2/src/tokens/CETH.svg | 17 + src/problem2/src/tokens/CFX.svg | 5 + src/problem2/src/tokens/CGAS.svg | 4 + src/problem2/src/tokens/CHEQ.svg | 34 + src/problem2/src/tokens/CHOG.svg | 20 + src/problem2/src/tokens/CHSB.svg | 10 + src/problem2/src/tokens/CHT.svg | 54 + src/problem2/src/tokens/CHZ.svg | 4 + src/problem2/src/tokens/CKB.svg | 5 + src/problem2/src/tokens/CMDX.svg | 4 + src/problem2/src/tokens/CMST.svg | 13 + src/problem2/src/tokens/CNT.svg | 110 + src/problem2/src/tokens/COIN.svg | 4 + src/problem2/src/tokens/COMP.svg | 4 + src/problem2/src/tokens/COOK.svg | 40 + src/problem2/src/tokens/CRBRUS.svg | 88 + src/problem2/src/tokens/CRE.svg | 42 + src/problem2/src/tokens/CRO.svg | 8 + src/problem2/src/tokens/CRV.svg | 790 ++++ src/problem2/src/tokens/CTK.svg | 7 + src/problem2/src/tokens/CW.svg | 13 + src/problem2/src/tokens/DAG.svg | 10 + src/problem2/src/tokens/DAI.svg | 4 + src/problem2/src/tokens/DAK.svg | 20 + src/problem2/src/tokens/DARC.svg | 9 + src/problem2/src/tokens/DASH.svg | 5 + src/problem2/src/tokens/DBC.svg | 4 + src/problem2/src/tokens/DCR.svg | 11 + src/problem2/src/tokens/DEC.svg | 38 + src/problem2/src/tokens/DEGEN.svg | 12 + src/problem2/src/tokens/DENT.svg | 15 + src/problem2/src/tokens/DGB.svg | 4 + src/problem2/src/tokens/DIG.svg | 54 + src/problem2/src/tokens/DKT.svg | 65 + src/problem2/src/tokens/DODO.svg | 6 + src/problem2/src/tokens/DOGE.svg | 124 + src/problem2/src/tokens/DOT.svg | 5 + src/problem2/src/tokens/DPL.svg | 16 + src/problem2/src/tokens/DPX.svg | 15 + src/problem2/src/tokens/DRFT.svg | 83 + src/problem2/src/tokens/DROP.svg | 13 + src/problem2/src/tokens/DSM.svg | 4 + src/problem2/src/tokens/DUVT.svg | 24 + src/problem2/src/tokens/DVPN.svg | 5 + src/problem2/src/tokens/DYDX.svg | 20 + src/problem2/src/tokens/DYM.svg | 11 + src/problem2/src/tokens/EEUR.svg | 16 + src/problem2/src/tokens/EIGEN.svg | 4 + src/problem2/src/tokens/ELA.svg | 5 + src/problem2/src/tokens/ELF.svg | 4 + src/problem2/src/tokens/ENA.svg | 21 + src/problem2/src/tokens/ENJ.svg | 63 + src/problem2/src/tokens/ENS.svg | 10 + src/problem2/src/tokens/EOS.svg | 4 + src/problem2/src/tokens/EPS.svg | 25 + src/problem2/src/tokens/ETC.svg | 6 + src/problem2/src/tokens/ETH.svg | 9 + src/problem2/src/tokens/ETHBTC.svg | 10 + src/problem2/src/tokens/ETN.svg | 4 + src/problem2/src/tokens/EUROC.svg | 12 + src/problem2/src/tokens/EUT.svg | 208 + src/problem2/src/tokens/EVMOS.svg | 4 + src/problem2/src/tokens/EWT.svg | 5 + src/problem2/src/tokens/FARTCOIN.svg | 158 + src/problem2/src/tokens/FBTC.svg | 29 + src/problem2/src/tokens/FEES.svg | 10 + src/problem2/src/tokens/FET.svg | 19 + src/problem2/src/tokens/FIL.svg | 4 + src/problem2/src/tokens/FIS.svg | 20 + src/problem2/src/tokens/FLIX.svg | 37 + src/problem2/src/tokens/FLM.svg | 13 + src/problem2/src/tokens/FLOW.svg | 5 + src/problem2/src/tokens/FLUID.svg | 53 + src/problem2/src/tokens/FLUO.svg | 11 + src/problem2/src/tokens/FRANK.svg | 268 ++ src/problem2/src/tokens/FSGLP.svg | 15 + src/problem2/src/tokens/FTM.svg | 4 + src/problem2/src/tokens/FTT.svg | 7 + src/problem2/src/tokens/FTTC.svg | 7 + src/problem2/src/tokens/FUN.svg | 4 + src/problem2/src/tokens/GALA.svg | 6 + src/problem2/src/tokens/GAMBIT.svg | 24 + src/problem2/src/tokens/GAS.svg | 4 + src/problem2/src/tokens/GBT.svg | 212 + src/problem2/src/tokens/GLP.svg | 15 + src/problem2/src/tokens/GM.svg | 7 + src/problem2/src/tokens/GMX.svg | 15 + src/problem2/src/tokens/GNO.svg | 7 + src/problem2/src/tokens/GNS.svg | 34 + src/problem2/src/tokens/GOAT.svg | 2174 ++++++++++ src/problem2/src/tokens/GRASS.svg | 4 + src/problem2/src/tokens/GRAV.svg | 44 + src/problem2/src/tokens/GRT.svg | 4 + src/problem2/src/tokens/GT.svg | 4 + src/problem2/src/tokens/HBAR.svg | 4 + src/problem2/src/tokens/HDN.png | Bin 0 -> 20649 bytes src/problem2/src/tokens/HDN.svg | 9 + src/problem2/src/tokens/HELMET.svg | 9 + src/problem2/src/tokens/HKT.svg | 45 + src/problem2/src/tokens/HNT.svg | 4 + src/problem2/src/tokens/HOPE.svg | 144 + src/problem2/src/tokens/HOT.svg | 4 + src/problem2/src/tokens/HT.svg | 5 + src/problem2/src/tokens/HUAHUA.svg | 22 + src/problem2/src/tokens/HUNY.svg | 1 + src/problem2/src/tokens/HUSD.svg | 6 + src/problem2/src/tokens/HYPE.svg | 4 + src/problem2/src/tokens/IBCX.svg | 14 + src/problem2/src/tokens/ICP.svg | 16 + src/problem2/src/tokens/ICX.svg | 7 + src/problem2/src/tokens/IDT.svg | 54 + src/problem2/src/tokens/INIT.svg | 11 + src/problem2/src/tokens/INJ.svg | 14 + src/problem2/src/tokens/INT.svg | 82 + src/problem2/src/tokens/ION.svg | 114 + src/problem2/src/tokens/IOST.svg | 4 + src/problem2/src/tokens/IOTX.svg | 26 + src/problem2/src/tokens/IOV.svg | 9 + src/problem2/src/tokens/IP.svg | 24 + src/problem2/src/tokens/IRIS.svg | 51 + src/problem2/src/tokens/IXO.svg | 4 + src/problem2/src/tokens/JPT.svg | 54 + src/problem2/src/tokens/JTO.svg | 6 + src/problem2/src/tokens/JUNO.svg | 6 + src/problem2/src/tokens/JUP.svg | 34 + src/problem2/src/tokens/KAITO.svg | 16 + src/problem2/src/tokens/KAS.svg | 3 + src/problem2/src/tokens/KBONK.svg | 424 ++ src/problem2/src/tokens/KCS.svg | 4 + src/problem2/src/tokens/KFLOKI.svg | 40 + src/problem2/src/tokens/KLAY.svg | 7 + src/problem2/src/tokens/KMD.svg | 15 + src/problem2/src/tokens/KNC.svg | 7 + src/problem2/src/tokens/KPEPE.svg | 28 + src/problem2/src/tokens/KRT.svg | 248 ++ src/problem2/src/tokens/KSHIB.svg | 17 + src/problem2/src/tokens/KSM.svg | 4 + src/problem2/src/tokens/KUJI.svg | 19 + src/problem2/src/tokens/LAYER.svg | 11 + src/problem2/src/tokens/LBTC.svg | 26 + src/problem2/src/tokens/LDO.svg | 12 + src/problem2/src/tokens/LEO.svg | 77 + src/problem2/src/tokens/LET.svg | 15 + src/problem2/src/tokens/LIKE.svg | 41 + src/problem2/src/tokens/LINK.svg | 4 + src/problem2/src/tokens/LKT.svg | 16 + src/problem2/src/tokens/LOOM.svg | 15 + src/problem2/src/tokens/LOOP.svg | 35 + src/problem2/src/tokens/LOTA.svg | 10 + src/problem2/src/tokens/LPLBTC_29MAY2025.svg | 35 + src/problem2/src/tokens/LPT.svg | 4 + .../src/tokens/LPberaSTONE_10APR2025.svg | 29 + src/problem2/src/tokens/LPcmETH_26JUN2025.svg | 31 + src/problem2/src/tokens/LRC.svg | 4 + src/problem2/src/tokens/LSI.svg | 53 + src/problem2/src/tokens/LSK.svg | 4 + src/problem2/src/tokens/LTC.svg | 4 + src/problem2/src/tokens/LUM.svg | 12 + src/problem2/src/tokens/LUNA.svg | 15 + src/problem2/src/tokens/LUNAX.svg | 10 + src/problem2/src/tokens/LUNC.svg | 6 + src/problem2/src/tokens/LUNI.svg | 29 + src/problem2/src/tokens/LUNR.svg | 4 + src/problem2/src/tokens/LUV.svg | 49 + src/problem2/src/tokens/LVN.svg | 11 + .../src/tokens/Liquid Staking Index.svg | 29 + src/problem2/src/tokens/M87.svg | 11 + src/problem2/src/tokens/MANA.svg | 26 + src/problem2/src/tokens/MANTA.svg | 25 + src/problem2/src/tokens/MARBLE.svg | 8 + src/problem2/src/tokens/MATH.svg | 4 + src/problem2/src/tokens/MATIC.svg | 10 + src/problem2/src/tokens/MDX.svg | 5 + src/problem2/src/tokens/ME.svg | 11 + src/problem2/src/tokens/MED.svg | 8 + src/problem2/src/tokens/MEME.svg | 13 + src/problem2/src/tokens/METIS.svg | 11 + src/problem2/src/tokens/MEW.svg | 25 + src/problem2/src/tokens/MIAW.svg | 7 + src/problem2/src/tokens/MILK.svg | 12 + src/problem2/src/tokens/MINA.svg | 4 + src/problem2/src/tokens/MINE.svg | 11 + src/problem2/src/tokens/MIOTA.svg | 4 + src/problem2/src/tokens/MIR.svg | 4 + src/problem2/src/tokens/MKR.svg | 10 + src/problem2/src/tokens/MMOG.svg | 20 + src/problem2/src/tokens/MNT.svg | 4 + src/problem2/src/tokens/MNTA.svg | 18 + src/problem2/src/tokens/MNTL.svg | 17 + src/problem2/src/tokens/MON.svg | 11 + src/problem2/src/tokens/MOODENG.svg | 15 + src/problem2/src/tokens/MORPHO.svg | 14 + src/problem2/src/tokens/MYT.svg | 171 + src/problem2/src/tokens/NANO.svg | 6 + src/problem2/src/tokens/NAS.svg | 4 + src/problem2/src/tokens/NAT.svg | 8 + src/problem2/src/tokens/NEAR.svg | 4 + src/problem2/src/tokens/NEIROETH.svg | 15 + src/problem2/src/tokens/NEO.svg | 6 + src/problem2/src/tokens/NETA.svg | 6 + src/problem2/src/tokens/NEX.svg | 5 + src/problem2/src/tokens/NEXO.svg | 9 + src/problem2/src/tokens/NGM.svg | 6 + src/problem2/src/tokens/NIM.svg | 23 + src/problem2/src/tokens/NKN.svg | 22 + src/problem2/src/tokens/NMR.svg | 5 + src/problem2/src/tokens/NOT.svg | 11 + src/problem2/src/tokens/NOTE.svg | 17 + src/problem2/src/tokens/NTRN-dATOM.svg | 21 + src/problem2/src/tokens/NTRN.svg | 12 + src/problem2/src/tokens/NXM.svg | 8 + src/problem2/src/tokens/OCEAN.svg | 4 + src/problem2/src/tokens/OCH.svg | 15 + src/problem2/src/tokens/OGN.svg | 4 + src/problem2/src/tokens/OKB.svg | 15 + src/problem2/src/tokens/OKT.svg | 15 + src/problem2/src/tokens/OM.svg | 15 + src/problem2/src/tokens/OMG.svg | 7 + src/problem2/src/tokens/OMG_2.svg | 4 + src/problem2/src/tokens/OMI.svg | 18 + src/problem2/src/tokens/OMNI.svg | 11 + src/problem2/src/tokens/ONDO.svg | 11 + src/problem2/src/tokens/ONE.svg | 10 + src/problem2/src/tokens/ONT.svg | 4 + src/problem2/src/tokens/OP.svg | 12 + src/problem2/src/tokens/OPUL.svg | 7 + src/problem2/src/tokens/ORDI.svg | 11 + src/problem2/src/tokens/ORION.svg | 8 + src/problem2/src/tokens/ORNE.svg | 6 + src/problem2/src/tokens/OSMO.svg | 121 + src/problem2/src/tokens/OXT.svg | 7 + src/problem2/src/tokens/OXY.svg | 22 + src/problem2/src/tokens/PAX.svg | 11 + src/problem2/src/tokens/PAXG.svg | 22 + src/problem2/src/tokens/PENDLE.svg | 17 + src/problem2/src/tokens/PENGU.svg | 15 + src/problem2/src/tokens/PEPE.svg | 28 + src/problem2/src/tokens/PHT.svg | 124 + src/problem2/src/tokens/PLAY.svg | 23 + src/problem2/src/tokens/PLQ.svg | 15 + src/problem2/src/tokens/PLY.svg | 42 + src/problem2/src/tokens/PNUT.svg | 15 + src/problem2/src/tokens/POL.svg | 19 + src/problem2/src/tokens/POLY.svg | 55 + src/problem2/src/tokens/POPCAT.svg | 10 + src/problem2/src/tokens/PORT.svg | 4 + src/problem2/src/tokens/PROM.svg | 5 + src/problem2/src/tokens/PSI.svg | 4 + src/problem2/src/tokens/PSTAKE.svg | 5 + src/problem2/src/tokens/PTLBTC_29MAY2025.svg | 27 + src/problem2/src/tokens/PTMETH_26DEC2024.svg | 30 + .../src/tokens/PTberaSTONE_10APR2025.svg | 21 + src/problem2/src/tokens/PTcmETH_26JUN2025.svg | 23 + src/problem2/src/tokens/PUDGY.svg | 23 + src/problem2/src/tokens/PUMP.svg | 67 + src/problem2/src/tokens/PUNDIX.svg | 4 + src/problem2/src/tokens/PURR.svg | 62 + src/problem2/src/tokens/PURSE.svg | 22 + src/problem2/src/tokens/PYTH.svg | 12 + src/problem2/src/tokens/QCK.svg | 80 + src/problem2/src/tokens/QKC.svg | 10 + src/problem2/src/tokens/QNT.svg | 10 + src/problem2/src/tokens/QTUM.svg | 4 + src/problem2/src/tokens/RAY.svg | 14 + src/problem2/src/tokens/RBN.svg | 4 + src/problem2/src/tokens/REEF.svg | 10 + src/problem2/src/tokens/REGEN.svg | 24 + src/problem2/src/tokens/REN.svg | 16 + src/problem2/src/tokens/REP.svg | 5 + src/problem2/src/tokens/REV.svg | 12 + src/problem2/src/tokens/RLB.svg | 11 + src/problem2/src/tokens/RLC.svg | 4 + src/problem2/src/tokens/RNDR.svg | 11 + src/problem2/src/tokens/ROAR.svg | 18 + src/problem2/src/tokens/ROWAN.svg | 11 + src/problem2/src/tokens/RSR.svg | 4 + src/problem2/src/tokens/RUNE.svg | 10 + src/problem2/src/tokens/RVN.svg | 6 + src/problem2/src/tokens/S.svg | 4 + src/problem2/src/tokens/SAFEMOON.svg | 27 + src/problem2/src/tokens/SAGA.svg | 12 + src/problem2/src/tokens/SAND.svg | 10 + src/problem2/src/tokens/SAYVE.svg | 5 + src/problem2/src/tokens/SC.svg | 4 + src/problem2/src/tokens/SCRT.svg | 5 + src/problem2/src/tokens/SDT.svg | 48 + src/problem2/src/tokens/SEI.svg | 14 + src/problem2/src/tokens/SET.svg | 65 + src/problem2/src/tokens/SGT.svg | 138 + src/problem2/src/tokens/SHD.svg | 34 + src/problem2/src/tokens/SHIB.svg | 17 + src/problem2/src/tokens/SHIDO.svg | 20 + src/problem2/src/tokens/SITY.svg | 8 + src/problem2/src/tokens/SLERF.svg | 24 + src/problem2/src/tokens/SNT.svg | 4 + src/problem2/src/tokens/SNX.svg | 10 + src/problem2/src/tokens/SOL.svg | 12 + src/problem2/src/tokens/SOLETH.svg | 12 + src/problem2/src/tokens/SOM.svg | 10 + src/problem2/src/tokens/SOMM.svg | 65 + src/problem2/src/tokens/SPEC.svg | 4 + src/problem2/src/tokens/SRM.svg | 20 + src/problem2/src/tokens/SRV.svg | 5 + src/problem2/src/tokens/STARS.svg | 16 + src/problem2/src/tokens/STEEM.svg | 6 + src/problem2/src/tokens/STMX.svg | 4 + src/problem2/src/tokens/STORJ.svg | 13 + src/problem2/src/tokens/STRAX.svg | 12 + src/problem2/src/tokens/STRD.svg | 4 + src/problem2/src/tokens/STREAM.svg | 4 + src/problem2/src/tokens/STRK.svg | 13 + src/problem2/src/tokens/STT.svg | 4 + src/problem2/src/tokens/STX.svg | 4 + src/problem2/src/tokens/SUI.svg | 11 + src/problem2/src/tokens/SUN.svg | 60 + src/problem2/src/tokens/SUSHI.svg | 26 + src/problem2/src/tokens/SWTH-LEGACY.svg | 4 + src/problem2/src/tokens/SWTH.svg | 71 + src/problem2/src/tokens/SXP.svg | 10 + src/problem2/src/tokens/TAO.svg | 4 + src/problem2/src/tokens/TEL.svg | 4 + src/problem2/src/tokens/TFUEL.svg | 11 + src/problem2/src/tokens/THETA.svg | 13 + src/problem2/src/tokens/THT.svg | 68 + src/problem2/src/tokens/TIA.svg | 11 + src/problem2/src/tokens/TICK.svg | 17 + src/problem2/src/tokens/TITAN.svg | 11 + src/problem2/src/tokens/TLAND.svg | 5 + src/problem2/src/tokens/TLM.svg | 16 + src/problem2/src/tokens/TOMO.svg | 6 + src/problem2/src/tokens/TON.svg | 11 + src/problem2/src/tokens/TPC.svg | 17 + src/problem2/src/tokens/TRAXX.svg | 14 + src/problem2/src/tokens/TRB.svg | 11 + src/problem2/src/tokens/TRU.svg | 6 + src/problem2/src/tokens/TRUMP.svg | 20 + src/problem2/src/tokens/TRX.svg | 4 + src/problem2/src/tokens/TTT.svg | 6 + src/problem2/src/tokens/TUSD.svg | 6 + src/problem2/src/tokens/TWD.svg | 18 + src/problem2/src/tokens/TWT.svg | 77 + src/problem2/src/tokens/Token.svg | 15 + src/problem2/src/tokens/UBQ.svg | 7 + src/problem2/src/tokens/UMEE.svg | 39 + src/problem2/src/tokens/UNA.svg | 7 + src/problem2/src/tokens/UNI.svg | 15 + src/problem2/src/tokens/UOS.svg | 5 + src/problem2/src/tokens/USC-Minted.svg | 37 + src/problem2/src/tokens/USC.svg | 37 + src/problem2/src/tokens/USD.svg | 8 + src/problem2/src/tokens/USDC-dATOM.svg | 17 + src/problem2/src/tokens/USDC.e.svg | 6 + src/problem2/src/tokens/USDC.grv.svg | 14 + src/problem2/src/tokens/USDC.svg | 6 + src/problem2/src/tokens/USDP.svg | 12 + src/problem2/src/tokens/USDT.svg | 5 + src/problem2/src/tokens/USDY.svg | 11 + src/problem2/src/tokens/USK.svg | 19 + src/problem2/src/tokens/UST.svg | 5 + src/problem2/src/tokens/USUAL.svg | 48 + src/problem2/src/tokens/VDL.svg | 6 + src/problem2/src/tokens/VET.svg | 4 + src/problem2/src/tokens/VIRTUAL.svg | 24 + src/problem2/src/tokens/VKR.svg | 4 + src/problem2/src/tokens/VRTX.svg | 22 + src/problem2/src/tokens/W.svg | 11 + src/problem2/src/tokens/WAL.svg | 11 + src/problem2/src/tokens/WAVAX.svg | 4 + src/problem2/src/tokens/WAVE.svg | 4 + src/problem2/src/tokens/WBNB.svg | 4 + src/problem2/src/tokens/WBTC.svg | 9 + src/problem2/src/tokens/WETH.svg | 17 + src/problem2/src/tokens/WHALE.svg | 10 + src/problem2/src/tokens/WIF.svg | 23 + src/problem2/src/tokens/WIN.svg | 5 + src/problem2/src/tokens/WLD.svg | 11 + src/problem2/src/tokens/WMATIC.svg | 6 + src/problem2/src/tokens/WMNT.svg | 4 + src/problem2/src/tokens/WMON.png | Bin 0 -> 826 bytes src/problem2/src/tokens/WRX.svg | 7 + src/problem2/src/tokens/XCAD.svg | 12 + src/problem2/src/tokens/XDC.svg | 6 + src/problem2/src/tokens/XEM.svg | 4 + src/problem2/src/tokens/XKI.svg | 5 + src/problem2/src/tokens/XLM.svg | 5 + src/problem2/src/tokens/XMR.svg | 5 + src/problem2/src/tokens/XPRT.svg | 5 + src/problem2/src/tokens/XRP.svg | 4 + src/problem2/src/tokens/XSGD.svg | 11 + src/problem2/src/tokens/XTRA.svg | 9 + src/problem2/src/tokens/XTZ.svg | 4 + src/problem2/src/tokens/XVG.svg | 4 + src/problem2/src/tokens/XVS.svg | 11 + src/problem2/src/tokens/YAKI.svg | 20 + src/problem2/src/tokens/YAM.svg | 47 + src/problem2/src/tokens/YFI.svg | 6 + src/problem2/src/tokens/YieldUSD.svg | 17 + src/problem2/src/tokens/ZCH.svg | 6 + src/problem2/src/tokens/ZEC.svg | 10 + src/problem2/src/tokens/ZEN.svg | 20 + src/problem2/src/tokens/ZIL.svg | 7 + src/problem2/src/tokens/ZRO.svg | 12 + src/problem2/src/tokens/ZRX.svg | 7 + src/problem2/src/tokens/ZWAP.svg | 5 + src/problem2/src/tokens/ampKUJI.svg | 12 + src/problem2/src/tokens/ampLUNA.svg | 15 + src/problem2/src/tokens/axlUSDC.svg | 6 + src/problem2/src/tokens/bCFX.svg | 5 + src/problem2/src/tokens/bNEO.svg | 12 + src/problem2/src/tokens/beraSTONE.svg | 20 + src/problem2/src/tokens/cUSD.svg | 21 + src/problem2/src/tokens/cbBTC.svg | 5 + src/problem2/src/tokens/cbETH.svg | 10 + src/problem2/src/tokens/cmETH.svg | 22 + src/problem2/src/tokens/dATOM.svg | 13 + src/problem2/src/tokens/dGLP.svg | 20 + src/problem2/src/tokens/dINJ.svg | 20 + src/problem2/src/tokens/dXCAD.svg | 13 + src/problem2/src/tokens/eGLD.svg | 36 + src/problem2/src/tokens/ePLAY.svg | 23 + src/problem2/src/tokens/esFLUO.svg | 18 + src/problem2/src/tokens/gZIL.svg | 12 + src/problem2/src/tokens/iSEI.svg | 10 + src/problem2/src/tokens/iUSD.svg | 5 + src/problem2/src/tokens/mETH.svg | 24 + src/problem2/src/tokens/milkTIA.svg | 18 + src/problem2/src/tokens/nLEND.svg | 19 + src/problem2/src/tokens/nNEO.svg | 6 + src/problem2/src/tokens/rATOM.svg | 55 + src/problem2/src/tokens/rSWTH.svg | 88 + src/problem2/src/tokens/sARCH.svg | 11 + src/problem2/src/tokens/stATOM.svg | 22 + src/problem2/src/tokens/stDYDX.svg | 6 + src/problem2/src/tokens/stDYM.svg | 11 + src/problem2/src/tokens/stETH.svg | 18 + src/problem2/src/tokens/stEVMOS.svg | 16 + src/problem2/src/tokens/stFLUO.svg | 18 + src/problem2/src/tokens/stIBCX.svg | 4 + src/problem2/src/tokens/stINJ.svg | 4 + src/problem2/src/tokens/stJUNO.svg | 5 + src/problem2/src/tokens/stLUNA.svg | 9 + src/problem2/src/tokens/stOKT.svg | 8 + src/problem2/src/tokens/stOSMO.svg | 16 + src/problem2/src/tokens/stSAGA.svg | 5 + src/problem2/src/tokens/stSTARS.svg | 5 + src/problem2/src/tokens/stTIA.svg | 4 + src/problem2/src/tokens/stZIL.svg | 8 + src/problem2/src/tokens/stkATOM.svg | 20 + src/problem2/src/tokens/stkDYDX.svg | 22 + src/problem2/src/tokens/stkSTARS.svg | 15 + src/problem2/src/tokens/vZWAP.svg | 12 + src/problem2/src/tokens/veFLUO.svg | 18 + src/problem2/src/tokens/wKAS.svg | 5 + src/problem2/src/tokens/wstETH.svg | 11 + src/problem2/src/types/index.ts | 10 + src/problem2/src/utils/cn.ts | 6 + src/problem2/src/utils/index.ts | 1 + src/problem2/src/vite-env.d.ts | 1 + src/problem2/tailwind.config.js | 29 + src/problem2/tsconfig.app.json | 29 + src/problem2/tsconfig.json | 7 + src/problem2/tsconfig.node.json | 22 + src/problem2/vite.config.ts | 13 + 574 files changed, 19489 insertions(+), 26 deletions(-) create mode 100644 src/problem2/.gitignore create mode 100644 src/problem2/package-lock.json create mode 100644 src/problem2/package.json create mode 100644 src/problem2/postcss.config.js create mode 100644 src/problem2/src/App.tsx create mode 100644 src/problem2/src/components/layout/Header.tsx create mode 100644 src/problem2/src/components/layout/Layout.tsx create mode 100644 src/problem2/src/components/layout/Sidebar.tsx create mode 100644 src/problem2/src/components/layout/index.ts create mode 100644 src/problem2/src/components/swap/ConfirmSwapModal.tsx create mode 100644 src/problem2/src/components/swap/OrderDetails.tsx create mode 100644 src/problem2/src/components/swap/Slippage.tsx create mode 100644 src/problem2/src/components/swap/SwapCard.tsx create mode 100644 src/problem2/src/components/swap/TokenInput.tsx create mode 100644 src/problem2/src/components/swap/TokenModal.tsx create mode 100644 src/problem2/src/components/swap/index.ts create mode 100644 src/problem2/src/components/ui/Button.tsx create mode 100644 src/problem2/src/components/ui/Input.tsx create mode 100644 src/problem2/src/components/ui/Modal.tsx create mode 100644 src/problem2/src/components/ui/Skeleton.tsx create mode 100644 src/problem2/src/components/ui/Toast.tsx create mode 100644 src/problem2/src/components/ui/index.ts create mode 100644 src/problem2/src/constants/index.ts create mode 100644 src/problem2/src/constants/tokens.ts create mode 100644 src/problem2/src/hooks/useSwap.ts create mode 100644 src/problem2/src/index.css create mode 100644 src/problem2/src/main.tsx create mode 100644 src/problem2/src/pages/swap/index.tsx create mode 100644 src/problem2/src/prices.json create mode 100644 src/problem2/src/tokens/1INCH.svg create mode 100644 src/problem2/src/tokens/AAVE.svg create mode 100644 src/problem2/src/tokens/ACT.svg create mode 100644 src/problem2/src/tokens/ADA.svg create mode 100644 src/problem2/src/tokens/AEVO.svg create mode 100644 src/problem2/src/tokens/AGI.svg create mode 100644 src/problem2/src/tokens/AI16Z.svg create mode 100644 src/problem2/src/tokens/AIXBT.svg create mode 100644 src/problem2/src/tokens/AKRO.svg create mode 100644 src/problem2/src/tokens/AKT.svg create mode 100644 src/problem2/src/tokens/ALGO.svg create mode 100644 src/problem2/src/tokens/ALPHA.svg create mode 100644 src/problem2/src/tokens/ALT.svg create mode 100644 src/problem2/src/tokens/AMP.svg create mode 100644 src/problem2/src/tokens/ANC.svg create mode 100644 src/problem2/src/tokens/ANDR.svg create mode 100644 src/problem2/src/tokens/ANIME.svg create mode 100644 src/problem2/src/tokens/ANKR.svg create mode 100644 src/problem2/src/tokens/ANT.svg create mode 100644 src/problem2/src/tokens/ANY.svg create mode 100644 src/problem2/src/tokens/APE.svg create mode 100644 src/problem2/src/tokens/APOLLO.svg create mode 100644 src/problem2/src/tokens/APT.svg create mode 100644 src/problem2/src/tokens/AR.svg create mode 100644 src/problem2/src/tokens/ARB.svg create mode 100644 src/problem2/src/tokens/ARCH.svg create mode 100644 src/problem2/src/tokens/ASA.svg create mode 100644 src/problem2/src/tokens/ASTRO.svg create mode 100644 src/problem2/src/tokens/ATOM-dATOM.svg create mode 100644 src/problem2/src/tokens/ATOM.svg create mode 100644 src/problem2/src/tokens/AUDIO.svg create mode 100644 src/problem2/src/tokens/AUT.svg create mode 100644 src/problem2/src/tokens/AVA.svg create mode 100644 src/problem2/src/tokens/AVAIL.svg create mode 100644 src/problem2/src/tokens/AVAX.svg create mode 100644 src/problem2/src/tokens/AXL.svg create mode 100644 src/problem2/src/tokens/AXS.svg create mode 100644 src/problem2/src/tokens/AXT.svg create mode 100644 src/problem2/src/tokens/BAKE.svg create mode 100644 src/problem2/src/tokens/BAL.svg create mode 100644 src/problem2/src/tokens/BAND.svg create mode 100644 src/problem2/src/tokens/BAT.svg create mode 100644 src/problem2/src/tokens/BCD.svg create mode 100644 src/problem2/src/tokens/BCH.svg create mode 100644 src/problem2/src/tokens/BCHA.svg create mode 100644 src/problem2/src/tokens/BCN.svg create mode 100644 src/problem2/src/tokens/BCNA.svg create mode 100644 src/problem2/src/tokens/BELT.svg create mode 100644 src/problem2/src/tokens/BERA.svg create mode 100644 src/problem2/src/tokens/BETH.svg create mode 100644 src/problem2/src/tokens/BHC.svg create mode 100644 src/problem2/src/tokens/BIT.svg create mode 100644 src/problem2/src/tokens/BLAST.svg create mode 100644 src/problem2/src/tokens/BLD.svg create mode 100644 src/problem2/src/tokens/BLOX.svg create mode 100644 src/problem2/src/tokens/BLUR.svg create mode 100644 src/problem2/src/tokens/BNB.svg create mode 100644 src/problem2/src/tokens/BNT.svg create mode 100644 src/problem2/src/tokens/BOLT.svg create mode 100644 src/problem2/src/tokens/BONK.svg create mode 100644 src/problem2/src/tokens/BOOT.svg create mode 100644 src/problem2/src/tokens/BRAINS.svg create mode 100644 src/problem2/src/tokens/BRETT.svg create mode 100644 src/problem2/src/tokens/BRKL.svg create mode 100644 src/problem2/src/tokens/BTC.svg create mode 100644 src/problem2/src/tokens/BTCST.svg create mode 100644 src/problem2/src/tokens/BTG.svg create mode 100644 src/problem2/src/tokens/BTM.svg create mode 100644 src/problem2/src/tokens/BTMX.svg create mode 100644 src/problem2/src/tokens/BTSG.svg create mode 100644 src/problem2/src/tokens/BTT.svg create mode 100644 src/problem2/src/tokens/BUNNY.svg create mode 100644 src/problem2/src/tokens/BUSD.svg create mode 100644 src/problem2/src/tokens/BUSDT.svg create mode 100644 src/problem2/src/tokens/C98.svg create mode 100644 src/problem2/src/tokens/CAKE.svg create mode 100644 src/problem2/src/tokens/CANTO.svg create mode 100644 src/problem2/src/tokens/CARB.svg create mode 100644 src/problem2/src/tokens/CAT.svg create mode 100644 src/problem2/src/tokens/CEL.svg create mode 100644 src/problem2/src/tokens/CELO.svg create mode 100644 src/problem2/src/tokens/CETH.svg create mode 100644 src/problem2/src/tokens/CFX.svg create mode 100644 src/problem2/src/tokens/CGAS.svg create mode 100644 src/problem2/src/tokens/CHEQ.svg create mode 100644 src/problem2/src/tokens/CHOG.svg create mode 100644 src/problem2/src/tokens/CHSB.svg create mode 100644 src/problem2/src/tokens/CHT.svg create mode 100644 src/problem2/src/tokens/CHZ.svg create mode 100644 src/problem2/src/tokens/CKB.svg create mode 100644 src/problem2/src/tokens/CMDX.svg create mode 100644 src/problem2/src/tokens/CMST.svg create mode 100644 src/problem2/src/tokens/CNT.svg create mode 100644 src/problem2/src/tokens/COIN.svg create mode 100644 src/problem2/src/tokens/COMP.svg create mode 100644 src/problem2/src/tokens/COOK.svg create mode 100644 src/problem2/src/tokens/CRBRUS.svg create mode 100644 src/problem2/src/tokens/CRE.svg create mode 100644 src/problem2/src/tokens/CRO.svg create mode 100644 src/problem2/src/tokens/CRV.svg create mode 100644 src/problem2/src/tokens/CTK.svg create mode 100644 src/problem2/src/tokens/CW.svg create mode 100644 src/problem2/src/tokens/DAG.svg create mode 100644 src/problem2/src/tokens/DAI.svg create mode 100644 src/problem2/src/tokens/DAK.svg create mode 100644 src/problem2/src/tokens/DARC.svg create mode 100644 src/problem2/src/tokens/DASH.svg create mode 100644 src/problem2/src/tokens/DBC.svg create mode 100644 src/problem2/src/tokens/DCR.svg create mode 100644 src/problem2/src/tokens/DEC.svg create mode 100644 src/problem2/src/tokens/DEGEN.svg create mode 100644 src/problem2/src/tokens/DENT.svg create mode 100644 src/problem2/src/tokens/DGB.svg create mode 100644 src/problem2/src/tokens/DIG.svg create mode 100644 src/problem2/src/tokens/DKT.svg create mode 100644 src/problem2/src/tokens/DODO.svg create mode 100644 src/problem2/src/tokens/DOGE.svg create mode 100644 src/problem2/src/tokens/DOT.svg create mode 100644 src/problem2/src/tokens/DPL.svg create mode 100644 src/problem2/src/tokens/DPX.svg create mode 100644 src/problem2/src/tokens/DRFT.svg create mode 100644 src/problem2/src/tokens/DROP.svg create mode 100644 src/problem2/src/tokens/DSM.svg create mode 100644 src/problem2/src/tokens/DUVT.svg create mode 100644 src/problem2/src/tokens/DVPN.svg create mode 100644 src/problem2/src/tokens/DYDX.svg create mode 100644 src/problem2/src/tokens/DYM.svg create mode 100644 src/problem2/src/tokens/EEUR.svg create mode 100644 src/problem2/src/tokens/EIGEN.svg create mode 100644 src/problem2/src/tokens/ELA.svg create mode 100644 src/problem2/src/tokens/ELF.svg create mode 100644 src/problem2/src/tokens/ENA.svg create mode 100644 src/problem2/src/tokens/ENJ.svg create mode 100644 src/problem2/src/tokens/ENS.svg create mode 100644 src/problem2/src/tokens/EOS.svg create mode 100644 src/problem2/src/tokens/EPS.svg create mode 100644 src/problem2/src/tokens/ETC.svg create mode 100644 src/problem2/src/tokens/ETH.svg create mode 100644 src/problem2/src/tokens/ETHBTC.svg create mode 100644 src/problem2/src/tokens/ETN.svg create mode 100644 src/problem2/src/tokens/EUROC.svg create mode 100644 src/problem2/src/tokens/EUT.svg create mode 100644 src/problem2/src/tokens/EVMOS.svg create mode 100644 src/problem2/src/tokens/EWT.svg create mode 100644 src/problem2/src/tokens/FARTCOIN.svg create mode 100644 src/problem2/src/tokens/FBTC.svg create mode 100644 src/problem2/src/tokens/FEES.svg create mode 100644 src/problem2/src/tokens/FET.svg create mode 100644 src/problem2/src/tokens/FIL.svg create mode 100644 src/problem2/src/tokens/FIS.svg create mode 100644 src/problem2/src/tokens/FLIX.svg create mode 100644 src/problem2/src/tokens/FLM.svg create mode 100644 src/problem2/src/tokens/FLOW.svg create mode 100644 src/problem2/src/tokens/FLUID.svg create mode 100644 src/problem2/src/tokens/FLUO.svg create mode 100644 src/problem2/src/tokens/FRANK.svg create mode 100644 src/problem2/src/tokens/FSGLP.svg create mode 100644 src/problem2/src/tokens/FTM.svg create mode 100644 src/problem2/src/tokens/FTT.svg create mode 100644 src/problem2/src/tokens/FTTC.svg create mode 100644 src/problem2/src/tokens/FUN.svg create mode 100644 src/problem2/src/tokens/GALA.svg create mode 100644 src/problem2/src/tokens/GAMBIT.svg create mode 100644 src/problem2/src/tokens/GAS.svg create mode 100644 src/problem2/src/tokens/GBT.svg create mode 100644 src/problem2/src/tokens/GLP.svg create mode 100644 src/problem2/src/tokens/GM.svg create mode 100644 src/problem2/src/tokens/GMX.svg create mode 100644 src/problem2/src/tokens/GNO.svg create mode 100644 src/problem2/src/tokens/GNS.svg create mode 100644 src/problem2/src/tokens/GOAT.svg create mode 100644 src/problem2/src/tokens/GRASS.svg create mode 100644 src/problem2/src/tokens/GRAV.svg create mode 100644 src/problem2/src/tokens/GRT.svg create mode 100644 src/problem2/src/tokens/GT.svg create mode 100644 src/problem2/src/tokens/HBAR.svg create mode 100644 src/problem2/src/tokens/HDN.png create mode 100644 src/problem2/src/tokens/HDN.svg create mode 100644 src/problem2/src/tokens/HELMET.svg create mode 100644 src/problem2/src/tokens/HKT.svg create mode 100644 src/problem2/src/tokens/HNT.svg create mode 100644 src/problem2/src/tokens/HOPE.svg create mode 100644 src/problem2/src/tokens/HOT.svg create mode 100644 src/problem2/src/tokens/HT.svg create mode 100644 src/problem2/src/tokens/HUAHUA.svg create mode 100644 src/problem2/src/tokens/HUNY.svg create mode 100644 src/problem2/src/tokens/HUSD.svg create mode 100644 src/problem2/src/tokens/HYPE.svg create mode 100644 src/problem2/src/tokens/IBCX.svg create mode 100644 src/problem2/src/tokens/ICP.svg create mode 100644 src/problem2/src/tokens/ICX.svg create mode 100644 src/problem2/src/tokens/IDT.svg create mode 100644 src/problem2/src/tokens/INIT.svg create mode 100644 src/problem2/src/tokens/INJ.svg create mode 100644 src/problem2/src/tokens/INT.svg create mode 100644 src/problem2/src/tokens/ION.svg create mode 100644 src/problem2/src/tokens/IOST.svg create mode 100644 src/problem2/src/tokens/IOTX.svg create mode 100644 src/problem2/src/tokens/IOV.svg create mode 100644 src/problem2/src/tokens/IP.svg create mode 100644 src/problem2/src/tokens/IRIS.svg create mode 100644 src/problem2/src/tokens/IXO.svg create mode 100644 src/problem2/src/tokens/JPT.svg create mode 100644 src/problem2/src/tokens/JTO.svg create mode 100644 src/problem2/src/tokens/JUNO.svg create mode 100644 src/problem2/src/tokens/JUP.svg create mode 100644 src/problem2/src/tokens/KAITO.svg create mode 100644 src/problem2/src/tokens/KAS.svg create mode 100644 src/problem2/src/tokens/KBONK.svg create mode 100644 src/problem2/src/tokens/KCS.svg create mode 100644 src/problem2/src/tokens/KFLOKI.svg create mode 100644 src/problem2/src/tokens/KLAY.svg create mode 100644 src/problem2/src/tokens/KMD.svg create mode 100644 src/problem2/src/tokens/KNC.svg create mode 100644 src/problem2/src/tokens/KPEPE.svg create mode 100644 src/problem2/src/tokens/KRT.svg create mode 100644 src/problem2/src/tokens/KSHIB.svg create mode 100644 src/problem2/src/tokens/KSM.svg create mode 100644 src/problem2/src/tokens/KUJI.svg create mode 100644 src/problem2/src/tokens/LAYER.svg create mode 100644 src/problem2/src/tokens/LBTC.svg create mode 100644 src/problem2/src/tokens/LDO.svg create mode 100644 src/problem2/src/tokens/LEO.svg create mode 100644 src/problem2/src/tokens/LET.svg create mode 100644 src/problem2/src/tokens/LIKE.svg create mode 100644 src/problem2/src/tokens/LINK.svg create mode 100644 src/problem2/src/tokens/LKT.svg create mode 100644 src/problem2/src/tokens/LOOM.svg create mode 100644 src/problem2/src/tokens/LOOP.svg create mode 100644 src/problem2/src/tokens/LOTA.svg create mode 100644 src/problem2/src/tokens/LPLBTC_29MAY2025.svg create mode 100644 src/problem2/src/tokens/LPT.svg create mode 100644 src/problem2/src/tokens/LPberaSTONE_10APR2025.svg create mode 100644 src/problem2/src/tokens/LPcmETH_26JUN2025.svg create mode 100644 src/problem2/src/tokens/LRC.svg create mode 100644 src/problem2/src/tokens/LSI.svg create mode 100644 src/problem2/src/tokens/LSK.svg create mode 100644 src/problem2/src/tokens/LTC.svg create mode 100644 src/problem2/src/tokens/LUM.svg create mode 100644 src/problem2/src/tokens/LUNA.svg create mode 100644 src/problem2/src/tokens/LUNAX.svg create mode 100644 src/problem2/src/tokens/LUNC.svg create mode 100644 src/problem2/src/tokens/LUNI.svg create mode 100644 src/problem2/src/tokens/LUNR.svg create mode 100644 src/problem2/src/tokens/LUV.svg create mode 100644 src/problem2/src/tokens/LVN.svg create mode 100644 src/problem2/src/tokens/Liquid Staking Index.svg create mode 100644 src/problem2/src/tokens/M87.svg create mode 100644 src/problem2/src/tokens/MANA.svg create mode 100644 src/problem2/src/tokens/MANTA.svg create mode 100644 src/problem2/src/tokens/MARBLE.svg create mode 100644 src/problem2/src/tokens/MATH.svg create mode 100644 src/problem2/src/tokens/MATIC.svg create mode 100644 src/problem2/src/tokens/MDX.svg create mode 100644 src/problem2/src/tokens/ME.svg create mode 100644 src/problem2/src/tokens/MED.svg create mode 100644 src/problem2/src/tokens/MEME.svg create mode 100644 src/problem2/src/tokens/METIS.svg create mode 100644 src/problem2/src/tokens/MEW.svg create mode 100644 src/problem2/src/tokens/MIAW.svg create mode 100644 src/problem2/src/tokens/MILK.svg create mode 100644 src/problem2/src/tokens/MINA.svg create mode 100644 src/problem2/src/tokens/MINE.svg create mode 100644 src/problem2/src/tokens/MIOTA.svg create mode 100644 src/problem2/src/tokens/MIR.svg create mode 100644 src/problem2/src/tokens/MKR.svg create mode 100644 src/problem2/src/tokens/MMOG.svg create mode 100644 src/problem2/src/tokens/MNT.svg create mode 100644 src/problem2/src/tokens/MNTA.svg create mode 100644 src/problem2/src/tokens/MNTL.svg create mode 100644 src/problem2/src/tokens/MON.svg create mode 100644 src/problem2/src/tokens/MOODENG.svg create mode 100644 src/problem2/src/tokens/MORPHO.svg create mode 100644 src/problem2/src/tokens/MYT.svg create mode 100644 src/problem2/src/tokens/NANO.svg create mode 100644 src/problem2/src/tokens/NAS.svg create mode 100644 src/problem2/src/tokens/NAT.svg create mode 100644 src/problem2/src/tokens/NEAR.svg create mode 100644 src/problem2/src/tokens/NEIROETH.svg create mode 100644 src/problem2/src/tokens/NEO.svg create mode 100644 src/problem2/src/tokens/NETA.svg create mode 100644 src/problem2/src/tokens/NEX.svg create mode 100644 src/problem2/src/tokens/NEXO.svg create mode 100644 src/problem2/src/tokens/NGM.svg create mode 100644 src/problem2/src/tokens/NIM.svg create mode 100644 src/problem2/src/tokens/NKN.svg create mode 100644 src/problem2/src/tokens/NMR.svg create mode 100644 src/problem2/src/tokens/NOT.svg create mode 100644 src/problem2/src/tokens/NOTE.svg create mode 100644 src/problem2/src/tokens/NTRN-dATOM.svg create mode 100644 src/problem2/src/tokens/NTRN.svg create mode 100644 src/problem2/src/tokens/NXM.svg create mode 100644 src/problem2/src/tokens/OCEAN.svg create mode 100644 src/problem2/src/tokens/OCH.svg create mode 100644 src/problem2/src/tokens/OGN.svg create mode 100644 src/problem2/src/tokens/OKB.svg create mode 100644 src/problem2/src/tokens/OKT.svg create mode 100644 src/problem2/src/tokens/OM.svg create mode 100644 src/problem2/src/tokens/OMG.svg create mode 100644 src/problem2/src/tokens/OMG_2.svg create mode 100644 src/problem2/src/tokens/OMI.svg create mode 100644 src/problem2/src/tokens/OMNI.svg create mode 100644 src/problem2/src/tokens/ONDO.svg create mode 100644 src/problem2/src/tokens/ONE.svg create mode 100644 src/problem2/src/tokens/ONT.svg create mode 100644 src/problem2/src/tokens/OP.svg create mode 100644 src/problem2/src/tokens/OPUL.svg create mode 100644 src/problem2/src/tokens/ORDI.svg create mode 100644 src/problem2/src/tokens/ORION.svg create mode 100644 src/problem2/src/tokens/ORNE.svg create mode 100644 src/problem2/src/tokens/OSMO.svg create mode 100644 src/problem2/src/tokens/OXT.svg create mode 100644 src/problem2/src/tokens/OXY.svg create mode 100644 src/problem2/src/tokens/PAX.svg create mode 100644 src/problem2/src/tokens/PAXG.svg create mode 100644 src/problem2/src/tokens/PENDLE.svg create mode 100644 src/problem2/src/tokens/PENGU.svg create mode 100644 src/problem2/src/tokens/PEPE.svg create mode 100644 src/problem2/src/tokens/PHT.svg create mode 100644 src/problem2/src/tokens/PLAY.svg create mode 100644 src/problem2/src/tokens/PLQ.svg create mode 100644 src/problem2/src/tokens/PLY.svg create mode 100644 src/problem2/src/tokens/PNUT.svg create mode 100644 src/problem2/src/tokens/POL.svg create mode 100644 src/problem2/src/tokens/POLY.svg create mode 100644 src/problem2/src/tokens/POPCAT.svg create mode 100644 src/problem2/src/tokens/PORT.svg create mode 100644 src/problem2/src/tokens/PROM.svg create mode 100644 src/problem2/src/tokens/PSI.svg create mode 100644 src/problem2/src/tokens/PSTAKE.svg create mode 100644 src/problem2/src/tokens/PTLBTC_29MAY2025.svg create mode 100644 src/problem2/src/tokens/PTMETH_26DEC2024.svg create mode 100644 src/problem2/src/tokens/PTberaSTONE_10APR2025.svg create mode 100644 src/problem2/src/tokens/PTcmETH_26JUN2025.svg create mode 100644 src/problem2/src/tokens/PUDGY.svg create mode 100644 src/problem2/src/tokens/PUMP.svg create mode 100644 src/problem2/src/tokens/PUNDIX.svg create mode 100644 src/problem2/src/tokens/PURR.svg create mode 100644 src/problem2/src/tokens/PURSE.svg create mode 100644 src/problem2/src/tokens/PYTH.svg create mode 100644 src/problem2/src/tokens/QCK.svg create mode 100644 src/problem2/src/tokens/QKC.svg create mode 100644 src/problem2/src/tokens/QNT.svg create mode 100644 src/problem2/src/tokens/QTUM.svg create mode 100644 src/problem2/src/tokens/RAY.svg create mode 100644 src/problem2/src/tokens/RBN.svg create mode 100644 src/problem2/src/tokens/REEF.svg create mode 100644 src/problem2/src/tokens/REGEN.svg create mode 100644 src/problem2/src/tokens/REN.svg create mode 100644 src/problem2/src/tokens/REP.svg create mode 100644 src/problem2/src/tokens/REV.svg create mode 100644 src/problem2/src/tokens/RLB.svg create mode 100644 src/problem2/src/tokens/RLC.svg create mode 100644 src/problem2/src/tokens/RNDR.svg create mode 100644 src/problem2/src/tokens/ROAR.svg create mode 100644 src/problem2/src/tokens/ROWAN.svg create mode 100644 src/problem2/src/tokens/RSR.svg create mode 100644 src/problem2/src/tokens/RUNE.svg create mode 100644 src/problem2/src/tokens/RVN.svg create mode 100644 src/problem2/src/tokens/S.svg create mode 100644 src/problem2/src/tokens/SAFEMOON.svg create mode 100644 src/problem2/src/tokens/SAGA.svg create mode 100644 src/problem2/src/tokens/SAND.svg create mode 100644 src/problem2/src/tokens/SAYVE.svg create mode 100644 src/problem2/src/tokens/SC.svg create mode 100644 src/problem2/src/tokens/SCRT.svg create mode 100644 src/problem2/src/tokens/SDT.svg create mode 100644 src/problem2/src/tokens/SEI.svg create mode 100644 src/problem2/src/tokens/SET.svg create mode 100644 src/problem2/src/tokens/SGT.svg create mode 100644 src/problem2/src/tokens/SHD.svg create mode 100644 src/problem2/src/tokens/SHIB.svg create mode 100644 src/problem2/src/tokens/SHIDO.svg create mode 100644 src/problem2/src/tokens/SITY.svg create mode 100644 src/problem2/src/tokens/SLERF.svg create mode 100644 src/problem2/src/tokens/SNT.svg create mode 100644 src/problem2/src/tokens/SNX.svg create mode 100644 src/problem2/src/tokens/SOL.svg create mode 100644 src/problem2/src/tokens/SOLETH.svg create mode 100644 src/problem2/src/tokens/SOM.svg create mode 100644 src/problem2/src/tokens/SOMM.svg create mode 100644 src/problem2/src/tokens/SPEC.svg create mode 100644 src/problem2/src/tokens/SRM.svg create mode 100644 src/problem2/src/tokens/SRV.svg create mode 100644 src/problem2/src/tokens/STARS.svg create mode 100644 src/problem2/src/tokens/STEEM.svg create mode 100644 src/problem2/src/tokens/STMX.svg create mode 100644 src/problem2/src/tokens/STORJ.svg create mode 100644 src/problem2/src/tokens/STRAX.svg create mode 100644 src/problem2/src/tokens/STRD.svg create mode 100644 src/problem2/src/tokens/STREAM.svg create mode 100644 src/problem2/src/tokens/STRK.svg create mode 100644 src/problem2/src/tokens/STT.svg create mode 100644 src/problem2/src/tokens/STX.svg create mode 100644 src/problem2/src/tokens/SUI.svg create mode 100644 src/problem2/src/tokens/SUN.svg create mode 100644 src/problem2/src/tokens/SUSHI.svg create mode 100644 src/problem2/src/tokens/SWTH-LEGACY.svg create mode 100644 src/problem2/src/tokens/SWTH.svg create mode 100644 src/problem2/src/tokens/SXP.svg create mode 100644 src/problem2/src/tokens/TAO.svg create mode 100644 src/problem2/src/tokens/TEL.svg create mode 100644 src/problem2/src/tokens/TFUEL.svg create mode 100644 src/problem2/src/tokens/THETA.svg create mode 100644 src/problem2/src/tokens/THT.svg create mode 100644 src/problem2/src/tokens/TIA.svg create mode 100644 src/problem2/src/tokens/TICK.svg create mode 100644 src/problem2/src/tokens/TITAN.svg create mode 100644 src/problem2/src/tokens/TLAND.svg create mode 100644 src/problem2/src/tokens/TLM.svg create mode 100644 src/problem2/src/tokens/TOMO.svg create mode 100644 src/problem2/src/tokens/TON.svg create mode 100644 src/problem2/src/tokens/TPC.svg create mode 100644 src/problem2/src/tokens/TRAXX.svg create mode 100644 src/problem2/src/tokens/TRB.svg create mode 100644 src/problem2/src/tokens/TRU.svg create mode 100644 src/problem2/src/tokens/TRUMP.svg create mode 100644 src/problem2/src/tokens/TRX.svg create mode 100644 src/problem2/src/tokens/TTT.svg create mode 100644 src/problem2/src/tokens/TUSD.svg create mode 100644 src/problem2/src/tokens/TWD.svg create mode 100644 src/problem2/src/tokens/TWT.svg create mode 100644 src/problem2/src/tokens/Token.svg create mode 100644 src/problem2/src/tokens/UBQ.svg create mode 100644 src/problem2/src/tokens/UMEE.svg create mode 100644 src/problem2/src/tokens/UNA.svg create mode 100644 src/problem2/src/tokens/UNI.svg create mode 100644 src/problem2/src/tokens/UOS.svg create mode 100644 src/problem2/src/tokens/USC-Minted.svg create mode 100644 src/problem2/src/tokens/USC.svg create mode 100644 src/problem2/src/tokens/USD.svg create mode 100644 src/problem2/src/tokens/USDC-dATOM.svg create mode 100644 src/problem2/src/tokens/USDC.e.svg create mode 100644 src/problem2/src/tokens/USDC.grv.svg create mode 100644 src/problem2/src/tokens/USDC.svg create mode 100644 src/problem2/src/tokens/USDP.svg create mode 100644 src/problem2/src/tokens/USDT.svg create mode 100644 src/problem2/src/tokens/USDY.svg create mode 100644 src/problem2/src/tokens/USK.svg create mode 100644 src/problem2/src/tokens/UST.svg create mode 100644 src/problem2/src/tokens/USUAL.svg create mode 100644 src/problem2/src/tokens/VDL.svg create mode 100644 src/problem2/src/tokens/VET.svg create mode 100644 src/problem2/src/tokens/VIRTUAL.svg create mode 100644 src/problem2/src/tokens/VKR.svg create mode 100644 src/problem2/src/tokens/VRTX.svg create mode 100644 src/problem2/src/tokens/W.svg create mode 100644 src/problem2/src/tokens/WAL.svg create mode 100644 src/problem2/src/tokens/WAVAX.svg create mode 100644 src/problem2/src/tokens/WAVE.svg create mode 100644 src/problem2/src/tokens/WBNB.svg create mode 100644 src/problem2/src/tokens/WBTC.svg create mode 100644 src/problem2/src/tokens/WETH.svg create mode 100644 src/problem2/src/tokens/WHALE.svg create mode 100644 src/problem2/src/tokens/WIF.svg create mode 100644 src/problem2/src/tokens/WIN.svg create mode 100644 src/problem2/src/tokens/WLD.svg create mode 100644 src/problem2/src/tokens/WMATIC.svg create mode 100644 src/problem2/src/tokens/WMNT.svg create mode 100644 src/problem2/src/tokens/WMON.png create mode 100644 src/problem2/src/tokens/WRX.svg create mode 100644 src/problem2/src/tokens/XCAD.svg create mode 100644 src/problem2/src/tokens/XDC.svg create mode 100644 src/problem2/src/tokens/XEM.svg create mode 100644 src/problem2/src/tokens/XKI.svg create mode 100644 src/problem2/src/tokens/XLM.svg create mode 100644 src/problem2/src/tokens/XMR.svg create mode 100644 src/problem2/src/tokens/XPRT.svg create mode 100644 src/problem2/src/tokens/XRP.svg create mode 100644 src/problem2/src/tokens/XSGD.svg create mode 100644 src/problem2/src/tokens/XTRA.svg create mode 100644 src/problem2/src/tokens/XTZ.svg create mode 100644 src/problem2/src/tokens/XVG.svg create mode 100644 src/problem2/src/tokens/XVS.svg create mode 100644 src/problem2/src/tokens/YAKI.svg create mode 100644 src/problem2/src/tokens/YAM.svg create mode 100644 src/problem2/src/tokens/YFI.svg create mode 100644 src/problem2/src/tokens/YieldUSD.svg create mode 100644 src/problem2/src/tokens/ZCH.svg create mode 100644 src/problem2/src/tokens/ZEC.svg create mode 100644 src/problem2/src/tokens/ZEN.svg create mode 100644 src/problem2/src/tokens/ZIL.svg create mode 100644 src/problem2/src/tokens/ZRO.svg create mode 100644 src/problem2/src/tokens/ZRX.svg create mode 100644 src/problem2/src/tokens/ZWAP.svg create mode 100644 src/problem2/src/tokens/ampKUJI.svg create mode 100644 src/problem2/src/tokens/ampLUNA.svg create mode 100644 src/problem2/src/tokens/axlUSDC.svg create mode 100644 src/problem2/src/tokens/bCFX.svg create mode 100644 src/problem2/src/tokens/bNEO.svg create mode 100644 src/problem2/src/tokens/beraSTONE.svg create mode 100644 src/problem2/src/tokens/cUSD.svg create mode 100644 src/problem2/src/tokens/cbBTC.svg create mode 100644 src/problem2/src/tokens/cbETH.svg create mode 100644 src/problem2/src/tokens/cmETH.svg create mode 100644 src/problem2/src/tokens/dATOM.svg create mode 100644 src/problem2/src/tokens/dGLP.svg create mode 100644 src/problem2/src/tokens/dINJ.svg create mode 100644 src/problem2/src/tokens/dXCAD.svg create mode 100644 src/problem2/src/tokens/eGLD.svg create mode 100644 src/problem2/src/tokens/ePLAY.svg create mode 100644 src/problem2/src/tokens/esFLUO.svg create mode 100644 src/problem2/src/tokens/gZIL.svg create mode 100644 src/problem2/src/tokens/iSEI.svg create mode 100644 src/problem2/src/tokens/iUSD.svg create mode 100644 src/problem2/src/tokens/mETH.svg create mode 100644 src/problem2/src/tokens/milkTIA.svg create mode 100644 src/problem2/src/tokens/nLEND.svg create mode 100644 src/problem2/src/tokens/nNEO.svg create mode 100644 src/problem2/src/tokens/rATOM.svg create mode 100644 src/problem2/src/tokens/rSWTH.svg create mode 100644 src/problem2/src/tokens/sARCH.svg create mode 100644 src/problem2/src/tokens/stATOM.svg create mode 100644 src/problem2/src/tokens/stDYDX.svg create mode 100644 src/problem2/src/tokens/stDYM.svg create mode 100644 src/problem2/src/tokens/stETH.svg create mode 100644 src/problem2/src/tokens/stEVMOS.svg create mode 100644 src/problem2/src/tokens/stFLUO.svg create mode 100644 src/problem2/src/tokens/stIBCX.svg create mode 100644 src/problem2/src/tokens/stINJ.svg create mode 100644 src/problem2/src/tokens/stJUNO.svg create mode 100644 src/problem2/src/tokens/stLUNA.svg create mode 100644 src/problem2/src/tokens/stOKT.svg create mode 100644 src/problem2/src/tokens/stOSMO.svg create mode 100644 src/problem2/src/tokens/stSAGA.svg create mode 100644 src/problem2/src/tokens/stSTARS.svg create mode 100644 src/problem2/src/tokens/stTIA.svg create mode 100644 src/problem2/src/tokens/stZIL.svg create mode 100644 src/problem2/src/tokens/stkATOM.svg create mode 100644 src/problem2/src/tokens/stkDYDX.svg create mode 100644 src/problem2/src/tokens/stkSTARS.svg create mode 100644 src/problem2/src/tokens/vZWAP.svg create mode 100644 src/problem2/src/tokens/veFLUO.svg create mode 100644 src/problem2/src/tokens/wKAS.svg create mode 100644 src/problem2/src/tokens/wstETH.svg create mode 100644 src/problem2/src/types/index.ts create mode 100644 src/problem2/src/utils/cn.ts create mode 100644 src/problem2/src/utils/index.ts create mode 100644 src/problem2/src/vite-env.d.ts create mode 100644 src/problem2/tailwind.config.js create mode 100644 src/problem2/tsconfig.app.json create mode 100644 src/problem2/tsconfig.json create mode 100644 src/problem2/tsconfig.node.json create mode 100644 src/problem2/vite.config.ts diff --git a/src/problem2/.gitignore b/src/problem2/.gitignore new file mode 100644 index 0000000000..57e2d5b419 --- /dev/null +++ b/src/problem2/.gitignore @@ -0,0 +1,21 @@ +node_modules/ +dist/ +coverage/ +.vscode/ +.idea/ +.eslintcache +*.tsbuildinfo +.DS_Store +Thumbs.db +*.log +npm-debug.log* +yarn-debug.log* +pnpm-debug.log* +lerna-debug.log* +.env +.env.local +.env.development.local +.env.production.local +.env.test.local +*.swp +*.swo diff --git a/src/problem2/index.html b/src/problem2/index.html index 4058a68bff..7d09eee426 100644 --- a/src/problem2/index.html +++ b/src/problem2/index.html @@ -1,27 +1,13 @@ - - - - - Fancy Form - - - - - - - - -
-
Swap
- - - - - - - -
- - - + + + + + + + Coin Swap + + +
+ + diff --git a/src/problem2/package-lock.json b/src/problem2/package-lock.json new file mode 100644 index 0000000000..054ab5f920 --- /dev/null +++ b/src/problem2/package-lock.json @@ -0,0 +1,3495 @@ +{ + "name": "token-swap-app", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "token-swap-app", + "version": "0.0.0", + "dependencies": { + "antd": "^6.3.0", + "clsx": "^2.1.0", + "lucide-react": "^0.344.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^7.13.0", + "tailwind-merge": "^2.2.1", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/node": "^20.11.24", + "@types/react": "^18.2.64", + "@types/react-dom": "^18.2.21", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.18", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "tailwindcss-animate": "^1.0.7", + "typescript": "^5.2.2", + "vite": "^5.1.4" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ant-design/colors": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-8.0.1.tgz", + "integrity": "sha512-foPVl0+SWIslGUtD/xBr1p9U4AKzPhNYEseXYRRo5QSzGACYZrQbe11AYJbYfAWnWSpGBx6JjBmSeugUsD9vqQ==", + "dependencies": { + "@ant-design/fast-color": "^3.0.0" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.1.0.tgz", + "integrity": "sha512-eZFrPCnrYrF3XtL7qA4L75P0qA3TtZta8H3Yggy7UYFh8gZgu5bSMNF+v4UVCzGxzYmx8ZvPdgOce0BJ6PsW9g==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-2.1.1.tgz", + "integrity": "sha512-RKxkj5pGFB+FkPJ5NGhoX3DK3xsv0pMltha7Ei1AnY3tILeq38L7tuhaWDPQI/5nlPxOog44wvqpNyyGcUsNMg==", + "dependencies": { + "@ant-design/cssinjs": "^2.1.0", + "@babel/runtime": "^7.23.2", + "@rc-component/util": "^1.4.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.1.tgz", + "integrity": "sha512-esKJegpW4nckh0o6kV3Tkb7NPIZYbPnnFxmQDUmL08ukXZAvV85TZBr70eGuke/CIArLaP6aw8lt9KILjnWuOw==", + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.1.0.tgz", + "integrity": "sha512-KrWMu1fIg3w/1F2zfn+JlfNDU8dDqILfA5Tg85iqs1lf8ooyGlbkA+TkwfOKKgqpUmAiRY1PTFpuOU2DAIgSUg==", + "dependencies": { + "@ant-design/colors": "^8.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" + }, + "node_modules/@ant-design/react-slick": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-2.0.0.tgz", + "integrity": "sha512-HMS9sRoEmZey8LsE/Yo6+klhlzU12PisjrVcydW3So7RdklyEd2qehyU6a7Yp+OYN72mgsYs3NFCyP2lCPFVqg==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "clsx": "^2.1.1", + "json2mq": "^0.2.0", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "dev": true, + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.1.0.tgz", + "integrity": "sha512-n4HcR5siNUXRX23nDizbZBQPO0ZM/5oTtmKZ6/eqL0L2bo747cklFdZGRN2f+c9qWGICwDzrhW0H7tE9PptdcA==", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/cascader": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.14.0.tgz", + "integrity": "sha512-Ip9356xwZUR2nbW5PRVGif4B/bDve4pLa/N+PGbvBaTnjbvmN4PFMBGQSmlDlzKP1ovxaYMvwF/dI9lXNLT4iQ==", + "dependencies": { + "@rc-component/select": "~1.6.0", + "@rc-component/tree": "~1.2.0", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/checkbox": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/checkbox/-/checkbox-2.0.0.tgz", + "integrity": "sha512-3CXGPpAR9gsPKeO2N78HAPOzU30UdemD6HGJoWVJOpa6WleaGB5kzZj3v6bdTZab31YuWgY/RxV3VKPctn0DwQ==", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/collapse": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/collapse/-/collapse-1.2.0.tgz", + "integrity": "sha512-ZRYSKSS39qsFx93p26bde7JUZJshsUBEQRlRXPuJYlAiNX0vyYlF5TsAm8JZN3LcF8XvKikdzPbgAtXSbkLUkw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-3.1.0.tgz", + "integrity": "sha512-o7Vavj7yyfVxFmeynXf0fCHVlC0UTE9al74c6nYuLck+gjuVdQNWSVXR8Efq/mmWFy7891SCOsfaPq6Eqe1s/g==", + "dependencies": { + "@ant-design/fast-color": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-2.0.1.tgz", + "integrity": "sha512-HyZbYm47s/YqtP6pKXNMjPEMaukyg7P0qVfgMLzr7YiFNMHbK2fKTAGzms9ykfGHSfyf75nBbgWw+hHkp+VImw==", + "dependencies": { + "@rc-component/util": "^1.3.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/dialog": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.8.4.tgz", + "integrity": "sha512-Ay6PM7phkTkquplG8fWfUGFZ2GTLx9diTl4f0d8Eqxd7W1u1KjE9AQooFQHOHnhZf0Ya3z51+5EKCWHmt/dNEw==", + "dependencies": { + "@rc-component/motion": "^1.1.3", + "@rc-component/portal": "^2.1.0", + "@rc-component/util": "^1.9.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/drawer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@rc-component/drawer/-/drawer-1.4.2.tgz", + "integrity": "sha512-1ib+fZEp6FBu+YvcIktm+nCQ+Q+qIpwpoaJH6opGr4ofh2QMq+qdr5DLC4oCf5qf3pcWX9lUWPYX652k4ini8Q==", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/portal": "^2.1.3", + "@rc-component/util": "^1.9.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/dropdown": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/dropdown/-/dropdown-1.0.2.tgz", + "integrity": "sha512-6PY2ecUSYhDPhkNHHb4wfeAya04WhpmUSKzdR60G+kMNVUCX2vjT/AgTS0Lz0I/K6xrPMJ3enQbwVpeN3sHCgg==", + "dependencies": { + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/@rc-component/form": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@rc-component/form/-/form-1.6.2.tgz", + "integrity": "sha512-OgIn2RAoaSBqaIgzJf/X6iflIa9LpTozci1lagLBdURDFhGA370v0+T0tXxOi8YShMjTha531sFhwtnrv+EJaQ==", + "dependencies": { + "@rc-component/async-validator": "^5.1.0", + "@rc-component/util": "^1.6.2", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/image": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rc-component/image/-/image-1.6.0.tgz", + "integrity": "sha512-tSfn2ZE/oP082g4QIOxeehkmgnXB7R+5AFj/lIFr4k7pEuxHBdyGIq9axoCY9qea8NN0DY6p4IB/F07tLqaT5A==", + "dependencies": { + "@rc-component/motion": "^1.0.0", + "@rc-component/portal": "^2.1.2", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/input": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/input/-/input-1.1.2.tgz", + "integrity": "sha512-Q61IMR47piUBudgixJ30CciKIy9b1H95qe7GgEKOmSJVJXvFRWJllJfQry9tif+MX2cWFXWJf/RXz4kaCeq/Fg==", + "dependencies": { + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@rc-component/input-number": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@rc-component/input-number/-/input-number-1.6.2.tgz", + "integrity": "sha512-Gjcq7meZlCOiWN1t1xCC+7/s85humHVokTBI7PJgTfoyw5OWF74y3e6P8PHX104g9+b54jsodFIzyaj6p8LI9w==", + "dependencies": { + "@rc-component/mini-decimal": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mentions": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rc-component/mentions/-/mentions-1.6.0.tgz", + "integrity": "sha512-KIkQNP6habNuTsLhUv0UGEOwG67tlmE7KNIJoQZZNggEZl5lQJTytFDb69sl5CK3TDdISCTjKP3nGEBKgT61CQ==", + "dependencies": { + "@rc-component/input": "~1.1.0", + "@rc-component/menu": "~1.2.0", + "@rc-component/textarea": "~1.1.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/menu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/menu/-/menu-1.2.0.tgz", + "integrity": "sha512-VWwDuhvYHSnTGj4n6bV3ISrLACcPAzdPOq3d0BzkeiM5cve8BEYfvkEhNoM0PLzv51jpcejeyrLXeMVIJ+QJlg==", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/overflow": "^1.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/motion": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@rc-component/motion/-/motion-1.1.6.tgz", + "integrity": "sha512-aEQobs/YA0kqRvHIPjQvOytdtdRVyhf/uXAal4chBjxDu6odHckExJzjn2D+Ju1aKK6hx3pAs6BXdV9+86xkgQ==", + "dependencies": { + "@rc-component/util": "^1.2.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-2.0.1.tgz", + "integrity": "sha512-AyarjoLU5YlxuValRi+w8JRH2Z84TBbFO2RoGWz9d8bSu0FqT8DtugH3xC3BV7mUwlmROFauyWuXFuq4IFbH+w==", + "dependencies": { + "@rc-component/util": "^1.2.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/notification": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/notification/-/notification-1.2.0.tgz", + "integrity": "sha512-OX3J+zVU7rvoJCikjrfW7qOUp7zlDeFBK2eA3SFbGSkDqo63Sl4Ss8A04kFP+fxHSxMDIS9jYVEZtU1FNCFuBA==", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/overflow": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/overflow/-/overflow-1.0.0.tgz", + "integrity": "sha512-GSlBeoE0XTBi5cf3zl8Qh7Uqhn7v8RrlJ8ajeVpEkNe94HWy5l5BQ0Mwn2TVUq9gdgbfEMUmTX7tJFAg7mz0Rw==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/pagination": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/pagination/-/pagination-1.2.0.tgz", + "integrity": "sha512-YcpUFE8dMLfSo6OARJlK6DbHHvrxz7pMGPGmC/caZSJJz6HRKHC1RPP001PRHCvG9Z/veD039uOQmazVuLJzlw==", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/picker": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@rc-component/picker/-/picker-1.9.0.tgz", + "integrity": "sha512-OLisdk8AWVCG9goBU1dWzuH5QlBQk8jktmQ6p0/IyBFwdKGwyIZOSjnBYo8hooHiTdl0lU+wGf/OfMtVBw02KQ==", + "dependencies": { + "@rc-component/overflow": "^1.0.0", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/trigger": "^3.6.15", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/@rc-component/portal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-2.2.0.tgz", + "integrity": "sha512-oc6FlA+uXCMiwArHsJyHcIkX4q6uKyndrPol2eWX8YPkAnztHOPsFIRtmWG4BMlGE5h7YIRE3NiaJ5VS8Lb1QQ==", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/progress": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/progress/-/progress-1.0.2.tgz", + "integrity": "sha512-WZUnH9eGxH1+xodZKqdrHke59uyGZSWgj5HBM5Kwk5BrTMuAORO7VJ2IP5Qbm9aH3n9x3IcesqHHR0NWPBC7fQ==", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.1.tgz", + "integrity": "sha512-LfLGNymzKdUPjXUbRP+xOhIWY4jQ+YMj5MmWAcgcAq1Ij8XP7tRmAXqyuv96XvLUBE/5cA8hLFl9eO1JQMujrA==", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/rate": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/rate/-/rate-1.0.1.tgz", + "integrity": "sha512-bkXxeBqDpl5IOC7yL7GcSYjQx9G8H+6kLYQnNZWeBYq2OYIv1MONd6mqKTjnnJYpV0cQIU2z3atdW0j1kttpTw==", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/resize-observer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/resize-observer/-/resize-observer-1.1.1.tgz", + "integrity": "sha512-NfXXMmiR+SmUuKE1NwJESzEUYUFWIDUn2uXpxCTOLwiRUUakd62DRNFjRJArgzyFW8S5rsL4aX5XlyIXyC/vRA==", + "dependencies": { + "@rc-component/util": "^1.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/segmented": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/segmented/-/segmented-1.3.0.tgz", + "integrity": "sha512-5J/bJ01mbDnoA6P/FW8SxUvKn+OgUSTZJPzCNnTBntG50tzoP7DydGhqxp7ggZXZls7me3mc2EQDXakU3iTVFg==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@rc-component/motion": "^1.1.4", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@rc-component/select": { + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.6.10.tgz", + "integrity": "sha512-y4+2LnyGZrAorIBwflk78PmFVUWcSc9pcljiH72oHj7K1YY/BFUmj224pD7P4o7J+tbIFES45Z7LIpjVmvYlNA==", + "dependencies": { + "@rc-component/overflow": "^1.0.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.3.0", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/slider": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/slider/-/slider-1.0.1.tgz", + "integrity": "sha512-uDhEPU1z3WDfCJhaL9jfd2ha/Eqpdfxsn0Zb0Xcq1NGQAman0TWaR37OWp2vVXEOdV2y0njSILTMpTfPV1454g==", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/steps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@rc-component/steps/-/steps-1.2.2.tgz", + "integrity": "sha512-/yVIZ00gDYYPHSY0JP+M+s3ZvuXLu2f9rEjQqiUDs7EcYsUYrpJ/1bLj9aI9R7MBR3fu/NGh6RM9u2qGfqp+Nw==", + "dependencies": { + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/switch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rc-component/switch/-/switch-1.0.3.tgz", + "integrity": "sha512-Jgi+EbOBquje/XNdofr7xbJQZPYJP+BlPfR0h+WN4zFkdtB2EWqEfvkXJWeipflwjWip0/17rNbxEAqs8hVHfw==", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/table": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@rc-component/table/-/table-1.9.1.tgz", + "integrity": "sha512-FVI5ZS/GdB3BcgexfCYKi3iHhZS3Fr59EtsxORszYGrfpH1eWr33eDNSYkVfLI6tfJ7vftJDd9D5apfFWqkdJg==", + "dependencies": { + "@rc-component/context": "^2.0.1", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.1.0", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/tabs": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@rc-component/tabs/-/tabs-1.7.0.tgz", + "integrity": "sha512-J48cs2iBi7Ho3nptBxxIqizEliUC+ExE23faspUQKGQ550vaBlv3aGF8Epv/UB1vFWeoJDTW/dNzgIU0Qj5i/w==", + "dependencies": { + "@rc-component/dropdown": "~1.0.0", + "@rc-component/menu": "~1.2.0", + "@rc-component/motion": "^1.1.3", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/textarea": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/textarea/-/textarea-1.1.2.tgz", + "integrity": "sha512-9rMUEODWZDMovfScIEHXWlVZuPljZ2pd1LKNjslJVitn4SldEzq5vO1CL3yy3Dnib6zZal2r2DPtjy84VVpF6A==", + "dependencies": { + "@rc-component/input": "~1.1.0", + "@rc-component/resize-observer": "^1.0.0", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tooltip": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/tooltip/-/tooltip-1.4.0.tgz", + "integrity": "sha512-8Rx5DCctIlLI4raR0I0xHjVTf1aF48+gKCNeAAo5bmF5VoR5YED+A/XEqzXv9KKqrJDRcd3Wndpxh2hyzrTtSg==", + "dependencies": { + "@rc-component/trigger": "^3.7.1", + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-2.3.0.tgz", + "integrity": "sha512-K04K9r32kUC+auBSQfr+Fss4SpSIS9JGe56oq/ALAX0p+i2ylYOI1MgR83yBY7v96eO6ZFXcM/igCQmubps0Ow==", + "dependencies": { + "@rc-component/portal": "^2.2.0", + "@rc-component/trigger": "^3.0.0", + "@rc-component/util": "^1.7.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tree": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rc-component/tree/-/tree-1.2.3.tgz", + "integrity": "sha512-mG8hF2ogQcKaEpfyxzPvMWqqkptofd7Sf+YiXOpPzuXLTLwNKfLDJtysc1/oybopbnzxNqWh2Vgwi+GYwNIb7w==", + "dependencies": { + "@rc-component/motion": "^1.0.0", + "@rc-component/util": "^1.8.1", + "@rc-component/virtual-list": "^1.0.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/tree-select": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.8.0.tgz", + "integrity": "sha512-iYsPq3nuLYvGqdvFAW+l+I9ASRIOVbMXyA8FGZg2lGym/GwkaWeJGzI4eJ7c9IOEhRj0oyfIN4S92Fl3J05mjQ==", + "dependencies": { + "@rc-component/select": "~1.6.0", + "@rc-component/tree": "~1.2.0", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@rc-component/trigger": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-3.9.0.tgz", + "integrity": "sha512-X8btpwfrT27AgrZVOz4swclhEHTZcqaHeQMXXBgveagOiakTa36uObXbdwerXffgV8G9dH1fAAE0DHtVQs8EHg==", + "dependencies": { + "@rc-component/motion": "^1.1.4", + "@rc-component/portal": "^2.2.0", + "@rc-component/resize-observer": "^1.1.1", + "@rc-component/util": "^1.2.1", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/upload": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/upload/-/upload-1.1.0.tgz", + "integrity": "sha512-LIBV90mAnUE6VK5N4QvForoxZc4XqEYZimcp7fk+lkE4XwHHyJWxpIXQQwMU8hJM+YwBbsoZkGksL1sISWHQxw==", + "dependencies": { + "@rc-component/util": "^1.3.0", + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.9.0.tgz", + "integrity": "sha512-5uW6AfhIigCWeEQDthTozlxiT4Prn6xYQWeO0xokjcaa186OtwPRHBZJ2o0T0FhbjGhZ3vXdbkv0sx3gAYW7Vg==", + "dependencies": { + "is-mobile": "^5.0.0", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@rc-component/virtual-list": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rc-component/virtual-list/-/virtual-list-1.0.2.tgz", + "integrity": "sha512-uvTol/mH74FYsn5loDGJxo+7kjkO4i+y4j87Re1pxJBs0FaeuMuLRzQRGaXwnMcV1CxpZLi2Z56Rerj2M00fjQ==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@rc-component/resize-observer": "^1.0.1", + "@rc-component/util": "^1.4.0", + "clsx": "^2.1.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz", + "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", + "dev": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/antd": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-6.3.0.tgz", + "integrity": "sha512-bbHJcASrRHp02wTpr940KtUHlTT6tvmaD4OAjqgOJXNmTQ/+qBDdBVWY/yeDV41p/WbWjTLlaqRGVbL3UEVpNw==", + "dependencies": { + "@ant-design/colors": "^8.0.1", + "@ant-design/cssinjs": "^2.1.0", + "@ant-design/cssinjs-utils": "^2.1.1", + "@ant-design/fast-color": "^3.0.1", + "@ant-design/icons": "^6.1.0", + "@ant-design/react-slick": "~2.0.0", + "@babel/runtime": "^7.28.4", + "@rc-component/cascader": "~1.14.0", + "@rc-component/checkbox": "~2.0.0", + "@rc-component/collapse": "~1.2.0", + "@rc-component/color-picker": "~3.1.0", + "@rc-component/dialog": "~1.8.4", + "@rc-component/drawer": "~1.4.2", + "@rc-component/dropdown": "~1.0.2", + "@rc-component/form": "~1.6.2", + "@rc-component/image": "~1.6.0", + "@rc-component/input": "~1.1.2", + "@rc-component/input-number": "~1.6.2", + "@rc-component/mentions": "~1.6.0", + "@rc-component/menu": "~1.2.0", + "@rc-component/motion": "~1.1.6", + "@rc-component/mutate-observer": "^2.0.1", + "@rc-component/notification": "~1.2.0", + "@rc-component/pagination": "~1.2.0", + "@rc-component/picker": "~1.9.0", + "@rc-component/progress": "~1.0.2", + "@rc-component/qrcode": "~1.1.1", + "@rc-component/rate": "~1.0.1", + "@rc-component/resize-observer": "^1.1.1", + "@rc-component/segmented": "~1.3.0", + "@rc-component/select": "~1.6.5", + "@rc-component/slider": "~1.0.1", + "@rc-component/steps": "~1.2.2", + "@rc-component/switch": "~1.0.3", + "@rc-component/table": "~1.9.1", + "@rc-component/tabs": "~1.7.0", + "@rc-component/textarea": "~1.1.2", + "@rc-component/tooltip": "~1.4.0", + "@rc-component/tour": "~2.3.0", + "@rc-component/tree": "~1.2.3", + "@rc-component/tree-select": "~1.8.0", + "@rc-component/trigger": "^3.9.0", + "@rc-component/upload": "~1.1.0", + "@rc-component/util": "^1.9.0", + "clsx": "^2.1.1", + "dayjs": "^1.11.11", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.24", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.24.tgz", + "integrity": "sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001766", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001770", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz", + "integrity": "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-mobile": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-5.0.0.tgz", + "integrity": "sha512-Tz/yndySvLAEXh+Uk8liFCxOwVH6YutuR74utvOcu7I9Di+DwM0mtdPVZNaVvvBUM2OXxne/NhOs1zAO7riusQ==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.344.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.344.0.tgz", + "integrity": "sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.0.tgz", + "integrity": "sha512-PZgus8ETambRT17BUm/LL8lX3Of+oiLaPuVTRH3l1eLvSPpKO3AvhAEb5N7ihAFZQrYDqkvvWfFh9p0z9VsjLw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.13.0.tgz", + "integrity": "sha512-5CO/l5Yahi2SKC6rGZ+HDEjpjkGaG/ncEP7eWFTvFxbHP8yeeI0PxTDjimtpXYlR3b3i9/WIL4VJttPrESIf2g==", + "license": "MIT", + "dependencies": { + "react-router": "7.13.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.1.tgz", + "integrity": "sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "dev": true, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/src/problem2/package.json b/src/problem2/package.json new file mode 100644 index 0000000000..955bfd93ff --- /dev/null +++ b/src/problem2/package.json @@ -0,0 +1,33 @@ +{ + "name": "token-swap-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "antd": "^6.3.0", + "clsx": "^2.1.0", + "lucide-react": "^0.344.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tailwind-merge": "^2.2.1", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/node": "^20.11.24", + "@types/react": "^18.2.64", + "@types/react-dom": "^18.2.21", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.18", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "tailwindcss-animate": "^1.0.7", + "typescript": "^5.2.2", + "vite": "^5.1.4" + } +} diff --git a/src/problem2/postcss.config.js b/src/problem2/postcss.config.js new file mode 100644 index 0000000000..2e7af2b7f1 --- /dev/null +++ b/src/problem2/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/problem2/src/App.tsx b/src/problem2/src/App.tsx new file mode 100644 index 0000000000..e4fd439361 --- /dev/null +++ b/src/problem2/src/App.tsx @@ -0,0 +1,56 @@ +import { ToastProvider } from "./components/ui/Toast"; +import { Layout } from "./components/layout/Layout"; +import { ConfigProvider, theme } from "antd"; +import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom"; +import { SwapPage } from "./pages/swap"; + +function App() { + return ( + + + + + + } + /> + + } + /> + + + + + + ); +} + +export default App; diff --git a/src/problem2/src/components/layout/Header.tsx b/src/problem2/src/components/layout/Header.tsx new file mode 100644 index 0000000000..a09ffc0a3e --- /dev/null +++ b/src/problem2/src/components/layout/Header.tsx @@ -0,0 +1,62 @@ +import React from "react"; +import { Menu, Globe, Bell, User, Wallet } from "lucide-react"; +import { Button } from "@/components/ui"; + +export const Header: React.FC<{ onMenuClick: () => void }> = ({ onMenuClick }) => { + return ( +
+
+
+ + +
+ B +
+ + Coin Swap + +
+ +
+
+
+ + + + +
+ +
+
+
+ ); +}; diff --git a/src/problem2/src/components/layout/Layout.tsx b/src/problem2/src/components/layout/Layout.tsx new file mode 100644 index 0000000000..34814a4cd0 --- /dev/null +++ b/src/problem2/src/components/layout/Layout.tsx @@ -0,0 +1,28 @@ +import React, { useState } from "react"; +import { Header, Sidebar } from "@/components/layout"; + +export const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [sidebarOpen, setSidebarOpen] = useState(false); + + return ( +
+
setSidebarOpen(true)} /> +
+
+ {}} + /> +
+
+ setSidebarOpen(false)} + /> +
+ +
{children}
+
+
+ ); +}; diff --git a/src/problem2/src/components/layout/Sidebar.tsx b/src/problem2/src/components/layout/Sidebar.tsx new file mode 100644 index 0000000000..201cafe619 --- /dev/null +++ b/src/problem2/src/components/layout/Sidebar.tsx @@ -0,0 +1,62 @@ +import React from "react"; +import { LayoutDashboard, History, Shield, HelpCircle, X } from "lucide-react"; +import { cn } from "@/utils"; + +interface SidebarProps { + isOpen: boolean; + onClose: () => void; +} + +export const Sidebar: React.FC = ({ isOpen, onClose }) => { + const menuItems = [ + { icon: LayoutDashboard, label: "Dashboard", active: false }, + { icon: History, label: "History", active: false }, + { icon: Shield, label: "Security", active: false }, + { icon: HelpCircle, label: "Support", active: false }, + ]; + + return ( + <> + {/* Mobile Overlay */} + {isOpen && ( +
+ )} + + {/* Sidebar Content */} + + + ); +}; diff --git a/src/problem2/src/components/layout/index.ts b/src/problem2/src/components/layout/index.ts new file mode 100644 index 0000000000..115fccc137 --- /dev/null +++ b/src/problem2/src/components/layout/index.ts @@ -0,0 +1,3 @@ +export * from "./Header"; +export * from "./Layout"; +export * from "./Sidebar"; diff --git a/src/problem2/src/components/swap/ConfirmSwapModal.tsx b/src/problem2/src/components/swap/ConfirmSwapModal.tsx new file mode 100644 index 0000000000..ffe12ed789 --- /dev/null +++ b/src/problem2/src/components/swap/ConfirmSwapModal.tsx @@ -0,0 +1,95 @@ +import React from "react"; +import { ArrowDownUp } from "lucide-react"; +import { Modal, Button } from "@/components/ui"; +import { Token } from "@/types"; + +interface ConfirmSwapModalProps { + isOpen: boolean; + onClose: () => void; + fromToken: Token; + toToken: Token; + fromAmount: string; + toAmount: string; + exchangeRate: number; + onConfirm: () => void; +} + +export const ConfirmSwapModal: React.FC = ({ + isOpen, + onClose, + fromToken, + toToken, + fromAmount, + toAmount, + exchangeRate, + onConfirm, +}) => { + return ( + +
+
+
+
+ +
+
{fromAmount}
+
{fromToken.symbol}
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
{toAmount}
+
{toToken.symbol}
+
+
+
+
+ +
+
+ Rate + + 1 {fromToken.symbol} = {exchangeRate.toFixed(6)} {toToken.symbol} + +
+
+ Network Fee + 0.001 {fromToken.symbol} +
+
+ Price Impact + 0.05% +
+
+ + +
+
+ ); +}; diff --git a/src/problem2/src/components/swap/OrderDetails.tsx b/src/problem2/src/components/swap/OrderDetails.tsx new file mode 100644 index 0000000000..fe02b6f5d0 --- /dev/null +++ b/src/problem2/src/components/swap/OrderDetails.tsx @@ -0,0 +1,56 @@ +import React, { useState } from 'react'; +import { ChevronDown, ChevronUp, Info } from 'lucide-react'; + +interface OrderDetailsProps { + exchangeRate: number; + fromSymbol: string; + toSymbol: string; + fee: number; + minReceived: string; + priceImpact: number; +} + +export const OrderDetails: React.FC = ({ + exchangeRate, + fromSymbol, + toSymbol, + fee, + minReceived, + priceImpact +}) => { + const [isOpen, setIsOpen] = useState(false); + + return ( +
+ + + {isOpen && ( +
+
+ Price Impact + 2 ? 'text-danger' : 'text-success'}> + < {priceImpact}% + +
+
+ Liquidity Provider Fee + {fee} {fromSymbol} +
+
+ Minimum Received + {minReceived} {toSymbol} +
+
+ )} +
+ ); +}; diff --git a/src/problem2/src/components/swap/Slippage.tsx b/src/problem2/src/components/swap/Slippage.tsx new file mode 100644 index 0000000000..86114eeca4 --- /dev/null +++ b/src/problem2/src/components/swap/Slippage.tsx @@ -0,0 +1,34 @@ +import React from "react"; + +interface SlippageProps { + value: number; + onChange: (val: number) => void; +} + +export const Slippage: React.FC = ({ value, onChange }) => { + return ( +
+
+ Slippage Tolerance + + Your transaction will revert if the price changes unfavorably by more than this + percentage. + +
+
+ {[0.1, 0.5, 1.0].map((val) => ( + + ))} +
+
+ ); +}; diff --git a/src/problem2/src/components/swap/SwapCard.tsx b/src/problem2/src/components/swap/SwapCard.tsx new file mode 100644 index 0000000000..cf18a456a4 --- /dev/null +++ b/src/problem2/src/components/swap/SwapCard.tsx @@ -0,0 +1,207 @@ +import React, { useState } from "react"; +import { ArrowDownUp, Settings } from "lucide-react"; +import { MOCK_TOKENS } from "@/constants/tokens"; +import { Token } from "@/types"; +import { + Slippage, + ConfirmSwapModal, + OrderDetails, + TokenModal, + TokenInput, +} from "@/components/swap"; +import { Button, useToast } from "@/components/ui"; +import { useSwap } from "@/hooks/useSwap"; + +export const SwapCard: React.FC = () => { + const { + fromToken, + setFromToken, + toToken, + setToToken, + fromAmount, + setFromAmount, + toAmount, + exchangeRate, + loading, + slippage, + setSlippage, + handleSwitch, + } = useSwap(); + + const { addToast } = useToast(); + + const [isTokenModalOpen, setIsTokenModalOpen] = useState(false); + const [activeSide, setActiveSide] = useState<"from" | "to">("from"); + const [isConfirmModalOpen, setIsConfirmModalOpen] = useState(false); + const [settingsOpen, setSettingsOpen] = useState(false); + const [tab, setTab] = useState<"market" | "limit">("market"); + + const handleTokenSelect = (token: Token) => { + if (activeSide === "from") { + if (token.symbol === toToken.symbol) { + handleSwitch(); + } else { + setFromToken(token); + } + } else { + if (token.symbol === fromToken.symbol) { + handleSwitch(); + } else { + setToToken(token); + } + } + }; + + const openTokenModal = (side: "from" | "to") => { + setActiveSide(side); + setIsTokenModalOpen(true); + }; + + const handleSwap = () => { + // Validation + if (!fromAmount || Number(fromAmount) <= 0) { + addToast("Please enter an amount", "error"); + return; + } + if (Number(fromAmount) > fromToken.balance) { + addToast("Insufficient balance", "error"); + return; + } + + setIsConfirmModalOpen(true); + }; + + const executeSwap = () => { + setIsConfirmModalOpen(false); + // Simulate API call + setTimeout(() => { + addToast( + `Swapped ${fromAmount} ${fromToken.symbol} for ${toAmount} ${toToken.symbol}`, + "success" + ); + setFromAmount(""); + }, 500); + }; + + return ( +
+
+
+
+ + +
+ +
+ {settingsOpen && ( + + )} +
+ openTokenModal("from")} + balance={fromToken.balance} + error={Number(fromAmount) > fromToken.balance ? "Insufficient balance" : undefined} + /> +
+ +
+ openTokenModal("to")} + readOnly + loading={loading} + /> +
+ + +
+ setIsTokenModalOpen(false)} + onSelect={handleTokenSelect} + tokens={MOCK_TOKENS} + /> + setIsConfirmModalOpen(false)} + fromToken={fromToken} + toToken={toToken} + fromAmount={fromAmount} + toAmount={toAmount} + exchangeRate={exchangeRate} + onConfirm={executeSwap} + /> +
+ ); +}; diff --git a/src/problem2/src/components/swap/TokenInput.tsx b/src/problem2/src/components/swap/TokenInput.tsx new file mode 100644 index 0000000000..741767dcac --- /dev/null +++ b/src/problem2/src/components/swap/TokenInput.tsx @@ -0,0 +1,88 @@ +import React from "react"; +import { ChevronDown } from "lucide-react"; +import { Token } from "@/types"; +import { cn } from "@/utils/cn"; +import { Skeleton } from "@/components/ui"; + +interface TokenInputProps { + label: string; + amount: string; + token: Token; + onAmountChange?: (val: string) => void; + onTokenClick: () => void; + readOnly?: boolean; + balance?: number; + loading?: boolean; + error?: string; +} + +export const TokenInput: React.FC = ({ + label, + amount, + token, + onAmountChange, + onTokenClick, + readOnly, + balance, + loading, + error, +}) => { + const handleChange = (e: React.ChangeEvent) => { + const val = e.target.value; + // Allow only numbers and one decimal point + if (val === "" || /^\d*\.?\d*$/.test(val)) { + onAmountChange && onAmountChange(val); + } + }; + + return ( +
+
+ + {balance !== undefined && ( +
+ Balance: {balance} +
+ )} +
+ +
+ {loading ? ( + + ) : ( + + )} + + +
+ {error &&
{error}
} +
+ ); +}; diff --git a/src/problem2/src/components/swap/TokenModal.tsx b/src/problem2/src/components/swap/TokenModal.tsx new file mode 100644 index 0000000000..774dd436d8 --- /dev/null +++ b/src/problem2/src/components/swap/TokenModal.tsx @@ -0,0 +1,89 @@ +import React, { useState } from "react"; +import { Modal, Input } from "@/components/ui"; +import { Token } from "@/types"; + +interface TokenModalProps { + isOpen: boolean; + onClose: () => void; + onSelect: (token: Token) => void; + tokens: Token[]; +} + +export const TokenModal: React.FC = ({ isOpen, onClose, onSelect, tokens }) => { + const [search, setSearch] = useState(""); + + const filteredTokens = tokens.filter( + (t) => + t.symbol.toLowerCase().includes(search.toLowerCase()) || + t.name.toLowerCase().includes(search.toLowerCase()) + ); + + return ( + +
+ setSearch(e.target.value)} + className="bg-background" + /> +
+ +
+

Hot Tokens

+
+ {tokens.slice(0, 4).map((token) => ( + + ))} +
+
+ +
+ {filteredTokens.map((token) => ( + + ))} + {filteredTokens.length === 0 && ( +
No tokens found
+ )} +
+
+ ); +}; diff --git a/src/problem2/src/components/swap/index.ts b/src/problem2/src/components/swap/index.ts new file mode 100644 index 0000000000..e56fed62bd --- /dev/null +++ b/src/problem2/src/components/swap/index.ts @@ -0,0 +1,6 @@ +export * from "./ConfirmSwapModal"; +export * from "./OrderDetails"; +export * from "./Slippage"; +export * from "./SwapCard"; +export * from "./TokenInput"; +export * from "./TokenModal"; diff --git a/src/problem2/src/components/ui/Button.tsx b/src/problem2/src/components/ui/Button.tsx new file mode 100644 index 0000000000..8dbd49eae0 --- /dev/null +++ b/src/problem2/src/components/ui/Button.tsx @@ -0,0 +1,56 @@ +import React from "react"; +import { cn } from "@/utils"; + +interface ButtonProps extends React.ButtonHTMLAttributes { + variant?: "primary" | "secondary" | "outline" | "ghost" | "danger"; + size?: "sm" | "md" | "lg" | "full"; + isLoading?: boolean; +} + +export const Button = React.forwardRef( + ({ className, variant = "primary", size = "md", isLoading, children, ...props }, ref) => { + return ( + + ); + } +); diff --git a/src/problem2/src/components/ui/Input.tsx b/src/problem2/src/components/ui/Input.tsx new file mode 100644 index 0000000000..4f4830950a --- /dev/null +++ b/src/problem2/src/components/ui/Input.tsx @@ -0,0 +1,27 @@ +import React from "react"; +import { cn } from "@/utils"; + +export interface InputProps extends React.InputHTMLAttributes { + error?: string; + label?: string; +} + +export const Input = React.forwardRef( + ({ className, error, label, ...props }, ref) => { + return ( +
+ {label && } + + {error && {error}} +
+ ); + } +); diff --git a/src/problem2/src/components/ui/Modal.tsx b/src/problem2/src/components/ui/Modal.tsx new file mode 100644 index 0000000000..a587ffb87a --- /dev/null +++ b/src/problem2/src/components/ui/Modal.tsx @@ -0,0 +1,42 @@ +import React from "react"; +import { Modal as AntModal } from "antd"; +import { cn } from "@/utils"; + +interface ModalProps { + isOpen: boolean; + onClose: () => void; + title: string; + children: React.ReactNode; + className?: string; +} + +export const Modal: React.FC = ({ isOpen, onClose, title, children, className }) => { + return ( + + {children} + + ); +}; diff --git a/src/problem2/src/components/ui/Skeleton.tsx b/src/problem2/src/components/ui/Skeleton.tsx new file mode 100644 index 0000000000..f80b74b20e --- /dev/null +++ b/src/problem2/src/components/ui/Skeleton.tsx @@ -0,0 +1,14 @@ +import React from "react"; +import { cn } from "@/utils"; + +export const Skeleton: React.FC> = ({ + className, + ...props +}) => { + return ( +
+ ); +}; diff --git a/src/problem2/src/components/ui/Toast.tsx b/src/problem2/src/components/ui/Toast.tsx new file mode 100644 index 0000000000..0dc3123698 --- /dev/null +++ b/src/problem2/src/components/ui/Toast.tsx @@ -0,0 +1,66 @@ +import React, { createContext, useContext, useState, useCallback } from "react"; +import { X, CheckCircle, AlertCircle } from "lucide-react"; +import { cn } from "@/utils"; + +type ToastType = "success" | "error" | "info"; + +interface Toast { + id: string; + message: string; + type: ToastType; +} + +interface ToastContextType { + addToast: (message: string, type: ToastType) => void; + removeToast: (id: string) => void; +} + +const ToastContext = createContext(undefined); + +export const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [toasts, setToasts] = useState([]); + + const addToast = useCallback((message: string, type: ToastType) => { + const id = Math.random().toString(36).substring(2, 9); + setToasts((prev) => [...prev, { id, message, type }]); + setTimeout(() => removeToast(id), 5000); + }, []); + + const removeToast = useCallback((id: string) => { + setToasts((prev) => prev.filter((t) => t.id !== id)); + }, []); + + return ( + + {children} +
+ {toasts.map((toast) => ( +
+ {toast.type === "success" && } + {toast.type === "error" && } +

{toast.message}

+ +
+ ))} +
+
+ ); +}; + +export const useToast = () => { + const context = useContext(ToastContext); + if (!context) throw new Error("useToast must be used within a ToastProvider"); + return context; +}; diff --git a/src/problem2/src/components/ui/index.ts b/src/problem2/src/components/ui/index.ts new file mode 100644 index 0000000000..89f816e779 --- /dev/null +++ b/src/problem2/src/components/ui/index.ts @@ -0,0 +1,5 @@ +export * from "./Button"; +export * from "./Input"; +export * from "./Modal"; +export * from "./Skeleton"; +export * from "./Toast"; diff --git a/src/problem2/src/constants/index.ts b/src/problem2/src/constants/index.ts new file mode 100644 index 0000000000..d1ea1d770a --- /dev/null +++ b/src/problem2/src/constants/index.ts @@ -0,0 +1 @@ +export * from "./tokens"; diff --git a/src/problem2/src/constants/tokens.ts b/src/problem2/src/constants/tokens.ts new file mode 100644 index 0000000000..256720f2cb --- /dev/null +++ b/src/problem2/src/constants/tokens.ts @@ -0,0 +1,67 @@ +import { Token } from '../types'; +import pricesData from '../prices.json'; + +type PriceEntry = { currency: string; date: string; price: number }; + +const latestPrice = (symbol: string) => { + const items = (pricesData as PriceEntry[]).filter( + (p) => p.currency.toUpperCase() === symbol.toUpperCase() + ); + if (items.length === 0) return 0; + return items.reduce((a, b) => + new Date(b.date).getTime() > new Date(a.date).getTime() ? b : a + ).price; +}; + +// Eagerly import all token icons (svg/png) and build a symbol -> url map +const iconModules = import.meta.glob<{ default: string }>( + '../tokens/*.{svg,png}', + { eager: true } +); + +const iconMap: Record = {}; +for (const path in iconModules) { + const file = path.split('/').pop()!; + const base = file.replace(/\.(svg|png)$/i, ''); + iconMap[base.toUpperCase()] = (iconModules[path] as any).default; +} + +const FRIENDLY_NAMES: Record = { + ETH: 'Ethereum', + WBTC: 'Wrapped Bitcoin', + USDC: 'USD Coin', + BUSD: 'Binance USD', + ATOM: 'Cosmos', + OSMO: 'Osmosis', +}; + +const DEFAULT_BALANCES: Record = { + ETH: 1.5, + WBTC: 0.05, + USDC: 5000, + BUSD: 3000, + ATOM: 25, + OSMO: 100, +}; + +// Build full token list from prices.json currencies +const currencies = Array.from( + new Set((pricesData as PriceEntry[]).map((p) => p.currency)) +); + +export const MOCK_TOKENS: Token[] = currencies.map((symbol) => { + const upper = symbol.toUpperCase(); + const icon = + iconMap[upper] ?? + // Try some common alt naming fallbacks + (upper === 'USD' ? iconMap['USDC'] : undefined) ?? + iconMap['ETH']; // final fallback + + return { + symbol: upper, + name: FRIENDLY_NAMES[upper] ?? upper, + icon, + balance: DEFAULT_BALANCES[upper] ?? 0, + price: latestPrice(upper), + }; +}); diff --git a/src/problem2/src/hooks/useSwap.ts b/src/problem2/src/hooks/useSwap.ts new file mode 100644 index 0000000000..cb584ae58b --- /dev/null +++ b/src/problem2/src/hooks/useSwap.ts @@ -0,0 +1,60 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Token } from '../types'; +import { MOCK_TOKENS } from '../constants/tokens'; + +export const useSwap = () => { + const [fromToken, setFromToken] = useState(MOCK_TOKENS[0]); // Default BTC + const [toToken, setToToken] = useState(MOCK_TOKENS[2]); // Default USDT + const [fromAmount, setFromAmount] = useState(''); + const [toAmount, setToAmount] = useState(''); + const [loading, setLoading] = useState(false); + const [slippage, setSlippage] = useState(0.5); + + const getExchangeRate = useCallback(() => { + return fromToken.price / toToken.price; + }, [fromToken, toToken]); + + const exchangeRate = getExchangeRate(); + + useEffect(() => { + if (!fromAmount || isNaN(Number(fromAmount))) { + setToAmount(''); + setLoading(false); + return; + } + + setLoading(true); + // Simulate network delay + const timer = setTimeout(() => { + const val = Number(fromAmount) * exchangeRate; + // Format to reasonable decimals based on price + const decimals = toToken.price < 1 ? 2 : 6; + setToAmount(val.toFixed(decimals)); + setLoading(false); + }, 600); + + return () => clearTimeout(timer); + }, [fromAmount, exchangeRate, toToken.price]); + + const handleSwitch = () => { + setFromToken(toToken); + setToToken(fromToken); + setFromAmount(toAmount); // Carry over the amount? Usually yes, or clear it. + // If we carry over, the effect will run and recalculate the new "to" + }; + + return { + fromToken, + setFromToken, + toToken, + setToToken, + fromAmount, + setFromAmount, + toAmount, + exchangeRate, + loading, + slippage, + setSlippage, + handleSwitch + }; +}; diff --git a/src/problem2/src/index.css b/src/problem2/src/index.css new file mode 100644 index 0000000000..6e92274068 --- /dev/null +++ b/src/problem2/src/index.css @@ -0,0 +1,32 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + body { + @apply bg-background text-text-primary; + } +} + +@layer utilities { + .custom-scrollbar { + scrollbar-width: thin; + scrollbar-color: #4b5563 transparent; + overscroll-behavior: contain; + } + .custom-scrollbar::-webkit-scrollbar { + width: 8px; + height: 0px; + } + .custom-scrollbar::-webkit-scrollbar-track { + background: transparent; + } + .custom-scrollbar::-webkit-scrollbar-thumb { + background-color: #4b5563; + border-radius: 9999px; + border: 2px solid transparent; + } + .custom-scrollbar:hover::-webkit-scrollbar-thumb { + background-color: #6b7280; + } +} diff --git a/src/problem2/src/main.tsx b/src/problem2/src/main.tsx new file mode 100644 index 0000000000..d2cc420c19 --- /dev/null +++ b/src/problem2/src/main.tsx @@ -0,0 +1,11 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' +import './index.css' +import 'antd/dist/reset.css' + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/src/problem2/src/pages/swap/index.tsx b/src/problem2/src/pages/swap/index.tsx new file mode 100644 index 0000000000..c6e4c51ad7 --- /dev/null +++ b/src/problem2/src/pages/swap/index.tsx @@ -0,0 +1,14 @@ +import React from "react"; +import { SwapCard } from "@/components/swap"; + +export const SwapPage: React.FC = () => { + return ( +
+
+

Swap Tokens

+

Trade tokens in an instant

+
+ +
+ ); +}; diff --git a/src/problem2/src/prices.json b/src/problem2/src/prices.json new file mode 100644 index 0000000000..4bdf8bd5fe --- /dev/null +++ b/src/problem2/src/prices.json @@ -0,0 +1,158 @@ +[ + { + "currency": "BLUR", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.20811525423728813 + }, + { + "currency": "bNEO", + "date": "2023-08-29T07:10:50.000Z", + "price": 7.1282679 + }, + { + "currency": "BUSD", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.999183113 + }, + { + "currency": "BUSD", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.9998782611186441 + }, + { "currency": "USD", "date": "2023-08-29T07:10:30.000Z", "price": 1 }, + { + "currency": "ETH", + "date": "2023-08-29T07:10:52.000Z", + "price": 1645.9337373737374 + }, + { + "currency": "GMX", + "date": "2023-08-29T07:10:40.000Z", + "price": 36.345114372881355 + }, + { + "currency": "STEVMOS", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.07276706779661017 + }, + { + "currency": "LUNA", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.40955638983050846 + }, + { + "currency": "RATOM", + "date": "2023-08-29T07:10:40.000Z", + "price": 10.250918915254237 + }, + { + "currency": "STRD", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.7386553389830508 + }, + { + "currency": "EVMOS", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.06246181355932203 + }, + { + "currency": "IBCX", + "date": "2023-08-29T07:10:40.000Z", + "price": 41.26811355932203 + }, + { + "currency": "IRIS", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.0177095593220339 + }, + { + "currency": "ampLUNA", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.49548589830508477 + }, + { "currency": "KUJI", "date": "2023-08-29T07:10:45.000Z", "price": 0.675 }, + { + "currency": "STOSMO", + "date": "2023-08-29T07:10:45.000Z", + "price": 0.431318 + }, + { "currency": "USDC", "date": "2023-08-29T07:10:40.000Z", "price": 0.989832 }, + { + "currency": "axlUSDC", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.989832 + }, + { + "currency": "ATOM", + "date": "2023-08-29T07:10:50.000Z", + "price": 7.186657333333334 + }, + { + "currency": "STATOM", + "date": "2023-08-29T07:10:45.000Z", + "price": 8.512162050847458 + }, + { + "currency": "OSMO", + "date": "2023-08-29T07:10:50.000Z", + "price": 0.3772974333333333 + }, + { + "currency": "rSWTH", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.00408771 + }, + { + "currency": "STLUNA", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.44232210169491526 + }, + { + "currency": "LSI", + "date": "2023-08-29T07:10:50.000Z", + "price": 67.69661525423729 + }, + { + "currency": "OKB", + "date": "2023-08-29T07:10:40.000Z", + "price": 42.97562059322034 + }, + { + "currency": "OKT", + "date": "2023-08-29T07:10:40.000Z", + "price": 13.561577966101694 + }, + { + "currency": "SWTH", + "date": "2023-08-29T07:10:45.000Z", + "price": 0.004039850455012084 + }, + { "currency": "USC", "date": "2023-08-29T07:10:40.000Z", "price": 0.994 }, + { "currency": "USDC", "date": "2023-08-29T07:10:30.000Z", "price": 1 }, + { "currency": "USDC", "date": "2023-08-29T07:10:30.000Z", "price": 1 }, + { + "currency": "USDC", + "date": "2023-08-29T07:10:40.000Z", + "price": 0.9998782611186441 + }, + { + "currency": "WBTC", + "date": "2023-08-29T07:10:52.000Z", + "price": 26002.82202020202 + }, + { + "currency": "wstETH", + "date": "2023-08-29T07:10:40.000Z", + "price": 1872.2579742372882 + }, + { + "currency": "YieldUSD", + "date": "2023-08-29T07:10:40.000Z", + "price": 1.0290847966101695 + }, + { + "currency": "ZIL", + "date": "2023-08-29T07:10:50.000Z", + "price": 0.01651813559322034 + } +] diff --git a/src/problem2/src/tokens/1INCH.svg b/src/problem2/src/tokens/1INCH.svg new file mode 100644 index 0000000000..5970f7bd55 --- /dev/null +++ b/src/problem2/src/tokens/1INCH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AAVE.svg b/src/problem2/src/tokens/AAVE.svg new file mode 100644 index 0000000000..10e65a3210 --- /dev/null +++ b/src/problem2/src/tokens/AAVE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ACT.svg b/src/problem2/src/tokens/ACT.svg new file mode 100644 index 0000000000..2415fef55c --- /dev/null +++ b/src/problem2/src/tokens/ACT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ADA.svg b/src/problem2/src/tokens/ADA.svg new file mode 100644 index 0000000000..c57bee9598 --- /dev/null +++ b/src/problem2/src/tokens/ADA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AEVO.svg b/src/problem2/src/tokens/AEVO.svg new file mode 100644 index 0000000000..26c36a62dd --- /dev/null +++ b/src/problem2/src/tokens/AEVO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AGI.svg b/src/problem2/src/tokens/AGI.svg new file mode 100644 index 0000000000..2617764b4c --- /dev/null +++ b/src/problem2/src/tokens/AGI.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/AI16Z.svg b/src/problem2/src/tokens/AI16Z.svg new file mode 100644 index 0000000000..d6b38455f9 --- /dev/null +++ b/src/problem2/src/tokens/AI16Z.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AIXBT.svg b/src/problem2/src/tokens/AIXBT.svg new file mode 100644 index 0000000000..2fd4c736d7 --- /dev/null +++ b/src/problem2/src/tokens/AIXBT.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AKRO.svg b/src/problem2/src/tokens/AKRO.svg new file mode 100644 index 0000000000..33501e5c2e --- /dev/null +++ b/src/problem2/src/tokens/AKRO.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/AKT.svg b/src/problem2/src/tokens/AKT.svg new file mode 100644 index 0000000000..a0733cd5e8 --- /dev/null +++ b/src/problem2/src/tokens/AKT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ALGO.svg b/src/problem2/src/tokens/ALGO.svg new file mode 100644 index 0000000000..0c79ab88fd --- /dev/null +++ b/src/problem2/src/tokens/ALGO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ALPHA.svg b/src/problem2/src/tokens/ALPHA.svg new file mode 100644 index 0000000000..9d916fb949 --- /dev/null +++ b/src/problem2/src/tokens/ALPHA.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ALT.svg b/src/problem2/src/tokens/ALT.svg new file mode 100644 index 0000000000..fb551dfa7d --- /dev/null +++ b/src/problem2/src/tokens/ALT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AMP.svg b/src/problem2/src/tokens/AMP.svg new file mode 100644 index 0000000000..71bec9f9b4 --- /dev/null +++ b/src/problem2/src/tokens/AMP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ANC.svg b/src/problem2/src/tokens/ANC.svg new file mode 100644 index 0000000000..bd414783cf --- /dev/null +++ b/src/problem2/src/tokens/ANC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/ANDR.svg b/src/problem2/src/tokens/ANDR.svg new file mode 100644 index 0000000000..fc7e23b4ef --- /dev/null +++ b/src/problem2/src/tokens/ANDR.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ANIME.svg b/src/problem2/src/tokens/ANIME.svg new file mode 100644 index 0000000000..975db35cd4 --- /dev/null +++ b/src/problem2/src/tokens/ANIME.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ANKR.svg b/src/problem2/src/tokens/ANKR.svg new file mode 100644 index 0000000000..b8599f0165 --- /dev/null +++ b/src/problem2/src/tokens/ANKR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ANT.svg b/src/problem2/src/tokens/ANT.svg new file mode 100644 index 0000000000..f805ff79f5 --- /dev/null +++ b/src/problem2/src/tokens/ANT.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ANY.svg b/src/problem2/src/tokens/ANY.svg new file mode 100644 index 0000000000..c504391175 --- /dev/null +++ b/src/problem2/src/tokens/ANY.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/APE.svg b/src/problem2/src/tokens/APE.svg new file mode 100644 index 0000000000..26ff9cfd4e --- /dev/null +++ b/src/problem2/src/tokens/APE.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/APOLLO.svg b/src/problem2/src/tokens/APOLLO.svg new file mode 100644 index 0000000000..852aa5cea2 --- /dev/null +++ b/src/problem2/src/tokens/APOLLO.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/APT.svg b/src/problem2/src/tokens/APT.svg new file mode 100644 index 0000000000..df0a169047 --- /dev/null +++ b/src/problem2/src/tokens/APT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AR.svg b/src/problem2/src/tokens/AR.svg new file mode 100644 index 0000000000..5efc91fdb4 --- /dev/null +++ b/src/problem2/src/tokens/AR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ARB.svg b/src/problem2/src/tokens/ARB.svg new file mode 100644 index 0000000000..2666c28ab2 --- /dev/null +++ b/src/problem2/src/tokens/ARB.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ARCH.svg b/src/problem2/src/tokens/ARCH.svg new file mode 100644 index 0000000000..b6deb843a1 --- /dev/null +++ b/src/problem2/src/tokens/ARCH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ASA.svg b/src/problem2/src/tokens/ASA.svg new file mode 100644 index 0000000000..7023a06245 --- /dev/null +++ b/src/problem2/src/tokens/ASA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ASTRO.svg b/src/problem2/src/tokens/ASTRO.svg new file mode 100644 index 0000000000..23047ab947 --- /dev/null +++ b/src/problem2/src/tokens/ASTRO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ATOM-dATOM.svg b/src/problem2/src/tokens/ATOM-dATOM.svg new file mode 100644 index 0000000000..07e4a7d4c2 --- /dev/null +++ b/src/problem2/src/tokens/ATOM-dATOM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ATOM.svg b/src/problem2/src/tokens/ATOM.svg new file mode 100644 index 0000000000..f3f9d10429 --- /dev/null +++ b/src/problem2/src/tokens/ATOM.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/AUDIO.svg b/src/problem2/src/tokens/AUDIO.svg new file mode 100644 index 0000000000..527d7ae79e --- /dev/null +++ b/src/problem2/src/tokens/AUDIO.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/AUT.svg b/src/problem2/src/tokens/AUT.svg new file mode 100644 index 0000000000..4f442bcfe1 --- /dev/null +++ b/src/problem2/src/tokens/AUT.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AVA.svg b/src/problem2/src/tokens/AVA.svg new file mode 100644 index 0000000000..b88859ee56 --- /dev/null +++ b/src/problem2/src/tokens/AVA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/AVAIL.svg b/src/problem2/src/tokens/AVAIL.svg new file mode 100644 index 0000000000..6b011a7f67 --- /dev/null +++ b/src/problem2/src/tokens/AVAIL.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/AVAX.svg b/src/problem2/src/tokens/AVAX.svg new file mode 100644 index 0000000000..e85981529c --- /dev/null +++ b/src/problem2/src/tokens/AVAX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AXL.svg b/src/problem2/src/tokens/AXL.svg new file mode 100644 index 0000000000..a0d81a72ff --- /dev/null +++ b/src/problem2/src/tokens/AXL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AXS.svg b/src/problem2/src/tokens/AXS.svg new file mode 100644 index 0000000000..ab64a1a097 --- /dev/null +++ b/src/problem2/src/tokens/AXS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/AXT.svg b/src/problem2/src/tokens/AXT.svg new file mode 100644 index 0000000000..a0be2a7e32 --- /dev/null +++ b/src/problem2/src/tokens/AXT.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BAKE.svg b/src/problem2/src/tokens/BAKE.svg new file mode 100644 index 0000000000..48e18cc4c8 --- /dev/null +++ b/src/problem2/src/tokens/BAKE.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BAL.svg b/src/problem2/src/tokens/BAL.svg new file mode 100644 index 0000000000..274d48692b --- /dev/null +++ b/src/problem2/src/tokens/BAL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/BAND.svg b/src/problem2/src/tokens/BAND.svg new file mode 100644 index 0000000000..fe0b053178 --- /dev/null +++ b/src/problem2/src/tokens/BAND.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BAT.svg b/src/problem2/src/tokens/BAT.svg new file mode 100644 index 0000000000..6bea15edba --- /dev/null +++ b/src/problem2/src/tokens/BAT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCD.svg b/src/problem2/src/tokens/BCD.svg new file mode 100644 index 0000000000..2eae4d86ac --- /dev/null +++ b/src/problem2/src/tokens/BCD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCH.svg b/src/problem2/src/tokens/BCH.svg new file mode 100644 index 0000000000..c1b2185860 --- /dev/null +++ b/src/problem2/src/tokens/BCH.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCHA.svg b/src/problem2/src/tokens/BCHA.svg new file mode 100644 index 0000000000..d1c50093bd --- /dev/null +++ b/src/problem2/src/tokens/BCHA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/BCN.svg b/src/problem2/src/tokens/BCN.svg new file mode 100644 index 0000000000..446afbc222 --- /dev/null +++ b/src/problem2/src/tokens/BCN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BCNA.svg b/src/problem2/src/tokens/BCNA.svg new file mode 100644 index 0000000000..81cb2950dc --- /dev/null +++ b/src/problem2/src/tokens/BCNA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/BELT.svg b/src/problem2/src/tokens/BELT.svg new file mode 100644 index 0000000000..0711b1485c --- /dev/null +++ b/src/problem2/src/tokens/BELT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/tokens/BERA.svg b/src/problem2/src/tokens/BERA.svg new file mode 100644 index 0000000000..e77de0c563 --- /dev/null +++ b/src/problem2/src/tokens/BERA.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BETH.svg b/src/problem2/src/tokens/BETH.svg new file mode 100644 index 0000000000..46a2401959 --- /dev/null +++ b/src/problem2/src/tokens/BETH.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BHC.svg b/src/problem2/src/tokens/BHC.svg new file mode 100644 index 0000000000..c1b2185860 --- /dev/null +++ b/src/problem2/src/tokens/BHC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BIT.svg b/src/problem2/src/tokens/BIT.svg new file mode 100644 index 0000000000..123a839eb5 --- /dev/null +++ b/src/problem2/src/tokens/BIT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BLAST.svg b/src/problem2/src/tokens/BLAST.svg new file mode 100644 index 0000000000..d931df3f89 --- /dev/null +++ b/src/problem2/src/tokens/BLAST.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BLD.svg b/src/problem2/src/tokens/BLD.svg new file mode 100644 index 0000000000..1674899d4e --- /dev/null +++ b/src/problem2/src/tokens/BLD.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BLOX.svg b/src/problem2/src/tokens/BLOX.svg new file mode 100644 index 0000000000..7a3045c57f --- /dev/null +++ b/src/problem2/src/tokens/BLOX.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BLUR.svg b/src/problem2/src/tokens/BLUR.svg new file mode 100644 index 0000000000..bf1e280984 --- /dev/null +++ b/src/problem2/src/tokens/BLUR.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BNB.svg b/src/problem2/src/tokens/BNB.svg new file mode 100644 index 0000000000..a7c6699768 --- /dev/null +++ b/src/problem2/src/tokens/BNB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BNT.svg b/src/problem2/src/tokens/BNT.svg new file mode 100644 index 0000000000..4c29bec3c9 --- /dev/null +++ b/src/problem2/src/tokens/BNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BOLT.svg b/src/problem2/src/tokens/BOLT.svg new file mode 100644 index 0000000000..a74a21608e --- /dev/null +++ b/src/problem2/src/tokens/BOLT.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BONK.svg b/src/problem2/src/tokens/BONK.svg new file mode 100644 index 0000000000..5df777e894 --- /dev/null +++ b/src/problem2/src/tokens/BONK.svg @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BOOT.svg b/src/problem2/src/tokens/BOOT.svg new file mode 100644 index 0000000000..2469b80cfd --- /dev/null +++ b/src/problem2/src/tokens/BOOT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/BRAINS.svg b/src/problem2/src/tokens/BRAINS.svg new file mode 100644 index 0000000000..5c6a1d4184 --- /dev/null +++ b/src/problem2/src/tokens/BRAINS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BRETT.svg b/src/problem2/src/tokens/BRETT.svg new file mode 100644 index 0000000000..a799d64779 --- /dev/null +++ b/src/problem2/src/tokens/BRETT.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BRKL.svg b/src/problem2/src/tokens/BRKL.svg new file mode 100644 index 0000000000..5963d18244 --- /dev/null +++ b/src/problem2/src/tokens/BRKL.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/BTC.svg b/src/problem2/src/tokens/BTC.svg new file mode 100644 index 0000000000..cd3b1e78e2 --- /dev/null +++ b/src/problem2/src/tokens/BTC.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/BTCST.svg b/src/problem2/src/tokens/BTCST.svg new file mode 100644 index 0000000000..63d5b3c441 --- /dev/null +++ b/src/problem2/src/tokens/BTCST.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BTG.svg b/src/problem2/src/tokens/BTG.svg new file mode 100644 index 0000000000..41629e7d6a --- /dev/null +++ b/src/problem2/src/tokens/BTG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BTM.svg b/src/problem2/src/tokens/BTM.svg new file mode 100644 index 0000000000..16fdbdfda4 --- /dev/null +++ b/src/problem2/src/tokens/BTM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/BTMX.svg b/src/problem2/src/tokens/BTMX.svg new file mode 100644 index 0000000000..5e4a26a71e --- /dev/null +++ b/src/problem2/src/tokens/BTMX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/BTSG.svg b/src/problem2/src/tokens/BTSG.svg new file mode 100644 index 0000000000..9b82cf6a0b --- /dev/null +++ b/src/problem2/src/tokens/BTSG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BTT.svg b/src/problem2/src/tokens/BTT.svg new file mode 100644 index 0000000000..736450a2db --- /dev/null +++ b/src/problem2/src/tokens/BTT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/BUNNY.svg b/src/problem2/src/tokens/BUNNY.svg new file mode 100644 index 0000000000..4bed16291f --- /dev/null +++ b/src/problem2/src/tokens/BUNNY.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/BUSD.svg b/src/problem2/src/tokens/BUSD.svg new file mode 100644 index 0000000000..b992764bd1 --- /dev/null +++ b/src/problem2/src/tokens/BUSD.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/BUSDT.svg b/src/problem2/src/tokens/BUSDT.svg new file mode 100644 index 0000000000..08bbf0587d --- /dev/null +++ b/src/problem2/src/tokens/BUSDT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/C98.svg b/src/problem2/src/tokens/C98.svg new file mode 100644 index 0000000000..3a0ff2bb70 --- /dev/null +++ b/src/problem2/src/tokens/C98.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/CAKE.svg b/src/problem2/src/tokens/CAKE.svg new file mode 100644 index 0000000000..ce45fbe253 --- /dev/null +++ b/src/problem2/src/tokens/CAKE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/CANTO.svg b/src/problem2/src/tokens/CANTO.svg new file mode 100644 index 0000000000..d2758becf9 --- /dev/null +++ b/src/problem2/src/tokens/CANTO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CARB.svg b/src/problem2/src/tokens/CARB.svg new file mode 100644 index 0000000000..02e14d0bfe --- /dev/null +++ b/src/problem2/src/tokens/CARB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CAT.svg b/src/problem2/src/tokens/CAT.svg new file mode 100644 index 0000000000..8f81af95be --- /dev/null +++ b/src/problem2/src/tokens/CAT.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CEL.svg b/src/problem2/src/tokens/CEL.svg new file mode 100644 index 0000000000..02cfbd269c --- /dev/null +++ b/src/problem2/src/tokens/CEL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CELO.svg b/src/problem2/src/tokens/CELO.svg new file mode 100644 index 0000000000..5ff3c6c83c --- /dev/null +++ b/src/problem2/src/tokens/CELO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CETH.svg b/src/problem2/src/tokens/CETH.svg new file mode 100644 index 0000000000..448a94a7a7 --- /dev/null +++ b/src/problem2/src/tokens/CETH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CFX.svg b/src/problem2/src/tokens/CFX.svg new file mode 100644 index 0000000000..07e8c434db --- /dev/null +++ b/src/problem2/src/tokens/CFX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/CGAS.svg b/src/problem2/src/tokens/CGAS.svg new file mode 100644 index 0000000000..3c31d75c0c --- /dev/null +++ b/src/problem2/src/tokens/CGAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CHEQ.svg b/src/problem2/src/tokens/CHEQ.svg new file mode 100644 index 0000000000..ed1621a482 --- /dev/null +++ b/src/problem2/src/tokens/CHEQ.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHOG.svg b/src/problem2/src/tokens/CHOG.svg new file mode 100644 index 0000000000..adee63f975 --- /dev/null +++ b/src/problem2/src/tokens/CHOG.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHSB.svg b/src/problem2/src/tokens/CHSB.svg new file mode 100644 index 0000000000..0118cfce5c --- /dev/null +++ b/src/problem2/src/tokens/CHSB.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHT.svg b/src/problem2/src/tokens/CHT.svg new file mode 100644 index 0000000000..19d6392712 --- /dev/null +++ b/src/problem2/src/tokens/CHT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CHZ.svg b/src/problem2/src/tokens/CHZ.svg new file mode 100644 index 0000000000..68897c58f1 --- /dev/null +++ b/src/problem2/src/tokens/CHZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CKB.svg b/src/problem2/src/tokens/CKB.svg new file mode 100644 index 0000000000..888ff3323e --- /dev/null +++ b/src/problem2/src/tokens/CKB.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/CMDX.svg b/src/problem2/src/tokens/CMDX.svg new file mode 100644 index 0000000000..028d44e951 --- /dev/null +++ b/src/problem2/src/tokens/CMDX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/CMST.svg b/src/problem2/src/tokens/CMST.svg new file mode 100644 index 0000000000..cd6cb419eb --- /dev/null +++ b/src/problem2/src/tokens/CMST.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CNT.svg b/src/problem2/src/tokens/CNT.svg new file mode 100644 index 0000000000..c098860f72 --- /dev/null +++ b/src/problem2/src/tokens/CNT.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/COIN.svg b/src/problem2/src/tokens/COIN.svg new file mode 100644 index 0000000000..098ee36d37 --- /dev/null +++ b/src/problem2/src/tokens/COIN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/COMP.svg b/src/problem2/src/tokens/COMP.svg new file mode 100644 index 0000000000..563bf3af25 --- /dev/null +++ b/src/problem2/src/tokens/COMP.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/COOK.svg b/src/problem2/src/tokens/COOK.svg new file mode 100644 index 0000000000..615625b404 --- /dev/null +++ b/src/problem2/src/tokens/COOK.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CRBRUS.svg b/src/problem2/src/tokens/CRBRUS.svg new file mode 100644 index 0000000000..d847b37b3c --- /dev/null +++ b/src/problem2/src/tokens/CRBRUS.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CRE.svg b/src/problem2/src/tokens/CRE.svg new file mode 100644 index 0000000000..4008331be2 --- /dev/null +++ b/src/problem2/src/tokens/CRE.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CRO.svg b/src/problem2/src/tokens/CRO.svg new file mode 100644 index 0000000000..75ddad7d51 --- /dev/null +++ b/src/problem2/src/tokens/CRO.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/CRV.svg b/src/problem2/src/tokens/CRV.svg new file mode 100644 index 0000000000..f9fa597fac --- /dev/null +++ b/src/problem2/src/tokens/CRV.svg @@ -0,0 +1,790 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/CTK.svg b/src/problem2/src/tokens/CTK.svg new file mode 100644 index 0000000000..96bfa4f618 --- /dev/null +++ b/src/problem2/src/tokens/CTK.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/CW.svg b/src/problem2/src/tokens/CW.svg new file mode 100644 index 0000000000..e0d8eef0af --- /dev/null +++ b/src/problem2/src/tokens/CW.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DAG.svg b/src/problem2/src/tokens/DAG.svg new file mode 100644 index 0000000000..a06db4c405 --- /dev/null +++ b/src/problem2/src/tokens/DAG.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/DAI.svg b/src/problem2/src/tokens/DAI.svg new file mode 100644 index 0000000000..00fdd7ae1b --- /dev/null +++ b/src/problem2/src/tokens/DAI.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DAK.svg b/src/problem2/src/tokens/DAK.svg new file mode 100644 index 0000000000..bbfa1b2640 --- /dev/null +++ b/src/problem2/src/tokens/DAK.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DARC.svg b/src/problem2/src/tokens/DARC.svg new file mode 100644 index 0000000000..8e131ded9b --- /dev/null +++ b/src/problem2/src/tokens/DARC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/DASH.svg b/src/problem2/src/tokens/DASH.svg new file mode 100644 index 0000000000..17e5eb7146 --- /dev/null +++ b/src/problem2/src/tokens/DASH.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/DBC.svg b/src/problem2/src/tokens/DBC.svg new file mode 100644 index 0000000000..91e7b72378 --- /dev/null +++ b/src/problem2/src/tokens/DBC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DCR.svg b/src/problem2/src/tokens/DCR.svg new file mode 100644 index 0000000000..d97040bcfe --- /dev/null +++ b/src/problem2/src/tokens/DCR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DEC.svg b/src/problem2/src/tokens/DEC.svg new file mode 100644 index 0000000000..025f6329b0 --- /dev/null +++ b/src/problem2/src/tokens/DEC.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DEGEN.svg b/src/problem2/src/tokens/DEGEN.svg new file mode 100644 index 0000000000..44233e8e9d --- /dev/null +++ b/src/problem2/src/tokens/DEGEN.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DENT.svg b/src/problem2/src/tokens/DENT.svg new file mode 100644 index 0000000000..10035d5a1a --- /dev/null +++ b/src/problem2/src/tokens/DENT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DGB.svg b/src/problem2/src/tokens/DGB.svg new file mode 100644 index 0000000000..ecf85eb29f --- /dev/null +++ b/src/problem2/src/tokens/DGB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DIG.svg b/src/problem2/src/tokens/DIG.svg new file mode 100644 index 0000000000..b75f6740df --- /dev/null +++ b/src/problem2/src/tokens/DIG.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DKT.svg b/src/problem2/src/tokens/DKT.svg new file mode 100644 index 0000000000..8d1d5a5604 --- /dev/null +++ b/src/problem2/src/tokens/DKT.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DODO.svg b/src/problem2/src/tokens/DODO.svg new file mode 100644 index 0000000000..514dd23b5e --- /dev/null +++ b/src/problem2/src/tokens/DODO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/DOGE.svg b/src/problem2/src/tokens/DOGE.svg new file mode 100644 index 0000000000..f019ca4b5e --- /dev/null +++ b/src/problem2/src/tokens/DOGE.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DOT.svg b/src/problem2/src/tokens/DOT.svg new file mode 100644 index 0000000000..db6de54b24 --- /dev/null +++ b/src/problem2/src/tokens/DOT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/DPL.svg b/src/problem2/src/tokens/DPL.svg new file mode 100644 index 0000000000..e511541f14 --- /dev/null +++ b/src/problem2/src/tokens/DPL.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DPX.svg b/src/problem2/src/tokens/DPX.svg new file mode 100644 index 0000000000..d96e812979 --- /dev/null +++ b/src/problem2/src/tokens/DPX.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DRFT.svg b/src/problem2/src/tokens/DRFT.svg new file mode 100644 index 0000000000..3f64fd9620 --- /dev/null +++ b/src/problem2/src/tokens/DRFT.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DROP.svg b/src/problem2/src/tokens/DROP.svg new file mode 100644 index 0000000000..dbb6c318b4 --- /dev/null +++ b/src/problem2/src/tokens/DROP.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DSM.svg b/src/problem2/src/tokens/DSM.svg new file mode 100644 index 0000000000..b305f5f5ea --- /dev/null +++ b/src/problem2/src/tokens/DSM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/DUVT.svg b/src/problem2/src/tokens/DUVT.svg new file mode 100644 index 0000000000..4bced3bdb9 --- /dev/null +++ b/src/problem2/src/tokens/DUVT.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DVPN.svg b/src/problem2/src/tokens/DVPN.svg new file mode 100644 index 0000000000..cb35dbc086 --- /dev/null +++ b/src/problem2/src/tokens/DVPN.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/DYDX.svg b/src/problem2/src/tokens/DYDX.svg new file mode 100644 index 0000000000..7977307c0f --- /dev/null +++ b/src/problem2/src/tokens/DYDX.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/DYM.svg b/src/problem2/src/tokens/DYM.svg new file mode 100644 index 0000000000..e696de4fd5 --- /dev/null +++ b/src/problem2/src/tokens/DYM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EEUR.svg b/src/problem2/src/tokens/EEUR.svg new file mode 100644 index 0000000000..25f940a5b3 --- /dev/null +++ b/src/problem2/src/tokens/EEUR.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EIGEN.svg b/src/problem2/src/tokens/EIGEN.svg new file mode 100644 index 0000000000..350b748dd4 --- /dev/null +++ b/src/problem2/src/tokens/EIGEN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ELA.svg b/src/problem2/src/tokens/ELA.svg new file mode 100644 index 0000000000..7612168452 --- /dev/null +++ b/src/problem2/src/tokens/ELA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ELF.svg b/src/problem2/src/tokens/ELF.svg new file mode 100644 index 0000000000..fd3bc6cfe8 --- /dev/null +++ b/src/problem2/src/tokens/ELF.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/ENA.svg b/src/problem2/src/tokens/ENA.svg new file mode 100644 index 0000000000..2445033b08 --- /dev/null +++ b/src/problem2/src/tokens/ENA.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ENJ.svg b/src/problem2/src/tokens/ENJ.svg new file mode 100644 index 0000000000..7b832779f7 --- /dev/null +++ b/src/problem2/src/tokens/ENJ.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ENS.svg b/src/problem2/src/tokens/ENS.svg new file mode 100644 index 0000000000..94d385bc10 --- /dev/null +++ b/src/problem2/src/tokens/ENS.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/EOS.svg b/src/problem2/src/tokens/EOS.svg new file mode 100644 index 0000000000..61de71db6d --- /dev/null +++ b/src/problem2/src/tokens/EOS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/EPS.svg b/src/problem2/src/tokens/EPS.svg new file mode 100644 index 0000000000..ef8bb614e1 --- /dev/null +++ b/src/problem2/src/tokens/EPS.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ETC.svg b/src/problem2/src/tokens/ETC.svg new file mode 100644 index 0000000000..7b3e8b3869 --- /dev/null +++ b/src/problem2/src/tokens/ETC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/ETH.svg b/src/problem2/src/tokens/ETH.svg new file mode 100644 index 0000000000..6a7cd5afc4 --- /dev/null +++ b/src/problem2/src/tokens/ETH.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/ETHBTC.svg b/src/problem2/src/tokens/ETHBTC.svg new file mode 100644 index 0000000000..bd01fc187e --- /dev/null +++ b/src/problem2/src/tokens/ETHBTC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/ETN.svg b/src/problem2/src/tokens/ETN.svg new file mode 100644 index 0000000000..a13bc14247 --- /dev/null +++ b/src/problem2/src/tokens/ETN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/EUROC.svg b/src/problem2/src/tokens/EUROC.svg new file mode 100644 index 0000000000..81134495c6 --- /dev/null +++ b/src/problem2/src/tokens/EUROC.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EUT.svg b/src/problem2/src/tokens/EUT.svg new file mode 100644 index 0000000000..56c4d324a5 --- /dev/null +++ b/src/problem2/src/tokens/EUT.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/EVMOS.svg b/src/problem2/src/tokens/EVMOS.svg new file mode 100644 index 0000000000..8d0b90acb4 --- /dev/null +++ b/src/problem2/src/tokens/EVMOS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/EWT.svg b/src/problem2/src/tokens/EWT.svg new file mode 100644 index 0000000000..db6e0ec632 --- /dev/null +++ b/src/problem2/src/tokens/EWT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/FARTCOIN.svg b/src/problem2/src/tokens/FARTCOIN.svg new file mode 100644 index 0000000000..9fa8534fdc --- /dev/null +++ b/src/problem2/src/tokens/FARTCOIN.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FBTC.svg b/src/problem2/src/tokens/FBTC.svg new file mode 100644 index 0000000000..89b376bbf9 --- /dev/null +++ b/src/problem2/src/tokens/FBTC.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FEES.svg b/src/problem2/src/tokens/FEES.svg new file mode 100644 index 0000000000..f31a2e1f85 --- /dev/null +++ b/src/problem2/src/tokens/FEES.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/FET.svg b/src/problem2/src/tokens/FET.svg new file mode 100644 index 0000000000..20b53be3d1 --- /dev/null +++ b/src/problem2/src/tokens/FET.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FIL.svg b/src/problem2/src/tokens/FIL.svg new file mode 100644 index 0000000000..a875441006 --- /dev/null +++ b/src/problem2/src/tokens/FIL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/FIS.svg b/src/problem2/src/tokens/FIS.svg new file mode 100644 index 0000000000..ae28f926c9 --- /dev/null +++ b/src/problem2/src/tokens/FIS.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLIX.svg b/src/problem2/src/tokens/FLIX.svg new file mode 100644 index 0000000000..962e47fb2d --- /dev/null +++ b/src/problem2/src/tokens/FLIX.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLM.svg b/src/problem2/src/tokens/FLM.svg new file mode 100644 index 0000000000..73ba619981 --- /dev/null +++ b/src/problem2/src/tokens/FLM.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLOW.svg b/src/problem2/src/tokens/FLOW.svg new file mode 100644 index 0000000000..7cf7e32db2 --- /dev/null +++ b/src/problem2/src/tokens/FLOW.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/FLUID.svg b/src/problem2/src/tokens/FLUID.svg new file mode 100644 index 0000000000..9202222f8f --- /dev/null +++ b/src/problem2/src/tokens/FLUID.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FLUO.svg b/src/problem2/src/tokens/FLUO.svg new file mode 100644 index 0000000000..d4e4c7f345 --- /dev/null +++ b/src/problem2/src/tokens/FLUO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FRANK.svg b/src/problem2/src/tokens/FRANK.svg new file mode 100644 index 0000000000..6a49dcfec1 --- /dev/null +++ b/src/problem2/src/tokens/FRANK.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FSGLP.svg b/src/problem2/src/tokens/FSGLP.svg new file mode 100644 index 0000000000..1392a246bb --- /dev/null +++ b/src/problem2/src/tokens/FSGLP.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/FTM.svg b/src/problem2/src/tokens/FTM.svg new file mode 100644 index 0000000000..0f46c6923c --- /dev/null +++ b/src/problem2/src/tokens/FTM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/FTT.svg b/src/problem2/src/tokens/FTT.svg new file mode 100644 index 0000000000..fcd829ef4f --- /dev/null +++ b/src/problem2/src/tokens/FTT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/FTTC.svg b/src/problem2/src/tokens/FTTC.svg new file mode 100644 index 0000000000..b53103bc49 --- /dev/null +++ b/src/problem2/src/tokens/FTTC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/FUN.svg b/src/problem2/src/tokens/FUN.svg new file mode 100644 index 0000000000..59cdc4bf25 --- /dev/null +++ b/src/problem2/src/tokens/FUN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GALA.svg b/src/problem2/src/tokens/GALA.svg new file mode 100644 index 0000000000..58a423f8bb --- /dev/null +++ b/src/problem2/src/tokens/GALA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/GAMBIT.svg b/src/problem2/src/tokens/GAMBIT.svg new file mode 100644 index 0000000000..b2ef5aadb3 --- /dev/null +++ b/src/problem2/src/tokens/GAMBIT.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GAS.svg b/src/problem2/src/tokens/GAS.svg new file mode 100644 index 0000000000..3c31d75c0c --- /dev/null +++ b/src/problem2/src/tokens/GAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GBT.svg b/src/problem2/src/tokens/GBT.svg new file mode 100644 index 0000000000..7dcf617c3e --- /dev/null +++ b/src/problem2/src/tokens/GBT.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GLP.svg b/src/problem2/src/tokens/GLP.svg new file mode 100644 index 0000000000..c5eefed0ad --- /dev/null +++ b/src/problem2/src/tokens/GLP.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GM.svg b/src/problem2/src/tokens/GM.svg new file mode 100644 index 0000000000..7739426dcb --- /dev/null +++ b/src/problem2/src/tokens/GM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/GMX.svg b/src/problem2/src/tokens/GMX.svg new file mode 100644 index 0000000000..80a8c19e74 --- /dev/null +++ b/src/problem2/src/tokens/GMX.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GNO.svg b/src/problem2/src/tokens/GNO.svg new file mode 100644 index 0000000000..b53b4961bc --- /dev/null +++ b/src/problem2/src/tokens/GNO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/GNS.svg b/src/problem2/src/tokens/GNS.svg new file mode 100644 index 0000000000..f47eaabf71 --- /dev/null +++ b/src/problem2/src/tokens/GNS.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GOAT.svg b/src/problem2/src/tokens/GOAT.svg new file mode 100644 index 0000000000..f52285aaa9 --- /dev/null +++ b/src/problem2/src/tokens/GOAT.svg @@ -0,0 +1,2174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GRASS.svg b/src/problem2/src/tokens/GRASS.svg new file mode 100644 index 0000000000..caa370fffe --- /dev/null +++ b/src/problem2/src/tokens/GRASS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GRAV.svg b/src/problem2/src/tokens/GRAV.svg new file mode 100644 index 0000000000..658e155072 --- /dev/null +++ b/src/problem2/src/tokens/GRAV.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/GRT.svg b/src/problem2/src/tokens/GRT.svg new file mode 100644 index 0000000000..2d283004da --- /dev/null +++ b/src/problem2/src/tokens/GRT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/GT.svg b/src/problem2/src/tokens/GT.svg new file mode 100644 index 0000000000..6cb00ff5c5 --- /dev/null +++ b/src/problem2/src/tokens/GT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HBAR.svg b/src/problem2/src/tokens/HBAR.svg new file mode 100644 index 0000000000..62d8831906 --- /dev/null +++ b/src/problem2/src/tokens/HBAR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HDN.png b/src/problem2/src/tokens/HDN.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7e612922734d7b5dcc6cdae2d9e3c1b7a9e1cc GIT binary patch literal 20649 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 + + + + + + + + diff --git a/src/problem2/src/tokens/HELMET.svg b/src/problem2/src/tokens/HELMET.svg new file mode 100644 index 0000000000..1a50859878 --- /dev/null +++ b/src/problem2/src/tokens/HELMET.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/HKT.svg b/src/problem2/src/tokens/HKT.svg new file mode 100644 index 0000000000..d2f5c930a7 --- /dev/null +++ b/src/problem2/src/tokens/HKT.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/HNT.svg b/src/problem2/src/tokens/HNT.svg new file mode 100644 index 0000000000..402e236890 --- /dev/null +++ b/src/problem2/src/tokens/HNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HOPE.svg b/src/problem2/src/tokens/HOPE.svg new file mode 100644 index 0000000000..b7541ae4a9 --- /dev/null +++ b/src/problem2/src/tokens/HOPE.svg @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/HOT.svg b/src/problem2/src/tokens/HOT.svg new file mode 100644 index 0000000000..eab9101a1f --- /dev/null +++ b/src/problem2/src/tokens/HOT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/HT.svg b/src/problem2/src/tokens/HT.svg new file mode 100644 index 0000000000..72cdfdd097 --- /dev/null +++ b/src/problem2/src/tokens/HT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/HUAHUA.svg b/src/problem2/src/tokens/HUAHUA.svg new file mode 100644 index 0000000000..e94cd98d8d --- /dev/null +++ b/src/problem2/src/tokens/HUAHUA.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/HUNY.svg b/src/problem2/src/tokens/HUNY.svg new file mode 100644 index 0000000000..b06f2f5457 --- /dev/null +++ b/src/problem2/src/tokens/HUNY.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/tokens/HUSD.svg b/src/problem2/src/tokens/HUSD.svg new file mode 100644 index 0000000000..30b26c0373 --- /dev/null +++ b/src/problem2/src/tokens/HUSD.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/HYPE.svg b/src/problem2/src/tokens/HYPE.svg new file mode 100644 index 0000000000..24eb8536f1 --- /dev/null +++ b/src/problem2/src/tokens/HYPE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/IBCX.svg b/src/problem2/src/tokens/IBCX.svg new file mode 100644 index 0000000000..061c6ccefe --- /dev/null +++ b/src/problem2/src/tokens/IBCX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ICP.svg b/src/problem2/src/tokens/ICP.svg new file mode 100644 index 0000000000..c7a99ba9bd --- /dev/null +++ b/src/problem2/src/tokens/ICP.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ICX.svg b/src/problem2/src/tokens/ICX.svg new file mode 100644 index 0000000000..53efc54ef9 --- /dev/null +++ b/src/problem2/src/tokens/ICX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/IDT.svg b/src/problem2/src/tokens/IDT.svg new file mode 100644 index 0000000000..91288c58bf --- /dev/null +++ b/src/problem2/src/tokens/IDT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/INIT.svg b/src/problem2/src/tokens/INIT.svg new file mode 100644 index 0000000000..47395f6439 --- /dev/null +++ b/src/problem2/src/tokens/INIT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/INJ.svg b/src/problem2/src/tokens/INJ.svg new file mode 100644 index 0000000000..b6d304e498 --- /dev/null +++ b/src/problem2/src/tokens/INJ.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/INT.svg b/src/problem2/src/tokens/INT.svg new file mode 100644 index 0000000000..9ab0d29f35 --- /dev/null +++ b/src/problem2/src/tokens/INT.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ION.svg b/src/problem2/src/tokens/ION.svg new file mode 100644 index 0000000000..adad5f300f --- /dev/null +++ b/src/problem2/src/tokens/ION.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IOST.svg b/src/problem2/src/tokens/IOST.svg new file mode 100644 index 0000000000..8f791796a3 --- /dev/null +++ b/src/problem2/src/tokens/IOST.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/IOTX.svg b/src/problem2/src/tokens/IOTX.svg new file mode 100644 index 0000000000..97a8461838 --- /dev/null +++ b/src/problem2/src/tokens/IOTX.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IOV.svg b/src/problem2/src/tokens/IOV.svg new file mode 100644 index 0000000000..2c37835fff --- /dev/null +++ b/src/problem2/src/tokens/IOV.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/IP.svg b/src/problem2/src/tokens/IP.svg new file mode 100644 index 0000000000..be63bba6d7 --- /dev/null +++ b/src/problem2/src/tokens/IP.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IRIS.svg b/src/problem2/src/tokens/IRIS.svg new file mode 100644 index 0000000000..59b13b5aa6 --- /dev/null +++ b/src/problem2/src/tokens/IRIS.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/IXO.svg b/src/problem2/src/tokens/IXO.svg new file mode 100644 index 0000000000..0d1fb10136 --- /dev/null +++ b/src/problem2/src/tokens/IXO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/JPT.svg b/src/problem2/src/tokens/JPT.svg new file mode 100644 index 0000000000..14014e4cb8 --- /dev/null +++ b/src/problem2/src/tokens/JPT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/JTO.svg b/src/problem2/src/tokens/JTO.svg new file mode 100644 index 0000000000..3ce7f51587 --- /dev/null +++ b/src/problem2/src/tokens/JTO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/JUNO.svg b/src/problem2/src/tokens/JUNO.svg new file mode 100644 index 0000000000..d65fb3da31 --- /dev/null +++ b/src/problem2/src/tokens/JUNO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/JUP.svg b/src/problem2/src/tokens/JUP.svg new file mode 100644 index 0000000000..adf9284819 --- /dev/null +++ b/src/problem2/src/tokens/JUP.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KAITO.svg b/src/problem2/src/tokens/KAITO.svg new file mode 100644 index 0000000000..f51471047a --- /dev/null +++ b/src/problem2/src/tokens/KAITO.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KAS.svg b/src/problem2/src/tokens/KAS.svg new file mode 100644 index 0000000000..1c9ea6bc49 --- /dev/null +++ b/src/problem2/src/tokens/KAS.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/tokens/KBONK.svg b/src/problem2/src/tokens/KBONK.svg new file mode 100644 index 0000000000..5df777e894 --- /dev/null +++ b/src/problem2/src/tokens/KBONK.svg @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KCS.svg b/src/problem2/src/tokens/KCS.svg new file mode 100644 index 0000000000..a4b333dfb8 --- /dev/null +++ b/src/problem2/src/tokens/KCS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/KFLOKI.svg b/src/problem2/src/tokens/KFLOKI.svg new file mode 100644 index 0000000000..d35699e87e --- /dev/null +++ b/src/problem2/src/tokens/KFLOKI.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KLAY.svg b/src/problem2/src/tokens/KLAY.svg new file mode 100644 index 0000000000..6f1d4cabef --- /dev/null +++ b/src/problem2/src/tokens/KLAY.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/KMD.svg b/src/problem2/src/tokens/KMD.svg new file mode 100644 index 0000000000..62598658bb --- /dev/null +++ b/src/problem2/src/tokens/KMD.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KNC.svg b/src/problem2/src/tokens/KNC.svg new file mode 100644 index 0000000000..d9ed00657f --- /dev/null +++ b/src/problem2/src/tokens/KNC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/KPEPE.svg b/src/problem2/src/tokens/KPEPE.svg new file mode 100644 index 0000000000..92665e5502 --- /dev/null +++ b/src/problem2/src/tokens/KPEPE.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KRT.svg b/src/problem2/src/tokens/KRT.svg new file mode 100644 index 0000000000..e6ea416cf6 --- /dev/null +++ b/src/problem2/src/tokens/KRT.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KSHIB.svg b/src/problem2/src/tokens/KSHIB.svg new file mode 100644 index 0000000000..adbb2f009b --- /dev/null +++ b/src/problem2/src/tokens/KSHIB.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/KSM.svg b/src/problem2/src/tokens/KSM.svg new file mode 100644 index 0000000000..771f73596e --- /dev/null +++ b/src/problem2/src/tokens/KSM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/KUJI.svg b/src/problem2/src/tokens/KUJI.svg new file mode 100644 index 0000000000..7c169dd724 --- /dev/null +++ b/src/problem2/src/tokens/KUJI.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LAYER.svg b/src/problem2/src/tokens/LAYER.svg new file mode 100644 index 0000000000..9e9036df30 --- /dev/null +++ b/src/problem2/src/tokens/LAYER.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LBTC.svg b/src/problem2/src/tokens/LBTC.svg new file mode 100644 index 0000000000..1476de62ab --- /dev/null +++ b/src/problem2/src/tokens/LBTC.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LDO.svg b/src/problem2/src/tokens/LDO.svg new file mode 100644 index 0000000000..c8860768cf --- /dev/null +++ b/src/problem2/src/tokens/LDO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LEO.svg b/src/problem2/src/tokens/LEO.svg new file mode 100644 index 0000000000..f94a11c945 --- /dev/null +++ b/src/problem2/src/tokens/LEO.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LET.svg b/src/problem2/src/tokens/LET.svg new file mode 100644 index 0000000000..8f6a4a06e6 --- /dev/null +++ b/src/problem2/src/tokens/LET.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LIKE.svg b/src/problem2/src/tokens/LIKE.svg new file mode 100644 index 0000000000..a0ac6ac6ac --- /dev/null +++ b/src/problem2/src/tokens/LIKE.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LINK.svg b/src/problem2/src/tokens/LINK.svg new file mode 100644 index 0000000000..8484106a43 --- /dev/null +++ b/src/problem2/src/tokens/LINK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LKT.svg b/src/problem2/src/tokens/LKT.svg new file mode 100644 index 0000000000..f224ae0ff2 --- /dev/null +++ b/src/problem2/src/tokens/LKT.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LOOM.svg b/src/problem2/src/tokens/LOOM.svg new file mode 100644 index 0000000000..5ad0435613 --- /dev/null +++ b/src/problem2/src/tokens/LOOM.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LOOP.svg b/src/problem2/src/tokens/LOOP.svg new file mode 100644 index 0000000000..6c69420439 --- /dev/null +++ b/src/problem2/src/tokens/LOOP.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LOTA.svg b/src/problem2/src/tokens/LOTA.svg new file mode 100644 index 0000000000..10c742ae6d --- /dev/null +++ b/src/problem2/src/tokens/LOTA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/LPLBTC_29MAY2025.svg b/src/problem2/src/tokens/LPLBTC_29MAY2025.svg new file mode 100644 index 0000000000..d75f81bcd5 --- /dev/null +++ b/src/problem2/src/tokens/LPLBTC_29MAY2025.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LPT.svg b/src/problem2/src/tokens/LPT.svg new file mode 100644 index 0000000000..c026842d93 --- /dev/null +++ b/src/problem2/src/tokens/LPT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LPberaSTONE_10APR2025.svg b/src/problem2/src/tokens/LPberaSTONE_10APR2025.svg new file mode 100644 index 0000000000..24fd8ebe9a --- /dev/null +++ b/src/problem2/src/tokens/LPberaSTONE_10APR2025.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LPcmETH_26JUN2025.svg b/src/problem2/src/tokens/LPcmETH_26JUN2025.svg new file mode 100644 index 0000000000..dd4bb6fbbc --- /dev/null +++ b/src/problem2/src/tokens/LPcmETH_26JUN2025.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LRC.svg b/src/problem2/src/tokens/LRC.svg new file mode 100644 index 0000000000..2319bb063d --- /dev/null +++ b/src/problem2/src/tokens/LRC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LSI.svg b/src/problem2/src/tokens/LSI.svg new file mode 100644 index 0000000000..48618f66b3 --- /dev/null +++ b/src/problem2/src/tokens/LSI.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LSK.svg b/src/problem2/src/tokens/LSK.svg new file mode 100644 index 0000000000..d7b38f123e --- /dev/null +++ b/src/problem2/src/tokens/LSK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LTC.svg b/src/problem2/src/tokens/LTC.svg new file mode 100644 index 0000000000..d734c3ac54 --- /dev/null +++ b/src/problem2/src/tokens/LTC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LUM.svg b/src/problem2/src/tokens/LUM.svg new file mode 100644 index 0000000000..8994d02ad5 --- /dev/null +++ b/src/problem2/src/tokens/LUM.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNA.svg b/src/problem2/src/tokens/LUNA.svg new file mode 100644 index 0000000000..6a839981dd --- /dev/null +++ b/src/problem2/src/tokens/LUNA.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNAX.svg b/src/problem2/src/tokens/LUNAX.svg new file mode 100644 index 0000000000..afc19e17de --- /dev/null +++ b/src/problem2/src/tokens/LUNAX.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNC.svg b/src/problem2/src/tokens/LUNC.svg new file mode 100644 index 0000000000..fe40173c96 --- /dev/null +++ b/src/problem2/src/tokens/LUNC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/LUNI.svg b/src/problem2/src/tokens/LUNI.svg new file mode 100644 index 0000000000..1721643744 --- /dev/null +++ b/src/problem2/src/tokens/LUNI.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LUNR.svg b/src/problem2/src/tokens/LUNR.svg new file mode 100644 index 0000000000..1b8b15237f --- /dev/null +++ b/src/problem2/src/tokens/LUNR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/LUV.svg b/src/problem2/src/tokens/LUV.svg new file mode 100644 index 0000000000..0f7342c490 --- /dev/null +++ b/src/problem2/src/tokens/LUV.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/LVN.svg b/src/problem2/src/tokens/LVN.svg new file mode 100644 index 0000000000..65aac46ea5 --- /dev/null +++ b/src/problem2/src/tokens/LVN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/Liquid Staking Index.svg b/src/problem2/src/tokens/Liquid Staking Index.svg new file mode 100644 index 0000000000..58533746be --- /dev/null +++ b/src/problem2/src/tokens/Liquid Staking Index.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/M87.svg b/src/problem2/src/tokens/M87.svg new file mode 100644 index 0000000000..77f8c882b5 --- /dev/null +++ b/src/problem2/src/tokens/M87.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MANA.svg b/src/problem2/src/tokens/MANA.svg new file mode 100644 index 0000000000..0629467224 --- /dev/null +++ b/src/problem2/src/tokens/MANA.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MANTA.svg b/src/problem2/src/tokens/MANTA.svg new file mode 100644 index 0000000000..1970537a1f --- /dev/null +++ b/src/problem2/src/tokens/MANTA.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MARBLE.svg b/src/problem2/src/tokens/MARBLE.svg new file mode 100644 index 0000000000..4e9c2214f2 --- /dev/null +++ b/src/problem2/src/tokens/MARBLE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/MATH.svg b/src/problem2/src/tokens/MATH.svg new file mode 100644 index 0000000000..144d40f0bb --- /dev/null +++ b/src/problem2/src/tokens/MATH.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MATIC.svg b/src/problem2/src/tokens/MATIC.svg new file mode 100644 index 0000000000..98d07c7d95 --- /dev/null +++ b/src/problem2/src/tokens/MATIC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/MDX.svg b/src/problem2/src/tokens/MDX.svg new file mode 100644 index 0000000000..8f3b267801 --- /dev/null +++ b/src/problem2/src/tokens/MDX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ME.svg b/src/problem2/src/tokens/ME.svg new file mode 100644 index 0000000000..f354182728 --- /dev/null +++ b/src/problem2/src/tokens/ME.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MED.svg b/src/problem2/src/tokens/MED.svg new file mode 100644 index 0000000000..900d139258 --- /dev/null +++ b/src/problem2/src/tokens/MED.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/MEME.svg b/src/problem2/src/tokens/MEME.svg new file mode 100644 index 0000000000..d784304a65 --- /dev/null +++ b/src/problem2/src/tokens/MEME.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/METIS.svg b/src/problem2/src/tokens/METIS.svg new file mode 100644 index 0000000000..3bd43ffadb --- /dev/null +++ b/src/problem2/src/tokens/METIS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MEW.svg b/src/problem2/src/tokens/MEW.svg new file mode 100644 index 0000000000..dc9532c537 --- /dev/null +++ b/src/problem2/src/tokens/MEW.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MIAW.svg b/src/problem2/src/tokens/MIAW.svg new file mode 100644 index 0000000000..ddf46721c7 --- /dev/null +++ b/src/problem2/src/tokens/MIAW.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/MILK.svg b/src/problem2/src/tokens/MILK.svg new file mode 100644 index 0000000000..e6a434e9c1 --- /dev/null +++ b/src/problem2/src/tokens/MILK.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MINA.svg b/src/problem2/src/tokens/MINA.svg new file mode 100644 index 0000000000..d5aafd7398 --- /dev/null +++ b/src/problem2/src/tokens/MINA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MINE.svg b/src/problem2/src/tokens/MINE.svg new file mode 100644 index 0000000000..ff71cab9e7 --- /dev/null +++ b/src/problem2/src/tokens/MINE.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MIOTA.svg b/src/problem2/src/tokens/MIOTA.svg new file mode 100644 index 0000000000..3d3c08c604 --- /dev/null +++ b/src/problem2/src/tokens/MIOTA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MIR.svg b/src/problem2/src/tokens/MIR.svg new file mode 100644 index 0000000000..0247791318 --- /dev/null +++ b/src/problem2/src/tokens/MIR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MKR.svg b/src/problem2/src/tokens/MKR.svg new file mode 100644 index 0000000000..9a639d1374 --- /dev/null +++ b/src/problem2/src/tokens/MKR.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/MMOG.svg b/src/problem2/src/tokens/MMOG.svg new file mode 100644 index 0000000000..6bb1f33b10 --- /dev/null +++ b/src/problem2/src/tokens/MMOG.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MNT.svg b/src/problem2/src/tokens/MNT.svg new file mode 100644 index 0000000000..1aa231ddd4 --- /dev/null +++ b/src/problem2/src/tokens/MNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/MNTA.svg b/src/problem2/src/tokens/MNTA.svg new file mode 100644 index 0000000000..e3b7cfa957 --- /dev/null +++ b/src/problem2/src/tokens/MNTA.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MNTL.svg b/src/problem2/src/tokens/MNTL.svg new file mode 100644 index 0000000000..71e1c497e9 --- /dev/null +++ b/src/problem2/src/tokens/MNTL.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MON.svg b/src/problem2/src/tokens/MON.svg new file mode 100644 index 0000000000..be988333af --- /dev/null +++ b/src/problem2/src/tokens/MON.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MOODENG.svg b/src/problem2/src/tokens/MOODENG.svg new file mode 100644 index 0000000000..679ffc5b35 --- /dev/null +++ b/src/problem2/src/tokens/MOODENG.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MORPHO.svg b/src/problem2/src/tokens/MORPHO.svg new file mode 100644 index 0000000000..a27a0fb363 --- /dev/null +++ b/src/problem2/src/tokens/MORPHO.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/MYT.svg b/src/problem2/src/tokens/MYT.svg new file mode 100644 index 0000000000..92cbc6468d --- /dev/null +++ b/src/problem2/src/tokens/MYT.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NANO.svg b/src/problem2/src/tokens/NANO.svg new file mode 100644 index 0000000000..9ed54dd843 --- /dev/null +++ b/src/problem2/src/tokens/NANO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NAS.svg b/src/problem2/src/tokens/NAS.svg new file mode 100644 index 0000000000..071766c17c --- /dev/null +++ b/src/problem2/src/tokens/NAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/NAT.svg b/src/problem2/src/tokens/NAT.svg new file mode 100644 index 0000000000..d72f7e18fc --- /dev/null +++ b/src/problem2/src/tokens/NAT.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/NEAR.svg b/src/problem2/src/tokens/NEAR.svg new file mode 100644 index 0000000000..7bc784c808 --- /dev/null +++ b/src/problem2/src/tokens/NEAR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/NEIROETH.svg b/src/problem2/src/tokens/NEIROETH.svg new file mode 100644 index 0000000000..3ced226feb --- /dev/null +++ b/src/problem2/src/tokens/NEIROETH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NEO.svg b/src/problem2/src/tokens/NEO.svg new file mode 100644 index 0000000000..d4a90e1b27 --- /dev/null +++ b/src/problem2/src/tokens/NEO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NETA.svg b/src/problem2/src/tokens/NETA.svg new file mode 100644 index 0000000000..b617dbef98 --- /dev/null +++ b/src/problem2/src/tokens/NETA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NEX.svg b/src/problem2/src/tokens/NEX.svg new file mode 100644 index 0000000000..34be620b9e --- /dev/null +++ b/src/problem2/src/tokens/NEX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/NEXO.svg b/src/problem2/src/tokens/NEXO.svg new file mode 100644 index 0000000000..4f8507a40f --- /dev/null +++ b/src/problem2/src/tokens/NEXO.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/NGM.svg b/src/problem2/src/tokens/NGM.svg new file mode 100644 index 0000000000..ebdc8a035d --- /dev/null +++ b/src/problem2/src/tokens/NGM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/NIM.svg b/src/problem2/src/tokens/NIM.svg new file mode 100644 index 0000000000..ec74006b7c --- /dev/null +++ b/src/problem2/src/tokens/NIM.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NKN.svg b/src/problem2/src/tokens/NKN.svg new file mode 100644 index 0000000000..e008ac5d71 --- /dev/null +++ b/src/problem2/src/tokens/NKN.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NMR.svg b/src/problem2/src/tokens/NMR.svg new file mode 100644 index 0000000000..fcb458cafa --- /dev/null +++ b/src/problem2/src/tokens/NMR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/NOT.svg b/src/problem2/src/tokens/NOT.svg new file mode 100644 index 0000000000..5561ccec77 --- /dev/null +++ b/src/problem2/src/tokens/NOT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NOTE.svg b/src/problem2/src/tokens/NOTE.svg new file mode 100644 index 0000000000..9f44e1971f --- /dev/null +++ b/src/problem2/src/tokens/NOTE.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NTRN-dATOM.svg b/src/problem2/src/tokens/NTRN-dATOM.svg new file mode 100644 index 0000000000..5b3303f21b --- /dev/null +++ b/src/problem2/src/tokens/NTRN-dATOM.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NTRN.svg b/src/problem2/src/tokens/NTRN.svg new file mode 100644 index 0000000000..150a6137d2 --- /dev/null +++ b/src/problem2/src/tokens/NTRN.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/NXM.svg b/src/problem2/src/tokens/NXM.svg new file mode 100644 index 0000000000..165bc3b984 --- /dev/null +++ b/src/problem2/src/tokens/NXM.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/OCEAN.svg b/src/problem2/src/tokens/OCEAN.svg new file mode 100644 index 0000000000..ad0f99d6ae --- /dev/null +++ b/src/problem2/src/tokens/OCEAN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OCH.svg b/src/problem2/src/tokens/OCH.svg new file mode 100644 index 0000000000..51c3f8e039 --- /dev/null +++ b/src/problem2/src/tokens/OCH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OGN.svg b/src/problem2/src/tokens/OGN.svg new file mode 100644 index 0000000000..e15dbac858 --- /dev/null +++ b/src/problem2/src/tokens/OGN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OKB.svg b/src/problem2/src/tokens/OKB.svg new file mode 100644 index 0000000000..786f75ba42 --- /dev/null +++ b/src/problem2/src/tokens/OKB.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OKT.svg b/src/problem2/src/tokens/OKT.svg new file mode 100644 index 0000000000..0afcd8a1cf --- /dev/null +++ b/src/problem2/src/tokens/OKT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OM.svg b/src/problem2/src/tokens/OM.svg new file mode 100644 index 0000000000..6305bd1560 --- /dev/null +++ b/src/problem2/src/tokens/OM.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OMG.svg b/src/problem2/src/tokens/OMG.svg new file mode 100644 index 0000000000..2d3d8ae8e6 --- /dev/null +++ b/src/problem2/src/tokens/OMG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/OMG_2.svg b/src/problem2/src/tokens/OMG_2.svg new file mode 100644 index 0000000000..5735f9f726 --- /dev/null +++ b/src/problem2/src/tokens/OMG_2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OMI.svg b/src/problem2/src/tokens/OMI.svg new file mode 100644 index 0000000000..b1d5020084 --- /dev/null +++ b/src/problem2/src/tokens/OMI.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OMNI.svg b/src/problem2/src/tokens/OMNI.svg new file mode 100644 index 0000000000..ea1ce8353d --- /dev/null +++ b/src/problem2/src/tokens/OMNI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ONDO.svg b/src/problem2/src/tokens/ONDO.svg new file mode 100644 index 0000000000..84482f794d --- /dev/null +++ b/src/problem2/src/tokens/ONDO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ONE.svg b/src/problem2/src/tokens/ONE.svg new file mode 100644 index 0000000000..63c1260c06 --- /dev/null +++ b/src/problem2/src/tokens/ONE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/ONT.svg b/src/problem2/src/tokens/ONT.svg new file mode 100644 index 0000000000..93378b4745 --- /dev/null +++ b/src/problem2/src/tokens/ONT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/OP.svg b/src/problem2/src/tokens/OP.svg new file mode 100644 index 0000000000..b5feac7946 --- /dev/null +++ b/src/problem2/src/tokens/OP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OPUL.svg b/src/problem2/src/tokens/OPUL.svg new file mode 100644 index 0000000000..c7ae4dbf3e --- /dev/null +++ b/src/problem2/src/tokens/OPUL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/ORDI.svg b/src/problem2/src/tokens/ORDI.svg new file mode 100644 index 0000000000..380181270d --- /dev/null +++ b/src/problem2/src/tokens/ORDI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ORION.svg b/src/problem2/src/tokens/ORION.svg new file mode 100644 index 0000000000..b5f9ba6fff --- /dev/null +++ b/src/problem2/src/tokens/ORION.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/ORNE.svg b/src/problem2/src/tokens/ORNE.svg new file mode 100644 index 0000000000..d986b3f31e --- /dev/null +++ b/src/problem2/src/tokens/ORNE.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/OSMO.svg b/src/problem2/src/tokens/OSMO.svg new file mode 100644 index 0000000000..e98545517b --- /dev/null +++ b/src/problem2/src/tokens/OSMO.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/OXT.svg b/src/problem2/src/tokens/OXT.svg new file mode 100644 index 0000000000..bba9547da1 --- /dev/null +++ b/src/problem2/src/tokens/OXT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/OXY.svg b/src/problem2/src/tokens/OXY.svg new file mode 100644 index 0000000000..9175a0b900 --- /dev/null +++ b/src/problem2/src/tokens/OXY.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PAX.svg b/src/problem2/src/tokens/PAX.svg new file mode 100644 index 0000000000..32b0ef8211 --- /dev/null +++ b/src/problem2/src/tokens/PAX.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PAXG.svg b/src/problem2/src/tokens/PAXG.svg new file mode 100644 index 0000000000..5ff89051f8 --- /dev/null +++ b/src/problem2/src/tokens/PAXG.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PENDLE.svg b/src/problem2/src/tokens/PENDLE.svg new file mode 100644 index 0000000000..367540fbb0 --- /dev/null +++ b/src/problem2/src/tokens/PENDLE.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PENGU.svg b/src/problem2/src/tokens/PENGU.svg new file mode 100644 index 0000000000..a5c99add38 --- /dev/null +++ b/src/problem2/src/tokens/PENGU.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PEPE.svg b/src/problem2/src/tokens/PEPE.svg new file mode 100644 index 0000000000..1e6ba151a3 --- /dev/null +++ b/src/problem2/src/tokens/PEPE.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PHT.svg b/src/problem2/src/tokens/PHT.svg new file mode 100644 index 0000000000..d515118058 --- /dev/null +++ b/src/problem2/src/tokens/PHT.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PLAY.svg b/src/problem2/src/tokens/PLAY.svg new file mode 100644 index 0000000000..bae2577420 --- /dev/null +++ b/src/problem2/src/tokens/PLAY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PLQ.svg b/src/problem2/src/tokens/PLQ.svg new file mode 100644 index 0000000000..31b353bb45 --- /dev/null +++ b/src/problem2/src/tokens/PLQ.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PLY.svg b/src/problem2/src/tokens/PLY.svg new file mode 100644 index 0000000000..c79b320445 --- /dev/null +++ b/src/problem2/src/tokens/PLY.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PNUT.svg b/src/problem2/src/tokens/PNUT.svg new file mode 100644 index 0000000000..90abdb384d --- /dev/null +++ b/src/problem2/src/tokens/PNUT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/POL.svg b/src/problem2/src/tokens/POL.svg new file mode 100644 index 0000000000..ceff03709c --- /dev/null +++ b/src/problem2/src/tokens/POL.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/POLY.svg b/src/problem2/src/tokens/POLY.svg new file mode 100644 index 0000000000..b894fef5d5 --- /dev/null +++ b/src/problem2/src/tokens/POLY.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/POPCAT.svg b/src/problem2/src/tokens/POPCAT.svg new file mode 100644 index 0000000000..ab8fa4c5e5 --- /dev/null +++ b/src/problem2/src/tokens/POPCAT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/PORT.svg b/src/problem2/src/tokens/PORT.svg new file mode 100644 index 0000000000..d846537361 --- /dev/null +++ b/src/problem2/src/tokens/PORT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/PROM.svg b/src/problem2/src/tokens/PROM.svg new file mode 100644 index 0000000000..044c9e3576 --- /dev/null +++ b/src/problem2/src/tokens/PROM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/PSI.svg b/src/problem2/src/tokens/PSI.svg new file mode 100644 index 0000000000..674744b4e5 --- /dev/null +++ b/src/problem2/src/tokens/PSI.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/PSTAKE.svg b/src/problem2/src/tokens/PSTAKE.svg new file mode 100644 index 0000000000..caf13d8d63 --- /dev/null +++ b/src/problem2/src/tokens/PSTAKE.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/PTLBTC_29MAY2025.svg b/src/problem2/src/tokens/PTLBTC_29MAY2025.svg new file mode 100644 index 0000000000..afb01c923b --- /dev/null +++ b/src/problem2/src/tokens/PTLBTC_29MAY2025.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PTMETH_26DEC2024.svg b/src/problem2/src/tokens/PTMETH_26DEC2024.svg new file mode 100644 index 0000000000..3256ec9f5f --- /dev/null +++ b/src/problem2/src/tokens/PTMETH_26DEC2024.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PTberaSTONE_10APR2025.svg b/src/problem2/src/tokens/PTberaSTONE_10APR2025.svg new file mode 100644 index 0000000000..1444e75dfb --- /dev/null +++ b/src/problem2/src/tokens/PTberaSTONE_10APR2025.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PTcmETH_26JUN2025.svg b/src/problem2/src/tokens/PTcmETH_26JUN2025.svg new file mode 100644 index 0000000000..860a1e3892 --- /dev/null +++ b/src/problem2/src/tokens/PTcmETH_26JUN2025.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PUDGY.svg b/src/problem2/src/tokens/PUDGY.svg new file mode 100644 index 0000000000..239424d8cd --- /dev/null +++ b/src/problem2/src/tokens/PUDGY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PUMP.svg b/src/problem2/src/tokens/PUMP.svg new file mode 100644 index 0000000000..3b8ac28fda --- /dev/null +++ b/src/problem2/src/tokens/PUMP.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PUNDIX.svg b/src/problem2/src/tokens/PUNDIX.svg new file mode 100644 index 0000000000..a522d0d26e --- /dev/null +++ b/src/problem2/src/tokens/PUNDIX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/PURR.svg b/src/problem2/src/tokens/PURR.svg new file mode 100644 index 0000000000..c8b82375cb --- /dev/null +++ b/src/problem2/src/tokens/PURR.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PURSE.svg b/src/problem2/src/tokens/PURSE.svg new file mode 100644 index 0000000000..9188e092de --- /dev/null +++ b/src/problem2/src/tokens/PURSE.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/PYTH.svg b/src/problem2/src/tokens/PYTH.svg new file mode 100644 index 0000000000..b34cc9ea3d --- /dev/null +++ b/src/problem2/src/tokens/PYTH.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/QCK.svg b/src/problem2/src/tokens/QCK.svg new file mode 100644 index 0000000000..358cb7dbbf --- /dev/null +++ b/src/problem2/src/tokens/QCK.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/QKC.svg b/src/problem2/src/tokens/QKC.svg new file mode 100644 index 0000000000..e312777506 --- /dev/null +++ b/src/problem2/src/tokens/QKC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/QNT.svg b/src/problem2/src/tokens/QNT.svg new file mode 100644 index 0000000000..a611eaa24a --- /dev/null +++ b/src/problem2/src/tokens/QNT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/QTUM.svg b/src/problem2/src/tokens/QTUM.svg new file mode 100644 index 0000000000..e96f6cf2ca --- /dev/null +++ b/src/problem2/src/tokens/QTUM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/RAY.svg b/src/problem2/src/tokens/RAY.svg new file mode 100644 index 0000000000..e769284e27 --- /dev/null +++ b/src/problem2/src/tokens/RAY.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RBN.svg b/src/problem2/src/tokens/RBN.svg new file mode 100644 index 0000000000..ef40c376d8 --- /dev/null +++ b/src/problem2/src/tokens/RBN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/REEF.svg b/src/problem2/src/tokens/REEF.svg new file mode 100644 index 0000000000..5c777f840f --- /dev/null +++ b/src/problem2/src/tokens/REEF.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/REGEN.svg b/src/problem2/src/tokens/REGEN.svg new file mode 100644 index 0000000000..242a4c66c9 --- /dev/null +++ b/src/problem2/src/tokens/REGEN.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/REN.svg b/src/problem2/src/tokens/REN.svg new file mode 100644 index 0000000000..bae08ca56f --- /dev/null +++ b/src/problem2/src/tokens/REN.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/REP.svg b/src/problem2/src/tokens/REP.svg new file mode 100644 index 0000000000..c311970b6d --- /dev/null +++ b/src/problem2/src/tokens/REP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/REV.svg b/src/problem2/src/tokens/REV.svg new file mode 100644 index 0000000000..6dcaa131aa --- /dev/null +++ b/src/problem2/src/tokens/REV.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RLB.svg b/src/problem2/src/tokens/RLB.svg new file mode 100644 index 0000000000..344fe8e022 --- /dev/null +++ b/src/problem2/src/tokens/RLB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RLC.svg b/src/problem2/src/tokens/RLC.svg new file mode 100644 index 0000000000..c816edf016 --- /dev/null +++ b/src/problem2/src/tokens/RLC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/RNDR.svg b/src/problem2/src/tokens/RNDR.svg new file mode 100644 index 0000000000..031e8816b3 --- /dev/null +++ b/src/problem2/src/tokens/RNDR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ROAR.svg b/src/problem2/src/tokens/ROAR.svg new file mode 100644 index 0000000000..d29ab09634 --- /dev/null +++ b/src/problem2/src/tokens/ROAR.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ROWAN.svg b/src/problem2/src/tokens/ROWAN.svg new file mode 100644 index 0000000000..6b395742d4 --- /dev/null +++ b/src/problem2/src/tokens/ROWAN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/RSR.svg b/src/problem2/src/tokens/RSR.svg new file mode 100644 index 0000000000..f85bb78c23 --- /dev/null +++ b/src/problem2/src/tokens/RSR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/RUNE.svg b/src/problem2/src/tokens/RUNE.svg new file mode 100644 index 0000000000..ccbb65ceff --- /dev/null +++ b/src/problem2/src/tokens/RUNE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/RVN.svg b/src/problem2/src/tokens/RVN.svg new file mode 100644 index 0000000000..4d6d30eeef --- /dev/null +++ b/src/problem2/src/tokens/RVN.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/S.svg b/src/problem2/src/tokens/S.svg new file mode 100644 index 0000000000..b216a1804f --- /dev/null +++ b/src/problem2/src/tokens/S.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SAFEMOON.svg b/src/problem2/src/tokens/SAFEMOON.svg new file mode 100644 index 0000000000..9ff12873a5 --- /dev/null +++ b/src/problem2/src/tokens/SAFEMOON.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SAGA.svg b/src/problem2/src/tokens/SAGA.svg new file mode 100644 index 0000000000..53455ea0dd --- /dev/null +++ b/src/problem2/src/tokens/SAGA.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SAND.svg b/src/problem2/src/tokens/SAND.svg new file mode 100644 index 0000000000..4e01196b45 --- /dev/null +++ b/src/problem2/src/tokens/SAND.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/SAYVE.svg b/src/problem2/src/tokens/SAYVE.svg new file mode 100644 index 0000000000..2cea35fc51 --- /dev/null +++ b/src/problem2/src/tokens/SAYVE.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/SC.svg b/src/problem2/src/tokens/SC.svg new file mode 100644 index 0000000000..aebc27644b --- /dev/null +++ b/src/problem2/src/tokens/SC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SCRT.svg b/src/problem2/src/tokens/SCRT.svg new file mode 100644 index 0000000000..9451de4116 --- /dev/null +++ b/src/problem2/src/tokens/SCRT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/SDT.svg b/src/problem2/src/tokens/SDT.svg new file mode 100644 index 0000000000..222a72897f --- /dev/null +++ b/src/problem2/src/tokens/SDT.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SEI.svg b/src/problem2/src/tokens/SEI.svg new file mode 100644 index 0000000000..65ea99277e --- /dev/null +++ b/src/problem2/src/tokens/SEI.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SET.svg b/src/problem2/src/tokens/SET.svg new file mode 100644 index 0000000000..f46a6ba24f --- /dev/null +++ b/src/problem2/src/tokens/SET.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SGT.svg b/src/problem2/src/tokens/SGT.svg new file mode 100644 index 0000000000..a975dece90 --- /dev/null +++ b/src/problem2/src/tokens/SGT.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SHD.svg b/src/problem2/src/tokens/SHD.svg new file mode 100644 index 0000000000..bdb7e6c29c --- /dev/null +++ b/src/problem2/src/tokens/SHD.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SHIB.svg b/src/problem2/src/tokens/SHIB.svg new file mode 100644 index 0000000000..adbb2f009b --- /dev/null +++ b/src/problem2/src/tokens/SHIB.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SHIDO.svg b/src/problem2/src/tokens/SHIDO.svg new file mode 100644 index 0000000000..bd7deeeb4b --- /dev/null +++ b/src/problem2/src/tokens/SHIDO.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SITY.svg b/src/problem2/src/tokens/SITY.svg new file mode 100644 index 0000000000..7cfb8209bf --- /dev/null +++ b/src/problem2/src/tokens/SITY.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/SLERF.svg b/src/problem2/src/tokens/SLERF.svg new file mode 100644 index 0000000000..713f29af95 --- /dev/null +++ b/src/problem2/src/tokens/SLERF.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SNT.svg b/src/problem2/src/tokens/SNT.svg new file mode 100644 index 0000000000..cc8ad2df4c --- /dev/null +++ b/src/problem2/src/tokens/SNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SNX.svg b/src/problem2/src/tokens/SNX.svg new file mode 100644 index 0000000000..14e0591389 --- /dev/null +++ b/src/problem2/src/tokens/SNX.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOL.svg b/src/problem2/src/tokens/SOL.svg new file mode 100644 index 0000000000..0568e80881 --- /dev/null +++ b/src/problem2/src/tokens/SOL.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOLETH.svg b/src/problem2/src/tokens/SOLETH.svg new file mode 100644 index 0000000000..c7f81893f8 --- /dev/null +++ b/src/problem2/src/tokens/SOLETH.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOM.svg b/src/problem2/src/tokens/SOM.svg new file mode 100644 index 0000000000..778bf9b5c9 --- /dev/null +++ b/src/problem2/src/tokens/SOM.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/SOMM.svg b/src/problem2/src/tokens/SOMM.svg new file mode 100644 index 0000000000..fa82d261ee --- /dev/null +++ b/src/problem2/src/tokens/SOMM.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SPEC.svg b/src/problem2/src/tokens/SPEC.svg new file mode 100644 index 0000000000..75c9b37b2b --- /dev/null +++ b/src/problem2/src/tokens/SPEC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SRM.svg b/src/problem2/src/tokens/SRM.svg new file mode 100644 index 0000000000..e488de82db --- /dev/null +++ b/src/problem2/src/tokens/SRM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SRV.svg b/src/problem2/src/tokens/SRV.svg new file mode 100644 index 0000000000..b15a61c77f --- /dev/null +++ b/src/problem2/src/tokens/SRV.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/STARS.svg b/src/problem2/src/tokens/STARS.svg new file mode 100644 index 0000000000..de6d376db8 --- /dev/null +++ b/src/problem2/src/tokens/STARS.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STEEM.svg b/src/problem2/src/tokens/STEEM.svg new file mode 100644 index 0000000000..503009b90d --- /dev/null +++ b/src/problem2/src/tokens/STEEM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/STMX.svg b/src/problem2/src/tokens/STMX.svg new file mode 100644 index 0000000000..976e86474b --- /dev/null +++ b/src/problem2/src/tokens/STMX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STORJ.svg b/src/problem2/src/tokens/STORJ.svg new file mode 100644 index 0000000000..85a332a6ce --- /dev/null +++ b/src/problem2/src/tokens/STORJ.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STRAX.svg b/src/problem2/src/tokens/STRAX.svg new file mode 100644 index 0000000000..a34822931d --- /dev/null +++ b/src/problem2/src/tokens/STRAX.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STRD.svg b/src/problem2/src/tokens/STRD.svg new file mode 100644 index 0000000000..f25a48536c --- /dev/null +++ b/src/problem2/src/tokens/STRD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STREAM.svg b/src/problem2/src/tokens/STREAM.svg new file mode 100644 index 0000000000..fba4ce0609 --- /dev/null +++ b/src/problem2/src/tokens/STREAM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STRK.svg b/src/problem2/src/tokens/STRK.svg new file mode 100644 index 0000000000..22c139824d --- /dev/null +++ b/src/problem2/src/tokens/STRK.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/STT.svg b/src/problem2/src/tokens/STT.svg new file mode 100644 index 0000000000..d37590a8d3 --- /dev/null +++ b/src/problem2/src/tokens/STT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/STX.svg b/src/problem2/src/tokens/STX.svg new file mode 100644 index 0000000000..ed89fc9276 --- /dev/null +++ b/src/problem2/src/tokens/STX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SUI.svg b/src/problem2/src/tokens/SUI.svg new file mode 100644 index 0000000000..7687a88042 --- /dev/null +++ b/src/problem2/src/tokens/SUI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SUN.svg b/src/problem2/src/tokens/SUN.svg new file mode 100644 index 0000000000..1159b6cbfd --- /dev/null +++ b/src/problem2/src/tokens/SUN.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SUSHI.svg b/src/problem2/src/tokens/SUSHI.svg new file mode 100644 index 0000000000..e118f213b5 --- /dev/null +++ b/src/problem2/src/tokens/SUSHI.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SWTH-LEGACY.svg b/src/problem2/src/tokens/SWTH-LEGACY.svg new file mode 100644 index 0000000000..60ba0650e1 --- /dev/null +++ b/src/problem2/src/tokens/SWTH-LEGACY.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/SWTH.svg b/src/problem2/src/tokens/SWTH.svg new file mode 100644 index 0000000000..353c1b5bcc --- /dev/null +++ b/src/problem2/src/tokens/SWTH.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/SXP.svg b/src/problem2/src/tokens/SXP.svg new file mode 100644 index 0000000000..89fd3b147e --- /dev/null +++ b/src/problem2/src/tokens/SXP.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/TAO.svg b/src/problem2/src/tokens/TAO.svg new file mode 100644 index 0000000000..9f0dbfcf8e --- /dev/null +++ b/src/problem2/src/tokens/TAO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/TEL.svg b/src/problem2/src/tokens/TEL.svg new file mode 100644 index 0000000000..2992514bf1 --- /dev/null +++ b/src/problem2/src/tokens/TEL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/TFUEL.svg b/src/problem2/src/tokens/TFUEL.svg new file mode 100644 index 0000000000..d57d7d9493 --- /dev/null +++ b/src/problem2/src/tokens/TFUEL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/THETA.svg b/src/problem2/src/tokens/THETA.svg new file mode 100644 index 0000000000..8ff93f4019 --- /dev/null +++ b/src/problem2/src/tokens/THETA.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/THT.svg b/src/problem2/src/tokens/THT.svg new file mode 100644 index 0000000000..8ee5eb9ff3 --- /dev/null +++ b/src/problem2/src/tokens/THT.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TIA.svg b/src/problem2/src/tokens/TIA.svg new file mode 100644 index 0000000000..41d8ab96c1 --- /dev/null +++ b/src/problem2/src/tokens/TIA.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TICK.svg b/src/problem2/src/tokens/TICK.svg new file mode 100644 index 0000000000..3be70db269 --- /dev/null +++ b/src/problem2/src/tokens/TICK.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TITAN.svg b/src/problem2/src/tokens/TITAN.svg new file mode 100644 index 0000000000..d52faa138c --- /dev/null +++ b/src/problem2/src/tokens/TITAN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TLAND.svg b/src/problem2/src/tokens/TLAND.svg new file mode 100644 index 0000000000..9f9e3e2330 --- /dev/null +++ b/src/problem2/src/tokens/TLAND.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/TLM.svg b/src/problem2/src/tokens/TLM.svg new file mode 100644 index 0000000000..1fe3283fee --- /dev/null +++ b/src/problem2/src/tokens/TLM.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TOMO.svg b/src/problem2/src/tokens/TOMO.svg new file mode 100644 index 0000000000..45bda83d4b --- /dev/null +++ b/src/problem2/src/tokens/TOMO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TON.svg b/src/problem2/src/tokens/TON.svg new file mode 100644 index 0000000000..c1e0b91485 --- /dev/null +++ b/src/problem2/src/tokens/TON.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TPC.svg b/src/problem2/src/tokens/TPC.svg new file mode 100644 index 0000000000..29f8a4af8d --- /dev/null +++ b/src/problem2/src/tokens/TPC.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRAXX.svg b/src/problem2/src/tokens/TRAXX.svg new file mode 100644 index 0000000000..05c2ec0999 --- /dev/null +++ b/src/problem2/src/tokens/TRAXX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRB.svg b/src/problem2/src/tokens/TRB.svg new file mode 100644 index 0000000000..e319e65d7e --- /dev/null +++ b/src/problem2/src/tokens/TRB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRU.svg b/src/problem2/src/tokens/TRU.svg new file mode 100644 index 0000000000..29ddc8ac24 --- /dev/null +++ b/src/problem2/src/tokens/TRU.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TRUMP.svg b/src/problem2/src/tokens/TRUMP.svg new file mode 100644 index 0000000000..2571b5e20f --- /dev/null +++ b/src/problem2/src/tokens/TRUMP.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TRX.svg b/src/problem2/src/tokens/TRX.svg new file mode 100644 index 0000000000..c105ddc307 --- /dev/null +++ b/src/problem2/src/tokens/TRX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/TTT.svg b/src/problem2/src/tokens/TTT.svg new file mode 100644 index 0000000000..13e6080a8a --- /dev/null +++ b/src/problem2/src/tokens/TTT.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TUSD.svg b/src/problem2/src/tokens/TUSD.svg new file mode 100644 index 0000000000..712ec923da --- /dev/null +++ b/src/problem2/src/tokens/TUSD.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/TWD.svg b/src/problem2/src/tokens/TWD.svg new file mode 100644 index 0000000000..014f525557 --- /dev/null +++ b/src/problem2/src/tokens/TWD.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/TWT.svg b/src/problem2/src/tokens/TWT.svg new file mode 100644 index 0000000000..b67bf37535 --- /dev/null +++ b/src/problem2/src/tokens/TWT.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/Token.svg b/src/problem2/src/tokens/Token.svg new file mode 100644 index 0000000000..bed64e2942 --- /dev/null +++ b/src/problem2/src/tokens/Token.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UBQ.svg b/src/problem2/src/tokens/UBQ.svg new file mode 100644 index 0000000000..139af049ce --- /dev/null +++ b/src/problem2/src/tokens/UBQ.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/UMEE.svg b/src/problem2/src/tokens/UMEE.svg new file mode 100644 index 0000000000..f9243257df --- /dev/null +++ b/src/problem2/src/tokens/UMEE.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UNA.svg b/src/problem2/src/tokens/UNA.svg new file mode 100644 index 0000000000..077c1555e7 --- /dev/null +++ b/src/problem2/src/tokens/UNA.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/UNI.svg b/src/problem2/src/tokens/UNI.svg new file mode 100644 index 0000000000..37996b6c05 --- /dev/null +++ b/src/problem2/src/tokens/UNI.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UOS.svg b/src/problem2/src/tokens/UOS.svg new file mode 100644 index 0000000000..eb07c3cce8 --- /dev/null +++ b/src/problem2/src/tokens/UOS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/USC-Minted.svg b/src/problem2/src/tokens/USC-Minted.svg new file mode 100644 index 0000000000..466cda74f0 --- /dev/null +++ b/src/problem2/src/tokens/USC-Minted.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USC.svg b/src/problem2/src/tokens/USC.svg new file mode 100644 index 0000000000..32bd9541f5 --- /dev/null +++ b/src/problem2/src/tokens/USC.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USD.svg b/src/problem2/src/tokens/USD.svg new file mode 100644 index 0000000000..abf67ab105 --- /dev/null +++ b/src/problem2/src/tokens/USD.svg @@ -0,0 +1,8 @@ + + + Token Symbol/USD + + + + + \ No newline at end of file diff --git a/src/problem2/src/tokens/USDC-dATOM.svg b/src/problem2/src/tokens/USDC-dATOM.svg new file mode 100644 index 0000000000..7202b50ae7 --- /dev/null +++ b/src/problem2/src/tokens/USDC-dATOM.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USDC.e.svg b/src/problem2/src/tokens/USDC.e.svg new file mode 100644 index 0000000000..eee4251a7b --- /dev/null +++ b/src/problem2/src/tokens/USDC.e.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/USDC.grv.svg b/src/problem2/src/tokens/USDC.grv.svg new file mode 100644 index 0000000000..458ab4901a --- /dev/null +++ b/src/problem2/src/tokens/USDC.grv.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USDC.svg b/src/problem2/src/tokens/USDC.svg new file mode 100644 index 0000000000..eee4251a7b --- /dev/null +++ b/src/problem2/src/tokens/USDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/USDP.svg b/src/problem2/src/tokens/USDP.svg new file mode 100644 index 0000000000..b7e76ff9d1 --- /dev/null +++ b/src/problem2/src/tokens/USDP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USDT.svg b/src/problem2/src/tokens/USDT.svg new file mode 100644 index 0000000000..8b3986d057 --- /dev/null +++ b/src/problem2/src/tokens/USDT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/USDY.svg b/src/problem2/src/tokens/USDY.svg new file mode 100644 index 0000000000..118da5939c --- /dev/null +++ b/src/problem2/src/tokens/USDY.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/USK.svg b/src/problem2/src/tokens/USK.svg new file mode 100644 index 0000000000..15ba03fe9d --- /dev/null +++ b/src/problem2/src/tokens/USK.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/UST.svg b/src/problem2/src/tokens/UST.svg new file mode 100644 index 0000000000..2a0a597074 --- /dev/null +++ b/src/problem2/src/tokens/UST.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/USUAL.svg b/src/problem2/src/tokens/USUAL.svg new file mode 100644 index 0000000000..1bdf52827d --- /dev/null +++ b/src/problem2/src/tokens/USUAL.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/VDL.svg b/src/problem2/src/tokens/VDL.svg new file mode 100644 index 0000000000..d839e0da4d --- /dev/null +++ b/src/problem2/src/tokens/VDL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/VET.svg b/src/problem2/src/tokens/VET.svg new file mode 100644 index 0000000000..88ebf982a5 --- /dev/null +++ b/src/problem2/src/tokens/VET.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/VIRTUAL.svg b/src/problem2/src/tokens/VIRTUAL.svg new file mode 100644 index 0000000000..7d623039a9 --- /dev/null +++ b/src/problem2/src/tokens/VIRTUAL.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/VKR.svg b/src/problem2/src/tokens/VKR.svg new file mode 100644 index 0000000000..cb3c68d595 --- /dev/null +++ b/src/problem2/src/tokens/VKR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/VRTX.svg b/src/problem2/src/tokens/VRTX.svg new file mode 100644 index 0000000000..8cb3dc30ef --- /dev/null +++ b/src/problem2/src/tokens/VRTX.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/W.svg b/src/problem2/src/tokens/W.svg new file mode 100644 index 0000000000..95823f2252 --- /dev/null +++ b/src/problem2/src/tokens/W.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WAL.svg b/src/problem2/src/tokens/WAL.svg new file mode 100644 index 0000000000..8d06c07e14 --- /dev/null +++ b/src/problem2/src/tokens/WAL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WAVAX.svg b/src/problem2/src/tokens/WAVAX.svg new file mode 100644 index 0000000000..e244ad3aa6 --- /dev/null +++ b/src/problem2/src/tokens/WAVAX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WAVE.svg b/src/problem2/src/tokens/WAVE.svg new file mode 100644 index 0000000000..2ca6ac0708 --- /dev/null +++ b/src/problem2/src/tokens/WAVE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WBNB.svg b/src/problem2/src/tokens/WBNB.svg new file mode 100644 index 0000000000..e45c696b5c --- /dev/null +++ b/src/problem2/src/tokens/WBNB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WBTC.svg b/src/problem2/src/tokens/WBTC.svg new file mode 100644 index 0000000000..b597b84a4a --- /dev/null +++ b/src/problem2/src/tokens/WBTC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/WETH.svg b/src/problem2/src/tokens/WETH.svg new file mode 100644 index 0000000000..cba6f1d783 --- /dev/null +++ b/src/problem2/src/tokens/WETH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WHALE.svg b/src/problem2/src/tokens/WHALE.svg new file mode 100644 index 0000000000..a42a2449d8 --- /dev/null +++ b/src/problem2/src/tokens/WHALE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/WIF.svg b/src/problem2/src/tokens/WIF.svg new file mode 100644 index 0000000000..6df4ea15a2 --- /dev/null +++ b/src/problem2/src/tokens/WIF.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WIN.svg b/src/problem2/src/tokens/WIN.svg new file mode 100644 index 0000000000..bc2435409b --- /dev/null +++ b/src/problem2/src/tokens/WIN.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/WLD.svg b/src/problem2/src/tokens/WLD.svg new file mode 100644 index 0000000000..62191032d6 --- /dev/null +++ b/src/problem2/src/tokens/WLD.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/WMATIC.svg b/src/problem2/src/tokens/WMATIC.svg new file mode 100644 index 0000000000..ba0630b510 --- /dev/null +++ b/src/problem2/src/tokens/WMATIC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/WMNT.svg b/src/problem2/src/tokens/WMNT.svg new file mode 100644 index 0000000000..8b8784b36a --- /dev/null +++ b/src/problem2/src/tokens/WMNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/WMON.png b/src/problem2/src/tokens/WMON.png new file mode 100644 index 0000000000000000000000000000000000000000..452cae24b2c588ca08de28a09ee5ed1a99d599e6 GIT binary patch literal 826 zcmV-A1I7G_P)JyI+|hhb^x;`Js-NNz}Q3Is?XrH4=vpullw zH#z+32AS& z@=uMO1wYoF3~KyGgY!XOd7Z4q6p-b}*elVCRGLA)BtfAlLB9uZ(6OQQ)tRUP(SBBK zTwEV1aAQtk0mwuzXR-_)R1~+x{O&hV)OOj?R62$HwC#SPsIkrP@wHdk^= z=qpL4!#oTbFAc<-LE*xpJc{{2+lC*XZP(f;sG7cUuYAxOsCDda?6)Ab3k(i_@% literal 0 HcmV?d00001 diff --git a/src/problem2/src/tokens/WRX.svg b/src/problem2/src/tokens/WRX.svg new file mode 100644 index 0000000000..543f570909 --- /dev/null +++ b/src/problem2/src/tokens/WRX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/XCAD.svg b/src/problem2/src/tokens/XCAD.svg new file mode 100644 index 0000000000..545a88d1b9 --- /dev/null +++ b/src/problem2/src/tokens/XCAD.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/XDC.svg b/src/problem2/src/tokens/XDC.svg new file mode 100644 index 0000000000..c90381022e --- /dev/null +++ b/src/problem2/src/tokens/XDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/XEM.svg b/src/problem2/src/tokens/XEM.svg new file mode 100644 index 0000000000..da54e72a22 --- /dev/null +++ b/src/problem2/src/tokens/XEM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XKI.svg b/src/problem2/src/tokens/XKI.svg new file mode 100644 index 0000000000..dd5fea7cf0 --- /dev/null +++ b/src/problem2/src/tokens/XKI.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XLM.svg b/src/problem2/src/tokens/XLM.svg new file mode 100644 index 0000000000..d836619c15 --- /dev/null +++ b/src/problem2/src/tokens/XLM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XMR.svg b/src/problem2/src/tokens/XMR.svg new file mode 100644 index 0000000000..475a95cb7d --- /dev/null +++ b/src/problem2/src/tokens/XMR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XPRT.svg b/src/problem2/src/tokens/XPRT.svg new file mode 100644 index 0000000000..7ecd4ace95 --- /dev/null +++ b/src/problem2/src/tokens/XPRT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/XRP.svg b/src/problem2/src/tokens/XRP.svg new file mode 100644 index 0000000000..b3d441bf40 --- /dev/null +++ b/src/problem2/src/tokens/XRP.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XSGD.svg b/src/problem2/src/tokens/XSGD.svg new file mode 100644 index 0000000000..f04caab93b --- /dev/null +++ b/src/problem2/src/tokens/XSGD.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/XTRA.svg b/src/problem2/src/tokens/XTRA.svg new file mode 100644 index 0000000000..1c6367d3be --- /dev/null +++ b/src/problem2/src/tokens/XTRA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/tokens/XTZ.svg b/src/problem2/src/tokens/XTZ.svg new file mode 100644 index 0000000000..28b924e5c7 --- /dev/null +++ b/src/problem2/src/tokens/XTZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XVG.svg b/src/problem2/src/tokens/XVG.svg new file mode 100644 index 0000000000..537378cff6 --- /dev/null +++ b/src/problem2/src/tokens/XVG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/XVS.svg b/src/problem2/src/tokens/XVS.svg new file mode 100644 index 0000000000..3176f9fb66 --- /dev/null +++ b/src/problem2/src/tokens/XVS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/YAKI.svg b/src/problem2/src/tokens/YAKI.svg new file mode 100644 index 0000000000..5179eb95aa --- /dev/null +++ b/src/problem2/src/tokens/YAKI.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/YAM.svg b/src/problem2/src/tokens/YAM.svg new file mode 100644 index 0000000000..2e8a654216 --- /dev/null +++ b/src/problem2/src/tokens/YAM.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/YFI.svg b/src/problem2/src/tokens/YFI.svg new file mode 100644 index 0000000000..b7674608b7 --- /dev/null +++ b/src/problem2/src/tokens/YFI.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/YieldUSD.svg b/src/problem2/src/tokens/YieldUSD.svg new file mode 100644 index 0000000000..e435a687c9 --- /dev/null +++ b/src/problem2/src/tokens/YieldUSD.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZCH.svg b/src/problem2/src/tokens/ZCH.svg new file mode 100644 index 0000000000..1e9d4250d4 --- /dev/null +++ b/src/problem2/src/tokens/ZCH.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/ZEC.svg b/src/problem2/src/tokens/ZEC.svg new file mode 100644 index 0000000000..b6b86dcc1d --- /dev/null +++ b/src/problem2/src/tokens/ZEC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZEN.svg b/src/problem2/src/tokens/ZEN.svg new file mode 100644 index 0000000000..b305169acb --- /dev/null +++ b/src/problem2/src/tokens/ZEN.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZIL.svg b/src/problem2/src/tokens/ZIL.svg new file mode 100644 index 0000000000..c89e8ce16f --- /dev/null +++ b/src/problem2/src/tokens/ZIL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/ZRO.svg b/src/problem2/src/tokens/ZRO.svg new file mode 100644 index 0000000000..e485e3b2ab --- /dev/null +++ b/src/problem2/src/tokens/ZRO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ZRX.svg b/src/problem2/src/tokens/ZRX.svg new file mode 100644 index 0000000000..f42e914a6a --- /dev/null +++ b/src/problem2/src/tokens/ZRX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/tokens/ZWAP.svg b/src/problem2/src/tokens/ZWAP.svg new file mode 100644 index 0000000000..130d14d73b --- /dev/null +++ b/src/problem2/src/tokens/ZWAP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/ampKUJI.svg b/src/problem2/src/tokens/ampKUJI.svg new file mode 100644 index 0000000000..2692787da5 --- /dev/null +++ b/src/problem2/src/tokens/ampKUJI.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ampLUNA.svg b/src/problem2/src/tokens/ampLUNA.svg new file mode 100644 index 0000000000..ebeab58687 --- /dev/null +++ b/src/problem2/src/tokens/ampLUNA.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/axlUSDC.svg b/src/problem2/src/tokens/axlUSDC.svg new file mode 100644 index 0000000000..fc879f679a --- /dev/null +++ b/src/problem2/src/tokens/axlUSDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/bCFX.svg b/src/problem2/src/tokens/bCFX.svg new file mode 100644 index 0000000000..07e8c434db --- /dev/null +++ b/src/problem2/src/tokens/bCFX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/bNEO.svg b/src/problem2/src/tokens/bNEO.svg new file mode 100644 index 0000000000..561b2282d8 --- /dev/null +++ b/src/problem2/src/tokens/bNEO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/beraSTONE.svg b/src/problem2/src/tokens/beraSTONE.svg new file mode 100644 index 0000000000..3da255f504 --- /dev/null +++ b/src/problem2/src/tokens/beraSTONE.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/cUSD.svg b/src/problem2/src/tokens/cUSD.svg new file mode 100644 index 0000000000..33407ebc96 --- /dev/null +++ b/src/problem2/src/tokens/cUSD.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/cbBTC.svg b/src/problem2/src/tokens/cbBTC.svg new file mode 100644 index 0000000000..77fee5c013 --- /dev/null +++ b/src/problem2/src/tokens/cbBTC.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/cbETH.svg b/src/problem2/src/tokens/cbETH.svg new file mode 100644 index 0000000000..5a18b92644 --- /dev/null +++ b/src/problem2/src/tokens/cbETH.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/cmETH.svg b/src/problem2/src/tokens/cmETH.svg new file mode 100644 index 0000000000..0a82791d04 --- /dev/null +++ b/src/problem2/src/tokens/cmETH.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dATOM.svg b/src/problem2/src/tokens/dATOM.svg new file mode 100644 index 0000000000..b73e04155e --- /dev/null +++ b/src/problem2/src/tokens/dATOM.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dGLP.svg b/src/problem2/src/tokens/dGLP.svg new file mode 100644 index 0000000000..84cac9cdeb --- /dev/null +++ b/src/problem2/src/tokens/dGLP.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dINJ.svg b/src/problem2/src/tokens/dINJ.svg new file mode 100644 index 0000000000..05b1763cc2 --- /dev/null +++ b/src/problem2/src/tokens/dINJ.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/dXCAD.svg b/src/problem2/src/tokens/dXCAD.svg new file mode 100644 index 0000000000..881f50fd02 --- /dev/null +++ b/src/problem2/src/tokens/dXCAD.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/eGLD.svg b/src/problem2/src/tokens/eGLD.svg new file mode 100644 index 0000000000..e42ad2510e --- /dev/null +++ b/src/problem2/src/tokens/eGLD.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/ePLAY.svg b/src/problem2/src/tokens/ePLAY.svg new file mode 100644 index 0000000000..bae2577420 --- /dev/null +++ b/src/problem2/src/tokens/ePLAY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/esFLUO.svg b/src/problem2/src/tokens/esFLUO.svg new file mode 100644 index 0000000000..0b69ed3189 --- /dev/null +++ b/src/problem2/src/tokens/esFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/gZIL.svg b/src/problem2/src/tokens/gZIL.svg new file mode 100644 index 0000000000..27334389ba --- /dev/null +++ b/src/problem2/src/tokens/gZIL.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/iSEI.svg b/src/problem2/src/tokens/iSEI.svg new file mode 100644 index 0000000000..246b86f8a1 --- /dev/null +++ b/src/problem2/src/tokens/iSEI.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/tokens/iUSD.svg b/src/problem2/src/tokens/iUSD.svg new file mode 100644 index 0000000000..ca263a0474 --- /dev/null +++ b/src/problem2/src/tokens/iUSD.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/mETH.svg b/src/problem2/src/tokens/mETH.svg new file mode 100644 index 0000000000..6d6d5d0762 --- /dev/null +++ b/src/problem2/src/tokens/mETH.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/milkTIA.svg b/src/problem2/src/tokens/milkTIA.svg new file mode 100644 index 0000000000..d595abfa30 --- /dev/null +++ b/src/problem2/src/tokens/milkTIA.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/nLEND.svg b/src/problem2/src/tokens/nLEND.svg new file mode 100644 index 0000000000..d5c91b274f --- /dev/null +++ b/src/problem2/src/tokens/nLEND.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/nNEO.svg b/src/problem2/src/tokens/nNEO.svg new file mode 100644 index 0000000000..d4a90e1b27 --- /dev/null +++ b/src/problem2/src/tokens/nNEO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/rATOM.svg b/src/problem2/src/tokens/rATOM.svg new file mode 100644 index 0000000000..8cd5f8056f --- /dev/null +++ b/src/problem2/src/tokens/rATOM.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/rSWTH.svg b/src/problem2/src/tokens/rSWTH.svg new file mode 100644 index 0000000000..d5250ff90d --- /dev/null +++ b/src/problem2/src/tokens/rSWTH.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/sARCH.svg b/src/problem2/src/tokens/sARCH.svg new file mode 100644 index 0000000000..3ec2b656f0 --- /dev/null +++ b/src/problem2/src/tokens/sARCH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stATOM.svg b/src/problem2/src/tokens/stATOM.svg new file mode 100644 index 0000000000..c3e505f8b3 --- /dev/null +++ b/src/problem2/src/tokens/stATOM.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stDYDX.svg b/src/problem2/src/tokens/stDYDX.svg new file mode 100644 index 0000000000..6d851637a8 --- /dev/null +++ b/src/problem2/src/tokens/stDYDX.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/tokens/stDYM.svg b/src/problem2/src/tokens/stDYM.svg new file mode 100644 index 0000000000..d961755725 --- /dev/null +++ b/src/problem2/src/tokens/stDYM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stETH.svg b/src/problem2/src/tokens/stETH.svg new file mode 100644 index 0000000000..8c490e47f0 --- /dev/null +++ b/src/problem2/src/tokens/stETH.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stEVMOS.svg b/src/problem2/src/tokens/stEVMOS.svg new file mode 100644 index 0000000000..a2a8888208 --- /dev/null +++ b/src/problem2/src/tokens/stEVMOS.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/problem2/src/tokens/stFLUO.svg b/src/problem2/src/tokens/stFLUO.svg new file mode 100644 index 0000000000..bf182c96de --- /dev/null +++ b/src/problem2/src/tokens/stFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stIBCX.svg b/src/problem2/src/tokens/stIBCX.svg new file mode 100644 index 0000000000..8a10d241d5 --- /dev/null +++ b/src/problem2/src/tokens/stIBCX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/stINJ.svg b/src/problem2/src/tokens/stINJ.svg new file mode 100644 index 0000000000..6b97bec4f7 --- /dev/null +++ b/src/problem2/src/tokens/stINJ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/stJUNO.svg b/src/problem2/src/tokens/stJUNO.svg new file mode 100644 index 0000000000..8d92f375c6 --- /dev/null +++ b/src/problem2/src/tokens/stJUNO.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/stLUNA.svg b/src/problem2/src/tokens/stLUNA.svg new file mode 100644 index 0000000000..606be7947d --- /dev/null +++ b/src/problem2/src/tokens/stLUNA.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/problem2/src/tokens/stOKT.svg b/src/problem2/src/tokens/stOKT.svg new file mode 100644 index 0000000000..33b541d11d --- /dev/null +++ b/src/problem2/src/tokens/stOKT.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/stOSMO.svg b/src/problem2/src/tokens/stOSMO.svg new file mode 100644 index 0000000000..73d296046b --- /dev/null +++ b/src/problem2/src/tokens/stOSMO.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stSAGA.svg b/src/problem2/src/tokens/stSAGA.svg new file mode 100644 index 0000000000..d6092fc7cf --- /dev/null +++ b/src/problem2/src/tokens/stSAGA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/stSTARS.svg b/src/problem2/src/tokens/stSTARS.svg new file mode 100644 index 0000000000..ffc7def96a --- /dev/null +++ b/src/problem2/src/tokens/stSTARS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/stTIA.svg b/src/problem2/src/tokens/stTIA.svg new file mode 100644 index 0000000000..3d3e28470d --- /dev/null +++ b/src/problem2/src/tokens/stTIA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/tokens/stZIL.svg b/src/problem2/src/tokens/stZIL.svg new file mode 100644 index 0000000000..81323f746a --- /dev/null +++ b/src/problem2/src/tokens/stZIL.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/tokens/stkATOM.svg b/src/problem2/src/tokens/stkATOM.svg new file mode 100644 index 0000000000..1e6c7a2b2c --- /dev/null +++ b/src/problem2/src/tokens/stkATOM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stkDYDX.svg b/src/problem2/src/tokens/stkDYDX.svg new file mode 100644 index 0000000000..2d2883a9e6 --- /dev/null +++ b/src/problem2/src/tokens/stkDYDX.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/stkSTARS.svg b/src/problem2/src/tokens/stkSTARS.svg new file mode 100644 index 0000000000..97e87da6ea --- /dev/null +++ b/src/problem2/src/tokens/stkSTARS.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/vZWAP.svg b/src/problem2/src/tokens/vZWAP.svg new file mode 100644 index 0000000000..0874b89e8b --- /dev/null +++ b/src/problem2/src/tokens/vZWAP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/veFLUO.svg b/src/problem2/src/tokens/veFLUO.svg new file mode 100644 index 0000000000..3624b5647a --- /dev/null +++ b/src/problem2/src/tokens/veFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/tokens/wKAS.svg b/src/problem2/src/tokens/wKAS.svg new file mode 100644 index 0000000000..14185747c5 --- /dev/null +++ b/src/problem2/src/tokens/wKAS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/tokens/wstETH.svg b/src/problem2/src/tokens/wstETH.svg new file mode 100644 index 0000000000..15c8a9716e --- /dev/null +++ b/src/problem2/src/tokens/wstETH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/types/index.ts b/src/problem2/src/types/index.ts new file mode 100644 index 0000000000..8ae77d24b0 --- /dev/null +++ b/src/problem2/src/types/index.ts @@ -0,0 +1,10 @@ +export interface Token { + symbol: string; + name: string; + icon: string; + balance: number; + price: number; +} + +export type SwapSide = 'from' | 'to'; +export type OrderType = 'market' | 'limit'; diff --git a/src/problem2/src/utils/cn.ts b/src/problem2/src/utils/cn.ts new file mode 100644 index 0000000000..d084ccade0 --- /dev/null +++ b/src/problem2/src/utils/cn.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/src/problem2/src/utils/index.ts b/src/problem2/src/utils/index.ts new file mode 100644 index 0000000000..963c6b2f4b --- /dev/null +++ b/src/problem2/src/utils/index.ts @@ -0,0 +1 @@ +export * from "./cn"; diff --git a/src/problem2/src/vite-env.d.ts b/src/problem2/src/vite-env.d.ts new file mode 100644 index 0000000000..11f02fe2a0 --- /dev/null +++ b/src/problem2/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/problem2/tailwind.config.js b/src/problem2/tailwind.config.js new file mode 100644 index 0000000000..fe883408cc --- /dev/null +++ b/src/problem2/tailwind.config.js @@ -0,0 +1,29 @@ +import tailwindAnimate from 'tailwindcss-animate'; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: { + colors: { + primary: '#FCD535', + background: '#1E2329', + 'background-secondary': '#2B3139', + 'text-primary': '#EAECEF', + 'text-secondary': '#929AA5', + success: '#0ECB81', + danger: '#F6465D', + warning: '#F0B90B', + }, + fontFamily: { + sans: ['Inter', 'Roboto', 'sans-serif'], + }, + }, + }, + plugins: [ + tailwindAnimate + ], +} diff --git a/src/problem2/tsconfig.app.json b/src/problem2/tsconfig.app.json new file mode 100644 index 0000000000..211de142e3 --- /dev/null +++ b/src/problem2/tsconfig.app.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src"] +} diff --git a/src/problem2/tsconfig.json b/src/problem2/tsconfig.json new file mode 100644 index 0000000000..1ffef600d9 --- /dev/null +++ b/src/problem2/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/src/problem2/tsconfig.node.json b/src/problem2/tsconfig.node.json new file mode 100644 index 0000000000..0d3d71446a --- /dev/null +++ b/src/problem2/tsconfig.node.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/src/problem2/vite.config.ts b/src/problem2/vite.config.ts new file mode 100644 index 0000000000..e2f45a76bf --- /dev/null +++ b/src/problem2/vite.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import path from 'path' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, +}) From 43900bde9478a16d689bab46def6572ca89d438b Mon Sep 17 00:00:00 2001 From: ngochieu276 Date: Mon, 4 May 2026 12:41:27 +0700 Subject: [PATCH 3/3] problem 3 solution --- src/problem3/index.tsx | 84 +++++++++++++++++++ .../inefficiencies-and-anti-patterns.MD | 47 +++++++++++ 2 files changed, 131 insertions(+) create mode 100644 src/problem3/index.tsx create mode 100644 src/problem3/inefficiencies-and-anti-patterns.MD diff --git a/src/problem3/index.tsx b/src/problem3/index.tsx new file mode 100644 index 0000000000..8b0aab2503 --- /dev/null +++ b/src/problem3/index.tsx @@ -0,0 +1,84 @@ +interface WalletBalance { + currency: string; + amount: number; + // Added missing property + blockchain: string; +} +interface FormattedWalletBalance { + currency: string; + amount: number; + formatted: string; +} + +interface BoxProps {} + +interface Props extends BoxProps {} + +// Extracted Priority Logic (Avoids re-declaring on every render) +const PRIORITY_MAP: Record = { + Osmosis: 100, + Ethereum: 50, + Arbitrum: 30, + Zilliqa: 20, + Neo: 20, +}; + +const getPriority = (blockchain: string): number => { + // fix any type + return PRIORITY_MAP[blockchain] ?? -99; +}; + +const WalletPage: React.FC = (props: Props) => { + const { children, ...rest } = props; + const balances = useWalletBalances(); + const prices = usePrices(); + + const formattedBalances = useMemo(() => { + return balances + .filter((balance: WalletBalance) => { + const balancePriority = getPriority(balance.blockchain); + // Fixed logic to show positive balances + if (balancePriority > -99) { + if (balance.amount <= 0) { + return true; + } + } + return false; + }) + .sort((lhs: WalletBalance, rhs: WalletBalance) => { + const leftPriority = getPriority(lhs.blockchain); + const rightPriority = getPriority(rhs.blockchain); + if (leftPriority > rightPriority) { + return -1; + } else if (rightPriority > leftPriority) { + return 1; + } + }) + .map( + (balance: WalletBalance): FormattedWalletBalance => ({ + ...balance, + formatted: balance.amount.toFixed(), + }), + ); + }, [balances]); + // Removed 'prices' dependency + + const rows = formattedBalances.map( + // Clean Mapping + (balance: FormattedWalletBalance, index: number) => { + const usdValue = prices[balance.currency] * balance.amount; + return ( + + ); + }, + ); + + return
{rows}
; +}; diff --git a/src/problem3/inefficiencies-and-anti-patterns.MD b/src/problem3/inefficiencies-and-anti-patterns.MD new file mode 100644 index 0000000000..4d5f4dab53 --- /dev/null +++ b/src/problem3/inefficiencies-and-anti-patterns.MD @@ -0,0 +1,47 @@ +1. Logic Errors + + - "lhsPriority" is undefined, should be "balancePriority" + + - this code below is wrong in logic: + if (balance.amount <= 0) { + return true; + } + + issues: the logic is wrong, it should be "balance.amount > 0" + correct: balance.amount > 0 is right logic + + - this code below is wrong in logic: + rows = sortedBalances.map((balance: FormattedWalletBalance, index: number)) => {} + + issues: rows constant maps over sortedBalances, but the type is declared as FormattedWalletBalance. However, sortedBalances hasn't been formatted yet; that happens in formattedBalances + correct: + rows = formattedBalances.map((balance: FormattedWalletBalance, index: number)) => {} + + +2. Performance Inefficiencies + + - Unnecessary Dependency, in code below: + const sortedBalances = useMemo(() => { + return balances.filter((balance: WalletBalance) => { + ... + }); + }, [balances, prices]); + + issues: useMemo for sortedBalances depends on prices, but prices are never used inside that calculation. This causes the entire list to re-sort whenever price data updates + correct: Remove prices from the dependency array + + - constant re-declaration of PRIORITY_MAP: + + issues: PRIORITY_MAP is a constant that doesn't change. + correct: Declare it outside the component to avoid re-declaring it on every render. + + - overuse iteration: map over the data three times (filter/sort, then map for formatting, then map for rows) + + - Hardcoded Keys: Using index as a key in React is an anti-pattern when the list can be re-sorted or filtered. It leads to UI glitches and poor performance. Use a unique identifier (like currency). + + + + 3. Typescript Anti-patterns + + - Usage of any + - Missing Interface Properties: The WalletBalance interface is missing the blockchain property, yet the code attempts to access balance.blockchain