From 029c8a66500d2f16c1ba8fcda23ebe4f732dfabf Mon Sep 17 00:00:00 2001 From: Kali Gallon Date: Tue, 24 Mar 2026 18:56:09 +0100 Subject: [PATCH] ^^._, work in progress, small changes --- .../frontend/src/assets/doodle/doodle1.png | Bin 0 -> 54154 bytes Transcendence/srcs/frontend/src/doodle.css | 68 ++++++++ Transcendence/srcs/frontend/src/doodle.js | 154 ++++++++++++++++++ Transcendence/srcs/frontend/src/test.html | 79 ++------- 4 files changed, 234 insertions(+), 67 deletions(-) create mode 100644 Transcendence/srcs/frontend/src/assets/doodle/doodle1.png create mode 100644 Transcendence/srcs/frontend/src/doodle.css create mode 100644 Transcendence/srcs/frontend/src/doodle.js diff --git a/Transcendence/srcs/frontend/src/assets/doodle/doodle1.png b/Transcendence/srcs/frontend/src/assets/doodle/doodle1.png new file mode 100644 index 0000000000000000000000000000000000000000..359bbb264058885a674c252558bbaf459425e21d GIT binary patch literal 54154 zcmeFZ`8(A8`#vsvmXKRniY(<$MG~@3B0^D2Dze=w>ljPcF*BhoWhp9Un>I9rikTtI zkRr);TPB7XvWzfhGMHhu&r`i#-}is;{psa6IvmF^^SqwddwkQ4`AnICMk6%yKZC)n2ZyrZq{zKAI3jo`5BLPCE(fIlEO zx1Zee*>}*X3~c`Wd4_G;!ZjQ4rwdi*Z%aM*2pVpi`PaAq)qcmw$iJ>i@8Dm4W8QFL zabZ$VG6i&!EAq*4;ItFh$1O-!MH*@p2u)~dU+@BIgV1*p6$)H9}+^XY=e zSW~{Vt-#{s5?WvFz4k`1)MqUQ!k+R_LL8dhUr6!_)Tod<`S^nqMMxsOH7N5v(TY4l zA(04y<~*K|SauYQT>nlEI2ZAMoE_|d@4(lFZ4(mswmss^m1rR$eeJD(+v3YWvA~NG zHyzKNmRJx`mixB~25p%BRR@S8%mQP=%%Uca_4F8F59J_pBh=PxDi z*exWqPsq{E1{^=OG!YoR=St%KN%v!*Tbc+|PoOXo+YCFX-b3UeX#reHSQI9x%ClEy|SxZP<=oUOkIZecI$9}Vav9{=a z@n_x_Upv_KPu}ck7)y-UHjax(f&g|L*=weBM1rYp0cT9fIQuB9Do_&>xBxV#nsy=3jMOxsnIX zAK#lcbtP{&wk1exE4C$lVLu>32~Q5|OvpIX!IA$CLU6v*tn2pjd49+?cK|N^?1ZRN?5urG(c#{xkj8o|Q6D(!g|H*r#lWKqTZD-Ddx-573JadJP zo50QZx$YDa5o+Z}{H-+Ob0*4oc){xFS`Q`MWHeDeNedIp$Odz8>8-vv6h$}T{!CPHSE>Ay4=_Hh@%C%^TipS>f;;Wx48ILkC zo_$t(2VXdI-Quy8%SxDX+G)+Bz|mcj1de-hg6L4B?kq;=bbr2l3cKSL2T}o;TbcAbVZFYlajXAK{1K!tsUsaH#+jR+@@4ch^)YR~ZXsitI$+5;;pS&a| zjegLV?lwht86y;pzE(=o8h+N42Vj%sKGlWMLAtD*)00G;xZ>`fA7 zptC|{eIX>2d-bH3O6Ms9dwChIFz~55#&a8{j{LwpL8(+qZH4_Qji62pCU%d-SUCR# zMxD_-0Q zO*w5h+J0gmcpDk(uY3co2=1-uuoeX9ad`nDA#KOG=PVu{(J{*p5vI6SLl9Lwen{%H z4seAU&EHqJ{$-@?w16`<^L}(3`)I?1@mxpOeNoi6`-JKy3H)Rwpi+UW)79;-?1Smt zB`yLI+%iogP=QQ>bT**qIr{8Srk+~KUxRAx74Fqj(r87`9SN7V0Tt)6RdIAY(R(rO zjB!+fyZ_QD4xzm*>qsL}HYInzS&`J$@bVE6J{CeLOPS=LFH{-i9mX7uH~#21*|YcT zod#2&Oe=XD($MyUMRy2;)87Zc@kyF7$GV@#78yeU!h2gJ&=v(?LrMeR{{T>#(sB(X znm4QC3S7&xa(kSX(u{gw5gMN^(_yikb;96guSeMNiQ%R`GbzAmE91At=OQ~X`JZy$T& zqV@*}HD9=IzIUzp;f#x37H!er=ZsiGCv$LLeATXrdfD;z876woR3lIZLC1DB7p(a+ zUh4F@2fQfAe{Z^+!{ z^hwYfE%&DR8!CyaeU{>0^kT7s^6sHykb;LHLdatCUo$a<&2SxlhzTeXFaZ26Dg3#& z;*fr8N3rUA=#v32ca6W{`A(hD`#Yg@rcTGe-JiBLlvrr$mOaTt8&>Jo)y1S#WKRXl zCz*GZ#S;45ZRqVoK$gpeC+Q?Qjx?K_?jNs^?dNy%@0b)PUluN%uzM^LQWb-w%0?5^ zw#fq3nYhL5@vL*i)fSX$71we&g!Fnlk=SBcC>0}zTSPt$Y4vt8zD4P7cub$gmN?&O zlrTy=OcHCeZ3>qwaeei%=pMR%<80so1Bew62twcsxoTT?|NCSu!cB@~+mF6^)nP_)6)Tr> zPo_Nx+w*TPQ1L&(@~~q{x5mRsKf(KwjEBGT{#Ftt5SLju^-hw5<%{1y#aKt#@p>}W zD5(@^x$u(Qfm}g?o($eproB$5d#v@XpnjmQ(@hthR4jE1eKWC2z`whwwGaE#L@}?Sllk%xWe;=w?bC`hk0Tk}QT>d3s&D9j(u;_*X*WjwpRB zJ}Y+2VtYzH0IqtK@lHFGV|HZAnEG@gthkTFY$zEKcQGy|=E(^Af8P!C{vvaQ**Hf8 z%G_`kY?0F(oDoX%1#aH;_t9G)E$SKZ{Co2RCT*Dq)@CP}sEd?;lv+-98@GUR>sPIZM_GJPe?#0wBPGVOz4W$t06X8seYy95`p zqo(dQjK-{&&*dtFCxZX3%RkycxuL0aK%@J+6n<2lMFLAESt#8Eos~`np!q1oHdL(L z;@KSn{3;KIHbx4b6rPDNHa7FCV#Ix)JYfX&PYw9Zm-~P7Wx$c)j22YLqIHnK`e`ZLjyF@j=L<&)GZ1x^6a%wyeNBT zHjL!;Bo{0-UR#MvcCMCAG95mHCnAu=BYps2&4#6X>Oxz|gC8mF==_sp*Odw#!IKaH zIjr-EHG;2e3hn%a2~(Hv^93N|=PLiZV&4}_h0tFK4+Nsq==O^NE?%v=?wZ}1VMmXB zzyx0cZu6BK82a6c`jnoU&gsjKQO2`Mb1vi4*rt(2BLQ7GZLN!mT!KdYQSr@>X1Y4 zV>{_RYblgUt$kJ41h-tx%<^YEe*+bVu09zg>ucF)-Xv>LdUny+xt~-&|?a$4RWUz)f>?V<>*U4!urB z4{eq>95Y#sRTX8~GrD4tm)vA$bOB_>=0V*8UT_NA7E>nIeXbl*j(yO`V70%2@)6_u zpyFyG&)cPB&&vC~zB{1n5z(EyJB9zhL$m&OWRa#_s8Qar&!GI{n628xwUxSD8#t}= z>`Emj*SEg2xkM_y@0D0uR{+lsX9ze{%SMwoyD2a7Seu*0j*>4UQ{ldcE_1d> zNAY*93Eq^SqU=WBXVyZ9Vd|CY-@fzVFV_sbZhbf=V~gbCT^Ivkp=iC~5gKh$4SivN zUU7PKVWdHE0-ZM50(NG&kd|@OwZD}v zgU)5=c>`lcWA+De@`z2Py|u;}F-!rV2tv4gcMJ8T`{q}!HNESz&AUWv;+)ItBgL^3 zEp~*Py5TA5jQ=}7P<44q?q~4P_gCUay#Q{VqW@Zto`Qg$?-G}D9Pw<5J*XrOauOrN zxn+-Apx3NHU%rc5=NU?pgWaKZ``BT6VTojQPTRGn0;v>E#=N==&^xD2=P5z_*c)SC zsJ7@^ti(K5w;sxtd|Fh|-4>?AufYV2x9j-s-(cw=gDD&LEG%6PU*pwpv)LLKs(w$0 z$c5);)mcC3K2&ZsBVX2tZMVoLUF3% z1V{O#*Dd6H^y6Q{Kuu~XNrGI&20*VyWcgUD0+?gzj`p`t-d)+7e01q*C{O>@7>`Pd z;{sycx{Ffg!fz;6RYLx4p~2x^%o7yNP{!g|Q5=#>A!qR5b~qs5zGMCa`0HT;Yv(&v zR-)wBj=1}VLim2HBKqXbSt##XVBKg)DA9!|jW3Y$1{(QT5iP+xq>p)aBsYCId$#)H z6gxN;4NhwI8+V>*iRMDsp_Z3R_eCd)UE8^{SS{nFcMPI$D|w@pY0aq#!Fi}G-@ znHvO4HeXS!k%b?69Q;@c11%~^@2tq#I+P0GNvQjCM$6EbQC%7jJ}|P~2ea5# zzT;KO=pnRWpWwbKhf5mj+8sz@FH$F*aQCLT@T5j(xqn%2<7?0XE15qrSbvi-f=Il{^nyc?I9g& z$pDEE$u9Ujsk`AfWC9I#&14fB%8k9+y$j*UO(Hd^*Vn*o4xh;=EsJ`D^ zQz`!WoFaZW*9ZWp?r)MoJ*^Lh2?2UQ*w^V!Au}{&{oNY}cmD-UR=_h<`N&TGX%wf?1alo1Tdii4#;Qn7let*Mv_j<&Q8pbIRWXkl8aX8FL2jJ$%X&gOKV#SS-AGt z!V$nEK~OwH7-KQIW;VNeMW>G!t zWj6Ac$5q%j>(ZF(fGMzEsE#Gx)W=xUF*@|?GARauGAXY0L}Twm?3h!}H}*)k+Aetiyw%k~S5YcWJD3$)Ww|;d=VFuJsZ?zwr5*O2WvzkOlSb^=gXs@MHo9 z4}Ux((An?>>*^(;jgY7={K1dhJgFV1V7-vLe=>1I`kl&$_`P>~yf-rjAnK z`i-RzMc1yPm{%*SA4%2gzfv6vbkqE0>bSh4onhHkX>yca>BxZ9 z(*&2?dbqB6N#oce8Z7=;jMitD5stT0$?{C7yJa0lG`PZ)|N2N@|}T-kVf= z$*4wU$pTp4{u!FSS9nUZPwTN;3Z$G0-26N31(%*+x^v4;6>F<_MK=9fJ4cjSp7z%$ zQ|+s8vso$w%g5|jvR=Ev*oZ9&0NVF?7;SLZq(?0*u>?!`K@R)f0sZ|Mv%>ly^JIXc5nXy~{MKLW;`Wa55r>tyJ|UDUz}lgAZk-UPbZ>XVE|v$SN*xdycbZYU z8w5wbnK6IEW5F)BY;TqaJ(Lr^YiYf^dK=(bEd8Ng%I4-%1K=a7!uH-gd@ZbfP5!29 zkbj6A7?9JKoiHgJIw%1AQW8g6pEfBPC zDps#GajbOODbGgvTevBaZB_bf=B^q#jVA#Zp7slN_wbL|&-Wq<64^~p3OyO8^N{BN z3NRR6M&?~hNT(Ex?#T7GFdGFR>POs?`$8=$O?fn8!&1OAm|xx7OTMe)8S|gPMr@l7 zg@FpUZNnQ`v`M+VtFB^~sqYiwF&B&8;`YGK#NsEYF!cHlBFzkNKS0C%J|WeU7|GPp zJDzM3Q4&-X!XXDyp30H<@FPl+EaSJnRGqs3?}Mfjw+M;iuIp-9)N|vIH88UK5w>P! zA*)qy2vg|)KR2%eq^7+7#?XD#1ilP28z#35AqWo*<*iLNkVFs2WOmBr zqN6%+xpbPL1`Y{wyz?p7UHb*9LU?gDYq}ZeC^ZF~z(X=~)q9So`D-f8m7cB6hieaK z2~KqBqTlsh(xoI5Wf8<<;sgVrTr8CM{7WGsk@(|6LVunGXrc7E={j1%+UMxpq0}Bc z>giQ_i6t3mLUi>lJGGxy-^1z6LXy$DiuL8%8HbfbLC#US!=l#tQf-OyTpvB5rl(R- zt`!}&&^3PeE>V=LSg^q{@fJC^f;EK(u`XR2&2))vYtHd(q>qX9S`54ffqQ z1mv|-moq1U?w~sW<&ns-UcJx<{g(|NULQ?IkI<{P1m`h8ip0F9W8j=~Bixd6IRO#} zatQ;`UuT*c^NB#1jH=)8obbf@E=E1M3Z*>lxlsjR^G4VK>u(J%fIk}$fy|$YLz~R> z=uq9BFUM+fZqg=2@;S@d2D9SQN5&W)LjRcFR+Q_#!8a5k$8(dUuvKkeN06`<5MRX8 zYqPSf;gT8{Ie4pf{b zprY;jW4S>ro*x7it1U~JvsPzaBt0G*5vjj~ejK5pGU4FJ!lYKWf@y_R**Y5)>5XUH!E)15!H!&XJ zw#SZ+f=_UxM>c4>x=BS+aF8(ONcg%Vd+nLvA5|6Jtf`=AO{5DUwb~-|X#({E6 zlbgK6kN10yRHRgEDt%awIR|WmKuXU_oWSFS!b67T%ThnH8gV8>%#e1rjJ-Apcxnoe8EN5?XXYM2}?jQ$!R9{Z4v zD?sz-J?GJ`gbXn$?-NK47Et0xQ(?gF_;Yft$BTbzBXJ?^YliI|FTw$}1$di>D^#=K z-)QaN!S$A*4`@J1-h^qhgF4RBVmyIqKAU@U@05SI#nYLyd5W}mzGWk_%hNA>F>ANr zz4VoB&r}I@;3Ae?o-;&)*QA3)h4Aqx^Wdq=4 zUxOh_U%+fVX`vtt#P!?dY_*r2%s%x1@l>4QLLM>{MdU?}(**REHJac%TO@eibk zz2##c9E`-<)T)&%VLg3ueAdsvgxB8q@lpy7jk%Ny7yws9dGuGixcc?*$#{~W=GDjs z&zod@uH;RGNlad=%g9DaPU5om7Yz(=u_+5eF>uSKSkPeaAL2mE33byGhb?^T;uF0) zt$>b3{7o6&8my)(tpf(8yW-P5?_+>L;T1HdZ-onjT@GQ9D82_a$_nS&$C=|bVwNR2M_Yhh zM{CWN{V4Q7T?!IdQEj%V<~1EgO!J?g-kMTG_?pJTA0*mL-I7VO;J@Pz41cnEAQjAc zGH6%SMvmr6JZJ*Om8o+6KipJle(< z)53WOOb$ow9Rf}XfPfa-=xg9f&eRNxi55>3G*<+CF-^+A9;t8%Zvc&=VACv*4r7D{ z4h~t{?MaQRqBai(i-*2jHUnnB^sO22R*i%fX*B$r9w}&Q=KeKci4H6?OqKdeTz>_1MZab7z|yPzGyL2eaOo2? z>ew~H{L3icvX8C0kS5Bq;DX*?K854q_|wH<<41eP>4Su|j$ckB{+Kym$+p9n)qS-M z3gxWlOZ1kh&Jh7`8>Zrr>l?%&y~}E&dsI_`Nlm$?0z)M(;=zmoFonlK2#7*o+%IY1 zCZPYh30M(kd~=p$ESw;lACm%$*gUNCczupGmGyl2XO<0lG|T2!7x+tDY*fi0%_N;U zIBBBdaGY>fthJ8>Ps*DyMW1YhIvmR>>b(YfDtC+HC|WxP2lbp--t-4nqlHrG1;AV4 ztS2Y*gi85M5~KIfw;D}zd}Z2?!rx?fT%>w$*U=5-tivmCaD(f63=v0$S6hlBzeUR- zOha-5^8;)I#lH1@YfU<+{Tr5Dz-p9Yf$m2dHXX{M*Fq~g-{0AbHvqi0rr%T86O#=O z(si{vdwA~=R@3JxFBH!mx;y|O;tv@+LGp~CCEtSjf{Mi@nzmgP~-@QpI z7^C+c6Q9pD67TIBi@x&I5*O^%04lIDHBUVDW8);JIp>_Upc~!F^3>zDluE%3ZtT&v zwzBclZG(b54r5usXgkOvxK&g7#;(h`X>u3z;jV$voo}mi656j(fR^xQozYq^OH9RA zpTch#`y~` zaJYO@QHwJ=f^|ht2=Q1-2euCw_>RJi8f%f<23}L`g>li7Z1{ckj0eRR|x;5#~`@~tDMU?Ma*uUuYUBcb}XIEC65A>$bw@m%TXn-6v;o-u`pvaocg4nN?RfR^`b8tmRs zdj(ix?ph9&0ztjxGIm!4yktIB{iwDi2e z`L!g!5^+K|ZHXW^)$c1M zSTninGOXU~VK;qxzAss#r1&|&=F1wJpn4wiSM&M>ob>3%7YYutE^WE|aYpb#4Peg^ z+n!4*B4l;`dSw4Sl}=mG*Ap%uBs%)sHKU*swO+3AfGyK9$3F^TxgghL;IMg^NkAR0 zmI}l3EQ>-m*WV%$S*#*af`NMvxe1LyfLya-e621V;P}t#LwVsh>P$AdoPk=2|2l2A zvOSaQ&ehTW6*fdBl`CrSYsy~7K&7617_xUA%N*DHAYD-BPj9|z9;I%&cvoG7T zbFd>^Bam!6{#h2Ge`Ajl9Hf*+cFlf-C{#7Hf=GhSt^5NxU15V6C87i-r#%z9_G_Yo z6l*xl$N$TRTTd&`2dFKn)iR&Dc51O=5E>OJ6sY?-3PES191=&O6!_>ak&pO(=C0a3 zt{$$?)H1B8B5$RV>L`mWJ>GP^*RYWuw=U98~2IH4Qwoo3|r4%S4Er!Bxg8?5L!#W z&_rHQSKDYF;2Xm35x0m%>5n*{_;@93w4^~M)z zebXuqwuEJ63SqSS>-WNvv@%}8+B2AWR3Z+WYZ@Z03zBW9sNJ~O@os=e?FQx;8@)Ze z16|ca88aIBmda^Uv-SH)>)F~6WJBHz58F}@f&`jV`>!k;sK9J5&x-Jv=>ls1$!Z|f z@XeR^Z)hs95&4GfmJ%sE=fl@_bva~yNp7sk|H;y~gmdjLX=8*zQnMqY-k|16h#X;MM}d0L(IMWi&i?f}93_YRF!Cna@E)932j!CC?sj zB?k!#A-|Gtcv(`bmjl<0@X~4%h#=JGejlQz-fQ}EhLfH=yj1E8=*-G>&NqS4aA}JX zpz2~Zq|tt?fAWg9Ht9t=z#Pqrq_j-H{K8>_=i!Le7`ZxB+1NLL&;c>~g<6}JMA3&0 zSua;3Bsz=0uYY>S;3lUNI{6grC9OmOf$h8xQ-c7*^*$bwCdw%Y*CR- zxra6+Sk05dZqt{JAV-*}jr!5=sh@*ezt<8SL|DfD^c%;-^uET9s26zC$46z)C6w=Q+OgWIi(qCZ{V1eQ>3-83ftq10U@1)EE5Je znH*b0hqWOOQG0DqAWz4*eAA_JjRUWI$MxnURKUr7ZZAuTzSD5ru!iqi2G9OoADHB66ew$L(rQP3H&%tJJOMd%)uahSoYQ~gH3 z?Db{FSmR0aoPR3(jVY8kMyPmMPCOt$(dYpLLGUyDD2x*=yq+E2bRUI9aXz$A-P;6m zG%L{K5F{{a=j&)-d9yd0XvtizqEK2_AQ{yDdEIPXUa)?R1AvbVMJ*228xjHAeQhuI zL->#odErUL|CxJ!FHPn>HrLi6YBkvjz^49ZgdSsYv5|kE3ktNc9 zEUM%oGQO8=e_eV0p`?2&y!ug<-+MnjBbFBXn%&9U6+Bx4WlAW%l4%huGI@YN5xx)u zzk^+f)%2w=TmG;iab7npdr0)f^=2Nj`_7Tjx;oKA5tu`q8EW;+(h4?Y+w|1ekwh+e z=S940W-HEP!@8_`4&iJ;iPM-bN%iQPuDRY`(_S8pHxs#>r{nnVr=voTbsY0v8D3{t zoVFmvCSxalc~82(sAR_3$tUH$UV3w}l3)^Md3B)CK{Upze%rFo@?dwZcj}b2!sfDK zGF@Cje58`x!?oOq*6;WDIr5gR1X-k-ZWO~235q98<$ZNhzI*;^?%xG|MFG-VU4-a(U-EByMqBo zzi{E-W0T|aalP5NMyr<)8uy9h3ToEuZ6UQimKE=FYZ3=*F7NnG$B8q6`^vldLgvgyb}v^_P&mIcQcH0(VZmepc^JIgea!O|R9UJhD z!?hPbyK~rtCoY<_FNF{@cAgcXMn&6#+*yGtRp!T8qXuQG84(HKezTC$ z)f08)p_jd@3JeCsn=w{5tJg~wlfs{3LmIF-KJ$B;Jl|cdy4iH3uoFE~qfu+ac*aO9 zj{d<&xFA9)88@-$ym{yKNR1I(V?exZ&2qy5Q`<%d_0nFhM$R>EA#VFWLWhC-@(xQs zbTzjUTd~#l35nHylI(j7QRizt?x)>C2?LRH7du> zi`ulom(^OWe(oom)Kr~HF=kg!`N+adg96uTa}XA*xa?tT)UkM}{iQhps38}wG6T`j(ZW^x?Q!_Q6+LI6vNPyIF!2hjchjdmK9sNI|dt3t&D$)YU*xF=%cS4 zFOyBdW%{wi7`LC$I97%v)^$V;cC}_0FHUGDz701OQHD?3;Ve!~ck6DU{Eg9XJ^~M) zj{-ltY|c4X>~fD9Jl0r)nPAGk7-P9lN>3_kaa$gsP~AK^+*d?FLJg)2TD|b54S3oU zQC_`pRr6HK+W4FKBvhE(k~2f3pp`JrBn4XzcIxo5P)q;J~iUizV14)272Go_v3@5qk7e#Cqo(%|1` zMj~7z{bNv}m&A!B8{jc9At#<-_r^B1Vxt)gDa(%{Br zFAoE1Lc$}-vc;=EesaxBoe!q9POHRWYmI(0+_}I0d#to`x;3&P2d@`Oey!Q*Pxl^M zZ@~qNOjSUZHEEPtC&SC|QxpIYu~guB+$d6`eBn|YFora-GmYx#VX{+E85 z$zS9nWkVhl6H-&EL#&L5^_>d+BeDO|4~f=LYCWonW}joMe^pzi3ks=2(SFqr-=~_& zW<{4gW;LJykm;0c7jNA{TV(2jm^bnVqdHf zMF|skDOOr+xbtm1NM3Uy&W`Ox-K@!PgAN|Ia{XL){mh*RgTCAi%ecqP@u%I);51g; zOFPr}8XLx`(%SBN8wSr3hd5A~OmseomDS)S#)3?O2p9Su0M~zI)FrfaZf>TR3)KSz zA1F_E*a8KrElig9^kxJkgi?f*(iPe!v>-4__-A_4w{=?Y!-<#GY;Q3id0GiU8+foa zh{_G0!CMtim($nKFUk_T;eBCVLoRGs$?HvC z;3Vo6NRbJLDjtDR+1Dk9vNj5BykxzpoN$Fl&9#}k+Hy1HmmRc3`I(XkVulI+av!y^?(}%jd9O@jk@Uj3UFm(eWmyS&l==wVV3z2srI!qPR&7GJw%%Xa zgL69QA&Mi?8;(4Kw``r+Ihj8YO4Yk1aYt({ApiU}OWXP>xFlDaLCBP6D{B4a!+k_( zpL&~AAeltWH0gr^e2U8a+ONA23uH`N_#@nw68+pGsdlGLC<;5lg8#5jEgS!Ev1zR% zwJ`~4jZ@u4e8zswtnuCHNV(OO3+_ji5C=8Cyy!g>dz#Yp>i>s z&Dd<8UYaWH@YH6pihX*{TD0+r(hA6SxNdD~x*Z#)#(weszEJkO^`$Mm_a6R}!;95X7GG<(yXIcRCYA30SRdNjY1c$W?msn2QAi%&L${{v z9y94Hvb#f-)|!Od-EMJR2{6dm7jZ{21DByUg;yd_S6>7dA`V`!jm`<1HH&Cii?(v0 zW=7z|2?fmYW*5%^b0@z?Tz_sHJD@nyo5(NRy7w zd2Acn_PRzQ22|@0hP;lYOt zh!b)%L%yP-VD{fQaA&WdP4|ZJyY16j*OEqin9q7QX>q;i@DpBMAcLKn4C5F7uuLGs z%jtFzFe8>lrK&Pw^hX0(`CT!wjmAyHCD&#YDfb z`5&%O&Db;h`Y~FUB~oxq*$okZ(yJ0Y&a3n{j`LQ;>B`SC;PKB?xUm;%XI-$8K# zWoBCO#TwIV%!#6Y{>^$z{K^xS(?QHm_Q~tP*n8HNw%D{!7*Ceeg%VhzP?I6Ty`0w|2swB{*cDS_SgOw!`G%`2=4hd zW0ne!Cv@jH{A9^*)*{yX^z;fcq`q8$R5d-qH#I^OFBaEkCe-9+j-o;GOn2as2m(j> z@xhqh)MGQz6S=IFB=W2u>{o@|_2qm^fscX>L&DC2dZ#x*cKV_yQKb!|#n!v9oof?L z8N?p<-8SNUu!&lKx5Z1-DxAbQNUnxAZ`Ejt>K}X=KU|mS0b2NCec(p1zQVR&ulvh6Fk&kpWiB;Z9T0w}5!~Kj+9<#uDP6N3TJV375?_Fw zWjj%?CY4e*+buh5`#siUp%Kcv&X2T4mrABkGZ)w--~hH8?q&kKu?bYZeY*eX_Q26;f-=N{}P@E_`R( z$b~w$&}VhhVe-|*p=ESMtuUC2DAYC6Y4XuHaq?1UoT0sPv#-bfkX zd*b2?z4+AEU&f8t!;Zm)^rsJL6O z`!zEiI*VEL52wtoKaoUTO0IVMszVXIU`}daerw{CI#EToFqOFbKPZnYNl(yvzY_OA zvcg)JF9xVrKH{Nf( zb=sZhY`Y-qOFBi-4$o5_QQvGWp!)4!n%c+q@$sG5$G(6N47+_DF>BDzspQk}9`2^Z$JofUnDdX%&C4w^)n|$wD=`g55_L zEQ3~ph~Tv7RcOYuYN6{Ny(SilPk?2cpHhGJeQGAFjv&rjbhFeis3cv_T6`(~Y;X_o z_!*UmcfQ@qVybQw2IcdQrT*k?$GdFq@fN#k&e_VwzjlA-nB%W6F1@|mcA+n!7HG@5 zDQ_s-1opQH$bBDc#+KJ#>)}-=S8qYIxV%zHq`*jnpgp#@tg^Xq*5?((I3hPTcI}W> z7EiNpN^Zq-Bj%2yv=X;kAb%O{V9 z0>R`-B7i6Z4=M9Qgk>aCLQgZKU+A&74`^-fXNW;gN8nWBhhhd>8UvCWy8cmUkh~E36>iNSrG2lZ(mEu)&?}OLxO2*d8KO&$M zE)oQ1!F=mivd9X1Zqgk|1nZVD&@!BEw;*-(lnI)`b*8O3Q?&;iOKZjE1C^T{#%CCh z8wRF~6{HB7V->{5Khvv{JGZASX3>_jCOI3%1kK81q}C}afRSAn6o6G78qjDYVb9;E z@<-k3W5d5hgV&%eGxz3Blm5}=ghI)}8bup=MJqwRjZUqc_lTy`nfBEqAMV@I1d{I`_ zG-KDGT;}>9MNz3Om&vJqOC^B-4#s#_Pu2F`ae>Xp zywHlj_gWHBO3H7>tIJ<(HkPa*4qvc|h_hzwyl?>!?8zXl8}i6=U{TP4Q`9xLuRepv zTZ|f(hcPnteOC0E>{zM$Ktwm^RDQEcilp&}ZRb_q10y*3lKe4S@Ly!@O1R)`eG=ar zv7~C)bn~*9kL>l3VY>7``ag-E-cSfsPT!ZilyMxC6jKA^pvm{ITQrtK^ z@AhlE@dJknWDzmsSu=bQGZ~jzq~RlfkpcSEy^k$^Vc4RxsYjxw`ql2_D!c2ytj6{= zV7-9>Upz3-I>Ng=)(3PS@$h$^FMpNf|XKD{A3v{u*|1N}I@ z>Fn*cx-5$72am-*g-1M7W@1hCcMI|ks8d3tlT86O@-6%vEJopb)B z@_H-_wn`%)@W0-PS3^$ahiZ;%0b=JQe{iyoga=hC)W z*c~F#Ge+JETy7I6iWjrf2>-sl*HA6#(-->l2rX$+1DNxoCj$U3+o3@2r3$oxTsMff zMSsfPD_zpr*zDu`$PMd)J`JPYI2u-(z+*Q|C;))~`uq=@>tmyW7IQa>`Om4@h*Q8w z%Q9!&e`2=T*T~B;;aXMFnAQU$8)6FT!`MEgW=a)NnePg#>+cO?J~U|=KU#!VS;SO_7fp%P@Hf)yH|m)ulRg`o)O!JJa9um zu7Dh}aG9lxU&vKLfm=w?TFj4*y9IWz`3gIEuI2>{ z@{w<^gt~{LmshLr%W6@)=+&-TrZMA5*ml{~oL`BE0;$Oxt45vnD(D6w3h-j3OV!*3jSXYfuw5pkfG57F*ZG@mijzKq4bf2Rq^JohRzx z6;a-A2$cH3j4gE5_5N;ZE6|kvFQn+lBt(jBLiRPGNCuvm$8Lq(58ZYrR~-O~3e-CB z!C4e!%$?1kV;pb0A|?3wfLho2NU1IlPE@!5$@@A92yoeE`}#Zlr@;R(rB%5J`r#+v z{E4Av5pvYh7AzQ%kAM1F2LB)zqsopsc%6FN^OPJX9^wl(BX)^tiLRF`Zeb+w@gKX+ z<`JL+-_DsErsGIC2~Vuw7LnA`^^$>(qMhCDUF>S1XD_830Kt0D|4ohoUiOjCeFqJrR1s@-%73rc=#n)69Krs2%24 z9hc0ZH>x(6)yo>4yFGM?No|t(HuvTqlFgPbHP8PImRI+x#4)Ul%JD_JeU^U<)g&)j zEAYb={QE(bP#~zjTBgEjzGaG(y^!fgNzdtTW0oKgN&#wP*~bARKBRuz6v{w;Um1{2nsw17K2InkJcq~iFm-oRm|`i zt$$K--JGHd5q4L96S&~q5E{@v2zH9%Ednw0(D>VTH z$9Ny)L0^PsO)A61{G!qsEWa~}Uo(l)i#JSE+sNAj+$3Qntkm$t`rFnnV=x3Gx#)ls z*fJ>+SRgawu)nsbi544TALNiFPnJ_}N#IbVWnaIzFRijuQ;vKdoz(GHVo7u<-84f% z_pN(u{CJ+TBQtb6o%%f__Bg4>QWWQWX=h3QW2t|A=UG3~_ibf=Uu1QSztKCvs^Fv& z=&_}JkfGQvNkxE)5$z_8oq4r~SG2lzT|`54fMx$N$d~I7v!`<)&fudO$8Fcy354 zcIXPjt1{_XMon*R`e3iFfAF6%&KAS`vF2lcT}uZtVp3%Zl(sQ_I-x-BO6HBx-5~aT zFRmZ3!SJ{ry_0h+wbtjZa9B+`Po3j7R{G^HBMJ*hhJ}g-XmykH{fx(@KRD{AX)JY$ z5X5tWckSIqw#u#049Vy$;l$bui_vUXlL;xz4-k0LqDia1l`ci*e`445wWDr#Jo^Z=Q^3 zd!|KBEQx@5gQZY>OT9HIijjO4Zso-Wuz?e&(^$YSJifyBN1KfT8@KVk(4@a|Y+El> zs|#XYTUv6GzPQB1Q&@g*-@zTB6BOU+;&x_nrOz z2$pK?B0&e}+sbX^4(Q+Cwbrv$T-@8^-aM&x)vCF@dHskPC8Ee|-PpFzpo76!Rr1gw zVc3L?hz#L>o}Ihi$|-(wrXu;gBZxjtTz)KE1{+we=$w!P!e|(=oF}ZkC2i-#P%69Y zn!Bl9uWi0iX~}=C5!!n@Gl#|TyNRV*K@Q38r-ZkYOP~~v2f)f7v%On8^Uh-~{%Zh5 z1HwP?HR5$D9tOBiP$=J5$gk}`tCR5+7Goni4UU@xX|E97rbX%2rL9Lw81t%<1gok$ z?nFe|-FiDHjf#d&FT;zbSFE>!cCFs`x79nr{q?nP7Ty54CjSs9x=Hs2=qW1n;0HXz zxd1UzG5rU4YfH6njco~m4xi#?6XwkN9r?EXJG zzz;b@nBY6T&1;>VkE-8H3@twuzDK$h9HJL*cg0QpKzg2=qU6g}@0&9r<^H)X=DRtZ zv)3*v^tb1HE3PDpf~&?LBgWfF!e%G6n&1J2rDZh0GlRGuMFLfm<>97ht@;7C_A|HQ zVoG`WZH0A(Q17qFuHGl5CxcL%ao=4h^4RYY5bii}wdBdQ2_36S6VGuptY04T?*ydm zo=^|8oJ_s3^{*1I30UT%0W^Atc)9F%=l4y~MqxPby*Sq3N*yIBnOK~V@y(Sna$9RB z83$yx+FS&X>^l-JAMlyXc-lJ(Wi(#w-b@fQgp7PeKFMTd=yW*&sLV@2aDL;gkgMvQ zpRrSauz}I)E`S}5nBv}uC7CFj4QK+pApvgP-*}=3ZfaC27LMWFN)%24 z0O$4K)A18K`Rh^CU;kSM6JhS3e(I+_;7@hHU%Isn4VR?hwq!|%+sKy~E|AgV9J?+b zxIV#ijc+)j2(=sr;YqOIN5i0h#iy0FpkzNReV2^>ukNysJ_&O0?rlZdRU%luL zFVVMNZ@g^JK=5(1lPAmJg~v9{0Bm5~XX>d@EAu1uu^5nn$hShw)9?T%s^9m4?Oi0Z z5(TBWjP?afw=$yYiEc$@QTny*9>~<1>XkFLrwy|Tf5ZRz{~@YFzY-kyDEf9`S7*O% z$~6KutCXmj@o3u5v)MnlK(q0+*M~cieJhR^Nh z+%BS~WLR9VwANiEDczDW{;j-H;fa?R@vWmQH%~^-$yJypb1!`TUxYoq8aAq`7MXSz zH-6aX-m7-9QIQ)h6UfA$LEoU5r;k0r09o&GA1%@YID`iq7FQcK-p~bjzYsL1evBn@ zx}6&v^ep`aD>NbV8PsyNXY84>M^tK^vafNiE$r3*?=qEPa%nnc8ey13*h8Rg26~=( zaQ$A+CP(bFU;l8<(Yw0_dtFQih2jAL^x<_Q{%pUwRGF*L5@U7SK{?j&07{w$*#M8yZ za${im^M9Lxe~i-u$F--8;RdsBZ9N{=Tw|T-6KOE^6I_2PoWk2!yd7kv&XiwuDpj`nakLhWK*A$I zWRPaaQu%Avi3^n4s>#6S=RSPvhoX60r#vlZy3&*3#XOozRHxxpTTzU)o0=pSGR z5;0LC%&5_l}C5NI&*S^ZN4Z#@5)>K%&D2pgXq z6!cd46h7jnajY1kD}6Qi2&oUn)!Vt2|Cj$48-s5&9rImnQRaQ3FcMH>J4rVNCm4cS z0Q0%E$;}nMbad{z&oPDyxFtwh_qE}Xng5VbdtRhS{P}L777P0|Yb`_mf=(h`>l_bu zlJ1C2%4663#)|EGUM%s0NL}hd187%&TOXznM(fwO8Ob06UKm!C8{IMQaapzQ>8j=N z(W=Tsr*xea6JCiVbG%Xp8?OZLjQd0-k{U5Zv_Nt~Lem8I!^N?)%(JBCh>^XJ5&nPf zqvjmy*o?=?Gffu*#&M3~xWhA>TiJkp9lQ?9^(8-Z_;$H7W(t5a?Tar8!ODx4MK@|A zRqHOM;M+$`FYtftC2U}l7>)_e=JiX>-E_ab5`bUoUQ`UV;bV)}+wIK;@lO7!h|g=uV7T z)i<&?qiHuA(hvP@0NVRpK}$TkxA-Vtlfjw7*XGB_+d}ads?LuS)C`-2-aHB7aqvLK zKX~(MI^tU5__a?I`kV2j$gANlHBA*jp4Kz z=O4b$VE8xj$c#x09VS0324QSI6;AX3V+w1N3UqyT(_72mrlFGj8KBuXlIxFzFU-h} ziBtoLzdqy1t+ z&Ym`zS#=1GueTTrKdn3awqAwslgi47>{Vx1N2W7Kw5vPY_x!ig>G1H)=!ZE7w&ePs zb>=A#lDCXYE6+xy->WqTFsjth`}xIYg)ILfUXDKa%J`9y+a8_cI_b_`Hq3L)AOOt& zIDO8p1Drn^ui_&-2KU}JVuZQ}zZxOifOT)Ws`$RqoY5ZYsNZwA|AQWH2XIO}JJ>6n z)iOFZf7DR#4F80( z8AY}JY4fp}JWWQIGk$gGD1xGk6YdyIVSiJ;+xKc`&F(5&HPx0IePl;=FlcbzzTj$k@A=peNUgGel|| zp#q}^pgFc^q)>GN*7U0&m}?9vn;y(Ke2w05qHmtP-*%OAirn&zorkGGOdRD!D>0dx z2)6Zf?Cl`tKWGp`i=tX2-zHY{EvmQYlpTt;(r#Fj$JVY%cO;Lda(3blL1ZsBQGU;!DzYb8SO?u&sXJ&3DeeAkuHjX>&3sFc5)Vedu% z$5FIcNx%GzfUIvygRi^2!6+KNGvKgfz}y6L`|Y5SnU(7g`{ET#EV*a6m;mAU<1ADM z&-&SOwK3l$Jncawo!(49XVAIf5`!41Sx+{j#I|38muwr7K0DkbR8F=4JNnvgk26Qv z0Zt5ZwCQqH$)=t0;G=+mAv=G+e~blNl+_ZQmZxI310uXwzd{5UFA(AS!1m1@aP40K z+GfB;R6l^%&q+ zE+!XTHaV%n2{=G(qI-Qa4p3GqaoB6Npb)XSM&iI%;P$cK7t%&EcieB^MnYp4N~}S= zWI1{QqJ}p)+_rUhp=FPE_-tSYpsUwR|9isuOOi4HN>W}7TTEdbbam7YNNjZhQO(l< zoa*iF;)$sQePaULSoO9dL+5lCE6-JnE;TMaABvI-4J?owH#!}R zyz?CBeX0yl5qJg_=Kcw6zDqlW5z?FRs^C?YkuR`tO`*yirbL0_gN@V87$i9Pqici| z8dKMi+3L_~;307jOL^BWiS4YqWG|o6M;2$S5oATLrxfMYvc zhI}UL_Fs)q)3Gw-wl%-fxR*=+|Fi%$Nn%B6)*W$8;>3FjR6V;P!Hp9kLClzjgGcx$ zKogS644aP+PSZr`DOX3&lhgo=C?B+Q2y^!9LK(nc!mY#0kmXWgNF^x{L#nSh{Q4?g z+;)+}$B+TXzT=6LO`km|;o?UN4VMWq@@>AbcQs>-D*AqTs*^sd;`fd4L|+$RoUO=# z(X~HJCt$w(_{be{VLHW|1ib!$-Uln{ zrYWa)m^c-tgVm$z6q-b+Y|vaKNEz0Dv}5b#cu0EqYLTH`T>0(o=6kiB)yLXV2WOnGGx-sp^9sY$@)Y(S{$e-B`5g=5OFUfA&i>+8-AISe(zz38`HYYk)qn?+FtjT5n zfA^6Y%n^X_v}9*a*>7XPOk^RTj1f<@D|ty+StPI(s(|{o=u_)wz{}D;9b^(&fG#~E z2wiV1F2c zA0jd?sJ&~wnx}mwdssWsaI%XKwSR;=qf!7vM|fOSFkWS<(YH+bG)_E=pU9HK+0om z`>T<+32>Sb4}HCX= zGkDhZz(EV_YXuqJ!%ZEV;f4UJeE)FuWS{b+Pf)d3IPy!iUKZ__7=*tiA65l?(oxjG zT|nahVSpz(11Me$o%-wOJLT`n~m-JvbK{#Qb#bGayWBGPCESpK1~d2NnqdYOH$zd+z_;yELtj z3t#KO+XPMMt@q|tr`?XsI4?PG#+5ZJro^G9^k=VUal%LcpshT74qR^z@90@Xk=TlU z=u~%Xi^+*~I)T@{TRY~vmEMjeuT1>!Ov1O|9;1B^%S166F97b1G*9l=E#-~2&$%VQ z7&eHc!%R?CoO;K>h_JLinQ^N-+$*B?AVrtE@)De`J1^wY2{<`PVXaS|?X zr!GZI9Z`wCe*L;hkileSRQCiaK|gQ)1jVf=xvjK@T+JITejUH(td27>C4uAcU*5Jd zvE&yE`&T>>mN#hx`7+dTb^e6^XRbV41bvy<_8y3vpRSEk=|4A|KO36lZ>#UPxQ}}; zB3<_6o8%<@n5S%=nLQ{oSJzoRk@bGVX=C7-5&_Y+~->=*B8q3Hd4AXpXn z3K-xuau<+9O&+Ht8dSLH+z&EayJAFDZ8$*P4kdQ?*XSSekb;wd`!QVo{2X;;kZ|Lx z35xdXCbqx7C1rOH_K3-|Ngp<%QcJg*L1VnwK1ZJIAII54d^Jg!_$rb0z)ghCCq`%6 z#;@bsPYtvhWL~~fOGJUXU($Vk2%;?UuGrC?j}2eo+U!W}{BQS2 zf!ZS={O&3Gb?3D7!CSv}k`Ak4{q0&oJSpArm6oWu1Pos%@Qx=q z{jj%0^4rRg6Ew1)n0Z=;6*X8-UBt#l>_=upMp5`0js3yuoslPBbRLYVlZU)XNXWsJV6NPuC8^0zFmXY=z8eB^aO|u1caxjs@v+)8 z_+1;zD8)edzW8%>bjQdjmKJ}3;W1Jtuzsg>YmrxN+apEW`alzcY|eYJ9m9Q{wTI}f zic=#AKOu_?WZT8UsC3GYV?a%a2Qb^~p!kj0v>Gq3ACsHm`tz$*m+c4WqI!zjL*!0G z)Tye%rcXM9Ul0Io37d5pk=N;bv>NlDa3UbhobSFlu#2pve?MXkN2T7*)B8bY89`ER z98nu`l$~g^S4F3$(CQb@7+x7$T+lrc{{7dyV{!|xd-y{aF}{89>b2M%CG%rtxPiKHEr@!S1tQy#|qY7wQ58j>YbaOzh(*KeWzE?2a0GjS4^JBOdqk_1c za<@Ejni~h#VU4Pqah&RjmhV)Idb}N}{s2man6(H%L|r>Kb(q%?&p3v~aQTJPc~@5T z<1Gz@qU~i8Q2oGa#a3L8f65EqeVY1Ss>eO3vt2t6PV%a4urEQ&^8kz>C@RsC&HfZW z##=z8D)rSU=bm2Vm(oq{e=iTxf|g=(~;k3G)$uDfO*RM z9pj%V(|(1!cj>0{tm}uqI**yy6A$f`iL8o?E3HCTT)%#cIdMo~KkerNxRs(saeio}vnsLo#{gD!k@RA_jCJ_*aC$*Aa(;SgFl^gMNg&R(d z#Q@*xl;i@HY~p{HeQjexcqf&ZtJ|xOWxWjvFe;|+@{Do$vYyd}*LHeAK-o*NPkdbfJdc$c7#`o>tB#k4oOl;j%W1hI-Mlm? zuj6>jFVbW3StWvIr4t6VWYOx~zB0W?&vyB$&^>~Hkm>aj>qQ?PRQ1&=pW#&Ju7HKq z69Hk1Up?L0*s0{jE-7!2X^Ig+^sx;9I4Pu?aUNOgFNa2|A|H$|x@KxJ*OvhG{> zL@@S0z+)AVRss_U5zc`1etW;CeNu7K9n$b#LaxW?`=Hb)7{ikhEem!)bU;-ABx2iI$QshtRsX^ z9BX?Wlrz*tToscc{`^(>Ve5x$34kI4j0YnZe7=n6U#vnD5Ig)mF7K{tuel~SFyi4q zVv4!SoI?{fe!n~~r4OmU`EEf8;`z6=JY40w+9tp_P57)EE&+F~uSR(9{(0}N#i}@{ z^i)r@j86n^DJ){YM3DT7+`5II4Qik{FLM)23YdF`(}MCWjO<3P>oL?FoO$-Sg&$3; zY2zJwiG;u&of{ue+Z-QD#gth20r~Q-D*d;^LuDdKnFf4AIMC6#T9`Nn-F|00NFbz^ zZ#Q35kl$wRXn=F$$2%vyCf;1T{`l+-H@mocg*Qu4-*4=+o?ON~-vx?i>jkTCD>@|U zEa*Lc?cq0e&s}}5^za)IEz6$&``g?>R;pZZ(~hP${N`_Wr5gnEb2)GMjnmIq(xpU8 zKLmdHKjoekR!-##HS$SAp>oR6=E7ALi64*MrS2YP|9)zKWuI|xSEiWA{`rpB`f|+Q z$L2NzF1^DEwg78;Y`s^J2NvhRBOww=>v+fW^fjw?P3Pk_`d=52;a!J4u$#E|Y3%tx z@+-C8e9(!@IJZepq0}=oVH;@$J6n6XV=t@Cjql0Xu2HJJX7zX_DD`ebYV+=M@^?P~ zxb2O{n_RT%jY~UB$7NjZ@6Qc@^}YIcw9NkT*@+PjjCYqW(|6qCq}l6Hn}3?u9!4z( z^IVQCPwjEvuHMst2hSk4cA{$*TClNs%rgXk)x?oiDPr|_g09bPSC>EV8E3f0y&eKq%Weg`&W#m-0Px{mLEeag_j6!hr{Qt0n*!Poq@ z3B3EDl7tJ+JnZ<4ybC!}QX&%!hmv|XA7 zaR&8!ZsmUm|Bo8;`7zttm`HneNY~0mqUa<)!|XBab(>_ zB>+7k${{#^xjmTK(YC#?V?`=4`>T=mKlzMEE^SfFf1malhHQ5yyf z+dtk8r5%wwiDAJwR5wo}(!7QzacvjOJ?#HiGim49?_+_MTEXkeys2(Q17Vnr#axvU zV}PU7<}qgJI}ldi<4x{_UygMem!CHuhxV&BXa&yruI@Uo-@;xitfH+|jYSGR*q_Q{ zqcl>h%zHmbepa2m^(Xc0qc4ct3nPlKiX?BdgFYs*uJcF)U42EX}_?C&+lysVa~%HDNS)+u}DKfIRF8}*<@ARKcF zmdX{oO6Bo5c84Ncq`x@!g%PzsM^z0~9+^OW!$on}vGAWXmX4BcB1V)HC)oPU02rXS ze`UOeMt#}YGV!;T&Dhm5?X8i$xM;oEa9PH}BVa4TrGEQTAcR{C@`NP|CknlFfB~iv zdtcc6fW>hGtN#4^^HrjS#Tkh+Y9SJJ5b@c}8Oo-4r|2iK-FXTX7L1AGL90XLI zk_!23k_yA(o+^0&IvXks9(T(v8l^_o_iLO8fB%FuajnH9o75AD)uQ25`fekN)E1ag z1xFhGIzgp7lOEe@CDOQL#E#1bj*1T`w&~lpHkhU0tH*EYJ}EWrIRW09P;Tq( z!slJ<+ z(h7d6U791gdstzWwW>589bh)x5Dc2x_;AI((;A#acljZB|Ax=@{-J`3h!V$bchwu6 znpC>6(M<%l@^h3vtPimZ;y9Z4pOXdYkkP8d#k;#o_kw9W}GX`<%xf$R9+bxC%qioJwuPkyQP6VLdx~U z-*C~VF$KZV!807J%+4wPFQ^U&2r%Tp*IN$XNgairI{i*0`aj{oAgPzLhp65seZ+1S zGozYvaekQa0y?+AimIJY=m?46B6mT*y_WC` z)di!TfoBIddldm~SRFTH4K5gzaJBm)C{l}72jb3`KRNSVr8WU*{As)x!CnlOokLTUT2!}(&-i-c|;@@8`dKO5yt3xovnH~JL-yFQ}JAU{*}C{$atjF ztvI+MZP;Zi2pq z)wZ(b{?va+YGi?tJcXxv=g2jwHBS1pieTHq(vu`(f9&zl`T#jo|;Vl<~h)#U!^hDjcX2D8LJti*LpuK|8Km}7{5{!uK5o5$@ zvd3$&h!Sx(by4TAnPtvNDys?Vay));lxRaGy8GQD)847}q(|J!60U;@F!obRy6yni z_O;d?2GUpBsPbwT0qYO)tXC}kJEq^k)CYeFyz<46kaR}0T&54GjknV?LePY5OqhXr z^<86b>;RD@iAi-PrSohmGi1U1I2ALB6RLxHC@`iG?o%<5W-U+k%3idK!IJV0V5J?l zqx3UZy-BzH*4;a)-(N)KCd;(g{fjMDiqL4LF|9ePs2DVx@M z-!&_$d2pAc-s{Pki~kFHe@Yt&7ZHO$E7T|>-&TOWR`BF6#Vn&&A8L>Zmi!eFD*noM zCOK7FmM}?Iv?TeBS{*?It91>Kj`j+|CAYb~j_S$epP?g%+bBD;EDAo$(Qam5{ZN3^ zLNTLLYi=rxbgo{6;F~Vmmk%yF0`oBFX6~Am^1`cnUOfnGgr zHpLE-^ZdHAfa_>^ODDO~JOx*tXrqs#`;4sBj7L_P-)$XtZat<1po>M|{==nT5=G#` zD`zu_uj1n$D|u+V3DmXnJ|Av-a!5E-??*iB+`)%~w3^Y+>@)D{B}4e#Ah8tKJ}T{_ zm`E)!jpkAT`aZkKS$snDv~>ix4rbT9<(OW^y&;RU=6~Z?Ps3lqzG9`bakWfs`N4(; z!uGgI&~o(UF~)n8(r#KM&AzZ}lRwciel+MTLxtSZO3};Kro7FDD@kR)&rGbo9KCOoLim<(uX&T#?Y4grH*?4-4H zRV|`QWZkDZE~M9HReEFyFIg$EocT)t#j`G|gcg7pZXd2ivl|}7K3EG|jL97pft&9Z z2lXTOY*g=&L%DW%^wUxGqHhsNt){+W=~yX@mB}%)uMRJqEQU>llo{gSlZ%pG{aTQ~ zW>bD#6wp=$f?JLO^7NYX^8A?w>UEqU)PbhIQ_OZcu9R&zUDVHLf?p0*UhDK-a>*v7 zYC%=)QZrU(66Jmr?gDdru&j7Q~;f*z{8O?lA7D1~+7%uz?hWJT~_17t7F z;uXk_M_zcTwgc?+`MBw|FrZ0nPi=uN| zwGhaG@`0Fl8ksb9Lm?H0TIJ-|z5nS#Q7@X`40XTXn7=qr9*#%Qx?ad;Y%l~qZ1TXr;AVTlXsY1Wlk9I3Yi-7+*A(=#_Lf7jq$#=hd zb}cqbkvB{0v6kqBN?QpD8seya2X~|_5$JbJQ2NOsg`t(*YAvKc2ZP7Oel%paRu?gY z6w41lWq?NP*Kq09EkW=JIFHNlkA`PB7hr0-i?{>V{S~U2b1E|e)gGt8a;8wY?tmUj zZe)<@TTpX1j1?a!m>>0O!g!f<@YnSVJ5!37u9()~=HVZ*jHzwn1VX1a`xv_cd0v%% z+(|8)j>XQMM$C+HHceWMwETQW9G+#fie@#|5dS@|KA@afRQAu`^X!WYJi)-D` zQo2pJQpCG%ozRq181@KR3w)iM4!Kc%WdIk4D#wiBRt?r=D^4F2{Y}QB_K^9*rwSWo zjcL$>@edMoX5Ha0OqAR5v?1NYugiZLNKM|97Q9eZKha%S-BxA*jO0QYziYJSZ*!=2 z)`&x^)nQh~Nwt0P6VDB|RWs(>Y|>+1Iw;g%;`h;9eqX{aFg|u?W17qAc_*qUceWV` z^ycT$>C>*}h10go8gv`?=%#?&D|n%K^62G(CWi0K+P8&FWlbm6;O3$);^a)O+pR%= z1oz3UZSG%m&7ai3P=@A>gOa9k4uKvo%C{7*oD06N5z`Ts!N%RczPU@(DD3HRA3jwE z-!fKi>jtLcgr|->pfMu)CwV+1L7$~;{ToCAqugp^{#3uh^cz`f2udq;cZIa&#X%!{ z9pH|zS&>vtsqCbZS@bCn-A8C@!53EXjh>*NaaZAJU1oFie{@*Se#GMrCb!ndQ=6(d z3fVCF%7{8i>d=O)Y^Ii0Y(EB=x<_=*>5WrS;XO@+raAJ8hHfpK(wGekHX=>NCb+iJ zEwIgg_2Px^4fwJ5RvU1HN#TU9@U4la$Mh*@NGX|?Pdc>5VRKlaTVw7|c6CRnJ+0Hj zN4_(QyqgO>9Z*lbj&+NHjrD`Jb8E*Cs}o^Bso_VuJ;+8s7&=@16f}Q(Ye6D?t@>Fy zqqYoaGH#pfg5IV0Z7XEBrwc%ZQf3OruVEoZf}F zSSI#*r*Rj(!CelqKCb+T<)*qpuubYOdF7E&CzLDGS!zzG7((BE; z$D1te-&+O1=#1q5X#x1e5U^p9B;4V$D|G2e!iX(~H(?G6y>)|m2N*#@4K3)fTw$J9 zKiFVxAMUPV_9|>;00s9s6_?N1-~^^NQ!#{oCpArKoE-)o3<3hr1<#kXh6k;l6;n^6 z{eT6zV(*hdNd5#H`yYiWcea`b+eg3GL@9o&y^RgnzPRByMV!^-b?#oR>0HwJB_moZ z(=wpHag|U^5LuG0FElxFhXZSh-J(Ypq=_UdQ9EjoJ9W<$!d@fPw^T#&kTF zw^2RWZ>Uj>RmYJu9SKj^Is~>xeWe4X144C}k4;}~8DawH?8(LldpK@ePje6_N$slj znZ`whEUrGYh_yMbIu>jaghtSQq~7S4SvMwdGIKl7A8LJBLAo7|%ppdF$Kl8H$@gQp zLSEz-7Tw`MZ+MKNyW{~6!!OL*R`62(E{RV0eesG#jx6z#r6wscko;T-@2AVY8H{Cb zpoLfm9Plo}O_$p{^4u|Q7E4Qo&Nf)27-Xh9;{2HL4#0q+grM2%_=P~lj$wloC630w zW7gBKLtW)a74m3U46ZC4Ek-A#U28`0T%mGq=L&<%XBNMD{A!{5oMk9{X!MEJojE9$ zpw7UoO-jtV+}G?Sf;_satJ=G~Zj%=Nd$o)_N=@IVww2RSQjen!HEuF571XB1C_YPq zvrs!gmbKdPVCTXWyt_fxni@DE9>{6$ANu8tkMqBi zU!zusl8Mh1j?wIM0%F|Amjo#JOoN&!EgrX4+qQJ7t}Ge07E)d0_F95rTsptVs)pun zYCVf9#cWNWW1k=v(3f8ZJ4_BPj6ay!#71^&r$uGdB~F47>!XhEPR`&+u)t7$wK&!h z7ocR6Oy(m?9>BZ4#D(~NOBg4F#Q|Uc3&{OZ*{q%Habh3e4w*J5EGH`HMyPN*eB*qf zirQ$I5#wSc5i-6y$F6OYg;a4N98%9PUFNO0-N(KCH#Sf*huntUc85Ae%t z)qKY0{K@@2dfN_U5roT}9aLtyWI>#@KkVfBUe=&C&T`kR~w-+d1A~vZOsq zb<(EmgO@em$63=g2gq!057&J^vp#bUJyh5))Q;P<73;J%dR^@v2SsEB_9Ph1+b)%V9OESal4Nvx||^?`QIN$>K6jq5YNp+bwVe? z-D;<=3{T{os#8lY1bbaokZHh3YWSj$MLDFk{dC5ci=?A9Rx;u}sB`Kqst$3q9(t_^ zKi~)$$HDl*SLNTaJaxQ3tTy(k4>AFn(%UA5UZJlB?50(&-2Iix*aNo_m`a1ISbVhh zHsZPQikpz}ijmuaCRe@|py@XcdU0Dct~Oz!o4F<32cJx60sK_RuAf3|{dZ*d1Ul6y z3J^xUP09m@=dq7V&l`REIasVM!4$M@j(sMaJJ^VI(H%R8B+R)$ohUUH{6R7e&4=$$ zGBY04Ox&NFY0i-gYYIpRbl@Y!Q@p+1Nvws%5#>8$0YbpAkg1Y6mvWnap$}cq>vfN4 zH}y<#ZKHiWbt7k-rs-x0Tg)chm6WdoWz7@x8n^Jf1P9a@;!B(!K#oqkb5n#9O@Q$l zR26Q*yD*nYIuXypYut9%uW{W0=PQc89n$qw{J_Sl4tU-DXxl?ADE@Ru7s&i>hHAQO zPN9?oo|W+;K$`EN5z#=lB?3S{O6!=P>^Nx36({EAIaB@>ZIj4*2?+~-xECBTI4O#~ z_faE~n54aeh>C;%?eUz$v#vv~92hhAn`<8v2`ZEvn6$~D)RiT|lxh|WM+b>AyiOPC z`iN-5IivE3;TTYdW^wxcQ&>p{pnrEWYhipNMx9*l!ZzN%TgsCl9-Z{>uIcUxaP)uV zO4g|joRk_!XF?CVYFKyN#cM%t0bho;e^n9ehymPez?b*sOp}F%pk(3HGPQNvmIF+H zG!E2%4g|2iB95r-dxSAL*{%oI)0<|u+5(q0rSSG8#3t>Gqo6iy1T{s-;DJzKXvJSi z3?rkusPLa0W`5~G#A6mroc=nd6;7KKNk*4Nb!@K3-d>{zE|sGJodTk^Y_?Zdob*5N(BFcmFgp{mu3OSyc>WRLBq(+Q1#yZ&4bohYv#&MI3V0VPiZ z3K5T_(mx60@8Kn$y&|Hqq^vatER$v;y=Y+qQM=;z+*JVBh-@V={6(-d=Ebx0!%&XF zb~~08&`)0i21n z*H$X$%8u(W-7D@Rt_Q5mYC!(t=9DgB*p*pjiJ4&KpB;cgQic*rijWs{;yjz|wI}h!GcHIEh79()$nh!coGJfDa21Xe(JZGPul-w_7ot3M(=TJ#IoC zuAtM6uocM0VW%3nF;4?FPvu6L#}R#bSE7-2$Ip2({0DEY5SzmUMx(9d(o1&iAbF1~ z*kA;LL6dG2mknpUYQ~Ew*Hsr6fq3cle@h_=02o;FJaz7gmTw~#rXC{1VgEVNw=fXD zC_WU}Mgf5t1gY$M9kYDsGBtOiH!$k}a|)5^F0-Z!t5_Ru@o0$YiOn=f{(_)$r13tK z`&?AygSsz1*HlviwwrQr2Eo#k^s>0UQ`sw8AUtpHXXu070lMS4yXuHYZPJfY|01&` zeFP8p;B|UK&|*c(VJnJGR>z@6D#J_(>rf%mw^eO62=_$O8sHPAci}*KVV@l&r5r4< zX2+(t&v3$*=&c@UcJ)iXdET+z`mfn_)ma^m3iJRg#bsu~zqeRiSw>@1^WPp;+uus2 z3vLJ%NCKTj00XxCZda6iYmYFO=ojyUtm`l&irz2{Z9%&2>-AN3(1AIhBAaHNE9M$CwAQZT?kusk@8!DH;9PV)0ipnd50X^Ej`m7VZ{|9!#EI}0>jtdic6 zUC$7P0s}n0*Xi`~K@9aQs~&9KD@}>B;J@ndAo{S+xg5PXV)__)cwjWE5ggHQKeRvY|+3=(GLJd{v`Q1G&ni@y0OK13DYcS<$N{l zApiUo2Z=9dQ{x=A2gg?8*al(G`Qlse?^vKj-Y)yR;)V8{GPWIFOB9Z>=_M+|9b^`d zL;ilNMlpxt>%W5DUFxC0b#U|;$imhUh7FWQw{Y80>-s38vF&|sxeGJu+45NPVZIOC zTCa&9Y2`5~#9yqVg^is{SFxCn`DaN3&s)+w;=pYVlrGma4{0yP-LbgJ6^Hd?BlqCH zJ>I$;kU#OW!R2LnH#u-{+4Cny_Tjrm_=Y2u7=|$UI^~QdXV=>HZ9QdeyDl*`f%}yi zL+}{bh{>TYE1za@OAHUddg^y8+R%`GaDeQy+_sQdNu65TNZVW zYVR~1?DnX_XjyM+aJ|BLRGwYGFJ_Eb9d}>YOlf8ct;gZKs7(l_ZfzxPwPiBdje*y` zxMKcZ|_)tqyrsZ6Nkh8wmkt)5Df2oZM06rz7@0Mn`BHXr8YhG1cU z_U1qxR|C1l!QYG9ZQnBW-D|7=oBv^Eh8m?29|1XmI(wk9ERhH*l#~h8Ob@8X(i#rn z*Fa^D(8FjM-a=)wy0W_bga<%tUCA=NEY!qLoJlcbhNQq$+U`PER^^FL@&IUL|5EKQ0eFfi-T zXE@zdAj3FRb+yWWGhP{KgRn}$lcHD008T57m5AI4;WP9Gjb}UMx!1|Rhgw!EBv{z9 zHvdjBbdWW`%7i-%6hPX3tQw}W*EKwqFT8wp$bPBhMrD~+ru55x@kaGjnjZXm(^Gou zfMJIgdp%Oo;pOoME}7*wvN*P;%O`BB;~yJW6&z{n5AbgJy5!t0^yzFP8j1UYh)Dga zu>?~BstQCC9wexxC({YDwJSaE-NV63b@_a*@E3IOqFcE%^EBFRvCg92bj!-t0WWil zAUWAd#8(DNa9a4X%4SD_sXtHC9lK!AQ~NkD&?egYbR$~JZ&-o*FriTU!n!Ef-D;Xu z|A@>IsThtJ?^UB*cmo@pjI9)hDXyHrwFs=Zum?_kNPsOme&VY2Jq5NaD)67UWxn?+ zdBeB^>CV$0Qk6K(53Dir!-TD0Hh2#}#?4yZTyER9d!-9@ozBr&^$A63nP8_m>SKbG z^4zVwpCWf>(yzW5Q6^3=h8wT_M5N+nL!5jTMHv4IhXMM{)jz?vNrxzxL1V#UGi!Dz z=gHx4CTm3QG;CG;G;-x2xCP!AD1lNa8cBFws?wYnw+P*et3Il9s(y7N&o!&OGE$w# zI149_rG}~_gHQB%%!WvQUm$nkOJZCJVNFgnYAz=(512=2;o80Y=g>;g?sC)i)a|eP z)F=jcGSH$@3H7{|o$*S`g7)4U`eyu3grqB|OEP++z%Rv-r|C+Hg9#W<~2XML4?Q z{T)ipMrZ?@J>ke0YzeA)etTH*S%B ze*cmipO?h&{Ku`Jxcpk7?C=4h>1_joROS6(DX&%MwV=%=6ulh*^x$|f*OV)K*LT5O z#UAeE$L~@!PL+ws!)37mHGf&acuGzB|7q__yrJIz|LsY(Nm92E758#Og|dxkO1sny zWt&zCgPIVt*t1l$TqSF%ducS(wTx|MES1VKmd3p=V zC92u6aLH`bILMM6;f9O%6(gA!N_{#~)+G=Qji0|{5Zq$Zw@n5xjLbzKiFcX2`}5F^ zNo-WkwKce8%6$u1qWM9%HLy`Kw0qtoJGJ~bbVgrVl|&_m*q)i9#EpGie%NwdY{!DpN@wNK;R*E@jdmagIHDVI zN&|80vEyHsa+ITSltS2rQUy?)6?zj!Gb|bYg1TGs;Bu9k*n}(eo%XdltoyGQXe5T~ z2Na^u(4WrCUls+G)bzHJF5i?4D}|D#C7_CPIxOkgyCxBiTX8}y|4k`q{B&mb>Y9$2 z?%Drv%=b*w3}MmknPhycOJ77ZR1x}w_L`&S)YbdEyI6and9-p~j2P{ojL-IbYI>8_ z+romZ6X@|A)<*eGdwRDHtbgpgjH+WQEgvuojY?uz8Hk!EEVq`+i_ryNyqnSc&Hu9giV64@;`MZ_*vK!pjrLr} zE5TgXtpJmy7)|5ch^9D_d(zwv1#OX1J3Q+LXc&P?0w;6E1EUj4Yg>G%cr=J(?ImBX zR-X|7=7M$%FX8{PZz=@iSm;z-E>)-_T{yXS`QAxbrMY_b^vZ#rxK@UhV-m4yN_pvxzU{D{YD z!r5W41EoiGFF;4DCduV)sCu^D)v=L`M#(*Vs~=*f%c{WYGh!DuTJd?SIwFm3kTHzy zy2tQa2d=Q8)I>rX1~xKlOHI%&T%Yd#=0$)$Jz7pYGFaeO@RAk@x>R^PPi`54Qu zoVQl&_oJyYg=P+FpLy~EvS(&0+Btxdn!LDMa?6Oy+VVc$FqgAv1N|<9Bl?PmD3o=* zhCS{A?t} zE@ie~E-o2wz^kx&H7FXH-b#ej^_l~01+xp=d8W1Y z8mOP9ZOGfZC%1A3b0T1@u82QYyX6O08C*JyuYN0`hx9o@&7I&~*)-;5(9`*2@QwPM zIT#PnaA?{Csa@_>MSOK^S!mwWY8GrjV}V+4)q&C?yThyqFvVAIzvc-V|E~jG?-4ho zg_(^?8O7EZQ6pcMw%k?hzdpugnLVBJ%4xcuS5j-s`-A6PO9gBM_E)*HfzHF|9Ie)f>1+LF_lzsr{39=Mpfc=v z@oc|^Y}Hs*NS?)18@l`CkX5Fk&%-5So?+eszhzz47m7z0^F!eUJ%j;@A&OoYaTsUgh#gs0BcZs=+g(iBeY4#1~g*4@b)ePXKN) zr5Rn=2<8diXX2>0wv6uf`eM_Oh9dCu+ZW9?1?Z;n>CG6T(ufkCChZpGJZ+18C^Vk8 zbBH@fmx+MVrb6*G?i^*~jcQ^EGL33cID3|DtUpKn*aW6FaUp&P+!Czy^+Z)*{Izup zdK4~QEVAZV0Ai=q$}pq(Y;$zAdjNx5%$=Uo16U`~Dx_O#rGIdg`cV~fx^H`ZdWI~h zS6EJha_lx&y;JdCpw`iKkr865icY(%AwI=nd7)uafO|B|RHKe%2-`LnoQ% zbNKUs#=o#Be97Ep#^$8%C6x?jC+q-r7jnQHa_1!IRhd;-w~f8%d5PR^M5cn#dk)_& zsL<6$Z23WpZ{;>!kuf%e$=f-1_JS2NDpFBP`UEGuMtWX#4%ct*fw|b>@sR5FGptLk zHaB`H@AYB`<=^E@=jAGty`%UM@bI08Hj7tk9z`0`*ASKz!Ft#=baX*f-#=I z?3aYipB4+4DHN}{-GIdIPlzJ2l{};EqB1Xa?o)Z2$JX{_cGgSm9@=*Ra{zJ(-Mu=J z=k(3EK=FuQA*CNE#(oRw`;C`Kxq0J&oXJ7`@r(^JB>Kar z*JD`2EUwgXFNXG~@cb4m!wOKeACSZ7Lg*QY@0k0F7|_6EAJuQp_HS)@Rr&YJJ1v#} z{uD+9LBy_X&Hmia7N_@?h%!bt;ObjN!_2pkyCzbqYNM7`Yi^ERp)}(_EA)hC?aq*vG{$pSt`i9Y6FkIMw;8hJxtHZ>+tD$|QG5vc)1+V za#<|mg!s&P)Nw24b&Ti8&z#C|lq0(Ht`EqpV=N@)3OWG5`|a4e@0B|-ur!XftCa37 zi^xzb;m1BtL&KYPU*%;amHVHgGNF%2zGyrA2{{VrZ`f|Dr#ZnS1M#*`o`mRb`X3e` znhv@Ts^VVen^OC1%$Ts2DuWzuG)%XZtv1QH4Q4qP?*guVLt(2@yFPQB;YzS{bT#4V zPdAXmJF@C4Q*H zB1!g`r0MC)V((r9nf^oi&5|dIZz($+-+u@TQ59s)Hh|D|3^%VQtbK580JobV+=@HI z^Y+irRDz$wnwCglH-<|9hy~n*kNih!yRfs}+X6o#XIwR`5zM5^~7R-yL%IYx~!UT4kn$8`y_@N(TT-o|_))r?W^48jL&sB~wKAzocoC(vM z*mI-3p6uytKRAU3VqQY4%hlasot2y-uy?7T=iw&$HnoI`abb{TkI3X8dbBCJX zXR3@wxqhP_YtAPhj4S2bv_tN6-x}#yszr5V=|tG44WSUhE$u}ceqhQN_cxeKgr?Zs1m zThtbs$9MjaNe+sps%OjS$oj9j(fV%r(35xldJzJ^`GAg%KBReEoL@t(pL8YN3-7pJcJ~cE97lgKf;74-iwP zi*Vc2^WNHvDGF47Sh^&xU=|0n9}wO^+v>T~O(5tK#96y4$&0Qd6S7eg0UBfn&mC_c z`2WyxS&QAv5MzrLG%78H9-6&HWA4lnfdc@!K##{Y+e*vnd+P|;6yQ|eSczn3hbwjgw@H>4x4tk3`zPrhKk}_|8arHCJ;9H zn*_HwFZ><^#HBClg{Z!oL#_iI31P8-2cPC;Sl^pJ9yo!`h05U_N^g4` z#9ZP?@ZT_3^2e$y#Ov00tJe*qE?M$I0D-sBjj0B!yqo2O80Pa^_9ZdCqrT^JpQ}Ad zEi0a}bY%PVb8T-(H!^^yTf^pKvBf;nEXQZ^?_4x%Nekj_FK^km91=Z(!hY?XzqQ3y z**4(;>!U|ELfF9hiK+$&o1E1hzQx;`0OC^`WN(Zv$jf8`CibcmE>x-f$kEV@=ZwgX zIPiPL=erV5lL*)#2=TQ)#ZR7E*g^};^!@N7<$T$e^C~qN{(w>@H#KqHPUx3`h@zQr z{ZGW%K@`I5gz9PL?9Zno2M7IJ7MjG(cYnw8xAp~yY#&Qzj3BeFLx5|{Yz~We#>7)+ z>`VqLMSFRXNvcw*fc_Dz{*_w#Y6&XLK(-ZBIi6f|XALie=m%Fh#2rMB_w|IDD;8D$ zW0)j0>e-)TFdWmrW+U?D&Rg|8`Q<9T zKyMWmC};&Clv0r2gv3 zHPLA9Zj0D{HW>#`Z5gJB5*4$!Lt!qSW4 za^z<&SGP8DeMux&%Cz_L%I3NCYxCT#yI|H_-YgvT*u`k>)v7(Izrng;GW2b+pRY|C zsWDNiGDSQO@-5n$*t%I`$_KyQ)hFaCJ7K36vaVHQOpwJr?)Ef}ojw7V+ew@4tM8_W z?@M+vCM_4@*E-)^@&x2bK%u7&(BuLuVw3Q$yjSI45Nkcr(Zxe9dee^hKE@M1-g%HB zQl2veItQ{41tdUEeDyX>lc079zl8x|A*#BjSklc{UiYoR)uu>9&>lJOo%LBEVpo!L z((Kz@4Tr9s;-9q(rSXA<(f&oFaCBQppUhjkKmKZ2hCvCuo)=qV0eP_Dv_InN@Lg=b zBfiE#j+tFo+|SN=t$xe*1cG;6Uzq}1=I7TT;BM^}wl~MweJzj8+3q+{C3RUL{b$u= znGa%L8kG+OF{v_u%RAEEz-U3J^iO2?A7a<3)TE!BrOyNT^W=9!O3QPZza*2m=M{)! zumS|}d2WYWCtezR48Gl!*Hd1Sy+IB@sGKze5b*^B&iNJ0|8J;_!F{6P1tzRJkAj*l0<^Tu=efu_>IdZ-S8_Y2;1Bn z;PYX^+Jz3(Z%QU1(p|nVkCAXO;XS$jWqHQbC8#U$n)7-hDpJ3G`0t{zkFA^*^$LR8 zK0d~uI{ZK}I-#~r9f)Eq1;{eP9S$O1*?*o{cz}Px)prTUmq?OeDLKx+1^?2^@@)mk1 zX{<^KGd6asg?fC=MK!uRxUQKY;>~pDi~*m?q>}fC)^}FsFfuu|UlvGD#_&JnRnJd& zNQfq-U_fgTXvKlpCyu7Mcq&8aQ5V#rfZXPzy#xaaM#f;8kjB!mp{&R#fBnU-{2Xp^ z`OZ6pNO-S6Q0=TM7kRAoA-TDUA00;Cf!oR3sV@Z*XFymK`Y%g1Y})@%8UJMfBr(e= z_QLHJzayh|6ECxUbcyY>*OXk$$je??&h*lnDs1azb`Wgcs4pzalh_vd@I{b3r6hc- zp^?B;qa=a)d7!Yj*mtBbrSWwrEmIVtJDdaLkB z9FX$o>b~~b0YcE{za-S`z?C3Lfup45+WlML57mO&~8^%L>RR;?52jMZYLk$N__)g}+r0HtKe`ZDtw7 z3@5-Yl&6;c~x<>wW8&S}4kgi(4P0O{}=GdF@0vDV9d1155 zki-RwhYI23$z~nNyXBw+mkV?WxVC;>T*pat?8?Mdg#2nPEaBrP&(4$jSv{X5h-cu} zu#ZkWAF~SCYFN*H3=2l=dQtdgPPJW0sOqv?wBdGpNZ%cLt@SI+wQ7K05#Rk|IAck- z;8-uwwmcfN-bbQO8-X4ewH4P=Q2*^CPhW8 zHLY46EPjRiwXsLcccF4MH1BFE(}(ED>nBePzpJ!0a@p6Wr&+~y?v z*h?}?4<+M}w|l@r$2Klsq1TsIuP1GHkh6eb>QLSul1gTIQt;39yE#HcTH;HG;FdMe zgQcb9!|?syhB4oRk`ByCw{MKlh`pdqSvWiK6okItpgCx~Z&G)y)=f3+G31Qo{AAMI zN;jX|A!R{@M)#j40X(+Sye`{*w1H(&IKDCrKC|j+tiNWc&z*w8HShZaoy{l@dXi*q z%=Mgo2jP%hnb!3e8MZD{=jgRSq_@o&oZ}$|S2;Fh)1W8IT_Sq{+~~^fzb(kzsB35h zvBdew*Qp=J3+u+P=YcZC3$;if!L_)M0-X<0TP|gE6tCh3M}Pk&?X9i{m#~)dXw(a+pE0Mq|pWs(vR%B1`cE7fmclnz>5JaK!#6WWK zu?~dj@9%oOEFP${n0-U4d(wiKKfGxS@=0A8d-)s=11aAX03pWe$Fj;>M5Dv|WwV01 zW<&G^WC!?s&fjWyWPaaX7(Hmsa!JK2FHO7zU{ShJjj%a?=1K!ntfG*!OdE96>5xVs z;_u0;dAJE**g7VSKj1Gw+(UVcxGmg=>vdVamHtzjmdO4Ifk@eZO4S{{?3{QZLjIe1 zZwID#%U)R1aA&QR{?}|nljI7R9F;Tbk&SGX_}(U4QTx*EN*-f|<#8a>ms&c+nhg&D z{ph*C6-)n*$l%jxRZ%tzlT!eEP_rqJER3@UGpgm;6Jv69^e>^Y1p=?;fj=PPe(6bB zdyQxYE^p86mIueV!KPmiK{V%GCDU8p|H&GIwRsS;Y3h56!JNYhR!|wXdSB@DH-++> zseb}_LY4+Pa!F?Xh^N_i%F2P-w+fH!cu0ra<-Ag(K(`M+!yg5x6yTS)QlX0ddX7aW z^A-eqATlgNnIi6V#Ywoe$>rnM$eAc==a+DUG54pl5E!n!2Z>%syB8 z03Q4)Wx1oC4L-++BXM4=4maC=L&tY2&-W^JZSm$JW-u`YQN`Eal7J?*w=E-XZgy2~#ZZ3F+Ht zX0F&7^stV*0awi_pAm6EMc}MBl-78goGkQ0ngoSq;AZ|R_(@J1lc)ls;ryV7lq2xk zASq^1_{u8yfcOP0Lg29ZSyIF!MITe(8c*gqPVWV(a*lFW(ITs2jYo*9gO=?ZtLoqB z0=d%(XCN^kuYZ79-_<5Y`HMH)cu^Muc(P+CKZV$QR56UJ`cKwJme5cc(J^ zad*;@xcks~^0TqqIpA7}JpLi5MdTIO#Z3kN9o-*!#Picz%jNr6^*;nmL zh#?oRyAu%^|4cDe7!dOI%k_qd7*$GZExuAhWT>!0kLd9V)ZHb=|J@t9@@u&_D-TAb5dj1ZCzQ~ zG|P=|QQmE5GnZ!XC&3niMy`8dR5=0bJQzV}6UsmY-a3`UV{8q<3+~ox4?Av{N?_{w zu(H{WNd%Szhz+5{mGq|Cf9jT#@EzJ)SFK|1pnyiHW1mpO|MpC}nqha^=NLLxUj}Cq zgMU_|-H}iiQhgG+)018cf-j*oMA80JV@?MtvA>lua(HoZEW=~O*bWTRZQ1mj9JO=C z!U-ki3;g|SyS;^lRr7zke8(hHhURYRyezKHwQ#Kqs!o~Q*Qg=395~+6bFNvkrM6sa z?Me(?w~7!xT72=!;jyjNzVeX@*zCrqu&X=}TH$@(r7S#ZL2c~kEvxA+y6GLdU(?9oR?){?#Rej}st5hQatDmmG_#Qk2AVD%TL3jmKq@04^C@+bQoM2rpR*EHk`guaE#8&dj z=Ziv^7BnR2`4x)MuftDfFnWxo0-0`Z6*b4;ngA7(*5`x8{A3B9e4Vm1I%^1@N|9`- zeyN6cR!3AL$QUDrgI#D&!G_|>4!03we5%FR)nrDoK-a z-_$LNTE<@?t&QOS@(lv<9%aeZCxM{Ykl2P!>nk}6BGgcCJxA(*fbWhZC8N!yvhs=z z><-yGRT$k6DvkFfx2cE;ZHGch;=VVzyQ$uNu7`LVaQi)_gX7zb!%YbFbJy{n^bcNq z{=IUl&mc?TGG%Gj-*toxU<{_xb3to&HNvO5c7K=@wZ7ywZEf!nZFTvKNm2}a&gTSn_t@+2S_!mIvw# zE)aBb{Ge2o*usA++!fqHru1=Fr#fx-fnL^#uyav)Vk~vh6QwDz#vLC|vjqcOg_d1? z{yB_{cBboiPP0U_qxD`*7;1ZJuN-cjK2uAz9XL#B6**?XhMmQVX z?vDD3%5sJ$)-RkGB;yw?x8{P#0Vu~-JxzQ@=1jAU-V!&qnCmh)IW086z(+>6VES|> z{A&U+z8`DCGGS>mmvT}QYIgxX=f;|)D8)erC`P5&tXMro^_SHf{te-oL*}ye>ihj` zRe<|zsfmoI=+DXF_Mc08^^%y!nq>v|#YrCPY#E=*vV<4;{jkuV>-*Gb^m~zI#{{QL zI=IE8h*OTJpRoo+3$&!?qRo(C6F^)rcA`iwklMciw~n({F!7ATALtZu(SkY@&Y6DI zKczq&>VO=zYiL4cuPGJ@MHT4khRO47#sW=7Y7_=YD^AoP>$rPdX8a3RLSO4u&bu9> zyROHuGukmZia2BC#oxh=8}mU)tFXRQMZK}?E_5Wa^CaPP-^KZRKiuLU#_ld&SADPz z(6ti%26l?UB8J7~bQG8}v+h`-% zJ&i1Su}7cHq-Ux9S;U-cIvK`t#png)wz(}rTO_nm=H(!18`p)Efy?$)%=l665rw+5 zF!kQnB)e>(^Y9HL-Auz}df5w}Y4s?JpA}v8RP5*BckNO$B!$1$OmEr~{B_@cS<`esG6NQ6c3mcSI9gujUbit|*QWFTkX>-sq_ zfEL|TMZhrFf4QBY3Kg;v@Zm9`{s8D zT#xHoq!dt&E?Nn$z+qgC;=Q6n^g;tz}G8B}wOJSJA63th7%^%a5>*@Crq0QvUp zCY*$GToBE(V%sjf=@Dls$ugzVvHby**6U&^(UnCHgdRyRn3PI2W~x`Ca_5WO4Rybf z{;fnY&yX57wiCkR3nsyMf&yM45D=c96}N>wR=gXQXoPI=UcM$ejz<=(G$T|C9-7^L za!n1F41I5RD2|FASM{vk9l3-^2lb>#PLfnOCA{ytxVzq~e{yiZre(lfXl$P2PiY(w z5Q+H)^D5SXK2sH(TQyZb=Dg&*$)_^ynu2{*!$>TV+FnK^sxpO%sbneil;Cp#?!oBoRrcz$O;^v4bzBDF!boh7TbX|mM>(-}b`zwlWjN)qloVw1 zQJ4cfr*+_pP6==arpTMkW2DHlu8J6aWMK~+93G`7g~!7E>VLOUDan3Pm_AAOf{sr z?mA5^1OBzc03=@3vs}VBTD+^oWVb%f(X8_*Q z0fjIoX?|=N9=oSd+b~>C6lXWRbibHOV`{)E$hib|V0|MBs1C+ajtdYq##cfD`L>@b zYe009P4oCd3qPg1SY%G?{>Jq@n8trmGC_X|HWl z+G%ou#( z%rCg3ANYsfh^K0eFx{Os>d1aKjz%U-`i4%uqF!GEtH5Rzh>3)O$AVq?zSE+! zk0~d`ymDv}5Ogj0MpWuY4)Z$_$dBiedd@ zLF{(XN7V7*c2SMT{@j)SdMoPJb5rj9^J9~N+dQS~_z&#L@mpTjf8YOE;6Drezh?pQ z5;InIy%hLzSV9W7!Qhl{AYpxEbyNN{ moveRandomly('shape1'), 2000); +// setInterval(() => moveRandomly('shape2'), 2000); + +// Store the state of our moving shapes +const movingShapes = {}; +function startSmoothRandomMove(id, speed = 2) { + const el = document.getElementById(id); + if (!el) return; + + // We store position as 0.0 to 1.0 (percentage of screen) + // This makes it "Resolution Independent" + const state = { + percentX: parseFloat(el.style.left) / 100 || Math.random(), + percentY: parseFloat(el.style.top) / 100 || Math.random(), + angle: Math.random() * Math.PI * 2, + speed: speed + }; + + function update() { + // 1. Get current pixel dimensions of the window + const width = window.innerWidth; + const height = window.innerHeight; + + // 2. Convert speed (pixels) into a "percentage" of this specific screen + const vx = (Math.cos(state.angle) * state.speed) / width; + const vy = (Math.sin(state.angle) * state.speed) / height; + + state.percentX += vx; + state.percentY += vy; + + // 3. Bounce logic (Keep between 0% and 100%) + // We subtract a little (e.g., 0.1) so the 300px shape doesn't go off-edge + const bufferX = 300 / width; + const bufferY = 300 / height; + + if (state.percentX < 0 || state.percentX > (1 - bufferX)) { + state.angle = Math.PI - state.angle; + state.percentX = Math.max(0, Math.min(state.percentX, 1 - bufferX)); + } + if (state.percentY < 0 || state.percentY > (1 - bufferY)) { + state.angle = -state.angle; + state.percentY = Math.max(0, Math.min(state.percentY, 1 - bufferY)); + } + + // 4. Apply as percentages + el.style.left = (state.percentX * 100) + "vw"; + el.style.top = (state.percentY * 100) + "vh"; + + requestAnimationFrame(update); + } + + requestAnimationFrame(update); +} + +// function startSmoothRandomMove(id, speed = 2) { +// const el = document.getElementById(id); +// if (!el) return; + +// // Initial state: Start in the center, pick a random angle +// movingShapes[id] = { +// x: parseFloat(el.style.left) || 500, +// y: parseFloat(el.style.top) || 300, +// angle: Math.random() * Math.PI * 2, // Random direction in radians +// speed: speed +// }; + +// function update() { +// const state = movingShapes[id]; + +// // 1. Calculate new position based on angle and speed +// state.x += Math.cos(state.angle) * state.speed; +// state.y += Math.sin(state.angle) * state.speed; + +// // 2. "Bounce" logic: Change direction if hitting screen edges +// if (state.x < 0 || state.x > window.innerWidth - 300) { +// state.angle = Math.PI - state.angle; // Flip horizontal +// } +// if (state.y < 0 || state.y > window.innerHeight - 300) { +// state.angle = -state.angle; // Flip vertical +// } + +// // 3. Randomly change direction slightly (the "Wander" effect) +// // 1% chance every frame to pivot slightly +// if (Math.random() < 0.01) { +// state.angle += (Math.random() - 0.5) * 1; +// } + +// // 4. Apply to the element +// el.style.left = state.x + "px"; +// el.style.top = state.y + "px"; + +// // Keep the loop going +// requestAnimationFrame(update); +// } + +// // Start the first "heartbeat" +// requestAnimationFrame(update); +// } + +startSmoothRandomMove('shape1', 3); // Moves at speed 3 +startSmoothRandomMove('shape2', 1.5); // Moves slower + + +function randomizeAnimationStarts() { + const shapes = document.querySelectorAll('.loop-color'); + + shapes.forEach(shape => { + // Pick a random number between 0 and 10 (since your loop is 10s) + const randomDelay = Math.random() * -10; + + // Apply it directly to the element's style + shape.style.animationDelay = randomDelay + "s"; + }); +} + +// Call this once when the script loads +randomizeAnimationStarts(); + diff --git a/Transcendence/srcs/frontend/src/test.html b/Transcendence/srcs/frontend/src/test.html index 746b00e..2326d7b 100644 --- a/Transcendence/srcs/frontend/src/test.html +++ b/Transcendence/srcs/frontend/src/test.html @@ -1,71 +1,16 @@ - - - - - +
+
- - -
- hello -
- hello -
-
-
- -
- -
- - ahah - - - - eheheheheheheheheeheh - - - ohohhohohohohohohohohohohohohhohohohoho - -
-
- -
- - - - - - - - - + \ No newline at end of file