From e2d8f3effd435b9dd0f4231b95434bd5eb98130a Mon Sep 17 00:00:00 2001 From: Purp1e <47248616+Purple-CSGO@users.noreply.github.com> Date: Tue, 25 Mar 2025 00:40:32 +0800 Subject: [PATCH] [feat] fix notice + add tooltips --- README.md | 217 +------------------------- bun.lockb | Bin 374979 -> 417830 bytes package.json | 2 + src-tauri/tauri.conf.json | 2 +- src/app/(main)/home/page.tsx | 3 +- src/app/(main)/preference/layout.tsx | 5 +- src/components/cstb/LaunchOption.tsx | 12 +- src/components/cstb/Notice.tsx | 52 ++++--- src/components/cstb/SmartTranser.tsx | 39 ++--- src/components/cstb/VideoSetting.tsx | 225 ++++++++++++++------------- src/components/markdown/index.tsx | 27 ++++ src/components/window/Nav.tsx | 81 ++++++---- src/store/steam.ts | 2 - 13 files changed, 268 insertions(+), 399 deletions(-) create mode 100644 src/components/markdown/index.tsx diff --git a/README.md b/README.md index 3fdbfc9..1d298d6 100644 --- a/README.md +++ b/README.md @@ -1,216 +1,3 @@ -# Tauri + Next.js Template +# CS工具箱 -![Tauri window screenshot](public/tauri-nextjs-template_screenshot.png) - -This is a [Tauri](https://tauri.app/) project template using [Next.js](https://nextjs.org/), -bootstrapped by combining [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) -and [`create tauri-app`](https://tauri.app/v1/guides/getting-started/setup). - -This template uses [`pnpm`](https://pnpm.io/) as the Node.js dependency -manager. - -## Template Features - -- TypeScript frontend using Next.js React framework -- [TailwindCSS](https://tailwindcss.com/) as a utility-first atomic CSS framework - - The example page in this template app has been updated to use only TailwindCSS - - While not included by default, consider using - [React Aria components](https://react-spectrum.adobe.com/react-aria/index.html) - and/or [HeadlessUI components](https://headlessui.com/) for completely unstyled and - fully accessible UI components, which integrate nicely with TailwindCSS -- Opinionated formatting and linting already setup and enabled - - [ESLint](https://eslint.org/) for pure React + TypeScript linting, and - [Biome](https://biomejs.dev/) for a combination of fast formatting, linting, and - import sorting of JavaScript and TypeScript code - - [clippy](https://github.com/rust-lang/rust-clippy) and - [rustfmt](https://github.com/rust-lang/rustfmt) for Rust code -- GitHub Actions to check code formatting and linting for both TypeScript and Rust - -## Getting Started - -### Running development server and use Tauri window - -After cloning for the first time, set up git pre-commit hooks: - -```shell -pnpm prepare -``` - -To develop and run the frontend in a Tauri window: - -```shell -pnpm dev -``` - -This will load the Next.js frontend directly in a Tauri webview window, in addition to -starting a development server on `localhost:3000`. - -### Building for release - -To export the Next.js frontend via SSG and build the Tauri application for release: - -```shell -pnpm build -``` - -Please remember to change the bundle identifier in -`tauri.conf.json > tauri > bundle > identifier`, as the default value will yield an -error that prevents you from building the application for release. - -### Source structure - -Next.js frontend source files are located in `src/` and Tauri Rust application source -files are located in `src-tauri/`. Please consult the Next.js and Tauri documentation -respectively for questions pertaining to either technology. - -## Caveats - -### Static Site Generation / Pre-rendering - -Next.js is a great React frontend framework which supports server-side rendering (SSR) -as well as static site generation (SSG or pre-rendering). For the purposes of creating a -Tauri frontend, only SSG can be used since SSR requires an active Node.js server. - -Using Next.js and SSG helps to provide a quick and performant single-page-application -(SPA) frontend experience. More information regarding this can be found here: -https://nextjs.org/docs/basic-features/pages#pre-rendering - -### `next/image` - -The [`next/image` component](https://nextjs.org/docs/basic-features/image-optimization) -is an enhancement over the regular `` HTML element with additional optimizations -built in. However, because we are not deploying the frontend onto Vercel directly, some -optimizations must be disabled to properly build and export the frontend via SSG. -As such, the -[`unoptimized` property](https://nextjs.org/docs/api-reference/next/image#unoptimized) -is set to true for the `next/image` component in the `next.config.js` configuration. -This will allow the image to be served as-is from source, without -changes to its quality, size, or format. - -### error[E0554]: `#![feature]` may not be used on the stable release channel - -If you are getting this issue when trying to run `pnpm tauri dev`, it may be that you -have a newer version of a Rust dependency that uses an unstable feature. -`pnpm tauri build` should still work for production builds, but to get the dev command -working, either downgrade the dependency or use Rust nightly via -`rustup override set nightly`. - -### ReferenceError: navigator is not defined - -If you are using Tauri's `invoke` function or any OS related Tauri function from within -JavaScript, you may encounter this error when importing the function in a global, -non-browser context. This is due to the nature of Next.js' dev server effectively -running a Node.js server for SSR and hot module replacement (HMR), and Node.js does not -have a notion of `window` or `navigator`. - -#### Solution 1 - Dependency Injection (may not always work) - -Make sure that you are calling these functions within the browser context, e.g. within a -React component inside a `useEffect` hook when the DOM actually exists by then. If you -are trying to use a Tauri function in a generalized utility source file, a workaround is -to use dependency injection for the function itself to delay the actual importing of the -real function (see example below for more info). - -Example using Tauri's `invoke` function: - -`src/lib/some_tauri_functions.ts` (problematic) - -```typescript -// Generalized file containing all the invoke functions we need to fetch data from Rust -import { invoke } from "@tauri-apps/api/tauri" - -const loadFoo = (): Promise => { - return invoke("invoke_handler_foo") -} - -const loadBar = (): Promise => { - return invoke("invoke_handler_bar") -} - -const loadBaz = (): Promise => { - return invoke("invoke_handler_baz") -} - -// and so on ... -``` - -`src/lib/some_tauri_functions.ts` (fixed) - -```typescript -// Generalized file containing all the invoke functions we need to fetch data from Rust -// -// We apply the idea of dependency injection to use a supplied invoke function as a -// function argument, rather than directly referencing the Tauri invoke function. -// Hence, don't import invoke globally in this file. -// -// import { invoke } from "@tauri-apps/api/tauri" <-- remove this! -// - -import { InvokeArgs } from "@tauri-apps/api/tauri" -type InvokeFunction = (cmd: string, args?: InvokeArgs | undefined) => Promise - -const loadFoo = (invoke: InvokeFunction): Promise => { - return invoke("invoke_handler_foo") -} - -const loadBar = (invoke: InvokeFunction): Promise => { - return invoke("invoke_handler_bar") -} - -const loadBaz = (invoke: InvokeFunction): Promise => { - return invoke("invoke_handler_baz") -} - -// and so on ... -``` - -Then, when using `loadFoo`/`loadBar`/`loadBaz` within your React components, import the -invoke function from `@tauri-apps/api` and pass `invoke` into the loadXXX function as -the `InvokeFunction` argument. This should allow the actual Tauri API to be bundled -only within the context of a React component, so it should not be loaded by Next.js upon -initial startup until the browser has finished loading the page. - -#### Solution 2: Wrap Tauri API behind dynamic `import()` - -Since the Tauri API needs to read from the browser's `window` and `navigator` object, -this data does not exist in a Node.js and hence SSR environment. One can create an -exported function that wraps the Tauri API behind a dynamic runtime `import()` call. - -Example: create a `src/lib/tauri.ts` to re-export `invoke` - -```typescript -import type { InvokeArgs } from "@tauri-apps/api/tauri" - -const isNode = (): boolean => - Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === - "[object process]" - -export async function invoke( - cmd: string, - args?: InvokeArgs | undefined, -): Promise { - if (isNode()) { - // This shouldn't ever happen when React fully loads - return Promise.resolve(undefined as unknown as T) - } - const tauriAppsApi = await import("@tauri-apps/api") - const tauriInvoke = tauriAppsApi.invoke - return tauriInvoke(cmd, args) -} -``` - -Then, instead of importing `import { invoke } from "@tauri-apps/api/tauri"`, use invoke -from `import { invoke } from "@/lib/tauri"`. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and - API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -And to learn more about Tauri, take a look at the following resources: - -- [Tauri Documentation - Guides](https://tauri.app/v1/guides/) - learn about the Tauri - toolkit. +> CS Toolbox diff --git a/bun.lockb b/bun.lockb index e0720c77e49084db0442486a52d1868371b341a8..e92ab49f288354d7982344be33e9fd4f42c21df6 100755 GIT binary patch delta 109200 zcmeFaXIKCO6Fi0ywMNvjk0kaPV6b2m_1r#uVSrJ7UlA+RyOS^vV)$do^@+sCeciT3e*UwBw*Ya6CtJ}<(Zz2)) zOOVOZ`p%kMN59ZiCaVMz5ji+T7bBB(gH&nol(^`q=*S4!kf`XGNYr@%RhGziDp99MS+XE{CRlp`d1(51xSjl7+fM%%Y0DOyv zh+A^Q?tmK>mK>h=>eJ=?@phCXu6LvYJqUPNjW?Rb)sV zSV|RJ!kXH^YCvjG4y2*Djn--b_W^4F=K$*h?NE<;x*tL$w+6q+BXg>;{ORC&vTz6z z)Id*QbzpgDp`OkFQibsF_>{P0namflK?>)>NHQ=yDJgk)LZs{vtf3*>2!!ovzZ{vX zKL9ZrX?K96e;CTk02cshD8@Np{K@r;U_KQ*2U-K$pqnHx2^`)^O9ql5p&ZxNk;yPh zY4>Wfh69mL4KGHw3GM2!A&>(}|19K_;REY43WD*(#_Y3TLYNKixXo3fsb=e&UP1n>$d-vdq+a)1bvw9!C{m1rOt)CDN@C^B|P zWTH&w2Tq;{kB^B5l{tH|n3)Kqp(p~PT%R@y2^xzUKnkMT=sEGkNL_d`D)wv1Djo!q zt6yuG;)M95WCWmWdMj3M9FXe8>Ehy}u>h%{hk`ULB`GX^xJ*{!#kid3e`rV?^Zz*# zq_`HwjtubjVS?^JQm7jcA3rEbCY#cl8wMm7hXN_sV&WroNmv1Uf|DL^AbBK0H+&$f z$(n&vk01N8pteLiRR6029PyO)*pC%x{aFKRNq0`_Yl`R0g-puw}IC$`qnAQiv??#vCY(oO5)NqC0EoGxEui3xMRH2|zL|e1I-y z5bEakUgl z!mx8NLqFt`2a;046Lm?EvRa|60}0WIy5z_tS!^n-!c|tsx_2A3P;4RYn9S%U@_A3($8IiG<{k2}Yq z1ER4x%Vg0>k;7n%?D9bP-x`8jFkoa^f-ZT0^PtG#WkQ*S@B1->zQ?e2tQbfO>3~?4 ze-@m^JTWpUK4wUy>`WY6J`MxP;B7$i1Y#h5DAE-ZSUV%Q-XjTmCV(j)nFP1SqJSzG zmI1@G4@SNX@`vkU(IhrgaB_JkAT?AOvw=EL6)`~dPl8i^LNvw~R~~o;@HUVq&#HkW z=d9-nB2t*butZ%rVny}!D1}jw>z;B)Qng#Qu>k z@EXsrHjE8PlrAZGFzP2prX-PV_5VhJ4Jzz{ofbfIL@5o46|WExgO+ib^%M7$s;2KU zg4t7JB#Tj9-0)Z(j$FD##0;*FeOWs;KaFRdHap($W@Fs9-&}k(z+?jXm6nItS>%CU7ij`47Ls0@=184zG zhP_|STzUscJwFGep6mfqgKL3g(06oz@C}d_#H&E^;0YkPJRiYJ<;~VJgK7ZbX?@x~ zB*|p>)f6BN&GL<`;o-boyXn7r#4zo4a|8NrX7heAH>CU)rgsK- zSvoGnBS8&)Kmn~>oumR;+Oe(7BU^yfun$+TejDq7a~_-bLxJQ`+`@!MHP z3W4OQddMe_j)NztybQQC&Hr~hSVO;1Kmy`U#@~XI>w52Eiu{0Nh#Qa$zK3%1-16OQ zXvP5@z^`&WyEv}rI15Pn;(?^+&R&_UA&vP7Bq&HG?_&*b11EvL5Tu5(_p>1wzhC@n z*-&rTY&RTa(|Q_^+BNKz<>V{`4jpEg5FL@6h_gyebW(Dn3$}_V=4ivILvxfhXE=Q% zMn#0naBVum9GsBPke_DsX;D0*+cDWkx41Z(J@J~$fUt3k%_})D+^e?$fN`sc$p96 zY-BYt2d=Z8>B8d^4AL6>(j>GVHHz= zmZ(tqF0+r0XgYK>3yNqp91kRe)c4rT83b+z9ssNcjKuvmJrX%u%naBLv_k%RAdRp= z--Y{(Gsjo`m**3sV-t0lFNRwO)kE=Fx!QW`hkT&^i-TbY_h&?WcyeNNT%_Td(JZuA z1?@F{!q%#PcgU5q%x;6d20j1oP+m{}+mi+l|GOg&K_M-AU7xe1Lvg~WNq$B_- zawfiH`TgS)A}GR|gIgkhG>{xr@`7Phe4;b%^apH|A=!NcA#) zvHU*ZRL>Vk^&ElJF&iMstK@P?zx*Y3P3qwh^o%Uuz%d6%4TS?K*xCcBhb_=^niNU= znUCS-&I$R{py5G)Ex0APDUkGk{F`;C1W5UBlya%Vz0CA-DYyo6f#X05wxCjSsp1|W z^`Ndf<0pV*n6n_48g$|aS0_bcb^>E{2{PGM$WezD0IBCwfaGbzY}$x+s6&~0BuIde zGS;4DE)y)}Qcu5I$R&%PgHw44I2m{gXa&>_i*&{c7o&%HO<6JRI^bb*Bfr5@)&;v*f80LF06wwe=N4`C>IOK2QJsZVQGNiIFt`)tb!%7WK~z>vyJ;SJ>1 z0N;WNgqe0sE)_@yRfi$u!BRj{Y`D$EeLLNv%f?q>LpZJ)t2Y!#h9(W^A1{-MR+U`z z6RNX5c{ng9g~i9mgyA_&M0~8Y8@V8#`YbpyXMO`G=SRjRVa8*(9&cD&T>GE=Cs-`MwrYcn?UU>B1G(zyXOG zvIVCDqZ~-#_SBv=d>rTqz7a@1nF*v#Bn3!=*&Rr}^Z?q?$+adDBxnsJMW4_Bap~S0 z%V`lfEkUP&6did$>e&uw=9z3>o(`n?gE;RBBt4!$l6MADR8#;`hkw%G&>CoXYVr}I zOmX@QNCJgTKJLszHsCZQJE4ynNXBChGH6B( zHX)N@q-VFXFyzzHw8B+hT}ou30*&dT7R-=j4GWS9uHrMh+WJ18tljlMip7pV5;r{C zwB-4QXPiGgn5W@P$$|S?u_4a^R!6;&KnGx7Accko=me|+gsExYTQa$OK=j8Z?I;p7 z-_`&r6sEQmm#TdA&WBdtT2ZMjabv*v46#`Q$LOGK4ZX#QuU5B8#~iM zbK!99+Qr|kf7HL9*68o<-|qW5wyRvtySL+*dfPoKbm`!hzF|pdd|;y^b&8`4ODvKf z@46a)?EI6Z@r}IhYI2BYBjV7%=yl}Z^rZD$IdCmOxmrI*PZRl9?{gB7I%dMX+aZ&!9^y`>DV{h_D&%cHq zTlQn`<&4~|-G7X_(7j$@`j0uweJ|AC7&Q3l%4c6x6>F6n*Ek3Qz+TtC>Xl}i)t z?a-UOr(Z1PZQZAT*8Pq3-J*_cn;xi9=S84ky_Fa8te%H~)bXIZt_%V+&rbT3Xr<$HfTX!vM z%Zf(9gXA?`T*ih@ep*A-y3hM7_9?pQhvPr(4;(RRf^ylx0bVZaoVM?)xX`&xYxl}G zdt}eN(eQNd8TN1L7@~VYhm-53Z_o|P9evx;Z?tLIjfcD&s%s>68ai}juaxN@OKp3q z%Cg!vv)(ZIwz3U^It%0MiKJxD@Wj#P$}@9@Um96K#3RfrBg zYGEl@x8GGhg2hQyB5*FHd^i#o?*b!_n2Na?weSI~3oC;Y{IJdVgPDj9U^BqlfT5@P z?&ct@DY7RS%YUMz{4r8mNdYgTV=KS0wg>VTLkg5g5$WX@vGTYfzXm z*KYwE!q{DRbL=TG63I=G$Vfwd!5X{FZwD(2!C@RSOn4 zO|_6TkY{|s{J=2i2&w5{I3%Q5iVnVNp*%KG3Kka85n!#PdNeZP_E4<<#DOeQlCi+vi1WnIn7t*M0vAXFc@^eHP|YF39zgl{NmCu!D2 ztA(K2OqWb_2*x}G3qqMfnzf2LtoNm)S=ED>6i9oK@)PZ~8bMK)^;|CMda4C4uuhVd zWb+oz*u-$Dhu~vnh=Q45Ec$6;JO`sOG8KylyPMVrk(xP#R4XYZYao*aN~sW}+EGea zg;bbis>5b?^S@a9Da7IewbBo)uOzerDH=Z(dtbl?7?@J$OtT5oLD-EHA3v;{@`j>H ztyQ#YCm}vIA=Obz z?MJFBr4(hGiiOR!%Eqqnm{`;tD-}{*q|{}k+EGf;z)dV{p;g4Xi7Jg&xy+61rTlMh zVm30uFvt2xRSqCENX*e_l=a*V3Wp=rPs+Q2R5!?Zm^PQm!lkSkNKuwX`QUe+FM?LG zMKQ01sM2bcACRGw#Cst2BBj(`q?nnO9<+p#ISC$Oa7(RnH8Q*T+)Gro)+(BNi@|{5-ePuZt#TLiHJ66yjkl<3qg4*UENUa#x6vr~BIQLX#djaE zu#Hx+rM0N?)hgb!7K44YLIBow7X7+bYDG>Pu@ITpkxBL<0JUmGMPD)4PpgRW6|(`$ zeZ@k+7hh53uT^yL6NCM=LM|2y)M4wO0!F4`vBSh%3dZWu+ z#HfRRwHLG7YlYPIzc&!5z5~W8P(yV)u(gFLO9c!1t@<(;%|#gBN-eYqFe+2b4iJL_ zw2B7-Vs?O5SQ}{2S?sS?yblyrfm)$$N48k9rE>uob3HAce}grHY8jnT6xBP4s*YO4 zxK3g);A|%`8(`X5ECd907FC_J3bC^o47l1^%mz4h5eor>yNIgJT44tkXmTr7IPAwS z!Dyvmr;d?WplJ_5Su3@&0IZc*E;lb9(FD(ts7BCEBS`|?TpICNh$AxmFPuUL4 zTeL@=X-FZOX)iz*3czTH5T|X_iV8i%!me7ypdO;Cn^xG=gRPbn57-&NFx~isXxfua z2<*|=iBiCr&fGkAa}Y8^Nn42GdrvXDJEldDSlC^wyohn>EiIT0dLhQ8hI8Aig%~jE zZh5h|g<7$$msr?Ct9aH+RQ1#<{6fTFK&QT9Heg#{u@JDkpQsALlnNDtgS0|MDBB5P zO;5GrWT;peq*YeYQJ0H+G(t2|Y@>vBVHxF1EtBbwz$kuk#_~}s8ia|eV69?um>3L@ zhl|<4TA_b9>pA?;O|4iKE~_(cMsFE)D$5C?+Uvg~E9-ax4o2tNw%mq=@rAQ*58t`W_22x9RmcXJSb6k)%{=&$8P zsD%mo91PP6O_M_d2eN8#AsU;>St)6!{su-Xw6xDFnhX+EI<2z*Ajv;C934Q49Krfv z8p9k7h9gWXFzN#vnb9#~aF|w6F;>hD(+c`nb{LhyR=5U+xl3BQsg+J~q`k;nqZk$^ zW`}EqXUKpVG*sAiyTyyD2(4mHycisz6^h~wiy6&2#{^~$B;k$$VB}ypAM7F+`Gd_* z$HA-~GdviK${^{hRxBMXs-m>Q?cXB0Ftt!2ku6aOQB21uux4UWkVeQxih79y7o2wk zj7AE5MpV^GV&-63JLzr?(iTP5l9w-ok)YHkW%*=M7vicBe38O3KngHw*v{pk;)cdUGlW%V3&%7tvRjH%#kC<~;XtiW zdZ=L@(oI_+7*&V)sGb2vw&2bWp1ugiyNxBj;V@AZqZOitF%c;m6|0Ad*)dwh&tYO= zj8^G79IEMLpokwX2FGfJd}L7Q!UO1OrBt?dV|3iz={rH#LaAZgaxMpRkp#)Z1z^l^ zv>n)vFhpFjk6IZ@Oe}&M7aHdaH^9ho(1)9&CL`&LNY2(HMN6VIcFMhAE@FtkM)?9M z?Bu>0h07?hFhQ#rJxWv!)(Xc*u{f2{qN%JfT8aU0jnZFAp{6hrDRK)As4djWJz(fF z?xWr#)DCI%;Ih4X2K{ZEImsWHYd9di4q6SeT3x2{L^|`y`D}Z5-R!*vNGOqmu&SrnOp;IZiB0 z(F)g)$@CTbsfAwS4fB|qTs&UP9->wJJzgvXc&Cf1q1gM<#b7`|x|j_JpCA?v)e0LY z$Yj{bp&I@dzJOtWCL3|e3YsWp57R2XPZSG>X_f6JNvA+~{Wwy=kiz1LIyEM z@GLP~uT>nHB^Cn8&lXi_TE+C)VsM&PX)TgDMWZxAZ=@*f5st&uibbNR8lzR*6~*8& zTETY?TNlvz7_~ARtfg2qQlq?yl$ThPs!^)uN_nXoMc!O7d#qMbVV+nxRx2dWV>3(Y zi1Gj!f*&zrk!d*U<;Gw$0_!F@o?LM%$mg;~^N2E-X2XatzB~F^+dbb41l7xF<&}Ow}s-EfTZARxJ_> z0k0Q{s>xb~+hQ>oFmth(4Y;;gES#)Ws+K^fXg^A$n6pF-o`RXUM9c=LbH&0bTIIZ4 zEH7ftWR0RAR}7wtpjj$r19Fy%g@C(DMb$K|&|;Zkh9VS|lfZn$kkK093{qZ_`MDj{ z3Ww#QYPwb#vs`jmx<>gNsn*g^H(p_wzYgfj)D@yCL#w#FLJZE(Dx0sQyTFhPjbhSD zu@L!>R*I?_T4lFY7!9#VuTf;L60?yZtd^cpjL;}!k@A#A!g3AUSf$Yx!oldc%Yt~@ z8nJLD?$(frDT6M$uN8x5X_dp*($M6L(kKrgrIDQTWi8DDWs7wbR3TF}%3DZ5C|#py zzg{eytyN^M7geHGc)Q-PxM0RA)EmTXWKP<^)^eT+sKvz1CI7z($Fsw}Od<~A`nORJ3C zCe0-b!O?AEVU|`<=l$Mw&;=1J0;Wn^m+})B))P04!e_f=)x7P7p3vg_V!IfetyQ}0 zpdq5B;&+g16`KJIv`X`xG$D&%Y7eBOK~%0r3eN%H^-oBlOYnN^E-`o^YV8uU7ixu1 zyWpPR&T6rnCZhd3jdBlCoy4568fED{^oT2GoQEkAQp3s(hLqyj9*S*coxR*)im1I} z;UcZ#-Cj|(7%SR7F&MCDpP0Q^t9-mqn&t?PM*AffV#4Pk6(j`~77vBR0Wo`tRtP=7 zmVcZ$N8!(}UMRHnH(^3#-kUgJNN>Rxmrn29uqfL&5s8>N>S> z0E|2?9eo7H!))&=D;=dqfsrq8u);0SnZsf>o)lC$!cH=5lj#oT4iR&)cql9b(}Ll! z57nQ*DDKcK&LJI-vUL#W5DfG(FjCF#&mMy{14G$4zV8S>zqLDdZt$rJD6^zVbWercV6FqJ%(8wk*wsKQF`6*@&It8Wy^Y~qFC>Z%k zDS2kEahdWHl}S%aHKz^dLeelCjGGE}5R9y1E&l@Z21D0z$n!dbPy|Cnz%6NDZc1xI4^P*~lR;j*V*w4oyMFWHY#Fn-bjGDt~%}uTRM2zk# z1ocH`qFf4w6fhbA1PX4=H-WX2o*#YTQiwQg;Oa|a@FuM=?UF$y`R*(jc?2ujWVKNC zGJ6t@MFC|Kz^HeUTHz!Z#UE~|acGrYVNJ5|=mbWRY;O7>xjvEPIvJgGumF zcQDohu}rWIkYu-yFTkkl&s7s03=8~mDuhNB(4qZnT( zX79u?8<}k+5qf4}a|_R1!K49G#M~0Ici}1SEwONyR``H2CP{ZyEpD?p3)LfV^AF}J zX(=9spayFWCWWN%8H_>#C*ZH{=0(5f77jCe!N}8i*6A-5d4S-6zRlhI&hJX_Mh0gr z9xj8?48od&yZyVrCl`jiAD9M3R?=k62I~X{8{zzCU;z@#?W7hu+%r1M3fW*(26xX@ z3s1m$NDMAj1QmO-;1*ajuu}B!SE&Dx)ssd;IRp$h#CVRo7AdL&2cXV< zFy=RUy;1EEV<^K*g;vbIi zEHQ)^Iel!2^uYTxGXGV<f0;LIY}jbD1j8XM*uxwN znyGT>rS8$+jApU??QavoJi+*2j8H4}U^sC_XoQPMbzvrSa5sO)PWx9hxx|H9*w9}%ArVgkn|iyiadsv z@Vu$qCoU^=M2Zm>UV#H zmteHeu%{<=zyE&D8HGN9u~;Fy-+@tdV>mGb{eG~e29Y0&7m#4AzYdG>)CG*@F&in{ zp9Y;|M;urO>2=N?q$tRxs1bgGQD1QrfETL%zoZyK2xKG0q~KTO9WdN*Y4FejuOEYc zw=o1Pm@zN4@*QPsXvBcg#>i~i1r{bT zigJ~SockK%W-`P?F5W8e6s{rH9Wr=S+Cpt&X(|_cU-uLOP36)}3{IIEwaE&-vGmlR6OFXT}IBATr5P&FfhDIM570g zV)AsRsf@3RvarPo+a%cnJudQ8`r`|x?EUIWqaV&r|q$AVD}Xd0n5*;O7j z?t2O<8@coi1nB^&Oap5!9n5zl6(>pSTB=P(SAY+^J%xOHH9(tNg16FzDsZ6YdP!R1OX_Tjt!pjPz zD&Whl_^t<1W0Asn9N%j>jugJBfxH^{YAZ{fK#J8Ur$R(hsY#>?eS6}m+>RW)zQ!xy zDsZA`AL?O_1X;!22V{d$2r{++UlFBI#}*FXeFCGN;zW;$*QUB$+TJn!5g#)-!$}sW z{d_PFNW#nBY7PL3@?| zGL+F_B>68f`<+%;kIc~D$}I4mUt0DMNg8)^5av+QbqI{coQiPs)X=zEC>U#pY}oOy zGI+|W#eWey zErhtsrMo3C?D;#uLZoNtHu%ahohc=Im3lC5%2ysnihZ%FBEEaf7g3yf+Jm)~cBeT= zbvD!#UV^cHqjQ3*#;6~{STH(^NVW=Rz}o+=XN#{SQ{Y%h=llU+G_&z!2xGSyjFwlt zvVzV^_%gFQ7@L>_z-X~zYzG*{7&|3=1fzL{NsFlR(6SiA*3(k0oDJ4W48e=|%Siq1 zmtc->Ft?HF=n!oIU=$}f4uIWm#bTB*4=*-v7|R9=`z`q$jAjul3-V?g4PytuXu>d7 z&Bvgnc%!>H2!$*wx(Y@+Gh+=~vr~t}6k}Uw7AoZ}^e~)^mnrapQ>2Sfjt{~~W`Yl5 zM!EhCmQj8OhbP-a+h&uYdK6ygA z2r0iGK4h>CAF2nx$xQKy;=DhQE@LD)tY=cafmDc#{uu~KVJrv}~ zcX8YYB!vg@Aw`Gqk!9|8l2_L&kvfkLWnaLD_*HypWD4;y$LBsir1mjBG*T}(e*+}> zkND6?HBwmNBz;)MB*Y>mUH=_5tf!dak|1WRbP>`>wFQ#L+w**5ES0&Tw7im@io5aR ze?oF(Fv>}!H$G4ZjGd^KwE;W^hhO z$r+pzQgSBeGvz)kV;0XKq~vVQ2`MRZ{!b{+%&9G}o_V&m++426+;1VTBRMsPS6#$$ zF;`)X6m3g+{(nLeS;plEDY=|;W2C`aEA0d-!XNJ#5V3D1AV^9d>cEs#9) zf#?5kkUI7W@>J!so>%j*~qnC~58HA*8 zJdg~T2&4*=IG+ln%NR*6gUij}<%E%J}a{MFqV4KVccj6+@0( z{0K-5KL*lJm2mzHNFI0v#Ed7x4U4&Fl!jz=|(mBPN^Kw9H zxFV2dQ57J~b4MWQsSl(bqZyF&xN_9HAwde=fuz8L7tlYQNZgBaZy;TSlx%}vRL>7c z4Fv+JfgsNN@p2uI8Vm#CM;3`+Bo_~ap?X;g5*3g!8AyUtfOLY)29o7VdHymWHMAB; zE7~?7xpEhf4B5lW4+E)zGd%ws5I?euoL>f#hi(8ZDgGZJL1Xut3%muA;!i+o@F$QA zF@rnEz*0bJpd66$?SK`54S}S%8OIhtlGgyqKu;ikWL}*60L>}>+9QEBWP!j+z(^n| zOa)Ry<9Yc+pcVLBAbDUBkUX~)r~;k^QiJD!bP*Ci&p9C(coj%T$$LOODSU}Uc_4M0 z3^4&BOI8XCwB;Q*J z|C2>JWZ*{@#c>djVqgT2dO99R3g|ESNPYp3hHNE}3|b8&h3kNH5!wOsfu!dukmL%0 zWKa?3ca`wJ4Km&$gIx8F<9jaf5r`kzH~gX=E73X`PzJw9QF+cQ14&N5I=fZ2!4}=F+frf2ZRl>WFQHq0jZ%3 zAoXY#kUTXHNOB8-)RR>}lH1Pn_X4Yc7XV4`4ImkGABZ1W34WEQ`Tq?Gnnu>>K6#)L zeo+NGBL5Fap0P(c8B~MII|8YPP8@3jNvEFWsGJt|J_kQiZmRxT=1WedhUaA zGO!Jh8uaDp$Mf5A-VR6?A<4Dp+!(2Sselv)K!C6#7bK*y4C0)S6!qeqka#fX{~M%^ zhH!bH)V`EKV;zlxn!xEm8e5SI5|Uwafz;qUp8ubaC!|fMJCF?O z32X>V2hut*1xWg)0_h?oK8=^p0%qp9%4&5Z}r@oWx|?9BvHy(}PI|2IfG`1;ZaC2C+ZS73~! zcni-bqz3bVl)s(h4xYaoNCqAR(nUyTjMG4pKg01XFDE2_oG;Bo={zqmMsnmeE=d22 z0$qfN3fVm%DK6&a4}j$GS3ol41IKSbx(G?0{tXE7tQ^)+hfMWIR7b)INEX%N1$BXB zKqDYkY|P7DfOHun)oaG{38{hRK&sb*=Mz$co;+X6^YxUV0xzENPe={;a5-Nf4Ou%b z|4&Hefn2^bm-{C~yLwqS2#}@Sfz(h>j=g|nSRc;&at!4d#xa6p6p-}v2U5L(Kr$qb zVU@a?3d>B*9%Ack_Hgiuxlw|0vJ@CnT4j;N^tG&u~si`pZZJM{5mEyw_|VEY1|O0iix1teiuj;h|9}6=5*29^+Kdlfgw#+T$N%`o5;BMI zAwv%1gDvd5licdhD@CY?7|McpTJVoVn%>DBU^Uo{H zKd&(Vyu$qR3iHn^%s;O%|LK(`J+8p3OX&i#M?RE6&n5o6!u<0J^Uo{HKd&&QC+B}& zVg7lA$@Yo=&8y5muP|w6{qqX*&nwJ7uQ30Ae1%z;tyur_E6kn2E#$Wp`hs<r?VILSeD*=R=r4vLl&bV9{4VJ zdd)l}d)KXjjo61A(T9am<@rDYGgER6axDAa7y?K;nv@9DSV*R;`f zUGIDrpI+YN=Q>~iwfnnE89sk^Xt4`_c~-pkW5h(gf6crQd-@|Qxr`~M8wbN>deL<5 zl_jzzOUBJ|K5)XSbDxEqH~zhD#pYeL=B#{~`mOQbDN7qSJ@{9)=24T#A0uZR_O7(1 z_SxF)63i`sHP|sWHgk-TUVQPE-JOtf)7dlb)#%dsVBc?j&0-=CB`jJR@TB_j$tB-c zUs-ig+uN(-I}_J_9~KNX>sevap4^_dcggLV+2wuOk>coaqfWrc+w`YL27~E~wuZ}e zM|iyk0rKftb58Zyw7&e_*+bX42}|}L)7RaexFmrn!2&|5Tzr z7hmS>oxJJc+f|tlBX3+8WTcqBePp;yKYw=o`mSN8o5INsVU4Q{ckDc%spG0m3ybTd z|FudxGU%ySr8#vS<||KLIvG>exw^$Qh0xshW>L3WCav#m{~0|_dex-oE~Zz!hRbwx zi;ZO#_p#o*wfDMpu8DaSsw|$BS$C3d-xbrB+Nal_6jd!X=f%8Hc{Y*q;zkAXiUZS! z-i->G>SlUiOsS4FCat7UHF$#FJsU35Hqn#TR#NJFbq=j^F8jc<4!5?J*5Cd1bA;RU zJ<-=66wZ^kT;Hs!(zE)M@zc7@9(AYwqb_B4PuS%?c*>%Zj(LuedFzc7OJB(6noY0R z?3q7tL{0mw)U!VI=Le5c#Y}pBVdu5vo7X#<@3?W@*39G4$9q@bs&ne+bO<&7R6ci{ zL;aZzmF^dF``UUd+L-tmDWVYSl z4wi@XDcl!0{#@~_&FfD+O4(TY*(tHYlAm@JQ#CUjOBOlSH@UDX)6)xc?6`K{q5M~N zDS`DTKVE7z^{8XJ4e2+vUlO8stUKj?X5!_S2c{nWzNFOG_V-^8c<^n{sf@#6w}wCL zTA|ayE^FKEu~=^`{q!|qw_BK4Q1y{SHD$dn!xD`uYWpBwP1~SURuj<$wqrZMLT&7Lz-S@oy zd1Ytg%%QxYvvT$gKHY_1;%>KrM?Bo9K7jWMCtL+Ty-6KkS^!pJN{;kyR zH6J=2_}(wv$UOQp2*YK%&{h9xOL$4~htnhf8a)2|maTg?RR7h*vr1$_LajOd25b=u z9LD&qG1rg0xx#Jb+FCz%z4v)vDXE9+^~qBM?#$~I(Ah{a{l$slGVR@HazO24f#s}1 z6yCk6je{n?ZnaNhGRy|$6({JxEwC-~C_rX*MZpaf|Oub7EJW znAqv=4_h-cyU*!6cYM7+_Ih!K?_5O4t#Z?W~0!K2 z&g+)!ms9LL`fzysu%AWTe>MSn=RvRl)+t9_|^DRny}1fn6yhKi}{>q4K#nr}CFoJ1SObvCnDqhUr7v zZhU-5_x$b))#$jU&r@p#u6cR9!r4jjBQ@j#%>-Xm+w%hpGiEo^Z`bv4gSV zi=*B5xvyND)8^8&M#mhxEbtp^alfl?uj!ZU6V0lXYS=Pia){63)^+r3pW)ap^Y zm15qY4h8PAq+3RcYZ@#5Q2D?z@1QYHyGD2NvKm+4v7cGrf`W1TQ#2zQjJ{qfJ;#3S zV4KxDR@d0jvHho&6s*GWD}~ccsw_szGGn6$7&hr)tgrME3)o3-`UB# zV>f-6H!x^Q(+cNCE!tLb_p#E;dRKKDHn?B=@bW3S*J@mfn$SYKx~NBbR=|{jc_}k( z)P;T*)BdJEU^ghPZKT+AcUIS)zbwt3HwzkW9k_X|MM?6xp4&|)-+Q#cZ%K3a_lI5A zu5t>C)=$lP@;=S`-e8+1>S=CM?pNz^y7{l=F7xZ(%Q8}2$5`<;n`hY>?;F)9SNmM! zn|`%qPFFj%Tai~!c>1|r@)46=IrrNBy7=wQq!B4oGQFMR-)yaZGjK)Qat-L}Etx<>1d%=CQb{x??3_pd7{y+6RS+t?jJ8#4#Y}uT?;el&Y|F@k>60c1Tp0u)CU+a-Zit8C09HMynBxh;cGw}=kYV@-@ z(7xIiyDzOgE}0apA2F|cm z%L>Xo=Z~Gj%co7*2l>ulHXVG~WYP_{EwZKc(R(@+= zeydzIT{zdbL16Qb&&oLU*}ddt_oSY^#~Yc~z}UR^cm0<}>BEXAM9!Z%{9K1Pi`aRk z8;+~+G^LNpg(h`(y2~)0>sUE&Iv3JUzecs~*23P;)Ms4UeMn1@XO3zM z^OA;EJQ1_2{)#$Bru5Mi{PM3e;Ks|njTCKvbXaTm@&1_A{ZbV_7SuPjO}h~#*u41h zwWIHu^%r!Jja4QNKRs$xV*j`U+rOQS&Fg;ECBJ)m$M|EFvl@FR2F1PzpI+KBpkcWT zA*x-otMles47%gDvwDD?{bSqvTgKIKd$6xTtq=DfG_f!n);4Bs%tkk@j zZe}^BT1Gl7v-|YDg0t(W$Iq&TIqpucc%d+C)SGthiJQ)NXBLrpts4)j>Qnw$=l0{) z$L9=RaMfbn&6qRt0eAdO4=t-&I&|)+V)gWapX)kYY&PijhO^D)o~^ngG`HQClCd7e zjxjsOZZtBliLrS%kG7tiRxE@~`aH<9W9$2;Pr2S*zREA8c>F7u-b;Mdbpy*x$+8`( zv@1wlY(4mxEd9`<^UZy?niV|$aCJcD@QEq;nbX_DyypAs?9RDR|L&8^HnXZXcxruX z{)B_`2c1za`IWKoM4h0Gk&8^X$##_uUDn`3`R>ibo_S5(x_I4+)seG9ZdZTWui0E9 z^O_o)_h`rH+jWcOcl(yMwW)UUZAp_Y%Zt0zS4^q-cJQY7q0`;&ZgQStmA>3=yzSS3 zqt{A}i#oTg*yUWCjq$A_MxVD%TXrGSvjfcQ*0q{g)AaaK+gIfk>BpYjpX~NwjC$jU zt@|JCJUquXICq%auO4Fdy*hW>o&9zqqwS17{f1UdtYWq(D<$^DtA5{l7@6m4Y+lIA zb(WVSXGa}t-66U|$*dVyhBjHTGRE9~Mg7CxuhZ97+SX;XtlCmPyV%@1qqYZy)!EX$ zLCc?o87VW49fcZw!0(WmoFDS)==3xIO#ynTqK%eKLOpVzl#zcWp6fY`dxcCiw*gp(mTJ_^9c& zw4eCH@!pHo1MAq9D}8x&Ij3oh%B(w^-)6`V%p~`5-@-3mZ>LRo8q%#)Bs{`F1;|)XUSG zyZN3u`*_3Ib#r5dG~MxnWq*CO%G}Tq=E+>cmp@oO!&5iGxBZ;TSti%Z-4O1+?ptcj zT&t3oeJzh(9NPNL(ablEJl-s9TYlD;qgO2M`w!Uk^0nzbi5=VhIE2?OP*?Gk1U>ivh1BZWlJ}nH>UYww<;H78b7J^DDLAg z*G=0Z^DfTKwt0K)ZRdV*B@VS04{`a~wx|2h;lo}>eO-~4xXQ?TUdHBKF6ozIGVN}I zQsW&{Rt2uOw7+8gpl(;n%-l9YcWjPotlCMtyN&NkH@oW#=2sqkYM|b?tg`6+@w?h4 zZ7)2VHmh6exlGH>Fwb#syxZqDWrCYMD;Oj1lC-ex!$~9CSM<2IG{yeR$)t)s$L$%_ zFwkT0hH`TUTpBnlAfcB1CDS+6x7p2k*0?}B@$Ud5^L&iWdv(lo|KoQTzMgU_|H@`Z ztmWNT4wmJr{o3hL&ByP~niu(ds~ysXj#b!Ml->B|jE!q};IoT8Mz6TgtEAi>&-7-+ z8Bv-0$-E=An?ATds8Q`-Rx5T)@M@d?^V-m@aUGiPeevy9(_{V0m5TB|z0fgo(Qw-n zhqDe(8xt}0LvZ5_W5x&V&23{h?0j$fDy-q~(Z<-ktfdP+_3c{e!Pv(O!XIrN5!9_? z%G9`OKU@N;wky0GKlPr^n%$07c8##x`>Tu7h5oJ0s?J|KBtN;#`<64S{M_6w??vCt z*e)<{>sp`S-lZ0AuKGT_SF00q&b}|-v{`EK58HY+@m`gi)z2-y(!ZpmcE8uTPVG)i z?-$>DqGxCKY17Y?Ycgtm#d^)R+ZmbXXKdcXl#Vx!WVc-Uv&u?U{=4v9`{mj_`2UhxA(}BaR+@t#BG=YPU7jWaa4jZgIzRvYh2dr`K^RcK_wvY>sMwrhQkK7uY|g zhxOy4k)MlJ-BFi4nH~{aG0Wm+m$%VB8?|+7y!-0g)Q3+}$9`ISZJJ5eokoBC()2!B zJ9=($nb`@Q(h4tjWdGO@J0r9;Ht*-BtXH#pH{R%Uz3!{s9pZYNoc&Yv>%PPD_ua0P zoU|EHHN?jI?N6bPT|(KK^TzzLn)qh`NE2mcV%yVSki2BDayQi<1 zv2#e?*SqKL7Oakl8C0fSopXxDEv}|JMKzx)3^=(xV`{1EFFs5fU}aH#{wc3p?r~4L z+K}M3M22eH#Tqe`tD0-U-{vY_O#-s&MyNFuROom;_)S`hqCYWpB~&CbikO}opyj3!=S>M;yLP|UIDA+gkyiC}+N}FANTZQwj^oK@tyj1z8ZIp1f zdUl6~3!LtC-s?Vmp~JB^tK9YtH!|4p*CJ%MX{)Hxi#US-u*73&8Ne5a`TfmuSQMZ?D49~S6g9O!`n_1Z_9hFel5!^>JER7 ze)3nDEf4yBkw3D3*uiP0*=RFN;_ped*Ms~biw@UhwfUJ3GHlvs5l+C84w+J;I(e2`iPrjMcd%&ODf5_Vh z&|ke6F4LfI+St6tkCrU^R&B+AOY{C3_4|j5F}LxS zhPP~jtj<*Ln)_pmceO+PFEzdVIQD(HOwXR^_R_v{TGr^X_VoFu-iiL-KWcV#*>pZN zs73zS^GPmiM^~8LzVfl1kB;2Pj_RM;{#~Bg;5O|nBW86iJ*i*Dec^RRS*6jabT^m= zG(F#U{p)>}r>A%P_*~m()~2ZIZ7OxnQTQx*`}F+Lm)55ae0_JIdcy_ocDswOTU9I= z5}0Lgl`*D$*rK2bFRE1DSNoP(<_j|Kht-OqIS%#4ohZ8d_p{Uw*Yj@9Oin)9)~s@R zzvb}(Pg`1^j_BC*>Oi6W=M}29f9slCEz3F)s$8+7!%3$n(`BnPM&|W2Ht(2LH#$AdF7#mYnY(9q%(R|Xy1|jJ zlT4;$22`jUI%Mjz%$y*YcWK!^TmOKlpkEOa&Q0C==J@_0xq06b_D3!Glz;z*Yr{6* z8g{u`X33p?lZQmK&nYOe{@AqB$(wi2DF+_jS6gO!gZ>#W!wTEW*gOxf6(*&RzpHgT zq;kRC{>S62_S6&tP0Y^6J)65EJN{=xXm04m(ee*=hnl|H>AJPEQ>#AZW{W3BJel`@ zczX}{oX-FMKe=z4*drmf+Iy?L_g*n#uORk_5qInuvAKfUD@KgcqPC)D(N@u-Ri$=| zR%wg>^OgG?xtq#oeSeRC9-gjqUe|hG?`xdvoZNSgGkAA`GsC7{HI3V0-ovW*D^`8o zee#=arN`edxuZbC)XO8Ad^v0RjMF=^tmw7t+{G+|J{wdp@>zk07) z$HASOAE~)v^x6;ohWLc8n0w-EzSoy)+&z1&MTLE>w~btWsc+(s%`41n{8N_?nzyWd z>iKWZF3DFNEB;rx;R(GPFV5FvPmv>Ym#^NGsZnT(Ki}&o$t4DRw(B``|8VqHP25^<2}IdMyZ@zJRk6M_H1_U z#7EYD9lhY^IY}1gzkH$K!JX$ewQjU-U_j~vGjg`6QfKM&O(&0L$vDxk@K;?z`lSwt z?40ZJ(mj#={c_#vlkr^rRI5juzz+0Eo%#1JZcg`R^NKnH-*_z?v@T$A|L#>w*1M1? zZO6e0>PAkQ{3bXe(YJ}C60R@y^SvcCzg{^x>G1x`+q9i;I+h$ZC|zrhUg_#--q)|c z8=s*2eZMabx9|H^!(FFGze!S}_!l4Dy^`&tjib+$xp+15>B@n-@B1}u^Km}!VOu6e zJ>UB0%#xK_9Z9@0S?{MS@Afc09Wl>0IIQ~QsG^R)e%_Nh$A-C;x_@-6^SF@U0W+t( z{BY9Vus_e#?D+ATBMpCVRJMBeK-U-L9<(g5;o$Ro=hw|1UOFmzKo$@4x_g?JGEuV) z1Ii3No$}t{GWB;IYyaMjH5o#_dD$_aZ{inOZ_a3zYt!n@dl!uK>(O;=uF&sh&pveK z^@D6LoAmfNIBdm>kH1dDrbgy@d4*0Xn778~H3NI6N!x}%=7h_zL`&MeAwXho4H3eWqSC>>6?G}k8XUy!@QoJ=1u8!WwPs4 ziJA%T+#R#)_R~Tyf9>_##-JM=`=l=Ou%F}pUt5!{U$iJs9lsx=`!>9?VR5}$CDx43 zIpEFF)cG1FztQ38quwSs5c4wh|FC;>iczJ8jLH)<=Un)yPh8P+$J)=+yh$DU<|x}T zXPwZ5L%w}hv_O~sYacw!HYa>rnO4`9ysT7q;;NTz=dSqR6Td;#p9RFu`JWsR!3w6CQwpY=oOKCim{AI5nu`h|Oo4g?v&?t}v&~fk zbGM&bSsw%DnrZbBBKspek}%&?Xn;^J7-3lhgoWmwgclMTH$*UIaYKZt0SK=oEH?EU zAp{IWh;D?i)V!3CWDr7NV}xa9V`GFp5`3B2pNiSPQnJ`*Bl}LFoe+N2pi2Q30EW(X@RiWjB0@pJ{;k?glJQs zB|`ZT2oWt2wwbFE?nX}7PrCPs8KZFm4v;f zep`fq(FoCP5%!sv5|WHT2n;|tU^WII?2+Kp4&jh#*AAi2ScC%-j+mtF5qv`tg4-i} zYW7MvDIseIgySZt1476+gmV%;GkzTr^1Bd1J0hGirzBjFP$UrHj2RV(5FUnbUBWq2 zpc6v*@dy!}5YC&c67EW<+!^7bnbsL0ast95316BDT@dO`L|E1Z;gY#0;e~|8T@fyu z#a$7iCLz3%aMjfBh7d3rA-WsFx8|jUBvTLqyCYmT8@nUyk>Jw<;XBi=2ST5z2nQtG zG)a3R_=Y0{_e8j5_DVP@A!{#$+a{TY{gg)~S4j?$Zy-l(~Z2x@cqXZ8^aeA9iq@0wJbudaoZ_{@$O2`6~b5as}o6JK{ z@-IXQ9fFe7+nkniMM{yOD9OFe=%Fa#i%_mh@$ohVhoO`=C=tU@QhA$iq}-KKc{oZM zZ!>*3N@OI;BPr>;&HE!z>McfDHUcGsx4AFng_Oo4Q8Ia(B_mOymY}?n;^%D|grEd0 zMTrhU$>MGPkdovBl)zCaS-s7sQ7C()_>4x$?rqwSM(MK*<$#o&_-71??{bvjF(|q5 zkCc;AvW`W05C4os30Z-1PD(!f6N-|5B}!;0N&);M<%*Od<4_9WpK&PRt5B{>DT04o zDCJk9M7U6j;U6h?rBn_>DS>~&P$Ji$Jd#oh|BOeew-#mDc$6~uN6HH+jVGX#!#@*H zqSm3jl2QTxOhgG-j}ko*r6T^3l4Ju);3SmF_-7Kz9w|PPQL5sf$tZoIQ21SZLq~P| zGX=$WBTDcTl$!WQ%1J3%r=rxxKT}acHldu8QWyV(qvYR=5*m(DAOA?XBBjVQ6fRez zr=f&zLAfraG5(qE-Nwq4yV0bmJcAU?@y-mC$gL=kq_o64Gg0boLs>Qx zr8VA>@MuqJ*pCps7-5WgDIv)Lguo>T zp=RR}1RfmXlBEbP({3q3pMwYoB(PEX0KxYVLhuI&?3E;(l#q29!ekS)3?bw&!Z`_3 zjo)&F{6`Q%mm^FwrzBjFP-F$d3^Qs4LikaH>k=YNft3j5KShXGi7?w-m2g)=W*wkN(5bzm7^jd_a z=B0!rClLbIAuKZ+*CFhY;IkfKg=x1Qq0cFV0}|LhZ9wonjS##6f!&jYlM=E1VEi^B|Hk(nK5W>$PT$d1S3T#Fw|2aa$W`u3# zs)V}|DsMs9VWw?Ch&+$*NWxB2AsV6H1%zeM2p^ey5?)AXycJ=$S-ce?>LS7`342Zb zZ3qEhAVhCN*k@i!Nb)5@;C6%qX5)5*JraC&ARIF7b|Ccm3gLhR_A4JE_+CN?{t$uv ziiDFAvhGAUZi03qgnW%~PQqu#Zx=%T%Lt*n5Kfs>60S%n@)5!rGwLIR@GA({C7d$_ zK1L{i6(Qndg!AUAgu4x$Li8sH-

alH5QD+=p=8Y}|*iM}p6Ogzrqd{Rn-&LpUIT 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 LZDO3)!o2?vpo?Ia diff --git a/package.json b/package.json index 41d7df1..5e99e40 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,8 @@ "next-themes": "^0.4.6", "react": "^19.0.0", "react-dom": "^19.0.0", + "react-markdown": "^10.1.0", + "remark-gfm": "^4.0.1", "swr": "^2.3.3", "tauri-plugin-system-info-api": "^2.0.10" }, diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 2e7d58a..ed82778 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -42,7 +42,7 @@ }, "productName": "CS工具箱", "mainBinaryName": "cstb", - "version": "0.0.4", + "version": "0.0.5", "identifier": "upup.cool", "plugins": { "deep-link": { diff --git a/src/app/(main)/home/page.tsx b/src/app/(main)/home/page.tsx index 09c402d..b0f9bd5 100644 --- a/src/app/(main)/home/page.tsx +++ b/src/app/(main)/home/page.tsx @@ -7,12 +7,13 @@ import LaunchOption from "@/components/cstb/LaunchOption" import Notice from "@/components/cstb/Notice" import PowerPlan from "@/components/cstb/PowerPlan" import SmartTransfer from "@/components/cstb/SmartTranser" + const Home = () => { return (

- +
diff --git a/src/app/(main)/preference/layout.tsx b/src/app/(main)/preference/layout.tsx index ec05683..41f9b00 100644 --- a/src/app/(main)/preference/layout.tsx +++ b/src/app/(main)/preference/layout.tsx @@ -49,7 +49,8 @@ export default function PreferenceLayout({ 录像 - + {/* TODO 完善云同步等功能 */} + {/* 云同步 @@ -58,7 +59,7 @@ export default function PreferenceLayout({ 保存 - + */} {children} diff --git a/src/components/cstb/LaunchOption.tsx b/src/components/cstb/LaunchOption.tsx index d62b378..bc50318 100644 --- a/src/components/cstb/LaunchOption.tsx +++ b/src/components/cstb/LaunchOption.tsx @@ -3,7 +3,7 @@ import { Plus, SettingConfig, Switch } from "@icon-park/react" import { useEffect, useState } from "react" import { Card, CardBody, CardHeader, CardIcon, CardTool } from "../window/Card" import { ToolButton } from "../window/ToolButton" -import { input, Textarea } from "@heroui/react" +import { input, Textarea, Tooltip } from "@heroui/react" const LaunchOption = () => { const tool = useToolStore() @@ -29,10 +29,12 @@ const LaunchOption = () => { 添加 - - - 切换模式 - + + + + 切换模式 + + diff --git a/src/components/cstb/Notice.tsx b/src/components/cstb/Notice.tsx index 1943010..23e315e 100644 --- a/src/components/cstb/Notice.tsx +++ b/src/components/cstb/Notice.tsx @@ -1,17 +1,12 @@ "use client" -import { - Card, - CardBody, - CardHeader, - CardIcon, - CardTool, -} from "@/components/window/Card" +import { Card, CardBody, CardHeader, CardIcon, CardTool } from "@/components/window/Card" import { useAppStore } from "@/store/app" import { createClient } from "@/utils/supabase/client" -import { Skeleton } from "@heroui/react" -import { Refresh, VolumeNotice } from "@icon-park/react" +import { Button, Link, Skeleton } from "@heroui/react" +import { Refresh, VolumeNotice, WebPage } from "@icon-park/react" import useSWR, { useSWRConfig } from "swr" import { ToolButton } from "../window/ToolButton" +import { MarkdownRender } from "../markdown" const Notice = () => { const { mutate } = useSWRConfig() @@ -23,6 +18,12 @@ const Notice = () => { 公告 + + + + 官网 + + mutate("/api/notice")}> 刷新 @@ -45,15 +46,13 @@ const NoticeBody = () => { .from("Notice") .select("created_at, content, url") .order("created_at", { ascending: false }) + .limit(1) .single() return data } - const { data: notice /* , error */, isLoading } = useSWR( - "/api/notice", - noticeFetcher, - ) + const { data: notice /* , error */, isLoading } = useSWR("/api/notice", noticeFetcher) // if (error) return <>错误:{error} if (isLoading) @@ -64,11 +63,28 @@ const NoticeBody = () => { ) return ( - <> - {notice?.content || - app.state.notice || - "不会真的有人要更新CSGO工具箱吧,不会吧不会吧 xswl"} - +
+
+ + {notice?.content || + app.state.notice || + "不会真的有人要更新CSGO工具箱吧,不会吧不会吧 xswl"} + +
+ {/* {notice?.url && ( + + )} */} +
) } diff --git a/src/components/cstb/SmartTranser.tsx b/src/components/cstb/SmartTranser.tsx index 65b8acc..9808e17 100644 --- a/src/components/cstb/SmartTranser.tsx +++ b/src/components/cstb/SmartTranser.tsx @@ -1,27 +1,30 @@ import { FolderConversion, FolderPlus } from "@icon-park/react" import { Card, CardBody, CardHeader, CardIcon, CardTool } from "../window/Card" import { ToolButton } from "../window/ToolButton" +import { Tooltip } from "@heroui/react" const SmartTransfer = () => { return ( - - - - 智能中转 - - - - 选择文件{" "} - - - - -
-

点击或拖拽

-

智能中转 .dem .cfg

-
-
-
+ + + + + 智能中转 + + + + 选择文件{" "} + + + + +
+

点击或拖拽

+

智能中转 .dem .cfg

+
+
+
+
) } diff --git a/src/components/cstb/VideoSetting.tsx b/src/components/cstb/VideoSetting.tsx index 0908f5e..aec9ab5 100644 --- a/src/components/cstb/VideoSetting.tsx +++ b/src/components/cstb/VideoSetting.tsx @@ -2,7 +2,7 @@ import { CloseSmall, Down, Edit, Plus, SettingConfig, Up } from "@icon-park/reac import { useState } from "react" import { Card, CardBody, CardHeader, CardIcon, CardTool } from "../window/Card" import { ToolButton } from "../window/ToolButton" -import { addToast, NumberInput, Tab, Tabs } from "@heroui/react" +import { addToast, NumberInput, Tab, Tabs, Tooltip } from "@heroui/react" import { motion } from "framer-motion" import { useToolStore } from "@/store/tool" @@ -21,13 +21,14 @@ const VideoSetting = () => { const videoSettings = [ { type: "", title: "全屏", value: "全屏", options: ["窗口", "全屏"] }, { type: "", title: "垂直同步", value: "关闭", options: ["关闭", "开启"] }, + { type: "", title: "低延迟模式", value: "关闭", options: ["关闭", "开启"] }, { type: "", title: "增强角色对比度", value: "禁用", options: ["禁用", "启用"] }, { type: "", title: "CMAA2抗锯齿", value: "关闭", options: ["关闭", "开启"] }, { type: "", title: "多重采样抗锯齿", value: "2X MSAA", - options: ["无", "CMAA2", "2X MSAA", "4X MSAA", "8X MSAA"], + options: ["无", "2X MSAA", "4X MSAA", "8X MSAA"], }, { type: "", title: "全局阴影效果", value: "低", options: ["低", "中", "高", "非常高"] }, { type: "", title: "动态阴影", value: "全部", options: ["仅限日光", "全部"] }, @@ -51,121 +52,127 @@ const VideoSetting = () => { ] return ( - - - - 视频设置 - - - {/* {tool.state.VideoSettings.map((option, index) => ( + + + + + 视频设置 + + + {/* {tool.state.VideoSettings.map((option, index) => ( tool.setLaunchIndex(index)}> {index + 1} ))} */} - {edit && ( - <> - - - - 非常高 - 推荐 - { - addToast({ title: "测试中 功能完成后可应用设置到游戏" }) - }} - > - - 应用 - - - )} - setEdit(!edit)}> - {edit ? ( + {edit && ( <> - - 取消编辑 - - ) : ( - <> - - 编辑 + + + + 非常高 + 推荐 + { + addToast({ title: "测试中 功能完成后可应用设置到游戏" }) + }} + > + + 应用 + )} - - setHide(!hide)}> - {hide ? ( - <> - - 显示 - - ) : ( - <> - - 隐藏 - - )} - - - - {!hide && ( - - -
    -
  • - 分辨率 - - { - tool.setVideoSetting({ - ...tool.state.videoSetting, - width: value, - }) - }} - radius="full" - className="max-w-28" - classNames={{ inputWrapper: "h-10" }} - /> - { - tool.setVideoSetting({ - ...tool.state.videoSetting, - height: value, - }) - }} - radius="full" - className="max-w-28" - classNames={{ inputWrapper: "h-10" }} - /> - -
  • - {videoSettings.map((vid, index) => ( -
  • - {vid.title} - - {vid.options.map((opt, index) => ( - - ))} - + setEdit(!edit)}> + {edit ? ( + <> + + 取消编辑 + + ) : ( + <> + + 编辑 + + )} + + setHide(!hide)}> + {hide ? ( + <> + + 显示 + + ) : ( + <> + + 隐藏 + + )} + + + + {!hide && ( + + +
      +
    • + 分辨率 + + { + tool.setVideoSetting({ + ...tool.state.videoSetting, + width: value, + }) + }} + radius="full" + step={10} + className="max-w-28" + classNames={{ inputWrapper: "h-10" }} + /> + { + tool.setVideoSetting({ + ...tool.state.videoSetting, + height: value, + }) + }} + radius="full" + step={10} + className="max-w-28" + classNames={{ inputWrapper: "h-10" }} + /> +
    • - ))} -
    -
    -
    - )} - + {videoSettings.map((vid, index) => ( +
  • + {vid.title} + + {vid.options.map((opt, index) => ( + + ))} + +
  • + ))} +
+
+
+ )} +
+
) } diff --git a/src/components/markdown/index.tsx b/src/components/markdown/index.tsx new file mode 100644 index 0000000..0908091 --- /dev/null +++ b/src/components/markdown/index.tsx @@ -0,0 +1,27 @@ +import { Code, Link } from '@heroui/react' +import Markdown from 'react-markdown' +import remarkGfm from 'remark-gfm' + +export const components = { + a: ({ href, children }: { href: string; children: React.ReactNode }) => ( + + {children} + + ), + // img: ({ src, alt }: { src: string; alt: string }) => {alt}, + h1: ({ children }: { children: React.ReactNode }) =>

{children}

, + h2: ({ children }: { children: React.ReactNode }) =>

{children}

, + h3: ({ children }: { children: React.ReactNode }) =>

{children}

, + p: ({ children }: { children: React.ReactNode }) =>

{children}

, + ul: ({ children }: { children: React.ReactNode }) =>
    {children}
, + li: ({ children }: { children: React.ReactNode }) =>
  • {children}
  • , + code: ({ children }: { children: React.ReactNode }) => {children}, +} + +export function MarkdownRender({ children }: { children: React.ReactNode }) { + return ( + + {children?.toString()} + + ) +} diff --git a/src/components/window/Nav.tsx b/src/components/window/Nav.tsx index d267232..0ecde4b 100644 --- a/src/components/window/Nav.tsx +++ b/src/components/window/Nav.tsx @@ -2,8 +2,18 @@ import { setTheme as setTauriTheme } from "@/hooks/tauri/theme" import { useAppStore } from "@/store/app" import { useToolStore } from "@/store/tool" -import { addToast, Button, useDisclosure } from "@heroui/react" -import { Close, Minus, Moon, Refresh, RocketOne, Square, SunOne } from "@icon-park/react" +import { addToast, Button, Link, Tooltip, useDisclosure } from "@heroui/react" +import { + Close, + Communication, + Minus, + Moon, + Refresh, + RocketOne, + Square, + SunOne, + SurprisedFaceWithOpenBigMouth, +} from "@icon-park/react" import { type Theme, getCurrentWindow } from "@tauri-apps/api/window" import { /* relaunch, */ exit } from "@tauri-apps/plugin-process" import { useTheme } from "next-themes" @@ -46,26 +56,39 @@ const Nav = () => { return (