From 9375f134db822cdb2924b317d983fced907b060b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 30 May 2025 14:09:30 -0500 Subject: [PATCH] feat: stacking --- _package.json | 10 -- bun.lockb | Bin 270558 -> 305719 bytes package.json | 5 +- packages/core/package.json | 5 +- packages/i18n/strings/en.json | 1 + packages/website-ue/astro.config.mjs | 1 - packages/website-ue/package.json | 12 +- .../src/pages/[...locale]/gallery/_index.tsx | 133 ++++++++++++++---- 8 files changed, 122 insertions(+), 45 deletions(-) diff --git a/_package.json b/_package.json index 03b0424f9..de8f5957c 100644 --- a/_package.json +++ b/_package.json @@ -54,7 +54,6 @@ "crc": "^4.3.2", "dotenv": "^16.4.5", "lz4js": "^0.2.0", - "ts-proto": "^2.2.2", "yaml": "^2.5.0", "ts-deepmerge": "^7.0.2", "@types/decompress": "^4.2.7", @@ -69,34 +68,25 @@ "progress": "^2.0.3", "puppeteer": "^23.10.4", "@astrojs/check": "^0.9.4", - "@astrojs/sitemap": "^3.2.1", "@playform/compress": "^0.1.9", "@playform/inline": "^0.1.2", "@types/js-cookie": "^3.0.6", - "@types/three": "^0.160.0", "astro-compressor": "^1.0.0", - "@astrojs/partytown": "^2.1.4", "@fontsource/inter": "^5.2.5", "@nanostores/persistent": "^0.10.2", "@nanostores/react": "^0.7.3", "@nivo/bar": "^0.87.0", "@nivo/line": "^0.88.0", - "@react-three/drei": "^9.115.0", - "@react-three/fiber": "^8.17.10", "compare-versions": "^6.1.1", "echarts": "^5.5.1", - "immer": "^10.1.1", "js-cookie": "^3.0.5", "markdown-to-jsx": "^7.5.0", "nanostores": "^0.11.3", "react-device-detect": "^2.2.3", "react-promise-suspense": "^0.3.4", - "three": "^0.169.0", "urlon": "^3.1.0", - "zustand": "^4.5.5", "@types/bun": "latest", "@types/node": "^22.14.1", - "prettier": "^3.5.3", "prisma": "^6.6.0", "typescript": "^5.8.3", "googleapis": "^144.0.0", diff --git a/bun.lockb b/bun.lockb index 80bdc4b518423befcca9d9fcee5f204f4243f944..88ec7b0d0ecd9129fa2c58944fb7b1da28e3e412 100644 GIT binary patch delta 77240 zcmeFacUTnJ`Yqhu(Aq^%zyvBL44{H2YJ*^#P!UB1l%S$yL82r9#l{RMDwbLp5Hq4; z4q$eSpqMe|jEXtOyWXm5r_X$I&b`0yxzD-(Og+=R_F6l=``xiN$lN|`wEL3DTpO#? zgF**=GP;wn+?kozHKbGeY16%P{_v?&5%~G;wyWyUeg%cP5_<0EcsEvGzb4~}L=qSo zo{$<5o)8-sl8_J{5_blAZHXj3H8DORAUaqQjfC~U<3a+05)hXV78eo%YzLizzD7sD zmLhMCT53X10oDMTi~5*&>y&_~NJ&84=-2>tTzp7)R8&YD3JQo%h>HQnhXusN0uP{6 zGN2Gx2bc>q25!?63QmZR3=c%Qbm*plw+e}*2{07AKJXlPGoS}Jm9qo9A)5BO~I{Ti25CJUrfdTzsTNQUs3w(wo*|-%4%NvyhA$ z>IUnnyx6$#_^2`Ql6dH5;7Ot3k<=q2&`nhA1|Zoz7)W+>LO#mB7he?L0Qrmvp_9WB zqr*ePLxLsfhQ!ff63HVJO8G*P6GAWm*nF9p+5~Cgp7i*z@Q85KWe$&$Ejt?sZOa2v z9W|g+?~}(V{t0xl@j8&|eg(s*GgHTfCj_CcKj3(BK_nbZ>4pHQoQ=>?WqK|Uov2Qq zE+&j^D)=T8NY3mJMA_-N=yK|uDI!Jysh~m&VH9*kIvU27Kx$lqSf0O7LAooDDhvvW zNsPugKZHWbIR-7ML260*SUw<0KQ3Zi$moz{cp?Ctyh*vKCHGqiIKWcyM0X%ni0K7~ zqEIU#eGMS#+kiBB>a-R-@C}?Qeh5w;dxusTsu6gC0A<+SMrhgAwh{>%m%ac<djOmf(o32gjC@eOkwKN z)R+muRuH* z`U~|@J?hZl@Hk2k7ZVwoh*erPKydNn{(?(S18LN522vL-1kxZ%24ZHV4*@m@+5xF6 zYXO@8U%3kUc_5|R1f)Sd3y2w<9tA`fsnZ7vfpl9SC9DmkzWmTn=)-G3;s<~YfLnpo z^4OU8grN9%$!kx6KL+YSj}C~A35WAS;sX=IBZDOmyadmk1Cpor0m=32c^&hAp(vyS z>mniwNC|y_=$-UFKyrNtAZ2U_tP50#{LN5d(A@x%eiBIecK|83#EJtm0>4dIvCUL%FU6&!*M7kU?PN*89w zCzB*b2gRktCd9-A1cxU>JMJ%xwPK)(23;^eR3wt1xS06(aq*JPh@b+3!eS!Ag9GAl zLI}n%i4BNOi3&iKMnOUWzpAm%6fI>Y)mam!rCKw&axvg&C}!3X{16)#6BU~fFWDL@ zbWlWONFtf}1VfPKO04zR#E`@g$O3m^?O1&~HgJmRU~b0~-md> zgn*zB2_eo=l6z4?z9S;W21M{3aTeSJInyhng%%V;AWI9QSXaG9>O3*M=6vG|&d+rh zA(`b^q1@2O06M5iCZm2sWY>)Jc<`Fw!Qr8y@S7w!Bq<;g4jTrYrea_~e28`DjuOm< zka%=WPz<^a4(fw=v`3vD6d9jP83SXILtvuhXo6s;Nus#8h`1U$Ii?bv9B~^+?Witd z3F3)w5%Vt*F(@n`626qo6L|)ZrlL?DrWoy~v@UB3{AhV=K;wBq0|>}p%m$;!VgkGhl>+ZVnZa4z)9bT!YSVsa4P>8kSf-ksT)m#|Ea)K z1ZYZaN*6ql2P8wXfmD#@u&oBCg5rQwaCkzzb!d2Wh$f%r@E({L8cIjh@Q{!YWv7mk z9jKVf8#hfTKL}VG9EW-}f2wafT^Q_fS)oD5i$C8VD&VnP;NLXP0$!XTOrB!eCRslwQRgfQ!fkd$#@;dG#tgvW;@hXC>Rln`$-1|tDz zJvuTfBt9$>U8L!nutaUhL_1e9Y!N9>xg zs3C+OD}@ZvsEBwRDy9`|`zqm(@eMk)>=BR({AbI42=!wg~#^C#aboyBbB*U6-5L!MH z+#LKGIO!w6>jJw2sbL@BX)5myP)!j>5TJ+x5i@{Pfm$jUHV0S-d@u$Kjb4l_?3)QO z>}H{Y1R%MV^q7zYN$eJ(A(~gz>4>L6Ylr;Q(9tN5IQB<1{}QfwB@GI<4v)qG;@`e| z{^dPT^Zs`T?jlc|-yzHr&0EsHdk^H_Zjk;~9a~`(YhG$KCt1x&m7iYLu~CP23oUO{ z%yy{RQXO0(WUEyyH1w|rTFvqA-yQojr!viHO>;WaoW3-NEY0Cdb1W23gX-VMJf??E(8!ur=Nt za!ZA-$`&!!Ix;2*+bEDf$i-SG#HC<-#-JQp*8;I}hhU*>cS_)iKpOiefYoSa&OgZx zGj61AQ!Wg-CP0122Ef`{`17=o?=6sahNnO(ztLGij|Eb`nCOrMIyt@)b>ZGr(# zKoextxgsp!RhNZj=!%G%^ONReY%%6vPs9z7zbWz?0m<-Z*9D$^LwFY(4>X~n5Q6|& zSawsW0O!nr$bjIG{ou6B6auMB@_>|1^9qs@5E&UBpCHlPsGULuwCr8ICM<^u;5ETn zAnh1afaIx}cZDJL4ydNBDFFe(W%q=2QgfCcBOG}pA!0$~_khTF$u4kOPgeuUL*78@ zy3rxg@hQfy(Vfs0?_mhNbshlL2d)Lu!mT+dx=OKskwwLiG!-X=Lm?V*`XIIp2Wq)&|t;e=DCD}V( z$7Yn~EHyZJb^D0ACe7w=cW%^b-39gaxlgX%Hk*5N{=1t4rylVfa%8-zAQMI;@Zv6V@&Bh~+j{B^?-mrt! z-kS~0EIdw5WbK>Ss)K)xYgT`=`BP2#vMXcLxgH(bJYAPn^YZ0tvFzfnYi-7~P1y7^ zymj606SF(7Ju$6!p7UCd2Wund2X6MN`?Fc^gPSkT4yu3h%-*U4Q7NanM2a zX~(gC&a*6256_u8H1VfLW9QF{Eyr5z@%XIn$ryB=e(L40I}IM0_wQ5Ja+Rimdd}xQ z?q|0?y_n!48$IE{srNHObx)15EzwzjBCx~MurZBQ_k4Q#Djh!;A2!z6KlOCL5U&pJ z6IT@;89B+kaKl^Oi}x?59PvvITJu$ZS=FHn4lZ%eFOBmXFm(NZpBdSu{#TvXr8n5> zqh5A%Scm3**IGZ+f2W$v)(YO@-Q?hvn|1GcjC{55{rOQbZo7szII%0a)6ZwmjC0=I z)o;+Vx~k^@gVqUlui`e(?a=Y3sr9DGhD{y+XgsHmUqH#8#TFi!mp3)?an(!h+vCCT zVQ<=h*lDnE`Y#XP(wKc;)I+)*{jM0g=SSCk&)#jXRjSl8M;J+clUqIA{AkXbuJa!) zY1poP3-`kK3no*aG#UE!$I834Vm;4Zx%K>E(#{h)!Rs6E^KLkJV&uM?TeolQUgu73 zmxGEly-IKMZp&wVy%2x!XN89ob2@7Fr&WXA_F31~`?{yevn$=Ewo-gNdAnNRonx<^ z(%R_MTs3fByX7ZpQr9%6F*aGcWUS%k{qNj5KRWIC{$;Zo`To-%?o4;njIr%=n>3Nx zcYSv5i?Z5FNym(SU*|kD7}w-(D^KHmbE~zT$Lv~lwD!%D%?5`J8nj|f*p~_Ey4`m6 zZDV3<@F7oavVBXlbh&*Ed-H+&@(UyOm6sQ+pHg=HO!sr!yaJ~V-P>%2t;Oees|=1c zyW-BdH)A)nagzmaUYOHvSa!>uT^(3k%Ppo!7mm&|UwQ1s?vM^^UKBK#KYr_odFt^M zFWI}6{%rbeMu8Q=9#cz)b@y+_cDFK;8gcHwr0wQ~G77w4c1Dyg>pst(h!=>I&GAq& zIyw>wj&td?*qoX61|S_lXssz^rB-d`wN)@)Kky*y-Z^ zA5k*ay|q#{LzgW>+$mjFuZ@bSBmZ6J0(%7r*~TYirhrkMdaSXtQnpLZmbFpIc2#Hf z+N$Iiu+O&#fVLevQS|$6X$GTdpC|Y`ih+3b<&@W&xU+ zuw?*$6IRbo#Vo~|*i+*l*=-Xx3!<`?AfltJluQa3^^FcO#UZePVBDlxQd{(ryaqPL zE^KxWN5%yqTRx$&ol=%uo7L;2lC7=Hx^_}AR}t5iugAEPlF`K$Aq)#+YbDbKY!KqA zvFAG|<-_Zu*V$}4N7=%*|g!v5GnNY!4+goBaYy6pMZO6DY3AkT7o zD4EvS;T*tp*z-sk1m?r%!%$&Pf>FL|ETz;llSo{^VXN`f+i@reHubS^I?*_1k971Bx}%;&FZOQ z(s4GRg#=>{Ev*n4ykMtf8nn`kIAoQ%wPLe+shEWj$$@-l%igzQ^_*4Aa2$206pV)+ zO8E*f2fp&_2vOw>KfYR938Rfq#l(S$V+bR0KbQ(B;bW9w(^}In83>Kgl+3&V>j@?- zdvD-w{~P2+6XPf z03B+t0LjwS#JmOT0w!2~v7KNOZ-t^AraX<6-&IV3Kqmhd?m!r$E%a+IYy_GVOg@BR zNFkJ%hiU$&jSHFT;Qx|;G}iDx6SP$*PC%fYMN^={9A5tyAs#}YRti}~N4BiLN>;rS zt2aO;bM3^s4p1=@ab~6gC$#en7>#CZUY_=f&JsyK5W&mKz^Ku}bg6|IJ5b1m^)dj= z8H`^q0X3$)o6w(W~7kW<3P55Jj@~3V1tCla`qX7WSJx220j3`AF=L z&Q!jl1#H!BqGARFYK_J#%p(YbWmp&$R$c$%#Y_m=PGjys2<2JA(jlEBEz3Vxg)1*5e@K}!u|g951(Iltt`fl+-z%Hv=(BZN+E z)Jy0&VFQQ*`?Kc`fsygFsn{z}9#z1%P&Un(Usoz14y38Au;?w+sBx}*G=wg+Hp%w( zW?j8ivX8ylEI@}oY#Bh^ht=~@F`KbWP~#=6aR(*y9gJo@b`@vrgMEdGT!&}l!6=U3 zM`R^^Syx|`tf32=<*Q<5yJ$`|IX#uK<1Vb;FcqVN;fbNaTd$OL?Z;*fQ^_XuW6OrA z^PiS=BFoq~`juU$q6Cl2JWgM-5P&{Bkg_|Pwea0)@J zKXz^*wiF>DM@x(hoPiLVjZg?5dW#SaH_+VOHK8pC2{{bmX~C*cgoJd*ert_9B@%DS zD@*ib_54+`EuO3^;D;xh<*#D8VJ1>{OZih><`7mdKqV_3!ny{iW z`LSiARZRFOiNuC?&iT$t88?b`4Z}%!6q^->lQI_34v53tvsKFa`m=iBD%oUz)-_zk zTtb{Z;xJHgU^561<|PJWAElx@7$(A>XTYf>u-X2O%t?f75mk-F8Ibu5hLsY9CGC;2^C&SpXu_~r|xYnVD zaRd{(3SO4a0_(}ILubO-vN)B(8`}(~`tNN(wrULP8n2Qu5o}hxN}d!!=9kAg%C<$Y zdI>6~W~8w2!ESgrAd=03$U?*nMsLwd^#F{VBQ(?^>UVdbp`%3xS6M3+RbZ4-vrID9 z(SjhQZkI(xv#v=hc^*W}kuXQu+i12dNyW5{5n9ckvY0Voefa8VIBWs4;SYhg5fa8P zdC@5L_ZY>Z=p4(sCaYxWv1}G#TP#}!cooa)rKn^b$Fi;|DkgEPU^l;RFdM+A6ZkgC ztH2!jPPL2^DwneE=#FSG8sBohbC!WoSAoGRm%uQ^g+ZdQi5KGd7bUj)HbxghN7||7 zEBO$exh^9_Zbji3S1oZopu&aizzeJc7O- z))nm3Xvpc`ad<6cj8i52tGj|VPEj(>U^F7&cvw^jMqMY&&gWp{0E}Oh(q_ECu*RX; zQ^CjHfUizYCTL}M3-T|`li)OArrE4l%hjEGJY z!5Yt2GP}X3nYb}YP%>Y{Oail03!{x+F=gRuHfx$nR-$Ih03Xz>-gK2=2UOY}*%he4 zL@<(3K(m8p!n#M|#d(s(bL6WjU}P14ZZg~tMk5uOCG{~C_|_Os77k1@h%`TV(HkPI zqm;4%UymcBfW|wBbx%T%|f)LFB23b?dFg87tF_9wk{XI8Gr?g*cM#VVL^}(GCmOZ?ad+5S#`}u;Y1xIUx!y z=%6&51J+%vA2Szi%3%yLgqp}ELBk-K1hMD8B!pN2@n3U8tdl8t@^^N&`#Q$puOhiO z2O?!h8#mf3#1vQyB9(?#SrSQqM8O0sP#CD}p`MHaBJFtm;%KNdQ@ElLk_h*6h8_@c zO8he))sqjAx`JQdnWtb>3O_RqJI|6x`VvDi*k!2$MluEvoyAhBv*+9J9dJn$h4Z{? zHZDGpq$Zn_tTdbtM&r^5r5K7+h&cn1T*mKDhDNi6S*C*|`g~85TOjs85~{tq(EW!Q zU5K6e*I&sTjp6R|l!l$bXsA7?&i4ymwPC6PB8^+DEX$S5Q84OU9B%q3<&wEzbnR&e zFBm(4k;OEd>FI;|_!*sn2pUxj%Ym(7}?Vj^;d_emJmMaf(S^We?I zjw9=`h;_|SF$s$V2MGJ$CNN>T(2D;IY=mG0?i~{r3mu|q7jqPX;7QC;x!w|fyP52y zKmZ3G>LaZFWnd$JGs~sIx-K}s0?hw+oOhn^_RQy#mw@3wo9(1PfCezKsO%NXv~!#W z8}K{7X}+)&@@2~diSgTRo#mPql0AdKgyO(tdCS?Xh20d;Tz;2hw?dpF{L4(%3RZ76 zZoOBqt^muGY}RZQ6S7hm>p~L?z`TBEueC~J236+=_Ger<*x=tO%~$_E=D~k4V0hC& zgAs7$6S)tv*Ih$iEuZZ~0iivo5TZdURL-mwQlpFK+bcl+tnDY*5KTgvM*-_PPsQvl z_?;Ukw&v?Jdnp+k1}6A{dVdR;P>*|tl6eXCyD)jrLNMOD3laM5Pv#+*&?A@^a@+M7 zKYXfL2+`2v`$lmaj0O%jDP2Z4*o?ylp<>}OXA+nXqJ=|P6&NKJnB7K=b7gCK0tN0_;zx9RAIyfO?y>Mz}m4OvTUdtq5s6fgh;kc88UQPMgKq zE8$lpES}waGu0tdm;Rm=pCHgWhz?0oG7ejW+hm;brsA~)OmOM>WW0j>$=WN8^|uNu zCM}M%=Ni(2#ir-F$Odj@%W_q+TU%MZMJi_6HgRQT&*#`HKsuu`;b!G0*dQ?Bl<2ly zSP}SJFj>ZS)^#yn#J00pi&gTsh;w4I7dtXGJA^zq*4ioMX<$Qm{Vqb}b{q!6aW38| ztZ;Z$#19C3z&t3Gd_6)qp`x6J2+^p;oe~yOn_YsD`uwqcEEugSf|W&J?tIDaVM^K0 zU2ImKO5T4rxgG~{c_u>kd?%bm$XPG}N5xjfd{y`$d~tMS&jC|{VHw1+^aGgS z5X8yal(1R(Dki!_s9$*FSzp5HEmtv>5IZ8DAiC^fvzDu5v-YrMh&!@JlYs`%FEC1p z_mcifx!qpW$GR0b=^`+Y&0gUsFGdKL-w5gM(}V{94lVs1dWw)MpRU7xj4wWv`aAT; z?~vXBO{~Z7&|*GRzSc?ix77NeCRrRpeFRhZkl`99T|Q90!by6F&05n<_Yl9F!o)Mb zLnencn%D2pVm@TJ+DUqt%_>mIYyCkNQ`rTM@@Ry7S;Imn-QQBPBNE(IQDh=QethTx zLg9SK@hII;QS4HLgxD_#jpjA~V{|V?vBwY^#ky^9(mhTAlBOUeWVriV>vn?br`TMC zyeY)ILdag|du)NNP6|xI@28`{x+9Jsbh6_o*{qE!rfI2Wc;M}W@&3)In^%FUG#QwC zA`{+68kY%0qcEiO2BSfSWe3$}gLUAU`&fGgh!bB3&G2tv;>f|Ia5yEz;k^(`&lE5k z-NK94Ij}BZIDz(1D)deZahf0TF#{n`jlx~)RFMg$3FYn%}nzu+oHf{`hjHB7eh46CNW^1*m8(OY08 zU}PU}KJ(*uN=!mUk8^?(ewUtjjxF1+Vs=9pO2CStsC8agamAPQWlVJlyiwwhIhi5| zR0sc3!8{P7g67lcI@s})?E1V+xpgzcb|-MBzEZcNRKLUm{iHa<5nDonWh$_Ar` zVvpHxFTKc??NZ4aTw?WhtKkF%_ZSd?LL3$t%F{o{hJU<`u$9iMU^BmEGhJ`}o@v%fS>i1=YrjfX ze2XmuFt=H~11e_lZNVVnDkckz9E@cdJ#q+)9Dq9q9ChD=`GW}-4Y@-5}fKVbEasF+_6 z#YMo!UiYEsS@|44 zlC^uz>YY%@W1hp?tlLGT{F2(T-OG-u6-Y)OdI-(%X^M|7J}vN(;?oizdbCjnZpo_xQaUSq2wRJ~Hj>^( z)U{AeLr4;iPhEV}VghZXjOq9gPQr&CLgJH&;2|VFg$N!(;!}y>AtXMH2p&S>(=|0t z7lj!>dj1Y6Lk2#CnfTD7jpUJ;_z-5}L+NJYLytC+J_n!b_$<`4bRh^ua3bac>G?aP zbc^`df5ke`HsM3@o5gr-B*V7iLx^)PpH9640eT22Vi!JC0M48e9enoSL;5~^$l@dT z(DQdl`Hu3je~&c2uu1dfodF`fT5?v*Ku85(H{=of8lMnb51qM1-}z@Z6pKVi#j3k492*2S&>AvGb z4pQIkX$Z#_vBFce{z$t$- zpaIYZNJ-k^OHC1WqR^34JcJbNgfCh|`v55&en*$r`-?aLNEHqgaWK#b+#g5}AsHM5 zr2O=6B?u!#jG^E8r37&h@Sh}J!~`OE2q~C|FKX#{Af=xOq`@>DNCsp8=^-S2E|6Nj z07y{_MZN?`<*WcwxH$--hF6|f&j4`tkef5$xsGA zQoHNZeH9e}@!rhIkWT8!;Ur1+8V`I%W+<32lJ1pgU9S ze*@M37b+qb_Z7?eJEX1AUyT1Ns{bndm$~}iTK1m|sgD+=iY+1}52T6w?~vBf>0zz8qOOhn_$PrXED#eA5??R!ze6f;1L6rcis}9nQj$&h zqORBtBwiw;pY{rY-$)UA>FfUx$$))GPq<&qM<`{}D(dmgJ1E8;5@Y`pQYnYUbpIzv z%U>zdlea;-jsJ^c#5G_I@Fzfe2r2kX#3~>e^j72_ zfK<>YAU%ZC!p~y-Hy|C-s-d~mb%sDXoYe1Y_C!s&%MGqm_HUUV6r2)x+EFd*BR~P;#mn?%o^LHzdPFqLB zgy(>I;MalF@;g8>@EMQ}TO?9?6CkB)2&9Hs0%?7<1>!$RCwx(SH<3G&h{stj&i~#J z$ihBAlr3=;d4Dk>A;k|6(M{B~k>Ur6@q>Wfz-I%=Lkq<8gk*35kkYSHixKO9YFX1PDn1?4x|h_M4gb*?E+H1eL(We2_XKHoEG&9MDP$&{)-|fB(A=M0JZq47@>_+ z!F5q5qzpGiu8pMMgifx13M7M{i|Mqn9&{O5`zNaZD*Tr@`u{H${YOrHS6ghs{}rV9 z|No~Ta(Nxm5JGafDUiCXK9J(+pXd@d2hu}GdLt1V1L=VmeJe5E5=bjwdodj$#oLMeZ;;wABp^dNiWxeK83;*Nid-8>r$6pOgV#xnC!`8h zA}6GD-9%1E|0hTWxQqEc)MCIB zNCgiCQj2^=J{(AoHj)&8FIt*ofmC3km`)q1oD}H%5-i3~_zSAF1@c6im_Qq;ph?il zz$rjl(XxP4a5j((m?y^12hu}G@tnvBsr+1#6Cz$MSt1IAR6(A|35n;6TpOvN<)ThV z=~jxIkSbmyazbhV{Rt*|w2^LOByl_(8=|sK;oywblOPeT!2o7 zQ~=4~%Obx9B#+$&^85c?1jxdNBmf_a37!M#`8%X^Rbu*AK&s%inEro7^Tyy!2@vnUwPM*-d{RZVZ z8Tfzo798dAm*6!2{$JdJ(|SXf;QapIk(!5xkb?h(TX245#3i_Ji~HZd1s7J_BB`S= zAOE=p=Lf()x8Qwg1;C??|J;Jpq5khKyZQ6O-$l?WGDCDFA@P51!L@J0$s_;Vg7at4 ze{R9~Q}{o(;Q!o$|I6(+RtTQcQlWkOO*(N}U;nuU|K}E*ZWI2w1*gl8e{RA5Czsi@ zjtJ?o|NKuf{&NdXuKVW}yuWzy_&>S*CeKlNx&i&?7W|)E@c)Om;6H29uN~6E&U)wH zL$`oTaKKXh4(Kvae$B#ZK8~U}>D?MM>bx6Y@W^uK88#tYg(zi)H ze3@f!y*C}u`#=|q8P&`Nhh`V9T3c^lyAQ4Q&HY*Yu4-Vfm{E%sO)eNd=CjM)K6jf2 z1~y47eY3mU%=1R3?*r~S>AIVwJn?^e4vm#cghu0^!o2rpb3YgkFus%U^pG;KQLX-q z@0;vS?%u%I^i%uKvAsqGm6T3$sK0V#9o@5@4;(7J4yxZ3&ZziSvRFAh)t(CtkT1)B zwx-=htwO7_4k*;+qapj@eSay#_W0nlH#JAKI~;)l|@G5h1QDeL#Cztos5{NydgpIZ3rEv?1+;=4Ax z72kDO=8LzqE*pUFdTa^4OEW#%v0{o3Q8c-ITTZ;Vo^(PQteZdkx>s+4euZr7hS@e79up;ky;<@XMQXk)pwQ zzxqq9*htvumK&`ocQg9y~sUcS+h0u=sLV`jUf}adRd#+Fh zp_l|i9SC-uuMUJTIfVTrbmACY2&UB_MCn3MawR03B*9z`!GQ~xLrAU;p_~Lq&a4^) zO9h0qY7n||r6gP>!MZwxZd^)r2pJ57TO{=0tP~LJ^&n&`AoSv{k?@p+t_+0UTqXk{ zS06$Z34J*SJqRua5c2dO^y4Z?_)LPEK7{_VGG$}u$|m>NTfstLiHD7=j;HO2SnVtW6+{;!;c?WYmUmi-Z8qsul$MIuNpJK?vfm zk?@p+uC*bAaGA9sdJyvJKnUk5N%%~HTU`hd+@iV=)|o>1K|&PQ zuO0*+GYCcXAjEKANKn*=;AaY9ELUg>p_l|iGYIjVuNj1}1`zg>kjOFhA(%FV5LF+- zIIe_*lO&iofRMt4H-M0A4xyZc@tj#h2$qc?q&0+)#+8zAl>}>Z2x>0H970B82)9U> z#91|hVBZ8nb|VN=xN9UlC829$2-CRC#t?FwLZ~8P2ItTOf=e?9c}*Z>a+M@}Cc&*K zgqhr;rV!RyK=?sIHrKBi1fS**ikd-~!+jw^(E@^>1%w=~&;mj+35Lxfu$*sm2w^QD z>?dIX$FzW8+6qEc3kV!nLc&QB%v(ZO#D%wnkZcK|oP;HuSt|&ZRuIx!LCE7uNw`Xa zwIzgnF2xc;Mr#PSNLayHSwXOG10mZA!Yb|>2~SDr+8V+dF0(a++_n&^NGRYO+CXrz zhLG0=LLpa4!eJxk4KV z#UvQEgRq_RZ3iK&J%s%v?Bp0*2&Nq%MA<^v&6SXFk_7Yi5K6f4_7IZoAe57^mow`C z!LlQSvou%H=lUxo#DOX8Q#`RDFPH~F}PIGSv%DH~_fHT|*g0tKg zf^(d^1K>PYNN|CZb^%=EdQi~Ev}T{HrG@IxWlCo+~v*_+~cge0q%2?2p(|P2p)3ny8|9^nFNoydjwB7haP~Z zTn<4cS4r@U>(LYNoLfZjf_pTrxZ1XE84QSK1xaU~?2B*EMRf*BX?0U>z^gmMxZaAuwmEQdl! z^Mqi|m6C9k1nVIX8gnT_AY^z!xJ5!!&T1$Gdv6HYLm^mj*GPCuLRT*cEx1fC2)RBG zsz_+XIe0^G@r97*4Z(`5B;hj&Zaxs&aEp8(tQ!X52MN|(KVJww!yy#;LTJZ*Awe+$ zg5NL*?YY8X5Q<4K91g*b^BoQ$%n!nT5;}3r2nePlAw-RUpyWzOI7x!J9|Q+3+z&$X zCED_2UwRT8X6LFmS%jDnC60O1x1Jvb|W2=;*xvi%|S;;xbK zl!UGU5PEZ&0T6P7AXJgimvab&;1UcWFAzdMu9Ae$B)A1Z=+7+*g0LlXvTXDo!G7zi=k7ZMb45d2~xjO7YrArzBfI2J-Y=Q|ccSiICwogF@W zaQ$|f$MnJ;w?D(^FEndrEDN66B4*08T}{(J?%FfudgksSn{-U~^liNKT*K?%`c_}m z=4ZtCp9-(K_YT&r_@wn(K>w6Y^XSe>kMRv&q4%Z7x>_!wxAbHuz1F^8HGM#Hlb2@h zhfJ31-&VsiT$fjieLKmd^X%^d|Ip{%W~ucK_rJY%0sdM>TeI+q^Dk`O_4)h^-9pKCZa>T$&{Xfs!)S#s^%!bTiUvIONl^;~O^qTF9>H642AS;hy4vZMD|-+1+*bsyWNKqaJ(SPnMQynU|?;UfTFxI=$cT?mNj}I&;VwpKY=}Tb2cxj9Fy#^>~bO)T50S z2M0L6OxwaBqoH%zO$KWcDV<={@^KQyrjKAbV?xKrb0>o)s0 zS|a?bUt!kH)Hcs)a<8WIidMRWsb5We-q&hHX`L=b4qKL<&@0}yf92uao`J_t%&pku zYL+zfYg*_ipXVhmn@4>1>3g|T$6e$5A2ac>}A2=N`*(NPF_S{pqfw!|GWpchz`acHi!^zDsAvt=CV-v}?NJwNBvk_4Zoc z%hon8@$~wsj#n<(bXkxz!fSb9n|o31Yu8DbV)*>^oyU%y&&-^^ZN*-T4RW*NZCvzU zmiZU$x2ibPc3kwQ4xhL9J{`(D3*+1-z&w{;2kU)3%-BD&e(}wR2`@Xl((F~hZkslp z71s_hMk!-GX6jA3oAmIPPG8$|4TT{qsuH< z@N*OE_R2bQRqy?JSHQRVGzU!bZ1>=_PT68^bKHJf3qu-c5o40J0yW8&j z;4r1as7}|l=95mGXupa3LFPH^djC^u{ykyjKp&@Fmvh;wme0eCTKX@Ue`J-pMfE;g z2HjAOvOIi>seA8N!PXD&=QsZ&Z*~XWtc=*4tyAtOJ}R}$%h5Kkj_g2NSD*O4hil%S zFlD_-t+v@`x=ie~ZQ~`I)HflEmmlpv{Ncln6>H5>6PMMO1$p~9nB6J-HD*l(XA$@= zu=0)Dwk!swkXxtm`(82rN=A>TSk)P38S7o!X=(NSq*-pi6UcGDbsrlfX zi4!mUh#8~z?cV$s+|H^qUb!{0rxv%$ZKY)%t8Je9x>>E13;Vd+%(1mOGVf_lcK=6D z40}v>ofx_3{ejm8NxurXBCCzwX45lz#O>>7JpJwGm~x%G&Aly>m1@7Ev5Lc--$a<_ z7e8%x>nXF&9qLtQR8WIyFKfDRZyO8?U(?fYmj9|5uLrmc8n*m-J^QoGcbl)!mD;zh z*gNWM{hg0a&d;2EH@n4o`UmiuyFL0R;F?GGtLNumg|36^oy*QE99R2Z=-W%ug2y2T zYv>pcf0J01$;`Vm&v5cV2eWAxr!Vi{>Bfxhmj)LEFGTrf?nAg{& zt=`ne9;@cve7AO*`}Hf;z4{O6&`@q0Ve_fPr1GY}{v)@Q0iJ&O9owcZn|1Ya+Nbo8 z;YV+_eqh}_v2~ZzdwjIaFoJuVB6PHF1&X8DfY`QLu|x2WFZVn*wWnd(_H zpY^HZ((%F~kDX?1vj^Wi`*Lsa)_ZA{O#{Xq-Pv^Ep)M}(JUesy$-Kii!dey&NqI5l z`@3If<`fh}bQ)d0qf7l?^1TZJf9+26xLh^bdZoqqZC562oVqS>QlqEk05^A>5FXYTXOW><3WdzY(OO*&9D&+^=-*iJ*b2F@(3{n+=_oldjYU7l6V zA+4dABHjT=gpc*O>>`U%ZJ3Y_;TA1Dj5VzH#Q0U|x`Q+No8$Oc(D{Z<(Rq_CDX_d(_XG z!4}tt++E&s??#7veSYK@>Q>)m*=cVx!#`#%?HuTJ=u`ZP38&3wbPsA_sh0E@^m*0QkbZ&h zMmBx3&A0aSq*+|rWSBR6aN+*;Z*x|ic(mu$BllBjdR=RJ=I+UE=we*EySwMl*deFS zHmkYv*^O`h4L*Hvs2nb}_S(7nY_IkX#b>&vGEe9XrJ1?(M;bJbZpVk+T`w(&c-<=_ zI;s7)JT~J)?Pv@A$@+WFjhi^-$%N1|$uqltj*c-4-nCp3 zwboqQcj9_Mwb1zO{>pBhQ-I%ebY;5Po53+V=w%+o* zd|at?&B&57vxe)W58cvh(oNl=zD%?4?casF${uc*t$ZCg_Rw`j^J~=}EKOVDc)@u> zl$Lpg+U9M{t<^K7_R_S-dNn%?TI1n4;mGY{Yxiz2n>w>m&@u1N!O=H=PJ1!@fLZf% zPyN2MF!4Io!s_PDp+@H3#bXBs%(*+lgR3I*Dwmy(2wh+twlVAgyU%Fbi(hS)1fE;| z?Q6oa+p*I#W*Xl-{IT?6qsP9NZ~oz7@Nm-HqaQu$%vkT-dX4>)tmO+0XrI+gjSbr7 z&HEuOJ$OJmp~@(twvCQt`?1cm<>qHsoLwzZAL=mLrrD$L;CfeePMA$^UfSgL^TL?f z>b^OX%Er%5bMPD-srd0mm&=Gz9$HYhF)<=ke#yv#@U1H(*uC+Z|uR@L%ob-dHIeSOyi2YtPHc4_@*n@UVxHd)DD zp4loV`AzDt9#ywS`?XpA_-k~2;bDvp-+q(8Bu@!n=_^Q39JX6Ku}GQd9*Y<6t* z=6REf?S9RfU%llmeS3$P4uj5}eo)8Cr(l}d)V<3F7%Zx%4nNSuJXSffWx8xkZu;0~ z+40;DGH*enp^d_8&QJzyEbn^Vqw`Y9#eT- zCj6-Bfw&11_Iph9IIy`Lr@KPu7|m9Vd0Vy3i}~2I-rBVj_o<}X7*RP!;SiVU!3)b4Xf8LGks{g;Z5>& z&pe)f#1%jM`_p?nwaqK>o9httF)#APsnA&k$8$1^13z4gua|Ro#{3y!jR$77pL(+6 z{pL%znqGKOQX#)p8d@cZkB*pDTHbSMMErKEzT-H9EUB4#?u3XNox=mKgl@bwrbd_N zqdq1UnFlvG^yVvL)yBOzC1vx-(=B7&0^Iz)0tP%PT5Egd`=WxiHiomm1>U%!>>FyJ zWgTrGnn(B5tGv1mMx03da{KPE4Tp~Oof3VtUQu=1y&*a)7IjoC9cx~>V}sw-sb;5a zH#Zn~?ZGtDgdHn<2XMRDZer}k}diQAtA=dE;DrgY8wW^J*(z4eOOPMdq(-oVA$ z_EXHa*i>0#)C1p9^G??*-r%#z)NV@rZb7TCs zA02DfsKKxo^+QthYFSv?*7ZDira9NkWc%TcmV-wbtuwn78ohDMXx}r-Lyhc=-V7V( zwP1=xddIX#JI;I-%$vgQukI51zReT6i3bkun8v9+Uz(*a{F!{Y!s*gsr+|k`Zd>AX8+-(>0Ll?YuM6T*vP(SwQBllI2a<@sAG+8whSM$fBsDpKXbhP-)`Q|*F-(}{$>5Grn7n;^jkjixnC}45q(|dEuRq(Z<-3)qN_8#PdUe@z!Y`lxW|+plgWB%1bM4vh+U3Ojlbc-bMPA!~ zUavus?Sj-9YmJ6VhSjiK=&gQdGd*fdeFNDfql#o-r{)&vCs*v(KkG9uc=I2Nq{q^B zacSAO+uPaThJjzr$s2!uNUVR~{!Y5C(~nhUi>iB#wCcS#V!)|M3+GH3xV>>&qoMka zlN&krz2TU&V~b((!_GcsAI`EZA79Wi?=W|mZtm=7<3g2pO;Fbd6 zEVn2Hf`WzcgM{;3zf=gtBow7WxX67WA#6Sbzwr<%xWe%eOcy{foB-hp=Q{zyNfP#x zaE)WqAS5q@5S0eu23JCYB?rNLB7|F9_(TX-Nhl}b4riu@kdX@^O%355S4x8YA_&&$ z5FT(T>G+}3L+(7mBhG3P;4wFe;0bq);3?OBGN6*nBzVT%BY4g^OaZ*$atNxpN`jYM zkEwuH+#-V4+#7;7T)%06x7-SXcib0(_niB5zz437;3FrU0rc*=ceK;dE$jR@}>lxduiN9mO$;+0V4PSfJ zXKYUE{(M6P{Q+NL5`6 zYg2Z1QL7U@jy|Y!e`d4B_SvnxEF?dZsqHmX;=yXx9tT8#q=~3WuxpDnn4TpPmU+`XC&o+OA zyT|wL8D7gx!dxAiCp|ux)H`Ex=TRBk8x6FdbaBo5;1Z*A<&!JCF3owpb?%H0XSloq ztlF!?UQaLGSdgiIt@gW%ryF*0&wiI`y>P|tnjcdJ9p-`?9}FlP{Nt+SSFcNNmQ*|D zSH0QS^~dLgyd0Bzq@_X4%VjmR%)=kg`~B#i@tpgvcSNs{M&GPvJbXUuyF;%Hn_8O0 zO#0w_%e?2S$1`i&s%DJw^fZh1{und-;F8si;v8Fb=^kGAzuNonxT=ot3mE2}i-3xX z3JP+ihy@E(K6cSfj??jU~n!6E(&>Yn{Rc zL{om>Ki>EAJS59GXV0EJd-m)p=bV|j?FV&wZ__?wN04Z?4Bt`1&g#OXLXz+wi!Z-6 z%h4*Pj>Wg&!jiZ{%2rYuj02^pBqogmrTYp{UX$V=iMr!Kaa;+?;_;vqm&8j_j*`-D z0w_+BSTF&U)K#G5nFxxrBw9}d#q)bmHjz?N64E44E|FrK1d6L9){`=FH7E{~L2;Kv z*U6v+uL0!{DISt2G6j@}r1YKwN*PJ)CuQ1NP|8dNr5qaWR8ShP1LXoK<aX`t9_1ZCR*7NT=(C2lilEvha; z&_+yT&{jNR&`#7@jG(=k&fp92f6(ZLFjM{g!?2U2*1@J*c=C8 z>S_>riQ6P>C85C@5R%2jH6V090m5q%dW$-1L2%3fVewiJ`id7M93`RMIuQDa`RhPP zJqbdd^&kuot=5C!c?yJ0Bzz-u8$h^3f^h=~Cb5o$k*7g$*a*U45wQ`3;4>f`B4MZ~ zya@y>9JLiGn{;7VwY86gX=gzwy%~gWMX${;{z!3*!6@Or1;KZsAA`~2EQ2wk{8j{G z#b5^G#AOEKh2J&=6T~P66UA)?lSI|+2que(45o-j45o@YI}oIc=?sK;!C;zbvJ=5{ zF`vN<@s`0%(P|fhSz+Yict*K ziQ5d;i>ikZY!DL}Y!r_eY!Y=2BiJmaGuR?tFxV=Z96_*6%xAD&yk)RMv^t7lr&!Kl zm(U%n$q4V(U52c`IP7&|+|{s= zbIWhBuDLpJU8%r7USHT=dVZYk^82Upt=&D#5W#~FwLi<|U*0X(a%0_X>*`-QRi#

s4{PMR!4`=K-o?LNPzmfymrk0P%QzIzg z*QGya5xh66;5Sy+4;QUDVW#!w9aD;%zS`%r?@Xuf56tg*ahwxQDPLA_*2G`dB@NwN z;)}rtE+#%rNp{;*e`u{&mZuty@{b(#OT%BYj^)~si`3fk?c#B#cTR1x&uZSnuWvmM zJhOS=`eqh?)fzNA#p)-UDb;5@`rZ^dcy!S|qyJo1&OO@WsPW0wDAU4*KM$PsuB3gQ zH)XRZyg#eLHAlX*zjM6awQWyko_Qoad|^7{7PQj$+XI31_jl-R9p7TrS6_POySebM zZhw4Odb-A zVHUv$vkE@&b7TLLKd+3QTjy$_vTcTr7;ah7uf>H`GZvQbo%h)DjiX}QJw5)*+Q5LA zts9bm?y=~^)P7gpZU&#aWjyGx?BcUJJTO_C)f~zyw@R}a<7bZ)J&$3f*dK96HzuffjY5O3m3Vt0Ji_j5mjWK6$33eSJo0t(=OKAd=&l;=zF2EqGI^+N ze3$RC*x*`LxoaO@TkBlrQSC|X&Yc?AuuQOXr5gTkW7^KrN15)nS{{4&_qX?7Sr2bG zT7-`pvZ3qC3f{xq0*6^|Sh~B^&pt)^UMu)j7QsAHQ~R@=`FyutpSI@a#S8UD8bgC_ zc3bFs`IyDb4s`>aU52)?Jbx_o-G+?d0lWL(7~Q|hntr?Dzjzm&c5hckK>Hq*0}D4f ztiwrgTCLrXC;fQV;@ltW66N5wcyU%2IjNFmfy5+ZN=l3|=?*ft<4>sFB(+DfSHFn3 zSPN_H(kVzPei+Vji`x&n^SV6iaK>Q)(oTR@?0X#BhyT+eV`IE~BrAJT-HUFyaY2`! zKTqMtIFyd8ZNMtd+}7FTiEDzxleU25tP{`Q>W(79Jw75nAtnlEUAL8w1x%wUjLBVl z$HYci>;^5r!oLOlm2}F#OdCa^dmljPS|l#Se2SA~r;}_HEzS9i5q5bb%RCW1acWvt zX_M{B8<@uS3B*J}|9s{&)Ghs~&PKB7zoq$KI+sj^^SBJgS$A7*U(mhM>+oX=9eu>w zv$_DV7w9obK4>s41)*KmjIt_kE^VR+P1YgAdb}9;AIsY z)j?@{+&E;bC9v{L7yL|2pbr@E<64#?mKM*f1lHj{wKeU#ks@+d8bo`NZnpc!rDWoH zV9H{=QaYyu{OAY{2+Zaw$FJcWM*%|)rA%|hvAkR4Dw865iYq#)gcNv3pb`dw58jy& zkDqq1czqYfChGuFlVehhaS@3Yu0LgZ3=Nf~;>r4etWBTE=hUUOMOc_rK`uYmqMv;A zac%v7l>awa01o4k#Q|_zG0W}$zgs|{UA|&@y7C|Ye2(h5&Ym~K%QPw2^x-e%4^7LW zJUU?vPx6l;X!q=w32y)8pLP~Lce=UA6bqb-ucTvNG(z11$D{Eni(5WjRho}VeC6*TI~qkj#!=3fn!k3S_*Ql-^Y zX|&!FHEk`Gh7r`FfOZsYZIx&b;sn(SAu5eOc!DpU@?Ra5#)ELR^Q7ylG@i8TrSjEN zX^x<2v*h|JjYk`4XRn(Ys6-xUJptGJYpBwkaeYLlC}$(FJ`KQkDqmxjuOw()R9X|2 zM&H<>mN-HV->bjX=QQU%M$g^KfI@vy|o;!ljz3y>!8v+am}OX`S+ztE01d) zzfSXZM9An0zy*L->!k8k#PtRk$Pk-cJXOqh4g`1lomO@BV;(ytD&x6KN zc2#LUxIPUUOBtood~waCYW#}^jhB7^&wr<)-Bg-Cu2a>FyQ?&p${^kcky^!oi2p4* z+~B`>qF2f|Z!aOaR?UC(|?JYkROGp(>v;ZB7{=<^fKj;svf0o(}-~r2x zfW|-*fM-}f1$g-8N?;YR09Xht0*r9tXrLR=9f$#X06l?NAP$HJ68OV5iMZ$mBmv1l z3eX$q1M~$_fqp=LU;r=>_y!mR@F4ayU@$NQ7zzvnh6C)#oB(&g4PYnc0vLcIKvBS+ zN68n!1&@R;1h7|QCsr6J4mbnFfRca%;0U~eai0QDfJXp3ICf|+fnR`!zyshua0j>t zuydm?8G&e^8^9X#5{rjRKG?BwcDPi?#2~ zAHN;IW9NCaJ&&_*2DAWL0kweItf~-P)B*AXv5*}H!~+RHBG3y+0`N>=kplDv`T%`_ zRG=Tw9~b}(1ik?V0Wm-i;Co;OFcX*q%mwBF^MM64_d;M1umo5NECW^mlYuF~RDc6C zA7!rr{BZ_$-+Up#cL#jT=Og)H;0SOOn1(ca#i4H{9}zZEax<|%`U+ql#6Bk+=nSyS zUkNM%76VIwg}{7Z0Wc5XZ;NmgV6T4|I0_sCjsquvg8+N~(ZCj5Zw0#GIs#x970DlW zV83Jp*cY+y!NZLF6FmHxp7OZnS-Kn=I25qwXHUU4R25rxYB?Lx6p7iC*wE z_WnGR{|aymxC2Z9rUHM0k3a5E9tZ@!06GBtS%XlZDNvt%3UrW9jr|VcYM>Aj+5v@u zya2yJSpwH}=*yeE%XDh3)lnf1@-~yz;&eOu(SqP3#;lO(E^1S9*z;)m! z-~sRu;COZx*vDc|e0}%> za2~h-Tn4THs{t--S_^Pd!g_#9b@-E5+`aG}Uk`Ghz!-oF^2Y(C0lwbjAn6H|2Pyy+ zfrn7&5nzRDYk(`}CEx~1%paaP4`cvu!1ES(2k@9{9(~PoxBCEn0S>G@R{J&U|2JSP z7%hAMCqQcr zv;o=y?SYO!GGHo-f9wHApfnUI2>gM>kAbofFbVfQKx2R>idg}ApeN#f1kYSxBEX+L z*o(|KaXJb#1kD@ZS=uS6Vu3UPKy{!Ba29d9SpNbSoCu9YI1=C)*gXH56QM`IW8gNx z`OXgj=Qt+;&TDwS_HkeUGDrn>BK;2l=Q1}SQ;X-6MZ3-(x}$SI$uA&5|13vtM zP67C6!1-nYz!u00z@iq`0Q6FR5e_A^P#?hLfDASO!+bz~pdi4CjRkrFF+g{q8xRf9 z34*~xhiC<~1X=(=pfy7n1~df%aUTGL;`%3cQH^oY2%x!kB7$BQ0I*}H)|GMX2e7HI z$#?>6Mjk*ZfP(^iEA~_+fM&RNLdXGw&Q~0uGuFdBO0_^5$ z0964_bonI30mBn02b2ZM0HpyBpcLQ+xBv#A1mFm`1Fk?xfOAqOpg6#XD?WAcY0Tt+ ze~JN2z=RY)L2dvAGXrMi4O9TU08YUwsn;|)O{|%f6KT%6IUDCpoA*@!T6PDp70@iZ znf1R4gyjIo{eb`{6`X|7jA1|npgutJ)d6U}8bCFmIuHWXQp4J6NLt+-*Gx+~K}vJ(Xl{Mx_#fcpw&t zQ;~wu#JL_#Orgm@QkLrwmDUGgZ-9Ink9OTR3q1taOy3Vk1vDi?aNQr!3dNE$J>pGr zDZjxDH7C&sgaBy(OFkJG3Jd{gtwBH+fc&g)UegMU=XDw|80Z2_1SSA!0A-B=Mgrs? z4tz_AOh^+_@CbmW9tLy)A^|2Oa~FX3T1Xo2DU4wnK;H4dIDi?A1;zkchNE%)9iZhk zj3w#0OkWM9TjIrHzfY6+i>^ zIs_rpbO*Aw_m#NM+T2?pfBA8#CPE4c0iuBQz&b$dDAwTmYoH!L-qirBW-Y*U%!mqV z8EEmEOvY_g{LD6aeKamx6o51+X51=Q>!fiNL8+ z?UMI#c@MY?`~`df{si6we~5`wr8aJMI*14O1G`p09zYLBfDRDu=~4*uvN4f`Q6v`t zY=Qg$>G^=XfDOQS&W?#fKoOuY-~e#0SqzXhLLq68lDIbjnpO&Y)`nHG!%?bs!k1rry`k!3jyI0n`H; z01bgAKy#oA&>08^z6QPkIssn+Z2?ZXNz&FN**yTbfW==u zVXh?H!~xVk9!LP_E4>gV0;xb>pbyX+;2d)R@C`5q7!8a9Scnk-c}D`@0>gn}z)(Qw zrb><`D`cC7yTQN^fYO*-9?+SZbS<8=?{Lph<6|ykfxW;UU^lP}*a_?aHUjH`b--F+ zB|vRf0MN)}u>=>3fknU^U>1-LOaR6MR7O+Mg!@UrL|`f~8JGgh1f~Pi00B^8@{nJn zlQu)W=e0sdg=-0BgUFICKsXHsdX zxC7JBxeAYis|^LmPAfV9`Z7Sv$^n?GgjoCr!OgD%z`wbT1bKCbK$!N+EqZSLM>zR zUI8uxmw=q|HCa^Lq%rV@0&+562Td#COd};>Or=^;|I{`&!Bi%zQ1UzkXx5y< zc~2!C1GyDKD>1E>O@>KLNDW`A0;nB@JOy$(qh?}S=@)imZK@m44IeaH)O{bMYGkI=iCLgWJrb^3D0s2tZk}CyA``4U^0&{q$ z>|}puT8^6JVF7X~lbauKHeihrm~ZF{@C`U$)7z+o{0MCUzAogee7xzjm`{L>i3AqX2G z+=+;RxDLd108jw;l@SgAtpdVmg#7_eT*o7f17d-%0awtRfpSPw4EOvr^c7GK_k3RQ z#U}yf)*06|fv|L%M+o zT@fZCq%sW<)(5Ce9e@hi^D~YEBKhM~@&g4z1K1_)p$ume~QYzJlnY%kjoE(Nv%;?7!`=G=@ga_Et z_mcoLfUv^|iz7S&hW-fq0eNt34ID?@72p_f6qp1YArN;NA>(Pav%opvB5)q~0XPGk z22KGd09rT*>9(@|wR$;;>kL2>pe14gGSh5~Bb_vY{InY1%4l@W0<<7ACEo>ryi|aS zYKr(@!p)BW>y35Hy4Ff_4cFx%{5nE6OFmb^ySEByiF7SUTgH7Y+_&}mirdCYy70>0 zf!^qgIUW=NW1n*eCzV`q=t(JExWBibH^!D4I&o`>8 zJj$Sju_eu8dF8IL&OAo`&IGw^X0^h8LuCAC@fFAy_FCX;O*;O70)JO4TLs-4F+2< zlyE3hc(6yC3^4dXs&}A;4)&vFBX=x0=h*iwld3U=5yLcjZTr95hW9Zk-II(QQeItaKI}l7wg=SQt9twP@12|y5g%o7 z^wNe-#fp@gBFhLwQRLCRIHYf=?^15rInxyh8lmoB+nl=E>uS}6DDNPPBx6J*KYL7g zaOsBAgo9HU;}_&@2v%MkWHp)^6>NdMb5hZKS5X#EE9emf{pNm-<BS4e46vX#iU5`06fM6H$BQ8?a8gnQ~84g7IvDw;YvWmnNB@5V~H$|xJB z9?Px7-j$HJ%Sx;Qr&zsFDj{rFVFmdaE8)2cGOk$(mokVMw@L~yaMgk%1YJrpOq;to z)Kxa1TycL{i5sh=8Ip~)=>I)bC}J&EGjz5VyLTgliq_)&_foVW0KE~L!tMLBhd$jO zJkBhkwzU|v8k|k7#kAE(*}+<5;NH*!Dd-YSr`BpxcyEs}YNf$E$=2y>z%T|3RLb^f z@L9KxRvRQ;kT;qnO1H>b1gt?B9$AYaYb1Zeui#|;FW=GS@xmd|eJpjb0$M&)vJqz> zOLDUjezDsRctf6*tGE9gWi5Mng`(mXA`RLe zo(2=6cJxcGVku`Jchw5Jqo{;Nl-c%1Imn;R)5f2AH@@6+?-r`2XneCA#K4WnEo<8| zd=GY3c*>5#d)l42{sHVk@I0u0z(L$X6O~Rnh!03+xDL*I;Pl$N?CRp;elg%=pAHi| za1c+AL+~pH5w-~-HjPAYVw)@`W-xRvCf1gRB&}@*784VGkQ~I@^7@jJ(x{|n#YD@^ z;B8r4oY@H(or;S&n-OaFD~pSk2bBAe%aRlJw99Ne9EIDKPm`6L%u+NBRH@?W7VLYz z?<8t%MXxs7S~Ea zIp%@0D7X!2xk!O^e(2K5nWKBYEN$i}h?qi%SwH;hR#)c|spgoH25|#vbLv48gzN!b zi`PO;-<Sk@9r$JMvAsd++I*OtW zMYjnrPYY`F`@$dJy3R5yGp$tmF=Va=%RR*2Ly9Hkn$c8LYs6q%R;go;nA=tb-sTH} zoB#|FXoFf^MU)j!ccJ*bRL*fPyZP-aKg<@KYsH{wxyzIc?PVi zk;RfdD7YG@2UP{e&(@%R_A{(l#IA%e=Cc)L+uF%tp?^<(SE(`M##GcCQunEe3>=P@{QhoeF8q zPs}i@QOsXdV$rlBd-;nlxHr^?x1&=`+t#B(p)`vj>|j*mXnANFcJUW$Pa(x%HN~P{ zQFRNL&Mq^j_Rnz3(MEhq}YK~O73llAm!_n&midc@Ns>7>6z93Q1 z8xv~`Eb@eMV`R7MRxT;MQE;^{*2Z9;AkoQN@2{mF86=*dF^TvSA2*_xL1Om_j#XHV z!+x^Z+adO@AqDe8C#0TH{eW98oL7EMFUw|EMCyp@9W?;L*hm@-NhleBOV+ z%y@Hc)k91f#B8-Ud|$l8vIgdu?!n?3(i(nNf=6N zD2gBYXL?ueMpk>3zhN`C3C-g^-MF&Vt^dDh=~};|wa#pU%ntd9XtkFNT2NhHL7Dbp z`V|};w|zz~+c#@bO=0G+si8FD zf@y=o*W3)>X^v4HO7$<{au)Tj_1L+@8GeK$PK5GKeO;vb^rq(^N%h#=Q+-C5gEBA9 znNG8#r@PpD4i8@qYKekBz%eujP@B;1TA~xlns;hbLv2J-W=js@>H{2Aq!HEeM*Od) zO42kJv6_>rznvIms!%6H_+G$Jl0zj!0Gb7>cfFHq(|tufIC0}6BU;Tq0O_jXw^@G^5OFcTh#UB)V*uU*W$C9>g_Iw;nec}pAWuxReHaj zxeVHzMsrL}rW%Sa4^bwiPQ$dvBKvg>6r;^8lUAwXaAQ|H-TVgP(iNOD^`fD$zbaLb zerY5^uHs&KQQ{<~Ud7>6cw2J(s^o9qqp|WUv1K>atZJ_dYb@-pfxUNQ5q1rg zI=Hb&yC!W^lRGkOc^xKO*F+>%*4v9g*CiKecM~xO#GuPflo5Q>Ur%18aqr6HZ#&8++z|`|IEm zW{z~kI3cFCb*t#4k;kIUF>9KNS~rn4100;L4QV>J=g-UYg_${iLJa3ah3=g7tMvZF zdvlBwCdS-E<^0q}?1c>Jd7E@Uy@M<4%%$8#kmkmXJ+oK(@2bl8CjNnZfmEcOD0mC` zl?4YM^jgh^aMHg@c`KugVi@ncV z$kqNgGe<+jP_qZ=DKF>O{%wajrbBzNnrY*}!E%qZT-CjE;cBU7jx@v+LyUjnZ`$A9 z-ny$fCcV9QPt8`S()Zn;xU6XLM!%amcD5J3cffH*m2OkGR>iHlDH&#tyX{5P9VyLF zEnInsd4BMl#92RP{D4jaZ?y3!X;Cjc{VvA3w&9}rT__q0M!t}k(*Dws1=sqnwC5BK z6D534CWELu)0zrb1-F3y0% z{yaEX*owUtRKL91ex1GUV7PdHS8{7<*;(nCMfm6hkCqvDS^XHibn7CBaX^^Xxzl*- zg=fkzUvIp~_q8aera9ph?EL1EcWF7MG7A;hS;XFhMs>iE4{5vgO{<@`s%#GvvWoM>Ug8|&C`q`9GvRAv0`G}1IeI` zJL-Fv95abg4#NH+H2qw!F7B|aUl%PtJcR5m-Nc6=%=r&?Q=DMg%~uazY<=#Bas=Vy zg+IPWb{Aofpl@=FQu~GKHN0A=<}Z9Xi7yyz{b?~G4ID~Gf!5MP-e!|l=FpNh<(zwP zcmiX9cd&&=57DKD-rg<1yNX2vaM5Mz*sqK!v8Me1aH(@{MO-n=axAx>(#HfCCFhvyn1!`LNRydmb>|fw?`~ZCxYH}cj z^c&!iiu4wp$k_p$Y$F|Yv#vJ$eQu)6DQkM8x0pbVN8qprN82@X&sMU##dmM&1W}bC zsWO8WK`&OxpRu~NiKXiEGnM*ztcaRR$x^pH_U0|MEn6;?o+1}xs?vL`O7Pnl`!sS6 zIMf+Whu)$KI5=aVfel0OEr)&7epB*WS_5 z{62Z8N&PXN{r8QBj(pVz$ItlzQPv)xQSq5DCD|)FCf?XDL)`DQZx&xjvJQi=U^ur% z5$J6~qQ&_5Oc!l^cS+AFUDx15V}5U-1Ae;5Nok7OktL3v+VRWoI5~~nZcT{cL$y*XMUcUz4{#Uj16kMpR)$t^N>Gq1gLD_yCBy z_Cw!du^KTPZ6?onx5T?gr4%_M{~$yeQxg*`_&2|L$=x67{mHMJ0dg~Ej90fxQ%i&ki>JwRbbIX{D&y~RgT(qxv51%uyKmcR9Ss5hUf zYdLS9JbWUQFDtqt4eRC;RS+!JER!6Zs5+T)YKGJ2-bqd-*&;z~in%%<`g%C6(P*p^ z7+^81UGERAUF*L=6{`bpTtq}lchqpRp!*qZetlX>u6)dBf-SnoCd&uZ4bjc)Rp8>T zS8|#__*wSGVZ!HiM6uUIMsddE?y+bcg%&oSIv_7`l>MJJY*A z7u+h!&Xy_!23cHCqsp{eo_wyzum`d@`6>LS8uOy&l>0LcJ{-1@5xcubh@t)hpYQv1SUbd^R#_7*5mOW~uC;D=sQYD=>gYYw>-*W`8DV2M8AW5G4ROLw@WhWZspy7~|6 z-a|H(+%3h%7-g|Pq%@Yg4ZM3oGAV^a<=cI$c-gO`qb*N#_Qi-gh{c9MP9ug!T>LKo zoL}~yt7|ZWWlR!pBvo#atMzWb~EukigwYIDy_`^)hUJDuqZ-Fu7nvW2Ywl z*egxc@vkV`Lta$$EjZA1rL`V)akWc_(0qvD>=K2OmpXaHB#(FaI%3=Q86Hf-AzF0`(Z7f~=94Kxno*nx*Q+?-Zzj}0cE zaw5dsMGPw<-=i-|)}A-!ot#Dc~AM2 zpKCED@z*o_ltJ$)!mc2mS4JX%D@2?uP|Y@Al8cklCSga5rBg)n=XlaP01m#WdpZ5e z{)`ooFU%Y_5koJXzBR4oiOPF^HOIW3B4#12RA8!ze}l06RB;CPhLEX>EX#2_wqz8) z3K!*s1yya)X{y-iiq$hoQ^j5@y<^a5aI)vFS?ul@M+Z+d08XvRxePJ(h-s5Pepa_; zZpY<;Q|_^MP8G2)kjq7IuuScv@9T!gy~WgwGc%Uy^;9tr9FlFi=wy%FN~MdC0tl<8 zi>FN4CS4gIhs_NdacspAd{5U>#;1#xmf-v@UDS99&c)zl*$cHD=h=AmjM8TPcBG3$ za7bsXsUBIo4X4##RMF}Xi`F&lXjURkF+ z5{L=E;!V%KX=2r{c)yl&u5GV#87VUILwAJDZS`&j&*_Tux=g=zD|Ls%BQ!&fHmEqi z>B9T<=Vav71~wNl;5EvkRxEx#Cu`A4H=H3Kppr|`v>3J4{(VB#)se8yJE>w`O`dX_ zPrFsC?QghJW{F!m7)EWRnkz{oW{EB~plj}{HY;h?Eb-J4bj_W$W~VxZVdE_29shzw zQHh6lq!uwdnCd?NzPOrdT2@-tY5|=CXDc5quJ&G7|F5Hgc)Owb^uMl>>^93ZrIvHk zIby;)$uUO}JT!}c?8REl=W9wUQ10SuX+l0Ne$`y1hj1F+pt4DcJCL82oX=KHM^mtQQ?bEes**7MT;{Ky3Vz}wA*qtj-ZHd9VIxi{pX8$AMjT3V_V4&_!#95&lgWWpeOuszA~%4Y(4hD7vGNMk{3+q_(tW^F`p=d z=Ac>|Q3sYxBWoS{p9`kiqUrpf8-nI9|7SrP7791^?3#b)EP&QIXc=nWl6%JgxE*9x ze$ITgeExIK_^F!E3X-$;(rPC60{sK8)-wE5NmRkoUyH;o%z>Og-LA6tRsY_WI~I#t zn9XE%f>q{8sEmdBFR@r5}Wrv}~5qVl8zw%wXRLsK!=+jf9eA=|;?NaeHzurF=PU~ga zCQ-R?f7K^Us~| zQ$^68<8rniO=Ye9{LfTYyF0_*SGZ=a|8vD_J*-;B&pgCvzNXn#n<@Nf6|}51!CINj zPYnO^<-q^E0cvl(G!6gr99w@XWIGtbbV0yb6TkO&L@hveiDIq1H=HoMO zt5`k7nYx(H$oqIx)~GN0Z~7@OJQknMC~>Xw{`hFAmfc&l zn7i%|Mnq}=xjno)?|7(fPwjeUfvN2q^y6c@vk6kB6rajD~djN0?tq1}4X$sI56oYyOFP6kd1?qwY}ox3*VMMqV*=x72sBy~5j!5Irb z)_*ei!2rAv#AitPOK6St;s!aJuNQCJv1uXue&a@BY$?5~y6L#0xLitKJ?qZn zX&y+S>^ydqzFIGS;=Q&5ISSh4M**jm{i=e)xV~GEC-*d<=(DXv^U}z3xv~>kq?N|j zBWyn2TpGy}){Dmsl}*UeQor?LL>c`??yJIvF(1*htiF{LfX!EBAwk_hES{Ium*DPU z+j20==XMW^5ORFHeHbSJ$ZtKdeK@6@eulaY)L&9}fMyozA8+mazwhdV*Q+~946hs% zN1nepssD~8CGoyF9N(SsA70{cpJzq!R~fyvm{J~A`0P$kZ1Hrg0OMkpTv!Fz4@=>= z&r-VLEYfgqc;Kw8nJqA@>462-Zaw)D$6sz`d!2<_C8WUaxt0|X=9Hk`8_sT2zI|+v z?v02DZCrsbz`3vxFU;kX=Da^8N!zS7|AE~C>N@q@_SOB{Jw#!K zeOr`XVrJ;==F8K%ZAZ=XofCYc=vHyiTOTI5Y!yX(5JqhiU3~Nvq>|gk7$5y}!^i8( z`)yY`0cCx;qq@G_Q5^ThbKp;Hlvne~qZ)tMxVZE{x)@q3JWO8Uj4ev-lx{ZL@@AeE zVUg?dVmYQ^d(qqv-%D~`h%0m4ZLdfT3d`6$f6~VO@&a5r#@J5GLRv$vOOs`exc1@< zrRTbcSLP@Jo!OZmwQeaIK8)LMmR_TsaPddlTo+BtX*a5AuMUlF=$C$FpE<2fdl8GY zhFq65%W1Iyc^;+jMCs)Ge@k;6xTxJ^vy7II?f}i^IQwq@;ZbBqb4=NG;wjUnf`i|1 z3KXyZXwK?BSo)5Nm!;>rBwLQbg6kTUq1g+hEsnHj=i8M$==rFHIjypHz~8XDiSjLJ zhkdakUyq+YgbUmu9iL(@HxaubBPh3R0}4lO+Xa*uY!|Q%K>oRH7f?9Hgo+Sw1g#F0 z4~^Ab{in`i#+A(1tq)#*O_*Q;6Z`b9?U+*SF{00ubr9rdv zIU&|!?Qu}=6G{(Y*}=cL<$p#}ULZZ3Umk@85i7{}M6$YK^|(AFo>$p;gfK zA7&_R-(tw_Wk(w(9X6}^GDDnzC-^m19`=Bu^%x?A~)?C!|Yf z&WVeV!Ffu)Y6yq^AZk?u-R8XLPz`ndu>{T^12F&|J1_Qv)8KGHF-UdS#^L=Zg*KJ- zlMTXY8`kMc$uXiJ!k`~7Dt&8 zT0>flvKpjV(VxORM>gJvTvYE+a|!x1N3N^cW&8a5mBhI(cn`$-4rRf+qogircd2Tz zG!bl&;0Ir(3#{3ZB>iim&NKDu*fBF@Oyvw<>%hb=am>`=J*vcE{NG#Rd?i^ z@$y@945rKPYv@z+g(kL}%_BF*VDo={+zi;+DtWB8!3ZIgeBjjN9bM=UbWB$##o&|#nHj!EE zQaQFb9=dks%!hl3VQKPU-QV$RBDOYK0k%WUtBse%+HcqzzI| z*Fp1FRS;w9U?#2liCm$%=f|o}xh1aEfwrS>iSWAmVwQmxuWkvuy71Lsdn#k>+rq}4 z9|BHJmko+_R{<7tZY!hz?GGncdj=GkCdbH2O%y4PhEJvSRrizFTQP5Q%gJ3o+Cy zAiKI)y;?H#$Tneb`;xckzf~k}eq(E|}6D$)`LN59{kIAG z84t_Tw9!H}FSXHUZrD`w$y7djyC^2EG}aqFQ+7@IrOTpH6O=?Nk!BOE^V05B{-E6Z zYIuu9?tL|_rS|huwQx}^6rF4i2XG30raaJXG5RllvecQ&^6|umaa!nbd|Nq;6j2E& z#`r!s_jX;UNu~i8o`M6*JGsN`%vR-m#0lHPh){h)aVAvnYkJ&3@xWohff>5gf**3O z$3Hbe86u>L!#k%hwS962_jHj$m#2OENBW6fFK|y!wRm#={_)c_eT~V95lP8Li;TLp zw*S%StG!3JDzmGj->rXtpk=EimvGPZV0Tl7#MnhOalU#7grXoU?)lZ|=tgx6d$%cC z&RxExV^h72u3*=gcpvR3NAF0{tE0YTGwt5TD>KSVKHJedrCa}yh~$){gdWL0&?Kc_ zNrNNc7qAckbphBVd+ZReUBbcrMdDLr zv3I-P$}?v8HTWlxDrN=Q!jLN^;_OfkZU-4c6ui%pL8ici3r?v&o~@y1xM zq=*#R-O%ErVq?1YPKk+)N$KY$w;H8rkqL2$3CYGJg^eEX)wNIe$et1Kw+Jt|8hWu< zc4aX=BNW&5ND7ePQTR4NfA4t4tr*~_Si+u2# zGedXGCvY??e8Y)@S-kotB=tmlOG%1|PsWzah_125S~cAuG!Pq|M8sjep)j{eFjt1m zu8Q#MuP+t$842M2Of2e@ucDzujQlMLdWcp7^#*5b6+%k<3pKeBh#WY_7UoHj8Jx5` zvSnU_8H#SwyE|u!ljAknMzk$|QRjEfhq6{kX0harSj;ectwkoF6H)v^OU7{~J1Mz) zM3ONoJ1rtUCJuXTqp}SO!tRv5Vwv0-p^26TK3zp_aaFSAtYiZ|<$_%3X+KgqDI!|b znW1+nDfg{ewPs4k9 z2~akCVMOnql9HHQ%?Cy47L%MJZekSh%!MCnd`uMyH}z$`RTZ*kXjVEaRaRT*BK7VS zKUUkEL}`Dr;!Gj@Zs<#St6Q(YrC!O6t1?ZHWbD;D1~nCpmX7X@y^uVjRs4vI)VVOD z+4zdv~&A#wRE^JQeD|?&cA;f&+1!l}Jm~lea9vmw$ z8;I#9dL`=(PKxu!Bxh!eZbjaTC3~W4)&%T~v)y|I$g?!}Y~u=;vfZ;27Im)aOLbDL zp$tXf%6bcvRz@+XqB@IFH*SUd`{L*jJUgi5gy`txNc7C{krDBIB9ayRW9}r*Hq$#7 zR(EbexOyc9@6wlXP-TIvUcqewMT?_)PtP3kz>dF5y6gbhcm?Aqtq;R8rmyiSqF0>W zV9ZWqMdqNOwEPdrlanIRa^ih5=MLBooq6q*+}#)(`w@#mmM77knY_p(^BS`*)jt&y z9==4YG<`|`%-g>7oGf>8iXd5`?#8YW@!jbBaX3g_)Y+gn_+_UdDHO}f#ipwGiW(sb z@6o%L)VR=x8B?>QlJCWfyZSOg+U7aLYM1gHK{if&LKG$l+<50L8!7W%tlOhEh_#RP zd2EqT=E&?VY~>AfATt!bzR{Qc^g{;cu*KBv>C{iXgscF$=PAyfgS*-hsad))N z@eI8)AI3(DyQB5aTdJSZ>x=39MeTcf=Ss>G9;QcHcOzeVB}JlxNlA$0VB(dM+*!Vp zd%@=Fk{M*Kt)4*<@nS)4-IxJ)?Hv;v#r`QJ0e6uRn3qMw_e<%HE;}H1P7ls8(4Q!Y3}as);Nh}&;<)BYb# C&JnTz delta 55179 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 Hpf2tIK9J+| diff --git a/package.json b/package.json index 8e3bb4dc3..edc98de5a 100644 --- a/package.json +++ b/package.json @@ -39,5 +39,8 @@ "build:ids": "cd packages/scripts && bun build:ids", "prunestrings": "cd packages/scripts && bun prunestrings" }, - "license": "MIT" + "license": "MIT", + "dependencies": { + "prettier": "^3.5.3" + } } diff --git a/packages/core/package.json b/packages/core/package.json index fa0c8aa5b..f39be73b5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -2,5 +2,8 @@ "name": "@blitzkit/core", "private": true, "type": "module", - "main": "src/index.ts" + "main": "src/index.ts", + "dependencies": { + "ts-proto": "^2.2.2" + } } diff --git a/packages/i18n/strings/en.json b/packages/i18n/strings/en.json index caa25ce0f..3cc2d7809 100644 --- a/packages/i18n/strings/en.json +++ b/packages/i18n/strings/en.json @@ -1254,6 +1254,7 @@ }, "gallery": { "name": "Gallery", + "unnamed_avatar": "Unnamed avatar", "button": "Browse all", "description": "Blitz player avatars", "seo_description": "All World of Tanks Blitz player avatars", diff --git a/packages/website-ue/astro.config.mjs b/packages/website-ue/astro.config.mjs index 4e39c0f77..75acc1237 100644 --- a/packages/website-ue/astro.config.mjs +++ b/packages/website-ue/astro.config.mjs @@ -3,7 +3,6 @@ import { defineConfig } from 'astro/config'; import react from '@astrojs/react'; -// https://astro.build/config export default defineConfig({ integrations: [react()], devToolbar: { enabled: false }, diff --git a/packages/website-ue/package.json b/packages/website-ue/package.json index cf10d08e9..34316915e 100644 --- a/packages/website-ue/package.json +++ b/packages/website-ue/package.json @@ -8,22 +8,30 @@ "astro": "astro" }, "dependencies": { + "@astrojs/partytown": "^2.1.4", "@astrojs/react": "^4.3.0", + "@astrojs/sitemap": "^3.2.1", "@astrolib/seo": "^1.0.0-beta.8", "@blitzkit/closed": "workspace:*", "@blitzkit/core": "workspace:*", "@radix-ui/colors": "^3.0.0", - "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-icons": "^1.3.2", "@radix-ui/themes": "^3.1.4", + "@react-three/drei": "^9.115.0", + "@react-three/fiber": "^8.17.10", "@types/js-yaml": "^4.0.9", "@types/lodash-es": "^4.17.12", "@types/react": "^19.1.5", "@types/react-dom": "^19.1.5", + "@types/three": "^0.160.0", "astro": "^5.8.0", + "immer": "^10.1.1", "js-yaml": "^4.1.0", "lodash-es": "^4.17.21", "minimatch": "^10.0.1", "react": "^19.1.0", - "react-dom": "^19.1.0" + "react-dom": "^19.1.0", + "three": "^0.169.0", + "zustand": "^4.5.5" } } diff --git a/packages/website-ue/src/pages/[...locale]/gallery/_index.tsx b/packages/website-ue/src/pages/[...locale]/gallery/_index.tsx index 38c6301a0..e14927f57 100644 --- a/packages/website-ue/src/pages/[...locale]/gallery/_index.tsx +++ b/packages/website-ue/src/pages/[...locale]/gallery/_index.tsx @@ -1,11 +1,17 @@ import { ProfileAvatarComponent } from '@protos/blitz_static_profile_avatar_component'; import { StuffUIComponent } from '@protos/blitz_static_stuff_ui_component'; import { BlitzkitAllAvatarsComponent } from '@protos/blitzkit_static_all_avatars_component'; -import { Flex, Text } from '@radix-ui/themes'; +import { Badge, Box, Flex, Grid, Text } from '@radix-ui/themes'; import { CatalogItemAccessor } from 'packages/core/src/blitz/catalogItemAccessor'; +import { PageWrapper } from 'packages/website-ue/src/components/PageWrapper'; import { metadata } from 'packages/website-ue/src/core/blitz/metadata'; import { Var } from 'packages/website-ue/src/core/radix/var'; -import type { LocaleAcceptorProps } from 'packages/website-ue/src/hooks/useLocale'; +import { + LocaleProvider, + useLocale, + type LocaleAcceptorProps, +} from 'packages/website-ue/src/hooks/useLocale'; +import { useMemo } from 'react'; const allAvatars = await metadata .get('BlitzkitAllAvatarsEntity.blitzkit_all_avatars') @@ -17,40 +23,107 @@ const allAvatars = await metadata export function Page({ localeData }: LocaleAcceptorProps) { return ( - - {allAvatars.map((avatar) => { - const item = new CatalogItemAccessor(avatar); + + + + ); +} +const dx = '4px'; +const MAX_AVATARS_PREVIEW = 5; + +function Content() { + const { gameStrings, strings } = useLocale(); + const groups = useMemo(() => { + const avatars = allAvatars + .map((avatar) => { + const item = new CatalogItemAccessor(avatar); const stuffComponent = item.get(StuffUIComponent, 'UIComponent'); const avatarComponent = item.get( ProfileAvatarComponent, 'profileAvatarComponent', ); + const name = + gameStrings[stuffComponent.display_name] ?? + strings.website.tools.gallery.unnamed_avatar; - return ( - - apple sauce - {stuffComponent.display_name} - - ); - })} - + return { avatar, name, stuffComponent, avatarComponent }; + }) + .sort((a, b) => a.stuffComponent.grade - b.stuffComponent.grade) + .sort((a, b) => a.name.localeCompare(b.name)); + const groups: Record = {}; + + for (const avatar of avatars) { + if (avatar.name in groups) { + groups[avatar.name].push(avatar); + } else { + groups[avatar.name] = [avatar]; + } + } + + return Object.entries(groups); + }, []); + + return ( + + + {groups.map(([name, avatars]) => { + const avatarsReduced = [...avatars] + .reverse() + .slice(0, MAX_AVATARS_PREVIEW); + + return ( + + + {avatarsReduced.map((avatar, index) => ( + + ))} + + {avatars.length > 1 && ( + + + x{avatars.length} + + + )} + + + {name} + + ); + })} + + ); }