From 272572285208534e47a72dd8e29dd387b8925b9f Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Tue, 13 May 2025 14:15:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20PWA=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/index.html | 6 ++ .../frontend/public/icons/icon-144x144.png | Bin 0 -> 11185 bytes .../frontend/public/icons/icon-192x192.png | Bin 0 -> 15039 bytes .../frontend/public/icons/icon-512x512.png | Bin 0 -> 42263 bytes packages/frontend/public/manifest.json | 31 +++++++++++ packages/frontend/public/sw.js | 52 ++++++++++++++++++ packages/frontend/src/App.vue | 21 +++++-- packages/frontend/src/main.ts | 10 ++++ 8 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 packages/frontend/public/icons/icon-144x144.png create mode 100644 packages/frontend/public/icons/icon-192x192.png create mode 100644 packages/frontend/public/icons/icon-512x512.png create mode 100644 packages/frontend/public/manifest.json create mode 100644 packages/frontend/public/sw.js diff --git a/packages/frontend/index.html b/packages/frontend/index.html index 7806d3c..57fdc9d 100644 --- a/packages/frontend/index.html +++ b/packages/frontend/index.html @@ -5,6 +5,12 @@
Qn#R9Q8)7f zlfSP-WTd?Sv2z4$tkh1%dhcTRFC?Eoazao5%e5)-sB`;CH1F*w`B5ZrcVqyUB^(fm z?szJ&d~o|P9_fX@FNTBj8Pf_6e(4-0hgVY>-IIMjz$YUt?-PGlL1ct?eJ^Z(7f@nzh- literal 0 HcmV?d00001 diff --git a/packages/frontend/public/icons/icon-512x512.png b/packages/frontend/public/icons/icon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5ac195031774296f43768d77d452ea8c01ac32 GIT binary patch literal 42263 zcmeEtWm}Zr7w#~0cXvyJBHayAf;1A+($W$`iZlw+jR^iok**mUq(d5JXprulnKS&) z7dRi_yx@A~n*Ge`d+oK?+QjMWsuSYT;Q;^uLQM@70{{Ss`UnKzV4)tDfwT9h2ZocP zjv@f?D+T}2783x#({xc**7q?`S7OmrRTdMG6cZD8E+_&3XvF0k2AHPZP{~1W9EgpT z7EXU 9VC|GZK3ti?$&{ vqH2@3= zz8Rtb4AB7U41e3>0nz~gx1bOuHo$*`fWu2oIZVL9&$Jb4z(NVbPaHrJ8X)_bItNgp z9bjV=VZaZB^Z<&g6xakYAT?;=W=+r4f#IE)0RLpuRAL1iKzOzi|0sY(0tirMA|FF% z(MB&4o(98yT6@K`XrKWgBj3g{UroQDX!$lt7jS+G+hE=3ar>oYOU*;#h`Ys>mzm2> zuCa@*Jx%}s(A`aSBP8TgcXzhdcN}-!PA>aP5U!`5Y;vq;P(()}5CcG>J8`mPy}dn$ z?lp*3=LdHEX#rR=1~^0S-o9AIEi%WO{CJlTB=M-gR8XuxB*VynhmU{6`L4KAcr!r` z`C{D@mJoK0T16~>JOy~?C}dYdN~7T3wjTa92Fbf47)l}@H@obJ!59!cnP+N4^p_<+ zW&D|GT#G)N&R|fh!50 (J?nNORUn8oEU!2zOy* zmJtVD)L1q&1wAw!pKvi0hj7SkS*1RczDr(U8^@u}PR3xf)e!v}{+(t2GsSDR{-F=w zfj^bre|f9HelGBVLNdux;XZYFh~;_wV|<6YNP0y5YxG&5pF(Q|GhO^ZkGo5DkCb(#2!tOnt72uj#6>tRe8-@VneJiA$a~ z*FmcL@Y)tmeRvg1=9lJF;#9q_55v7%%@k7opEtB|OE?U^r;};DbdcZ1C@XxflwI`S z>#?5&vpD~KmMS#YbT9JP7cz|fNiOP_!#S2qr9ARop!Dx#j*FAajkD0cZyWAv6q9P^ zWahN%9`^q3e$-_E0pTaYs6mZ)&uCp~gK5iYnrVfywSQpFWM&V&5uSfepY4=IoaJd` z%6rWlLiyzn**B?g#^1ue?f&=1$j3 w6@W^{R!un4!YDJ$kO5fNu56~vDQVl$JI5Sn6`(TWI!0(!+ z^Uk9F?oitw^MT%9C|KK2+2=pUD#tI5`8(cYXhZ|QV5gFcd0OMF 9?o zS36dRRf{iuT gZtU#Lp{VA)i10O3Gd8#t*kmtnGDMOxv>G#6P(iyMv&8 z+^auVMEk2#>R0ZUrB~GdPUcRgn8k%fal}$--9#kpPDfMi_FS`ETBc5;*DFXzoZG(i zIhRgpmU6dn9mhItz6_+6bFA`YcvmI5=CI-_WBbnK`SSO^@BLd{JY(suIgV{p4Ku!@ zqeJ{FRSQ+ahslzE^IQvTyB0f^ACqFrRP*|^62uY)GnO(!MldsUGH$A}jOC1jjIWI6 zt2E~<5BLw<=S jC0by(jgyw{YL%WygClPuZ#Bn?EBffZ{kGnRP2*~@sj$-tJD#) zO#e)3L-+Fda*x7~Bj2{^j@zaiXRb vK z7RGk{=wgG)cCm-eg=L3fKNdVl-;cmkZo%t8=Tv99m^NtLXxnI=5p)s1(OuD*F|skr zuwP;(VYXul5y(+05#SP 4U#h)q6JsH@m~!mhhJUS|S2tZ&lAS$$ZH 1RapXtLR9yOQdt#*{Q-|US}-e>-` zFb45bf3vRgs;a2Dty62+*)Y+y{u^=? zgw^zCN!#?+?pkZU#UI~aC66_X{TV}lY5VfXVzjAh`Mg-H^!j5y= kP=)LjD4+o za`4{Q(`}^|46es@HxNr=(vb4n&JFim%00>nX!J7YCF)V!?&gO62npWQ-zy&PUFjWz zW`mlqa1Jzr_@<@6epLdc?nSc2ohN&VrTL6jjOty@$gmTUO*_BAmnkL%MfuNU&+fJ& z(>BZP%M0># yqu}-7;tM zt7_RAS@ke4__{`|h3A38&B&37OpWiQ&VlsQ$qeZJJ>;*?{O!Ep+rpsElYv9}W)H4a zh8E7Yt6Tr;BkBOWW9^l m@zWwz^8H-3g38mHDUU=aEgDI zFafR!`g!r;r1EF2)FAsHbH{j)?AedU>ha~!la`Y<=wK&v_OnL?g#N|Uz1?8>q~49( zZV2L0=qCE&K|oz%0##(P*l8H(001Ak0D$ml0N| MPsR2Be0?UmQ| zS_ZX%>!o4l0|4NYKmDNra`I>ZfE)=;6~#A!c}Mw9EgY(U!=W#3JXlJ@F+{#7M%wGA zI|Ec+tK3mgQlj$$<0aKe$a$afI%2A-zEL54qy0HcpCbzAbNJ`*t<_FLXv&Q2%&Otv zx3c@X5+@g<9(n;~`_ePqvp)?t@_K~{dW94BOGKdPPoD_vZnJ )X{ zG5`OI|3`Za9flAW4OtM&qGOMKwkwuc2_b&=%3pXxmY?&7rMaUqL%`^m*L*z|zWw)O zrMGif$J8ydvaE|pJ5MVP9h)x_RB@$?&>!k#*!(2$uJq7XOE*i~C-Qgl5wO(JI5P&q zXGq3)JJzv(A8>teT!%WVhR8BF#WcJL811;_uj?<4T*qhpA41H)U!`$wEat*?vmW7} zmW3?SvgDTLBkgcx+Iw!^LMdu@M=lYGABY_3l4D+sjjOwR2!HhRcPuDOAe|7@?2_;Q z*dM&?y&&aP?ay@972qo}^kEcTxI`jab%U4r&<+BGu|w1@WJyrLQkujAVE>aBwN00d zxsgThNeKH0Gl4Ki`0WJoqhd!b61A*NZt5~1!u}8E>se?hX$zo*$h2mnc^DOJdq6{g zTGo%K{ujyLoEXN=u7Lm<%p}RX7g7RG5je{J1CS^&l2iAnoz_n{Sbt^=+zB7Vbt8DR z?ZUQ01?Eu}P Mp0 zmtLd7*RQw s1wZFn|im^#s6-&eCty3il_CD(K=JD*UZf}+B{!@&QQi*HmS zM|US!4qQ%sdOoTi%q8`5lDa =k>b@;rIgmJi;;N_i_8ArHZw z;zV$z!5`nBgmOfYdy%szhnqnE50l1c4P7RcK^|kFX&%d|Y}@t;saj8(xk%am63za` zRioGKb8*>5zCt}c!CB`@Y=|dXu|_e7dQTrkNI3`MhMwUmv2y#WJ)oEmy$G8)9Gx!i zN*>YNheG@*%8oxo)5anlW4xi)*HB0-IbT?%2R-TRz4#3n v0 zInohw?#EX?ha|A8B|ur3fY1;yfO2F^Qrv>TsUU1?>uAUCBuY63Y=%Vn;0#57;JXrN z-Tsj>1&c(YC>I9KK8`|ad!m^0W)n<_^ovGdZp^}E*9_4DfZTxKxoU~r7Nl#~V+`cl z@8LPh9u(SWStL|qmVD@II4zg$p`B>A6ufz*-oBJ~VC>U@ ~V)po}+LSx`M-(QZ4t~RT$?Kfe`Ya`ve^9f1t)n2i zQ~G6bh;X8d!{~PO7tXhobrm9vBkK%x`j+CY$Qulj^>IYX9~2cCl;wLgWYN-UFe*;x zEpgt4jGJ&FC$4<7QOa&c^8m;-ba81eiU7=J^C0RTkbn)c?+RR0xQSAPh8v}bzPT18 zkx4Iysjg`1ihHT>`eyB&4N6IK)S8U}r_K84)-yoPO;M#El1FF+12J~#ppPPLhswz0 zx-%{%MW{G+AtBPapXtp2r(idYcZd^*qcU~^55Q0%t&f~#^8i<4uv6ju#Px%h?IN_~ zSlu2KqH9^0qMR*# bHDE }Lu$)c6l0@s&2D=acfDOO-Sly^|it53o)I?I)2&R4kO)e+z&8mT~d}eCBt_2YZ%X z@Y7DCEr9Z#NdJEL>z?9BkmAiNguxu3;G681DNHK6RshO81}O7 ~;&B#hdagJZ-3qeufK~az_ZIOZ$AHdrewrhugFiOsOr-+zNzbA+mEHG4{HGBh* zWN;V+$juFvEh0Wzo@bsLkQ$E^JPY~p4Z|3Sm=892@?s1RKn?ky_DX*F z;VU?O-X2OJpHgw<$pq*X{y}C4NMv{)F>#_2UMgfr8vJ=H6A|QWGh_3AMWJC#RANwI zmS{M9w?UZIE%T%!k0YEWZHQe(;#qKsy;N@o8r>(6Z>arMn=MwK?V{|m+LmU(*9I?K z#6?sk(C=C$CfZtNs2i0G6M3o7ZM5kgfR(X=AB} G+`}nkc=N#D)qgIqn4=MtN2W0>Q9H$gE36uTti3)s}k?5%O$wh}^Y?p#l zJJKn{hi~s59N`CdK&3G*dK7u@-7gTU;snyWaApRhH59~pgfSsBt|}7zH(gcy`gI7_ z4%*axAj*KEKL9kFqkkYH%GB%u=;rzcyZa0N-Kd3Us0F(OoC$1Wm(JR%DO E zT;a;C2}m;7yNDE^#dtfdrw7Uq_bB)cn6jPzN9TZ#ElKreXh@ICZvtyxU-ey{H7aJ} zQOmciRcJEh@TS04jmdj;8G~Oo5{1AOG!Fro^o4t0E;}l{gxR7v`Qvna8anZahFIu( z! 8NJ|*&n$`;d+ZUW zO(G?50>DIOmhn00WO1wUd+2|qUnJ6is&oe6o+s{g zyd1;jkJV-V90Nu1%fOQ zC6CQ|Q9NL0U7&ySy&qd>3y_1ayF9}9}d@(t|I;)}QhDrrc6y_4qYxRh+ zY~bisn1^3F=TyqkWZ>`$dj@WnDk0$J<8uN#si!FPW5SXd2`JWr%qzm~7-xvWQf{*m z-W4MXutC#EfnMPO04jiA@2c)AHe4|m;|9jdV4F$@uND`C1D$YJ{vDYt0&dl=a8RMX zL;b%u9sa7mZ+%eqqh>jblBgHbV}LyOjfI4?e?8a)z{ZRsk_dgxdY^&a)F8rK|NF(x zFhrSEt?0%cUhXc_zEE poL4&*k$(3m2Hlb-vVH$j^AX|)M^ zc9cNHsHUAY;l#TqN52Vj`KT`oVg_Fdt!Pvxu|Inh1eV WDGBPfr^b0m_$ZUwT8igMT3^|D#y*#6Fz$UTu7V z?syq4gf34=%)WapPj6a`a7HDV`xKM}6~A8A(a&l;Zt~Ed5aNsv2AE#&t3>RoUueU+ z^g-F1ei-8bChRJDhOa2hlRUZirPY=+EyZ4^Dbir+8UfK-yolh803gW&-FIDTKm4LT zb@k<0Zz{`<9N2cC88Cf^0 3|ugXy3%5yX-AUh;x`4!Hovuzcx9SG*$~- zeyqJbF=+zKU=Y}?JaOSHh~Y&mBj~=@YpphwU*!~5P_x~8BPbK!9mbJOgp&Rf3NQoD z&gee>g7waUz6e%>!UKSXLUS4dNC24nR@bQaD590tCiCtZwoDLitIdtd5~WJQ7uFfa zm|+43$X-Zr{k-|zgX-$qesGF#$jcUo{_9uC%{;XAnRouT7E3n0Sp;s-4|Z>E ooHaxYIG*i~z8d|NI$+&1}PUXNsz5B8 EG%yfho2rx@lf8*EX~M zE^7$-E$iuoZQ|4ud|L(ro`Yv=UPVA%;Lt?#Ri<_3tv9}cg4;N-&i|q%!!7u#9_ud% zZ47~UfQqk9Gy@A>45#;>_o`gO4Kc$My#ILNm=ZuRSnNFRxh;vWs*t=uql{t?B#2Td zI*b4a1rYHz+^O08)&8XiK%UMCH6zmOnt#JiJL!gzj&S+`Q?LItoCLpUAAc=_n2;3U zxM6hU2azCb@E|I}wCC~^=p;>uc8$m11o?&F{{kDgVoxbyk_8uhI1D*))7DraRUr&z zZtK#tU&0oI6Q^ucVdWeHk?Q+kfX?$K)>9>zWh8wf5%yCuTL(eD9>#U?UyX1hf}Wq| zzFQ=_x##9crFph4e4cT~6DS`wlJawNA;KKUxOXo98%}7~XBI7Ias4dN{sgTnsV>%e zx|X<<6u};WDzv**a6Th(R?_AF&NqM`0P=iRI^+j|x1wHw6)9VRvcBrzbR fWD^Q_DgU^!Rw#-V+;#?$C SYa6*ADrhDw@K5Ba#BZS9 z9qzwuQ&K}HyneupiK^*nwoS-wMSS=jX??D5McVo#y=vgf`LUfs1)sg}yns2QyGG7m z>wfiwMUX4-PI5s?v}6FQ7RaNUV?v0@?|I(zG7|vv`CA+_By9nHRi5O9YBch`9k&Us z4*Ons*z(&uBnWd(^@1#sk;wEJ*L~6&Nkpq-36AjPzLuh4rf13k?yB&uo(#=lfO8_5 z_*MUXY=Az=4rLEWK0+_5@=(~OTZk;MwTPIDGy~0=FC)d-M>0Zo+WUw6cx28gb2prx z@O{;aQqZh3%ye{x<5}eZ&SV~Wj!%!J;Vipwo=}Ez6ry8zWB}I?z!i V-w3Htl_(}8#AVSTN9p3!d_@$nYpJ$%=hLnviv745e5 zdZzKJkg1kfhTZ3$EJEIIYTPk@`{H7c1D_hhpY0uY_v_-gx>QFpfHSdUDVPHMnvNTw z!!7#uVcu@7TnrVC1ieI2v_l8RHfEV~$jqt7N5*Z8law%eSf&Gfwhm!Plom2(2Y3J0 z^h>rSW?vSU1K{CF$eWj{EuHv?9}zR%H%&)>q4*!k_gcjwsGqnPli3pjH;iFK74Gmt zAj5PRAMDM>_a1Q3ojlnsWlm?p?7h&z@1FO1DTSZw6n7q*r)-M fG_B*L><>h@23DG<&9C)2{6}?@0^d{Ug_4-IhIn1P zBDdwrMv9}z8<|7LHXiN6XE$m;iY5O0y@;Z1o8CA|Cjo2Y4FG*&1|oOcCsSd>=ln3z zJHe5-2GlWFs7_+$-~4||qsg3-U?Ve^sj9eaJ`YLXhp8|9tfR23ZZklUNEk=FLYR4_ zI=CChxd&xyfMT^DgEgh=`xhmfCJ@6=2c;hCS&KSXbqmZJ5b>P+UPBN5bLM?w2(&>1 z<<>f7)!Kky-cCy!_#NUR23b`X&Xshx`Zy~5vGl6!IPFr`_p`BfPwF>R`;6 4Gti2bQm=&9h*jUhWCFc;ddWTg3GMnY3@CSWDRO z4J~2^c20{r`m^F_YcVK{pu_GYnu{}#@Wr&`%iqD6SNxhic`{c!h*uK{H;=i?C#xVx z{_92Cu2z9pcq>LFkUWazi8?QwNPJ8Ox`FSfzM@<%O@&EqjvJIT0F=ly 5u`ku_0Ls#)`K;_kP$=18=Sxuh0 -;$*yx2$hQYeo%)P z*$RwnXDp0m@d*isEM-40+~X&Ivm{2bQo6(w?&I^1IQ{M;1{L}sHa><|MOjytB-Pbf zBg2U4P@Wlbfa4ebsVnRP#{``i3-JQ1{NGcNJj8nU4KSfPf4u9}Q2m#z{XA&eP(gQe z8f-uZBbuOqV|WE5?KBZlyfx=P`T3w^(|$h(LPi0OSnae)4$!$vm^ufGsgOS?BEJq| zKDg_WklR}e=py8^?4iNX!}>Q9>+*aLT=sBkp61)l6mly({!9iTG~Kv5#LR{C_C%8$ z9NvF^_q ~r}b{vr{YirS6U zz}3xnfyM26jKm?UH?)lR{rNo22<8|;>Z(4WXggGGxg9}d<7Wfb9!_?TgiA~kCWP>h zb@9Ab@K>!)`@Hu3 y} %wy6m )q{72XWqpL8pqE{&RY@n(l$Q@YDZ=F<;rrv)-KA*9(_%zP @Il;m>m)zX>>1h>&N?Qyctb2{@(_y+{7I{%K3- zE{p zdz=9lS*buxpv z57?iU-p?~(e2V1;)S`_80|?v7`>i125rk7?EnzF}o8!1_bzV)wZlynedOis62`*3@ zx#_Yq1o#m1KGrhM6@5~)Hl(5}je#kA@0^*X*$iLo!>hTMD5=Dj(!KUM2IJE~awF!s z-NP`)7>xg(u$Nt| rUgXX#9;?ZnScYohStrYXzFow(Y+gRK zjFQ-dF7-A8tkd83?d5>_0qUTrV5RfmGXl2k^JUD{So@NvMsPL;CyO84r0Py@G3zl3 zzcBpp{W17v( yl$-?jr?ky%J!#^XD z8{{SHy>yV<`4ZiNppU@zyS`Amw_j#_`hxEnbMw7N i) zd`(|vOaZb)r?c7t&8T&(F6=LZ=kbKEv@PBO7|=t&*7?$x?PAMbqhbtW>+&gcSaK|0 z8fQwvpVSwaZ_QjP?d~lxbMJHM23~Tp&|fj%NlSCcI-4O4SQjj0WA;tLiy+1Ok`aa) zk!aFPkUK>WYnpKb>tB!FgS)s`z?=sVTec$RBmN{Kn-EzG);c{T0Y_;0AsZ4_5jknH z4ka-ap0QW^B>2dT7lLus#t6J+2IlV;V25~m_2z(36DZZhTy7RZ-2`7ad)w^s7r%R& zf-C5|7dG_RAgvuEFlGm@3>J3I?6crbH*p9<_H`5a0&t~&aq7oU(BKxIZL}HY+xjMf ze@Ba&QepT<;Cgj48T4D0_jfmhnU61KKHL#swKwtR=xq^lEUIp9$pM70bzS871}8tp zLny*|?DEn9ti0=b8R) D%_s6$KTmI~ z{=VsCvb`Gp+=D(;7>qteD?Ny6j{Zn}gG yR|G!kGTfK%w{?IiBN|3T{EA^&b|&enXR- 3?n@3{@ z>ydF+$pfUA=-+FTh=Y5{Q8!QC$6V29TRMhX LaTxLYHzJreT3`C4 zm|kL-zlxlWmjBYbLK~>Eq$V^6V%~kQ2&EVopX^ic)EEclaY) @ypLBjXBOKn#IBcZD$RmhZ*SB&LPP46$ItTnlNv*kA+ zj!P8KhkBP8TPA>mK;rj)*+*8395eIJBe>}Hj5Lco%crekQm+dIx?a@Dx5N%KFwTR^ zXlraJXX`=0wk a_4T!2oT0e$I zBl-&IJsT`+w7`q%3k>UGs!Re3@+$>c?acQbtiZqX>+MdI9|L`pp9dpUYWt@hH%GT6 zJG=o1mRco?34Sq4nn6t19IILNBp;FHIl+Qf6v07p>!m!#qnc>au~5WK9M);|7rs?E z#cUZ+oy{$gHx!*5p-+N{I@DNv1(Ol|+{F3#sv5*>e(bY{Wp5aZDkZ*r-$Az*`l@k9 zqsXWOxfdd>F|x#DKzn>MKb{WN~z0d% ?j ZD^al>KwB7xZZ_q`X$UZNv=yR#e65)dgG3FCDbXqE}~482(BD$-!^- zPRJ4M+jV{WgjdP#dStuWq`ZhcZnX~@8F@-sMO@!lRhDBc$_NhMNtqyy= ze`+k6v2nLLX@>Rn)*;$qA7Eb375y;R!E)~%pj`jrLoD01n`8hf7&qbut>%hxk@fN| z89;p;jM1GSc@3C~@5p>j+(M^!UXU>FX)|e3;R0=-hNmHPy%ote+*nvL9M-jJ*!< BXVUBK}pI6p@J^p%Egm61p zVPLmy9d|;|yFNl@Fm+WWr~~Ov-+FO>;Se~xY_?^q%3V}@C#PPVKUnHwi(IVv`~EmX ziM|ligf4>VFvbl4gOzrF>NBr+*@jP-`HQ{I{Ncmne_!?A71XE27(!L&Pj4Lh)d-0E zt|mCZjc9nttEsYj+MAB~7a82+_h1^r7R%`o05{qbcDR&$eNB;nfg*Bedb@Y^{uYlE z5|+=0jbyf=XdTj$Ys9Nr+gh`s%PvRG^!r@u`@G@N(`BGy?~@ph6Z0()#~G&PqR!NJ zRcl;dgGk{t0-r=#Kqc-WmJDv=xj3eA#Z8>n%49)3>3`Gn5vXg{Vfq10x9uaUx5RU$ zzoq_@0Mle8{T2CPw|Y-w+2fT}!AMW)|815^Sh;@$boH7mqVa?0Yy4a4{a*3bUd z5{1w%lnZ|fK%2nSO-%&qpFVRd=xCjo56X+2rn{Npcn!d_>!3FR8c(Dn)1B+yRL460 zL;Gy7sTPIlTo65`&x$(73PgMhjgdYH2(i>GgB{-zNo78E%Eh(SVk=4U67J31=!mAi z2=)L}MPUtf5y0ODpO`QnKn<@!C6)Zg 9q(P?PRSrHsd 5@ zNYALYOnJVxk_|doWn?gE+-WVz(AJ2r9o(cS#*@mZO$;mG89Et40IAJ(>GWI>@s2>Z zFb4StVnI@av8Jhb`|6;ur&UA7Apkqf#5LM5JP5!Q|K;PPe*}7{aKneGa^u+D_20lc z>!Ew0wYV(lnV2i&3(<(7{;mVu%Hm~&+|Q5^YxU_l> _uD57jFU9mI{%VSzbXJ~)HBaRfww2&p8yS% z2PKot!h|qkm=0_%CdaBh)nM|@;!lAz;8wMm6LkVeoZ2XJ{?sn?oxA>GFNXPqJe>02 zr8TJy U69d$3ik-z2^p+bt zfC-Znf4He@R`sj$Nu3Ad)}rDY>U&6l0O}&z>uUvB_7t_!%QI-~5Odt@GmG-K9e)O_ zr^-UCSxHtFh3X@%$xadxF*5)BKtV)wux6j*T#{O^;Diiw zDPv9!{{x|5R zR>ZyQY}$E}qU*`{l-A!|oe>$YT*W{tI_BSLPH!~7yrY~LUg`f&&;r}@U3}Bk5fw_r z*Dwy>V`SY%Ot||wP;>qr@!&mDlnz7OWa>JnA~@`!EwaQ5VJbR*H#n(KcX;(uCE#Cs z^Y5dYbF@RjwioMH*(1oG&UVbc!y7yiL@u>}z2SRnO2VaOv_Q7D{4=d=Zy5ETRWqdf z`b_SXb+KDsg4$)_+tRce4dgq*9J )^IZ<(NZbAx|Ve~7jT?_iTa(}~clEk$kS)hV8R43DB z46hL^7ye*JmT$XAecRyLdeo}=JeLr2Ny5sjoUFy0aL>^rh*Pw8&A;MrOPce4Z+T@U zFgGZ`(>5JF-V<}kW_=T6P(<++rFuOc`|w|RFK+NThiIywXW_dws-?3zu=V7FW_$=> zy;>ydr5kOL2$(;`>;1X&{fD!6FmZ4;B*U*7DVUt1Ts@I@O5G9KWep=BTZb}>|B?pg zlgkaVHyD?)^XLtc30N0o)ak9m-JOf C1fIvx7vn-`(viVp$|Q*W&yIZ}d}Fq%Hz$z@_&8RxcsdRe@}S!m|A=JB zI<1Wg0t}>|rQD&5PKUN`!Ee|rsbY+NjR700k=7-~qlN5C*5q&1nuA-S_F9o8r-3h| zV(%Ph;rZJl_U99WW{+iX+1InHVd@`_!$gT}#_))HzBo&5I`mg^;)YWJ9}>(Hg3(ew z|LQsr);<8I8MhCX0{5qFrsSq+7v I%* z28T`g*8IIZ?D1U$WCd!4-hhB&cdX854917BwL$Nd+kN^o1xS60=ow^*R@rVrkU!ZX zGCHCp^^vJp&@(eCG(C))>e1GN2=`YqI8JDTpG|HJGlar|V7anmGu#fFRY;At1_ZvH zX=Kf#1Z~nWv&2uBCkOqd#?GSxslU>N4Syyxp>4vdPjyGaLc+0Sgi~L$+xG>Ea1mdX zw_QSdpuQ60OWBy`a$>3h$cx5()}?zSXAZKH^Kk~-HJHaD*$yL2NfV>3895Yd{bNDh z{30iaNt=uy^Qc^0FI>81l?>2~y(GcB(&fCOFeuio^z#&Z_5L=d%X`2SYSj14T*MIg zvKom54n{5mlJsa>PW8aw2yKjWMv1r}o a+3d0acdFYi#6^OJ8+r!6~x+}R$wrA7D`42RIGg@t84)pPn z)OXl=P%GL^{$+YW>Z#?kQ*D<*y(j`C$NOKNk=*((+)ER5K)TdMQaS4)^Vz{Ez003w zkC9lH!M|C(DCk5by_TquFyJGGzrrp3y+ymIWM*fVP>yuuM&tPnr=b -gG(_= zXL?>ISWE(Rk9)(Jlb~tR0JZCzk?$U7T)w?|>Lu~J^^Z7!_3tp8_Buo*#Vn-1J$yCX zVhOzD9XcjNh2cz)Fr)Hf#i1H>x-)Zg9^YWlNJ4-Wl^;HS0e#KSI2kRDrAzvj$aK&1 z*&JwT&2{p-!pIQZ(Y5`q@_r4^w7WZhWB5;2(@I##-`}!+9~I2qIr4<0{+{vKTpd?| zpc0W#v B1Gl6w)7lf0c7#XdHYs& AJhbpjaPqko>>*YCOxD-sUzo!7Z{~epbL JebBlkl(J>Ton4WT*EdSPzgOL8KFJlcjcV+H&ghkQlWwF`Tc&|xd{wP z7pLcD`Dc#gyg66%^*~PTeH|^vL1y%)jGs;H@ei{^BhMjcan0o|Bb(N&0rDBjfdNkB zvgXL*kG5lB0iPOr-qAgc=0$_ixSPTzf)2p!w?Z(o72=f*!D=KizFU&6yzeFD-U&Oz z1rpC{%Sgq7+L(%Yv-{*H*qiaKH5k$dF#;v%Lo4LczN)-bk{+s!?8T^2io#+(@Ekdi zZ8a8sfP&-g1m&5cuO_Z423^=i1$>ft;*T}ery(M*(r9;B&T e=%lP>{hT&hyX;Mt$LoostlG3V@kl<$Tyi5iYQAp%TRCr(1meJ z(V|{-F$7lZlrQklKUw#|uY1vQpj22K&s2@%i|FlkXQRUedA=!^{kpb_Rnz!gk7kHL zzCwJHV2UuGDWiS*_;> qCDe_gg zUWqgj6UL*M=%?#S-xXpkE1~yCAS#_1%fkm1QDTI0$fiywnmcFjTOlb%ub@SzVZ5T$ zA|XysI1 JF3}`=qBbh1r_OPBa9_sF_r;!C#_y`z*Ll^>nNz_ `esaXBcT-r*W%uY^2 z 3Bkq$4eaji9<8wJ0nb-MbaDa5eWsn z{%x?^sQyP8(`wbs-gyp5`ld!nq^;i=Es=)(zh`qwqBGE$cy4?ZE~IzuwaLUwxKP7{ zXEYv0^pb8xOq -tvp1&$YXNyNt(&N!>?2l>m3P_&jddlG?!HYEwS_?lo4 zT8k<|Oe!VqS9OeF+2gzEf&8xfY(4Kx$hh<20Qp9Gx$^-s7$!F+(~{08wPTk3>H{}{ zTQW1u7KiyOj3TEQHRUT>Oiv?md?$VQ`wA)Mdle(XGKy| %v3N#` zkfOGB2|nh}sa+?7m6Zfz`(D2FLw>CnQX=P-t!${Prx=?K)Y>icvgV9mG$Hj@^-&-& zx-BowBK5lwcW#nFL*Foh^us>%K$k7n;7Dv6m**Qg7zO6Wpzt|l9OOZHj2@1 +a5YQb$E9-j^3}T=%uh0~?_SB>uqjSZMoFv ICXvFh(8N9 ~v6A;rQ-kzjI~i+R+|4>j y1wf<*Fus>~8Dnv*;xJT@TEH6fBR`E!Wa5 ze7Io5$!3yTZHf4S{6MMxU#sB-UB$QX32X!dFXwlq#>=S&PAPTJFNk6oezo)gc+1B# z5i7s5_V-(psxvCze?PQ>?pf(nZta(V)wR(~mp@_id2pZ6$+aq{aHVy?n=gL^S`T~f zk>aPjTle0mtiA5qH520lR{QqSP6LJW%P8^Ui~j_^d!^nL7p4j9;;12+O)G9FeU)=8 z|G_R_8$X{1qqRT*Czr`7ysT?MmRg$K9?L|}$gQatfPN{~i)NK?#d|iO=(kPI-)~vB zH}_ +jcYIFFGlnkF(x6B}{s zmv&xH;{UONh^#Y*3~rtzCbM-JOvhVxp^q8dDEUIKk_EM@mXt{axl+H3ORpqvK0g2- zwzx4hRJJ11g-Vo;ZG3f_%kv*Aqh-7Eqs)h^kAiwPPuj1n?JN6YLM?x#9Hxgm=k cF;lM;o|X+| z)Kr0-g~pCP9LtAP_uPZ&;7Lp4VafxMfF!Fx64L#U7bm$8A?c9-ne+mn8~eXMp)VsC z&NzEOXs6y0z4Z?8!Ol@Q^* 2dsZK8rPztKI8Q zy`4;Nb3q(*v9N;!YKR@gJ-jVh`o7xR)8|(1%f#QpqXZRN9MrICLgB)A%YT6XAy>s5 z8UDa<`iw_=n{WXY7j4xivNX!5o7QSVAt^my8)O($dVWv&)(QZRk&OC$r#~@bKwfge z+`e*`b>Y}0Sl)gQw(!_xAE#0(qz?}c((Toe47}_}9&-#4Ky*6mwOD_qo+P>8Xh}~r z#Q*>+$Gl}1&dEi+*aQ@P6s|(MX~F&XQ e}Nyt!u0>fqxsTKSLN;L(q~|<2vvTz(c5dXuu@ZKAPZ)j^vRrn))+VK^Ttd z@9Xg0OiF!+TQcA)6Q7&O!W}7%9nUid80OyGD5B{VbdWcxCX_`6O^4lmlpJ;Y(6`s; zr#9ceP?Avj2Q?fu_26CLOsfeoA*^z^Who}s26Mm^`EmzBdi7sNp%RIOQ|q(!R_^~O zj+TOW*6wS?W%aAyeA^srY7spBAQ}LHAH8<8W0aDc0Qx%g<)*m+CpnB_(U_I(co0mo zRd=@Xuo-8mH7dU fYkiNd4 zD+U)+V@gyMal_b#agYd8BpiC)T+%62Oiy#97kBE3UHR<;&Z&BYPxq1eS~F5YFSLy1 zm4=OK(+#0laOuT#bECR4m#NS^;=hV{7#?ccPoL_933G?lsFm&(4)4igi&L(+;6Te+ z9usDNA^6gxR>O_zW3VJ{kiMc$pG7AA4@uYIPu2hbugjG!Th=8ZJEQD9OIFApC8g|@ z?Or04RmzC6i;T$L_fiPOHL|%^%DPs##=Y)6zw`P2{($>9_kGU$ywB_PTrbe^@r(&^ zyMFiCz0BRoMvCR}`_wK8s%6%8KRkDv($_|c){q6W-iDRgVT7`l|3h~+xnrK^tDvu> z(j!8Z@Fqb
xq~&Hsef4S*8A4;MNY0YB_mtWYpdMd6RCD z$51&QEWGx;rVtmr3NJ|r0LddJ0Zcn$AO^72#Zbq~Ma(J6r@UbRHXkwotsS<3bc?Su zuW6@z) &pVkIkpit(5+#PSiJZcz3|n zHA>a977BS+BdBOX)xGMnH`9Oihs%a7GmAP0-4R+nBw_V)KNY9Eupd}kUVj(wrPn+> zSlQkkLh|hpyu5X%pL#R(*%iCp_^4Sg0CS;^;hd>%K&g+NJ^4a0V8|~2Ia(_D%-tfh zxkV<=y;F4cvB$ZwzaJC1+KLid6xCz*eU!a}5dmxDzr`hAm>-n9 IUFu$1Hye|7JXJ6JDe!gnl%6?LTR{xSv?2Jb>q*X>O6Ja~A zk7Ct033pHCmV{)FvxnrCoji6;Ya|Q?Vj~6emWZt0INV&AbG0r;wpw1aLFsPG6k )H}n#t)OcxdEO+1-t_HA>;(Re5 z?+Lr6`+DBRdCKCO0APl}HCvXrC1xrRK=iX6aaB|J62p|ho|^3*N~m>6>E{>PJw;{V zeSKSpk5!`A2x%e{{gz0TX}djj@L{nP>TAhLlv4RBefU)wsj0qwa3?-XGuAj&Hud<} zah_P~UHd0?`44H#j;EjQt{&2uOXtlG%B~*!GCoqZv*1!x2miR~uGHA&O(&fXSKnaH zn`Nx5Qpnve1XPMiZwqPUPGsA&^Pvl%6hznNDXFz@r9%&@D^`iiWT1nEMk&?H|MA zse1&GI=KNFlQw(zm3fS+V1v@gffD);1 <|#wb5)E2 z)H_z#zF@pg5wB?%>Q2$Wz{TFCyI8KDvAhw^$CW=SuEci(G~gyw)YcbKFnyI-c*Jgd zg1Fe+F!{GoXf*RZzGmHBm1`jxnf!EMdY}#QkKs9g{OB{M_3$@M+;{%T>&xOq%P#KK zJAXjx&PFA4w-=z_S12A@XKrL9aDg!p0=tpkwCM3K;=eMCTB>5%0%P&Pap+MRipbux z#yE5EAa)*e$Q5WGwE7#4kF3aSw`c|YtAQ9)mlI$;6>Ar(bsBbf9FTei)LV-buy!`@ zP>U@4prbF-2QxOkWH@u&lRenHq*KJvcYu_u&D>se7Y8dF#!YbwE#I>HTtHHt1O3l< z1YKQ0fbVwm=4EA2uWiwLTslbvSfku6p#D;a)4DmhZTY;t`yck>ItQYWB IW=DI4=MLX}_q zC^5_2Y^4q`gaOwkIVqBi-xN}I`h=v<#)Rv`LL<|K+g KvM)k=t-4G&!Vae8Lem0k}RiV{@xv%bu~-p?>hI@m>;y !vQGPu-fFRyDMQ5^qCw_vV#~nVBma*3$V}bi)e87WK z^Cm9uKBfKDd?YPP5yezcGUB7X&vJiXxYdP#22cyJ?C|2c%a+{M8^2#Id4qHgxYu5|HZ3gyq@M{Bbd%FpvE?Gs7*Z??-FlM8FvX`4YGs--dpswhvQM5zU2fV z_a%1_E;hq-Nu(-(s>@WFS{O^hWjr8(p6_v;iIikXepJNRF?zR|x;GDZWY}^8##MpP zE$vg%`qe^F`iqc!G*)oyTJB_J_4(Xk>RN6>ZZ*G<{p^hX6yhCT+qU_UfKcDMBJQB1 zr{q#$tS4^P8#CWutng;BT&^1U-Nu3OyYGIz9x5i;pwa#(@Gm<2w`%CDlZilbXtwNr zl(m@m-)FnJod2r}YI6(M%RqVLBjo`7hO& Nvl^|8$zx6P4C)3V$o@*X11#D^WzFK z&-F@-h1O^>0^(Ps{XnCu!1Z|oN_;QKJB>hUoO(DA&7)X&AP_1SVt*qMb^huAih+;m zF|2)KRJ4O@{e~b2qN{spk;&XMCV?4xrKD-&npGc+ g3&Yg7M z%Px7b^D@FE_zXU2^F>8yS-z&b6I;v`&%q`~^SCDX3+Xb?iFLuJUQ%VZsOBBeq0kXO z09COM^-aCJN_9n-y5P2a8-+*t-%ti|?5%;#C)o<6`NDFMKo6pLq+A#8N$wNWbM2Si zqK{zrhdI+VWRBp)L*}X>#rI$alC13Jv!q~L@$x=7a4b4`!>`n0_QyX 6&|@Y3OGfApSooFeaS6fUaUJsRz+VE0I$95OJl{ELQRAyS8mm{JNd(f-$vxZb zw=NH_ce?+(acAAhb<_Y}1AxA!)Xhm=M_&ey_Q=Ndvkw{A(qSSIR1AUgZXZy8R?9&5 zwZ>FvD}ltn7h?H#>mRIws{?e|xYO{lhr-IMUtczxh6KD!-D5S0WbFs}ZNX{d&szX8 zgVFb?|6qss<`N1Xajxc%;p}6)BM`(LEQr^s+)6{|kBL>e4Lx?}Op9)VkU!re9x+Ln z40h3<=_MePK1q~TfnJmw)xZ;^dtb}FRH;>}^=yUEu)pUM6EJ3RIP=h|xm+aL>9B{u zy61ff^{o `)xPNTcj@}irb4ZBj>A`8 zyGEWuaa21n?`z+an}?rrUT}|oQb)lHv}j%pr-pOdG3_!F+%KLLBKvbRKVtk%5Jp3Q z`2XKFD)-GDc~Zfed?yW=%*z2<<0ghlG(xvkkENAsHjSQahQ?PcVrv+L_Y!_6#IM+l zjXo}3pWFSJd4Ppk(C~1cJ#=OZInyY~#=QFLxsgL~UrP_u61zezAgmtCHfv01-E; ccoZSedtsPuDf+w@IhmCDg_6S4ZpS%nc{?&77@N@ob+1rh^85x$ zx%k+G%;N$G(S}%)fCZZz(AaEXnUeJ2Jj;t`kKL%!{$OE0{q{6NXXk2%AANv+>itQ) zr>wO#fgeGwk~TCyyVv@tAS$*l#`ZZka7~5hd_#QJ1yGz^OKah_-`_CPQIggJmgzix z{cha^!8@bsx!2>7viHajmU8G$KGy)(1~6+Ix}Fs9kEoyCT0IBEPWn-f^}@2l$j86W zcw9dd_WrcK@H3j8FMQuQG-rNUaIw3>s}tek93*$3Np7GRcvjjp&s}u|#jKC3{*H9d z^?oh|_%W(U@>yx0d_Th-F1Lnfr$6wRLU_1*fVSskvH$wQKbSB7N`*I-z9#`v&b;iQ ze0>Cki8-=-fb50OSp)hR#T>oyzx0P?^%{=+EH>l 37rV!}Z z-CFk=mv ?$yjIm0=DR;X+Wk)Z3<}vx$mn^TZ;z+Mm=WnohCc*Z7x!|`c z4DtLI%u-*~3HO|^Iyv$0X?9hXJUP!2uVY(#cNqKZ8nJ!D^54SS^~W7OZzj3;k3(^| zaHw<1glRq(Ulp%U?&oS?{D>3);t*uo#ip@bFaRP~?mp&&YgTrU4#pQzcZH4e3AfF# zJczr!t@#r>hAy)#?VvJNhAAzd!>z=(JVGoJ?FJM)pVg?y;89Y0LHDW=O-`dGDse>r zisVDLtkj1bhsS|zc}&vINA4vL;}A?c{|@ex?YCZ!y(YL5m&gT|biSX+M=0v&LamYu zVrLFUw3x1+l=sH5{ahdkUG~2f%8{3TWPqkFzR{=6|96Md@=Tm&Xi~O;QdM)Ns;A?N zN4- YiSDp_8+!zI<>x3f_P(H>6nThGHbwxCs+ENIH$F5L4UvGUT z-A0Qh&_zSceyc0=bEQyKq