From 5f2a9890baab898dcef473c310a7766eab9d505f Mon Sep 17 00:00:00 2001 From: otsmr Date: Sun, 9 Feb 2025 18:02:52 +0100 Subject: [PATCH] finish onboarding and some more stuff --- README.md | 1 + android/app/src/main/AndroidManifest.xml | 21 ++++ .../res/drawable/ic_launcher_foreground.png | Bin 0 -> 4992 bytes assets/animations/takephoto.json | 1 + .../onboarding/ricky_the_greedy_racoon.png | Bin 0 -> 196938 bytes lib/globals.dart | 5 + lib/main.dart | 21 +--- lib/src/app.dart | 116 +++++++++++++++++- lib/src/components/initialsavatar.dart | 26 ++-- lib/src/components/permissions_view.dart | 25 ++++ lib/src/components/user_context_menu.dart | 12 ++ lib/src/localization/app_de.arb | 97 ++++++++++++++- lib/src/localization/app_en.arb | 18 ++- lib/src/model/contacts_model.dart | 2 +- lib/src/model/messages_model.dart | 2 +- lib/src/providers/api/api.dart | 10 +- lib/src/providers/api/server_messages.dart | 22 +++- lib/src/providers/api_provider.dart | 24 +++- lib/src/services/notification_service.dart | 8 +- .../signal/connect_identitiy_key_store.dart | 2 +- lib/src/signal/connect_pre_key_store.dart | 2 +- lib/src/signal/connect_sender_key_store.dart | 2 +- lib/src/signal/connect_session_store.dart | 2 +- lib/src/tasks/websocket_foreground_task.dart | 64 ++++++++++ lib/src/utils/storage.dart | 2 +- .../camera_to_share/share_image_view.dart | 2 +- .../views/chats/chat_item_details_view.dart | 41 ++++--- lib/src/views/chats/chat_list_view.dart | 10 +- lib/src/views/chats/media_viewer_view.dart | 4 +- lib/src/views/chats/search_username_view.dart | 2 +- lib/src/views/onboarding/onboarding_view.dart | 58 ++++----- lib/src/views/onboarding/register_view.dart | 2 +- pubspec.lock | 64 ++++++++++ pubspec.yaml | 5 +- 34 files changed, 559 insertions(+), 114 deletions(-) create mode 100644 android/app/src/main/res/drawable/ic_launcher_foreground.png create mode 100644 assets/animations/takephoto.json create mode 100644 assets/images/onboarding/ricky_the_greedy_racoon.png create mode 100644 lib/globals.dart create mode 100644 lib/src/tasks/websocket_foreground_task.dart diff --git a/README.md b/README.md index e595089..e3a92ba 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Don't be lonely, get twonly! Send pictures to a friend in real time and be sure ## Maybe - Send a picture first to only one person -> Kamera button +- Response to a image - MediaView: - Bei weiteren geladenen Bildern -> Direkt anzeigen ohne pop diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 64bbc6d..1e68d90 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -30,12 +30,33 @@ + + + + + + + + + + + + + + + + =jp&^np*>XT>uXrSrxCqz%#bsLfAE`TV1Ci zIb|xNd)7uqelhq!U^dnsr4sr>10}_)jquNJcE#+_W{0!FACRS1T3|a9y8&&nh{$Ai nI0v{se0ZEmVRB0)t8%607kQ$7X94U-0329KeJ0!MIBSwROO4mlGfG`?I z$1^|Q=l=cv1MVH$vG=Yx^L1Y5Rf~G3sYFIhPYeJ6$W)Zy>Hq+Quzw#Sd|Zi#=I$8o z>*SsKdj%y|^|#8Z_lb$`-n~meKp^zwG43I?yq27d6b}y%^uca&b{1DcN__tT32{bt zc7w=$Mn?K3!F&JSLiZ{ibiNn94hRau{bXf*@={3HP=!fRNkKq>x3#-%y;EgzZOzTq z;k}N=>iU|MmFd^ajDV+e13H`+|~HQ`?pVc zMR=r?qS=2=X`hIA7m!-WmsA&V_DVS1 z*H%|s-{?zWh5bj*x~8Vc^!zts+-+Umx{4A%hK7px?tK*&(4-?`mb4zhS%AkwM^hJY z!_~e00DW^KcXL${V|^`!`I8HNdVSr4-aT9GkU#rnpO!ILVBdT;IZ!2TiR<+Qpz`+h zd+*tu1#K;QBf8*~kFN#GX+@q)w=6naiq47F2)+?5ZeSOE5_WrQdy*|g^a#4p4d^+O z7Jkj+t1aTv?n3@|hyh3F|GoY%EZ{lreCoS7rqC)guF+-(4aDoUnRIc#8Y7 zcu3|{Lc_K8!r))q4IO>HHAUig(gbMwv@5$U77PZBA5a}ww+G+@mP-`-gcAlxsd4*tE&qh-3VmrCm6(b7JK=bn~G)vm&)N^}9F$DM7%a`Uc zG`?xjm;+>ANiY1+tP};rZFw|qfg-t%JTH*zL5pLixCAl7I01$lD%qE ztLzl(93Emy+x0tsP9%Jlk z+*;am#R{fVR{?~!_e~+iv^+k!0-`QzoJ+f>{|cF^__`{OMz{PIwmA{}w;X|0RVVkw z=5!dB-}$C4Q)^6Od?eLUhU<0)glf;m4!(7n3ljaZ%X6;Fp&}Fqs2%*W+5TugT)X)! zXW{o2&23mhKcV%?wWWB}jaKcZb`#IiH-q`OX@K8)$v}lN)?xFSeU7o92hbL|=1$}h z`FBWl$3y#frPuLmu9J@BQ7aa#Bov zpnS|nmhoQFYosyK1pzD?tLDDV+C7Rz|pkbEIE3WQ;!y!g@W5i zQI;*>N)}a6gJePubFu;xIcL#NE)O5Z`o6p%6WGE+n^T-lhgG9hL*4psri* zt8MsASx^U56JAoe?(5u-h`)z~Pfo0k-EX?C9?dm%n;i2UcU zb9X&R9k_|?iTD=>QWH`o)}UT88^rkQvXI!^o5g5>0i8J3jbL&EoJO&&9goahhW-GuZ%9e ze(y7xDWD+@2A&;xyMYwe3|WQZfKJ^|5!q*0nIHLt+4IUsDfUPatH#~)rzei;j{vb}P zU`imHTGBb;cz*r4fn>TpW~2SY%tvlFQ-OQ?8By{Hd*c%pP3`PRGQa_s>BFi7%Bs*O zU`%)KHnJ_%dY)a0V~4)Xap^Hyp2*1gM(|si1$8e}U&?||b2{|ARea_i;NXB;yz7Fl z_M{8xj7UNpe`}2&|81n)0|Ta^B#aG>10`&4qn))=HWa6OG9ra22?5@JsIq-$LIYNB5!NN>^MUB*GLf8&zv~WUweQ5 z@@h3?q^-*9-p*``q_4i-QuK@lRsW&n_PC!|n^anLfC8WHdHy1a1qV66b(D(Hh^4|I zXv+2`uCn_=29qzhm_4=Y(7cyO``xRPHjATGYZ^4A%tX~U`MiUElJd#mcRaveR!E)o zH9&8lrKr7`XXiA_?pg&kJXJYhoyH-cN$Kdt+( z>zuA@Llwo~)ZFfkMZEOD6=q`2>6QrM*DNj7()4R8Z~)mBUj*xTApDqLgF35I?tUr3 zCRh~b@AjwQ(&dPIm`bNxX(g1LWfNx`idmib2qJb}`j##*;Z0c1WHUB-JO zXr#={K%{$XHk1s2WpYO&mgitOvEi$@yc>yulpw`Q7f6Z9tgr z&t4A&tW+Jew>QzPZpK&R0lr|nOia#gUwYhnlsw2Y39yARUV1eYx0ZxdjrS;(L`4obLVLG2KP@y<95ASgV#D+lLEhPM z*QbuddVcM- zsAYb*DGP+xN}CZIX_%m{#plnFWZQKVM7U|3QG)FQm`Qzu!lG#=L=eB*5L3k!vVIT{ zhcmEIPaG8Ax{BL_*D-T2?Ph&-EB9odQJcdAP^JOlB z|8okRBZyFuuBZgD;OLlBY;95ds(fAC|37+G;HUMCkZcYiOV&x9_1ANH|4BfRV_g~c zO(Vd*=!0qUY*k3>ba7Tq6?Hd3@XsHaYTC@1&>SfAC89nnV@A?GESjXmaW*I5)ieMg zKOc|B4G`Ewp6?}hK>oyTrw&~?<_MQYnzXj7S3W$y z=+Tmf-v?N2P}c^Ecc2$h-7`qF4P~Q9!FRqBIdKj%ID^F+pjvIO>5N^j*SS0!8cq&< zp?ZN#qH9MYIGMhNRI&8x+rP9m=8W<<1X5!;q#5RB+m!wpWz!Oq@7mCCJm0w34+eb) zQd>7YUOH+E8oIpzyxPcnKQb2Vh&d%DZ;Atr@3ukGsOIp8>v=jo10bTBB#jo&n7Qjfd6@?KtIxh4UlE2kNxp zTscAjx@W?Jxst@U>Gs<64=pfkSb+e--fhR23On(63?W+3)EW6Jy}=_W>`XrmRUA0GcC}UQH)NP*+-*o?~q1 zgxDbvZ2#U{@{qVFw#t!-9lt z;)?e@d%}M;>H_UJRso%i{yQr`ps$S=gz2)##6d6%eHkSlfdniotn`hoeFj^rT8WBZ zi0VD9BIc;~8G6fz6E8u^WHX>i7Ba%C(F4O|mSVbHiL(CWi0TubpHHS*+`3`l70Xq+3g&vQ@%H*g%8W!n zYirwqFPu6ab?rIKzwW{*cPAHypnm-Q}$xC_ObptJr{mnvaSUoj!4LLG69 zOS8rCOSh)K_b(^maUOdv$yzY*iT$%-C^z81-`#bOFi1Yv_i}Fm1HX+5#Ex`y_^?7{ zRrsVAzN74*UY~H8H=ZV|!amdCVXvFl#Sq3fF$?{E7_e+qV0kkADnLwYX~jkE=4iw0 zR#a3vs!Czs!9pEl0)mMRZEAYY>J3GS!L8aVLYMuKa$VXI_`#czsP}{MJlog2S8^S# zHK?}&0zJ<~k)w-KeVg0Z(#wy`LEA$ZJ;U#ccM~3awKW zwScVGo~5>bDnueI$=Iyp=%o)x7e|@(P4AAy*NcOUUbs97&oA0kYkCPI+C2t_)4C8| z+Jz@9wDz$-LwAi}l+TUtPc8QC%HwLVuueaT7@yg^pKNdeW&FDy@@w@-hK%%OsZwMzI?jO?|QZLEiyHtIm_mQrHE^vvzB znsrh@u-&eC;SPvpf5p65B1@8~5r$dTaf6k$@M6~Oyc;iFNX^*pIsyQN*o|LH`?tZy zp#>Y{;1vloMX-|x&{}FZIeJB5v}i?q;vV2t{i5ABQ(bxovRNyq>>=Ov3LZKuomo4X z0j~wrOsrzh{_3d69bC#9^Bt;?HC-EHP(@3+u@C3|QSD3qAPPLKU9g2E^IDGmYhH(HOnQ8U@x5HH#U*h5?ji$v|K$$+({DEyHspap+D8W1aW z()@07jaLbH9P%*f|8G=zS|N6(64cDCE7o8BtFXEO_3IDYz}1+@CA}W9A$#>4|DU?s zhBI}@Ty-^CzuqGy;}O9i4``7Znh2LI&`MyF%`xH11SXSqbBL2V^8B*;(Nj{g@Ur2J zSyWxHM){v{5lLK{dy8SR)0guRxxhFK);DX3N;`?BgiLr+t$9kFOO8Wgk&2xJfL5Ym z-~?$?krWvPIpOY8tL#4Wq#7z=G=KvmE?#>L1!5fDx$ z@aZNZw+5@-F|luEr|W#dXy6?70Ri32ok22-#E5_mmdK zJI&VS--FaFeiv?Dyuytu-F)AM%~TIE=ljpqI2Z$2>YT$S;Y; z`zaX-Nc|#<%RFy0w*UEOZ*D4~VNa}~efEkywfUjELr=0;mQr49X58mcRM!mmKLqXU zGG+Hn%~fNse2-6km7k^{5H4?42EKZhq~o?36cV&pnV_9II)F~AdfBM4DdQME=#A_Q zG6>P+`9+K5b&0FU=_m?I&En`??_VA*Vr6AZ3@|^Zk`Aw2nDg~^gVgyLZGB9hMK9@L`P_~S3lJ6 z9eL?S0El$z+wmAs33pt8IqkmkYA$evreylqW2AjF(SJ+goKbfuZ2{jkKlC>ak2K`y z{JCq;BFEU$Ob3P$7l@0G#SO6gj}{b8Y$IW_+X60f)-q{x4uc4KOCk)t5^eRLw9 zpd2Izg>=5&&=V50vWgN1aD^#pt4q&?M=W${m+8*U4u#Z&J9Z=T+-*)Ep**EC`PfVJ z(6?b>^Z(jfJ(y2{&V2xv>WZz@lcVS7TtNaN6Fd8IGzx|E(mnA)fYn%3jr4}+_o>vL zSrn@iBU5N%;g=gvSXRnP<~4RzOd_{XJl-7t0ZR>I!(!YsZ+xaEXEV}%NiQl`$pdvY zIkDmgLgR=V%(|9np{OYFD&VamqmT_}3uV>mcEJHTS$G0d&L>zh8G3fjHHS0yrITz& z#T`ZsZN__UfYs+=MMQh;xnshx{(%j^ZS_FCCT12g=LT?9`G z<-PAFAd>1pBu^tC-2Q_wj`$D#;SXX}*1%0L!k%VLezV)8E4uzy1UL!uAH~Pk zyBUaCVZYG~r>OfQL^Lw(dp6VZ7LPU{j6LrNJQME(%ZrC#`&3tQG|S{Z%+3^46qkql z`9<>#*k-!rZlIF}1oC9t7H3|*b)@=^7n%PcFxtE=F5$YmZE4ReHodOu@*T-0ZVr0v z2h}x&2eq`fw_jQ2#6`x1hy!XKoH-=tkfJoWTV;EC=S33zREf(|c-x@io8_YRz^|2Q z)5-s9$rZ+G=u%JR+#|BKw^x&`YNVXE+3kcBwMLSnlf*7(6?Zy0pVtW93l6^D{MP#; zvPJ9(BO~He>OFBD(mm&)K3a7vw-Gs9vE{GYagFH@4)8fAFxw9xz2g1njQj_CX5-Ua zoCcL0OZF7}$vxrh5=lBQ*bNpmb5AS6twqh=i^x24`C)SP^5dl$Mo-RElsWlY)GVSs zpDNAa&I2~QyrtQN=iZbsLSgE_m*XitsvH1Su{ zATs{pzN$?kZa4(|#~$K3T`E!6J{ME-kzKE#_yznOBqLLCN@RkPt_+g!^Cm5)C!vS zQgDz)0}7b+v7NQT^hVQ`TT3JJ_x=HP@%1+iN8xHbqL3$ZsP-S3G{x_loD=qPkS@*( zJd=5ZJ$_Lu2^IQ?%5|?whd{YGZao2f&+_J#t)UO{>j!!youBqJU*j_b1BhyzcE@Bn zpNH!yD#wp6}lelKDE`exv8h-ViT)2*?m5C%33yVvl4^>3)O^v6guhjOmZ-3+Rhw*`DGUZD)X2ih!nlcVUqBu-&9CGYSUw(=%?UJ zQ|3+AEYJ<+16(&Xsn5{*iLUb3xy@FW6Lxot^#tIairh zq^F|@PGyqA;{cPoh(}HD;wn>0O=OOhrnCaCx7y_LmixZ{Q&p|o!Pw8I*=1=KNsdk$ zY=g0HN#2fC<0d(L#3d{sr;UuDFYuYjA@mC7AS{kR6tL*#N^Z0--?aDlGH1mWy&`FK zj}>(6Z*-SaVa^=dRQSkyciZFZ`TeQCO01^PH|Ul73}lV~Y1VHIh`ibxZWF0Sga%rj zdUbePGVeHIMsSGBK*&j4t8&oHm;3y};RrTi(nZX`i8Ds@msymo$=czZYnw|CHsS*V zQa?I+B_{Ewq#;SE-mZhQ`c_>fCdbLd$Sf$girsWSyg_39ZaV>>L9y19+eB*~lbHk~ zp(igRE0Ujr>0_yl+gp&%W|%R%ViyiGlyzx!SU{}O6F}~R;iApSwS3oUoOmrX4cy5) zi;Igu>pA7254#Rl<32QZeL&<|Xd3wG9b?GnPeOp!C)o>J%$#7L+^o@Oj8k^9;6jLF zfZDnXdr9FlZ^@y$cZRM|_7Ei!L! zM|_keekL~9k9VaiU$h^Ewvm;FGhwl7rNc41$Ux-=q%n0pa7k1lWfMY(Y2WnG-^pxPkUMM9 zJ!_vh8$CzHpes+6I$XPm7$}DUu9+{QeZ=rQeyOuKth9Z`9L957Xw4>isBL);=;`g4 zkxceYwD7_+WDi4Yg4Iau5gy{s|mhdvaU2z#KBd@<*5sH|l0cK`jZ zO$4ws19;_`$UgfnjLZywnX6;?2{_GRMOXyc?)Ou)F)yJC^U=U7^xX~~v+5!AOL7eI zO8ZTwHiEkDW&O?zxhpGar$$?}kG`-I#x)371g4@$A}3B>RO(Uha<8h9Hqe5zd>NMEO5=B(vFG zL_6}$`}-a8!m!$$NwZec$xsK%A;YP?p$<9_Kru zzNwt0xbovcA>AddXHyr?>2r=G37-DvK%HGIL9J)B%DBkq{(-a-|F_1CgUXFbkoLJH z9 zgFpu&fcRxUwKLu(hXn-(52rNPTwq0a3-3r=WnPAu9IvU|-%LcaXxHrC&vq|F+*HYu zZQ$Q`Wcvplo1~QA@q(cVhubWRMZaH+^G0vVFzs2`dIvczGNsMx_q3SSHE`g>@WAE` zi3hJW3+f1LOibKfpDnS)lYs!@!J7PdV43EmRF8$LXZg_Zwss@)5Lh*6Xn zuQ=b4P^q&}MBB5#{T5HNhnB$rbMTJf`DfS!@7A?>b=|ARbQ8_k3d*9LmZu|1~gv% z1`6owR!O$qKcfds)5oAjwj_skHaA}v`>9^`}L^pe*yY`| z;og<}6Oc~`;%wVp^IhqD?ze%6Lq|{PeW?|_RcSCWDM@SEuf}7*iJ#SY6ACMOQ#ljd zdmyN*Ga3rBX8KlzbHzlC&-F7|gYPwX48b=}aSGrxh!exm>XbQhQHVPw)%bbX7}lAx z8a87ovVD2SuZ{Gc8UCoijdP=H=*jym7!)?~$pb|5>j#ihrCiudS|D@^QnG6zG>O|# z{Kps3lxHhh1v_m{L2v*`95_qfJ#v28`p1hC-C@!m3daMi%wDK7Q#H^nYLKzKMML$& z9vh+c^ygH#lcRa3y%%OZa>zfX$iO0d(15?;a40|8c0ARgzqt6#7V=5-Ox?>$#}0dH z&RE@w&^R=^mBSOzrOCqxI1YegNe(0>N#d%zqX%O?{6NjTvYW5sV8x1*gXo`3E&okgLyDVZnYU-fQP|rkTT3zFnSg(u}bGk z0B{UQHHLPeAc?cRm?ht(u9Qum!@r|Yc>-p5WdUS&m(dO9&Iwt18?IKL;05oTKH=QI zGU4?@o|m?uWve+xe*AcJhE0rz@Bz~o zu|?Pddgi%aFcQfm8<^>>5mqcX*oKxW!kkZjQroj0cvJm=cN?KTR8lNq0%&5km?=D_wwrc+2Bs}6=(IM%zXD)=DI_4Lw6!7Y= z1oH#pZ@3QjUmpxSHsfc2m$^MMBQp!(7wV0oijJm1${y-!r0Ks1me6Uo+VR*OToAdhdU#Xy|i0+$;9qP1#iMkA5c#KdoZW5`yi7aMgzrPUX944IhRU?@BEdJzkC&iJ+Umm)vQCLv zdas)#UvK)}nBLWagZ5z}+UQ3$WH6ceZAr-9xET(&ov26@^SQ6E%G$aAxkUio9~qo3 zI`4^KvGA;AkG9MvudM)*e<9>1?^#C#=if#n25mo>e|c%_d5z_9E#BDyqmdO z3SKRQwSoTuT%5;vDc^b>6LHep+dp+Qk#h*?IJ$J_?-yw9k{#yzt=3|<@W^=Mmda%rgqKm_Cv9L0J zGe7u0fnQBG^vT@N@4L8LdgPEX+j%{vG{$A0Fg{Ev=~Ixv0t#U!r0Xhx|DYB+W_2RT zl18HN;{eI;r2zY*ANi&ec7j(7-h}Km~$+DYMx;+VZHep(;RN^x^ndRrVfq7exgTfIFq2CqzT zHD^i{Vut$e?nICBZFU!iy&s&@b2RhV)$PZH)GNCN9L+3Q+8@iODTisxmveW zn_ue^0}7}H-x1wDR#ZfP)!n*yvQzaeWKn5HF19*q`^E5yHJ_iON6zXE&I+9ivGQkM z$FaDrbB3jQhzNO}zxmfm%}j)zD%B`*T;+YmpQ#j^pY1vvVIO;BVsVr4W>5LX9QTul zL?xa_e)?l%_EuK+6P74CM0p=C5?xwm^c6VD@4Q53wIo-9ZEwrlrK}(8+qW(R(G@>An>fyFRE&MUS1-$3n1x?g}EGE-CVWYuuceVaGcvp0IqgCZgPy%@?3f0!LpAIAf*$~12nF?s8u-BMc|MH;wb2ESq;N%RPR!zIM~lefie&)?_ozrQY9TS+(hHDQ5_{xh)MFwv>yD`=UPd#EuKpf z3^%b1cXC9IleN3~kLzs#wa5~lPEXX9fAmvBUuNAh{TD5@5V83u(T47+sh?}Ph~npj zf9uH0l z;^u=Cp++fMXEk|7r&7R`MQ;r=zIqtgfD$(bh%7cfFlM-1elTZ^fE}N{+fm^x`#hYC zJTY^kshW0^rUlRxcM}*kc(PV7?o!^m*tviq6K~$^Xcu9A(nQPH^Ur4h^GIA!JB>eZ z2es0T%Apxt7{y_MN!ZQrge*=(&DN)fp2dL_9s%25ZS?vKCu1-ZAwtM%k-MZhJiHZg z1EE4tTluz*AG5Sk%YjZiY-1zL96PW2*V$$|Yd9A?pdsK!&a{R9<-7${M3}_ave=z5 z8`8%r$=OMRWBB67Rb1N>>=IgnC5{P9Umn7}KAzv-D9-+JdaPm=f|*74(N+r_ej+1? z-Qw9^NrB?$5OM-hfvG><+E}N+P;(@`&Mih|7Tk#H0Cq?D))SbW2cP~(^-j5=v^sau z>mXR0+CQXROxI$UOIiPnX1-%0tUNQKvi_#^`O3NOuVtf3rB7)XU$JIXqh_zDRP)sX zq^!w+oX$x~9G< z{z6ICZ^%;(Kfk^v*y=rbnX>jwx1AYraSS;Gil@^D5`%(Ti;yFOyXz_5G4%`p4hv7M zp9jz1v*z6AyfNf5HmLOE#+(l5y-a=H?(816_Kn~4@=mCZrUiy!11m`F+!KNCPi7AO z-Lg22diXT?poXe2cB0`vrdN{RyO4JT*!uRj&*1U7?T4NgS{Q?|k__lQeaG#^BbH_J zS0+|i$5bf3RxiqmU*T&hbZx13!jh5}DU>l1By>;p!9$t-;anC*S|F zDTq63&L!f1^thBZ!WO(1B}-PU;N3Rznf4Fa{s+vDBFTo&(6Plkot0KcvT<`y^-FBr zxxJrR)3I2MgJ2;xtBCt>h>LiCaWa3#!BBEH%FY#USvq~5O7_RYP%#Q}g9iTYvv0y! z`Ec~)DbR7Fg0sZc^ch1S@5o^oD#~>dI<|_V?H)&(=F=rYt2B3Ee;By^GOu3zr?!@A zfh;Z9`&4jDnl|M5w`$a(KWKsC08$(&^2>TSTR<@;!Ic$vIw7+R?zW8p5I zW8C;-fUS0q)b9rMo}B1sq?K!pZE6Y(NKa2%mMClW4J#>P!?^SoH=gP4?Z?`);)8@yyMr1e!e5v z^5G@eV?mJ(51RsO?!?_}AVL2^;n?4y2lO;xgDc;CEepl)PyOyy+U5ps`BM3Oc%EG| z0dYM!2*D&2X$R-JCXWKd3DMPvPuTmS+Fg*T@^t@T7}l;%g+Isbo-qrsiM)`j^RbEY z0G{h-<45?xWNi7AWyEXF90kmWc2b~(XWN^FU;OXgWBJRxq;S2^Z4HOI%@Y1$-w+L_ zK$@`~CAN~b#2uoLrBL8drbkoWp?oAeoBu10EBxNy+W!6kS7v9omJFf^Bn;X7TN{(v zFp1ENxXf^Ent#>f)H1j+F^jq;{k_v5GCTC@wkZUv@!>53CdG_=33p$q+EpVMi$A{KW*)E0x`#E^otf^{n%mLygeGM68 zfkssxITB1#L(DSrh68;Ev}Qs}r<^*`RG0OEy$X6io}t6R9vP2iWEk@f^Tp<$MNJ8c zG2PuWGT44tGQQP-LGptt&-TA`G#X#dstLwVGzV(e!-~IXrfZpllX1%r3WI7aTz=?@ z<)rSz3J#UYp1*s07M{6>BwyoUEnB{6nC00Ra$k^G^wrCP58X_Itk+Rhy4=ao0p5YK zYFwV_lz34;G#KggmR~nFm#ela@QYC@yNY0j9G8u)@@Kz^s&A5PJ+v_+8RW1w{G>b1 zR1c`lc+3Xq@J=We(eFRxe5vLfrX_c?GHU z%R8SB$jM3157~&p)0w?+?m%QZ9ltez&2-(KaUCSXWw0ZA)7z+lHsgCNG2egIvE_~I zk6M5B6aowf7dY88x;SIL4iG)PF+ARy3-zrk;al$rSN=5>#DaU-z_CUz3X@DyF`C-u zg`t?9eyjM9$P3xSN8H4Br_GkMuzCZtTD8)YM!6#ojf)mYgX@&HXlk$&OSCevx&?O} zWH;mqr|7wxP>4X)8>I>^sr$DEB$tSrc8^EIWj*Q18eiG^@1h|bvXPM|kf+v&@aog{ z8#zDQo~(xPw<|5?MZM-t&N2RN=y>IP<+prK+7cUgN`b$htQAMz-nuVlK=Soej=Mze zPy5Y|s;Xp$5zEO6N!bEH>|CcIFQ^0=6%AkVD&~T&Te|x=q*wNr${|q3l}&<| z%tQLPg!b(&ddOrSpMlhK`DJNs3o*W*wDW?ss%tfhm$b@v&M6IIW}{;76rc4t2cdbK zKGWg{mbNU(LEL?lvk-KyQOP#I81h2N90P2Az?(hK5{}+A=PC($z-b$mxQsWqdn-ue zxc_`r{b5Hf-_BtvMwyZ93-5>2;T-$a6XZJ`VAh(A;$~G4DU_uM5^9O1%@LW2fN1XM z3A*XL5{)~K7Jro`@$;oOv~uP57wgnI*qw$j?aL0gUKI5q!2x}4!V9AW9;18vrOcAx zpG1_*dt#Vmba_fDsx-jKqy56p?wTmaq#EVDVa&bCW_D9Gq~=XX^4d-QfK5p{&mC94c|gAOaC&W_XO0fMP+Q7qv1>#|hSAK> z;!Vl=PxoBO-af1!=i|v)VWPjkQTr(06>;t#Znchr&9~?6elMoW_bfu&N*51m4_Zza zse86+&?!CWjAXVC7T$V>Q>X^KY3*edg4?PjUY>W9W?nVK@qFOkNgC7;Fau6(U4~Fm zdnu_DAPg@Kcy?Wkg`<2CuE9Ta7JuA!^~CA04K?hWErfOrM<%9ccH6&eZEFxeom$;$`4P`H$3n(P1hE)SL=B1NFS}`W=_G`NJp6x47q3LG>cZ; zEYm90L?p1HLol`7@@LmDDY8-^g_Ff6MqOq0jqtV1wGS~EHlsh$O~X8K#BxqHX1`lG z1md|fAW<-*h!x9s2MhQ>$G_9DUtQBR#Dp|pJt5hJ z(E{U(ANdSLvuxCYotL?fz?U6=%JhnD906j68L879w=T zMO6}`L)BF$EQYFoxQu!);DthrD_QD={Ra|L$*w+Z3ul5Sy~*MGiYz85rx+DTWXj3j zsam9QD-~^`8Mx}3NDPA?Ssap3e?mhjNLFv^HhXN_AE_E+Rv@qIJr_=H4v!Xl?Orss zx8QDxkJHKFqOlnZS*m&yC|Z1oMWKX?iXQ zgrLM-cN-WI2Khn3ilKoWa?B&5pa^&Gz3-pg$~krLPazGwBT}ebTeq04A6T1v<{KUs4GrQ@HZu`p&42DPp!YQ~K!#S4=C6Vadff`K+Qok=HkG$r8kZ2x z9ZQRgH)k))GSM#&d~M;n)pLxpMFC-XeXyr+eBtTgHF7^uNb)N%8Ow?Z1woO#?;nI_ z+gSB#-^ADxPdIwZuoK+p?Hfq8W0d#^+v)I}>iBP}$Rh$sqrJgew<#Ym>jZ(5f#nTG zhO3!|lDMjTb_{q2+NCJhv`whL?{T^28UK^(Kzr6yOBjCtC{uSprcXnkOw7oVFssBLxY&Dys`Gyek5#b+^d%Usy?24nO{N(D1_!M=3 zvzub~7X_x4=NwfI{{j4XloQ9jnT8N`pWVy0+r{!}GgasIl1kgXlMZ+35DrTO##Df@ zcMLRfp*O=4Yv{mMM8ti!i25*_v^!3axXc^Slhzw$R$bhhawe5!EYm_@=C9 zi^xwh#{3k!`bqxjrYx+JRWv4@GTJ}xH0tMs*kk{TXxqbI!Zr8&?wE0fd=(c=x7~`_zAsF zz~g(&xxq=y&lob|Kn4`2FN9KUG(ACVRd`(ncvDRcxn@~pt)6_*oApgQ?HOIp(6k$2 z-Cz3&{EDGzhcYVG@ebU=72!4_5u7v@Ow9;Y5an|f@I( z{a&jNOSz?xVepyyb6UE$(PTR+(ScIV!tpf0dM&LU`11$c-x;fx=R@UOF$7$U6{W;VlKLbOOAclRC~JV23}chW4eAyHfFZs9~Fhm zgJvBHk|Wl9bJ;AY6rAfU8!8L`1BEX7A1FjvV@RIen~8Uo$Sw>Dh(|4T+>W+xWdCj= zFt<&N&YG@`7r)j8i%RWEauK=CC<3y{3-g(qVa8{YFIqg;3z`*0OkJ0mD0>e(Gv2Ri zke+zgImcawKDA;aqK{LQ$sB&w!8`r-E!gQrmHIk%->D9G>97E!VJ6WHhHUQtN>S!f z15+|Pd(28UGoe{-0#El|?f|Ylrzuw~R)n z_<6BN!WSHx8(w8zS^8jiF%AE=A_Z39!_l6mRL#=kS2VH&v-)QGhesd~FzdjzXaezWWhwpL(_2Bm z;Wj)3WH#8me?xj$T`I_qXW?wkXW0135LS}dta$n$M}s5jc4%>OX>d^89)7Png4pVD z>B{z}%V@~k1`JX2-Y1mv)-z(U^+Jyx*MW>6G)nzN%~QIaUOb-w$j6`{)Yf0A%^W)0 zd0|(yVr0Paogtlrcy9yk@8nd?xtjTs8ZzXiz5%@#f1bG(ilo3*Qc(MEF|==^=a@6W zxzHhOqQ&bA2ERGuqE1u%#fg=QP6*SJUP_Hi_7i^`_`le$2;LM+zGW@NOCrS6QhC$C5#h~_? zG4EG4Ik3L1mav+S*To}_!<3HFRy!A^q_8ZG%RcpXlb_=L>F!CkQRNcbn`SiyEuUKD zQrYgS4L;#IWx|cRFQ%C{hRcH@-(LN;_>1nDl2}Hj19kc4D`55J3MoXjI+I_f`VG z9KPS%2P-dnRw0E`vT`tpNVn6LcNFOY;<0y`wcMzKQh3+K!4KJ;1w%12gwoROpbzD6WTXALk*;JfEo zvlqGUhzfB&oyJ`0S3P60Jfz3{Wh76Q46Ua`xiL$nr1@y#Sal@weqCjkQsmb<>$MMg zNyb5ZSA9%|m^yNRRG`B)Uq5Ur*0zG$_i8C*GS&C5+=EDz@Q^~qx0^R3Nd|TcB;vy+ zWj&U^C3~;+gXb}c^|{ww^_@Z)&&FL{(Gp@4RJ2*;d0A-Wp06M=Z7~E|? zJ3I;@5jZ>MDr)(f$`)0OeZLHxXx;NPi+4cGX=uzpRxmFc=)K;vMwjad}6YSye-dy5%j zZ)(>{>{+y8Yfy^U@BO~_A2`ps_kFJWey;P{7zrN)WX~Ycfob7*&e~Is=P+X6TmrwsxEB60wj}U!MiYW5Q(U|M%Q4 zK_#6(Di=)NKDnSBndyXDH4CFfmo}~{Bb<@-iPo2IhG^24Xln-2$U!F|R>@D$uO1lU zE*xA!S*{1t%Oyi1f*6`J;z|WcBHh2wv!L&$bdYtdrgi|0rj>GX34J5<

eq>Ts?jxWY*zCdY`|)suvn}`noM3zxR2!h9xH_ zM@F{k*>3E@q;5=^%GLTD=>J@?CgVwF$^k?oyh0%HG2^kB)(2O;Wos?wJpW=jl;;zM zcqj)n_gMoZ)?u*I^BwdP z#E%SY0Kna~^x7?kg+FvY921ZdGowXU*shBtc(*n5ptfoDer{O2==}~^H$GBKM3exY z0e=A3B|?sd<^$b#ox6mbE`!RX#bfaMY1u+uE4YhZ;g`?M_8p1WGB4$qI~M>3Hi`;; zgQhFz(T}Iwm^}x(Tlr#mvKy4t$A?jkxqo$o@H?vUsfbOxqHfahMc-Z*cm8Gk?AIK@>FpB7c;o z21e&ZYU+}6=Va3KEkffL6A$T-wACw3f5`c->Wfd1ldLlM)`(*IW=S!0F_Q^IoXYd( zGu2m%bvL*NMO8G4Ix_hck?dj!1{WPu-VO7R^oq6xeZ(9zKpWA%%3fU4#~V!MeJxI; z{HZK8&VlD!GR~Hd`!Zp9go@3}uX>GKyyYR6M+~SfF5RU5vZv=Pw}0OI%CFD+ezFZ* ze=_OC8Qng`WkDN7#ry~|IVntB{RnZ?4gMfOvGm2U z;is~T-_CT}lUfza8y#b+U(u*<9?TDa`x=#xvZVUU{Nnu*&drr>cIh^V%s4P?rFFh+ zPAUC6u*U`0L`0a2%zyu0cjXQzc{-QcE%N|Ab*!RCts{Q5Y~my>LJT^Z8{aC{^!p54 zQp;}b_X5UWzgv6)|Nol1TgK=W>1-);HbDJWZF2=39A>~8Xk~^8-y7pajNzw^DiS!X zl=cBn_2s{VWW%7<#*3^7Oq9#=TNeC~kBF$EZyfjX>-5he>WyRmKe zcQ=L%j1a(sZmK|wB!OI(Jw%9-aEvi9(_a=bZ%PfWkRip z<&VXbz>P=&^os(3AJLO?eLY{SMRP?t6g^OmAr6lws2dJ|=HS9jo}lkFy=5!}+QI5A zTpPxKJ>v43K+P+IuMtD@$$zd}`d|FH3~zCWsB7+oKACE5EfC9A(z{IGyQy;b;4{ty zyF$mkhp_vt-B@Km(9n&J$?(7Ss+P`n*Y}0YP~NwsdGAE}WP7+99E(=zF};pLgI$Gy zKAwMf`#HqAOW$dS(C70$n~MbLaf?4W%hYEy0`PGjr*PTUFcp9Ql%l+M-^lw+%uj@E zs&1<0Y%{$eN_CoJcb1k+LLqJ_C7s^?R5^L8!f}iUz$h;UvXCPIwb^7cn(|8m~EG@d|QI zT(vcZh}mRt23w|8X{$>%_6e-E(gZDbHmkCFCUC1Wq6aFN;CHu=iyfYzV;-S-=+L|0 zbb75?K(w^zU@-GX%%PK1hE~K4Vvbme@A3}Y2E1?n8JCX ztk`vZknPUB8r-|ovK%-Hnd46)s*k-V&KXA&to_F7zSTbfw2fiS}lCeF@I$m1&K`fE;i>N>Wo$zxqF^!%z(4K1 z)?D=3<{d{eRcW&UA}~ z7Rc(969%D|)p#txLycC$_>-UVdg4uy4f$3Y`l zBC27#PV2YLNK^*_rDYo?xVJx@xbO^w`otsUF! z6yA(7PI5!zqANc`JDx%~p>7&W8I;__Xz(jMVqN%!8aPX_^cftcss_>c`o1S$`G6A# z8{d@nXi@_-N;7Nf7}5AHG>Z2%xvC^nVcin7Zh6bp0Wl~5(}dBO#ezR!Qu_g~fRe1} zgnJS#S_6kP~06^KO!p-EoLQS${@Xq^lI>lgCeecqT0ZrI=2LQfn z?{RY$uPiCUM=Jm~V}bW|Km%!X29;f%=bq<9_Yl%eU!9u(uWv=FZvM0brWu@9YTvsh z2t|2|{r4DiFg(9?)q4r{36ifyK8Q_F0?R&t`)%)C`H5$U;qMcz6hv@1Y5#>xw>lB0 z@1sN#QEHfoIESjX9yx9%{tLRPXsGmx5xNK$#tW@h0|^z%m77_EzEM-5i`)r4PhM3BcWLLDy!Dx$@d#|H<@6pcCMa z=lI2Dmf5X*?v;^4iI23q-}<^q!_Q1}nDL3;2SxIM~c&X+M&% z@MYeRc=ZXQx-RibWN!aTsUc>J751nuI!y&bk8Z=--&Qiht(`gVU+hLw-|nEiv&XE6 z9s%4qO1QPE@L^J=>2Cs1MmUJO@b-JFu|jWZ2NC2gm?wKzl4X$29xM+zI{0HN*_Z;d zlXX!igcBYw4=795EQQ@pYpFw=9yWLk0j95-sT&(hmPrnv_g`uIUk^vn)^0Ji!hICA zO|F_Bisx`$Lm=*q=*o{L(|f?ojmp2mdgvS-6m|V!KM7v3TJ^$=+`0s7ZYw^!VjPbf zv(cw(zhqTqr-(Lztg`02xvAA{8`~$rxnl7vT~zh+@qH zr~nR5@IsTvIDdi=?MYCf3ws3r^e&TTPU@TQ%8D7j=>_zDy_0~ud!hYnoy0{lda{mM z6XSm*&Z}W|q?;3lE|LV^#7`5+O3yw*moXJ{;E4!Ne%Jb;Di`$z4NqfWE+j-+q-TPo zjzB;iu%^&IYnc_nJ|W9Le_xQ$xPM9R2zm&lo9{1Pn*REXrz4EJ?Nzo=3v&R0X8i!2 zkh2&4CSLTtQ_}}lbBRh0#1IvxIcbh!LmsoPOgZRfBva3WpqU}dc*&VDx@iU+LWUub z5flc_&qqBd9fEPU_vpy1nL}iSVQMTD3?7G$F=wJL)<4lLWGzJZ1N@{tI&{FLGns>p zX^?u3dixMDJC2X@zF}BEW#yO&5T$EnjRpZ_sM}iLSwz| z(R{67p@an{b3c z(z3h?>X_%uMhYORLRDvnA()Gj%l-LV`Vm9jxl>W|Du_b@f@ulK#iYf)9Z2k6A@4%& zOrNth4hoLJa#WaXnCuLyz$MHpN76uPlhJn&LRkO7JjCU}HB zoBVbw`n#pW!u<`s7H9I`&7VK_Zf{RcPSihu#s@rhq8&9yYI~7CUVtCvdR9tjMp!bBkZ+2#XqW7pPxjO{6OXC zOa+sDIUDoLhTdWAGbpR&&DJjY->_zF%0U!6hnYOU>x)Z+*d(un$1bS@2w#LjS6OQWT|s3$`%5_I z6h_lDGI`k7u(4AUVV7f8fzoQc2hbqEtVm36fl1@SC`BCOoyM zg2!OFiLHDd*12&w%baCRu3ZbVjpGulzA++<81CAC|zV(?EVwaZ&5AA3Q{rQMq)p9}+`BwXoRPsYR z7EU$<4pWD)QhI0-D7ewwjPASfT>R^xXIF1^+g1Y8f|eM@k}^&j`(X^V3$6XJp_GTE zSXa%eA>5_jIaW1{L!+~1F2vL=LeD;%8574K6w1baEEaZt{U1Qu=e?=8It?nxG= zTiIT=aKPD&v#bq$yPCF0TJIE>1%7fqeqzKyIQrf+tds21ZAo@g{#Ee#L}#g+{o^h4 zNsP!BH-L2WbiOp`H_M7F_lrE=4u}cCa|NYOo~JimV>ub%A)Tn``=!?+$wuL~778~1 z&VoZ}(7#}gpb&T`L^Tv6pW+MTIe(-ETq+}G=iL4W2C~;Y)ir&heJ7(Jv5dg+*sgQ% z;^U?Dn8HUdgdVyMLW#0wSmBC{r3uE{y)zg0MX%bO{72>=EWS>?JaO9wA|GbSS1lXY zF5+Q)ax^1Vu+kk}yF2eu!sL`wlw66|-jwu6Ol=!8ak_}zFi+nt;z5o{nD$YkpPb>% zeos|Hy@c1r#Rz$u&w1t;yEbuJu~*M1HV*Q?m=kejWOgk1C@lr7xp!1WF3YS12hMn^ zKKi?vOHnH4Kpe-Qoe!z8!#s7gCWJQDCy&HlE!g`|w1(_nZ|lHSkrdw-1IE?B7}g$K z7%B45Etw`>xNm@Ij!J);2$<|B$Kn8cC#LA0d9Nb36uQ=N_TI?pf zy`v#3=++M_sh@1S5q&W_e9OMl2|&7<^e9N+fB;)%2AUP_VS0Hh!e@lkxp0OkLvm5G zD8`VE3=fBoH;{VgtvBC{3Y`L9_Fo;kI!h<+Z#a6bXNW0~^u|mfq0*;yy1vnkx#N$} z3k3x5x)0-Lr?8=h2f*o3)bZop3|Hxh_i=;J`;+o-tS#p0;ELUVttq!+=YFmjdejtr~=8A6X}~Xq7Mb4rghFnbUwBT z+LFay|2@lEH*M{#ph>fPQuN}it#urk6HLT3}Nm&M=jBYzC!paFoIlMK)g~5&t+WhiuUS;n3M-tsz`ZrNeK{jaP zS+cjF|5Li$|5N&(2BmRgG&?ogVk|W==P_TB-R-4*Iy&v4-?*uX&*dZNfw-Aodr+Db zVlkfd9sqI3_!+p#@G_#I;)W%_soHbnz`0tv4cL)EwbXC}m0|#7h(1x zUxF_dpk|2&A9Wj2BB(Z zkS#IV^t*%4y&bF{Q3**bE2Uq4NJ`IU&(8P_hK?({gpANm^24^Vb0AMH$x(<=dv4li zH1Py4rGNmW91eiL%)7xs%O@ZQy?l52CK z-qOt9c1RBKW*n)l-04Fv*A#5&!B}FsU*%6eyT}9$LGA~i}b}=`Sz~Q|BCQqd3 z*}MYG@P+r&51|4PGX|fgs-j{Pzyc>g?=}78E(w|MKDx z^hG2}YxAX-Q>N2s*5u0!*51cxB#K>E!hlbz?Imb!&GO*)uKyX!j~aC!Kk3tQUog-1 zRj%NoA9Hg*BKJ>{I_CjP+{PzN84>!o&TFQAn4x>Q>UgY}qa^C3ipJ7#$Ljprp+UnN z0Gaz2e@W<7WI1SSUeI#*9&6q1+7b)u@M~R-FAZJ%{+{ef){TqbjR)=@a`qbSZ0J9a z%=9c1%L&wt9o=GoeqH;Wz%S>08k+sJg)W`)iGL50W68eHF^iOycqDvj zsTg8%cau01aLfYtagGazC}R$htK|E=wPS`6Oo3}J5UHpVjq9cEggaBW6ccJ~^A>1#=4r#bl zUARmgL}For7r>gx^}g5~o9w2)@c`m05#(N&AxVVyjn9z@oS|ZC#?(cKkz(n;cc93M zNw)W18RH;M9b-_lxbM`^zHinDz?1Bkd{&*>4$3Rr%#JMm4r52g$_Br`y}66Mh*ghi z9*JOwThjUQN#!iEEmnB{GsaO?W7d86&V=hI{%oO_YZJ)Q4?wrLl=s8bElRTT`1tI*`$|MM-g;&k^jskbs^o3E1dV!(PyJyLEt_mb zRN6x6(FPqT*JOqQkl4C}>ZT~0eUcWDoeUoQsD_NX_GQvftmV)|gx5Qc>iT;>iLR(T zdy#Rq!TG~HoC9>(Gk2^rN!GjkqNB3eJaLKHa$V<39}>ljmMTTydS{m87;OELOQ*nZ zG)tkg%!&HvSd>@T3ruU~I9WD|Z@kSx0Q`E4ZgIi^{@*vz=&Z<6jQ@$;+&$8}ja4=A z)}5`g?d_*vpj-kux3U=vmQD-?-MoI1QDhHducg z;+uopRUYG#gx0(iW@0>^T)2{bd&vKPy8yLn1y#mAOH)Ujg7?87oPhHO&{(k*>r}Ma zNKvc#7|AzIYjAayx8|zjAhdgQ_x_2njJ5{XFeGNw+d-%s>nW2lwhOJPQW5YWnjNH7>taqv2Tl(ZFD zV*EfaDsbkSk2gRw415;;(2SNsZS_#T($nwbm>>)IFSjh~*vjxBYScFfu zYsr{H{fipbVOLr}Hlxh7xOp!Zs=i+9HJ(x7+jHloi4DqUJj;tn7JP%;$(Gmn6dsJ| z5vM`BspaBZH?94eNc*PSk*oS==+nQju(5^*&EnM|>01dhOWbm{y?7^8O~7sIO0tvZ zM4lHvWXPv8IcqnM2%h$AZEG8t8i;@%W&7Pticd*&_3Gz*WSG@b!iU?39#LfelslY@ zeo3iC?;)L7_4ZNe3pS>6H%7F{Jpi*{*|jQ?#qoHHZiV1W#om1c$-Weh60U%VWLf_} z60NXb$EU@otZ8(#JAUI#Xe>G3h&>dm6}KG#;4T+EHjVw>t_nI*@;9IO%&KhDrRw=F zIXKze6=#UW?b2^($Y*TkttW4(sN34>LIG@v-y_G*Pn~?jJv=rR&S_g7FS9Nx9c`{Z z3q=SOd%VIDqs)=<|2AY5k#>q;DKU1BDx8pZ@#m zM2+`L{$Im(#;_uY4pPJN0Nt$aeRo4zL;fAplJeA{uj{>}UICt#LxQ=3keQ|hRrwsx zZeS`fl-cw->>PV~S`$NjZ6l#p^Z4WP&>g-=aw*<+l(6RLr!FX zXX}IiP;;UC2Ja?U|6Y{DxmqL1BIpUfw|3~!%o@9-+|o^@Esw6(nRr+Ai%`h@y|r}M z%@(pHw|X{TpSuX2Qcghu|$E#28OS4K_gaT-1l&(b=2vi;Q9H=%6 z_xGs;{d(+%UN^3(IrddOJfs|hls>Hd79{ID03k3R-wr4RBuWHd16!Kg&EEJ~>1}Th z6bt_)&c4-lxpw;sCij~2FwG7s+OQSZviY6a@;86FxeOi$08!QWcxM&koUt)lxII?( z8*j-Ox6mzLa4l`0pn(aL$gg_xzuBCRccXEBZ2|jwq@ce9fXFmNLgb&iUW@&LbKjn7I* z^&LDVh4j0g(V_j*W)`MfQGh6nYB~i1P#oB9E0eX7rtEhN8OmVJd`M_0`?2!rGjrM+ zRoAAJWc28T5~OZsME^PIuyahisVb*e|LcvZGOMW_mzy_w`*L0a%0VB#fLT9)huA!> z*x>baPUfJEFos+$WWF|25!<)H$=Vv;vQs&iZ>@MIyy%;4+A1l@bP_oytgSpupj)Xo}JJ$KM; zpW)#XlAm^^i{JA|ofB*++7`YTK~&W+8~HSl9v7OAn9_{x_@3>TqR+v%k6nVVps^Ra zUx1+u`>=jqpR2$g=YJRiao)oK5b-A@154vqz(_NY*0_O}$(n8q9@(-drk=gZR@`VN zXAX+h;s)QtmTv1;|D@bSm;Ckt4t?BY#@Sd2(xI&;z8btH&Ki#L9{Tz+4U+OBxmSC_ zE6zC*+J@PEFV|s$#Q~Ipl8Kx0Y?2MTMGEHRR8NdRaTS#ZJzg0%WnSB z2zl9Tv;D8#>EG+-`ewGx=4lHbm5^Qs6J$sDgh2AhzWaqBM%9)<1&gq{1%}e}JAI(& zq(7K+_LM@9nEzFRL21Z9)aXU-ZVdT}_{TTLUh7mHl;iMS4}jdOHPI7`E+mu|d3klG z)A?^sF9zdd;~0UH<1jY2lj)8(&(AnR3L5opfI5m~D~hyxKB0jg*w3B)XlR#jM02o+14>ESb;a=@RKL6FsRr!tD{7nj=K;%8}%$<|E5GDW7M< zpm0A&aEFYxL+K`eY(~A=Y7*G){X-6d`2;Dc8Uf;fKSa!y#ACSIKt9C?~XfW5rCLD>- zki~8A{t_O&h6fk6S_~nO&*cMje9j}6a=Tw|(Zrxl);d={oMb;^?Tqi|wBm%H)>#1- zIP0F9#=!c?w0@s+VH}- z2<9MJp}!fs3wF&;ioI~BlIZv9YOEf3cT!*Lvhr%po&cUhYF}Sn)%3W+NqCb;#&+yD zF;*~aOq>?Kk@9A7K9}L*wdTG9`je8_81Q1nuROhU7BGO!U)+dk)el&+7tA&d;Qwnk<>8~9Oy@fA zvHv`h9;>)2{gcstF(u5(oWe}1bvXHw5AA?w$tYns&^;nteV3I5xwCP1( znvq63^K5YID~?6d9Ji+~2&EIPnK>r!KP9yBSt9i75M3fA7Tnu>dbK4O4Rs+-Z{)Ng z_MUutl{lS`mMBlZBLIqq%rVcAI}M*pKST^Up9(Z>iIKAM2i=nqSTGy|#(Ki*;|-xV zMVoaIH)no=ei4M0ARf+d2V%#wEkbsolA(~luf$J)7U&b1epq-8he(7u&=y$*9#Y3? zlXKAV`J45W2?}oUjjIe^J2PxHdqQAyQcA+$`n^2WbVZO)jTZo`7v$;$P(FB>me<1_>2Ok8j;<3%ffqpQrPu zC{}bU0WU@nFJbl6NX2n)+NW*_L#zA0iYz={_&Qsc`ZT$` zVBiPjcGf0!>}%on=vXcT^Xs-zKQe5to0Q{n=~=&pRcdN z%6{p11vii~DCEYT++OTSuIyZxdsORwX*D=$*HAO)(i4%`jLwn8ex~7J7;aLK)G=4Z zMJvayPPoU-|IqeYD(%l5uI8vica+BmAXA4@COTuSGzFRPh;$SR;FF~wx-GZ+af6WEL zP;B6XRH(QjkHsC1$IWkS)gjDCF~hl>jfW|)KjibD)4ymG^6Nh>>Bp`tBn7P7U*&?{Yt@ESkc01DS`a<$Byr^{PL%JspE!#NL0b)?V8tX4)= z#9;JqvIAoetHX`ryzVv%f8F?5Q z*`QBb<8M4XuctKPTMps|kGt^rDUhqR>ccP2`2rdqKm&sVs6j7h zY`(EsN&f?fqx#~$hWL*8j|(&L>MB8&t*6=uRQ`hEfYFjNW3rsPlQA7gf{>dGvZNtG z!m!$BMlexQ+w771o#1#DliYI~kEhB4x#^;z2e?e;Rw4cHd+)v*+HBQ$olSOW+6QBW zc33N9qHBCk7(S!N8Y<~(WI;C%jKj7SM4E@g45Ri;Y>nH;qCg|xt%MbQlx*iX)N9+ow8@^Ci3Env0$%;%0^1lr?IKS9r@X{rq8%N@|oT%V}Mh2#1Xd3|Cc*)%{TA z^j`BgtMaYnsGK+FIDeYm8NRC?H@e%y0gsgQxIyh*&EOm{Y%X{_D*182+m!3%ZBsP$ z6M*bA)#5Wi60Aqp@)#-YzqpF*@N&~()a*STdBj6zRiLiNv)a$9pTTdy_r`&}=L;yw zNag#o{@=S`2i*(tR!tS$F?-D+fKY}n!4gf8s{6%~J2?klAO1$Fs>ebnv-paP?mwe` zsg45X2m3BFsxUqa5GyrBVhE5$*IkCQkiCso~9R7@j%LhH?Bdf-g{R z%C;Qu_FjJ42w~inn>*@F;KHO5s zW4wCfTc*o7;zu})klV?Z#=JJumn^_hGIzbg+Hd8+Afy4Dz;ynj;-PvG=dhD4|4BH0 zUGkHFYt+FxnERo~L)HWGeGLl}$H+(Rd-}d&-pqRFHF|it@EA2J3N!S-opgUIK7gEk%U0a|(KfEuqhQ!;73%CNwMuiqb0+Gl=qVI~y$=2s$|U+YZi z=cXfb{j7RmHEBZI1JtK;6fvn_hU_-U+C9O~{f}j3SxAoZzJCKLjhE4o`(5{r zUrB3(I$sE8a^>s<@v17&*vpVSeUr#?aX%+6)kASF;q!wwL?E7(*V#)o*D#>74gWl` z=JMBwCvA*ESAm_%;%`XL#BTUc7>o}HV*Q#rYM@WOJ*jC3&e|7P zxF>Chy9XgH0%*VetT>8x;jG+-YJbz=Re#=B#=Q?JYm(l)O;>r|_^>jN&8>h`>Q72| zHyL{$dy_EH>D3RH%br@)06DIvkmPt)=w55QPoT^S525n$?q~?2#``IEse#^k_YqyT zBjUTi>zH*Vshv>{i>uvaK7hm`5-H=j#!!UdVMHc{2^iE~iL^KNByXyx@SnYT;doY|=o8+xphUl0V~ww}6#oKQ?Q=8zYVHjZkZlNaul*^WI$| zZ*?D{C!Il&6Hr#PALR>LU(>@;y1wu#0&w-POvQpU$H8Ms@mf0Mj%`8Y^#>Z>SD}&0 z?v1Gf8mqWJhn0j@dvYI2{QHDBLJn#5%fHrm3RJZs?FG92LJAwJMoSxn#_IDB3NJF( zAu$A}?S>z*l)%H9h4$4kVQG>FY@zp!VL^Boj zW}`>*TGl>b0&}*yg$(*=e|o|ujO5HbrtN&|T7n@}WbcVd=)eP_9Xglb^Us{sB7uf4 z?>@8~>Wj5m7b}cgSXhwG6mSkdy8L`BG3iEtg1V&j1KQG;|LQS5fMis?&>?lvD zBSip}nydUi5HDsk=Ufh4eVA~{{2n=1RcFNsk616NZNw(?$%zg?8*NLfuH z5JnHw^|4iFOTrskwlHCchUVXbO|iD5*;%nqs~Gn>G`~}r243qi{c`-qp$Pjtt7jbf zDV{Qmcwem6`ALd~t9Z02Zfv)RF3CO1i~w*=07yrH{>80gI{H~KM|*DW40B1OQx(JP zQMBpi1lAT|V_>yCuqGCm zbXN@T^H2`{Z3(=#5^~q`-&m2=M@Q$0EGfQ3V@2WZGM_6w394 z67JQYPl3J|jhwEEc=zkVy`S+afOm2L6Rrq~E|h4=qcSnm6+|nmChOVYN-~qchh*bc zY_;|N7;rN9obo&l21!6R&1g!~6(u0`luN=ScJwTW8 zMM^$os`5{ol^O^+v_cHaZZhw`sQs;kE^Lf=%)b#PJCFy<6R>BimJD|SC-eeyaI1E= zDkaqRjXupI=d?{U2jVA&_|qdW35U4SGEQ-Y<|H{mGyXoX;SfH-Cr0T+5)*P(&8Q=H z@FejIktnC=qTN;nD|5T22@;U%HgC&bIZNt!dq40nW)D<^ysh*R1`Wk*WEobO*=%kZ zyLL`AWU5QXY+xN~DIS?h%bCShb!s2gNLiDDh;}OmbSPQp{6~Ok{54y&9(9Wn3j2xZ zea$i|hS;ycon1V*5PYj~;tfgg#{D3enX1;fM#F6AYP9nAYv|{go1dzFr(%q7*&;wU z5Ws_%g0OErFF4j=9AZx@f&N&!pDt(5FJ0($>5?c@b)(9+?Qs~j9FO;sa!jXN0&Q^v zKC^hZm82eCnVhytq`!hEoOFJ&K~`}<4|-pi@Su2Bw@>F_BJig*#mw9-d-t!u6p0*) zPVZ)>Mm0NT!7WJSO|F|gdt4~12+H^dUEno(1Dr9dY_-na5VJ2!IY)Rjq$i7Ce3=)Q z#`a&gKM#8g&u`?z#boKkabq%YhZh@uBe*b7RzOMVCmj#II>*ZUS$&_S0ZtJm2-0Br zvJ~*I&cn3ta~vC6-zG8$wAeofFx`+ZH$jHPS#K^~h_)RaJUIX1#YN;m6=IMkQp9*Pgyym}QKkO$xXB=pbzovDNC@s$W2+B>Z^_d_g%o`A?&dcCSC=kg>^~g7$4}k=f^-FE7&5-2eHNepR*I8pheC8i@`+IlP#`pV&9k^B~y=W?_dA4mw<~TX%d-#m5rr}kWjylHTh`>PagQRDf^U;4@ z@@{WG_6rM}7u2l?8km*4Gh&G5+rMHHN8Ts-IFW~8qV!d6L-GDSllfI{zMVf{oTXgI zu@AD%1TO3UC!1y|W;8Jsp+-+@z+7AyK z^c~tZPyz_U?pIjnXtCf~>Ec;I7Vo8sV+fFvWq^y~qPuidG5!hakPLLs3ZIq+;!T7d zPE2)_# zMsh)i8K~EYE1QeR#qv0O{l_IFd>5>UVw|~W)9tWO0aKYqFMXkm&{CR%GK*4mpSMRC z-E$2NaJMvutzWhG%2kv%)z>mxK5qK?pm4r6b(32%Yu|EY^#0cyc5p`7mm`mN-y8Gw!;4ct6GmVblqwst+FU-e^4 zNYL+a;0C4_ZGB5wR-}bin61w3oOul!{*96mt~9w7P9DBB=bPwJOnP(|-4b3+PW zjWiD1PLOs(3Gn7!VOLnlS<>aq_5u-j^LX0ScEq7{{hh7!GLdKds*J2`m^G>IIIp;21_-%6O-``1wr`ZhpIYg*iDd0txl$`h zKt74;&f3Gk_O>nok3Vzkx^*BRqu$@|0z7F1#ETd$?F?`6|Jwxsl0WT4WkSi=KffYY zWY|-yov1mU-8!0^T#)ZygtAzEXMn z^S;WIjmb%gRa#4AzXz}ku9_}`zAD;+|K{__&pbpoekI9%h*ZYAOL4_K(FdL< zmeNliUiE8FB7KO**I}PvN1=WG4tct(AJs8G%3Of_ien4{;{$;*iZhfNE`=^$z&#R)gO+4h zLs8NxC@Ml)peFH~E&t2H30YJk+F*sUz4Jp{=T3JJDCalRyn@y4{yT^$MLVh(Xa8V} zF38yb0j@cu|9{=$CJJ*?9gPRVtBJeY@wgfH(e&V*4vxv*Xtk9b+3oTlJ|m2z*dP3v z*O{rsi57i;v7Pqsc+Aw}5@V{3GZbk9Yd=|Bd@O>fRjKw?Eyq-f%Jfv}YCW2B%5t)a z=pAhR`ldlpvXkfEg>R@>XWjsD^YN&>wXIkMA*N0D;)3cEf@^O*RU4Br?4&~4&GJ7q zeP=kE@B8<+W@~Ge+Euk`Rf#>iP}Hs!Nz@*(LW7vKYZpbWF0)2rh1erTQKM9Ddln@& zvFYRYKaS_+{pvpMah>ORU7r=DOK_H;^viT+FLWCRz1@s-;Bx=AkfeLdoW8tOblMEd7`jZO5_BTjoIegqs~}Ux{M46 zmPTA4LezS-c*_?w206CGHgW_6T3d_kdZ<~ZjBMq>#jl-cU%O4kE*i5dL;Fq$w+Lv7 zsM_Oxl;F1pMiUBsX)U&iF%B&U8rjtPhL*FBhqB#5wm;9FqY~5+;*q-$SMpzr&3Es; z)y*!d(0E$>yhJ%27aMmbCSYi%2&F78@1X+;mESLYg}=HF$Y+AS=HV{F#5Jn1JrKjS3w zkwv3QYx@DeBU)b*!XMd=`xHF((M|-$7`s3r=F*GU7B^QpeD}%P{sc|S^&1;G>dO6a z6uImtX|W!;$!C*&#KR^wM9`%*2Df#%TF=cJL0pqSSBHo*@Z~;e*}e?o6ZDs4BBb_? zVcjI<%fbhk>ueaPvcG#Ii&a0@lcO0Ur@2z!nO}$3|7O8XZ8G-c#{Epyi6&Pv9QVHF z`fI=x`|7!LLVj(!f(#RPj(MgiCExzdX_Mwi;{9Frf)|e4faT#W;*R4)%{m+X@ z1@@#->^BOxdC9EqU0t1e75&EFYZ(HjJrz6&`s>d03`G4SGD4w69)rY#Nv@4}7TKoE zHX;Wuo1Mdjh!gv7BwZeY$dmSC{%UqPh^3mM~3`);~9zUhUjd21*-(Yg7Bm~}l9V)L|CN$j;V#ydsq$(qpg))Hr0!`e)a zL?`e47edr!_Wu#}ngcqzdK&fX%u3#Z$jvRSUy+;g#rq?ExO|Hoh<7^ldNNI0kgkO1 zk$vErTA6a%xEkrlZHybhl||ote7_X#1PkElk^IL_^MLq0Qh5tCRIJL-R(LQ`IN>JH zufh;Pya`Tf90q5~$MPCb_-2Z49Nh3aXEpsvd?L;n!?~YzqK`=d+FY5&-#>GoFkrIk zZ7THldlYh&S1SN}7FxoCvAmifj_#t5rqb8wPDUHDl0eTO)b_Z-xa^w{;^^ANOpy}$ zH(I`otzz^l$P&tnp&PUi->|=1tiHYPX5ReX=4sch#B_rIFUv>fX=IiI!)y#>kPU8i z?IPZ%s-vKWd2!A$Ho|qdSojcSStUI*4xD_=wvsB4^@eL=V+QSFvX-9I==}^ip8K-X zmwJ!t@0PWDvI_(;KsZ~*UaUWpOeUO<{ip4FIr6o*N}NxLXC`c%rQyP%>9E9;n|=H@ z5WGnXtO^{ZtB!Ce>gg9vjbfI0++Q&IzLpk@3}bM~Qk@amYcPC^t09rUzX)7ecd{f8 z&%dWID0`JIaEC4RH|PMPuF_OU|0NCBJXz`_MbEzIa^w7(le+lFQ)RrJ{r*~ahg*z>Lm}c2U`i2gMm;uGI8{ln z2z+O7S-IJdE^UAJ&l22mM7U=v;q&l+K`KHpIYy>A_ZVQRXY3U-C8G8{Ri90e8%EC; zk#GSI{BLX-c{N9P2O=)ERsPA?n&ZCqDTvILQ2={n1J3N|nePlq%5>_UEI|!Cbcs@R zT^`Kl^b7V`A4?OggFH=Fof0@JR&jHHX<>F-9VJH7L?ePn^|rU`RqQaCoUlVfTQZ%} zLt8^#UVcmV_ow;Bt=GwYJl}-3QW2P31Uy^CpX?oXyp4%|S~ zpN8XP?M(U0c^w2N$A_OVT-Mn`_l*APn1}3|W2KaB0=kf)wOgKGM(3CRCU=MQdM8Z2 zBkT0J5-Ke4ZX=(=E+4u6U2M7>F^AnMx8CjPUOo!ejd+K#gV|1he}+C>?NP?u4!pig zZNv?$+iOtq9Q^lz4?WJIy5Ul?0m`0;#0_3z{Xz*zJK1rTrOLQ!J2IHC5oOXEQ(nDid(ru4vAK8ikdUQ9sHnAuVPYzOK{8z z$_!X^!)xRDdp-ZeRoWHNOadKLlrXQ{S(IazB8M9cr0I6c*G9%b?)#G5~1U0JS8oJ;ktEsf~nxGWM%bL z;?Et}@@(HtTL$y^bG^6uuh~3Wmhd|h5G?xHHpIpO@Q`zUntB>AFus&aol=f_h{4tq}Ru0ZJF$E0`&#fFgm=khId*5;cH8s=)CbxKKyLb=w@`Kio1u*SvFGadVf zp*5H1aZHZFa20=XXYHw-td=Dnh^@%9WN^&t^41Ormd#NY`dP?8I0FHaH*P-P_s7#TIu0i@y6t=ea5bJ(h!<>VTT)r=KnamOw4&ZQUo4M%$g z4Q)IxN6e$&^@nxnYe<#AZ|C<*&LpgWC{u1?COm!K1LaNbnATQ-&lZHHmf7pt7V|uB zvsG{syh~N=gjiY0kzefYO+DRC<=n*a%0kB)ttlH*IT_q-caNp_HQRF6GYL3pnI~Vv z^ejubtY)mDfNjt5#Hwc~mQs$g-W74L??0zvx>_Q$QxKa0g{*@MLh62_7X4PPb_l$g z!vNfBDCmkJqY*@muX^@K9M}CHHKw>QXeNLy@Q*hn9g0{6XvY+DBZ$}uw zcoo3JwbC&Oq9<0kn{G#dT-?fJ?tqDMeC@tF$$sS@0iaHI|8yogdWgI4u5<;DY0*T* zcvJU#>49UxIiyr7{q)8uUwl<$4byia!GUYK97-4`Ij zr@FnrECLXG80pu1On^YV11=b0Y_|bY;OP%ehPr{H1RET*6KP5X)XYwAUvq?MAw6%m zxv|W5K;eI$Cl`?Y{-E3DpQ7>8g&gks2~exWG7|Llud@Z-r8Ko$wWKe8+TO%)P@7ch zz&XCn6MS}mU{ZWY>6yi?N{?Y6(RJ=w8&mWd-Q?~v$NIBe6EdEJ{F zSo$B$&iX5?4269LR+rbwaOoP*f5i!eHnblZZtIizN2-$&6n9QHF?j(SpK*H`)E`jf zv46cbjJKVobJgc@Q*Dv`-c=?Y`S=f_$yGZc{?me_%H@sZ|2Be z`3O$`o93!eQ=Qj_!x|%JW^xPH`1x80O@uxF=#T1F91dTP)tmN>Bv!Dy$%a<`rCfS0 zSOfai4_@34PR|t4&~SLt`NE%B<9xs#z1gly^UO;BcR#rRslc?ySM?(#cH;vaOWc$e=tDvDP;G2^WM#(W-ub?D;)%~ zj|dQ-4x89$WQ*MWxzdDR zSrr769SnW@sj~+kSM&sn@(bTwvmbXEnh2bw>ikWY$2;}H<#j$*q2SJ$p(f|>dv#_- zi<3($B;0fw6-8PmZlysEH56Fgg8u>cBcBmRZ8{FXC3}#)qFj4n57p|T;yT(Xqz6RI zmQgs4b+4!D;O#Eb)9vdjn$V2V(?ng~GURvpTn32OsQak!ywDWpX)P&Y`8K z4NsKz)4QIGo*1xG?umXe0jkP}Th~3mm=#Q}HCrPs=*Gff`@axz4$=w4GKHMmpHjq*O6-e<9VPJK|fYKja>ozDlYf}k6Uv} z6HCM;^UW3m1Df2Qudjj?I;J{7+bgK>gM^w z4<1Pq-g$Zb~cEy=QUPvW)ToR;K*qthS0> zJOyx4vvli@Fx1b|{UgIfB^162#SOxSvKpcQ;{GqaTiJp?0#RN@YhUZ(gLhRNc>$>! z4Hb@@UScYV)Rgpt0;aQeb&)CkCe`I$T3XJPUhf>(H+bgj-p6l00F(70(7 zyT`H5Y9}Qm(0M%k?JKR}041aiWbsqbNs5-8Aa(vp*CBmW0L-|fL8PqFoF_S}6ty-D zSGrfwpaF~RLTq18-QmfG`$r(vaFFOvA~i_nDO0V+s46bs&c7o=aObKZ0OM7l!YQ8c9l$>U)!BYy#Zi`rKSs(nTh*BEhOwnYT z%#yc-YJ({auKkQilt1X(@qLcVWdL1#MO4=cwol;di0SDZFsRa(0lHtBpF5=SsdfEZTJ8qR=vY)Vm z%oODHhs`@fR^t>6pm?p&6hq-#NPSR_C%yk9(8l`L;(Z*yC-nW<_!EHlZU$SZ0hVh> z_}Jxsb3T9CA@h2}={WMc(D~M(3)GV6X6or`nkHD<(61H0x_-;!_x)8QCcx)Ojvu{0 zDur9k;7Yv708zsI7WGPF!h8I0{4I~3$-WJ!UAzI-{JzQeM=FRYpl=yd4>{4t4jWl; zPj`3uI^C#Sd=rJxGL{aNs{H#~HAELO^ee8VYrQ)Hc_&I!3m#}INF8zq;vJDJZTi|T z$m|vdVIqjBep*E(kTAKr5SHEk^hJpGHBzu&dGWR8DERBYxaUyYBJ)yW{CGY(S~OlP z?-1Lo{cGWCDe}LRbwWkqXe6Um6-f?t{!5qzPn$X~nkjyrdE-%r|HpWjf3B5hk^zoq z*|k*>yGv2;%SR&)r!5g%X{TSuF5cyEja1#?KM`p6aeX=V@84$yCF#b)$zw`#0ka$K zCRn2vWb~JtS56<&@4weRi&9*e^oXHz49H%fzXbu+e0tgR{(v+?x`A@5uc+tnYgYIG zg!aGgZTqS9>V(6y`5h6Z(!j}Hk>s}WbAzz8v;Qrr8W#**(pNc#TOQ{~Ca zyoy3)>0yGYdCkX2sShoXAKdiKB&^@I+A4i6zu%~WwI|oB@E|U8jh61L)u~#&`(?D| zl9u_Pm$@@F{) zMOU-1a(Aqx3RK3y&LH{s6Aq1<(s2`4U9AG!kZE%E8Rj+nZL$aKW$|NBf$|vc z+P6?kjrn&3S9HFb>$D&^1 z?)Iw~!~|}e^xBnOxbsy3jMx5h<@p(-C~w^c%pF z?qt6pH4bu2S8ilteR9sqqcA}wE}9qPqbJAvTxnh{+JKHm{`uu;zneM?uP1?0dnagQ zzA6o=5V~cyeZxHZ(-$oK&LU>z_=ZzZD@tNgL31}5jAtgm7~nxOgqR4V9x>XKmn(fY ztY*uHrRKunE@r7|#?{XiW)&=vV#rYd%Fi3G3Rc3vYVMX6EYRg_5D1>GvmGC6UOfPt z}K+6qAMK7|rUmC@fw7jKxq|Mzosmw@iyZ|+{a z#{!#EE`WRwJOTEOzF|K+$zBFrjNgdfaP0rmGJM$-B`Eb| zBAkTnMVy1Xvnl0GJ1qNv#6WzF?_O@|i@AAH%Hk=-Z2Q1l;@+v0uDzOX#AH?<;di&| z3v19_IEYYC9aj7(L>`(*BN9S}N_h(96J;K+n zxFgXW^0?vEGBIvx?{tq?C;3^ifb;+_Q5{>WhrFzndFQx)lk5hN>CV2CcB3*j$O#-c z0m)o2C#pwgd;EHC^K>_hhv73-Je(UCp~nO}8i@cU#Co1kFzBW$+DXOuSy+jCYe}5A z8y>qMGgT_p6iVQw8V_;Qb0JLMZVCn;!8DptlX1W;M!$s6eCmD0hq$Gk$XG^d-`0Y_ zAYZw3>S=X&<$@SyZkDub5(mG64?yq02iI_g&4weC88x-9Nvv%gK|4Qa$`P(t8)?Om zIX11XiQ&?-p!#mi0`0|NjgC-CqaGRykCFOetGNg zNB`XMZq)K!q@82=_^9jsZUe!Sn=mRCPKKRc{z_)}rBrlawdS$$(5vc9FZ@MVs`1w{ zZ-)K|!#n@LWAhDMso#E+UX^dZTysxMjnO@@KLA5%R1_F8JEst-URNe-~Rh3uLEIY|9$xX zxd8YVz8njm|B-L#A7~BhwDlDJgqntub&}*V{ z$G#J7wmA0iMJF$Otfz~xG?u-tf@d6E;nKU$3y&M=HdrCsYCR^Ja0}e07$IJ{n;#Zy zk4Awb&UQG{s)kV)Y0S=R?B!;sag*wsPsAHhFOSJM)||3v8QOBP2Ylo&(G8$U3hc7gd5pp83+=+IJ+QmH1|bh zi|Lb=#BqF9l)hwHt7HZ@5`NI`$W$c=%No}9_ouGGSner$$SE;kBqM7aW=1#~3mi*q zrtVi%&c(~UY8icFcw+w3bhkfw@+ROyUZ@Qc{SE5;GXAPrV%k#{Sov(W?SC9!LJkRSnT`1H6!tGVsNpsF zm|J=wUw0V(Bl4!eHEsA?lFeEaA`F#p?Ig&FNPF-)i%nIw(>iFa`z)Cw``NRb1iNs4 z2|WhlVHQ@RoU(l23uaVbv{3*p{tTPVU8Hh86MbzsD=+J1(WWKVAwtltL}6wTbbZ0( z;=WlgUD5pyWexxCWwYWWeq*nEmmW_muPP|)#HS5jH%@fN$;w9UHQanYS%xjK%9~^`y0Kw@zKyf*aelNI=o!+jRJJ!_r^^# zsJr|-{}L;2A^CV9yYiT;CLxX$uJjoGWLpC@uv;-5OZ0x#H`Q=?vED`EWpa}}e#k{< zS2w}GIGNh7tSnN_`^CkL>d#?!l=IVf7I`>UO(f#yT&X120|LUyKmzx`BJS)k#yXce zZ-WfJ`|1oiW*Tq>H5)B3B()Lyj~)}b^RX`#MQ$pf;#$x{I!_=)r}?$VKgxoO@*%&H zJ&xZNdX>-iFU+^u`^x9JBdzA_2Ke@-BtY4fF4YsV=&`#Q9&GCk8b(DV0oSo_5FMw_vPa9KZ=C;fcvGA)MEy{D{+fdUD0*#0Mu3Lq$+*yuT0Zo5>3s6LHHjgp zdz!w^#;o^BQNHPrQO9N%QD;_;?es)Hz)BZZq@_0&ib&dnr%DQ?KQ;WE@^pi<=V!4q z#N#z}D)p?Aol}C-zBR2_4mcDTcLo+NWDN#-(Yev!YIOo@Mf1^wieBXFSirn(aB1+1 z-zLzV{{nJ!&_Q&*xIA15tHDko&J&dDgGb)U2J9$)l{bR>zFG~I|M}4Cs3Ir}@LeFI zB`hkv_s%=sZrCHenCJMpk6t99(urbdtL!Vlf|re#>hlkVkeAg`<+EYT{1#XrXypA} z30bIg*{K@<5BfX#b}DLN^BP?A&3>`r*r$G8o|e|PRqg}o$s<`Y0Z~&$T`!lrmg^A; zR~_u6y(##}TDX+3ujedY=jb5wQ=L|EgeqtNPTpy~1BU-|!GkzP1*9SGRYzsPQ*B_& zt?3Six)FcL&-i;1xwwz+Cb0eloaq@_2RCSNlJS|vL$1?JvB!z1@q?*H%e4dPc4g*Y zOzK3cfW1U>d{+~hFi}`vxD*Swz}c+CmTfC`uVr(_R%#C8`cXEro7HUCX1jg@$Y;7S1X9oNp7?N zo2%z*At8WEZLfmAp{2kOf2lXkKI+t2=cx0R$z1TV!oI=(qGO8~eDk9qi&s+hcA#38 zPZXUYECu*s1apzqS<~!Ex3%}2O{K||!CdAXmr?vH%tSW@L+3eAn{xFFBBT%h)|Vpx z5t9TF;mner?d%n|o@-2vi;n0JzwTZnd-6XTT ztq^=3KL)&U7S%w0ffsBZf3XKwYe4WJWfzPAtF2SA=;zkL2rg5trOlNj*KN`1Hn$v& z56{V~nk(~Pq)F~wN_s0iGs?dYCM124a4C)J`bHG=aUm{cDtH%GE#eQd#97a2DZA}J zVyi15g%6_#UFsLoUHonX_b#W}u%8;EJ|~ZVnlQS_cCx&3xQU&Nq2C|(K|=prSONik zwVz)tHCSG%c4yObN3@`H*gKshJ6%k3C_E?tJ#pR~q<&LQ55WtYIm;S16{hwc?2WdC1Iy2Echoa&X~U(` zUmf3DFsYEJtM%d}AGgfKC&XsfEPxNu7mp%j?s9|^u|w7_>(KQlKRz-`Hx#c%#ku$y z$RKq4BQkCt(}G2!s9_czd;^c`njGY%Hyj=sB~l{TD_po6w_=EAK?NyQh?(z8DZ;So zvG*j%9K^h$=Tz^Fry;M+SyqCpRcnWe5S>Vjp@cBZ5|4M3V3}uJI2FU_uPE9)@59u- zfXsv{<;>}S<+?ohZ&4BYAc_4>2M9e=u+$)z@Z`PRg+d2j))qYjv(F%iuErS<1j_Ks zd%_i}&*1{)Cn~?zM9Sd<@L$juZ$Mn@A@aQgs34`{prGgx#lJ%3NLo&t7uv8XZ9FU} zv}aV2F~7m|L=cuOJ)LKQ6899Z^Ap1{32Ibk!{MLRIHAO-X;0FImkIsq@nE)T^pLp>h!7M827qj{m0sW&xO7mkB7^oQBycL{UXadWP%A@ zB_S$o55Ps@mOk@uI-~$HtZPkGL7QOB`YQv}iO`I>;+Lovy%DFw{*2z&3ONR1(Q4Pq zp@mK=)c3Vo9{pM6Kx5ixB6T zpIYsKw9jBgcRVy6TZL>{F|;=1zP~{_5f@`TSJwwGIiMl&`kPDGq_HLK(mS5z88&?< zrQ|r-EI_^&YijoRTzk;z?TROqf!f2*Ku5b>$Py3wJ`c{7bip0QIR4j|06dK%vPFK) ze@EOTq`MQQ?gY0Uu|Q?f)o2Gdb`Om_fX@f>bD?RgRVyjZpC-sd@zD(3fy$tzu^E?D z#uY{8kQ93jy>{*Y{`2M2GrLZ#aJ0U?0+%OuG;WALmW%JM&Uk|%iyVAGjsvLHrRjg% z+3|Ld%D4!d+4a8bYv0;?^&S3-h6rSKRd71FK95?0{JyTN^34mwQsU1KKn^gh^64ej z_<)4OjT5r;hr$s@QP?|c9r-uE>v6tyEf+1M=Zg@8{cwCd&|Qy4XkUJ#f@dBz+T$w#2^(s6}sEzPzkL zsCWd2O)eS@^QgLFmL(#+{AT>Tj;Czi3FA7u)9|g^4pQBDetIRU3;~nCLthPHS_T=+ z)yAj@apA4K$RXZkjIIztR?B>Ym_-|M4W!=xJ};19&IRlv4~u6z*>y9opma%LgTjb!}b67Ig!JHT1wvvn%k6Ad!BHf_dMWn9sV%bWWH9dIz0b3JK%2LpN zluz~S6e=6Z?d(VX*8#`si3z8}q8KGMdJCVZvQu+V^j zJyfp~NGqULHG~^QqU1;^S1^+H#(h3I4eGAZcW@}ntHI`50sL%PQ>urq?RJz{&ys_x zxkUIkK}^D(k+<{dFOlHl%z@Y1Wp9xP|Gi0%#Yt(;X8QP7(y^SXzl(9^H%#fZ7BsJ^ z4TX;&uE4u*hbUHUXur=Hp#-f?%<^%C*5wRrKPP)~$MGrzYf#eFDth9JSB;aEW9}pT zfS2D3>)P1nL_FyTV4#A8nm22%i^i=j1A8~2vEBnnP2vt=Qd&JCZXTdS)8mRuOQW- zmwKeZlwQs+Xkv^z7>S69^rT@HA{H5D3J6-xgw3p7>uE}K$`!Pvv>@fX^E4LJ1%C<}3U5PbYx=4qh3Y)Q^%GtpHp6$hIOgJP zm}{~+?T^6G*z&ZF;3~fX8kX~X%NN@H(HE&7aSTgiwvynuUAQbuZlei{y32$nBMei) zrKhDl;#PYWRh8*KIPGdBSBPQ z)I5d^+kdZ$e766aK)$AtR#vmu-|37E88iOw=|JLW^+7G%!0*vn&tyPXBtDd#I-atq z)cWO+w?xd>+hrP93N*-&{41K)mhqia8AU-dls?uYXt#4<)7qS4{--!W-GJeOQ>k@* zuOR{pISQptP((}JkMw~<>xRMU9nTCiw$$~k8CNHzIYzWD*EGx-wow{>e@f(|4F68N zfc%?&4k?O$o`#o-5TGM&!rPFYjEU5UAldBP1c#6uT-1^>hv5nR;KavtcQ-mK1u-8Y z1FIg<2s%`y8@~t+8Fy3Pp*RdgaS+bMf+BjwZF7+U@tHCa#()1R?I(R8)VkoDtOD$w z3XbZzOOKl;x)CcQJqO?=(-cpvWToIwXH) z!E1tA2j1l4EQgu+bue_Icr9;YcNW6N#XuOp$X;S!iK|leW!O~gw1ldMcA9mjG|j~QHZ<4SP{Ej`!~2zhZ#84W85keyn7c-!KVTpC6jz(5j@XOJ z0)N~qUdg&4KRVrsMbk3f0*Fx!3=g%^-Is^!DQY)A+=Ep!rx~%g!hl?dos3@v$QhqU z|L!LaS|^FkxxAO-%+Y9=lK+C4`E$BknN+A*$FAn@(LK-ML-}jvhLS4q*pk;pob^R z!fYj(Puu(R{<_4hJ>!wa0*cR_Rce{s@kk^5)x_Y9(k=Am<_dd0oHc5Hb|A&3nZeP9 zR>1sz;PRK(8^)%pXS=on>gtZ-1|E)yx8_S((A!_L_4tuKYS|ChgAWcX3s+mb?$;FP zQnz_!HcHMP!Lq|8yxYPchKqt*#vrSk*NtF6$$1!{3&AJlKO;75<^}UP;-WUN#_eB* zTmDz?t98BxC2)Ek2{40Oh5qgIRD84Tdo(aLR~jrL=#K4wF#EI&w{_gq=&iq~C_HS^#Aj3An#jcm%6^*SY%g#U;S zAv{8ilm>y<$Be+nDf6)+GIt}T}d>9b#)EL{SRci6q7 zIiCIfkNN5r5Nb>5Xp>m)NttYu)PcTGG?E;!soJz>DaWYB)xP?`;9mKn(L%;9bA_`O zvoyd1*%nR4Jcb!-^Jt89SXs4`xSuL08!bGc>xGC%dsIyGw){KWo2#DK$j6kn>gz(R zrlESR!562W4;oOt`obIo>!ojWAwtqD09`F&B8xDg%n)-8?oVN!R~0N_9W+mq#+S1I zu3~ftZ|`Ttyt#f|iNx@OSlTF(`NHiYv_^t_kRmTEg%JE@8MLDa+=AF^(_jY>?Za&U zGzsWZJ@3R#j^BZx*u?DyJk+o`mn-=OSOPi!jx>vbL)rcWr=^xhyM$;#s^!t z!ljBomerRF6v+y1Zh4HkLF@%ryOVfL0}bY`c@x6O+PxLi(?@rIv*Lj^ zkbW7LX=}G#G#XS@p5WrABA#)6LUd`}+f%ymx+u>~@F*1vb2&DJ7h9d0Ghp1ZCB47c z-^bur<=(*!04v*Q&DYY~49GL^-?zO!I91B%&+!i1T9CXN)y5VrApy4_k9q&a2))T5 zv`C~{34!!SN0DX)UQ)}H@$9OAmy zkHGZ{G3WddfK)$1FNe8UY1`~hBJFVS!mRdh?hmt1Vw$TWEHz`N(NR+aL_x?Iru0Hz z$NA!#BM!3lb8e?L%U6n3<_Am`0EP@0Fs6&NL??1|XjS5|<-qKH^n!CrDhXd5Dofx?RzU5LfH1qaR~yabWRel#dU>G=^Q z@ysH(fl8r0y&wKCbGMnL!-QY%=%DWbXMc?nxj=;$f@|r~Gox6j<%i1L`wClUUghVv z@3gEmaD6gp&R&~2^6DIlt6Eo6f7KWD&1GG z_hOm%rkX{YS5g{wXZgI%$gjWLlD+j82=N{mECbFQpV_p&yeCBSZJ~@6NC=jG!K99w znPLF+)xU4`g)YDc2fT3H=_6No>%!0&PBnAj>X}s_Jx*0MYBb%f-!1~Prh=e>F!rcuJ^>o5Hf!8@MuOO%ONad7wOB8H1m%Hhc zW#DWD)V`%oEe0=s=zegTXj?xJ??06?HYNQYa4p?JZg+Jc6T=Uz<3LcNU<-h)@>Pd@5czn24PYYpe8C`W{B8qzv>_Lri`e^|y*I#1V8QP+ z?As=u7xXs6P}9+-D69Hl4Y%X~+LFU(iTw{Cm@nA9Or-D5Y}g@o9$VeTv7YgAN6~W; zjGPHnqHE_GtW5?4ARz@zd+!z06}aYI%T{8ab&xP1zo19i%~M2-nmVLTE#y1`3NNZ; zf=w5g)7C|!BXJT@xYLU}tWa;UFTL3)+1?SUb`D*YzYe#^3qH+&UW;izjl-&E2-MT=?%=vrG@fkls)M9RhG zP+V|O+_qLM(Wxa)4lqc=|C{J=TX_{-F9rd8F#I2YKwH$s-o2uiv0IaAcrpg9lD%`q z?u5)qH&)G^vAh3BmYPbR(Y`J+N;sT`<}qoY>ZxC{Q`9ry0)~92Gt$7zC~{AL%SJqq z)$#kSFufb|6W530=Y=iuvPZ!hc~pfpTN}o(A)+Vr$JG*hx+{?hL?b7^dx*{3 zxI>M}M`+IhI}fTbm~~*FRQY^Xc@q5E#x$+->zA>_kh%XDz@5ufsWVM=RZ?kqIY$1V zdM_hm*qoUxam*J(K6`u5f7GcO7DGs?=;ZIPhlKtC^}-c?f^Jzw4~&cL1efi)s{CIy zeK6xq`5HsySK^h|Dfglg?o-d&e_dEOoLtx=2q83f_qt4cKamNg7oxXjZ*;Cota{ zY7L6?&(n3Y*q@wjj2!d)*z`$uvEd!aIC&wBl6S5`Mxs^UW9}P3Cmy*to%$!9W+U=^ zXzadOcmt0v+e2@LsQA@*!#A+Vzi(qUzVW(zgVVrpc zd_h0GO)BZZz6V~>x0Vk3d(PghIo!8ftq?qq?`u1Z=Y}r-WSQwpUz{``fLc?{(g0Ol zb3zw{w$M|&^oqWuvB!xRs2?-(NubO=P)y61n(ncmpIq&J^_BM>?{uAyQ?);GfH+2S zVtM-2ny(Yv`V@l6$KC`c9%gTJE?gglESN6u%$nT)1Nw=2_0u6&z&anA0%VJ?_=|AB zA9OvL9Pnd`5W5#3FW%vEYIS2gr~`YnUnd6rgg$bUQTlU&nK6aJ_dc>y&P{G%<@1!F zqHk*)$Iz#{kerAU`i+^hv;LXa!!B4)ElM~&MLGBCJTAS@{~2PSAfB#!=@qhk`zQ!h z4Bz#$0gdf2vXv7a4=Wz|5^D8Qo`N$B1u;eM{y!H0`d@aVi)Kce;`*8iW5@!zz9z5)4*>)nmQ(c!}M_}*GPWTr#G<<(UB zyg%#S59=pP9?#&X&O2HAOzB<^P%5$wfRy_>O@|d+1*Y#%?Tg|T{k4HPtCAJ}Do49N43{OTTJrVUgzPym{^KV3h zluN=Nev9x7*gOgyBR#~s;FON93_spIBDde%{N|Qx&;zb)I7y*Icz@9$m6@CiYq*t8 zl;`huCHy!VpsTiE2aI{W@d?F-RPittVYzRuF}P0>C|kGZ$YNBl^9oVri~sY4L??Nc zRsQl{99wQ-L`YzseCe^M_Cl$%?qZgDs!VLo59XuQsiOLkhw)#yTBI-mh!0UuVN+cm z(*KGNYp-l6WB);k+mqeQsY3k@rsD%f@0<;Mq<4j$pk}r`5{bs3a~0Udm5Cp?WY1m! zyA@AhIv##gdl8IaCcQ_K>K97Mv;~Fz25vi(<$vKOcQQ}{dCO&m+&qw_2A>pBi??+@ zndTv1EWen#Uny8C9b8%+dhZOzLMP+)!jit-n}4*F_q;Cs@WdYnduOH&M`xsUn2k0h znqR+^hw!mZ!faF?;I9DR)o#{rrD4y@x*=-WNCiDT*Sr)!MYQR;?PbM@vgl zqqd0Ds2L+l?9nA^t5KWUJF!9#Ge~RJN{SkxXvNl`=HvVPe$St9UgzF(&pG!!x_H>* z+x9c(YG=KHq4OWeaadA7KHU5l7Rd2mO__?WW~Sj~mz3Y7I{cXov+3*Q z6kC-bf8GqhoZksq>zS0Ve?k&_c-MpVDViM<{@=>2$x?aA6Xf*3Z~J?LSN`!2T~2+z zWg*(*agfh6@?b(rrGW{_9t@4}Z8gg8cUNo&V3P^Y!L0SJr_H;n;2%lj)KJ12N<1pj zGb&u7CR7QWL?j{ehZl_bKkMXI1z!Vc=o@l;^FkcJ<~tBuXuVX{>el8KA%s82(*V+f7aFn}^k)3$qq6Mv<}S9^eP#I*T58Rz9qAN;tYJZh{ zn?KJ0)joK$5u#o7?ickRXZiMypikH)x@rzDt(R>Nk%vXZ{O!=QpG(KTf1hIME&+|? zs-s#9!Vu8o5Vk)5fb-EUcd}cv_5zo6Th>x596seiWo}kA=h>+<(OTWuAK=Sz0QWE& z;F-IIvb4rP?rJ22RC9$-LZ|+MY)~fGB9awtlP9l1QjEQ+|^_m32q`kzWZv9A*ZQ3MW$xg#nF}*b6J*Mxk>V+=eAH%aH0`{`bd9Dg$ zAnyzwyJ7f7VAH_-)t+hSQUO*QoYI4tuTXN0P)Cn>C|GtD?UTun*zwkyof_-iH{Ibw zw-PSoeeHf9TW^7*pt2R1jyBIJJI~}9_p!rG|FVg*&4tdBBS{yuMyRA-Qk>?Ui}p>X zC2l5pasHV?*&IFrIaFe><@aWJrZ6+kNiRWT;dPQdHTN6O3uW{{a)=o4GU zN{`>INy3e)J5e`V(E9jyfsR)PNQ~Solv_j2fm)q;CI>C*m$?XKGr ziY19hnq4{@!#wFzz}I=$NHed19tfx;a(CZK&i2cX6(!_2-o;Q>wgIlj^{@70Hb)8( zjPK-e5DgWA=kkfxh}3R-wy9S!ZDi^Md0NNr?Hwl%LR;qVlayCZtRD_O^{7b_2A59) z1YbpE%lz?t3RpqE|3(6FXo5J1Cu8JM|9R-|V-1yJxMlPN=;y2KcjPn&6-ukn__1K? z73j>|UklXKk3a*LUONMyuuEPGrgDBehmh9aY_^jj;V^vV3UT&1aB#!c*E?{Z$E_y4 zkTNl0dcRu7+m}$<3!QKNEL^Veq$Zx;l&I~nGn0mBD4F&cSicM8fk^}o)4(^mo`b6% zQ;A9!9o^z2hFjaoItC7$5B<)3L3(k1+@@T^l7T@EN-Xr>l%KP13iDQqtyEfCR4>?@ z5#5##Ik@!zMGo@`7CT>Pw3Zw!dWV_6l+399;0rFZz@aPdq6%`2F3JIe%fTAK?Wo9$ zi;qx?YsA}6E2M6EmSdU5MZ+q@diuaKuK|Nx3Xo9?^5w)VWaM$n zmgH?c@@L4tN-jOYirIU)mWeasM=4O@18W*&JXeIbCBHS(BgCS?1I$8Sj>ko-t!iB!Qmu--Zq6I^2*TQNwm-BE?zFyU+u4E#MAS z*}X`eE#Ru0spCMFr=X|_zYAIOx7JXQGd+eF|82oMUbIXEx!ETpsr&MC)!Qhl+4_yj z$1bKNOAp!8iM#cO2qLv$g^sTB+!N?gnoP%Sm51*QSI~HumU1kzVQA+yWA=qH^NS_U*anIPJ=a$G5!76H7)wk3(0t zuIb}|R>MOy$cTQJC+84Q`zA)4ook^*@Ky1Lmt%dsJAo#d-w3X3cjfKVQ+UcaWwRdx zLrp&Y@1Zu*|0C7O|%#ur56Nh-l4i8@G@+f*W#&rY3WYDGJFB z7;_fFb~SR2&v?Tny`H$muk|?nOFeAMoPVIT?o&JRe(^w}q+_51m-Dx|b=9#Wi+L}b zh;Eo~X47;^X=3wS^tQN?D6i7CrEK--EpDJ<4+JE5NrO+ugfo5MH8Jmr?^+SvrMvCf?OAJG_K6pUkJ4yzqO z`?frv>Kxs7yI*T*KId!(8Pyvk3$`z@hJ2E1`@3I7vXl3fY5xtt9MFvwaR-IDQ6sN5 zaMDCUA=cn+9n_(A1B*B^(XdmlvzGr0xsB5mY6SA+6*i@se*T##KV8 z+cNbG^W9HUWY6Vl1T@<)-$|b!IQks2-RA-QrOO$S#RkkS?0iZjU$q&SBAfUfWxMib z4r+UY>DNl&i)a?QBjN1k$SpV$docCa0h8HB3s2ezUdA*b6-NsWVitIAf{sjvB z>Bgq1_*s)neCpLK{@L|{n;&AhTbl3eAj-^ei~{ds$Xp-E_6R;t@wMl6>05UD=}KpR z2liSGJJ-N6*`C2pLoL%A^`ACnY$RLi!+(Cq_D@59!g+^YznEjbQbI#zR=tEdue;Me z&poW}^<2J23L+N$RO_e$NBe+6T2C6AD3-qq4TLCd)tA=r(>2|3ZuL z9=(R%8-czQiCX&xO@Q7^`Bmx`-|HsDd71VEQWgx{FaodT_@I*&xsdYYn>gv-?dMxO zW7Q4`ldF$i-2a1B->=@EJ-%PV1u^@c>+mI0Hf+SKQ)-ZNGQB`RUDELeOExI4#w?kb z7_($`@F?fx=TDxj8;tL8vR-uYc2)SKv0z6a)=SAA$TRFb;!$D?qTen1me@YMksmM* zZNnev$?3QZH)t(V#^5ZjbA6tfneNB;hXa~m9!8vU?*xg1D<+MRQX(}rtqYmp;-zC! zVc#zb-EPJUFplnCwGZVcp}VYyWq!f!-1Q20_E93iJiAAk?%kE@DwoeIUCLcRuWh@` zMX#?=fsl$it~_DX#1ydZ`8Q6l4`_c46QVlG!?8t~M(J+akx0Wesla_{B%C8zTcFHZ zb)fnyDR&1zVK9vhgS-ZwHutcT9Rr6b_J$43yVVjrY4F;1YhCcf0ZkJ*Ov2@jSm?d!A!r>Jv%1eQe%hlOwrQxIS{4wY9v~4KLi>@LfxPOopE`bAIk&lF zm>AB7Jh_%R>`uZhI=tAZ2P{p-L@_^Qj}ps)lWm1+uUa zF(qNgIQknLMRl?(bNz=Pk4yJOZ#ZKdvJq7 zPhJh&stk|A6ZB3w+%x&R+v=d3yF1OV@&|nBg#VzJH#C@$0f6vsacU2|VZu3nx+j0% zdWOTDBF*|^c`u>i?ViTL2tvuzkr7w)rcRtQB-B^6yhC!=EsT`N6Bh&IRnPU->bF^Yh@>I3viB(Soc0RI3O4>!l{rGdo_XX1*y> z%U5qkt)fh85QY|XcoIk0kJ-0(XZgya|F_8Zh4T=7K>3xdE)ZjwVMJr~hFCJX2j9VCt zFmd#0_t3irY|b_gN#Gy3B~=9xYaTlOFxea{) z@14E^IFP(9WpBt6zbW4sBXUi_kH}k2YkT!mUWd_*&cmbTK_a(LA#_%ZOu=gk29H6q zo^#%mlYpt2VD$@*>DsSJr4}qYFzbm1*H=hK4~kYZE%_SvV!I&NTaVcrFfD4(g3cvM7hz zz^YS9y~75kdIJ1H{9~Yx?Jgy+Z}sU)Y)FwF#V#ax?v7NDd${>No%G!w1f*~41`$h^ zK>N+Z+LVJCDy^J;Z@qwz_=WHeZFYYV;izq360zXd5PTIe5iKSgLHglUfraQ5W$96G zjMu`%+~j@bVxW84i=8i@uI&1CkpJPiS&8iFG{jV*XM5P;H&hA5)$A=4!2Py!A$!BO zAD>BqwM}gQwTZx@3MirKwME_fe-Tyx7G)vU)YUGa41l*2Mje5Wj5b%IA<6~TJnT-3 z_u$3cYDa~M=jEl)wqC|^j>s5YXV)Ac&8)f;{a%Z2 zEg3EumOsuKemX~h02kr298gO^!`843L96L|HFuVrX2lI8KvjcFMO$k2j*mSxB zAiT@kOA#uMv!_q_ZKZ3QuZ>#x`tQY+VyUT97{L?Wnm#914r!*ejplcn5z1OzH?Z7W zZb`093I_5b-&9B(bAP}6TW%hOH|AZq8PQ1@V?Tc;G&}*h)aJEtM4cAHC1tfiatcdX zZ7h?g*K6=V+kv!tk3J(yDdxkDzJz+Fsn=0ET(|M43haE%uc4ifnWSewuq`o9PPpnW zmiT9PrAZ9mjk6GYva^U#>})Yq z!_L^ahO<`CEiZ#<5n{qO(qpb}SV5}fvonnXOO+IdmRk>&mskszLQMw3^Q}nH?2;jx z3fwD&douv04BUN8_~~UOxL6orVYnMsH#`5dYGU0Vbq>70*E-R$+mY%~!;$vQgTzAZ z!ExxU2Su8*y3YMMjM^r4~+fyARr{#-+*=mE(W%8itePlm32Tg^GeY!u)m6rP&@$sxwP#NRU(1F3D=pX|_< zGmFEcM-<}T&TE5TX8n#t37B#4E?*+`jO4@1^yfY#wIn00Nb^ z5|88*oOh2XzYzJ@o&4Y!a`kLW3pcaI#rYq^SEx?s?5+6ifv4cn>oG`5&si{-TRHoe-ttox&ns(>&cvU@p6{5Iq1QzQ zu0|E*KG{^(^BK-2vWT(m<$mtHS8hJLd#|TbPa4VdV0g*hJv&j($<&?`>1n$b6fbml z7;hpa|JH9xgh=z4^(1041E$>$dq*yjdpf+CCGva`9sAQ*@L}XPa)>$DJD$@nyjW(Q zqm49^Jj!d}eKvp*ipjz*{Q%GfsX4}zkX%S3ucOQA507_tnX_1vq~D4F8Z5xKz&ZhE z4B*5{n8EoE#-2R4tdmnV$uDq?7~0{PtQOMu$EQWE@yP~!w+M(%J|7ZZ$v9D)l3Cr- z*sw2T5_@=M#gk|aJ@Qk9@CrA0d{SIs!7HiM;<~BWsMINX3Ov~T*YIJe|I8yqU{~qE z!Mml_FUY4p!-U_YBx zP6RDOj$&;olAzoX;o&z4Tb^&^Htwoft%>#?K1pwmjndwB%TKUvlWiMYj0xYC?u$S_7Tsc8F zcCaxj@3ubOSmZyEF7&1TQ2QI`V_T^ot<@eISxd@7>+edlYa=*s>ohEB%Now2N~w^S zik~kHqFSql-YA394ImTqI}2vVI-`=xX5i(#fj4O_VSC~tc3QRRLfcVN)a-2j9#bwY zmn~rAztW)@hs38kEjch~fAt6hVZE`m+xhY?*Cd@j_bqQF@IiE&zyHC)rA|va;E%w~ zTU1TF^8ufHLf$8(<=626i?eQkL%5~q()p;TO$Cr|2{IVI9|v_mVQB`L74@`MMqi&s zu=UCZZXpD2Vg#gwq-qD_x_XLo2II=*m$)n-_cG3GdHBJNas?Y-sQ2|<-x-Iiy0;pe z5z&~u8Qrj;$G8rC{{WfO{*#C7m%k2MY&%dN8u0d4)+yo5f}2Q3DW0mn^o*0ueunQf zH%8#Km&niS&Dl9Qxovh%JKmTV z(YViV%{I((0|?6J2U;6fd|;?0KZgOGWIR+>TN!V<9Z$J*CjmN^@N9}PDrTW)vpu(AZr`( zz^u0zK6l;7b*`fCm+04W_5>xcclB^-z{_IzsF0@nLtfSJ)S}By1x<&$han}`<_U&0 zXOza+t1p# zF7AC|woLc8eB5pOy<=y@p#1swGk>=r$sN$dCqXhIO0jEw*g0Y|1jDZw%KM({nL*<1 z-+pvD^sI!a<<_V_MVx;=+?yLKN+73jpEu-3bkt}!1SH*_Cu05F$9<^qQ@owx0@!!+ z9nMz7a8-eC5w4}zYBZjW2dh6a?LzN|-Rw#6-=QI}u5oY7&CsKQd#`zhx8cjN?bWYD zvZI2})_V{$aIMQhG|+RKc}v=K_|d0y;)n1;hpX`T2bZk(b*|`jE+G_+6pujHM3l`F zr}Zq~R?qwMxBQuiB4SmsjNLbb=6-rMCHvsM4Qi!t-@?K`tzK&P2DoXO)*Qn$1LKqU zr#$+90ZqK+W%KPm>+e^!ZyPYV59$Sa-d#s<6Gy8o*xwI>VYrD;*Ib|Z%sskI6jnHO z(dfipMk;1S9wX+Be+&m)+hoL4S%e02mKbf*vDiqcniXT79WMIuE@V~oG zzjF~WvRlvlku^#&)NeGdwy7!j@!L$zyy}20uP#44yt%kq?L5wg zJS>Qm4)yk8-5@MfKR^x6ImcR81U$N5@`b_uD4h-4t}Ouu7%5$9xpX@+yq#g=uIO9) zULuLo73=)j?_?)G7#(AE`__=%NC^0g)d#-a#(Ch~-exHU*N z0Cc*M?)-Em1S|e6%d(BR2Z0oYqsl3%qOIuyBObNinsR2|5q2j`uY$DpmA!JNu*ljW z$Cse@R~YOJ!dtvFxZ_M3bs7UKKS1A4iEsbc%y13$5xT>g8&976Lb=U+3-4GH6#oeD z^43P%LH{vfSRARtr^k9bmVSr&UGpUk{}TRZr);#nl#CKNh`5iTb>bCjR#lsE!d=7u zKPh`Yygt6atESLwdq=#$&1`o!sL|*)u6heEinwx1S#-$ruo-0E&`8bF>D}3!cMwl=&VN=byw+xh-t{u$DTp+nD}4?_~`AZ!Pcb&Gc_rz5p17k`gyb6)vntW_wvz zPnb#7x%%7KQf$7Dk2kZd@+VY-x#CP+KfTU`cU;;|JQq?bV(T zm3%A4PKQG4nlX2^(z*NU=3Whuu?H>&bj&dr_$!+w!yQtzCGE^RHO?Q$?Z!%V-!b)uDwezoW^nkDj z4zp1a-JeE%38{v)KV&E7J@RBIsZA!oAuGy!zlOt zbYeDF_(YFJ_1Ffq$^wPv^V=4_P>*6tsdMb2@I5$LQvP+gKniWhB!f~bYhFHJBSt{J z|FRFwA`aCzj&y-SKP~Vm?7gS#ji?5j{}vtG+7Y?=eXvIdAnPDZQofncGIGF_IBgDv z?qmfmG7pN6bfpyLq{abx?BZFkahGCXtNSo#EbH?Hs5ZQENFuzo=rCc`uA$;;S5&xTFGyw z#W`yZs7u~4dSqV;29~<-9h(e8>lX%YzhKJrDsDSI`~MP52g$t#3dE0Acimf*$B8Hl zObaDN^Q_mpB0VV_e!QrA?&S14=00JG%7E+qWyJlA?joA%6+NitAE`H#aaB>zXKZTo zd?Lo*_amk}q&0#hjy1Rv`#ZDIlNno9=_Oou2ls~6{G5--|yIRu6dtNBt z6P%_httPdo*|AD^^*zK3I%Affc3}Gpu?g&JeOce`nw%SYOzm6{3J!$VTuD?V`~J@s zO}+cbK$@tAFTppq-%Q6XXYO-7Y-ihaH=PL9n0gbvmn9+f2Kr;5kCXQSSc_iN6E**- zHb^Dkg0XXkcm9w|arie@6q|3b@*l5a2I8YYYhLPR5= zy`fd1n++&7YSVsryK_Orx1d(uyj=*C&G_pyk9lIAc~f*N4zraTN&eWgjXY3QF{i)y zw?EKG+aPajv2DAo`xeNP4Xfb;m;`1KqS-pWUy0irh8j`Y8fcp(xbDCtY=|~i$p1#ZM;dXEv9V7`2|Tg zVsidf(h$i>CjA7^f^s1bf%h@FK0ebKst8V-zvSX66jJF3)?6WwovuVO!opk(PYGhK zxl>m$gyNWSCn6grj|#?T*o7YAISV?Ir3RCsqAx!ALht*;n^e<)t6HR9flYJAOu!NG@`z#k4hIoBj#^7^ryIws#!sYI|>;WmKK} zoHtVGRUwN_X1cd=RCLUIxRbE>81EAvqTGhCJj}5Zga^u@cKfi-wP~>zabs7ABcZT? zsl(5yd-kK9mreI51vcj@=N=ygxCr+#*_LM@a;Mv|cc_jzhllzEQkd z!J+6gOA*nq_}Qk7-0R;@+nu`$f_Qh!BE!J%PyYYnR5`{3v-Or+9~CX6JVf@5Iv%w%AYbAY1S0RN{gn z5)U^ED<}yPgW>b$oc0OlOo9m0_H32d5_{wprcI zTug2g1*`Lf*5XALP^ta&Q}(&T-eOx1peGtbydGL-9<-DKaVZ?7o(gFsT7z0Z8!pf6 zd(fh~x$@%qZ*!8mUe*oXE2)evfJ$*|blhH1((9Jjy)laOzt84e=>YlL+&7!G>kcAL zEbIQ;Ku?)8x*Ulb&$)jl+t@D7%mJi&p>%<^d@x$5oG#|U8r&4w7L{pu^fG-}`I~5+ z^66PuU}HqxD$slwYB}PL*jzv<08dLJBg~38IdE5qwspF()FBO0sK?9!UGX=O7CKeX zenn)MwEHm1_+>Ho$DH z&|$|>MS`Ewg_A&v!;^ZF!S&4N3U7GJD#VgPjIA{D-@Fo(s1&9 z6K3+To;5U7~D2(>2}i$Bi=}64&%*}opHLE~Ek zJj9oGjBXDq57$=|{L8%)1YWx^^ulMJ9XyAEiFX!C@RxmpOB9(?dwLbUNU?IpmjdDT za{I4Y?cJb(Ip1ew<&X{iu)B>t6xZZw@@@Ren6tka{%JjDDs- zo=(O%R_ZOW?Flmrn4@~}rD8<0^n1^_#PcW#(n}OaFoJ;A08bFacycgGGaA z;1GitbgDM|o+1FMSvnNWaFZj}1ct27@}RUrqjZ#Wcxx_L#gH@55IVr|1O@%~?# zWLkZWrR3!7-re}OG=E;?tA}NIaqVRRY-b;%IE#yS7&F5HPDaFFRfuNL5fE$L!O27H z7Xi^H3J`3tj(oKIZ-2CfClKc-*tLrzpNNb1xS1xMrs4806zawrZ|?<0XcxMYBOx4C zMn$-0!TPgs4WlkT7hLI6oU>?srZP7!nYR@Fz$<$&7AgpqJ=ZhpqD1}5a4K*mjjunE zIzsowtC6hYyyya_F%0Vv2A6$Y}=X6WT&VLpo1#n;ih7j_k(tVa9Z5;#XchRB;fz1 zIA7UM0#+ky^M$L!vsnjh)Rdh>oN4OR=y|0U)#luPW0=Lho&eWmy7$q}whUv@2cJy) z>_$4uw2ZQ!y~%DJn}A++-(P8^Elw1CEfho1O@5fiNGs)*Cbk${A;UbO&Vsdpc7C!SO{Eq>dR zR=-Vu3T6(@ekCV>(A+;3vmnM__VvK3MPNDUze>->4xViqs$cs8s?1IQ`WKWxV_q`nUT;G{e_1aUdEM+{Dh>xu=T=>^1E9&%^B z76i-SZ*$@zyK|BoALs6!ytj_#LR#4}qA~}5QU1&0-akxn4r;g6%=$R27udellC?Q9 zkpjj)O0D?<54@&3YNAwDPEzk@uUoTE!8ActhCx8=R1a#Ye@nki_Pfr3agJMHlb{a( zyY*OJJz~^%vPK~*zFtNNa<+KydzPQOAPF+m5M4tV{v*1veQo~D|Uan32>01Fw^ z|H0`7q>C0Bn!&PWq>rhmDl_1AKMhmU4M75S8E}`ydTxS_*Tp zcPOXHo_Lgjt9vcb5e0ml;yZ+L>)Ew+o?IkM*r1KWa@r)3Nd22Sm+GJoju@M| zJn;m1l@+_KLeY&O8S#iDcKDLVIJO-HKdPZND8L( zK>I^6CZO}&Yih@W@xn9;dGVINn1{G!8|s~t^D8DWjBeK9-_*@UMLh>AS%KcC{ujr` zJt##v*AE26uTNvD$PYlBPimd%p|hKtt?t0;`q}3)k!g4K29!oy@edm}T9M0E{=?Fe z+=JgA!NbWi7tInKF(h(q)-#%bcz&J54Nw9b8?=5~#7Nc8zgUdnGK{ySzOXI? z2MV$Ll#F=D|M5Cg}i?wRhALloi`9S=a z)J^&2|K?b>J#Ge^FAZdUR5ePJ%KNXc~s)br`3s?7hl#u1`*!p*VfioUvTe|^sBJv65ID@AsPCU@w z-}^N)L~89n`Rsa^f83$pMuoyN>ECM~K6Gt2V6tZK3f{=Qtewz6QI`Sd6Tb8xjxYxbFdXHtHiVjMrgu<$ywy~&gE#cPFB$T}=COjYxPOhj?I zjD?C!Y^K#KgWiqOe*1RvKtf_4T-``D7HXZYsslw6;4BxkLt1dRv;B8;9v5 zRp(syO(ocd0YnVf6?IfZWRx@qXIVF7X3$IVtbh!r+MVweS^`ntBOl4Soe^{|a&w3W zCdX_ahC{ZTHzMELD7xEz)894&f}g(zMv|45xVF~sf;~?Ihh3ZW{ahi(D4R zACG5j2ht(F2NcBEq=g^4ybvfD*-tFJGU8$Foh~1&Q)wuJ?f@#=c zws%^Rl)l=}&3>c*HyH?@lZd}1ful@_9x}%?hR-i*q}?{7C&dmf1v@#wb0v|(^>Y?G zQ5I3u$i6J6*bUBu8Wyxqd(V-aW+BW+Mpib(o>45t!#OPkXWq9XDmhB1n%t2>bib@r z$;tT>XmflwOIpCXtOYV^i+7q)Z7L4VE6XxpGI0W8qt1M1?juDH@ZtfA)d8ZH)!jdi zycgcrVYINxhi6BipUe`E)tGRwCm&&<;a7t1V680YC+ zg5l?Jd&Kl$Y(lNPa_)_kp5x~ZM=7r!s8o6BpDp|mH@#|AwKT)tzp6#iPSodPtVT}w zf={E&fkr94LIso?0j_*{ybF~^u^(I2{IfErY4#pfBG`j*Q$7aKy3sGBgU*H@9*Ozm zQyO-Ik)(eHXSu)p$C{GV3Bzn< zTmZHGJ}}&GCMHKel-s$pWwnL|FgSIyYv>T^t0cDG*KtWxlV10ms_l15RdU3*Ws8+C z1TtJJy>QuP3S`wu77683EhWC9{Z|Z-d5Hh*Wyu~dklYpBG?&2jV^LA@e}86h^K3hA zM{W;RtFaiNZz2PMmW!jP^(nEqCk6E`p4Q#&LS0r6a4eqo-^FM@0XPk>DpCloCj(xl z^->s`LsmThUB@82CT(mRz0^94S{kFss5;2dYo&Z6_^OP~%hd$0O=R7#zIIYatbXHZ zrM#;Q=aai$uE)54`eo!6LeKsRe8K*B7B|VhErw|BzCNXCOJi|;F}bFDu}OH#1yQg8 z;HD0;o%bZLvVU<~?{{OXde`Pw%cfw(UwyTj+qo0P0yQHjbvoc#I+j_DqP5*tL8Fhs z>^9q1+K>fSA$iL-(Mm`wTG86JFSLkVw~&3s7Aoub3xg83_8u~Q4YUc2PiyS_HU>3m z+cX86o5^n&w)<{&nn@`K z0+d7z&Fh>s!@fv=Ha+=saMP=w=-cfG77qGy^4ihAZ}$6gZ8qEXI}-~=W9o|SEzNdS zj>odun?`%IK@wX&D?gp7MFQmIH2X2;VyyzcmiF8n)y^65h|)~J#Ku9`1zn zqo@BRR>;X^6{W{-A+of8!INGBq!OUh*pX;JXZJjMypn}Trc{k45ktAccCXZwX(>H! zR~4{%{?`4d@jCLh84>anbC40alr^^a@1|ZZ(RA$JnKy_rs?5KECBa?sGjB{Di9*<8TYs*- z+D76kyFj0nN6_8?OOUzh)3~xx@F+_~Bx=0bJMyt}tZWz1BQK!|*{5)@vA9I39*FH} zw;lH|l+WMHjRk$RmQ;BG5U#4nl-|lF24N6qnZOt_A$X3!x%wvZ02aD=%>p;phihHt z-J;6IWwFTT7&0y~H@u zBKGPH`On13>ee%J!I65uC&HbE0G>Hdw>7YpJ&63A&|?{Lx|n?hIZErFB_{le{@;>fbkLn{5oly zv4&!pS&2NH4JvT86ll#THNlRlOuCHoppLN_Nv1jQXsq{8YT(dbN*w9+;X6BT0jLSt)D5PW4^sljbg5|9ucQeHBU2hxZxSC3x8I4YWm? zxMo~XxOIJ9dEe6$ALXv7f#sUFuvr+g{C`*gMZ8_ZpVfQbJ6UM4OJ24Dl~A6lbK2rD zmxn*^vhw?=mW8qyTT)ik%JZnOfGZL!Obmp8UF=oKhvv-FN!etR$Z)SfZ$zssj5T$nt$l^8%9c^Uug${Jztl zGO}pU`9B3@jR%Q-EqoHSY z2h{$u<+`li4-A}V_0ZLqphlWuOQnIndr|~9KBQPQFx%Hh>IO<7#Q#N#GST!PRIhmY zTinN&#|gVd>872uWtkO9nxMpnKna@KN#cQYkZ8N7#Hk|!YD&LA4`q^cv3)~9z0`=% zdxj#`TyoMwPtM18!?fi!nAFpW%GSKzT4e@aeVs#@02M>nxy=9RBAkIlPz8WC47=ayiCRfc7#E1>5m*?^b0V1L!>X*-=53O+S%nvcc$^Ug&BDEmBY&Bp<J`$IcI^MgPWs6@6h_$NaR2BJ{U*qr_1l9o1 z)aFZ#82G8NEA+$bK}W=F#6eNIFk+jk%EeeAieSvbj-|zA8dPh&4Rg`LTmQTe_*eA5 z1#TnbEX6K1N+II0qSj=~PeGyd9V(QQo}>PMZJVC}DA7Ce+u88DDrw!rt7nF)flE53 zQ5^~B$djA`j3J@N#l@15?*Gtq)^SaL(f=0^QA%l~Q96~DRQUjsD$N+9lp3*tqeJOd z=|);&BL^d;K~id?VFN@NjickY@Avok{O_hVjh4mN z+$($FdlC5QWF6n!@D!0e(_MlZvnYXGxIQdhLm`r*z+GS}1`ghl4>AgaPLaWjr*aak z_mgY9fvB*~k+hZIWEVEGJ)DTz+4$unD#slP~}7XE#yOp+bw?2ti_UIa6vN` z`OmGYSIS<}8bukj{ii8p+*76%@5!Hq$wWgw;SZk)d#S$VpnZ&Cu{dbU8+NhE-%h2A z#a{wY&cAAPkD$bTBeu8!>wJZ=c_Aog`{Ctc21YqtHcb2|w#=8a*i-2H*GcY+PoR%z z%d-jp{P6|gqTa+GowGI&a3J*cBh+%JVml=7s~W)f_k7ou`b%IwH$0-HQHWN4fez|s zorntd&wA^ku>t!dYgsH%&0$Dm=26#T+KZcL%W|Y%UiO;HnD*T7BP2x? z0m;pr(gt9byoU=u)c%A4X&PjTmQ<+4w^ zBbKl$GHR7=0h-SGmnlxAA@BKbhOURw&;d0@jcF9$%(C5EAdkhD2`cT<+;4ZNZ=jx> zcrgRv&G%@yLS2`-;35|NzFS+V>;COxnJ#w4_1bQE{uYW#v}l(|g``x@@}(Oo3X(gC zOHAL})^QGU16f;Q@-Mqj(Z5DOAo0Lk9T2A2iF?4Z`?jA4sLgn9RcqH~BD&mINDKQ( z$Fi3)*P?3#X6ts_s(ZX;N!dPK9o7b#(Fbx;y$A+2ZQiGxyX(4fUDDV=&>Cp5aEfx= zEqzi9>uP}f8)0xLnec~#O5Q!REXhzI#2_KHQ#DZ(fo(Uq7nSj+lG9gy~6+|dSzXh$mGA5=8_|W+|7ljIZA+X*= z8rVAYt<5j!@!F!SGm#ilX!3CbB5h53(&bu8-~P}bhQc{)3XIK~nkR7^m0)s2%U54K zMXao`oe*rFoPsQEAt!kKMp?C^ZD0PI_&T#U zLNJDfV~xiOQ5E*y?g}K>FvfY{b zuj`-T@*1z4+4bt}>#w6d@i&gcM=)A>Ee=2FmdRkJEz6q_2B=G9m%JNs=mtCFV_G6P z3=_eA`x~gAw{x+o6M!P;F!naST}8vS*Ek8Gfq1adwF{Iv&EB)7-$ih0?9-{St`4vKU!) zK$+x0PA6ScJ0*p)YAZ$JElz1S=O>L zD!63*{QWY6NjFutWH&`yyQ3f9#wZHV96Cr3IIA+NRI3a{fa;|^4Woxv z*d)X*VjMUT{>NqN_CT`><4bV>W_$(*2#360US=a%nA^GEkLA1${oNZJh&2m`vI=Z? zNFNkl+odE>{;$jylg)9m#?39r=~ z>@o&(mbrbAlmPtIgiwNBQB9ei)z%HGG>Rg?)7|1SsiL8CDFC{gb_}l^j}mo}$tHvo z$Hrzv$8@zG#-1C4|4xqy>EYf;@@{v4+AaU*P)VDrH}I}`0?bl@rJ>Wg8}B)Dl=U=< zY(XsvHTrFcalp*|)%I zJh!&=bD$ZVZTEhwRxKCW4ItlO9$O6~_BB4AMt)hn*SOLmQQ~^NoTRQij9uH^zdXlZ zsJkV!QsMiaPlS#kYbztFLAp&=)sM2>$sYlIzUy;7n8VDM)c)asTU*ocU#0D+Hlwj_ z#a$Mz(4c@zi}qv^3@96gZUEN*O#VK+hl>5-CzmsY>8Lo@9~7s)gMHJu^SH*Kwkws8LIt+^<5Km> zrIZdBTD1eyI_Ix#~wzf0)V9E|0baQHvxnqqU~V!$NEDkBD9@L))8e0b=#D4 zEJf~%c$|vVL1KLBeRvx+$@)5ZBD zyLQJ6Wh}_>rBvd-9k0tSQ_T7`IN1INYRQe7$e$X^2T|RaPP9Zurxe5+Suo+w%ORUl z$rO#{DYa}i;%%!g0CJ+|YXB#h&i#AKA5AZtw%h&~;OFu5gNa6t17pl0bMIz)AK`0f z9ne)r;D}gf;V9I?%OgUxWt#6qkjJ6^J88K+8~00&$x*7$xp@S3PvW^s?dM=j%737> zCQAH^%VC8wM%q3|GbQH!>P`k8kWC_tZ#S7qk&>t`$(eJFo!J*i#_X+=alI|i!^E#p z%vv;f_c+PnPb-_%a-FTLcPLMopjOK*ku#a<^?sZF6x-TqcOdIUCHsu%BLc#@eQIWy zy7uQF#davbJ6Xi{$s@eEQW|`4MKe5}50X=$eu=ptmmb@tBGWw4b7(EtrU%LwB3qa+ zSZo%4rsAblb;o^Z`4HoEqJTw00y*svdBFYc?%zoAGc`(w_EjGm4%UfhxcMh}BG4<0 z8H4>OjtCDl>tcHv@hleiebc0epgD>+g6flErMxT}vS97|bNOTOP%F2VJ^YT%zBq>& z3=#E5+9=1_%UCeGlGjLVs&}~unG_MeCNKo}=5J*q5!T2SCEMHh5q>*vwR3C3pTVP{ z?qq@wa`Pb5*;C=?2Rs?iraRtTekU14Za-jW7QJ%ZoolA9rd`Z!*lP2hjG zzsI%GzjtYWWpxeHF^JuIQxon5_%YVvA-eTi3xL54kDYmn-tRd?6OLv{xy9Us5M}$R z?wvV2HBUM0DV$b6Jr-Mvtx1d%2E&T0!Fc# z1D*+j1bg?07zEU9Hd&p3(#%pp}xUgiQh+-M8{j%^7%3`2bv!5(b5Sfip zU2X9*i2WRdHx9;$2pk-^JDRzumm(@U{gzn z_ImatjOuj!KjAi;)0cyIy-=Y$U*+-}?0AOoViU$?9GHacwGLl?lwsw3%Q){2F;(^s zY4u|rH1)%?^~q+r2*^5LHA+^UKypds(*_E7HwSI@e%A;nGM=KfTvnf%$2E(GtYaTZ z7~oON@V7Prz;u!C)k|?l{@kPFDAmc`JAjbsG<5m6UcuY1sO9F-q)Y^d-RZEA9kEH) zcWH$yuTx}oI<)wwN`j$E#CLsrX|>W_-)%9<xc&fB@KoCW>>XkXB{)iX3$X(+6+uMlEGgGJcid4GR@1gn zj$!9K6ig5W(}HBuIg5~GQsJ@;CXmv^S4jpUHda$ImGGZ~EV*8NZ`F1sKjUBWT5VB= zc%-~fBVm^kdep68*z^x|f#@AiF5d`)l4#ZmcWh2#OFBJx`jM zRkLrT^|c+h(R$PeI2MdoERGH6L*c`b(Z)gN*mK;Dkzme07m{2tEu%6sP_4;Yw`1OZxu%N!59ZJTS@%K0YQ9cx3jBp_E zIjY{l?n=eqiE8RQL?NdgWvK9-x;Els4q50wCQNv*Xg#{f`p?WztGX4%Bl~ayk=un& z@6NPP@U*&1#yC%Wr8|v6NBaojiW>zVp2g5)&s2fzns^ZjeQ%1tq+!oRSI^bdR42us ze5%m#jVQTSW3ty!?n=jHzP;{V^mt|vw5IU55=UsV)0D*&$LRx=;lVPUOB2ke1*@@J7@ZFV{@QT&UDi0zDoMZ zn<$t~7J-1SzoJI}CuHtL1OB;nG2r*?v>sXIv@{T0?5khoJATIzKRT1m@yctS&D^a7 z-YQ(+PmftI)w8Pfa5y~Yr79qdrZ#Zx*YOQJXCWJtFu&W2;P);-b(A-dvidH$c1XrX zzHs)vuwI*Z#K+)cg-Li)TjV*XeQsVNa#{Y3rN@y&ML8)ac7)L{)+S$IUlg56w#l>rF9=qVYyEn7o_HZ=XknX?xQ zrivm?tL+CDO;es9XQuwyElbZeL%I7cQoJ7e;Z$=C^+ogF@C39GCMxG_(%oBe!5*8w zqP|g&QekxeT0JHV-d-xC-OPQxi_Eicw*mybu@-20OcG$o+IedmA5jzR?~bhajsHf* z&M+IWPVk>OiG0g#reqSn`4TH5Mvtj%x5`2vipSsXfBkH&RIctwOioXtn*TUY9ecR- zPOk!7c2;{A^Xun~_S(eO6+@ZoL}!1uG!C>^6a%*16)tWYqdEVg7OK%WvCsPtEU4*C z`g?1hVo7q{Pm1o|bX%J;9KTM;wyL&a4gQr~u;hAYp^vb~oA_@@6VFk$W4oikxjBVV z<8w`YG3EW5u}ZQ?>{j~kHzKX$RSpSI*ZLive*J`#3%0k!EF@s{eY55RRCi??GU>CooV2{#Ul!R+r|K$ESJ4Aduutx$#aJIMRNTz#8&z{W_2ic+f zf;qF3W*llX5O@RDq*iJkg6>!aaJ_hJ_s9IMU^y%Z_+oOhVfnXBT7{5;5I7vB(B3+H9YEtY_xW{csSrQ8V-n_1 z#$?DdP_?0dCgwXFZbP%B*`94HSKCcczoX)Ho3!+SNeySM+#hZJB1yg}dZq9D$Er>= zjSi!l^{kjZgVp$BX9c2Dm)UmdQn>vZKYjLdn?>0_J1?UOLTwZV!NO%nV-860izZHqCNw;=>!0o3S~T{$%&uLS zcc0G%oRe0X7~^nVPr$D%Hf_Z*G_&_arzSR+{H`|bb3}rcSc+J9K3IfcW@cCy-?muA zF(ce7=rJP#jET~+OmM4au;;x?WX-*&UuW&~?J&7k^}PfMR0j!g_=m=QG3v8Fal5|5 zxr$pY!ldl(PONSey=fvS6H{i1PwnlK)B&Z<%Bvg2(C&M2BGXyW$JWxMB@TVny9rU@ zLkx~l6A*d_wM02w;0fsHOE;mt$JytSzocKRDln zmLXO`ZUe2|-BG14n1SKL4P#yYHWii5`C~}dn}0FIt8R+`S4Q^Zd*j(!U1T))azk{D zfVNay2U-qmXuDTcoo~nDr(b?y*N}(xNA6NPt29tY2v)rm0!nD$`8ry39*(*F4XSLo z^Q81W`b$}Vea-f90d2%yB)(JF45NQ0Q_ClzXx8tXWd{@JD{lhQDIGQ?%)6H3zP?mg zzBptuUye4We&XlGUt=#6_BfymM(ynX4e7;oTP^XK?f+kb^|tin&k5f4WC%&gkbzgH z8l5Z}*m@w+kN>poMC<31=u!S_y9Y0HXHZrBtIFfAe_4Dz;4!X2SLI#rxu2^Ci&_hy z`>^|@7r!tPrqgfHK`(&T8`A_&T#HiG7gXaGwtLa(jtc%2zS5Xy@2sf;Tr>UhGkHwc zO2E+Xv4)PnDQoBI?6g1L{+z`;?d^>Sy!= zU^}qKehN@81q|r;*b_1URoo<6Mh2FV9q~0Ccbzk|VY#EuZujw^ zWoP4VKxj81AAO;cKH%qD%PwplCltQ;Ju&og8DXe%(0Zf#>8GXnunq&B4?^e4%Vm~B zS(|_Sh1y6BtI{N7YtU53B_;s1KPBJA!7=EUzz6EdEE%K8eo zphL9tl1N4;78B0=F8-xIUMay7yp1pvZfobWkc_Fzz-K)&RrU2Nl8US0ba!mOIknq` z+m%*1);O?=Z@k5o;z7Ffm=oQ5;0NfM=D{V6U=rgfFTJA1NHw2_F`XoIz*nMYpWP=h zw_CCl68Zzgq%3!40R@EbZ19+1`>>HDG<8n*SG2lBweIIhkcRR2(AaN`1xdE)+u2vm zxBUODItknusW}=4Il94TUVokz77zEFjMr{33VM~Vol%5EfQ z%ttLLGod^0?K^f-bbBWE9|3jEy;9IX9lYknx@?vkejS$EqUvk99(2KRJiDrAe|`}G zv|tWTTzjr)sL|~hR>{KTAW)O{*M+*75?6X1$^6R{fA*C7Hid11^!K8>9ACmT{2s>Q zGrRNde2EQ%oL(VRh2vtfdZH->SiQ6^s_$8|{e~iQP?~@R^9VudN=R!jjM+|z17^XY z?M(B5)0IT#X{mR$AnP!hQa#!6&JJJCmM2#?1@Oq`kb(ZfmL-hwXpzv$K(Q_xldx;( zwBs2Q`29&+U$c}jf!ngOcHa|Fw02@B1Edazz;$~lG)u6;tN!-RD0#h8AV7Y;Y|r|A zIwBbZ+d5y3d{(yOMM2pj(V=VT_`(|s4dxoWN>ZG6v#t3vC$%>ZD6YzMAxTL3@IESI z1HsFz%7PYtVY-$V>h)WjnTOc#g_Kvlwb2D>h4!{w`Ezdp5Em)+Bn&A&*55b%Wn~bW z4gfGd!USc7Q!EB{lnJ{Y*+=t}0{mp(wzDyE3&qgv7XNWFqTQ~RHXk+$Pnn6|ig?O- zDswjXvE7UB^7rq0Q%s-M_8nMpn}PoQ)FM=NY1XVBNw#D}uO)w^L!1-pqmysa?@~{w zWl;*^@*u4DHimBtfdk}i28EE|9g40F)_d?D7KkE{CRFgV<7pT}nH#yqM~PpyWq&(a za`$j-GtByy?R}>LOyrxl@B^k@HYAI}cH&h8W8NH=jdS^_as$ho!Akt!C7F~Pfxfbb zl)WdRc(wN1i_~YTWnOMHVUl2QWg+Bk0{T;yaN>(;r{3m&_Z?UM)IafcY7__BQVWOFyoUKjZ|L zjm9RbeBF1tbJ&&tV}Sz^Jj%7(ZO1Q`*8 zQbjzRudRF(=Aml_+U08shmYThJXo%mxou64HkJ+UzFZoBZ~1uFe6Ec*sbzz~lAeQ+ zYMFPwBV?;tq%I_=f5+5cT&Q4Mn6#*?c$^NUb{+62L?N7fMj9b)3D6}XkVl>ajb7bk z;xaO(V@{q37%&C*NX?QW1h;^L(}NH0MoYu%4_fo@%?7*z+V8gfO~JCcjB*Ic)wi5{ zJL}}9%lQ@&3mP36Yk2#W1i^bCmIi2kWMJ27bNYa4THl}~{KHypH3^yuV0>D?*{$^MQltvqs?n7DF~? z8IvTY2U1cJn>RO^Q%lkx@g|d5GyN%dg2e0bF{NtZO3(*4+`+Wsjo-?B zHzMsLwhl1$t+dqRcX-V{$pCze#+cD%0gaQF)Fy%!_7Uw=CJXsw|Yj_PSzxp_A(XiHa4(B)`Xv zEd4g#F!d+4J`5#U3dKUs)Rc4;9FsV{oWrlI!%eC&mO03!m zb&8I%%bbRhDD>9(TWKYRd7kQKo$Mv#6O5RswIzpY)#?FG!`Ui*-uqWP`kVdR)Ls|q zUa9@J*Q!hybitScP@Zk}-z}7xO|{dlMD)yQm{Tq;n`1WTihgQv(+$hkp*KUEU4NQF zEPk*uLrVHk!wJ+-uJ}F3_VtykX)6sCSJF=R);+y+&#tKbGGtodn~lwJg+XL^XybnM z^<^C`-u~d+7xcGaM?>&S-U(E;v^;j%K1|xGR+A;ryxcF9$f((w4P_8qJMd@xXN`FQ ztel4xAYiXqhQPM>og3%WEe{pzd#><~4lrp!;MDxnVnR42W?weuF2?pF{uAe0mY-=a znDw{7yx^^Q;hIeei|mTlAAu?T$3kU)uGre#!lyen0@xCOJcbdG~&1FfqD-UCBFgOr9(4w*hCh?l%(Z;i&Z zk{`p%S}xmQ=8l8?<-#tkXA7H15nxjnn5e%~D*I;){E?22;ddWUb>DvZX=kCQbsnWD z4@_|q9j$k`CkGNtjR0>eGkhR_U%`f0o#3zWe}Y2!Qu%EC_#CL5hOln zZ##PU;o%O3b8PGTQgQ`TYY$_(gDTt#+=V+Ym6*ONwZ`j zvZOLI|KR%@Kv;mZUW6#{=2Lt1N3dV?LA#Gac{l}1^4 z6IAk-^2YnOpY_RBGeu?-qqGrf7pI9Zi1_Q1c*ushDm^+$H-F*CJG?d|mGO>4dpph+w6&09g$+n zuge0zV4UVq1i#j9pQ8Ne9j3W0_wy8CHEr3Ww=-le zF6&UcaerG-X*8*_kpZ>0RPtsBC9u{_*VmCL^{z~2X-@*gre&M4RbMc0*ABEd>b3W2 z-FqO*doUb6>f{E^`s1PpZs>mIz4(s!IYw%)y;s@3Y1j9gFS95f1?AtCyPma+9yiKL z=w1ra`U@V=#wU4&u9*N|uihW3`D^`FBak3AJBCNQ@hq63RQI+qnB02zlUwq@)EaG@ zsl)reV+Jmd)VocZ~$pA%+MBeql)aNqC&9JV%Ypo13ArN=H zg9jeiwl@jet9sqE^?M6YWA|0ITd}S3{s;vn>K$si?m!Vrf(aC-&eL_}uXziSPQu8$ z9Kb}s)+gI`9^~~VYs58x_L>sesHGWV(JwRGHC2EdT1Njpg#QpHqoY~^e=gcQHKysE z(|=bZy^RYk1GIix z$ioC%vre>#Lup={K12jCxho`SMW;u}2z=~3Ca7mWu6n>?D-k)P{q(sDD8QhYoF#3p z9~>AGz+MSu(MG?~snIlMs8q_OH2P1|nQR(-g7ob7yUL^1Yp0dg0!Sg4;Ret52WU~*S5P=M%>E9Gze{e@hA16l?6 z!hH2SI~TU}emUCH^iZXIh01f7Obm*;*&5}3eNiT;qY%(aiFsK4X~w|Hk7gc_N|nbU zn?SzM5A^rUXpjqezx=3*m{KgLRT77uNuIY4)3&|Twvi_I^eAM`&#dZ`R&Gazamn=| zks4Nl&niu-^lI5ye5pUqw2PSjNMtzo*^3@rQF1;mydL@pS!(zoE@#8ZHY(D^B_RUb zGsTcZgG)EV)f|$0poq-*e}3uOQB zbm!eQrKy6fq_;%rwwL}I^A>Rd##JqK1eTV_C)9|S*;SA?)@Sa4{Ia#{30tsZQDka1 z#*T0sG!w0iKmp)<) zyRs&}^8yFx9?~)oJGGZN7V{xs$SmKh?@kF@S&NV;a+ijOjn*sN9l2D?SGF$cwgJ=WF_BXkMU#w?OfxL||v2!_sGni|5rT ztH#5gr_o!zW-dkU`b~|^#AF-!7PQ$$?wgHMjJL03<-3I`HTY!2?dvmrbGKMkMg5KS zKk9#YQO4@e7WGXZ{P$WvB%n%dP%^X``X;O#K8M&l8>js#Urov(r-=UD$K5c8u*zMq zAx7=Xd^9)(L;Lz)>1R{lpqJjLPGaUXi_M;TnQ5dxhGLk;HKIzmTXSL&3Ln(UiNXzpxSX)`p3)vJ%{4CulJPOK5hZt z2+V%O_zs&ky$qMV3m(pUc=WYu|0?0N zV!|I((?+JlLb5~O-apCbmI3=Ar7$Q>e(Bu`x*Qd@!NL!6ZHXUJw|3?;?G4_$jeNO4 zK*+}=^QU3moA60CmRd+8ip#hGDCtHG`9=HzE=5*6>oBai|FF};{%xb8? z82N91pjyv)oPVTIzI!FprIl{oA@h!a|KFwlp95P5C)o`8VsaSZS3+1emEec}o8%9L zxmx@TVt8aX;(Ei!&mQ3ECxI9~+o!J%@l3)n1ogaWbLVyUCa$(*PVvkf_AYq4Nv;^S zDg?+*$w4s?9~PlGY?Tz2*)5)hMMplac?Bh}4>_~968iNb?h>F}``dx6(hdEh-m=FzF1VXM#8xq2Ssf}#pd*#-Lx zjnE}{82I$}j&%Wh@DqeO(VeI>(qnh%>3g2$r!vCD`Mrr z_tX~C!+GccvD%}`E1h#xW97^_vHn&XV5tX__H#B8y<~$!62L7QqCmlyNQ;AZBd3z< za{2spmjzi_xi)Uhx#HenmMczi=^-73UxNE-h5vuCl-cz`L5s5$d)UUgnLY-d~ogdg|QS?tXH!ol9eco28HR;ATge1&p6L3@^`8q@-c8N42zCmU1N>3xj3?IU zQuo#;@v`|&i_@)mUkc{em8OV6N{ZwtS;N&_1QV);L;elLSGu`Qt5>1Ph+y!Ri&v6bp>A#5NHgqFM*Nvtv zv5(i9!_j>!1+%|2YI}F{M&hVccGACv98SSpX5o-M#nuP-20$<&V$d}&NE)5C8jhzb zh!NbPJ(sT!LoUZu^LC_e@1gyvZ|*JN=Tj61rVS-8mOA@VP3_tK)WHucG-^ZQ+0si| zr-Aw7S(EoW#hs%YOW9>gL(tJV0BRYWsRA9_HqB~3d6MeP%v%Hfs(8

w^;i97IwW zq!p$u$o-48hqiEj-|03b?Tdn)N2-bBK30}rT42+`VaVa7Zz*Ps1AFbvj|_f|#ua1a z-oB+eA2O?w+jw9tWJOZdq!T81G-6u4o$XKT!%8t-7nXGK!z0?bK52S(!2TV=Xht#P zoM9KCvqdeY&RY%3PKGF57)IQQMjZ2`z%OZjq!`5#vi z+E>ApP^(@bc|^hIzxy>Z;)|*^yzHR&4Odp7V8&VA-_LE68ub_&6wcNX8Ta#^nZ<~WhxN@r#{O^9lU;2`Svxrnd#CT<2|>X0@($BNZGM%R z-*`R>ch6QqkVE^M&hu;haf8ItEk?yGabN;t`i{kw4ly`Ku+2H)5VE3qw}Ze9xH zxV`8VG`1yd%>Wk+OVGz6T#-b#N+~9;zYUQgcW{c|`qneM36HYs@1C%T&XIS@9s23p zPxDm|&|YstvC7g`bYzHO!R)1Y=T|zv=YGe%7F(AcJ(vtpxUy#*eQE!*n|KX>Sy}wr zGnsK@EQxq%$%4tCxzANm4&IR*?YycQdfZ_r=FA6y($l&wo2^uRU3t^COrzuHQ-bFyq`tg`X@4gi7Lp0qIaeW-|Koy! zOf?2H(o{G6ij6ec>gI=mD}V#awGm|xp&W^aNsp@sR{lJU!KBt<^>KuwU)_hYl_h~e zWulpIr>h`KKvb6SrAJnX;#UbGd)Zt{Bv^Q-@DMj=ZvT$*H9?lOhcHP{CW?`P0|cWp zJ?X}l4+-M~(68*uzbp{0Uh_)bo~4CPNA>d__ToCFzP8li)~T&2Fex-XOWGRtzAfEM zVvfJ&1mD-Z&7g|{Nd!&)G%jobKO_kSNT*cYDoSb7;C&c7$S zVFSy>4!evvt@o9l2F z(DCXbVskU64qsHblxr_$AT4g3mLvX{-HLpFQ5MVgLA7dKWPot})tLfk27Es{fFs(C z-KEL!(dzVu7sjKQ{O5N_v5HMc|NR>?s{g&%R(2TQHT$=-rqJETd}5FQ zEQKraTKG@KI5;z3zSp)IpA|9~B@Q2)d_Eymo%?FGT5KH3t^%0j<@F;(0ZOm4_X3i# zRYJS0emB_aH1Ge?w{p1FD3xh{Ud_)X%;FHhvdEHW}AVuL+G6& zNN4rLw?yb?m!7lkNpBe7Yx#lm~k=|*GKju-tR9$8T?>ZjP{@mjlbUBz0jdN?kb?XbsV9#pl z088#=hp|Hr$!LdVTB@&Z6T3a{^ibQ)X#pz#KH`umn6c3}Kf$Xo@ycp$Zt7j=%KNvn zK%+;2b;!mv?^5MQ|EQeB2On=~k}7QwIEMS~NoI<% zE1h{}-$_n|frjad4gO}xM4eh+4|b!a=vT^R;ikasaQtEYPUM`ImV3nFXY{9hN>`F? zo;gI8byvsEf4n$=vcjz^YDKon8C#)MPK~9XA7VT9ch8<_Z+Tw`YHzJrwk`XOE~idy zQ#z^q=;+Aft$AoCckJO8K9Z+GPceH!3ea`lYb2y9j{p>A_fmn49zk34!2Pfxd7sQcz z;K($IQPfZekYmVU+rUeEB=Ju;=CN985QbU z(x{If%UQ8Z`IBa&YBm7#-6irINm$*jEY0NDfzKI72?iwYQ70yG80W=q3H{xK(5Q;Y zywS)10jSOxU9nFD02lqnWdzPdZhoLwdxU7y^IZG8)^)KLES35=avCdzQoSNslTXfr zOz+attFXWPtPI;ax@t?Q4C?g+fcml#YAlyA5%|s_XK}BMz~Ve-5V5{)ejjtASm=sE zwqMbWKN39abeQx^Q(G4c^%JakN~OG709(GgB*!s80AJ3l>+9E=d&1-|~i~aKY|DmMhC9jZRZ#krLCGH8F(qFDCATP#nSOa@@rpRo~5; zm+6ufhEM3$rdp`8Sa^srZw0Yn>U=p}t=fWx&RbI+LL*gXpSA6Nu-$HAM2AkJ&(89> z)q<6k7@{K;R8>`#E(rPt14`9%W6q|+Osa_`D0EE1h&Qv`#iyRzX`A=l;w+s0WWEf- zPdJ|5vT#8$D8yRRn>}4+Q2w*}?JXk(B& zvhpq7YWdllWZlEt$vR8@EWT|)@rsO=!m&W;B#Cv3K zvf*pxoqiB&ieVBBCLa4fXfdZU>1ary6qgqIdEWYC|Xc*K^A#pBLvu-$tTL9>cG zVI_ENk{TN897U4quw73Pj9<`nztZFdtC8JnIGQ7aL>mr6PO% zoN{fh)bu=0y~W7$-?2TWlui-ObL=lZq=lz3gev$qIS-Qk)AZtvV@Rd8kR?bw%}rpo zTh!ya)%2~Ft;j=P@lAAh$M=EFP5%+}BQCRd-BCu9K?+UJ5*bo!In*qaz`NVN z;STj4G4hukjjpGdP3=yy-*r2aSQ&NKqj$dlHQaF%PmDj(N6HRyNk%imp?En1u`+22 z(N3nGW-ck~e3dK;r*MY zO?}Qc;%o?W2iKLXtcUrz7}rgi1x2Q@+fXT-qQ)_`2u2&56+25bnSm^+gW^6vNiEiL zki^LrE)a@~(T#WR>3BgrlP4QD1R;sq;<@yI;Yjrfc9&USCYP0+A~oKL<-Pp;*Gf&J z)uX?o9K2`EV8Cji*U~+5$Bb>r#uFh8^&_e3>SFc;EZ1lmA3NwV0(yevr3IkT4a-1a zkLmql*n>Nu&ZRPab_DMgy?M;&wucB%O>ZMc{SWjo;$n^oDC&hJKRdjs^^sF{du+*y z;H?Q$kN(9J`<$fY%_BGCw-T-@#|nemw+3uN-LG%*o4v+HX1PN8XdQH&OIuC8d;io5 z%WvCk+f>nBuqe6HxQ;YzGJpSwFC6x;W(!6yFGq_|-rcRCMTKe#6C0m@{8=vO!QT$HrTh|2ro$b1MyB_K`swtJ{l7B)7vcjV;q`%Fs+?@!un^VdXY7SZlU9q#))aO)u_&V50K zmlGuIuYPrdG`|Wx(@O9cKTE|tn)pNLQI}4}OuGLz`hL}%OqfT5SJ_BklEX(uxo;{G znkLR$KSYRTdOQK9nh$MM`FH4VPw7>WX;X}VAJ1xDQ@S>r^?Zeculom_CI_6OyYe2+ z=|*t;ut>m9-mCIWEd|k77kRjWNAa($Bzx}_)ti%H;6zKp*%II_BcE#nu2+n+onVI# zMfq-r?hSKNw%3Eq#Gd0=b9H9-zj!)qm+fCgtn@;yP?Xb~8_2gV;KUPui zyuTH#hVNomk*g)0$XM3)+S;g{;z|A62wksN>eD0s2kb4sa4hHCxa=MB4vm$i%joPgFs z!{H}snMF(w0CRrS4Uvs@diWnH8*Y!H5Vf$Ky8kqF7R~9t&hce-X~*b1wcVCeO3XFI zxX6yUfa0!^87-#WXHe`bP+3!8l@n-f7AX@MC3@StVKb{Yd07Lw*U(^4n)~ctbtY?1 zX^dIoP*;P7KG4h0iVkC~D2`b@!Byub)wTSxKd%wTzyfd-j5(`7z)3KW`Ulqz2WL=Y z<#9jwI3Q267r8cFKv<&heoXs==D~E>d5ibAe-O(R^G^>?7=@ua zf~ABoMFbqzCb(OXtBF~ck#y>L_Dc;=r7xqs)N35zmwzEdrGKWUHWFP_vsUa{_=;0H zx-Ms9cFi&uYsVab?6?Cms^$8?W@{!gMf8d_NyL|1HLR+q&mAuC=T(%HrAKWb_P^63 zEPFQasi5wAVa{W%SeI;4t&ET(v^d>#LE51W~1X2=CJVG}+_8m?( z-F*wK)5hFzti0xOts<2PCB7jLF`ik?FSWE#jUpVi%z%aFXA*NOsTtjJL%!m^566ww zFS1H8Awn=KWxpW%vQ5+w+pl{$hT7ZztQ^X7sp$kM|5aKy0@}Qbr2{J`O9K{&0QD3ayTCzSvjG`{gNt3L3v>g*O^F<`R^yA!%C9- z!Hvci8)DPgw});v0e3!Qlc#F|^Sipd1P09e(_3`kgObCm|9es&wX-g=Yafg(L&(cD z&>@6G1L;#29`Z8_uj}$5jtaza14Hs3d#U7x{~_C`uCMGKsM%d8ZqTMDB9gwPum^1` zj-=20bwOR{6ghZjjNKit!X+W2LdRvxCAZm7r7#HbhEWW6K>;dxne{&p*eDaKe^(kA ziU7ES_ES#v8sU;r+(XvKaqSM-shIq46_0w6L1x^T^-~V=YWm&~d4!j2bnItxQp}Fe zgPFe{Q=$r8eD906U9BBSYlB}YMomcN+)cLtzjD1E4|?>JqZj$u3s+d25(y1jf>|Yp z?N|8oazvF1z?^q}ra&-13>zXVO9T&j%;wX862t$Gr?U=g@_oa;2`V8aDfN{Q2?ZP- zDhkqyG^3jl8!$SghO{6dEu9;=F;y2XOg*=r$fY5)H^qmAd9`t&xNgZ==~Kmn-J9qpG5AQ#n2Z zkTi>#`t9TT31%&Q;nVj*R5k9okGhdI#})(mZ;Hp@H%*$0cBd*w+lsBef-3$)oS;ZK zty*_rHM}`oC`m?tU$t~o7W_}p?;I|8*g(QFxTINK+_>|0HP}iP+J$s5+w~G58$kzE zm3x*qv(LM>6E|)>vez#}*mKCrDJX0^Z*M)$=7!hIG(boGe0h~N&)EK#8)+%ssWU*? zu=*cKV!CN_gjLh7Gyyv?Nyo@0u7x~!8UJByM*A;ZPv7TY z^!t)TPrbc{p{+H#B_{cqLFLo-{d{FZTcVy?)&>+|n&OVV|0R6q$l+?*^fwxG!&P#6i3iKLTX|j{n>2^fo7+Qa%Rm zSJ7c2btTKK>EdCH{5>V-KIt=~3T*gg17T`9=*NZv+!G@I*|j{-5ueK zBx?i_xA(iSR+d6PP!AR$e>}86&Vr+TTH59yz&=Ev3IL?=M#r1gDAh^97-9*D<3d1z z>THLU)Rn?JwYq~tYN(BgpZD`v7NvY>%LhQTZ<<;SkexG*qPdF|quXSqU{!GMNIqXe4%rh461?YOe%SiWj zZ)rEEeByO1lYKdVZ|b6HeJMx8usecD8By(M6=PS2UO$-G2&X8ohu?*RR%SjhO;f@n z6oE4J6oShXPNMxt=-&qq|g;UlsI)Sv?5!;~37?uQ_aFH(uL2 zW@Vw$QasM!&#v-Nl0FP?^KqJ)!%l+%VMEIl6!^8I}rFfwJK@n!QrU7>>R(rk;i)JcsNNrCSjmll6( z94{$a>@u0h78h#wJXHUTA%qb%zM4kCxT}DASo&T7P>Dz5rz6CDPSw0<%$(!#uFvwi$6orm*#qu!G12sEE;I^kHKIwm;1SJUc~L&h<_h`Fy00l`6DV|eup7( z_1(0HT>+qVj*+j+f@eDW?&qxKzJ=QtY%?9qaD3P3U=Efu0SCG|)K;i@RMq#=JbRd&{-hV()C;k7i=!V-c2eyL z^SB^eVDPkCW81rFjf-UYzX3{(zjYimuU7X{YdTVT z_s1;lyS@3qA5Bace^Gxl%zYoqKH2!rdx|#1R-%%Zw%Krk3kA1kQ+V@+Ek~$4@+(RT z(eTW?Os09Fgb}dpe2wS4DaJNuS>yJ#&M&t2cyPns=D5WjFjr_ZNQr-uOJ>hGfA4bl z`Pxk9*Q<5muSgK#H=w|5uWtfr=x*Aw-qi4Ot{dYbQe|L9jXFN2MtMX2GwGKB#tY*D zq{i>zpHng2yEVL53K}xtNtdreijLb3u0U&Q&@M{EOP6wZ1@P^AE0rlAqn*+{ZAMUKTkAM)Fn=TaI!AaHb8vWPPvP{LOM4<;N`%mI- z$S#=v_#&QHYm%Oi()lXI)?i%wL^0yk6x;voWr1$q>cU0|IO;+xYb+(VUaU3!T<%co zMvm+%S^>}lt#~aQ{J!;_%+5&-=t*rW^R!`O;<313*3CL9IDwnpPb9c<$?LM}Vf%Ss z;9drMEa8YA``-CwCWx?YoVL@rS#w zLJ6@^kH-+b2JP*^R#nq!5yNXpw!vo)2z5qIozo-U>WMfJjRjqvH%(THHu@GShKH-< z`&-z|mk25eS0$R5Z{*23aji-4ElZI)D0#-F#Wg?q)DzmYH)34MzVZ`~XFATzlUdt< zwsaVFmX7~&X*~|g2^XrxF?)tg39a_`r@I)85O2I}#%EMLWUk0TU(UZ(1bV^*W#0ASc<8vU;T<+?8c+pJlYUMLA&HK_8LKT%> z4OPEnyZ+=twL!PDKd^5$%32SF9RD^TmymfINbUuLM7V(UAyI+R-%Nd6-s(KC-lx+P zLFBUHL9>yUWRhe=F;D~izLQQ6ADP}WIWh^RDZ$I{&A|YPkwqWlRBTr@`x29FxsBerLDA{?G};xu~g?_ zgU6WEzcu0r$!XGY)X(iG>!W5OK35&J02Z%eX^HhJm@W$;7DyoF-&{f$>eu(r+G1i} z(5Jw;Gp}1nMr{2H&n6}O;jP_E&fKeuy>q6ZV0pwt+}^x|&^;hM`u);)+MtEk(6Ua3Gi8Zy^Hu6sH z@$j~AARsrHIPz0nYCV3T-8yN%Xu+jCk$}0#)4_LMg!>gzwZZW+}wT^f_=UCH*^P))c6I*i{8=t*N96v z!*Afn-`_Yd{M1TV+R9Bcrk*4t1uECVluD;Rt(*jle3x$W-)f2 zHxX-(nZ}dRG?V-5j)OjVvvt7P#$q}=k5LD&dBUe~P{yVy=o_$uHJ%iGTgtp+p{90T z8lM#~UmWtT)Y}C5{L)93zE=xXZJC^%FJZ_Z`mzo~J8~AddvGw`!wz|M?N>GZi?wZ_ z8$8_5qL4w?b)`+&_JeKvafxQYnr%-9}KZvMz!ZIX?m z0c8HOtFz3c^1+f|`0=KSfhX4}G;2`g@>w2gK&YP1Set``51Q%|5%SP7-)ih0n0<*+ z1WS(yu#+s(eqe_%3OS{3G1I>(3(382_su0wenQfLBE1z$bS(GXE>y0v6`i|-FNX+^ zwLkIEv2qu*mA);==Cf6o@F=QZLG>6c0NjWjCZxKgdJDJ@(7M=hIN_Wp98BAtva?^d ze)YgxJ%LT{Hpw{ zlJHCT>f_0<1tOTT^5*~?76TzpE14S4Dx~y%Vk`mN^DKkK@uDJz#3@-D?4;2MiSk2P z7>Q~21Nr%=-q^Y%J+2s{_Fe>4raN7b{5tFUNP67!Fyr@v=*LeYTB@pan96851fRKh@EM0z>C2Iy%X`0Jkp1eV2LC%^owr9r1X0%a;YW@Uofln2 ztW)aux7Iu@f-GHtr`<7Mu{RTM_;>nZ7bRF_4L(F@o%Vky(0Kw}K|Jh6g=!vs)rkOg zt3lvjOg@8tldeqRH`p6$Q(96Z{!RXs*3r3vuin6{i}|=a2hmeKGx__8E?pRQzpI!D z{4QML&f?kbOk8}(iHBl<3OVSMLL7E|(p(vl@DAUkxRa35mV?juiINr6vg7<}Us@T@ zWFawI4kNDMNMq9^+>^xzoHkNCVqWgnZGPhQHzt8}cYmHUAQanuUrbSw5gXOOajnEP zcL7DpO;ezwO5(;y{xVwG`NeQeVPI?c`q76TAFa&LUT#=k2Wfb`*J7Ueuc9Xfgix*2JH{Y8YoM0clKxA8_5eTI2U{<|+!WZu&}sH%8Q-j7s|J-x`M0XVa*k#d18ANc zuY8D2Om)0VV)hM_-^37H3)yF$RuBmcCd~WpPP=rvuT!K9CV85&)h?Ox03sjTh3tUF zH~V+pQ|)tf)&os~`4{@Tin|2_vNO=G$jr8PrHk-?;=va_6#tosnQZAYF{O5yUd`tP zRRxaCl#QR`{jt=YbMwbN-VwwgISe4}%p+{_b-h@*lsaelt%q@mroBAJLjWiW91hGTl-&}znj+aV%ep{~|=v75N z+Siv+BklYfB(s(9hBQ-#33pmWKrE_wpIMgdAdDkqjh2q2Hc&(Y=>*xPI^?^>ADha?p z;SDE5Yjh5QS02XLgG9YM)Upl0ZJFGLuZda7DuL#{%YPG}BZ~t~)xR9u;ac`X)57x@ zcYGi5q*JFFb4n?rPNC&at0{9R{m-Bv@1GN{f^-Qg6d`df`cB^Jrc9AvMeZWXU_=+_ zB_PxZ%~#d+A1G=5AZ1A=Ctsu!sg&I0MOQuGiYnj+cESuQK!#qVi50@%0?CT?zNw2L zD&OyP8y3;Y6gSb31Zwc1dfJO})Y+=MxBdqC|KIJtt|i`i1Pt~49EM*Ba;l`j+8aI_ z#sF5(3-2n7U|)NB5{gKLo)HXZpa!(RfM-#EB2e0F-}sh z$@*+)%3m4C@aDp=I5BQbEsZp}{?%@;u2kN0!l4A>x@Tef1u~AuQfe9VQRvHx`d#X* zI}*)}tD8En2D_eMzq1Cv?choly1pKsBSkyg@g!8+4EgU{5@z6!7Cy6&6f~S~H-JX{ zBpA@tOuRN~4MvGy&22+~7=P#f)ycb%d%vr{$wZ}W#@#wkiXJ`@j3zL@(T^g&c74)Q z0}@mG;F5_QOnsi)xfWgzG@YgKBFHGw%ZTb2yX#nHOmA@+QCm6f$YL-&3EvniS}lT3IB1 z@$$Q5gyM$>Olgv@L9-05olueLu1VyqlMCmz<9Pb%2F?uBLx*o{YKwf7@pkFV)z*!Z zbVV|rvO%1kEy^FHQzpy6ee*RAo7X@rPh{IOp}IEgDEoT@9CkQ`fOvZR2Z|EHoA_Q; z5jNbJIo&K|pSig}&(q4@6+?F&)n=o}G?f!}D-i#*Z0aQwG}*E&LJR zW2>FfPbn$Mn1YTcduN}{Y6bJi`(s|=OfR2gU10b%2+VFfzGBU9%5{sCnW~bt@AC6XvTJ)K0g*r7{yVk zHt{el=Lb^0BVuMIAFy|}REM@(p*bEsUT902;zEoLmOw7~-;*r-c%DC%H27LpL}z6_ zbY&aIf%WzqoU0E)e95k&WJ&ob%<)Zp=k|W2UL5hRI%5A+^3kapaiqz733_u*-}jo?uZpasb#6a~Dd}!ge3TkJK zrEm%~?hzz+%d>eNx3Iv$xQ<$7Fc3k6;7NTmCyiTeQY^!f6Tci`BGYgMr|GVw*Y5kn zF;LKlpHabrlY`Y!aVpwPM3t!I(yTEf$>r$m*L3Al)u3#4?%%v}| z#A()GVYM6h_vU)Z^cq;8ipc;YDi&ZL^{Z^2i9{;e0*^YZ0e`e7;qgVU!lU@F%9;7+ znY6dhNbjy#)LfVQg;=&}svbCh+vg-!uO)KZ*}l!_85oPt_m1q1?JxT%CYYZ1KBZe^Q~STpJ!loroQc=1};TB{3^{hVH!-s-{ON7rnMj!l<^<4#Ue6x8-p zU-srB=p?Pl1>-BS`*L3%DA#={_BD`;7msFl=DQQD$YJmJeoMgdm+N9p&dgFqxEEO& z1)fDfAJZ4`AsX%R0xb~+)B>uPq`T>ze8el6a<)Zxw>Alv5~$Kx3eN{lE0QHIS}Yy6 zhW=5^r1LyQ{25}!bx7j&s1R(_?wXoA4vWu%Pk7Li(*g56_1{_A$k5axpT|o|Sn-GA zz^CwvPAGo}3&Jdq!R$5Y7mweCu+e`jW4!l#w41N2h`}di&UhlYZI3 zZ1xIJdCMYh4h1tH$cS0v&mK{6F=#MSC*vvgW6I#b>E+%%+_4TisF(zxO}pJly5LGw z7S~EJLvSNFE%8L5G6PU14TEB0R~82euY8ChA}+}#-sf_bbOHt9@e4v ziVEE5JMZ{OKZj7>jZB)7hd_8+ubLm)7NqOqe^k8=PTT{(iy|ES_PKB0*UQk6$piEA zyQDpwX;@>Z-OvwkKvcnhRfg`hX$AC0-d}UEUy*Gn6LvNomqCIv@z^`4Y&k~O67NEN zV`WPTk~gJ?JG``-`%e3p@$XWuQx6gt^aFprG-MnuBmRfjU^1GW1kbX%F017|eJ(r3 ziucRqx=i|iS^xzK{?74dCF%L@g*{DQoX3d9KBbxX>1E2X?QNV6?R+h()(lnf0qLj} zR|`km$?lp}uH3zFV*@H?uZVg8725;DtfZu{x_DzYjK97SaL7Z|YXu}{)c16w`BiDo#rmwhXk6_;C&Bel4|TW1pj8J0uRNf z(HyF2Uh{9H*jDRvQpA*~5baNmT=wLj=d=Td1D0zfR{Eg42%=4)++#r=uW0 zHyQ5hu}&va2fKG~#C%*|kznAv)cXv2&m~&-w6$=)-$aZ&@$6bIC z8F1CM1Tg0;nnCry)U=f+^7Gg-y3C+}fWBq44A_aNp<8Pc&9FGZG@{B}A8Bn|)b}ra+#O^$1CH~Du-@8a<0mUc8 zV#HA=hJcQrHHIyp_0ey7^!t`UT+Tb(h(cJHu~bYgS#_$!P7zo*622wytTfghQr5y@ zP2!dP6!_M`+F&gh=mIDEl_3s`?OB294W`~q4`h^uEzh)s?m91NsE zgzJm~G(qgI)pWSOJ;}Fe7{foC+9I4}{Bxi**BW(2HuZ3D_sy@w5V9qhu{eF88((A2 z*#22f_Z|&6&^G^L@jD~9HYj{x4F`@zz zI6y|}Y!{%fN;F1mbqZR}D=+)`nhjjlBHPE7jE6xR@~+WVsimEDA%{Qh@11o#!Hzwx z-CDT4kIV{r1~GoTmPAn>;G@b1!*(Fe%GY%9EQwm;dNl?WBoaQ^u%V59@b9wycaz|! ziq3A53tn)4pL5xssIT~MOQUEG$eVzm7O!UXl{aqBfXx}fk7)110hVX900S#3{`z_? z<_8hxnq8Cpgazz#4Pr2v{(U*{U0(U82o(-t2VzFb-Zw>Kc z5G|gMVlECemlH*AVr;g7rbf2lw!Iq%!^2~;?PQ;)wYXm5HrwP=4`h6Rq5)*v_kt#7 z7LCW%PwkS3e;x;4?=GFGb)ZY`dYMaB3lF5TwCj&Bwy#edGDfmjIz_%Cksg!qY6j%I z#s&r*vMy@lV`GCdXocT9&bzGvhgV#27fH|OI$_ohKFRlh!R8-7MEm&O!pHJzX5f4! z9@wPsr)T2G2Jad-TV$P1Sl<_(9ehxaC_+dVRr=38#;fl)abgKFq3BUVz62(p?7W7I zUSU%uwffHPW%2r27YFsk?Sa>hJWp8A8|VWkbWx`$$IE(0;cq_y2ux`$Ge^Ih3S&!A zQ!2#i{la_x#Le1si;vWQth4NfbGF+S-Pl_nNm_jS@w%Et3pkWuM3>86MM@S?+{&i# zp6OExkN;8O_Sg{(e{oxGSu1o0XG09s`>&@SxvCLak~=hOZm?z96(-xq6D7xt zsonS6^Udl8+m7}J^AH;#qSuhxsrhyt9X)>S%(iCquosg0&JI^!u! zt8U8qm@vzSijiP4A;81wKHNJSX(u4Cth@$MagG%xlvD z9P%qpj`ywtX+$vq`t#-!I6Fh>0SlZcgZ;sJWm)CEz*E@tlt!ruSlLe$o#=3^tA!)? zG#}wzlRztx}=_L5CwXG(UP-#;hYv|J#X?fC=J5zW@DrLD2pM#T3P_ zW6Aj=obBEKchgMFH45s*x_Kv%_o(dAZNVJC6}1uAx{Tzwk*GR4J_YP5*4+OSx~iy* zzI)B|2Nj8d4b{HZHw={gAwkDC9M zXZ6AdYdx^C!|L2xGBvhTR0DOh9ZvlTAS>=($*^xfsdjTA1(R7AY^WIpaG03lvpLw} zyZ4YM>S@HtlvWSEssxIQ_I4mVVqWs`3zz|_fw3)f)lc63Q|>Jcpr81=UxO6a`Mp!( zavPt|8l<9TvniK2UU?i_PnKq+aq#;<^zNjFiH9*LXZjCA=#jZgo$j=3CH}eg4SWS0 zL;}{1fc<5H_<+wta5177WWl4KN68P4RI*Y~&|3)l?&c-nr)4qY6H+=MC4ME~BS_DI zb`~d7Zx)9CCVhVxQnb=U1pi@OhW@=#gXv|2JM7T2LFI?(>z1!l6GwZW!KLIslV{GxPvyZ=f=RGo=|DyCbhQKIVy6zN%Gz6YMDsnfv(O%j$ z;+OdG0l9H=hJ@twTHCi~7pfpL31qWgv z*?}-TCY{eg^ZndrWoQ0L^LyjyLcmrDtSG&%)9POW(2;$?JCJQD25`2p1&g@7NMb$C?x8^=L^!{_ z0L{@PGuD)`^>%>GM&UM)i9(fjKmj+3&uLoLS;|m7=RqGrKt2nuXAKSMy=_tHC%2SX zC1XFuYaDC$*F>Y-Ozxx=Fh6|0c&`k!=u}*RhVh3i$%qV?zu=1@bV!nMc+#crJE9fn z(F>i6U8_gwN)FcP=c)44c<~oA1}HT2vbcq`u!Zec+Q@w{eUB%hFRE-8cpr~9M23yW zI!GJikxWZ~L-HnF5?O_B#dxIY?BAhpk*`dHMrqW>GPI|3i@h!IHd><62Y9#+CS2u}?!Z)66>OGKq7Ees1e3;ANYFa_8c-=C@uZjd` zdpt7J9&5)!zfL`?@)c^7B7yAl+B_d4nnhbdMa&|0!;tn!k=s}swP<#4>EmAwI^}HGyfNo4UIAWH{IF_N zh#X!L(&v2qRr_P)xXypO>k@Uzv?9_T+0Vi7%~wP}VcPu|(yc|co6AVigyHsSPu2~uzs)bdOE zm{({~VAJ5cS|cADp=s72FS|Y5k+KP(f32YZ4-4;3YiY;it@P}d+tp_UoA-e2^9vQH z&l_O7e2pla?md%6&yEU$1vha)AY$(;f+O6(>$PxJ4Oa!!)ZcQmiEjqyICJJxK5|CC zaNR*oc+o#j(^^$n+6MrvUeYqzkW%Ef6=2ivtC0aee5A-vr5*X)gucoyu-8m z1k=VJL@oB8-6P4;d0YLf0mJJnoXE5SgwmKegn~(zBvgKW0}uCV7XD1drucd4K471| z&KLXz+K9uioAKft`5^NYU{n9v-G@NC6H<0b`hZ!1Q+)XFPaBD$GWcSIoEGnsuO!zEGC#!^m2G(cGjp&q$rAl&37_|lw$^hmKs-SjKZ%9PijMPFFT0m9j7 zk;)?SIep%MMi@Tg9ud*{9Rb~>7Abzu&bIu~Zt;6<8ybD;IbGf`^>5Fd3nk3!C8=eV zOSx`O{uD6)KO|)~U$cn76cyMJOfeD0@(!yc*N51^I7+|wVkiwiy7f`bjqAETqx z+DjVIJb&aX-?!Mth~`rxk`}zgAG!|a_j|vdI*-rd1;v_&bNH5TXWpqirdWP$`}i|Q z(Qh?TAoJwfJ{IJxASMTL+eF6WmSW@F7G`&q+)X>G$>E z1%l2~_w}Gu-QalQrAu4v^?@qlMAp+4Uh>rd1C3<_kk5n5(>G-)7Jhxua?X~q$pY*I ze6+3)x_L=7)?ED_I4sq}+HBFmh|p@Dzam5KHCe@%?Q*hbv)%7>&HcXq?_W?h8`fC( zCsd$_nObej5khs#miB?cUFiHUsX~2k+>D6~J>IpLgcd?H%hqKs33^Rvj`euu2xVeR z^ZhFR#-2uHbh+3)DphAwZK3z9HGv7Ko|*IOZst#_)88iFlKqZ~7Ry|eq-k4Kderob z=lkAQ!U&4L5D=gw$5W&d+TZkr>u&bY2YGT?Uz#dLLkxZHfi$JI3u%_>YbrX$w60Y$ z!=Rm#*etrbWrll0+_a7%=)pk0P2B(p?{C1W6}dj5&>B+XzqsPau*$2nRu4-jHluuS ztk1obCA0)z*8^}wrgN!je_4_wM{A21b#F(9)&+@WlD(6jXlK*fg1Z}F{ZXCLQuXnx z#jKt25>4L?@|K$vzF&xPsi%WxH_Np@=s)-Q?Z8s?2QrUbPZVupW0ABE)-g6Ox)kl9 zoOX~&GczVxCOb9AubuKK|g&-5*H*nPjyS-AWMA~1V& zhC6P$J-sTGLGl`FbYrH8(0KXg%m5W}a(;WOeh5pocBBOGmy(1DqWRL{#Cu_=qKCXd zGyfD-tl+Yi*hGlYy-e>mv~}p zL*xwirH94u;Yga-Xe&=l7~k4S#3O~`*abVnjKP^wc=z;|VD67veaATTac0E+leza>Qori` z9``3UB?*e={Azv^DV4J;6A?#*c0zO0YX-4kVKq!jEJ4Y!{C>8b(I`wi_9HsIFf^R<9*0<~Np8KZec~FCFuO>&*XDa8U|0*cvuSBOW%e;fGzR7OBkId-aBy zcG-G~+%Xa{Jyk0m4FU_c)r)T{&^H@tMDCmW>PT^IIsSSgO>50tPtBe=CL=a9K+eYpBIY3-&=!&gvkEPbhB_O({c&&YPp_!) z&A*5S!BEiIrl_wAVGH_9GD{Y#3~MT*Q2A(jaHKb$K_9z(R-?xLSd(yv9BFYAPjx4P zO)?m0dRc-uiSRmEIZ9I>6jriela&0MyRqCfa96687Fn+Z{}u-tZRXQ@Q9+KkD(eaC zmm+o?_siWj`2EQ=jE`qo3#Wc>xUrf6p(HRToP}l_kT2gpq68)fr#iYmaDGo!w*2xN z1k0B%Zj49GpySs7m1lcopqsN{AtC~)x*zePwQwO2`X@9=mvu$vD&~Mc*$~_Jg4jVy zK#(%~$~puw?fE<5s19PM<9{4^Q^>!IVr2WCdtKt)iFqJ&+&qJxVS4+%G4`);&rvfw zA~>P~@m#zgv@Q{5YtljK+N~`9L;}Wk3$Lq0v*8FiaQdhzjV;bFWN!%_pmedLof-r; zAKmkrXF2k_{(IFsF*TpCTeax4v9ZDa+YALY{l9x!<$ntEv=a`dUzo?8SmNg+C+hx!q|ZQ~Aa z8-NcXSVkQ2KD|=$unu%dU72~itZGtBix<4c2b8M3bp)zd>D6n=88-8N-cH%e2%fX} z+zg0}_83eWAp8da*1-7DsS`+qx;05LLG@WdvH@!s5v~{gv;1 z#2{zK?{Nai+YF;^Jx;61_}F>MS!y1I(>SmgizL?r-&x4z#W!Gc9Da80@Dw#+d3it= z*=YD@_G={C@N+b6Pqd0*@1#=cN=^%mDqWBl{P{0^RfxgJWFiTf=8&O>bn#MNSQ1?OlMZ91K}Q{A9_%g|@baGCiA80cu#v!G>%MlrA@GnA=@6Q*e+*}-Ph5XSTuX{zV|`#|Xp z`~Rz@<)_~4jh_i_&XTV>eX|$x)59Y&PifA4|8|eHT|djGGP_^>uKny|HxytPeEBM2 z&tn12NCIAI%bgt{#sbOxaHbZL{+|T(@n1lamE2)}ZT6GtE6;91vdaw9g?`N}3q7~4 zcSs_>SN6WhaikB|#vFCbKFcNsb=}c9Q-!imNlAikdew}_{`oZRSX?EA)ewvIwEa^U z3R3yuw*;}+0D+E|AyyBwCU6=__pAlAs1hDb0+x+8Yv?6ZavX@Ol%IL+X7y_)c!2ht zU)L)c%|7k%lTyrPvv#HLFMbdrcdxtExFH#OgE|{?c{v`&j_{TiXupTJJ_|WumGp>9 z7J>d(wg%@Ubui5*q6l*p5%l{btNNf-+1!dTR(;^`Bjem7!`Ceyjat*%b5hmJu4~em zG$i3Hyd-=>u4J$V^aC)7`|B8S45en8DbcFLY0;{pH&8mGZXFC<18BmP z&^3jeXu=s0jS2NUGbvx)1&)Ls;+Z_yKm-8y!BTP`QFZ!cZrf90okR7*oby!7a>fT} zD^^g!D-7S>t+$f5#Wt4VHn!R(=J5__{bcsS)#BQj`Nn@7(pBahQ$jWjj#$qlYu;d% z_HG43!*FbDD682Km%&7ItQOJd(&SUjn2dqx^&KERj98Vqbha9raGYP;y@+mSP@%$VP?>;&woeUur%8?xjZa)~m zxRM?<&FSN-DnfG7;yNO$vu}Z0-%lL%#pGr1rsX}n5O6gPh6lt!x}Y|(3@-DS$KU}O zyfIPzK1ov0;7ujzPc9kY39wrpu6pT10xWp|t z-CUm8&lG`q41;Pi*A8V&DTbrD00Q3#;0g_(hXX(Qm@KN3uV<|LAg2q1fyAl{Z6sM?mr}5(e@nkt0tbm{by@rIfFUuAttP?xmgHbZNS8>A)shS!%B`3ak68hjrHsL;J}{HM*6P%zxCJA z92)s68Xu!^S-zh^JAgxmcB7+S26BwPJ{bE6Gp?>6Hi=wl@BaJ$v;Z&pIb^Ygjn&^L zjF5X)z(sBZh;>D6&W?RKmHlAZ3SFC{%>RK3k7E5_(PO@}d8PNf>Q7+Q)sN@x3A(<* zZWk82)sW1D;jiG~{P+6!dHK3#jnd5{8JyLUY91gBM~P3yGesI#AQ2f-PoKe_r#E?t zPB@3v5Z@6-c?5ZF<#PVAIo$OM>&t-crL2B@2aJ&tKP!xXw$#)P8y)nRr{Q?*4g*vv znQrW#ahp=8P`Rjk0KGl7@>iTa)QrXx_!w_O;rwReh}u8uN8#e3yt{c{I6f(T&?zI- zG%-3Z3IG*pvZ;zyQ@|!ppGq94N@%Q@sLaeS+RPW3nY=R{XBu}Tiis5m*SCaQX_{&J zGecwN!DPDB4c>0Nw%rAOpHZ%T+7iw3J4v<0neM6eJ(F)e zI-eL25DC}TFG4*M-O=``*Vp!_-R;PxH56%T_UwxuyCjl? zK~=@~W&C|MkiX(!rebqb?K>)-&>}s2``5>^IQ2~6R^pwG@5O`+2Q>AMIF*5ym|ie) zg8iV#*~%u10J$^ljK{Bu*r0^|?((oHblG5F`#P5~wl{{rSl#y`Aw zn(Qtzm!jZLw9kLN8mXEd7dg#4Q=b`$>_BFO;ESLeoz~SNNgW9W^+$KxTI3cLLpzhb z5kFy0KQCJgpqs`^O}numV$)H#%B(z^5QvdsUD0Y+8M}wloh|8(Ymr}q8OT{!wYM(2#E^LQp(HZhW zLGyl875F1k$&>Nbeh1)B`j?=_KO_KNQi_^wh{*vv6P*^oSrOw7uJ&(3oaF}o4^8jk z&i41m{eMujRux6fs#-N_#ok(4v#1q8Q88j9C3fvqvn{1|)gDQ#5PQ?wGqDLRt=Jl~ z>X+|*|L#8^SFUrN*Lk1kIp_I$JS7fWMAWlso=o~Tx)a=0Rt&Yp@Y1YEdf1gMdtW{O zGlfgvzdxfyk+)BG?((iCy{P|}mm{O;`&V%Ta0-3LV zn92q?ebK!q#ZO=?!x0^+ZKawr1W;95{t>wz2fHoKAzwUmSf#JyQH>*FB6}ZNd-@Y& zVNq|Ds8`{1JM%~hqz5wlNpgVO4aL2Pfbe|O`cnsabZ&67md(ec#m;tE4hf#!$-z2g z4*a8-fzz#~;#dB8r9qkkuBr@QkkAA7*-`rW(03l}H?<~w%Q`b~T=R^UjwAhx7!pq5 zOTT`f*9r`H${U*O0!!c0)PztHBC$*hgYr9Wiu>R}``kaoDk3HWf=l0Mk)Ew?SEBP) z_NWpM5%e?Dw&h1mV}`(B(E(XT#IR@ErUFgs`cNPkVWOZ@96srRygitMCw8&&<{!@2 z$kE1`*=KLWvUX2OrEFNL;#xo^&FdGUe-bnn%1e>Xp|_}-#AH50mr;^RNEzlb9~1SeX=JmtIM zz{l6AoT#v>KESO&y#&Zjw^jo}W$+#K=cc3VYAyM?vhSuJE;sa;(>${2CPvWXHa-{6 zxcHNA485*=$_)xupv6&L_;eHg9&X{z9NoK#(DLz~Knkjn6gLrvMHS3IA<5=(PbXUd z)L{UcGM(8YGLGOMf?~5+2AgGa&bPOeZ3R&>L;O7@uQFZ~1*9fi&lw?N8mY{HUuMwv;nmb1T4;ArpO2M` z16>(R?08E3k|aqp)uH*hk=N3r3In(#JDYp?obeO?`@Kts`3 znWl_Rg_`eob;Ai;9)6*ny~M=M#y@#~Pd0e8?%w2$ugZqpc@Ubq(Iva9@ZdvmSNhoI zr9~uOU9_oVK`X7dHR0d(y9=Mo)K(=K*A{iv-Rvmn+l`=4xc0U3Mb%bcJb;B_??dqA zJm5CqSSKxRjfDC+W_vYtZ&Vf}^NJtgM75Lb03Psy&kK3ccoAs|j=;CW1dc|uAimkj z+aof|nxNW^$k;Bj3a_b8Afi*c%t4FKd2WPp|@x6w9boILJqR zWqd|WdUK1#hp%#xQYezVUgFrl>NOZWcC-M=7{zIJaEYA*x9e1G#m)EFAq|q5b~J@TEPr@Q5v6d#TZpd~5(NZ)y+`F(;^Qx7=;^}`#cpXWJ%VS_ggi;BEff-k%8;DYfS@MKTi z3VZ2!TC3l#vrpW!KVxVY9$VdBc4;j$+?NA-i0!5g%8A2FUGKHntPUu3aLlM)(ZVG| zxqpIZY~?_~&LvwtWGH5vMS7GDR257A9Fo&7wk6H=)GgPAU8}N!V0w)1hM*idQVJ3j z>DcUKn98G0HC`9Y!^CsJFMXY;XmIQJAJFRe&epZ1cgr0VYS)yu>JK(`$5B9pgyB_- z3l68Y|6>8N%Zl>H{1X^g4##PWy?md{t7;cczs_+IZb~;EG8eM}>F@)HyijWvwGDYp zyMkP)Sp5M=5n)*w9~)ESwvork9kgWnbL)6}pW%tu)ol#j)tnA`dZXlqJoFoD(fcFQ ze>#EB^kkFP<0ltvFalZgw5no=zQlA%pv-&+rm_ccF|yqklj(vV;u#B29i}q8=@Ckv zG=LD3gmSwdJKkCFJpK&R<_L}x9w`emrBiq}Bv(&9mvW)h?WVw`|GW1VHuWkmA6>syYKssCcN8b_=LaoUW{PD86&SaU#^GW=sNO>If z1qX)?AXk5UEChcT=iRjj;70fNxH>rUVs1C_Z@Y<80ms=9gO-4PVuYayq#@rVi6&Ji z<4MEOCAJXm_Ip8LD)!&_S#8_c*{wz@1Y@%GgW76IXGC7au=C?D0I?9MZkt?N6eDLU z(sB@=Z|icr1`Tzz3+N}8qJON_?W1k$14;{dM9^>!F8wuF9MWiifps) zZX8bFc4*3L56_J+XMjuCySDyr3fNT}0&kq3R=2UmY`-XbEo0~OK*ZzoW?=19e;+zi zr#>z87*`xk_{WN3porMY%fE0bP!GwsQ-Y8j?JNKA4)CJVxgRa|WypCmVNwTP!gIW+ zhmk#(Z0sc^!cEJ?Bs*ovM%C9B#Wu1tCX~?r@JQbRjV^*Zg!tICoS=5w1XDMO_hsIU zu~#vMq^BXiFSRF(C`PY9YUu}rwv&S{YE{X`27 zTNE&Encq9~Mb(GIt>P{`NrRzDuYTbj<@*P#Zzwo9-u3BN@=U218eiCS2rgc2Y)Ot$ z120Kf)bq2z?B#E+Eb^qoMZjqby2<`tZvci2_li#Ffk3~tt$te8;tl+QetXtez~MJB zy+=Mp)x92~;r+_-CIK9&!#VR+yp*#%d)q;Kh^&~63wUIk5$8?)Nw+>SZc>l>UkUo( z7m676Pfl#qLa$3J2v2M_ruxzRsERJYt>=f&@ku;ICS~sREi>Pq(tupj2MeMvTt>Wl z;)c-}u>X$>Ji1wmdOawNQ>Q-cm8qV*9%KV3W~Y8^gd|Pm`4+>M$AnlqO1VwW$?&*b zDG;@$(*B=8t@8%L$2LvfNjSDgQCo6A|h9POnaG&rPfT5ehKlDXCB zLQs8^PlAoh81#yiL>E)x`7p7EKgp2aBMCA9{`()fRO&*>7cnNn_aVPXv1-$DlGC&P zZL5uG)oeyd(&#|7@~7u9H`Z?ztLFuet7guA$de-X^lY`u`jqvwWzlDrJgR-;jC??V zH=?>(!a{o;8DvT^FIEae%o-2XzM?^e+1oE#aF&3Zvl~1HZ;VJ4AU`dLz(Q zQY41NT(Xkkm+JbUF8#=5tAe26lIQhLpw}rrV*;2%v+Ra#E9I4Qrl&5N4=riTf^)Fr z;KLTj9S6l2zYkvf(Dp>YWv9Oo<6zeFM5p5WD}!tn3XASm1uZSJ1aweuH*w4O?3JCm z`suy}a3laojRqn@+nOwGf9F*=fx>L0{gOw*|Cu94=+qMoz>-TA4S#B0)M85Euh|@c zqE)VW9YSUk&ZCg$f9EOw5gsbK`QYWB!E9r(A0`bfXpI99q6;nC`1?HkAWo^;GMO@FkaJ#e5u)yzs= zRd|9NJaiF()9ch*AnN!enLxqLu&XsGkT-FS_?-c#3_|I@>P`N`Tt(>Cpe z7TYbVl-d6#_FNoqB^vP#6Rug*^3>)$Q!MQn;y&qVZvqmN@ZdQyJJQhP-rwyfjyRF7 z78?89I=!{AU-u@?5wPB3^NqF;b~_hUn@}WY(6NE!GKE+deBftoDuk!((EFY zT@mq6>2? z?aXIMy9LB4x!DqgL649=FnWd^EEUtJBP0N4dStq_l@^zKH+wOOuq_euC#t~zqAm0- z1+Pqpg!`v~S*Wa%r#$^IC*xQJX_w@dRqskci-y-MN=9(oQ?Y+ zwe<4$1dt45=5_^i>_GgU24YaZzD2l7;_}$6dp^YxqHYfDl)a7}?q26GHH`UYYQ5%@ zWvURm{BUw)m`rICfHiNa?Z5&!iiAHzI{*_PGGhl1Yx3VzYyjQ+bxE)d*&0h@A5AZX z5^oyZvpzt}+*M*7l`{o%C>JF9~a>+(g!zLFAXU5Xi< z#dkZjv#Vh#M(l4L?;B}-bG8kj?sdqr?ox{&M$Y<`5I;K0y1S$v38;!HYmAP5LR+sX zq3nGT1ZS<#c2H)8BBp1cV0yM0Kq`dvPf$Y${tb*CBdFgjy{%Lk|)hJzJRM8FYH2%6+?$Z;rdmX3Yca^nq#0!HZ) z|EyKfjE-#yY)qMhdtI00TVwc-lCkMDy%#Q4_#NVe89VE7BV?muARiquV-}I|+e-KC z(ddDJ@&Hgp(@xuyU`6C|s^oX#N-emRWh!+?Ams9*zHzl~H($xkD@Y=Uxq-)xivHsb z8*7(hkyZ8OzT0YB^0=nuJ$E~M-wVy_o$5neU~OW=kL#g10+OG za8N8BbJE_^VDvP%7_$1iA9rZ;1(xh~^)&1Cj;l3Droj3hELjZa$D3h0RdEQBv0_GA z6O@2uA4tRCdy|e$Onwm#=fH`?-Mfye=0JXH2gid;lixjIcx@+BiZrRaM@M0qHrtc@ zQat1xrgWR5Ur~h0K4fC_YSh`s@^Hhm>ZhUJKz28cp>XWJeB(V_*dFw%a9r7VyZx=_ z%aiZ@x4TyAd@h)t)RZnt$F<|Pp4>0UEx0D-h2hxzmxt!9+hKDO0gt;Ly3xOzJ#gh^ z1H|^eNh`Xm34THS_%e)ceSzAAy9D0-1!}_08!r?%z0_18^4G!c2JUAcF^YP9!P!)Q z@8;$pisa8QB1PEiJlT2TP{yzOJSjkd+u2BC*}?)#$U0 zs=A^&nH_at+uom6Vo*CQ#OjQX2Ws0bzcTLKGY6O-q#QW-w0#kO-mT9noBb%XI>BvM zIPKC@HxdH-NxbSqdr(g=6zIp2%y2@tMEc`*l?^~?!58;+?I}=vHNo_4;4CmqDi`&R zbMi=UU6Oy@jEcaHGd4DUPFQ$edr@&9mie@5$%=>IWW+!Hg{802tNpVRt1l1R&^;st zcL@ZqR29QKHvASmQHV9X$PAyt$gPR=ExnGz08y4*kjBqvm1UT-9IcMv{O!wsy|4L} zzuZa#Ev6FuNg_8UHp~NLdCE}HHQ+e9$`iA!GF#qHrve`L$QwMU4$k=8UpecCZjU5Q zwI-V=VE~q;jK`RgfpSFb%$zV@*=DTo^O@bLrY?x+zddQU;vv;9#I+zg?MzbO^*0bT z*_eN?@z#ATND0$U|L=o|%%%wgF@#*q0Ix?yTd7G20S^!V+$LD{1)t-#tzMEWzA1B`oq#pF-K2rmxiI@ZQ~(!UYi^r zZN))AqUvT+-Lxly_&nL#ykcb>@WYd5f0_b0eC-K>tP$i?!fwQ&Z0BqGhc>K`ZJ zhS&}}Ycb$3!8pRplbN$-DKKQ(dM0KVZPETo%ntIsNy(W(~`+K(%l>7I*)P`Jw z2KQuk7tm2E(E|MI^$u`6HoN4hUxa(WLu6rYUjC1-+u4Dmu8p*MQ2Kr{VgERfBvCWk zIJVpCLC=qsEO25mvPt~_i%rhF402Etu${+u>1K&|08>$%T3}BOh-~f^fPcHCL!WOM z9~1|XKqHqs+LR!*VagJ}MJqZz9YW-$9#{?X)Svyi6qnj740Pm_epAbu0)*jVGhl~g4SVC zlw^SC1UFVzIOb_>vf@K#P#V-U0Q)R>!P;KA^_?gzmft6r&W@i&@Qz5%UEGW0?T_JW z`NMs()E;x7uV%5zzqtZ$=i(QUNdH1S@8#dC&htMOil- zUY2S5zJjW+66Su1i z{RS_iztPz39X3~SI`4O#vZtO}kPablcz3r@mH$()m`xa zFr{>+Ldm~>xFf6EET#xD0?2##?4KJ-O9vkYh!5Jgf!LnfXtjIB7Ud8nnz9Z%7W3Y95OqA}+7~{TA&l zE;8myQ(wn`)7>m~WUGeh>WK|#xl?UVRnzvVl7lD`gD7W#-_m5}Jb`8Ur>++1q{U>4 zOn(6?TiULl^^<7~Y?*hg{ZA${rf+~;tm)?L!)gjL$orE1HU{>;F;G67aGAFu@j$l< zk9&{)7)7|xhBFzpc@W6%T>J!+;*Q^l$BL4ARsm@u#k7S({Vt7p$JWYA%w2m|R~>ft z5~(q{_sgXN|Gk7k<>=AzJdGMsvA}i<-)2eyb%G!#RuL6+V@IzAO7sO^BCX z7HeQ{Evwg)MVVu$cuH9-edNYwB$jFd*d_*VNO%#F+4BQ#z^AxG?7xLX4QP%aW{vM9MOAG)-MBkw%X&n|tPZf8Hmkc@XvcYjklmz28WLD(J`Y!fp9bBRs^IY_B6^4c__onhQ~ z4)(kXMOBrh+acz)g^JDySxV=xB~IJINw69_T< zdfs>0Xo{BTpfcJKb!rr>w4kQC;g~P-s~MDsGU?bztN=a!#mjxk-XBXzoA5BPz+@en zG%eFN(5n}Y74Q|fGxEsL^{sXE^35TiellS2yyyIR_Xh#kuJkk7rcdXZD-2_If8)jS zKcCYr2}1eX+@1@a1mD5NkS~JPm29bvo#RnhoLu#-51+Eckg$dv$I*|^izc~n4_TJq z0Wq3^cuEKSEl^xP^e~2Wr`WVO2#18BPSq$0B{Tmd!VyZbe3U1$dR@J_>GmABFmuem zyn;-_?h1G-ZwqfoH!p3AlLzyU95dc5Eu)Z<*Fx^0ADkITJx&NR|REU@)P%$5Of9d@%3P zq+RL=m(@&LMuUWMALTl*mRo&mK{7ZRm(zrz6*zry#L-7ghzw8>5cvK(iD*FHTF&CN zrkeU(J%|Ix0+IWWQYS3X|G){Ocux9+psrk`kkppkV&F=?-5Z~J4+1G;*B{r`frl;4>X2aeaTJ8%qsE5 zh@aF(m%05{F=Rs6J?fw?$s6K?`?Q4mo7nZ{I}4XJS=x(xhq{b&;Hqh_)XOb_@$!W` zQ%dg}@(svU{CoER*dD{_*`o)~Y7Ltj`{~?vIjCA_bjD_KNZ&b->!7PD^W!?EpUK=m zekKp9NyUx9?-ksOCwySU)wk`x-n@IbP|y;7uS39&89_EDjHHe5yhC_n0V|zM=~4ST)ctQwAE(Ui-(BfWl51vNiNc+3bX?Si9J0|iA`FdBEGj|$M4r;o3FYz z7ZxpaR|#)}>>smxRflzQx@K>SPRvus>|Qh+aLf`H-3N7J2nEOU=tFgvDB6RI{nK>> z92LmEoOIjZOo9Avt3+fPjOD8+rBJth#^dVD2G*ksL096DQS#pTAWU1{W;d1hdMBd{ zp4x!!rx5L05?Mp<*f|jvr1L}o^dIjOPc*C~Ve_3NsY`c2#l+){i=!#aE@!{@sRUnI zn*;RH2>QL=h+nf$u%do!mFgITI&36Sd`jsh&eYx|P_?!vJw11fD4dpK8V$**o4J{3 zAotQLBu0=H*1o2~>K^-&4Z~BG35krBL+0J&yD_aR)wUiJL(}}0V32;Uf z#?q=YF)cekRr2d68%<{N%d>{re`R4y;%`%x_5t_hrs}Njo8=w;SL}{4xDV%2 z?;~nYIr_yFfEJm(IoB!w11?s|pUQm!l%zXnhJwaQ6Dr4~t5irx!JOcq>$)f%6+z^N z{!;9woT~*U^oO(sq30O?HEcbqTE{igWT`MI1#w#SmTmWUjl{DE&xDHy zH@#L=$*}g{^({YPnE=A0JaNMT?t0HQ9OH9-E*OR^n)3H4zw?gxnt5* zaQfkK15syPi5JKCVcmYzj8=}8{^xyUyJ7|SNgBQBV{bBu?u$b>2y}JGA zCH{o%Y`s0&U*H^URnwyS>=+zp!h(v&-a!H|WtWmrdg^3tTG{`p8Km8^P@_`IlO4NG zloRv4wcn2EUv@9DOI2kmRcHH?RT=6yl(9>bM4h5A|C5Jq+%3I}2p5mQ*%XG;WSsRNYZy#L5RZogsRM1bs?>}P=IR@yM$gA{eo_~he-P`B^%dd7eslYSvZkV za!@5LgVO>np3GKjG-#8%AHMv&{l+P$E#-r9$Vd7e0i=&AzQ~u!Eq|F#2}&TDx_4o2KVw$C6wsv64I=>aBH_dTp5h8mY>`mEd3jnbcae; zp$R^x@YP=_>g#s|>b$CvW&uY)3p3bD6{DSj!&<)|Y7|CpFGOn3z|dr|8HLk3)~{3# zK<_ysu?Yy!GC5*vJeu%hn_&H5PmCI;?=jw9hl$mYIdpG1K$NwtPpU^=9cbANTFQE7 z;p)P;x6tpZgp+n2A+_?7XAcxmd?D%Gl8c#-zr7wH7WQi@9QUoe-;~TM9zafR4v1CM zIc>@+_V<5tl?(OQ^*69hyiK0i80>K!635NkBF(LG3-@aFpbW|=S%D05tC}~7A<*EI z^DFoLaz;!4^F!g>Wgnmv03=R_vv&)>&9Mi8JMSD?dL3yO_uCxw+&PbH zPs>h-1E&G`_j5S@xlB_ZV7NHjQ0?~U*&JXLR`>`E>xf%l;4mG2`$K zzz~9${3ZZJtf=3?t)~Q$%b(KVW~oMpo?*OhGJGDtQELp(16R4;jR)1psNVU;nyT;( zfYR`Cfn)x1KCI$5A3fZlN(nYLr~iig-SFpoS~Q%6W`zMbZuYdQJ(NQFM(zDwdR4|0Cji|g zIr#$XJ$CdA4#qe8?R{O^c;e`HK5K?}bngd~w2QoiirPFtuMwrohtPFpqy~`?M9~}l z+P%+hwZUf(r2GtxWClo;t)DLXR&8qyMzV7yh9dr*_q4y`YTi^xjr<|m zD^FCn+PuI06aYoK!9IH3WhAAJg$9oO4AgU*nIl5(%iXR5Jaex1r$bh-2zrBu#t$F~ zH{+z`mD@8jvkbu2VEOWlq5K+dcpQ)m(Ukd8=kiQ&&R=H?3{96Q#L01Z8XE6wnG;Fc6{piNu|P3gwpr9ZgL>;_mp$(dC|Arzbef=H;?5(no5d z#RO$hIeTOtj|shHx9IXRf?%drn8^eZ!lZEG7*5zxSpyxOaAei&17iV}&Gl~{CVX37 z8$PkF13wNgHeB76>OiNqj(L~)JzL_#r=zp8v*u}6xVBE@%Z7!M2biX}w%?y-G8DXF zYv3Cm%WVwfWBZBzw{OfPJFVLj&JtkgNq8m-npX7XN&+D4`OmTxzhrorQ(IP%sHe9; z`#6jaY!vx@07V-()_5!r{2OFvoJ-YM#pP8+j{8Ug_D+`}MdqR!oBm0W^~NH_oIWPO*bz3Ma%A3jXkMDVIP1nMha!5RME5{a`>f%`BR-IQZb6@RK_t4eCZVt(b#B6@9Tj!M7=|!frp2&{OmRSC&k8sCmrK8&>d5zG>!H zOcSazMPHWeW7nhR)95#kLo4CbyPp=Y zn|~u3h_$gjKW%2;*achE24~U^oy@t6(FMIv!dCQaHGUgKw{CPY^$?_(9_I(j3~GXQ zV80*j!sxZ`@4}Tgs^tv#R1?$*b0Oe$j^heX>4!waSRc^sIIRG)P1Z0^dU%*PsLB5h zjseN1o-Rss|M?)c1QJVNSig8w4Cf9h6#HL&8$sVz8|l7#=~p$Y#e6q>FMF6~t7+m! z*K33NlEpS%@q|^$S{-rkSa3uFErI&|xY<;)Iaj_hX23060{)x(yAN5f3ld#b?|ag# zA1CyPjD+rpo99GPlehKaHfOP7>n$Fd ztfPj5#-1tv>57Qn4taUHtMsZFS>d>SvK=EiPEET^Ae>T_vzAe!j5zJl^9Qgu$T7^8 zE3FMw*I8;D;Hw890yl#0c#c)G$!Z>+C)!exW7^sVgi}=e(YLU^_mRPgU;1vZDH+(Q zkLbb<7HS!{h)}E6SVznQ`&PNPjd+SoxWWce<3~{WriMTn)3bL^>bVzxYHh!4qD0=6 z2ABjW$nEI`8<@Mkp_@__RE{Tf820eY0`NdoZvVQ*)GG|wa^vT0>2n!3#t?_BHKlHN zB*AI?&ew0?N39h6&TDR3`7RO?$4;Q1sWKsKi23e`7P9`M!AFu7iFWnusI z_`RPX1KCqKwn9fdP@f3YCyz~Z=x}E0g(VGCc5(9vc1E6iX&r)g+BKz|xKLqznjd3c zneP^|IdI$mWuR_#?AViKVU6Dw&{hb?j)OCL_|?w3)h9dqDG9bgVU6%dT(@ClUlLy+ z*R53^zQ*vxt#Ksak4$8Q`}0(g8)`+@pEUk#*d@MI9JA+qzl>>Z72Psdv@v z_f^Y!q#8a?26dRcxNQCD@bf_65E!RWF~>1ipM~s!W;jx5c(#!781#VU-($N7WCro1 zX4G^hCxRV_7OwgmLOzk-%iQ!l>a@8 zmpahzLmggpxPt$GJ$no*$%^j!?Ju5=UN!}v?EUL_fe8-XGfs0=cmdBtBr=u1y)Jw*rPSbQh}m1@*qCJh ztDA=)#5WA^$;@Cka~p_%ZmtwLP`N}7XA%;cqY;Ue#-mHP&>2~s>F|Pu0seH{hE_6h8{$Ji&H+_l*$2)8<^EU9H*kagpA9p+s?xPITl$tI zj1s$*dn6AqWY6vCLo?MQc?ZTL7U`{foGZ+oj)Df?oQ>kV^OT&3TjSI(d#CODlCp-3 zl21Hj5CtzloWjUdxR|brgpVw1L+D#x(BX&EGQIO;vgYn0X0awG?tcL{}(sHlh2z{*NYxiY1;zOpRx_$YO^laf)qQ|pq%bkx6h|YOgRRGVN(mwQSRq=Y`B*Avv5VPHtK@pX=YhAiIW=Nygq1^&z5QF#XY3C^NzY)Y;J?ig+Al z1pfF>j-z--2)V_m*$-_81yIlRB(5h;>=Mr7kCkF0FOGu z4!oHxJZz>Oje$h071CfD#fN)LM7e2h8F+|>+)hluw+y8riMIN99#9%41rjUz)+XYe zY2ba_?5B|AMBB#5UfAJ`(5T}earM>{CuPT`YUPT@MirFPU@T62v&f>>4z=~>-1v9Y zm^jf#R@$t)sK@+fL9;e576KAR4jO=XA62N9RgSpc^n|?PN{QYenR{(rms^+C*LG#J zTS-jPW6hF-nX3J;=8`z>N2mxK)xko*b>vxexHweYeC7=&O#805%K#T1Dz_%!`G+rx zNe<5;K?}d*@qHG)+9*Ev%O!Qej~ABggI~Y@he2eysPi!re|7#8WWMR!VQN?+?agU} zt0Q3{KDU!6PkwJgGK0d_iqhAV+R8w+T8lXORY~T0YzYIs5kYbCf~*AohZ|`poS|9?T+isq#GDiprAyXW@(-c&X**Ew zQusdnVmMIsj`uCxMbM0gSy1U^V`cT?Sgg~t%7jBNT7MKHuKWw&5v+9vK%T>$K`(H_ z#+=1pJU5>vrT8k(ZMO%&(9kc4yneRzsOY>@11Z`EKX7cKlc5PGFnik$^1RC>?P0|I zqo2(P%ZB$SMEP*Q%O0QeKlmx2xb*18*lKpyJ2Nd(GZpL|B=;TD=~d6@1dTzGBOeH$ zTa*;eycTq!rVR3mlJYJ__eoIhj7*I01QvWEU6{JCs@_AsjkoJucFb7cgmW>kr@iYB z<%m_;TWD=Y+tr@PA{47(Z-RH9B|t!1l8?cMp)zY6V2*SAw(X^u(Knv=)V{7`GI1Q| zS-X?17BxPj63-vMfqlpNvO?P(QXyyu$&g!a8Kn&`#=cK#ZWS39`j9HcWBN@-|s<#+g%LzuwfeKTuj-}Qp@!Yf92h@L=&c61&}AVRA3=*EP0Xo$VOUo zYX*e?Ws1*{B(;M2<6FfrkfmEQm1u6uXBkmWeY+=qpR+t0f!y7Yvzh-;ymJ-dU3KpA zyuzY>w%%nQp1bYRP^Ku>8yU~8|BxWLv#Y@p>)B24cT;GAkIS?-D-P}IHv+`jS237> zvfJ#;0s((lDLGbAq`n$ZF7_NZu9ty~6Gz&BnlS&$Q+MYX13a&rgb|*C2zo&Tq{U^~ z%y1s%o8b0~j^JlSUha&=d_~SJe>(thCT@t zLH2G_kc!ryo1?lZ{*br+9O-09-?EFoo$w@5h>+&0<5kc1Vey==0PST(-@enc#1?7<3 z%(aVnS~dvpP>#tM;qGCa+f9Kmge*e7#_|OQQq%3EJaN|ULZRJs2Kv2P+ z)8!qf=$eZb-1EZ=!i?OAXg$T9dSKI8iMP8c&?W_Kpbv?2BNUW0tZ4M!Wu~nH61QFa zy21NfwO{e^(1B3goqP4d3FMTxqJV@wCw|L07Ub|hjUOYGM5xK!8+wZXanSKVZPfWe zYyfv!4COLHeLK}U7CyA<``kEPB{jW4nq1#c^Yv~MX1WU~o?H9H7Ezjyt28_<1# z&|B!~T+AK=ePzI05U;eOXnrCs+@TNo^+xD9orXcS$>7<6Ev}%2v_jxlHf8@z?2Vne zA@QH3fJF^RHYsIhH3dBgL=<7-W^>p(ZVFOYcn0}dm)}5TLE7_2ni~eUa50f`47B#BN>=22-s#`P76Wv)61@@oY2C|Akz*Yt$9f!K?#M`cqGA?^;$0@y9Bd)!;=lq-T zcx#)MO3XkHnqVT|GK_B#W3of#h*qIimAxC^QKrdMVT4JT(KG5U4n{+f@i!Ex=j)nP zs_-6f&#DCnI}ZGM_6|u}xn;=OTE55L1Eo=k;tF&qq8!fEWE?G+INj%s?$x}Nl5CTA zhb^zS^b-g7DqJGx8cL^sTM8l&0qz}|z*E%Cu7z*U2nG83&j=3?CbsJ0cdNT*+28jR zttH{coz%O)58q>vQT#pd7^Zwyqjbihm$4paPv(Oc-LE$1tOH*4Su@}W#1>OpHdZ9} zv(euU45V*PK)^4FSi-F4+g(6E!P$evw;aayP;BW-D^|HVzCV^_pZ(YltkfGN{nn~Y zutE(PW05b*|Gf)p6WX7!3fmT$ef>0GE@FzPl*9kTaU+5y9~)5+cK0cxtdCKl@BbN$ zw>o)Quw2WwVc{sp^tq(+|MLQrdtyIfcfj`@W7Pt5fKCHRlP$i1f@wJ8+bmAtSz6rJ zEdp%pRkD!;a>y5ES;_cR<;PVGnq5iS}WEsZM3 zj%AaxqY6;W%}}h{64{33SR+0Zc{csT!HmJ9+WyC>i|PEFfZ|jmEau5e1U~jl zu>Prr2L8|OldOpByr%{}a#`#)dFR5~OWdv84$6f=+J*mBACTvX zx)O@rL%)P06uv=@_S*7|;zvRuPZcs79H$Xi9*M-I;kLFE&n1$T35n+|CV#EJbZa0A zuf?tpGd%lmipGC+3IjKu5%j?qTtx8%M`jk>#{E-mW4w8^Fb=mZh-X_NEg^U!L}zg? zbG$&e7k{vcQr~X7{1eB`CF~624N>M(k?P4*e)aZzI%;YsT=k17|edD}0ViF3xNeLj73#OxPtssnL`=Z}Bp zjo7ZakGdVb^d)?m4kdI8H80e{J9`fpmDs+4^wcm<{D3DVM>(FnJA3s^kh~!~;}4vf zT(e$pJKJ%b-3s3>D86Yj_zIOin_{A%wrbBnZgW^)LSR1Z`JYztf{Dj3@19)RZ|@u{ zaMHgtYy_6M&-C1E^5eimMXZ`EQj)S%hm0VxkOB8QE(1IAhLuKJ>{eFHRoqMr&lqV zukrV(uP#M8h4S2QRQe_VE9N#mM}QutwVsE!Lku-Y)25-a!P0iXiu+%|m1WruQuF=^ zXchfN=%d!<&+X0zV!ime;>X>&&l2d`b8HEt-8 zp5u9VIOU@@<@+aB3UKQ>-~Q| z-+(seKe|_;ou#*t?v)PlDgjzxujs|gBKe&&aaQ&bFz1xQfbwaFAwG| z-P(S|P-B<8mHL-TRtIz-^r?(1aVZvrxBDn^;lcjB0wGyS2vCV;Hp6g#VsB z!Ng}N&K%D@cg$lz?Q*?m;&K1Y)TZ{|PM3DU#q!mGp_op%*YV2NQ;zXh5BTz*j2x)V z2ahxEP`zu+L-)Y09=eVC_gF6t8c94W^GvbJ%?c6t)>vP5`lGa2{?A^y_T9(rS^!Rl zt=nQ-fRb(n^Oh5%SH<({k%Vz^9pk&W>+_oI7Ih8=rKs*#3Y81J{coYYlFv$A>Fe&f z8X~x_Y-Zi)b5HmuupO@frSVTYD{yI+T>|a2N&w$)REB5NRn9k&uYwxr6K5IYg`Le!-XYW6t0HdOT=(s=PsTrwbYCmBk7};u-M!yTj*Ok_qX!?G5 zfrN}h$0}O>BiOYk;i+Hkvx4sszLzPeU0PFCrJ1je8OP)v!Cn#~8g1@^!PKPq$k*w! zFPs<)FEt;tv7DgyaCD#T3j(v@QKEKIFquU-MdCP^V>ZM+IaOUNK3{>epRW8AK5a^#F=!SWRM|W zOX^sC@_F(WK2Kh!R86RVwoD=T_e5OO*`YPRR$D*c23;{j?*dX_k~g>a-*Bb8A==rb z8Yb=s87s@$=KzYvfi87b6XK%Ug_)nI5uwyuwhi!oMmv}A!siX0!FjAOOv#6LIgPsu%_rDRN%(Me^|&1wy?2$3rWG3m`vF`D`a35_?lPdo! zNCeWB$3XXhdDu5|1*zU5#lNLV}It$)j#2y@yBv2Nc_)2QR=rvn#U-jT7z zw4SFlJ!}}^L#l#`_m`6L8EaaJryYD+=ADL$1;&fBt4kLR zX?(pX;n0w6Bgm+WZK(NXBr zbR2HDa{Ikt=dmaxCdz#e{;l_*d7I3mm=~(4yC6M#n5fV4P2)9FzxDvDTJ>~%sHkW| zrQg)=9dM$@0}t)tzg~@N0n*C?AJp!>58^5$H>Qs4V1?H-ef{#yg38*{v1BULQJ{rujGX`{X-_oImy=O*A8G zQTseeWJ+8FCqtwOeYmz?(=PjQd*@9WAKfrgeHBnl{{$r<_t#{Q-a@5w)JK)LX9Mf-l3Nv$@h*7 zZK4)QJ~uIO%+4o_=QwOURI}ceBGb(qf3Wy7L7T)LdF2s_h-$OVw^nk$Tg|}eFN{4i zGmWEVG@tl|dn>QDJC~{GzAgdsox_LKjAF4e@v{uZQwY;CZ=|7^D^ z&)5Q9BKq4>w*2Q?%y~=x!0)ObVoBw#Q4thznfkv?#Lko>CZr91#=A4Mdn$%>SPebG zi1Z5HH*7FVZxNQt`#{CsT1kD=LI4y*U3-a;4{&Dml!R1uE_p$ytfS*jWxq~StD>F1 z5k?olZMa&6k!^D%VHYTZ{LI7V3DK=d6KY%9+_+l{C8G`%oPvJadow^xVy0bE6y^Rc zH#DRhUls%Xh?|VX^$VP)^MIwfEB}}-0+a{-%I_Si99#9R6Vo-Yb>*n>M({&%*oP7N zC1F0Y#!6y#rU+7MI{pw*`Q$F>A20PMy7w!m-=c+o!UX2{t+`UydJes7)e{apYoJN6 z2hJApR!X-`7Jw)1%sW_mYe)yxy(&erc96nHC{zo7{++^^V?a2cRk4-Os_%OYh6RvAAoVRm=~vHaCo4p& zX?vG`daou+KXwdXXGvuBJzGX=*VGkjRrlT0WqfGA!_b>Q+L2{vZRi?Y{i(rTvZMFj3SCG)- zx@`R5L;+vst}-%o^~TrIZ#8Y)0cXC}j|Ht=Y?4d6T6KsFbb+0m|Mk9n11l7KZPxSe z3tP}Z(0mo|ecz^s0*w7N^gpt-`qpc>d?KXtDL$7NAwCZ2%s(2~er3eL@3d8EPv|g= zZa&$q7GW&1{=_R0EqBr<&*^^DPg`K>wo1-ZhXPBqs*uSTy(OkYQ7FkYP7Ughe4KN< zZr&XKZ316`F9=sJdRaEXY$6*?0nUI|s-WFg`i4 z6I02E*5Sdel3yHpr=FgtcE<*jF_HPA0$nu&HBRv-fe5A{mu9GjVOkSc8qh%MMfdB) zUR1$A7;F<%Zbax-ZW)Lj#^fOlp}xB@zItd^1s`T}yZN|4~sVu_V>l{p#Bu-?Hnz;hgK2&Q!+f` zfrX6bv^Mvq(7KZawCX-m<^>NIYClfB@-Rh)a#Rh*AH4Nz!R1cN+xULz&)4X5 z;3`-p4q&-xTplH(5RN2Syr(9f4zhv&VpuE)vB;7W8DmSP_Fv>c-~t;3$C#j9>H8zs z=7eOjaVR$Wsm;}0M+zklL_SG)O+nPy|3(&mEj4m*m#$Dxo3|K5?EDBD&=JM5;w%fa3e0Fm7|?Mz^(JBqag)m8oQj zG?=#j>qi0!XP5UucSh;dCOrDABzkb33frG%6d*uk{J?VW;UkjHqDv zxzvEfienPmL>vnJ=Fji*;z%J#;&FMV^M&-^XI>M^N!yeGKNaX9(gA5fN-RMl-mH`epqeuqbocB}P-*RL(l zd+>JV621CVl*)mbKtaPm4t!6#Yz?~vtHo7*59VBSVPiLD3LgUHoVP%0UwUFtGd61jJ1}n$1GAZ19l|zl@sOHs z>*zH+Eq+#w&p14T56Z;;w>iSmH=kl)ILUhi@RV7dQM>e5vZEq?dE1)ExcZHR#!iXe z$iYR-ue~g{L0a2bEYtIqe5D(cga%cKD-=I&eM%wARl|UQ@^*5?dt{FDzV1En$EyYA z0tgR0O zmUYT7(F5XtT7BN-unRtq6wN8DGTvwKZ$k?XW7Nu#JXdkOLz93&NRGd`89FK=`JtUC z)0ZE|W?t-A&5=lb8-Eh_b<~_eoP;zFWLhuJrwF^v zy(lF`4v-%QJX*i-{Y$kb?eZeX75Nj!MADc=3#_m|mbIVk7L^?)xU1%|cwXXBHHGTK z5`G5>csy)&jOBH~V>|*~rrfXcc<)TR2c1QNgHjq>1O&5i`6kg5*(f!|`_zX6;+qS> z`-l4N@sa+xhS}exvp|AX9h|ftnJw~d4r#(_3S8c66-SFy=hrRv!qH)RVbd`f_2&rI zPI3noh+)fqYaDunX#IWDL42>bH~CB{IG#J?!jI zBPdHBf~qIgN}-}WHNIMwy4^0AgDb>SWDlYGcU1PTxoUbV2}cJXPdNEnW*AytOIL}R zqP7=AQ+azG*N4JA*tzrNXiC6At50NWDBkD|FOK0c*ksjOYQe>w_L4Jc(c`K_y5JEu9VEk^sX!n51&VyjnK-U4=RY#z}7h zWInCDsSBp6i(yw^q?VeiqR#GDD|sHRfN~C6M>$B=gZv?{a z!}NjxhMjDLJ61GzIHfcuSZpX$UBsFnLL`wkG58Ac0o`s%s?C!V1{A&w04=<$*9ODq z_$Yg=e_k?O4^Z4XUPZKyU@Wt0+H-b|00!a9mhCQSX@)r)sbJ~sXImpLprcA2yEE4} z=PvB7t8{c+e?GpqS#{^-T1lgmMVhFHk6P8d$Kw4bR1F?}clmbB@ z=mEr}oQa$$qFP6MEhh^P^I?5i#Xq}ojHb7h^CXB)FTu$VER9o}0-7n8lKP_ESgm$F zdwrg-^Ar=R4d^{r*F6D&7ZA<8%&>=dvovFOktKO0EwhTgkw=!7-?JM2`vkbUaXn%K zo6bpmzrF20W$p9N3Y;~=kyDECh zBRF){;@>@02b0@5-?19}`=0*L!1o$AcdH@`uvYXem-FWRee~-=!TdfEfaZRyx&^q@ zv_EaiJ-Yi;y0G4DeycG7XQ`MqI5?QqGS3RRDN9%?WF$gc8m*J5KC7wwj>>o6wFn-= zP4+ZeM}~D}BScRh(sQrjHz>8TG2~SjTcog{dz(p~Nq+hZN74suM*J|Dg@&ySCHgHU zyW#uO-EH0Bc5rtxtUK_Q$hbRP3_|z`IGQMKd!>EX_hnfXSvAY>tCi=ktUA8T3G~9s zk&(rHkH5|ahD(zN%s;OTRogf)gUWal(BjpH`UJtJewdvNEZUwP9qoIii>~ikAC7ym z{i5My@d)l@?AJB3lXvCqGi^- z&C|z-g_vaei3@ibO2m<^YjTi)QfI=v3{5Xr1?b@0#0tJ&o0wXc=UGsQ&%(l^uJL!SDK$7uAS0H&KWaS2Y7E*-`_>9riz6|pVvAX5#_c&_y)`Y22iDq+p7z6ul)nu zlEnXQY`!C=5n|jK^-Wc4r_%Vo(D#k_8z+ora~~?iRpHO4B~wb^=;@$_X*Ug`hKam4 z$3A~fzf6bQNsXqn5zh(K)W=ryNY>!JRTl`szXIOIEIIaKjDxG(`TZ?aEeQ$S8Marn z+&LF)JF%;bsjYE(^GOT^>kIhKd@<&4r_uE})31)XStn?I!mM+bp%P~VZp#+r8x_M( zmuw_F24`dzD;VZcTih{RCxW z`t{O8F|(KRId9w>p|vQ(-6xhjspt_m3*_^iX7pY`Jw4HtWp!B#u9LpI`x@2|3zW#N zmgfK2k-vNerIsqI?78}m(khSZX4;(QK4UFNG}`0{Ocu>0 zR(&K_o;ixIS@m;UOHSumarvWh;)$yE^?#S*)s)8K5*n2rcdKz8^Ju-3dtrr5w4pj( zsJAt5gi^D1-DuM_KeJcjuwoW2yFhVc?#v&CE$x_|iZC&8w#4I=gf(elCLQ%Ha~rp* zEIO*6iwnDUTg^EH2kTtabT?FZR3G=c9?MD3DkM=!V{^s(A3aG?grOJ`Zhs!vg^TT*V!$o#D`B#$)uR9qT1ku_8R?Wo@ zZOo8m!P3Jdv;WfqP$Q*KvI_XP)a~%;q*u;l@##$wLVsrCjk z&t{6xd*0;aiHV6xiJ=V8m1csuk6);Op3*t=UR0~N)Ip}%%lHP<@2+1jHlZV(vu9Gz z->cOl8ok;cv~LU`#&bRb>ty&IqI@xfEu93Oqst*-ypcdkHAYDt6R7ka6})(FkuNG^ zE#UCzpX3g{fmI#R%x#VDO`FSe&Bp@bA3=ROXf=~gP_OB}X z;U`-1lijIGWhS-t1dvMuC{@;FoX+#04h;jYyf0YSPrb40`xQK8t6FMwb-DHr*JHwD z!~{)uPZ0Pu{cc-qP-Yk3OV>SVr5dwCSq1JbtQ});(Xka+&E>lu zTsp^{u49h{>V{d)De0Ssqjo>{po+=sPXw0tNT7ANCbCjvV&})0g1ZOcmmb=o3;+IK zaWj+_P>O<~zg#ds-ZNp#z~efi{2r0Bu5z|8wBI4JXu38W zb?{%+$GjKIErr*W+m#2p+)DZIr)?wWb+4e^_USkt<*b}H#^nz zJV_wr8O~uk`S&&_Z+5uDEu+0Xd=t(A33Uy(`!e-sFhOq3FpW}ar)8vqs^6+CLKX4> zQ-5QD3T9qxaCeXG&5y53Cvldy2KuIxXj=f!5ypT`ih~Q6NT87IhwV4&i=jNP>#Jv? z??wditCImry1iy6F4(FZq9v&P*2;1rStJ}0qC+qSyuI_!teQh3t&M(=f~13S`8;YKa6@8BmMB6jUDR?e((OBE&3iTf%`7Q z*3{QkY#FQ-j8NPrQ2x?Ws68-b!bEp5RJ*$!j!u;C-(INy{6`4sOL%RkM@b>~Aq0=; zW$0f@Z)Iv?BuloaVpsE$m)y?jyA*ZG39Y#89LI<(J>7ux`i+Ri7w)%d! z40>9%guF~#dj*9bVlPW-Lc0<;>FzLo-@|48MnBy|enpxF;Ks2b{YwPZJst_#58PWj z&C|)66dw>T&oHt|kD3t_4)V3x7(J8@kx2m&+AeyF3O{JPmzzY~O0c6AAp52!i0y&zPfh1>B4&_O{J+iJ}!~U+q~jPN%8t4 zm@3lk=9gFQ9kLIr?=V&OE@QrpSOBGn{r(QJwC9xE@J4&mW#otcK!!lC=)c_OUeo&7 z@B{A9Hn>s#69Fds;!bhJh4CpV=pgnh(XLuL#E6bA;gh@2OK?lqhPg=mM;o#EK>u7f zK{AeaD+b%&OyVl!10koSfoK-8hvv$F)hNO0Q^QESv+>ADf?XHSrr3=m1{#U`QFZGq zHupnsWpE~Wh+jCcp0Y_#iY8ZtxCYRevVO5CATssI)lFyn{&zJqce^?ct>^m<`6L=^ zBp%naJd-3usBq?$i_T9DIy=7geL8(h(ZW7u9&sBhNtG?bF+uh$bfaS9iNHe zN8TNZzury#u@-PCxK~wfPfa0`H|m^8w54zeC{&h4H(GX)`ESE21%+yBLM=RCCjP2b~{e60i3gzQHa zDd)b}4LkBRN}bn#Uacb6>P(P@>~bv*Tl8Tn{|##H$>NKK85V)^^SL9FNZhlJ?zahq%UmhF=oDB67q;=aonX6 z_jD2a&GRhK%C0}PJGcmyrCh968D$fCvHig+V7JnOa7me)UREoWRpX@|W_kf~;He-_ z`uADIL5$tRK=(|y_ro5PTAK#6uGF{+&7u&EU=;D+btxFOn5t`bU~3(T&+vE;fsn#wotie)Ao3rG>=3w>*M7S_S|v4UJ+;#2}@{IeG`bJP&FlJ z7TIu*UeuNlfA)Q^{K3i`iK%U0EX0HCXzqna6?y5Rv&DY}(?wi;9c>c3PRt-fkzt{L z6cNw*K`yA?`ubbviI9|CiB`x0b3MVjHK%gX=e3KxhQ22R^vWL)PqQrOsu|u9x{2^< zqKp!q;&k;z4K(GhXEkSgArMQq>VM8>zgkViEgv%EK*W^N72bdd zHD>j_+MMMhf>&zRrYQ~?N-)v=n_nyyWJ4Yxfl2+WPk_W=e$~Ay3qh8&7)%gEtzwGv zi8vMDWC~lY;&S|lc0H_@GrG-P8v(^&P~ndWVE>e+eTZqR2#ULM_NiQ;7uyR90Gd}W^>$4m3kQJQvY5EyJfv2 zy)kHtoKyET%)eD0W;!sT@NbR@%8DVLxf29oxOK25KYz~KeM8}S4-w3o7U&N4^4N{j z7wE-)4ki|DiW7>g36^Fc-5!QblqgYYu6EB9qf@-CE9MNIJqMdiuw_}`7OCdfYfGda4>%K~|-TFOCNtv{} z;MW7y6;+t&H1Xkp7@x<0%JMUYxo&38YAYngtE9Bn!6Ct9;ZKY2*qY~R;tQ&>C3zTet4YQ%2J5&H6GOt;bbc zahS!~-Q6$y|EhLC=5lgCEX*f_cQS!(ehBx!^b%9(VmBP{v%qE!kQGVQ+;JIrWg2sD zK8jJ->~c)3Iy5-86>;kX5;FGt8G~6;Vf-#cJY=`72zFB6{$Wt)6*b-GZZ?Upi+NeuG(ep~31lvpeC48`h*pRBJsOIvso9cc z$#_pRF=T`&_pGg(bG-N9YDnAh`AFDs)m!=a>qoDK$N<8KhE1k}-&M)kvnvc6p|ZtdM&nbI(er--iK{p~;onk5+H zv3O9X8!8cVK3!2x8%!e8WXLS=@La+Dp~ zuEVpn(9qx!xQCm6loGBGFw9w~Kk<5NSqK)~j-ES+OhHcxn+S0iX9ATzkR($rb4KIA zRZ>se1kAO}nt-(rx3+*^+ZK z%(wmp5aa87*W8-eExfD;JO4m4TFyV$(@3p4x+^DxUa!Nh?9Od;?pOJ)#V$wW6x?TJ zoLS#egzyR^uYqxa_tUZsb?O*zOu)P!YVOiA%|=y5;+fwCDE?!YWl?=^=9Z12dj{>x zkVqAun#lbmXvmYT^G(*hnz)`izVGTbSJXb2go%>!Y4i#F$)ckSb4zpELG=kVaCguI zzl*@}ZN%&|EjbbZVOIsNTi#?sb*k zab}{sFqnP1uJ513d*E04GvMgr6%T@^>MpP;uZYhdRhReKU>K7?3|W?wRHml!iJrLd z2;sjnm?qfRqxot)lYu5!&V9wHP1sP9fnZDRrBJi=sbjEMBb?zay@d|*ew_%oyDt*T zIvC7>JhY7md|#)!mqpeEq{*XaN8sTY0sy|k00wA@&4D4t#LAy?LKRcQ)xmy|Lj+yA+AEF-7y9*U{E48Bg;+a|& z)zJ|eWReI2ll%Ud8dKzDP}ttBm>MVUuQsf}kpv|x;BTW+_JUZgd;Jsa@+oIljnV?% zbUY0l&oL1R2-bCMlPm_w4h5n);mis{BxgfK*dVn*3)SSJ9s+<2fjm0%p=l#`u!t*% zg~4L9%0u&i-F*paE#tk?_M27iU@#1q1b`+S@9a!cvoenTup;X;*&}Nl zE0Uu(IjHRjy~!GzlgtNIS-3;p_Kqx8l_4#YuRRCl>y|U&xUs=Hu|y^L#nY%xENmAo ze-Dwck#UXVHoASC9=E3WhQvp5ATw&OmE)%;_MuD+Ou!p5VA{6QZlBowdbEE8Bqa5r z9w|p8Mne5_^}~IC!O36N?|4(Djo$Qx@^Yyz0NmB*dGD`7M`0un-dY13_NzOBZ3aSgtnECtCd;aRI~PLE$C1br+l%8xUc;f?v|~ z4t6<6$uy})mUhMjgXW&~;UiBknIMK?yFZENrCE}Q{ex*|=5wvNKQSx()ty1t@z1rY zx?HabeHuyHLj7gnE~#2i5&?j@3sEmBIy&Ij*Y{^*<|D&b(<{wgC~HXL8@6fX$!-cZ z#O?*IlC@jrU$qg??NL;fHfBe$En(BzM+#iLN^ah(CvcfV=j^@r(?5v>A(?l+U^98r zf4`4f1NRV3oM8Q-rV70rWF~}`G{0Z=QJSWI%It*KO6t7J&eeSWZkXMB0EKzUQ`4v} zKllz>qjZ&t=GT`E{5;q&KaqS7oU7I76}&4S6lCYRcF$v&?l;y=dZYQZ@8Sv=-senG z@RG|D!{F{x_@Q!@Lrw2Vp>2kY*Kk^Zo(uo}5NTTA9RykYYuY9eNMn@u?&ExHds-AG zg9Iwt%KHo<@!ZEV*81%7s!K(WTw%T)0pFD72IEuI+9TLeTodQ@Y0P?1!$5SJ#Ur{- zyZPz?#+9%y(x?U6>15zWJkLR1p|$o8Rm)Y%|8^URKy>`(wi^ z^}wOL-`tGC-oG?m;N%(Fl}AcN2#h&=C;)YoP0 z|CW?bED+8sE^4;fjppoE_jexxv!hH03{=p|*}LZ@T{!qyBhH2kB7rt(`xMuJ*iA<_ zRAx@W&6dJT7}<6|^@o)nfTyQxQZqEmS;*UIr&~-SVdx+E^|b5|5%B=A+eZdHWR(e_ ze?L($h~c-8JU|ZgcMtGH8-B{R@Mfld>GtvTQjo~`FL~SKa0dNr`&g~aWg79e$(J9W6sJdj>?-5j1?l1AT?%Z@#R z>O%%Y??{+Mq0=aKvhO>ysJO9GN2i4FctyfIM_?CA$+2Xdl%B-_WB87@fx_S(a_K${ zX_(x}ONcLF<5&AW0e4(}k_d+MXdn`G-1)%(;aDpHgw?4V6psCp^N#X9#xgoL8Ioq@<25cuq%KG?s1xsEpiw{0PCOal0MEJT+o!pluP*0dAOTFJoBR zrr_e6>J%PrP~%2EsIEB?(urd&E#M~`}f7E}^;Ve`RS`cVB3Mk|QeO(QZ z7q{pHiGTDzlty^gN^uKThg(-+pnG&W!Hz=1_)j+uOaHfM`)zn=aMuTwbgOS~oVAz%_0{n=ga7XB+>iD4GO+LhlRVCy>yB)tZ8a%GnB&>x-Kwae13b*sB8X08 zo{9@8Qs8@ND~RWQbCxzIddd2hzK6azUXHmjF3_KH9ZkKgOk5yz9tL%>HTT&MWjKG3d3hb$f#Uy12Q2p%aRObr zVqM}5!$7|oe+5+opJ)6*1R6Wa`U?#Rnwg;h&dZU83e8L)TfP|E-T5Pf#=pUlC}9BK zry#7&>jgx2K&Ir@{J+ykLh8X&ND?<9;TfVTz&$$;)P=H2i3`Xv`tlMs%ALPuBp{H2vnk%17b&4=9a`3dJqwGB79>@eXMjFL2yO&@JmDH& zFaiH@(9qG)vg-KJx)jZ357p6^z3cqeqP&-u!0WE_(QLz^smJ0rMR|ibrB7QyeH4dx z$>y&Z(WbnAD}}eOcv@!K#lvI+4uX zDw&*x49dlCpI(mf*+3H*`uWb_gSYr2<|fnyJo^~w+@NktG;0C!OE1C1JMBxhf}?!# zn7o72`+}+0k=mx2h8kFMU5TE@yJM{zx^@zpHc#Im^tYiB)yfVoIUBxz$Zx@ z0}pwbcf3FfY*?OW%m12l5S;rxg~1ZX!gyAu{xPqh{@h9Mt(GmWx~0=t9ga#O0Jf`c zdj$M_yVYM6fD8dAr5?w`jIZrKDpsSc1kn=&qy$PntY`(hOXaQ*TXhKQsl zzADEoVAsa%$SN)UcYtXaCW-rpe-+zryR@FaQoa_B`_1pVDwz&P*T4w4a-iw6cj1pA zbr)5>u9b0kjOyVte==R{AJz=Wq^~qrHdXY@PyeXcFm+V(_vQ;B_jJ;TthAA^y30NBhF|9$Ki<}+Jk zcS-!j;>JAu%I(9q<2T`mW^RrI96rt?1rK&1esyzRFtEH)gee1d+u=A9{PpGfWWGdXjWFJ0 z&mEU3JdTQaSERy%ih8OB>Clsmr`A-EquX043AesJmeH9RDtEet1$|cwug?KJbPAs&4WLB*4!Lg|VkQPZ zdmvPfBIDcuF$7`aZor8{y}J6Z0l{}4V5@@()lsIpWD45Cvf(f&`RT0VWJ^z)H3#5G z`gXO317`-P^<_cII6FAvli;MdaExgu>dr^jVK303#Ft+BiqNI@@Yciw=e_C57hYhQ zofo)SI$y4$DQXqSbfVyJ$<7fZ>AMV%72S{*4fG@PJ?0c??ZU<)-768Lp8Em5iVzYr zg{^?;3@6FNid7OTiS-@Z=M1Hh2RldnpQG~BFBnKXTzuH+Mp@dtxJ=5}l{Qh7m0GwT zRD&KVq;464O_pi>j?Ytq$nOVJJa4X}R%)vyOLp4X<@o z!;|kP>s*Mh1_pRs_pS$R6$XR@dPJ=5jtN{T^Zft-RE_?_ipUj5)|)hxbT)rp;!LNk zP7-q2wNQcBQPD50T=edehhfU&G4v~$i%B`U_b^-67fW3Hh%QF?@8gu9&VWqnZn{8r zKS;snUAx2E$cW|>tu?S1V)5|lLQh^HDq7Uz`i@K!_xFftJpedPl#?+T;1Qcww=+Et zx!jbLh^SJp>B#wLWe}6C?2-pP6BS3B7T>aB^Nzbvq6}gkZr(R%_X|ysHS16@lW~OJ z{KWobvO8i@gG?d`v+!u`T^=;KRo+;5;ax{%N~8}LtOtnq9I%;XfRwgEO*XM5!0|Qr zd~eQ(U^;Mo{sUDZj_kO;J`HUrmDQV$pT61h%Q-N8bKc&;PwY$9Q+wQ4qw28zq)d%0 zE6YFS<(%wC`o~i#?#vvPYt-YprSIXh!Kyenu3ixW+Ym|)Hd$2G20;^Tw_~3xjcPw4 zTEGx4wH0?>KfN^xwn`=Q~(Kto>6Ea<3^vfh_FG%x| zJCc z@lF(HcrqKI0%?&cm|tjB!#wPYwCiT582V;K?b5(K;b@z|<{16Ov2Fe@D)t~s*HD*U zIgs*5sfAy36J*jJu8f&``&QDj2QE?YGQA((?n|sH>hr=$@^bK>05R|ci6^x8I>5sv zpht~-*h*jA&(AM6dR)c$lWLu%OtE=$ZEHxGhx0w&1CQ2+S#4N>&wxViQ`y>zfZ@4i zakh_Yn7Q`PK)?L57mWiLs7;G$DL=q2XrLxVZwiv^oYTe zqWcH*K8ToU?XuZ^g%AbbyBvL>@wJQDdNwArwz!!Z-l`~ezjrUX8E=$yod@pbWVh2U zZ>`PwSRkid8JjI$@C3=0cuz_BJwrF7gS#RotD_VUmQdYF1Z&`Z;f=ynpwHc<9mda< zOT8w2iqwi}0W;J2L#&JKEZ&57Z{~dXi@*8xklH}V-}t#w<7_zhek zmgn-t=YQM}^Xe>8$G|f~3%FBbxD};L_3Rl(IcY!+!wJ-zCmh^f_!i4TTj*N_lew~NGGEnROdvDIYBzpYb znlk)$f?J&YcqyDR-S(z#Z_up+Aj9%JXgGgMT@zVv(vG5v&qgP{XR$C^FWq8E=bM2Z; z`=Hhl$Af~>u(zxI-vp2nVfa>SL3x87luH)rqw&EreM>8E*omU5n17=qdYXMFZgYCz zp)O%#`iYZ-WqW#^>ofTRDvl;Xe{Yw|ukkOxD7X=2CIH&rlG|~cTxoPX<; zfq25=$;{s(+aQd+cu*0cH!`^)uub--BW?RYgvp6wn3q>wP)sLS&EYC1s_#(x?XnU<(l>GHI6Ax~&`i4L2aC=n?ud zU0k|3y?P0E4*b=e6L@}$+t1PRhoDV#&QG-6Q}ZDU*1~T#n)C}YLb^|)17Ag!+2(;Z zKXAPMm(2fuOLJ9G^EjR7>Gw#bfB7UzfZZfKZgEQWi*6n@0%1M^M>J|COCBAp*l6fy z=Y6K@X|nq;ru73hv;k@`g11R;HDJcA&)PmcLIgXE@0|S#nEaI6%h>$WWdy&KoHhvh zt7~UCzz4dYH$|)t7e)z3Xm-<@?a z1;m=9I`9m(#<1!qF+}Ki2o+=CV z{fTAz4p)!)?n?1^h+21tsO+4=s#QmRs3p&_LCs# z5eX(e`Lu{MAbk+?WVuPc9nQ?Kw3i?CVOtNe$WR%qsW5H zwlLj4X);h>ogmO{Du@R$Cb;gmUtvwlanShPm%tp`lPb5L)`#fU29uia&hRJAC|?XQ zc-~Y6bJ`D2d3kY&tRVoFB>Ui>>3^@4+v#G>vQ0J~8L^|ogv``Z>BvPqhJUw9#Q1A_ zLq$uD5K~zI9u(evVcC1Ygk*zzH;A*9%Zu0%C8W zH`RBH#mBo9mV&T*Lgk)*VZ=N+fUt#wN!I%_S7-1IG;P#N<}wQQPnyM6JSO;G%737N zRZDFmee4WL&V0ErU4Dl*XcoELDeKDIWgAP(D*wm@_jPyRsU!D1v zLDZHY&W|5X?+zY3eLb1%QE!>IKi zT2Z>m)5c&JB0Z0yPV(Bg@d|bnvi;1I+&*Ix*Uln-hrV+E`pG1l$Xc0jkH@wW+eeHu z7o#uG)EG)IwRVI`_L8CgY%SIdxWwe^iGQ~6ZnI1Nv$e9;ZUty{>neu`=0!|=dQBr> ze|o0mYrT+g3lTdINYtU*KjG~$i{(wl-MEn_Nb}8&{CMB+_ z)ol3L@)OGG+tpo`Vr>+B@-^W^l}a`X<_GQWORM*0^uv_ zhnlPkEK9#UiPz`!za7#5_)|_T=7L#gP^p(c{snefRY(|l4n|$81K7v?w3(v{9Iet? zwh)3r;E0$n+e)$RfPG+nra5T(3TUS5Kpu0iGn-r?i11%Ri<^`;N3GUf=tm3=67bJk zT8+N(MMHBS|KZ4Ka|EV2s*^Cmv&!;DCh9|^`Lv92Re^0X?TDt_SJAFDbBKFQH6DI=p!&Oc-gmxLfbfrj;}cYjD( zDjJZh2q1RqCrr@u^S5Nil#z?u+t^vmy%g+qkETxlCM%o1IWLknC1y=$5jZ~$7#RK- zC0ia^196C}`cBMB2K$C@yOQNRxDKkEAcrzm`MCdSL%N+xc;Ddv3nWqE!9mbR7x*Ws z;d^9e=)DU`j@yh5Hr$3fwk_p7zEq>10lRL4;@BV^kOGT7Xch#izTU4cflL@RgPyNe zgU$F+3O_ZPi5+q+rpff?Rm3IO#s0B?vD(7FUy8fz*;W53a65h8-x2IrW>9W$9M5%5_0>9@9`B$RLI(kV(`>CFgcgAipJcluK@MRVL{og|S?+hF#cueX z_W{2>zwD);xkDkCq-f}A>44eXQ-gn31FI<|ok;*U10fo`uo8#)zY{vRlG3~%8TkV8 z4fN=xt^esMi)_$f#m?n0}vfhdN$ll$Sq{U~py7)XRRKkEW*2T2&X1%yB&3vD}8XYU;)^6E~$7)xGy&-;&DB<$oXl2UBH&;8;E z*KQ$APKMAQHnw$h`7ML!9RB<2tXIyIb=ZaZa!&Lb#|^9#8EsqMZp8NwX|&ap9RNQ7 zzXMk{fB#$7aQptwZCj$siW} z&RLUXf1v1>+Rydo0yY1^9z9Ssvvg(F?prPPH(6}li?~r^J(|!X8-fwYLtxA$a(D1K zvK zD-z;&_06u|tlA*NPWNXz`&+^QN6#KtnGxd8bAx4HZ73#8uwpxa`>R7I=j1;Nu`D7f z#^smmbyhK~IoQ*;OVb46;xgV8YO%swV6GZ?rmWIIdZaO)IeoHApK{x`2b8k+FJRWa znRzP%$oIM z&5m8tN%4kGD|Y!3S1R^ZR);L|pvOi9Wgj9#rD9LEzYhArjFKyEncs@}9`qmlW$7>` zsv7oaPuGf^Y47c8$M)ooUc;_7t?>!j&v#rt*GZR5ESonV9JP3_v<;>5>}6X$Us>%~ zTk>DGU=7vqah^j^7Y;Ze5$kU?pB-Rvtz+x&(9{wQ^T?FH2#PAUeD3zk(5vN~lQfn@=xVmY}ne zVKKXmSw-t&*hlH54oxHi$*Cbu+`f&2RhPVO6+v&80bdXdr1`eqI}J8TLAx2M zk@&4d8k(PSN>9YCRg#4cgbK5T?)`C7ZxV{D8E!lE_qTt`rW)vVo*!ex9Y>A54>m34 zcvpY5I9n6~*x1Vcfoa=XUsvUBEGYOW{V3Je{QG6issHf5k6rEO#b-~0BtHjAC6mK9BLHbp<$0bBvm%b?FMHKN2#~lou!v^pEMBaa> z(`*p;czsxfA$8xRd>H7;|3+&}vU^@QzNRPCT4&=;MH*{=ASk7pu=>CA810?8DqRk4GYxRAY29r&JUyF7peeAXY3Yh9TnOG`zsZ{FpPI4(1sMX; z!;jJ!#8+*>3DEuu=IxQwSu0FmFJ!>xp0)%9_zrNeT;rSFXhrB#XPpVLQUP1x%>|-_ z(O$p3d-bWW=|Bg*rci%uYoAJcXk~x~blzR^!Q=&-Qug>CkEop!T@1 zq*Lx+R5w8utNZL8d#&+U7`U=PS7LTfZ~Znb+fp2cpHb|CN_Cm*wR_|H4&lZxY4@Yc zld0Q85`Xp;6|8b@GP;=Dk%WzL=CrG<(_zgcF`e}vAEr30aYjdum;I^HeAUR!DG_e9 z7-#U*Y6vvEka)FJm%eA$S_wCvL?!JJ>%Hw%{$y2XDghsEjWIRR5m~O?ZhZ%vlcZ7< z_(e#^<5RE~<@0+flLHUi8$Uu4ei5?A(sePFb`~D_d|T;jt}Yl+BLU*wx^ioHlLFit7yryz!StfLk zYs?bl$xttH0bg`A1njrjJ!DR|t2~ix=kZqTA4)4k zLX+HYBBz+JPSq%eJyJH&`|29|L|R9v7w?S%$$?Bi1P*Py9>bi|cA_x8*0evsecsIV zBJQr#_rJlJ&%!KSq8q%t{k`E+AwSxHI_AkifPX`5+sTg3Kw7(bQANHjpQJzdg=7S6 zdYY?3mNq9FzeE(DHH1kf4Ngn-BK#bIMzOTu_*e>@T}-}V%#xOTMg{;2j;&=PD7!qE z`Iqo7$*L`OWu+d^H4L+1N5JNL*v+j2qvz!xMkoCrPL0-UFow4rC^=SU+LW-nZ75w) zPAi-w5*FCT68cuWr9;wEb(Wu~&ajmyrrBnbj_&I{x}vr{=V<4kO_oO)4(aWLiev$GkdU?i z;EJN4w^Oxa?%{Jdih*adYTTMw@L^6)8&s@vfS3yzF;KoiY*9xqdh?S^XO$&NSAz4u-ItScMsUFML7cwQZnCa|9f~Pq+G%S zI8?PfssZ|(Ch*1mfepa_JTEI=du9Ui*8Di_!~GCjVC31uoI|8_N&l)~P<_O>Jx~Es^poa4CKL`D8!JI8q*L|90$v%D(wa zeYQSM_JEu1* zB^ckCQ979)eXpY52lArm&p#-?ReCfkoV+P@u|88bLt*Ngr#{phG6E)VPCON8ClvmL zs6>&uE$mkuxLzrUYi|G%)hyXwrcN^OovI>&Rxi`R%~dUL=wZxMl2$W>-;h#i!+zS4 zc+0LDd8%rz#o_vs;M$NcDegK*>gXu>C#e`uT^hcy5SXUveCb@p8iXhBf-U-1a3`8- zR3lm3A!D!{1wJ<#=Fq)whQHSa(uZ zuoENj^lo*bFX~HM_Ct%Yhq61?#(&;Sx=x6=rDD1I{Tfa7>xO)90X5IJ1F9%KmQQ#M zhr9*nNkmATU&PF>CM=wv4u)G9?l>$QlsX`g&5*xEA>uB|qdV3VZImCEztRO>>hbrX9*%;(LHoDn9GSjLeccnzmRP&Fy0dGRR(;cB z@l|->YLu4YdamMbu~O@fknr}3MKSInXpi#*n!Z_%4Fi;f5rY4noT%AqIbWZ(spBAd zz-gY&nhaZLa^f4WYtHo4PLCaY#-37utBZf?QvXG+ec!K}^lmx>4Qy#xYaKoI0(J7I zW}eUR%3I1hvIwYpJsd+r^L2Oo}w?A9Ul@*$<2UlP==*usD0W=rbYLa&>%euaBodWN2o8%&KX3EIQTmanzG`lw}ljVh|HMTcdrX_`3oAF>!1 zPL*VNcqe?rqYWa)CyTLGB_%i!%C6eoT@IJB&fODpVb^$R?FX@3Sl0)*4fz^kVs^$W!x=-!b#tBcq9cTAL-K6d59aU`D z>0M%OopH|ZixL!YB6&4K-EvRU-{!GoGjuYcT}*UAqKpsX4JKj1CS=V}7){!jv4Z=< zq4Cd)t~jlEzk|;{<5HpuJB(cZ2AsN}P9{hW2K`jDyW&y?J;%PNh8LujaXgxTxhO#l zW7kN6d6Az@4T;f!7RH+DsQfnK1DmZ1-3PX9wT4aEr6ewoW?IIBv~aHO5l@BhyX^=d z9+=+nX=(h|jPhG&G;ZWE`S;o^2BYYCD}4-n7mb1FB6L7ayZ=oTH}ax*4;$ZIrbpm& zX6_uSO5LDP5mX4+Po$7V2hV!}5qQ`KKms~l3b{#V$PVn>sKF%|de6spxdhXefYnWC z-U=vjr7(e?RXvZ_vk=$yMfclQk%8C6mp+i~bWuHFT78Vv;K?}0>~|Oz!l~Aou8wx^ zBK+TvKC5$xE?TiO?0gNTH+RzfTT6g_z-vD~79 zDY4$PKt!+!v)qi?e}-ShatlR}Q{wwXqJF=q{@S)sT;8lEWikDlyo+s;7AdPA`r+p0 zq|Ih?ThH)~G3nwOe-8DUtNYkwYje`Ge^enro|GsELPj|99;Q>9QOs@FM}6$3+^!@0 z9dBtsK?Wp7aAJj^7PK?RskHS&Qpi1KBu@M1<}qRQG>{$BP`D%;$P;HIz^1Kmy~1T$ z$};~KN@|V+Ob`;nUEZ$La0ajxS^xSda*|B);nrwqCGP1GtAXlfG*3Pw|GpkD0LXyD5jJyrj>_Xz4Q)d z%?JDk7~op12P-O-jdXF;#J5?&n)`~O{Ncv6bKkKk3xR958f*4Y!-t*e)S75JFUN0d zKgAIE(F>mAzMMqV_dW_WHf$t?=d%J^)yeu*wNNjy@UrO-BHcA#nhSkQtapnl>)LEB zb$@ATfrsrN5C!9?^_=oG_2 zjg|~tJ*uBi94B0pa+el65O^7|cOPJRK36el5y+gWnecj@#%t-+^9w?5&kAN_O}QSu zoqVU_=Oda1SpZs)c~Z&&gd|-PjR#|#cOq`<5$6W+&)@kqQGcM=es%~woZgSA1||gd zrHurzbY47}WRPz`g;n-8QO4 z(@v2Ryg?J=MtDs^3w9lfLT0!0aAoyq9u}h?0x#gBl$e zKZxe~_THt$@^59_${%fN>#W0Rs&ey{9*U5;-}kXI9lA+MhKHn+_0qDDc;~HK|KA6E z$9XCK!X{90$IoZJY~=h&Jt>KBCqPpJImXZ|LQOaPxp}S8NM@B#8zw8WMC(1sf_2*6 z!bqyFmFpX9{Hgr;B4uGeUbb^eA_WR~FV)m=en8(v2wU_Kiar===AcH5P-v)+iXVUV z{Y`si z-!{}mOu(!yA6(!PSC?P$Us_fd&K?CHZ{Bt-3GS0E`~Nm!X>-N3F3=Ln25mR*b7Wc{BdadwH}{zW+8X-RIX3kCh0ZWs_SK zzfS0XxdWY%n7Phst-OmB0#%1uZ?W{_etTT9*j&5O0J$g68mgT!V$6tjI^L78st;V0F*s4lv{OOje$-ssQhAG#$4fC9j!7zv=8@MV<-4!w<`oWrVwS$cTu z!gRq+ZFr!*Tm&2krZyI(wt}yHTVi2y zHh~cVsdEfQWhu)CY#eAseL$X(_<&e^rnAXQM(}-ynKuO(0=SFdgLct6(%#)@rTpS% z8*_GL5Q`bOwj-dqq{!j6*S+5*kyMy{zoYaTB;02Q`VmW!uR`a-E*tKzIcU_h?E5HV zQP%nT4xr+gwe1@r-*9FbZRPSV6j(`ITJ72Ru&0AtVh49f;9Oc4 z{!+jox8qV3uLwZ&rP0T0>@sk(w_T`oH!n#4G!R#=I|=@8chswF7Df%7+0dc&A)b{& z$TffcHx-B;-dHO;b~R0{)k>_Iwe@Ht5HF^m)Z5x##&>7xYv2JwDN6G$Da^Sw8a4`S zQ=R7c)q!kxRxINjg37)}Qu zR^0<3Wn4X<*ZE&ayehsF*XA1t;K9blkYUr-c3&`35OpsZ=3z%(s%ti=SEhLQ-J1)(lVyg=zx4l26zxuR2Gl-=He65C?)`Yu^LX)Z;Z(`J? zd-6bj=_2sE=^ee{XALo{f`(vf!@HLTvvLwIDk)vr8-9Su(&;$JF24dS5$n>EdhhYY zxKoG4iwd5Go0FZMyrF?~bR+@W$pvP8Tr*nL3{@E9w_?IIS{#&q+%x|%e%FLpAYz&D zsr8P@fzlsH-F<|VqIq=FpqocDBF)f>I>R^hhYl;^Kd|`LyY^?jW!$Q$weI34<8}VN zV5!0FXxu-k-cl#mYs0a`y9fsoM2_G`)(rp&;Hv#kSx&BtZXU+giuc5ayjn3hf4}o5 zA)H&tcy(H~6IS1%>|^5V*IbXfy7wRND};E05!*H(Cz`wl&e9_;-xc||qf1q=Qf^;vzhr$J<1#8o;`pTKtsv|~pWQ^j%FXj;vlKX| z4qFU!=K^-m_$Zw{#>ZIr>V5cj2fwioI$OOMFi{L!qX_)o%<<YbKu1>yb1tu|Y5~ z_cPg}AZch>)caYY@f~DpHN`K?_e0G%S@I6x+nebw)|)B;kQ9wX=l8^w_kP-W{=SNm zHS&;t8aG?n4Si_6h||VLs3f(sNw&R#ZG^_dp&&@rL#2P5Eu6iZ6qez^G0{HSdNr^e zZ!if+m2H0-PK#YiWIL&@+N^nk=^|#%^kzG}n=6l0#!I!=-fRS{?Wt>x?hePQtc}*B znRJ$a?tsbEXj3XU_X@eCDagxDG4h7)r9lcyaeBI)CJh4x12`fiwAjo4b0aThgLeOa z#=20=l3yATrHk^Yw2w4)_2R`9-gC|g8oyv}MN|GI_5ZktIP86Xf2l&#Xw=hS^;g+S zKDJnXC`Bb{Sod~=2LIL zQAlVFZN7Yw@om73=zNhQ$xK+0=yRO5Ty+3<)!@+Mn-&!1^zpLSJ!5RO-8T(}&XkcO z^S5}m8tvKTzD9!Qf0&c0pL`=1&S`4BB`mvwrJ#!wz#kkeyQ=lfwSAE~Qo}XNKy>G6 zNN^Ej1P$MjX`C5tNpYCe_DVF&38@2v)T9Rvl~K|8iG%Cso>7+E1Uc z_@&;ULr;uD0y#pFs~0|@L^VHd9yE!1p`e@^WbowB?EymH zE-RNH>3w|JscQ3Qt9|j}*jcGTliHIo>#R?wDl=PRX}cpjq@?rOSbonZ;TOynZ>CjU z`1n=(`!lb@vD{bsTctQHA~dj#aD9D!lDt@?`o2D2atb94G$gp|F}RPDzt_bgwX8T) z>M<;D`hOUyZ#As)wMFsoL}=~p_z{ClyB|1ebry7bJx)Ui4JmMJ2SMk_5lHso)n}AJ z-j71Rn?a&3Ne&z|hwpv%9KYE44!<3j`ISejq;Mq_*JjCwTeJMEBh%pAi9t?6x}6LGJ8Kv{VU?j+2;wdDp`U_G z+6yq2HDG}pVVnRBZI=rI>mD%fw2FWXB@Jotz{&HGi_HLxYE-Rfup2%n+_^- zS^<%llps@*r`D5vagnvUOA=9~jUo#F9T)UCFKp|3zA~iz)@Jkj@V}yRlFvCX*|QlI zE03Q2Q;5OG9!^ySHr4e9(}{^hqDuvLRwv@vKz!pq%@ERR702sn8-=YMLl*~~&f@w0 z&@p_|k|Y!Rw%*Z&=}=M7-}>36SZ=-_yj5nRJejZ67;>`xDO$JeEdherd8Gt@+_ zo0GD|13EaCx`tF?IjDom;r$txZhiHo$eEUJiwmf($BuVyAsZw`q%UKj3mP-&J{&cT zxrE)k|Cw0_hT=>oab#aR0MU?#aFTuaEuaI}hp3q@N<%o^qVX7Q6kb&;+6=u}SfQ30 zfeOwOJeX%8rb9})tU`=e`0vu?noYx`hC!IjChO&afmX(-Rz}OM2M3Qv&2blRPe64q z(iLv>wCQyu!x#6Nw7G97%BD@ zTj8oQxn}XI+)7=E@J5xU;(Gk?uB){U3HB|>3y=wMZc$^4y#Y-{%FoD;;?j7TNEO#P;gi-zt_h=sQ=*womWek~%yz;Z-ezTtLpDM=koD!riR9 zf<^+~sKNdwU{eHU{@lJI6@5`PC9piAXQWKs>a+-u zi`VhWXme&jIDH4}vT(TiGz;XY(xUJD7Ioj0tnx!esw7d(J&~Q0^l-4s73}n1l#QaJ z1u~i~4|$XY5Q~My>$p6BP|2JSAw109IJ=5X@=tk6J_C?sy7w{s=_|lI`!o0nQE{%9 z23t|DN%U0gvXo%n+=1dO<QM?vIo=Bk|(`(eWSeU(-8-My;L>+4Oc-0V=>1aig zp&>agWYLc%!V?jLj+xF}?9@SdN4HdCwB$R%#CJT((o68cr^5jH1QU41k!Y)k+ysPVShP+I>t-eV`%nz&B zp(Uz^7FmKil;9}_w1sBPqwUJ~FNsU71q!fM=K1{LIr_IIJ?ma>)`C~0v~GKu3X=7H z3oZ_VBh#yOoWreOhGki+NbS7PkN-+MN0ET>!!Nukd`xugj2`o6{LpeO)ioXgbZ2iy zfx`4YS!u)hvN0jh<A z_I{@L_?C<7%*ODO#cZ0`j%M~+61P{p;;2zx`;ZwWwbgbZESPuOz-zQpWj{Wz!pis| z0%uxn;oRI+VCUdWJ?>-j6SKK;@pKjATy?``L)~)H?hch4D^Wb$b)LEL1I1!gm)ny; zQQ<#EY~^ZBknFKG)Vqh1+RCZX>(w(G1t zkbk3k=Mcp9`bAoow(GUJq%eb%;gY)rf2RN}Z2W$3dvPdIf4p6e`AX{|R@U;&NeR5b zl6}sg-D_}Cg2oXNYMrUGoiDDGUqj!+@0J^~tR~|z)g_-CIOs1%b+YLg(!44 zZ5^B)pVe0dw~p5B-X2&tj-!>PKL5PrcO6E7A8qm$?x&qj2VBg&f*V577Rh0GPd+QR z13b>zyl}u=>|gtyXuJ9hx9|_cas9klZjE06b=={9=EfS*Nvu_~t4t}B4L2{0Gj&C0 zncq(H^B25xDYT6fD!`WeqLH+HWu=NHFH-e+6Vewi`ssv#j11sexFZR+Q>R|rqwyJ7 z3KlkCg4k*J*E>IPQW)btdZ&j2JcuZLC#3pRXVODy``3#1Uw--?HC}!kkHqyqCF}K} zNiVR&laPE1mAOLJX$szU>!IfL?9NI>eibbLF)xZG_AnT*)VlcZK}U!375y_IH%paH zituCK1CwlXfc)Y?5<^>~c_|nv#cmJ?ESTEc1t>L;s(sS2t@UXhS)XuDTqXcVGb)~n zTwoY);}O_2vBL7B62pp;YTGxp0U7)QQup zM6@2Ae_yQX^=!kqpJP!fd)0GfDI_DtQdLd%)pQjOW9Qg-Sl# z^O1T=>_cq8RHq$BH2S5B*9}P_;PI@gz~gO`x)gy=`|00CBzmHm`G$)syT}e-N~^ku zjSn`En>DVh5sgr7UtBPOyi7%uWn$<2<94&WilfR(#ZYZ z^}Jt%TVuhiGcZ&5hnJpJLEu2L-3Mv=jYdw+)sPryEM}o~LHLwEoa?XP!GU2&L_0$kRZ0(}yKPoly8Gv<-b8cW%Hbu9Zr*t`&E|D^O-AJQrKCwV63 zwpLu8X9tJu#?6#<5)W93oROa(j_!TMcDQ|hP9KTAS7Wq`C7^oTEi?tfqyWy~n<1(t z6o-h;E=o9ofH)_O)^U6NzRs{nsetBpV3K4ZeOO=+VO81q2^!MO;9<_C{v!iU;-M9H zNV_4)jb*hH))+i=#-p74scd3?dA@_HAV2NCm5tX}vb$uVlc6DS_;8|nqk3Sq?;Yaa zNJGR_9`o5s)Hmvlve@@o68+8nQXBKBf7k(na5`a3-`s8%=gW_weKc4@K6raqH~-HG z+Q#=16aROr*4iOe&Hd*Pgmt+tw8P7ctx}Tl6z+^>nUre-@GXzo-o@Ilr^uMUxZIgp z<&oa`NHp8H6&n1SO*KATJXET4Ib=m^1I0is6sZ=wLPt&3ShaFx@k#)8Ka+(Yws4mq z3S0K**#A%-D@y%O*|OLiOotVI{~%-OO`72uOPi0Tgq^>y@w3~Rsj|Koi?OzT*qj~V zk^i!p6s3~-7fOwMji?n<`%hN-vbU)Yq3hHAy)ATj*=uqygMYwE&Cczj;AYltsN_gn zwu&#|@AEt?#mFs@PR<2t8M~@hMU_z2RG=DT`m@Vh(~YuD$!Oxq1P%5i^T*YuD7a8g z`iHi-|Cwex-Y60({U#=$^}|AL_h#c%eopR)!qo+VNdCiD4^_5YDI1fowVd9ch+exT zxSt;m*Oh9J-jr+TPENr6>pQ|1>gHra(<5_#zp*VT_HABU@wxii!-nAeo(5c4^G>s$ zz4#Y*#?h_%3hFigIHL=f&MW{m?d{Cn{x`BcddVW+u`}rEp-^0N`U`U};i!JJivP`p zvZPN;Nf+e9%zbc`OF-7N8tizkNSICrbS2Cpfgy1W^+(lAO@pnHMCw=~|or!Kf zGYiL?J$igKC{a&ytminD;9h&lZ>WNdLNo5%sv_eC1MZ@$c)vPwj+}1I7^`3 zjLSAgXbc)4NuQrb4wm@+sr?V%T-G5Kiwgt#S|=^#lOFqcd<=d>jFj}s)K7~diL`+C zuQYY>p(U>1YACHEvnBeEeD#SU=N4p6Rkr31wd7q)j$*yGZvz!I7G7uio-&&vG&G9$ zBx;oE3AM1Rc#c!J-1~YA8If!KyaW=<8u!Tk!?^^Q7-)HQXKe|}T@!X!WC)%k0}NMv zg{N*FIua*|ssBY|?FCQlG(L9RNMM5-31k*I&(H0=LavACLf3DfRjy*ScJi*p-?&iCov!zbR}~ z_*XFOKg=)*(3j&K-tqK$IGEH&*r1aE#e3sCDLBOc6*Jm{wjVpo&i9< zgg>}D6LnmOioO0qtQQYzy$cs^a`VypptQN|+ze$vmqDHhl1bJ7=9hH^ES3HWb+pF) zeUF8Hub7Gm486I1Q!Nij z^qrka(#9N$?Ym63vOL^Q&d?TpB1t9sA6|QXJ?9=D#hdzOX|{%1t1rNaatAWqyT)M- zGhaMOY7AA2iG6>jdhn3e4>`1Yc0qY*a)ehvBPow)ufnjfcOxI_FE~F`&R#?iD5@a@ zM~>sCLY-ooPDG$q#TUI*HUAk|&-0_`Xl!=w0)weKKiRw<2)FZkjpXBMZy7uAY1@QV zaa;tjeVYZA1E(+{dOtB@1(+o3DD%W>3Y8;g96cgQ!cj}SWs)6PR8nI^_ncld|G05|Hy#nbnFz`G z!fsl%kEG;=tL&4%l!m_n`00p91^ak)RW@uj zBle{HXq_%Fvrl+3rsrcpqU#jI&>)lzUHC*%!kT_`dqm>Z$uT4A-|IQm0j)7vCF}5C zSji&?BU=Ysy_qKlneB{`D}}o*%s^J5Ls<~Cr_eRQ_(57RYwNb8e-@elpWg6y)V;^y z)wq6K>=zlTzX=LO#bh=1u~Zbbkf0)FzW`LgM7wN42vg|(x}kb6H!T+;F7$TKR(Nk; zc#PZ|_mO_;LYry+B$V|xtR3EMac0sqhj_bfMQvS$Nd(f?s*5$;cdM9Ube*X(Hm)Zu?u`tCX2jPgi(B01c)}XmYx$v7ZFsK5`>X5@Doi>6`Z)Lk*9IVcsD&sMb`HT568`_?9Y3-u+b2}zl zouP<9{8~z%X#AUf#8~DoV<7c}^Mo8+>(}H_oX0T?iYKgg%B4DH{dui5kzUjIXR>i< zKfSM0ICP%~p5w$xcgU68>-n}C@{RH6`ghSJ4=^`weqTJWTnVNz}~yVi5Mk$KflUT1hw<>i@|8i#Ek4 zs-*(|_5M%dte~jC_p;WL@8#oKMOY@?&Jel(mjxJu?_a#r-$3j5J&^I)QU9fF>(Svr zS5W@{&ZqU+Cw*v>288Yz8}O8|s36$2#BfCJpgp?mZ5iJihVFM(yug za`6=B{<2mo{%lVKl@ItwE`=F&=zhfZTR1c5pDwYrxF$rOWM{(8>QRV`>$SGC)+Q`t z4C?ByR+HxaXqqFTcwHy%xT99s-%{cwpKFPiU|msg<*$ZG28hVj?Qn?RjJkw$sU^)L9#hMs^$PH zU`kW|m&b+stBZ?eS>cTWF`mH%}AJxzpdG)+&$@T><<(#gKa=8R{$|FC@$z#PEqBmTWT$9n*50RSylH-hkSKR%#K|#mKp=G6Gl;@ z(rAlOeKulzW`OnEF}7o0c-Ad|);|4x!s)v{pHW-+&gB8Cyu9vE^QU|2@iqxJE{KV0 zt?qj>KV%qFJdduGhSC%)w-4m)i&BGDnDrH83T&yqouQ|FcWSCk{VPwli4}E6@ z^YPAT4QuS}T0GzL#Xe7A#8Pn~`#dvTGA5b=ZMoE-v*ftCCW!+pgf z{@U>&FwX#a%IaEGX(zp;(olaWIfj)fGnnkdB|MUokfP2(J=6m#v!nhQOVQg&av!oR zFfFF{sRMf#zzya=|{LMQkXRT8 zG+VoU6u*wro3FY*lEej!RUZrey}7mQo+>omtPC!yU%PR^(ea4W)|CRJ3iQsmA=$z}9Ymqj3^OU$@YPxY$j>+%RzcB-x@4KkeW*ffx7E;xYJxM&5f@uR%Mwk$j<7sV z&|t8T-XQj%=3DwEFz09_---b zvs+6VZa+SJ8LPJltf9ni>Adpjt=Zzro%PMSZz?*!ETxM}|AVJa!tx3g^uVFZ5~YNc z94MG}+X6KFqMZCkLtk`uTPM2gY%#%GpDP*}o-ILp zi;UsKv^X<)wyX=iJ;hrqc28EPxzQaAvEePv7$Q_NB-z`&y-vo3ycKu>lTeu6yx$K8 zDc^jcH1JzR(#0E^tR+o%!%X@Y1Ym9AI=)OUhmC61q8|NN+v|xV*(b zY$O^|ig+c)=Cb7@S`4KdMS5lbz33GxgzcZx(c5Z$_TDTWx!YaCXWZFfUuDmx{$zSk zS}ePrz#9U-BLV-UmQU#2JRV=a;5j@{_=LQ1xQj@cQ5HltIUUepi;0>ZWB(sbUme%v z`@N4SC8eOCAn;Z~8i|ntDgq*)(lrJmJz~V@kZuquNtKk?Mt6^ffz+PS3T&(Zx-Nvmt3$8x$5 z=4IJ+2uDQyyTYUWUBu#x6PBRn90WfiOrWo?H{`9I%{x(Kx1#dx`@p5$n9mmJZRXdB z1edL{DHe>YZv$?zCdnv|)<)@1O+;)n5-K`TjfBqAs5L#_Vo&UM_g!TlCMf(o%DK9A zA$a`YI?@;WgR$n*Y|tPYF{9wpaY)=3+An_`_(7md9twL*m7itjfT?qGSiR!W8g zg>lWqCNJM%*-qe@@^#I?DD$I3X@!~nF23$HZs^_`s#%tWpAC5(B`u}RPNaM z?=HaFX+IQR_g|>sVQ<2CksU}rzn?OKxTIdasS&Rs24Ze(r35EY6tjZ8*P>*pf()3I z3At~)HssdN4PWsPft&v-krNVFW~jy%yKkR7@}>pt1*aozw@P$Awi0JLSiSve*HD9Y z0&e!x#7J_st?=Ylyr`{8Z-h`Axs*hQ1nsNGq<(aVoz-@Z^r}L#Et8eVPmTF%E^%U6 zbfJD#)en#~0-9d$ZenB=jvthD&~HnTUgPb~4|NllKkY~L6Ut+o3+D*Z0f*j3VT}P7 z`h5hYUM0585q|f~`^ibv0UeVOnR}BSF7w7VuyKRxg*a&4i=RzH?CceB95DmrIVDN(&lU85OET1+j{dau2`a;X3u z^sDS<{N#r2y$fj`4hD&Hmi5-vk#D< z@@$z)Hy;_hg#ew1uBiv!rVH2_Dz##Ne{Q~Vzi$Ct+7Cxlz?5Eb3FjGV4lLkshj9B3 z(|=qtWrutK##s`GIFZRpviPQVzHAe}&YkJK>o^Yf#cfiNF!~jk2xafG>Jvm!(ncX4 zPeP8TS)p%BsQoExeJ6d&Zx*i>p~tAU7XPEs=;v2PpZpxs2JBZYbKeeRF zAO%eGIwrnqigIJg9Rc6z%)?H(9cI|&S4*M=z5nxuNmoBC_2<3v{pa=E$M4C2k67{U zx@24IIy=VCn@zRg4v~JtAQ#y$ll%o(NEL`>;eD-_hOXM){93P%9cQz;lTrF8L|+i2 zD{?jVG@}r798B79`#`kppc|yM2o*YwYi><->;FRIW^Zhc=NH7hY+AS(=2#`J!xoA| zM+y%#2jhh*yd57iB{S?w?*2!(pgT>dl+E<-3aycUL|cI|yxJR2{?Vvy*t_quJiZMV zh17juFw^Hk8ZmfBxq97uGV=XQ+}Q=`5A@r|XH8jOeMu?h&g|0iE+6bK?k+9aX$G0j z<>||RQ)rG~*53DO`R}$LhTczo4!S_}!&;=~o9Hw4MGLeuc}T!QrHMxjJFDnRe_b5S z(k@A%CX|x0t=2P6VQ#;p_j@14z6O+aRiYYTULW({{_9?){qe|0=I|8d-Pq=1IbyVV zf_Ze%n5!*4*9Yh2M$xl!gs~r6cWeu)h|AEH{pX^~&|CQjzP~XpQ=Hcj)Bfj%5HY1~ zD0Bw$XRbxNMl|Nm$=dY!EsJ|Q&I=L>%QW6Z7nkpj-_YzNbhKNP@pNTOtw%i!;Hp(N zpW~=TZ6C==qR8MF)o*-pRxj+IC67+Oj8Raf&T*yBS#|gE^ekLj{^Rl&-tOLNm^zBq ziy|z;3?J4_9SkVZYTTQ%Hw7W9pwD$9CwBh!#oI+yO(OXxbfLVShcWG9`!krLR?D}H z!DBjYM%9sra*7X-Y z*!Sw+5C6EWs>~cvRzVUF^bE@O<|D7JR&Tz-@r^s6W)2h=#!X>lHI0G?WiZm+JnvN6 zbyWKZ*#>uJ{UaOHmz}F4go<$y3f8s!s1ms0f~ff1l&hsV=Ym~ol#Y_<2Awoxs9PJ%erC%#UiS#`X0IrT^xN+Gbm^ zP4bSAkq;`S>fA0pYs*0m5*`jc(E6nOqY!bkw>$~0b+@VLchb6jQ36zN)FwcizXiuz z0-EUWdZ+vS@s}T@Oyfz^xXsDPs4KSZoE8y?6+;%--$1fWetoYhG<;N_YFXD5AA|r! zGJ*%~>~fp8S*wgN)2SRorB1R>xWjicLl;P3xCc|s`<_v)lT}1DfHe7Ir5|q3<>^jY+{)HH*KqDbj!h`+L>DJ?Zb*Tg9wXPaY4I3(M zx1()4KC@X2Je6SaD#m4N_1mKRD1T>X#UD4y@;u8Q(8mRls!)T9EWxwQc;-9aj_Jh8 zwtGs$chk9si|-9J+3wRVkQfqN-nX9FpqG1ju{qsYh0A{&CZ4YkkJFKqpVLqM<$3=J zHQJ7wN&X8_R5XYpY*l8>lwHj3eMyj~57WvqC7irnnxYwTcxa6N_|7Xvu6Ck_#Hgucac_A|_!SEOQG8IZ3c1p@X&R_A zQ_sYfcB_=iF~f=3INa)+g8958JL%=!po#c#jg3p&zKeegt7@)4D%`CEia#~&wP-{* zc09%uDm1R;_|oxX_zk%q6l_i&`-=}Z>(3pC_yyds3&Zqds@HyA{@f@g)1}T2xN0o# z_dB@Mt_HG3VaZQfL8N>v?c3#rVAvI5?2U1OM0pF+z$A=^?@i_A_oZiaqYh=F z^90P{d919Yzfng`GFG1RsPxqZ(-b5k$9R?h0dj8AdXRDIdN2XY)w?SD#$A3kq1Sg$ zFJyi~4QQ*uzm0EHPruRmT3J^SkIbK0IGaqjMWsxa^=->SXxzlq?dsC5Qj;UZRZcaB zVU9Jz>TtZIMz@&7O9sc<(U&&p8ljJjmsG#k|MR^gEGqXe%j(s<#cUq!>`KY_5Q8dk zs)Fk+js&wQ%K8Z4>&`Zu_a1N5Fx0jMK;EnCUuI+WC3e=nD~i5f1Z5syaL1ymauv8T zMAEV&2lqgn^SpuH_1{;YtSa4Q)91a_^6tkX6vjncxeohEVJ>ldZw2coYC|?-?AN~$ zbMWP@7DaDw^mV*A13Y-l@oPo4L>{r;C$2E1(E{y z5WND`9($5d5!IaAaz7qBo1ag_3qwAF{KB5=ba95?kXA^wxPDIyozaUbK%m zpBzteM(|3Oj`sb}xOcx6NCR{pyT?x6Mr5KgR)TAOL2HJ(d81^xC4l&i-R`Q{*mqC8 z(Qxwv`jZ=ICyM%ax2uOV1<(WT2yajk#^-C~{S5K%%RCG%6Q)R%L@uoa9ZKtcSRUam z6CH~BGn8!1#RgIG=P5kEzdxPXb>Llct^@kdh9e_td9S9OpnQCIe(dchv|=qK!;cQJ zoR^sWRY+4F66)_1uWY4DeaLsL~2HYPh6~K>Ub?vJ@oPTlWQZp@|A9BouHvFxw|C&kLIl8k9l8z*|nz-|v$HdBz zW_9Mi)g6A;aTnr@c&k;W`A#h?duYYtuFUHSBS&N64secYn*}ymUzYL*?i>(Gby(B{ z{^}>f*e)_;+iPr*&S|8mk=Ia78O~9^HCQ$!X^RkwwL+s9b=^y#)=(#`J zJ&EQz_2j01c(ffQ`Nd^GRdZWkT0m{-6R31a1mE({UyN*Sbk|i4Y>T@gFfGwRV z-?(IK>${nM?wEkpBK&q2VehT8q?>W8Q=N^Jy`Lr(>-j&rMcL1{W`iDflie=5p$QCf zOy64W7m$dk{Nt2rGEK1=!}LPiwJuVNL%*E1fgzK4?p|HRq$8kRv5+?j>E>kXNO&oSF38S=Q}pTjImd+@D#p7a?m zv93l>r0K(+Ve3iZ|2g4i_znQ#-Mtzjcr#!g9KVNO$PmSd4DZtSfpr9@xJ$Bse z^SfIgxWl&;Js-z$u|XUrR0CI(Gv*-F^-gAf4d<^Xi4BnCWSwx2vNsG!1XRB^z<6eo zytY>G@m%@V+j6)195--_upKOH>mC-x|H

uGw+rHHyPC;2FOU&nwld+zY}UxtISG zH$Iwu@S(m>dp#$ffu_ZSCw1eZz7qW5F|;MnmeBnZY+3 z_xaxgxJF&aDw2Dw;P=vT4`jL~3AqIM`Rs}T`PQF@Bb(ZQ2o=&v^XpSDzL}C>Wy(`oau4lfp%s?ENX_?(JFN;!Ejl3 z46n1WKxR(C!o6Kom$UkOI(9$;E%x{!F5|%K4hc&|wS+Kqw;o zGw%Gelug+Yzm-=UMg7=lqo?QPRiaAlU0Ifd7zdOM_0#6o`VaP1D}Sp;80n-|X`iD#m6;cj1e zS^~CZdAaH7xy~5=V;ijMUdnLIkS$6idDg*Win}QG>r08L8xV?jFxuTQy1NkBbULkN zm9N$$UP&43!u^+b{WGDT((aj$(N*AYP3>Bg-clDQ#+`-WCejoo=oIAI>xYoAc!6hn zww=i;gV)?}?D-e*O%a=9?@+pY=Hl;7rnfhjvs+egQ8ops|7aQdr`ie?0VfG%%DB(WEq;huOi$IOgD_D) zSBJqh2$;8I_Hrboi{oWK1rB^x*tPjPmHpvG(KZ8JzC(t^$rhf4DfxX@dQ{>~OY}+B zS=YOgr6cx-X~wzmolM*Kcc{ZvN8L+;hPYI`gV*R}mkf6*#H!5oXUeNACfurBEVG`^< z(QASKcJx@`pW}%<)qRIuc&mWeqdR^V57AI4$8FEvRdd{-B9)+f(?8JS%wx>dY9?Uk zHJ3Zf8F%xLcEMTr5i6gc&SGeOv@IgFp${$pG2hTx{GktmWJdJ-+=Aa!_I2Rg^bO;i z@wq{KsPK;Ijo0L8I7!k>tI#rf<8Od)`hrx^WOv@R(z5U16fE^>6u zT?}G;u}!>@P7L))kftBcYKf*UJ$d76p@%mOa*pBu0e^24p&0NqIW#-B7Z_f}yA}~b z857i*%q!Ki-ieKngH3Lhe`I#m+06!bh;>TDnGd&byITtfrZeuDH|Yt_=p|a96Nr&v z^SfX?vZAD;;c)j0eHF!i660IycVn?t3S1D8%1)GslgKpl-8>za67%u7+R2_) zHWb>d41tKC;n$_t(#uaN|MbPwnBU7 zQDeS0Lj7OKo5hg~-vAD~HTk z{L!GB$}>gROg&&l6g{SkP`1ce_tdUN_{NjJ7bqLTA)5}aNG|jQ?ULY&-r-1X4p0I@EjG6EwnGwYw|4Za1)!Y7r(1AZyi&jW! zHJt$r7o@JLuHl_D9xuGU+ht3H`a0yT|ACu6{(>h6oc%6$n6>zjTIG0}Re8st;W&dj zFhWFbOt>%HfElr}56Z)H{&X;|o-X6aBdP)yzut@-jr{P|WPSB}n~0=3O|p=wNOCk; zWShB8rC>dsppV;c>;ySr(yZ{X7VqlCCJ9S{209P?eGyF|V~G}s!?r-y)Ow^oFvOo< zEgj+cze6jAB&9EwqKeecKGS>B0@Jr^>fdD#h9%8>zkyXTYFtiC7|#FC7G6^lVYZ(al$4J`cGkwa-bIX z<7Fzb3F6IhDa^|hoU#OpqRT&>C&vFJ+c|>2?;U?ep=sIYIS|yPHkfAkJmUd%~z07N<5ZebU z%8j`54{QIw7oebI^WXLL(AL*vjqPD1m+LxrN_s8=g_z6v@weA|HQmM!woG^}fBuG( zhN39c*v%wnb^0{95!@61@3Ex^s@-&L2x&j z!_^7_Ovh0X3_!-Bq%LoP0gHZzMdQFIb@Ao!W{1}KA5L1jZ(v?=#?nkBcw+gS?fJD5 zXF^NMj064VBkW~@DpO+*)mqJI+`Z=Qd%$X*p1E<wj{G#)OdG$_TT-E)S?ci?3f4H=`ASI%C}w#1Li zs*-kn5&>}Uab6vH;I*`OeMa$nPz-pM>kE)&^;Y3qp&2sF9dOwil$&#fske9o?0+g{ zn%VKY=dMjpFD2MDWEuv-M%-G6s%T30i_R;vn@iNQ=+_t6%%q3)vIt3Aa+xn?@VW2)S z^(sP-2!IY+RHaCydVUZeJC+i&2N#Y+9XKM1W=hK+0;B%DGXPJS9dRJ#XN_wl+HXdE zfJc02Bmpn$5CesKu~qqb#Wk+4*x}pogm`-Q)7MgWj46mr`$I%mzSHz9a*Z1INgS2F z2x4sZ!07|lBhPB#FzjW@Ifjm-bz@Wpc{Fl+kS0W1SeLpNBtl58RGtSrF%8B#bHX#gR8CVpVFTS@%m0Z`A!7AvQDeh zm}w?VC|Em(s9ZbV>DFV|JJ`?9Z2!zZ7rwi^lDO(xk9HL9fZly$?-7}BeQ+ee`RdMh zWwnTE2vYK?lN%c$pVqa`Dc+Prop26Uj&u$qH2Ts}zV%+31JR*Gwn83Qz4QBpE^7QZ zno$QVtWJCq<<6rp(A#bNTdCO$5mAZ#odsmlWfCSUsgQafHs0Gn3vnRu&6m98#X~B- zj<{yXJdyJKLW&M0S2|+*q;rEXb8B)}VN^B^ZPaD)it(|g9Qw#(N17EH@3yDt$jr&_ zrD@~h>B3h!$tPMceZ}t&y^<{o-|w===YM1a%2N>Mp3o5r1Z?Xjq)Iy1Gm=0mEuTftgmwT6d2uWe7VahUC@Q5in- zb6#ijwt?9r{)T*bnLsPZOvU@b`IprBV}8JY8`ShKH1~l$-mq=ngv^uDM}@F>c9Hd* zp~pl&f+&R{#8mDEAq2@A?LDP_qTk&_6fL*~Rv$Wi%*#=2KNn|ju4580Wp6{5(P^*P zHnmZs5aE6|4=6*Q2mfC_ctdcTCVY3>XWl8d+3R|U0LTz-=9#zlT)t|tj7R>~qNr!L zn%X~1z4z#!J=_`Ahmb?@eUwN>SS`vU3+pB2g(Jb@|15|POlo}DB!VqoSskKKm^q5Y zW&zi~r#QXyx!n2)@O6;D6P@b#s=bLk!KLQ-&7wr%k#^8C_we7B)232VjLKI~>s?5vO3)}K5$MT!PG?@&NZB{nmzZU)=7w+Attuw|Oi<^u%+g8eT zf&RCg#0@gmSg;lHlFzfqn;LaN-mW;IvN``J%O;xWKK!P(BA#$60XCSKXB<=I`a&qg zKV39_C>C-e#~OwAfqD%+BYxUB_vNKB=rZfo%v<7qL- zKT{hv7?T2pxwHn)@RH$xPnD6jF?tm0@pyyB9)C)#))GFBXPf|8K(Z^uH>zMWi3gAv ze}rAxk$dUj<;Rw`OyH_{LwMG|bZ~-}7{yQ8iZdebXBuCLlJvk4>*Ow55wzEVB%=B6 z?=~nyrT@2rg)H%~opxa3SV50^pUUUMcLlKxyxEMk8TE&mDLuQS01IS?=V9KH;SB3RxV=zF^745r z-^!uDXydVQOBvkQlg8P#W)o?4g89SDZ6Vs!s*FnC>P(6>M1MeQeOc!~P(yUyK8(7B zdP;ZFu>arKm8Rxzms<7b#=Aa$OrR(khs3+{sapIG)-<;w`odZ^{Qs^Xn+YthE&yuZ3&!N!gO#xIbptG^|dBuAEFC>{0s;ZC0Ba5{a~MJmZf>ps$YB=yqIh1hx@1uB)S^}eJ;GQsD-m3? z1&C}u*xg1HWHt zOt39&-MKnT4Xg~`?EKpS`<{r-)GLO&P4v@%21t;p7lzKJQ5V99m*UJ30*fGc`xY0H zf71v-fiv1o*t!ebtDElBTSoy&)GgLbgK?uYHeY@X{19|gBZ9OYMUJR%RE&+~6J|w@ zw_M&4Ok1%j3mwP=F7Zt@?L7tMK9!42|Z=3g;zaBPg zMwZTQh*i&`h^z}97=8!ZdhE7&-BCCZ$ckr}pzi|51Bs)XQhqC1w7sGO%KuBqt;)fG zyNX2+AXU&~wyoy%w7dQOuk3wZLvk4eaQ$!Fbr^Rk;T%_p?{D&@5yCe&!gTdDpS zuBs%Mfl;xgZKF|RG~x0i{FvGtBj)44fKOFZvAYYLtQTNA6Udrfe%PbdByaf~jpnbw zW-B+UMLN22RfsPVx2X-QdP1) zYYbO&t8%0NO_LP}B=W7}%dOe7o|twBd$UnPP}582#Xmuh%HbDB>8`)j1O?PgOcztt zMAnz~UF%kb4XHukPIy;98=8~j|F)+97>Pz-zY``qYO z!O&X%=OYK~>gCbLEm=qEOEC%MS?p{H-CjReo(zhLtwt=%iWY$fk;#?09e#Ub>gffL z8cY=MPnjU?{>}(2jq#+lgPdGxFBzGMFTz6iw%0e(t}&RR(wWjy`dp-R4N9T)=J{r3 zrss~Lzt73`RnxpA-dU4i)3G6Q7gUu02b4Lj)iGWxXL`nC&^nUxwwYZ~Lq!5WQ(+{x zV3-U;bivTpZTpnLZ#;nS;ox#~orSTl+cwx=(2 z=1Lt<6Hj@AQ{HSntF;__)l=ROwf|4VZEYwvZY`ms<0j5MUSF-TdP>sjU|DWWZei4b z=WI&%x)E>Vb566vQBlH^72e4)b8H@4JXGaFsz|MPc;r45`fzGlhCgq8c_r2Y(|HP{q>_wSN;a`3H~=0~o0D}v!9cC5vcaRgjLK;` z*hdAj5Gwiu#V^<}B)NVdlJs79IV%~HFn}5Bws1S@OD5}=o~gXIC)M$!Rr9-2C!w8o z?dgGR!u#s*L3;z4PdT9QVj|4cP5-aByD4iL*3wUdbbi79&>6KJ?zz1(fAxb4ZiIBc ziK0kq3Z$(#WvBmzBxfP&qFH?Nyn|yVwgT=f2zV;PK`(sohr6VDLumG_A524hR#u=+ zpE1H8m+4E+&xJHaQFnvkF3z4$%84*yybRCqs@uC}7gF&@@3=Ju2@7Bn=FXMbZwG&G zKEA^;m6zC2lXLFmgD>>K(E`^#&R&X7{CXZ7t9|lJ*!)cCAXsMSJ3FtqA!hDb!W|%L zT*V`OCR?`14s0Au4m4YeXRh5{fiG@VXRVEuhiE$6w~DqI>6x_^m4DXsVl#Ytd(-q$ zM4x>WfwVRH0vtWNyCHHsM184r%^l@xv&%?>d5w?sJ=u0qW|7#o^rl$Jj+^&- zDpFR$Kt5IdRd*DbUIZG=>=BaU?UBlDMx*r1URz-b|8&gFDf9zw!-dMjpZd7SC%J6( zu@0BWP2Em2s^BH+Ql3jT1Q4xGE4;4JjLt6(IJP<5b`7fap!(jg!Sd7Up3qC^)?*nimYnzKKpq5H)-kkj)CRvf`!$wZQ-ZN8h7d$$V&JN3gU-ZG3bcn0^?pd{aduPAC1rW7( zSvKAh?;?iG=C>wLCSLs%)wTYwpfu2-jkLcjD`bqmQKS$}9bHbEL+$`UbA;>Vj*4P$ zQj=mZw#|t7k^2$|8*d|li6Tu$Bv+o;XUUkpMYH<4T_N{x(^Y0ihNkb?d z?uE{$1#NuPj7+nkg_y%5 z+iiBog~E2aXR$Z>)NeyotaZm4U)kTlE$SR>eLq377Q*pl5kv1njo6|(8z-=#*l&Q# z3vV_>PgOJ2RGjeFtbJjLu9xOb+~sW+vNK`kwC}AQXYea2P_++$6NK94<)f9Y&6bWb z$*;-^g@{i{gNuy|OVf{*#op)9ZMo9+awAON5|)G*$0Ci;S1$@dDO=&h8CnqC`@ge5zaAkynsy|M*mZ*IbaprlU1iT9{CyKbt>-IT0sE|gi!l(t_7 zWvbCAgc8z8fs#Rvv2f<=DI1&PjE`XYp{1Jm^TEST%^DPxEOEnUib7I6)*|h25<7&nqFkl|a@q{C5rj z%@*3r>e~dDcHr42{i-M2)0Yn;{U*(aaD9*I5g6f6<1RIW!%l(h%97BSeS$7K#+8U3OUy_BE17w-t zEmw?mEY_nhd%0f!ce=0P5xF*+Swm!6xU_Bu9a`+C5LQ%bB3?P3W=&`lV zdCT?{_(Q|&^3{c@YKd(qUu}5muCal)KN;)hlr09$5?TX7$r$VXZVa~9&XI(mfD8(p zb9XmAs9c^7x0k5Ad9Mt=)odMc(qs?wm*CNK3LgX-bO}I)1xDp&2;pBe!Fd%L2!+>7 z5{~zM45OiTFj_?to%)1l4v=`}6;M|^eYn*B;vK^}`P1jTWmVPNom}5K8I8cum6~CX zQ;Uif2Ax}w>#N-g8iGYx%&*j9% zF8Y|m=G2ufQ<2W)|2DRuZB43xP#3(*11UgOZoCv>#&Ul*!w+TXvsT!pFq zydCtHtpF~|JPE>sDvU2)DooCdKraBfA9EuK86xm9%@{yFS#0r z>v?Eu?~e+e+W^DcZREff^mLARde%!y(=o=*50h1@UfjWkPM6)^7S6<17LNFZp&}NSIi9rS9BLyD z{Lupa1Dsm30q&GuOZAUnY@#qKec)1vCu*>G@sj1}hH)u_(Xd#HN7m3{qyLeD%vkbz zc%3tLR(@JpKsq9S&d~ujzCx6*zrb}RT;&dWfsJ-cY^A$h~{8Kf#?gE z{4>7%mV1Ep`Z*85;l7jJ{Ov2)rK5cN{<+0FoEvd-W!o)A zX`huXFGt@U_fd7UR=WxDv`m41{}v3Fg*Al(_i*})UtwdPN#yjoit;}`fF5S_yV-a1 zX?lZAwfe;2AEtgbrRUx^WkhP)dMQqRS&#bWr0MzR2&T=I@wkHlk_~S2D@Z*BaINz7 zJ3@&5p=nyk@|R9oIXZ$SXh=||kI+sp>$aUI*2RMaxk8fKN{pyS) zmK;Zk{YIy+@{EfDO}!81q4dFzdXF?hlpY1L?AV#VLi_TE$Bu5Q5bR3<#LykjghNRR z)5g^V-#ac_F-t^3Ug%~2vozsk$HMPej(b?%o;UX7gidSy1*)~>H=?MfF|-v z>&R1uX%4$JBm?J{cqrm~yE89lPU2%^AbkeEga-;q0iXz1^h72+O$P zh(x&v-Inlx`YHo}9Jsoew@*c41YT^76f+&%AEQ1Ai@kT;dI$Ks0=A^^(s#7!hO zq0E-!Ss5FP`k*PCt<682P;tgI)ihinnla~a)f7PtPm9ya>UJJ+-|FLABcXz*xu+)# z*5a6Io*3*mrH?fFC57cYh+XS?>t+wFMGMGIVGL5up)tx-(9-$kr}0SbCskB698Bw^ z+Q0eAKZcs_4UM3Av6;}qPI$``{SL!cSJMb+041{9VRbVTPYx7ek7_M3V@F%qlYjjL zJg#6#c5z&*Z|3uHe`Yka)LxQxYWwe|wRlT)VKMLaZF9CB{n>j&1Z#KGSR8V3BedKm zO41y4WEq7z*-xvE{x;({4@LGOP3%33c$)J7BPQv(mO zi9Z=5wse_f;2%wMPKS@mT2p*nqx8X#pq_sRVKa1dSU%~)^DSD6cJ<&zpg-BMN{ z{&k=f|6;rZzwbHYu$Cz+KeBB(Cc(LsOy+o%(Mmg!UvXjSTG7lXLec5t)(!3ds8XNO!!1+|Ff!e zDNhjiDWbFx)ILp5g5^|6G*^5pnuWE2_@*lFzqX<9Ww);)<1ez7oW%X^3z&CuTXG|n zqs?un-kP#&xyu~!Jw)a;m_B2N>GnznY>QmiloP3`^U_x0Vqz`AZvXszhG<-A9+Oix z6mJ<-q{Q3j0bbz2s#+Rr3 zh)jJIX4iiH0dMwyAtS|uvJEhV4QV4udW2Q|_QN@QsI8Hx>9f-HDOS3KoAoMiNArZc z*BuHcXEWt7i<4U!o*9!Dsz!|wfEIOIetof&UrPqc8G z@qG#hjiIw+M{s#Oyi6+QCen!cVx@kr;D+DR|H`9GyfK#&{n5FXs7t;#>&GgbR zPxDMDqcl3m038mNQr_`Z01rNCyp{RQea3d&gQvHq)V|G_P_ zAR)X$>9wZK&B&@38}bDp)c3jy%&l7b1?r$xc(RSMM#RigD8GXcbSU4>SPbm!1KVwH9p@u?W(u1pRKfm$F1|H08n)8aVMBg7@{@7uJnv=*Z&>rp-FcdF_lFD*3 zapGwD47EY~ww}T0jeH`R+Khs`VT|1%qJLkV)pz4{-bzUjd_=-+#x^x-w}#R>zkwy9 zO~jXsSrH4rIGR(j-e2Pijx1eh&ohL$!h*fbl}2%t5RR!_?UD*8q%Dv8lYaKnC#M`w(V@Ld3(txI`yJph5pXuF{6Ab|z zR*Y&)vpQLB9gC{HFsD!`Q;JaLbJ9-Vd4P&}qLT-QjzrnsO`E_-AtW%Gfqh3Reqdxb zA|GkA2nzU@$wl$!@spB<`wIqOBzTe+mxDY~KgzK@3 z>SRaNTa(_RE8e|(<_6?0I2cpIijw>{^SjR5T0g~c?lc!xnV;K_A0taGJ#3|fMO_m4 zb~7?(mv{xK*6c^T94*bB^j2}M)HF5<|7wIhMrtwu#Dji&?Iy-LZ{_G{4wIp2dNJDr z`w7=nF~J-YyeDdejlUOwqMlrcX^8!kip9DxG$p<7CzJ#^8ohMtdJUuly#v1F{tkDh zdQD#q3{sRa&^Q0**eWQ>wlN@~i(c7UYkh-c2Olgt!5ctyX3Tem!in)kThUemy@9FR z4gnUhgoCfi<&HF{p88HI$toEaL=^Tvggifjli`aOsTz*bpo|2ne=J!Z{g-cP>xu_8=Wl`C2eic!VfGlTlNiW&76!n5;G_*Y2nHLHC zLdN}{sSN)!^^*-srYQYRPQy-4Baae!gLQiikFk!O<|nc7X9Gp%`H*|aaDx8LnP{;1 zIUoiZr~HE0QgI({Kget5Mt#f?;Cpmc6lKvNHU9>&Z5Y|J#hTLXQ+$G?4&IoSaET*y zw)LIWQ{!>0_{nIfsZ=zc9euQnyW+Lf2NQlCv1&N8<-Rq3AN;0}3NXL({-#R(zN_Wa z846B%6OUupA;+1#x`f|OO)JZ<3mygVu|qlURmr5Dr1!HqEg4G|AqtUq0Y^_xeRM2rviTtcfKHc^)hv#XpRRu7MHl_QQaXeAw zs|zG`9bJC_FQ0XJc51Pu5t=|%8Q$Qv3}LmP)Y?S})|>%QNF(+Y)bJBAxxNHsGgt<* zCabZb1f7@7mlY>tOC1w8S!VbgGFI58olGD~PE(dm>6V(mIHeoAiwREP82TB`UOgAh z52mcgFVES`{G0Cyt3yIW{WK?Qxa6xA>^u@@3mWIsI6la_AVRRtZTxmys$3dHZ{=A) zDY5bR4WY=H>i?XydZ(O-aBPsnL~1v9e>HJ`!BT@$vGBk+*g#EpRprOU)Z$zZ(z37- zG0S>w#zu5M+Ve-wNl~ZdP~dM)@!ekEd|T~u|GaZjQ&Pu4SUvV zVzyMCgdK(jFt*iX#Z5eZrv&n!F@&T&Ro5O75n+GbUc-P=zUie-DRs|NuEU2D*LM~z zby8HRP?s@T)^l_}K!RmoG+GC2_Sa8J31XI3U)TZ_jgNVVE|o^|B>^8a%uxF03=I;$ z&uO1qQ$!v_zDZ^Z;mxM|y`)sjs#5BD%CzQaX z<|~y$soh}nK7;F2>FZX3thZ??;r`O}J(oD*3pXw$ma;v%@v?q@R_mwh*=uk#vnneT z$+gW;+Umlw>4;4shD7x-SpqAbpW!V5m-5=T>n-U_smIq>ei%zWz=DC^*qnkJs5ok3zjv;JT0 z17q}lQAJgl|oo{b~U{0E5XI?77;(@6qCy3P3|%PsUK());+|92H%J*8dEkq zrF64~!JG=}IboT2V;3sErRiU{x!<|`Y=-1Cr!F?W8@ZJzMFQma+Nrqs*WEF`J~xfV zKK*NK_63_>ZIxZKhFF%y(r)xndVHXA82J!ns<4*5quzpdXh_d!POa}@iBV|^R(N;u zflGQ-U@N{nimWcfpU>rr%`Bi=P4FEAs1Gl&-s0vfl0hD8SK)Plg4fkf?lPEUJKANF zdHmOE_FA80{B-sfuAu#xmKiq_+*gACKwY%D``XIn?R6G2^Wo#(nrD!?^b77b*2Ur7 z_d-aQXlj23>avx-7<~KI@1kr%|0m$_M5jTWPnPvSbs>AzXEmr?PC0t>vSDV!WW;Sh ziI|^ z=`_5Np?h?@7*l^isk?L!H7IRCmq||emtHXR6kD^&}D#j!)|`x zq}yTZZnY&(vNZSHYb;e!IOF5tMgoygr7qAr7yN}|)V^`fu9l-(MZSsl|D)+E9Gd>V zuvG+61LHdF}g%bKsFjj!)P2G@4mnHegA>o z&pr2?=iYnv+~-lF>`<>_pn#)ldEREAIyU1Ddb(IRAoYu!!fLpfm7yT4aY<(sEfZX< zlp`2VodWy?Yb^jTd>6j_;r)PSX{lKUA|fiCr(Qux(C~XMlSlhR7o^nk2WxMd+O z!A)hNBpTn;}FYJTGvq;XagLI0f|s=MvK`i;(|-Tkd;_<*xz_XX8k0&r20xlBUz^x9XuqO8Q@-Z{Bff%O-qGYDF#5YRm{05-E(d8E`(R8_D-17$4r7McEm8yJx4t4C zgKtdy&1uH$)6wkbP?qP3?m>cGxRMy`IB_6GvRU#+qdTu@M<_Q^MoI1oxGHbn-bx5K&yR(bLGn^&j4KH5Y^- z+n;*0x$*=?Bm#t`p@XG$QrBx=`UB>F^aoUoUo_jXQD|A1waZKNDILk$1qwSu_Y9K7RG`YGU&C);{Vx z5B9abB!VUg5&KPhoCwTpQiNIr!FDG<4}so_%hl&4l4v^OcY`IE)OagK5(yRghykdG`Qr2fyi&ykKm*G^yl>*eIS z$nuuKoobN?U0XW)d$OF7oxnSR_e0w*k7%fSg^9jj{^&nIK;!5sMEzpRw()Fw*pc4l^1BYwxLA!*Oj%d|07nZ*C z?NM{ZTc|O5y4*n**rOUqezFt#x$M5{evNKj?_I}=g0>N`sf4%$x`CkFXp~}zb@zAi zaGajjXIoD7ad<@fry}WLK5f-;(w(?9GGY{S;}m$r-AX% z`Enxt?CH!;yjo9D@gvtZc+}cs4%lu6dZ>RMoPlTbQc8C-?lJx8CU>~DQ~{kJNFA>s z4(7I=k82|Yg}R5A;hjfAJNNSL<|&59yw}%y=PX*|!*(Q-Orf~cO`K{Zg*Po?3Gk_>3W9aAKx0|cQa|*7;40Vm)M`zH<|9zI0rn!fBKy#&tfB{f zN-_;@1&a&-ALH(FXsTDJwi~_2_MAC&i1ksfywRIz35&d$5ht(7%XaQ*8mN(=-~DRN z+JTi>yqj4ZrpYV_pL;nb7R}~ifql^dUQyBDk6CaPjPgA*HH zAy!eq*M|0*63RM*T2zS<+W#od_f6byI+__5=}WC8uHiLsHT$}ZrFL&)zkS)u^eOM4 zCup}_FjP#rim3ui3^xk?>~<%AP1OvhlmwzQ`U5s*LqaP-e~fJ7kLqO+46Yg=3m&K& z(Mr3!CsV!H@vK)fST1~xY%Npt#Qd9~*{H=mVVLfhlga_#Gel6orsrF-j;Q#9%$f%)Qv?>2;ceY^!w}E+t1R`$6a?w{f{o*PnU^ zRsVx8E_H#{?YI3&C6(j%(>b7+E70Cd1Vi%-IT}8WU{Gu}9ZA`fw3%v@e97Gxfm#aj zh&Qo*2#WzJ9EsIXjcRV-tx5`63vG27X{Wy@P&YSojjrPC!*ta;eA0>QC|AJ5P{H&C z$l^ z`x%Qme%LF{nu5m9ATld5%62w;g{BfC7rQbY5>_PvZYxYjDV}$0-G$T~t)^TKyB1*E zU#U&nG=k?p5EPkPadX!A5wH-eJ69o-?m>`A`_D%jjdr?`Ev~zaw&bB=gZ7Blt$ySLs`My`1^M$lGH*35kYEHl zd7Gh0FkvXeJ9){7IRLf&k&G`W3w=2Ae7@SE8}+ZeF$A9FA*36g^GenT{TWNV^Qb!% zG)~c+6U@6m5VFXAS-RYLg9$OirYmcwN%DLxUo!d*RxU3piY z<6utNE|N2T!83Wm2UYiEqe|goaBqY)HHA-%#7Q-^{Fks^dD2&pz3ZXfjos41x{gEj z=ztFcEbc+K$9MntlMvVXw?j$EHKAAwbpa$;p6mIQa07I9_~--RZeN#m=MBWBBpR%? zN20B?DKXg>T?0u&kDZBbrJ&K{Na1ibv+N(jpHD5T9Z_wg9&J%9#e0GGJ;;ey!C2gr z*FCjdsOkq?LhgzFvm*~I3%AI~&BV&VJ#-c^*somBDct_{5ta-Ekr36?eKDCKgyL!H zOAW>&BG<_>&2<)sd(h)pY{t4Ied4p3AsIY%RFJ4a=PsIUgBG9t?{*x0@?w7?KA!U`skfY-)oCT=HiuTDj4H0N+dHt^L5$VVyX z<6W)Md<{1_*eRkg@8Ycp6&06)7PQ-K-Qi zHLUU_%c$xPP9t|g!dJ*BJu*f3uSA8ye<<-8xrgAHss)y|mx(zGgi9(0$|gCO=S}23 zakv(0j-;J!_9|GfQ795hR&lI~Dfw%ES8|TYc^Wtq&LyeE6_d`wv;8IGDTV0;x#gs;QHc2~)tVtu8 zYZTTioxX>^d*jG)MQRjSKcgUjzs7!4l)!_0K*0~RGAb*_4cnHzc#0I zFlU*#=ygowz4hmV61)}(>QcaMpq$ z&t_neC#sPl_yArolq{OCTf)Qn!OD!9r@i%E+>@^H()u8mPEc%5kVo4Obw@w$7$zt| zD0ak?#*`GCc-}gT1Dwvx&6-o)-d|>>_=&aXL4!nkzz{$4#=P<8J8Vwgt8i~Q`xkd1 z_0+;YzTzaGzUph|qqAfxV@g@!i3=pWFV#;7kuA|%j@F-6I2tFP?xnEuYG!)-ebS}B zsG#5Nax)p*=84VRGZ_AHJc-Gb4<5(O2{F%#@3gG=YITVBq{>WFsA}x11Il$ zuPfe9dslDA5j+Nj6Li>44HPtcZS^*C@xF})O=fxKkf1>)$Y(pOQo58jjCXXI8l;NW z{)1WH)Eys}qjhnG54LJOG*da~XJi>T_wV^Do&jSXOyjw8!#`u6Is;8!1Zf$aaA=8;|=-o^Af}CmDqO2ZARcQc~Z2Mv)TIMuoR-@hN z*=+^68=ggi$Ey%YC?iF=_~2{5haE@iH<=BYXs@hpP9fH$#v{|m?ZLn10C9kNTLD-= zqE}=@t6spUM~)+C5pFm)9H%Av>>pu=b?l80`Mt88ZyYd|v$3 z^~#^6Ipaw%)8I=NDeqL*6h$>so}UW5YV1gQn83Z4fKCZd_Sx$j%XLpR^)jBgRF_|= z_4%%(&Y=q*Ynwu3?17^kKkfxAyr{9KVtY(|rlQ~!>LRlEEQ?lwmEw5U(WMi9Bv_5{ z?;srLaggr{6=8nk<-0aEL)rfXjhH; zH;+WNLd+};Y$~Vr$jSR*PtUTtGmFL9V1)Qy&HMKtk>XcagwS&fW7r5<49dm@WWPV3OO? z$)(R$fVh@{{J!`1(=?JBY^}oC9;3CR`TYbw)L%ufAeBWBD+G?GNNl1 zSKB}&i2UYJa3n)0VWnZb^4dE77%j^lXrj4#tizi@(t3Y~g3?m5uE#F;tP3ez&{f?H zW?BSRvsXdOA;Ap^Up*iJMh`5Ag+g#W+l%$c}+7?N7+-(*CPC%5(E&(kaOi`3^3M7>8f zxS2_r9O<;qOcE9^t1)1Rw@us_if+Q1-23chqGo91*~mCIru2LLFM62V=B|+W{vU7^ zyzq6{y$~aZe(7M!D|M=WV-y|RIiEb%e)t?AQr^lO{Tjg*bm|2E_=2vG`%4Hf{Ih(4 z55eV9FUdf)0!v2iGxdxwRIi^uG)3_x0dp@ke`4vTCoEIY;&-RngeO z2NbXg-?(NP;vHw7PyRK%4(aiB*A6pW*z780KWo@FKYVm%@t0UW4ZV~P_g-7Y1yg1) zW<7*@DG509Lv#Ac(ary>Cv|Ld2xB)KR^KgN1&k4WO7f6R@*D2x>YFMEINGm9yfaf& zKQma~Gva*)4GQ{m0bZOLT^f8=R!kSB?|CY}gF(DC4WrljX9)kvLO1hW3APH}(1f@( zQ>Z|luw_Qx@NDs+B+nNG4TX8pBPlN*J^n)$g@1k9Tx1hhu!?8YoWeQl(pQ+LOz^&H zN1c2$)A-?>MP&~^!L{aIgDJI!2+%DJiJQo&Yv=%&Q>8Bxxp)T(n;Yg}!>4EN`!@A! zJb~u_g>s)%oQ<5a@$2ZG=M-OFX#jxHW#Xc!Xz;z%b*)bcC`Ng~PXt7`X}_}&*}dyv=i?3Bs- z4N@{`*}zrIJLzBIu%@07+v&mCM(gKSzNWX0pDW$J<&eN$^v?idG?;0_n%Fx$6VZNF zw#)?=05r*-L+Y%%=nJqn4=noJ4mv?&ba*k)isDjaM(b6<8J2TbA@1*eMc%Rc!c~th z+I87Op#Yqzg4_d?j*?iff6FhR3Jq0sW?jKENj=z?Sqx= zGA(nT5C13y|BEcN@0H$uG<()#1u?=@2K&wr35*kJ$v^0g(0cLk(cZ=_wz%32FTdUD zgE%pu5!7E0MlT!a9;^HRyqncovW&l4x2jeAbb~uB;iAnX}MRDWLgExTaKfbZV zE7&`yYZC*ziL_{FK2l+IO$L{ywY%&fHS|xsYTp74F`xSic8VN3%_gyrZD3$*F{a~G z1&#NrJh1ERS6HKbiJcMX(dY0GPS`f5__F5;x;ACw6HLsYPqHzaL+E%cWKxrB0@^7B zy33k3<^HkPETygfub>Nb!HN#W)0jz);Z{s_V7}(T?DUg$cz;wQh_oT9(%qvrTw>q! zn6jqjJIyWaM7HQ)u?)cpvtBI?$EtWa|Jy2Bo#=rGMHL9k;cROA=vY)%S3yt1TR=!} zIv~KM^!v|R_h(COK)+otzXjqCGi~(2E00!x_+6v8@re>yx-Kqw+pJXH-Po0Hpv&!K&wWhQ**31+BenJ}~3cG93 zS-{_^eLEAo+IY|3rEV)YT7S+s2Bb)jCh{Bkj@;`KHo}i7o4>U^eD!shg8dblfT5cM zLsC%9QB4j7niFc;+N6a2Lo$#qZjRB&5GSUI`kanKQJdlk@DcTRiI5%NfH3VHAx88S zDAFTbAjl)b&hGH9s>f$7uhgN5Y^EzdTOCjm)>}&Yp2se!2jl}<&7S^eA881u2H(p{z0nJ51ZU{Cw)GvlYej{c{VC@?M_JzvR zjX)^KoM1;PlSKBoS75jRGW+I)?PD}8vr3|G8y%y#(TS_mI=6a#cy0!jA}bp7;?W`n zRFxJJnYIw{hf48x^d6Wp%6Wk%tIA6(GL>W@UA==f8o_NWUO$;V9B)9xjv7*8k>6|>>O;LVd(#e2_QQYOO8T(7T ze~O~?e-YIqg@6=~yXnD+4Z1a~y9>XtRX5pjP(T6NtE?fCXf_S~>nqb7VKj@)qh2l} zYP6w)kPqBS9)A8_im>Mn^i4knO2sg_r7mgwVhd+?adh<0mz>M2Ki0tNgzNEA;~VGc z^{^9hM+UL1Es(5{q88lHupaU^x8sE=Gg*=UbH=2~R0W3=G-npNJ!HnZVdg*78LjhA z$>5S?CdwKl*9N@o@p6Tq)Zf`X_^J3X4&I~;s_AB&vKQ5R!TfeT$;MA)vTIiC5k)m{ z^I==N+!6&*Nfz3OXKuPKo{g8emCa_!!-ISdFy6!jHKLi8keTk`%2_g-{;T1h_$0)( zAsidpE3TLJKzlHpGgNYG(ErgoJ=#?7nAoZ zm}?M5U|Q{c{!pRu0&3L>qmA6U{FS~fS6)T8Uth1i!+C3gR zHL{Mg?~OA3{lMen*iLj_7t|-b{3-kkAK$11%il&en<`>OrzQl&4GAmy3Nk)nb;k3q z&AkAjvbF~Xp;fl8dRg#is{)rGY%H6CzPq`Jco)!%HEg4Nw08O%*aqJ#(K3tQ&y0G> z+=nrptFhn~u5PId4!pRw^Y_SGa>meHp07RZ6Vu&^xs5^FR&fPHK8StLm&jg~`q1Oh z)|M3ADp$Y!)|ti9`XStP;Pc}cbx|hAOnLo0ewjOH^Fge_bnJieXQH&|ltBL+DnJ4w zL#DKafqU_loZmAYu1`eC7%|_RBe~lsg*(jNp|fe4UCph-CVPoO{KkVlmn`JGViO;G z^+s8~Dg9|NGrxY%Lh>fwG>o_XBAt7gB@h0%y$UV1dw9XkH+?z_GGEa$7d=mYF{6lo z2j#koYYq;aZSe%Ri~Mb_x&>&(m0zLy_-bApq>u%-)w(B@+qBX8IfBVmw zLd`>-&!dXBx=J@}Z}PSB5_5M~!HhnzORLD%2s$Ix_mp+|i>^e^nRU|pu)hr0`TT@D z3L>9Rf5QoLl#a)kToh;kY$Y8t1xKA!c&lw2f`hJat|`-onE?rfBK)-P+~06Y+~UH{ zHt`(fAh$Uwntr3Eoe9^S!ae9_pIW?2^CtT)CuudUhca~yh9OC~EnITxc8JwpZTq^f zslqr@+VKmYg8_dgZbkHXc-ULk1u(oQwNvxyY}d5Bw z->qkn{=Eo!LSR8m%=`MzG>cX|JHgIt01Jz3u6R^E&dXyOmUJBPi#-s-dQ_2m|^Kh?@OGcs2BAp|UCKmt7hh z5vu#pUFu(dVKY_g!re-8l?M6V6P85m(vmZivsTF`mZ)V*_E*kUC$m3|CwAQHjrhDU zHJ4>h+A!)qzeN39oRD?m@4n(g{rE@Mo++IZTmdmGEaqrcSKB*v zFvfVRTGQ%}Qjb#jqkYR?i$EC;_ZIB0bHMPh(DL->XINspUXRm(+0UJ>lxR@&mlI%a zqIteZiUI&V2-<`@SLH6QbvOQ(I`O3E!PQ7$wG5+$^fXxHb>q-Ed7){- z7RnOyfJM?EV0AzJXgwGdNVzM-xGzr1HvDp^<>Mj_hr3K>Uy`uxRpT;?*}=S1HY4)D zAfs;0K3_2VLAVGHi$XX2R%(6a?(Dc<^F{1|x*B_`iNYpHX0VNweYqwjzFr<|uYNiD z^4dNkG^AeTx353{=q?8>+08))$Cjm{7fFY(I&{!oK4BJlk39Ly9A0+0lIru93;w(5 zz@EY5(dGV@3dyp_<5A8?fFojJwYY3~vUyno!q=%JyW>)YX|& z#d!Q+2(rEggl$IScg_*nw`hO>|oyT@-bl#u~)5uS_U+#wCp#K^hq}5@GsI4XF`^@E{+N;76FCx z*}I_)Dt-`>Ino%AfWX_pvt6{MWyej>kUN~I;4zUCq^@*h_)bkcBS<2f@$paF=Wq25 zrrMKm1bo4jx_wL}--4sgY>~OzPsfaC&=G6=EFXqIBqbw&mn`Nf9JLCfENuci^ZXtK zV^RG5Ukv}^m8TKQAUPH}<+FFxurw6%Nq}z9^Yr@o;V6(Ho(ZUFJjPd&={m|?lQ`tx z^e3k0Q)d1H9i>ThK@#xp$9j8#1avbVQeY>}bMDu{t97g*q(qc&Fix=a@Me8i=@a8#jm0lRB4p0WdPcldlIEXxmb@gnW6}+XK&! z4kyJAvzzz#uwhEepd1=SW83nU{KuS&f9x5c4sSkYAIC@AT(?KeKX;DlGSvG0_r2LZ zX_hCC`v_@0MyC=PWt)Ec5?=`N0F*tjL{W$Arz{A@1T!Awof3x`AKy(6l;Fiv$bZ5P zat;F*WPY?Lv!K_6kQB|KIxYTp|6%V`ZIn-UL{xfieO?rNsF;J74+vs~t)xr6p^bHM z9~@YLlmHKD^}{w~X0#pC`PnVkbYutz-GyqgtBw0zj#fuBMz8t(;nicqD#=iXe^&f; z7$h>I%F`8o%dy9`uZIV5u;y)3~;;gFX7Px-G{nNV`klW;ny-y)@{jG@T2`Y_4)7K#%DS5zcim=hI}#N!{6Ge0MW&??{Wx? z2tgll&Ylvm(D9EFhDe1I=`^@u{b(WC4%#`JWWb*c5PcS=hqj{=BRym;CckND=ziQq zrC;=W-trM@SDAmVcN4$DuG7Ts)%AH3?(J`6UM@F zCz7Rs`A@BE5e+-Q5nz9^N#FjaARWoa0W0}fzjqKSw`y@%p9A2OC?#wE_%W_i%cA885N=e`Q)B{ z6#Xnu=}?r2_aqcguM)4ys8Oir@x2QptYOrSe^f)wGS^BqEuy|Nz^^t4dqDmq4y19~ z3)cAr;=dO=H2pl5k72r|LP0hHuk2CvGV&V|$N`&cdxy}2-?XwZxb`^bUp!*QOGP;s5eXM+ zPjf@8-+5cw=idF%k}`#`fDGF`Ck9Cr<$H|9EsJl0(2mb)R@R}~+J^H#RgworWad2` zxqF5vHRLBxOk27o zQ`M!Zm2SVgjLxt+rjk(r_LzxGndXW?HQJ{K2*l^8sk>eN$+8N7KOSwu%GXwoBtnz7 z0W%cptGVUYh>7c&CT-bF_D=#Hytgg;AbHo$m^>9bKcJMrcRZ7=Mn0HdNo}F}Iw1Vo zJdx+$Zk$Z<6|-(l0bTgp0se1Q!|jF7G;$sS2rNBLlKD&wv!uOj@AHK{ZTSvcS8Wp9leluoQ*=g}@PU|N&a~{Yh0GRUwN?iCbUt`B+ zM?rJhD0jAp2| zk(uaN5g?aO5qYRu}<!hJXI8Yn02^XrA$1Y|hKU z<;*xJ>f|WQzU>3)H_3`B4aCJ|?;u@2gAQ^+HKUL2886wP&Ft?vlKTvHh6)X7UI{Jw z-kE0jtHA9XZQ!x|H{}-i&_p}3y6m-yx}mQBfRlM=5~26sY?|p>Gk}hspWLShzPS@T zr+0_>N}hPHfkO4umQC$?neLetl3S@t2|RX5rTgm1J+AjGwa6!nBH>fN zOu&!lj4Lv4+{!*Q4u5`GaBp9z$~KgIsgB5>NyugkKK7%%FO+7!_95T`t-taABGI~*7UWQ5Py;_ z=LA%pp$dWUkAG#(iPQhK3<>{U zoppZD2qS3tqQA5tl%?6yJD--YBzfxY*wNzMzPDiU9f9KX_R`tstv!DoCNINy(@80tp%nB{0OQ8IdI z)(nkk4)|Vg4%@I3O)r(EuuRqPt(i3qtKDxnFic%IBl<1k@LtD0bk}M~PRw}=Sb7!n zaQW3g1l0nCS0b#`qd)~}fHP%$|K$cX0+RH;n@id<>=MvR;*}&GsOks&=qf}8M z97#irwn=n=ymFCytox-bk*c0vbA-$}D`J)ctpFh+o-pr_Urrmz&C4m(srSkD%G(_+&BQ z;LbeJ!Z*ElPGVjDu=f%zH$3&Ctvxj`UCguK$39}dxcy?QKT0|92oaPSpXFKbDBb30 zc=fIcuu=AbxSO`ab^UAX?1vCJRvUyJ;q+r5BjUv~wjVAYtpg~D$U-TRO3z>SLuos7 zUvHC?)iO+)g*$21sP4oJlzf|8%~Kr^xcT&;D|n&Z`4iTE|1$%*`4C6wv zn5M>w^#gBh3b#UTlq&aFOrWOOUrh+0n%9e1n z_?5!r*5>(~Orq~IJBC1B(2>(*YDqAQzI@T*bA2p3(=6png6RS`6K*&Vc82BjEfCc7 z<}_9Pk*8AMrI6n=&=BR|U}9Hw$IJnqr0wwsckp`|^uDJKx`~^b9-jCK{y|w0e=g>| zNHbz6F1IIcuyOkkbucA*?(){$;a{gr#Y7enWU0u=qrq@wC(cfHFbsI0=U|Rx2<#F* zN+g;|Jol>HXi3!G4IOBy+}qo07p{GI_4b2&kcs?*%fXU#X;@#Yi1<5Qps41L$(hd| zsCW7vti1GdR6&~@Jc||`Thy#wYEt~(kL7Zk>W(CHIsFZBj2sBGlKgCbyGhrZLCS$k+*(A2e+^S6@)+a${3(l54I-^L95C2o+QBf9Uvu zb^-}bsJOO&SguMdTW%)>mLU)9EVL&ad1NFh6ZA}FDyEIGhMjoZwOzOw5GNi&k0SRf$U>{DCW#^@h{^8X7+Gu}zhM zgeQst1eY6R9<5y~97`CN@g)D@0lGgE@CM7>>i%HmuJ;%Hu;inJ~#*!Ou{^*z@U%I7Dqy`ss4yEZb}g7gS0D@8+a zvzFBi5}TzN6sw4Xf`_}}MVoKZv@pnb$<^=Ra?B%6QZAt~dfO*OV>Y$fn-#ix3W3{% zFzT99-hwt)VneDiJWu;&uHU4wg(h>pxX-%i{XKQg#m;_e$rjz0V^}ZiAbdUb12exL zyl4NwD7&eb=sk7t7ZPGQf?Wt2=Rmt)U*ZB%UlU4ZZG08SuKrR~DDn{Tt2F)n)IzJz zTV#aCxL6^M%-#qW-cfuvpOaa$q+w$4;djSNyY8)?y>f<0zo_5c%I4uNlw@Y$n$tTc zlcd?W11fZP>11it9U6484Ae*2S%-iQAc%}Q;pmnAQzKeiR9j*B0{ zw06jg%Sp-KJ1=C_ceRM$I35(YFNtua&+k|v>@j_)cp4{Kw%)`%)t{a;^Rx0|zG+Lh zRX2CW^PlVG$JdS#Tjw^p>HFOD9{*zES z#SaV>g~nj3i-o~!jRHV8yPe^faXm=B_d<(zer5XXA-nPYIR~C1gQiFFVlPD_CKEmZ z^#EfZTcpM~v>UT2XbTjSsoCvzs2RUSwA(m;%0Hvs?W54!-Tj)dQF+%c?4RS$R%PIlhXbQWnL_)|55Y%meM%!F_jW=~Kcn~z=Bw}e;g)+6!AcUM_jp8Z?<|QCxrQ(^r?4KyD4A*IPKJ`T zMM=CsmPK!HN+YxLr?Og@4SfH@5@++x-!Q+PQ_7$waai)dT=AccnY-J0azWbfO2D-i zGx-M;cg?(=QxgfwG^kFU~mrxd(IR zg_|O8xFz0?ziSQ;pJ?Q)wnA_`z9v*9O0TVNw5Ft__#`l`2ufSWWp}616>dwc9^^7F zzVxco+Xyl{_6Ofbs(u*YO+$jzXLaPwefVsfdeZ`m20!wd0D%A%Iezbgsv~i2UzRm-rJS8xjxv>+A!4g-Pf$$n^AUmEW1@kT8(4ggtd?3*HYkD@Pb2 z%UEX;`2IRJu6Ou{VpXxS0bIX>14$N4L$-+d$gj>X2kl8bQ{?`4xu@?{4NF@jT&pO`{s3O~6r&QWNwl(zud zwUk!BbA(O2l3+zGwKm>cE7-z+REsXIkH>z7mC^x z9bErgd-JafmKNlcn`7=VGYMIqY~#rF(Z=_OCFDTzu6#ZOK>x_$HI_xt;?HX#=geNs zO~M*;y(_(1Y;!YXWaicK1bb20hd;#MgEj(ot*IEgrmAdb0|`;z#VYo|qM8qK%WD^o z*YZ2g{aous)Jb$RRu4%1d+e&17iES%&?IF>_lSSNl0Y;k;WrpCBu|p88-uEfKsBq> z2w6=gc#VCAeDt`FZ7x@;ylap?an{WGIb&iBdvZBx5zQp$Wy0D*UA60)J?Gfx(f!|y$=Y81^S=(@h&P9lU4zY&!g0-HJT@X0aemy!lIeXXDNaycpmc~omBHnAN;deGzOrP6Z zl{hGrm#|KntDLQynIz5Ht&FCMq4s7ropte!V-0>=cEA%^j`&T##pMa_$P`2_mKRuP z9zj_1K}`WhtEN$zW*fy2!g(n=?6Q0@Zug!9jWgl2Se>P-KasP|^b)(f5{qoxyxkCp?^8=kXu1J*lUX~nQpb;)0&LE7l2A*&TKH3EMUfRZ~|-KW!`jhJIA`*fA@*67VR=wE-?6uYgRkAiI#wJ|f_sLhEQuUUfi1>k}ZrYa_g=zZ+C&96%N z1T=S`3KPo(iOLtrgWLt+R26G9x+6qK-}lG+TX=%(eD=r=3Tq`p+fcox|KdBbILv3v zm+f^C)1P$r2hTY5y`CXlglJ5cWUK^{z|PSaEBiV(?W?sl>k@;J`3J8mK$y#szrQCs zyd_*`j9ydAV2#~#|$a-Tc*+#KAkH4#22BP zWufdaa;ISuL}C7EXyI44aC+-1#i(StJY{q*#GbNYpVxS2qCHYjz@$T)BWFaZ^%Q?tFs!I-zwA^Dxjp7nhphb z%wFuw;B|_Z7JEH}5|%l)m1J1UMHZiDafRZhNv~LpX(8#(4J4ukqsW}S27%fqATn!l;A%?;bd}n?j;!r`5+VlAr`}V@bMjuA9r`T_)?URgZBLx>!jd1*t%QHnumcXq_Cj zZcJD>*J>3P)Rmle(>@HbiiNT7k4yJEJ)od5L(Zp6TWSe5Jh4gg9%lofa(MRkFWiB} z9F6opJjBlY3sil|#`wJ71f*=K29j{a!K``y?F1(y3t3ZfLc!nnU(=izQgCrnnW4S>WfpyvbR{p zEt0QlofPaHd7%A4Y>kloI~M4|LDygx$y4Tw~JDCP1KtIg#x>0HKei=JY(Mdb?4)pRw4I~xZj|nXM4ESucP;BzD~Fb zixr`#eM03I3HfU5)fcjVl9Y4E2C7+{jy`*M%xu;|l!iu(YAx7lwZ!jWKQzuk&hHjw zl4w5ZEFA1SnddltPi>9vlh@Rv@@kuog;jhhl{SNw7e0cY>A#*HR=n z#qH+%d+s0bd_MQ>&6|@wXLe?Gc4lYJS()s=POKVriO4oW-Gx~f`5zU&vNjXg@+DKN z_Gv*rv(VY`%v_G>$IYhsGq4J3_lm*jWMWq z-h;t>sG9`bnP(FtY8Otg_o^%UpOgo_rNbm9IqMUA_ZnYDXQK(Kl!X;Fw%6#FU2KGv zRl1bt+<210_oZQ49ueV7U*EhDcl;XYU77vH2r4-mLH8MmpURGXlznE}<)8iAkG86V zFT`E;ip@>yxu{&sX0Y4Yg4uGu?BGyy8MBr;DgpBa6DXspZxL1@XT@1LI8<0k4DSiC z3<;ZhTqC|Xswlni(~>7^s+7c=uu&R zcdEu?EZ1i@+|CwTm==l=4pG=oZhmWK%Q^QB1|8yj;u#(=32*0!(E(~2Wj1Qjkgcoip**!S4!q)gfJTC zfBEnGW7uZMiv#o7Wit@&{@3>EdWeoW>Nk~?k+f7aj-yJY>nuD#l6)*wEjVLLm-(VlXO3>9$w1Vo|Tn=J5bWaB||O9@K-)qLegbLOW0Aj?IFRL=Aj{` z5J4m!wCdz$iXv>}lbUE6wgBU_;cMgAj)yU5aDz&{=MU0eP=T+AP=FcABl;oo zqK}bKKblC#TRQunK3-=Q)VEbz%#hJAd^{?m3XR2yQzU378Slhz$vUClc!c?;V9?x}f;Z%u!RIH?@cu<~A=0|gi~1WZ|E-E4KL0J6@CV+bcppQc z$;PN0>?d<&Aq=QRMoySm#367exf}oz?*=F8E^@yDGdkf9B8*u;6MwDG*ha>PY{$|@ z(g!H4^6}2k8u=Cb(UCj33ejxWD(pmKXpP6FGNuH@RW#~H6T7X3UrEM@Pi!Uj>Qtmm zvX}Zlp3Imm18;1-vLZsvyTPqVr9*pZ9HNeBaAwV4=qy42wmDOXD(x9I79fUHQ+%%P zQ)v0Oxm`yOZ_Z0;7W6rg8nUs0ikW<#eD^_wjs%0VY=r@;*%@p!SD}79Yy=m$w1{yApH+WW6|D$*F zPpes&P|sN5W(>3icjF{o{H(|yb`MhMHR?;=aO=tiCU%7P)Ij?$U&DU*B4lfyg-urD zTKHWf8(Gp+y<4G$q>XL=kov6f*5xaYnc~l24GaB3rqDv0$jE`=j==g+F$mDhP|@b& zmm(i)i;RlZM4D$k5G%Y%xbap!s@$_&Zy0ulx(_qokEJWbIje6s}qZ~=) zA=mJ}r9RZ4d;yd_j?d)Ain!!P^}TqM(Qg9=;XXw^>vq~w%{tj6gKRD5zdqkRbPbZt z^3POQ$&By_vgxIcyu`L6NBMa?VX|;@SBrqL`xi?-^3r%Kfp&oebJ*Cvb)>}k55X%b zEAOxHekqW%B~Fjek&dYO;A5+MXhFQPAFa67i`Y zY=cTGxqm;y?Jli)FSc^+n9stMu2h1m1YFVSgETQzT-BNN6oNKlY-u#F(_iMNU>=QS z*xrf0{&!_}uF6rR#V1wP44z7aDSYnRf2h*ga6_h}sFby8&JyEwzQ4b}*Xwi-Qx_sH zBx?~t(aDKH;pf2pEivaf7HV1j)?5QWtxh$*2XU1X*bthnB7c2MtOT@!b&kj(29*!Qsyoi&k@W0QcnH3`Lx~goP2k*`%`)B z$!WlKmdc!&i7ZswcV~a$cy>J3$R%^^JJ!b^wFYdG%OOFuj$fv596YW|%s<@O|KJmp z*KN`8a;>cf2FvzHVtS7~?f^T-4*oaJ7IZ@|uQw5`Ifilz6#7y=kOF3~pT zJlv%`i94Fu(2<_8PvRAw)ownh?W3NrP=CMWeX~<929OG2V}2KqxO?AqZMF}3mM2I9 z>&7m>f8_Nc(vRu`Vc45NwPL!LOmG8^c@SL_R&cx5%TTQ*V1hGQSt= zoEs6~rn(s077Suof2DZou+)&v$od_hsIyx+{z4o?F|};^ms$!Z@xJCK@9R^7D$}n_ ze}R`*gr0bfIwQ8-{s*LH2ODShb9f&Nfp09vw^}!)_KzFf3=|2!(tZG`qnONm?klzJC|Ywe(LB^dDIYX;T<4K|54)?LZ? zXv@3%Y6O%z$HXE`ghM#g$OP3roGV6F#3g72m%i&s`*2?yPl9ajg=@F#_qp?c*v?Vw zwKeiW?;J(NzlmL?Nk|q}RyWCV#Qf$mU?T!cyp)MEy~*wW&)BaxM4=ZKe+Iz*&Xv>f zO;RP?XaN%ZdG)g=96VG~pTOZTNwwN1(F5$C0P|(kL;b9xO9VeQHrjVW_B&l~efXX= z7tt(Wmwb?lEbPr5reawSu(Yk3K`iot_^eLXC&pd-U*PFoJ4(ma<&2%ufkBD|%OQvsPWaK4bd$Mu&N zg`|Fs`ca?cpNP3cGFf+0hj*Ok#bY}l0}^P=OECEt8q%rdqYZf6hhWt3GvXxt8LdNn z_e4anUD^>^A1(^v(7q3;JabeY(Tz9BH+wg6&0d?%7Ss6^jD)4H@2p9%d+zOP?~P7{ zZ_{xB)5kSbPgPeMTmDfrJVe?jr=EgcJyesjTkvlV8Gm0rKMH_xY%1** z?8UMy^Vh&_#L3#6S8$rX(nU@%acU=-KGtu-Y}qrV>IlU}cH!iJQRn0LYE$O*;5wCM zM#w%dosgBU>pjp&Dq_({WugKJ0md4+D#HlQ4z+AGBfpj?CXM&+pS_hm_fRnFB0C3) z!}4T%KQzk&xiThTV)dfxF~O1H5J}yDqH(EZFvx>gDt>^O!uJ+0(aRfOZKM zBUogbR;|r!SFCoW)!Y}2h`bC_XwY=(YMeBKF`JpI70zP*RhAB&F*d(iX0%`#QG5Ur z*A=SG3|2o_bbXY-lDQx9P8pp@DO>kq$hCD z1P0be)!JO=o3VLXwoe`ypr$p=Go!OrVz~15=oK;W1_c6S{>>0BIWE z%T6Kv0N0t9&h4qss>uR_c2oRu(ruuQlQh#`aJ}wIhyV4b2=Tn$M^kuGYF?(%(QmWs zcEyaJYTS&&)8mWw39wo9flTSU#sn7PsY7tB zL=o5N98af<6~f_AZsOgy4j{_qn`$TSWi^9P=KbECl?FHT^G{|(9?<5Hf5$QdF=Io| zp{aNfNL`{i+WS63_pmc^W>>sy(g-nmE1piRhSyGfu5htI;6syMx-Muay!zHG15Syk z34MassfW1ZZ@-|`qQF-S>Yx&rOzwj^zBbJJatrlH_xi;nLfj)W`7NJBQF->!xdZd!gTgV=m>4q+I_6Ssbbt3H9_2>@M@-OS-0F4sW1E9ke zc7bl&h5HdT-ViKM0YY>b$6=n%ep4(k3IV0@c{646ue@enLtLu$y#jyDG()~r$eFmc z{LD~WPfnIqC`Z%J?LR*6*%s}cFeL_lq)3t zhb(@`2%qqXizIbCF%(DmLJaNv7Tj&_nPHh#M@w(2cuyT)A;O^+qK4b7u8!7rv@TLi z*`0>xUlR^|0{Y_=zSIg_5xG#k@NdRYtw6k=TJk!erL*JfM12`MP9hpwqQ*n(b@g2& zXIC3O#2y&%HnBFMr>-Pheo(~D8KAO8Hhy3LwCjHlJVf;EWs{#2wDP)I{&ijdwKBYK z?V-PhYL1aEYvG!j$@>5tPy83Q!3c@PDlhxUvh)q%zd}6emxwSPr_-W?7buAT*OGr1 z2T<&G5{O3aY%#Y|z2C9Z6(=S8%Q~^ioKlC54AG9^{q6R51E}NH{IlFnx<7Kwo}U@d zK40^Kq5@?=vp7NRtb0m@bbeE#a`|q)49wcNlf~}LU4gxc#C+9+mqlR{*~itZe9Z0d zww8d4DArrXTgw;Ey2ZiIC=57fHu4RayFvL563Osgw9xWl_@hg&Un&9GKv$y9s9AS zW~03qH`uWqv~UOhCj5Z2@3n2HoV5dO^!VktaK&rcu5I6SO_nKo5PQ!&9NRcgCCo6z zTr|@eSRB;+o5Ahm(4f|1p0k!@DYAZgkEU+u&J;hVb~+GH)3F?L70U8*YVkhgi7V~& z?tNoQh{)ivnOhcEBT_%)(5wtO>>^r*iNbsIP4n=(6|v>-<71Nea(aFS?R+iO)W{OO zQElhuwv3x55`H|j^h9uyb=WC2_^c9n_$W!u=mm@b_1(N14GK)iC_?>Qk1;Y0pIA9W zmuy1Lu0)(Vr{&@FQ|t~s^#@TxzQ;IMfTe`Q+towG*A&VJuy~In_7JNFTl*UVfk-$76NB0jmk zKQ$W{>dx|r7dL$Yp=w(bi&tFSkiKRm@88-F&0Z#Ec%yhaw zKxfaz$m*1v9kJr$AXSBNnve6cpm4LANYxTO0D!ei{iTw@^IRYDxSp1|0AG#4`9f6Y zLo3^}y7Fn8Lqc4nuO<^<=2J zEUR#kk){GJJA%%}v})GgarC(~v>sIjU~N?araSId>=1H?9moKrmrDG}B;8+RB;SfGRFa z4GC&pdO+|ttFd^E(U{g&%A$X>WV+@jPgau^?<0HhpK6sm5%IbeJN%0CU~cq7ch61$ zlR}C^tyh1HAB$txyrJADGoHnh%P8=j7d9XeR_@d3wXCmBrFI4b1Nw2{nfAM{@uyFx z?V@&sR-R^ZV&9`j!6cF}Y%9g4&pMf;T??qr)oOj=GzMQ^_gkxR?&c{bcUuof(8s5b zcx(T~ysJQp{Q1T&wEmn7%JTV(_p5+EjF20ph9nTU-OZGviS>8GU<(zM6Cml&xxQ(& zZ#&b7oa$-O=#UHkMZq&eJ)Z)8Z&*@MU`_+RMvZ2&PzY1ooS^bK7Bs@aGyUlqhXE)} zWQx-T+kr2Cm*ldDq0Nu%YJucK^fjT2-mpm^D zEmz*N#%H@E+h2=q^%Isum>dp>i7By{BmMaud-ftrYN#9oGh~L9XFiYs)x_jol&B^ zKeu6Wo1obd5OBTPCQ2MO*i7MlXc&6-1Zt<*|C!JJA@QvIgQ`ZyHSX}rJ1Wvq+?z4*(=GyO;JUNrFVcQD z^Wpqh1+$vl-i7*Y2{?p6g5TEuO*Su!tRA%sx2D*Bg^t_rFmDpdIQY=@ZEk%?${?bN z4Q>fmQc>ZNxMvKTX@u@13AM$tIKt3p8Q;*1D}FVre%HQB~l|Q(8XIOOQM#)FX_WH-DbFcZB*>9 z$L(D<>*O>Z4UQj-&xEHdhR}y*pw$&)WsoZ(d&J$&d#BmAH;1ppm>;7c)&3(tABy_?!txf6lPj)>}vU9`JpdfW{-8kmFxh-zL`A*%Yfd zv4!&htGI)g^qdcu2wCUfJu!qPFkBA)K7sT67Jk#uuVU;dB2{19c$yp9d;>JrBwJ#Y zl$$5L>lrrqSS?*6K}zWQ=3-BgFZVXcafGJoGBLk%bNjl+ts=qI(uqZPVFJ4-BGS6> zw;DT*Ls${S@h*WMtN5lBx1e^tI z^EA-OnE;9(n2NPXIscK%Ec&LcWf>(~2V7eO&|PGFmTrso%M+TeUYRuvuW?fKxVB4S z%Jg7tld+mmVP2x8!~7Y}_(~~)gqH3YU>KBg?i=$DekyQl!x}^pz2^J^tMTDceG9Q9 z-TX?v4_pG5y>|q7c$gp@rWgT`p>$nO5)b=#t|Q#^_r=3rTj}GAY0r8vfU^wFDL{-9 z-T|NeT%lYd%ztc7^glrq^yDy#L#Wsnu?ATLWUrIPGzgZ;ZCHEnOaY(|XKJ?ab%oC| z@~B4{I_bDNqG1FU2geBjrXNbQc3?n|Rv6Wbcd;;neV|$cz~U~f64=(=0-E811pEZp zmt*XE0Q*1!$+kWfaAS|qI*fq%AHI0cEK;^1-69>8S%`6Y(xH;{%g?5KsijRgDZmrow>KQ#VfTJ)a(2W;je zAQPm%Gyt$Pmsaqf0;ExsRkXuKW$-B8u1s&>{F;~Ii8ci>|HFh6<1!M=+r*a6} zut`}2^}-M;0Q52=M*6jFWfule5t>mkiM8)iqAVN57>fJk0t9jWQJ=)03!C?{7fawp z!r{gL<{}G!?pRDpv9^znF(lyz^Nf#uHgTwRjG{2woEk~Lt@iQ4K5mmBG4o~aXo?#R(Buh*W(Q3acR0zpXU&_0M9Mu&FrZi~>IW6{49YsVcpuf>J1lInPm9)GNYTHgO zG8gL}d?n^TuGU^~3Sq|kd2L*RvlzewGOmk^QgLaK`KRxtD*}kWE74Lsk~~+G*2Qpm zX+g}1`qB$i#KN^E8M12J9`S)|VFXW~coAi4L8NUcUnlFkLd4^!4wi4P-h$`k&S z<*4$9O=VdNGQM9KZCT+ePLggVW`8b%N)p-zK9T%w9LRg|o(GSIar&;OGQ@+kg8M%8 zQimY-JofVxyZrx3cfJ<+*@)b&yj$)dqW-*jZOlq zhqkiyw6V-4UlYhkJ@^Psd$b>Cu5WYvhXP=v_QYnJq(;_@xF0?E`ZEzq^G_5){flhn zl|?yAeMWs60dveN44f>pL3~-zqW{qtBXJu#%zkC)X=Ei=<4pWh>1Yo?u~S2lO2^N| z^e$jAQSy>{*3<3;uXuQ6bJCTT;JZ~+Ye#z;di0MV;BDrM! zmN$1l{s>?y+&jc>KfE9bZzp)s5hFDo?b2HRHC>R;E&b_aFV~tANeo&vZNkpv8XmPU zjPBZ1K*r}$Z?$$Cj)#lpH{ zIG%u_>(1Ee-EMTNa$V0I&6^>ECS6%OrL$bgUD&bGl-I(s5eiMwPl}&--PNra&Zgr& zF%vfG{>r}y9gDZHi5ln9FeD#qC~+%fyy$E7xCu=XQ@p@}Gs_a8-*_1k{sA(rA5Tj7 zoYw~EE4*GqET~Ka=tgF7nK}kVVToHroweP$uoU;}c1ckyWL#Vanap%0-|L=y6#5-~(7Fe&LL!Mc zRj2`OJYAVeFXercKfs=B?NF(gVuOVjTXu4#G#RD)ioyF<&Q;8NTaY+Qn(JSg;K{y<~CKp&h zAD;a$4hpqRYi1=@6JPX-C5eRFIZQPS`&dH&0`+>`rfYu!K>T)Ff3$NJ%GPtfukCnr zy-)ebX!V+*-OdZE%jaWSSeg-HNc7NOREh2EW9ropmp!a*F4r^G3cE#dnuvAvV@mGn?|`yr7sHdQ#T=*G`*au z_}#OuoxjiHkJHE59+Wjq9_AH$ocDzq|MjJF^&ZOj$4WXHNf^WbvYI>JGH*&KuS8|3 z&|Lc9nI!$~Npj`1ZW8H6?EN6BXD22NsrzS-&D{Hrf4jKX*&Y9TwwUSf^s!N|!NgKl zuO-LW{qK6>?VieFKg8~DT3xaVPHIgN$9^_5%Wd2;a(4)RaVa@)z7K3O`4dReNl-iN zhLs)H(q9ajX$Ynjr_iP;ot%#?aoZkMlW9slpLN6uW}YKiO$+oaCJAaI5d>~e9L3`- z*~r9T!M3*?!H31Rk1`tl34~1 z)6ylfW9uO}mC~ZI<`z`rbYREC0^(AWA@Y5J%x8QeqePgr>?wLD6WlF+vR=kE4Dkvl z{cRf@y11_gk!Y}qAV%p~yPm}Ems;`!XH~gTYy&e4oJEXJfdz+Ef66C%IIkNr9ebbg zh=0E`%}G`!<#uP(mj=dEO#W5R6CaTp-#;##W`6VQq>|mi`=eMn=r{>dz}Sp3ixsaD zk)KsAJE7d&ae=q(Tno3^k~klqlpR3<9?!Di=F+Lb$;o;uPIfxZNe=(w^)yrNOdF&; zr!zZcjYMShGsy2I?RE^7Q&zaA&P=S?Q}yRaP)??6Jx_b)^YGEf?ZDE2o@C#>(SQx_ zA7WCdU+knC@jhb<_376kZB6IsnCPnBMsxh$w$PJZt~yT(3ZjZ9FFsN7KihuXC!I(s zH%uNt&~#~qK31XGvgw6B%}i(!dEwKbXE?v{?f8SjrDM!TA__b5=IycM1;e-Px=&}uszfBhcj5C zUtGu6D-(f%pvG5*%ER0V35TY8FcW z#`4P+;g1?V=^f3{b!jy($eE5Z^=$NM%xd8*K}S{haWqavWjjS{<@mp#NtoH&n}8Pw zGYyr|;?jDgKN4tDw(x=a;mln@gdXXL`@O1G-G6=a zFY4w3u52bGKdazpG@P7#Y8^1tVI6H5le5@d1&L%(RH+OF|rC_;U3VtVlIjCO)5yt)tb4$kw`UbR9g831<2IF}*I76#~ zb#Kq`lrhoQ4FWA+Rxh|nb2p=^!>Ssnw`7`C4vIX^4ia|EB~Ftq)8<2h+;`6 zmZ|vK2iM*RZO?&xK*xApFb}X?PN*G4My%>Ue6I_vCYSF{uL?|#H8W={JR^65%{X^lm1b2z&HN@FrzxYj$RnF>l08Ql2NFBbwcQfe;M){APi zAM<>z%=mYj!M)JurfV3*1(^;A?TfGqQ9GM$eQT+hi%IQ7LWEoH?c$e%m9*7me|BrF zbPEAx+vrWsm-UQsw=r|dhS)9e))Grnm<0>tQxO$QbwQ>SnI|iEb{F6#Qq!suf_5y8 zlW)t6y9I5;tv|^~kpJ<}(P9>!T+I{DwA@W2Hx|E08oa!S#DRx9{~X>N<{xL9QVG@% zzz26G_l}AQGZlpeBV|L>q7qO?Zw9EL|J0o<8a4JxCM|_IBXJaic}M5p`>)TJr-|f@ zTv8{YMy?~QQk6bk`j27cQdc(1?V%UwRzV9&+`XCV=~Nv?zFNJVg79??1TKAdbjvZ$ zNaog-v;2di!E|=?glA-rQ|)IKVV_Wu-%-ukvmRVK9e{LJ(Ehg{H=W87larduxfnH6 z+K|uFMKRbs<6eue+CLMU=E*sd8;~V^>_Ncuz^1;OAnQoXz@`pMdu$kg2=|o*f*NI*SdMZ=u`6MBwy$HVZJXnOt9sKZB?Wbo2}qWE_&VfnV}8&2Lzjul~tSB z03Nqdj}atg58f}>jwRyt9>GLW7dB-r7q`~l)-RhSEzZ~MiX5+gk-n0cnb1{^d<*Ba zqFD(JCN$w~9Jk5UP9q0f>qWD$l+^IY+3)J=|CrmO`M zn!lid0kTtF@yfu8O*ggdm?v(^O8Snhftp(_{MYy1f}MFnlvHVB_QBR@=NZSmVBlG4 z>nS$1KYQ2RJ+Z!}5ruaoV`mQ1*`|Yp5*8I;w-6xxFKQ?maSHxQDZn_jg>-T{j>|Q8Ocl~!eB3si2wDXpN zKP$%=)BFyyvDok|JsAPL`f2Wwg^P>7i^fpF@I@Ld%I zpuaHB=j8Q>XmZ|dd4daVc^zUt5Fg^cG9jX^pKnkooN1dM-rf6~WQ?)^V}0Ixdzh?_ zCfo$KvzHTu!0L_VeSIBu_kx&|y(8A@gINNo4_v&fM6!#x@T34lPJZz#Y?&*7@57sH z*<62DKt&ZLUV`{1e1A@N?@i%x=*2-k#8!~pn|emalSV+u^cncV_Ku`J1rC`iRPhq0 zb2sdN4`X(Q2OpVuTf1`+{F)^Lhh?{M?^N9MHER+WX=^{(tT-Vj=AFW-<{vq9F#b@o zwtLKMO&AlMh#J+;Kst%J$dS}2+`}@N^x2YKm$T&Zo(u& z^wQVEbQMKh?b{BI{|ka3;Vl|M4BJe|5u8iN~x?Lzmqx%c)&z~0n808F;p>HKZtgf zl1zpzi-pyOgfV6oR?o0Yhjnr99J}}c+kU6XB~AifL$;?0 zt=YBT#!mt?+atSj_THtJlced#!i3x?nZxe(J(@mp`M@MZlm@mn@52z1T9emwBijhl zUdH1g$e97ElB-FRc-kLSPXYw0U`9mWTe4eFPdorWUs%cQlt`M8w57M8sHFjk6_@v> zozcmgVMIR$j0}mMt@YKWTz4Q{8j*l|)A@{H{?A|5YJs@h2wvx&R~HK!esuxd@LS2g zap=kq*pa0SYaf7!uYN)pxVuggTHgV~4%%lHzqkNi2~{I|xPXAI?Q>`={yHL3qX;=p z_zmdW_LpeYN+S6FG3Yu^7G6kV{or%$4-#t*C!V43!7db26^&In}{8$|IPV1RU7kK0BNthbE_`j`o^&?Mg}Pm|9g_>AOVmQR5V)X zy;2}K6Kz+N%50onk6b+P*Z8}`m!)&iBrZk*uo|h t_1*vA?p%lNP*VI~)cF5F{=Z5f6Yv6&_hOMk*X2J<>Z;l=;mXz@{~w;e?tcIP literal 0 HcmV?d00001 diff --git a/lib/globals.dart b/lib/globals.dart new file mode 100644 index 0000000..802bafe --- /dev/null +++ b/lib/globals.dart @@ -0,0 +1,5 @@ +import 'package:twonly/src/providers/api_provider.dart'; +import 'package:twonly/src/providers/db_provider.dart'; + +late DbProvider dbProvider; +late ApiProvider apiProvider; diff --git a/lib/main.dart b/lib/main.dart index b3983e9..d3d3a92 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,7 @@ import 'package:flutter/foundation.dart'; +import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:provider/provider.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/providers/api/api.dart'; import 'package:twonly/src/providers/api_provider.dart'; import 'package:twonly/src/providers/db_provider.dart'; @@ -13,9 +15,6 @@ import 'package:twonly/src/services/notification_service.dart'; import 'package:twonly/src/utils/misc.dart'; import 'src/app.dart'; -late DbProvider dbProvider; -late ApiProvider apiProvider; - void main() async { final settingsController = SettingsChangeProvider(); @@ -39,23 +38,11 @@ void main() async { await initMediaStorage(); dbProvider = DbProvider(); - // Database is just a file, so this will not block the loading of the app much await dbProvider.ready; - var apiUrl = "ws://api.twonly.eu/api/client"; - var backupApiUrl = "ws://api2.twonly.eu/api/client"; - // if (!kReleaseMode) { - // Overwrite the domain in your local network so you can test the app locally - apiUrl = "ws://10.99.0.6:3030/api/client"; - // } + apiProvider = ApiProvider(); - apiProvider = ApiProvider(apiUrl: apiUrl, backupApiUrl: backupApiUrl); - - // Workmanager.executeTask((task, inputData) async { - // await _HomeState().manager(); - // print('Background Services are Working!');//This is Working - // return true; - // }); + FlutterForegroundTask.initCommunicationPort(); runApp( MultiProvider( diff --git a/lib/src/app.dart b/lib/src/app.dart index e1fdb9b..9bc7514 100644 --- a/lib/src/app.dart +++ b/lib/src/app.dart @@ -1,9 +1,12 @@ +import 'dart:io'; +import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:provider/provider.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/providers/contacts_change_provider.dart'; import 'package:twonly/src/providers/download_change_provider.dart'; import 'package:twonly/src/providers/messages_change_provider.dart'; import 'package:twonly/src/providers/settings_change_provider.dart'; +import 'package:twonly/src/tasks/websocket_foreground_task.dart'; import 'package:twonly/src/utils/storage.dart'; import 'package:twonly/src/views/onboarding/onboarding_view.dart'; import 'package:twonly/src/views/home_view.dart'; @@ -72,24 +75,127 @@ class _MyAppState extends State with WidgetsBindingObserver { // connect async to the backend api apiProvider.connect(); + FlutterForegroundTask.addTaskDataCallback(_onReceiveTaskData); + WidgetsBinding.instance.addPostFrameCallback((_) { + _requestPermissions(); + _initService(); + }); } - @override - void didChangeAppLifecycleState(AppLifecycleState state) { - super.didChangeAppLifecycleState(state); - if (state == AppLifecycleState.resumed) { + Future _requestPermissions() async { + // Android 13+, you need to allow notification permission to display foreground service notification. + // + // iOS: If you need notification, ask for permission. + final NotificationPermission notificationPermission = + await FlutterForegroundTask.checkNotificationPermission(); + if (notificationPermission != NotificationPermission.granted) { + await FlutterForegroundTask.requestNotificationPermission(); + } + + if (Platform.isAndroid) { + // Android 12+, there are restrictions on starting a foreground service. + // + // To restart the service on device reboot or unexpected problem, you need to allow below permission. + if (!await FlutterForegroundTask.isIgnoringBatteryOptimizations) { + // This function requires `android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` permission. + await FlutterForegroundTask.requestIgnoreBatteryOptimization(); + } + + // Use this utility only if you provide services that require long-term survival, + // such as exact alarm service, healthcare service, or Bluetooth communication. + // + // This utility requires the "android.permission.SCHEDULE_EXACT_ALARM" permission. + // Using this permission may make app distribution difficult due to Google policy. + // if (!await FlutterForegroundTask.canScheduleExactAlarms) { + // When you call this function, will be gone to the settings page. + // So you need to explain to the user why set it. + // await FlutterForegroundTask.openAlarmsAndRemindersSettings(); + // } + } + } + + void _onReceiveTaskData(Object data) { + if (data is Map) { + final dynamic timestampMillis = data["timestampMillis"]; + if (timestampMillis != null) { + final DateTime timestamp = + DateTime.fromMillisecondsSinceEpoch(timestampMillis, isUtc: true); + print('timestamp: ${timestamp.toString()}'); + } + } + } + + void _initService() { + FlutterForegroundTask.init( + androidNotificationOptions: AndroidNotificationOptions( + channelId: 'foreground_service', + channelName: 'Foreground Service Notification', + channelDescription: + 'This notification appears when the foreground service is running.', + onlyAlertOnce: true, + ), + iosNotificationOptions: const IOSNotificationOptions( + showNotification: false, + playSound: false, + ), + foregroundTaskOptions: ForegroundTaskOptions( + eventAction: ForegroundTaskEventAction.repeat(5000), + autoRunOnBoot: true, + autoRunOnMyPackageReplaced: true, + allowWakeLock: true, + allowWifiLock: true, + ), + ); + } + + Future _startService() async { + if (await FlutterForegroundTask.isRunningService) { + return FlutterForegroundTask.restartService(); + } else { + return FlutterForegroundTask.startService( + serviceId: 256, + notificationTitle: 'Foreground Service is running', + notificationText: 'Tap to return to the app', + notificationIcon: + NotificationIcon(metaDataName: "eu.twonly.service.TWONLY_LOGO"), + notificationInitialRoute: '/', + callback: startCallback, + ); + } + } + + Future _stopService() async { + await FlutterForegroundTask.stopService(); + if (!apiProvider.isAuthenticated) { apiProvider.connect(); } } + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + super.didChangeAppLifecycleState(state); + print("STATE: $state"); + if (state == AppLifecycleState.resumed) { + _stopService(); + //apiProvider.connect(); + } else if (state == AppLifecycleState.paused) { + apiProvider.close(() { + _startService(); + }); + } + } + @override void dispose() { + print("STATE: dispose"); + // apiProvider.close(() {}); WidgetsBinding.instance.removeObserver(this); // disable globalCallbacks to the flutter tree globalCallbackConnectionState = (a) {}; globalCallBackOnDownloadChange = (a, b) {}; globalCallBackOnContactChange = () {}; globalCallBackOnMessageChange = (a) {}; + FlutterForegroundTask.removeTaskDataCallback(_onReceiveTaskData); super.dispose(); } diff --git a/lib/src/components/initialsavatar.dart b/lib/src/components/initialsavatar.dart index 8179d70..f8ccedf 100644 --- a/lib/src/components/initialsavatar.dart +++ b/lib/src/components/initialsavatar.dart @@ -39,13 +39,25 @@ class InitialsAvatar extends StatelessWidget { double proSize = (fontSize == null) ? 40 : (fontSize! * 2); return isPro - ? ClipRRect( - borderRadius: BorderRadius.circular(12.0), //or 15.0 - child: Container( - height: proSize, - width: proSize, - color: avatarColor, - child: Center(child: child), + ? //or 15.0 + Container( + constraints: BoxConstraints( + minHeight: 2 * (fontSize ?? 20), + minWidth: 2 * (fontSize ?? 20), + maxWidth: 2 * (fontSize ?? 20), + maxHeight: 2 * (fontSize ?? 20), + ), + child: Center( + child: ClipRRect( + borderRadius: BorderRadius.circular(12.0), + child: Container( + height: proSize, + width: proSize, + //padding: EdgeInsets.symmetric(vertical: 5, horizontal: 10), + color: avatarColor, + child: Center(child: child), + ), + ), ), ) : CircleAvatar( diff --git a/lib/src/components/permissions_view.dart b/lib/src/components/permissions_view.dart index d9f38de..e325d59 100644 --- a/lib/src/components/permissions_view.dart +++ b/lib/src/components/permissions_view.dart @@ -1,4 +1,7 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; +import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:permission_handler/permission_handler.dart'; class PermissionHandlerView extends StatefulWidget { @@ -44,6 +47,28 @@ class PermissionHandlerViewState extends State { // if (statuses[Permission.camera]!.isDenied) { // } } + + if (Platform.isAndroid) { + // Android 12+, there are restrictions on starting a foreground service. + // + // To restart the service on device reboot or unexpected problem, you need to allow below permission. + if (!await FlutterForegroundTask.isIgnoringBatteryOptimizations) { + // This function requires `android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` permission. + await FlutterForegroundTask.requestIgnoreBatteryOptimization(); + } + + // Use this utility only if you provide services that require long-term survival, + // such as exact alarm service, healthcare service, or Bluetooth communication. + // + // This utility requires the "android.permission.SCHEDULE_EXACT_ALARM" permission. + // Using this permission may make app distribution difficult due to Google policy. + // if (!await FlutterForegroundTask.canScheduleExactAlarms) { + // When you call this function, will be gone to the settings page. + // So you need to explain to the user why set it. + // await FlutterForegroundTask.openAlarmsAndRemindersSettings(); + // } + } + /*{Permission.camera: PermissionStatus.granted, Permission.storage: PermissionStatus.granted}*/ return statuses; } diff --git a/lib/src/components/user_context_menu.dart b/lib/src/components/user_context_menu.dart index bf68782..3dfe14a 100644 --- a/lib/src/components/user_context_menu.dart +++ b/lib/src/components/user_context_menu.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:pie_menu/pie_menu.dart'; import 'package:twonly/src/model/contacts_model.dart'; +import 'package:twonly/src/views/chats/chat_item_details_view.dart'; import 'package:twonly/src/views/contact/contact_verify_view.dart'; class UserContextMenu extends StatefulWidget { @@ -33,6 +34,17 @@ class _UserContextMenuState extends State { ? FaIcon(FontAwesomeIcons.shieldHeart) : const Icon(Icons.gpp_maybe_rounded), // Can be any widget ), + PieAction( + tooltip: const Text('Open chat'), + onSelect: () { + Navigator.push(context, MaterialPageRoute( + builder: (context) { + return ChatItemDetailsView(user: widget.user); + }, + )); + }, + child: const FaIcon(FontAwesomeIcons.solidComments), + ), PieAction( tooltip: const Text('Send image'), onSelect: () { diff --git a/lib/src/localization/app_de.arb b/lib/src/localization/app_de.arb index 8f0749a..ba23f27 100644 --- a/lib/src/localization/app_de.arb +++ b/lib/src/localization/app_de.arb @@ -1,6 +1,97 @@ { "@@locale": "de", - "registerTitle": "Willkommen bei twonly", - "@registerTitle": {}, - "registerSlogan": "Sende Bilder in Echtzeit an Freunde und sei dir sicher, dass nur ihr sie sehen könnt." + "registerTitle": "Willkommen bei twonly!", + "registerSlogan": "twonly, ein datenschutzfreundlicher Weg, um sich mit Freunden durch sicheren, spontanen Bildaustausch zu verbinden", + "onboardingWelcomeTitle": "Willkommen bei twonly!", + "onboardingWelcomeBody": "Erlebe eine datenschutzfreundliche Möglichkeit sich mit Freunden durch sicheren, spontanen Bildaustausch zu verbinden.", + "onboardingE2eTitle": "Ende-zu-Ende-Verschlüsselung", + "onboardingE2eBody": "Deine Privatsphäre ist uns wichtig! Nur aus diesem Grund wurde twonly entwickelt. Genieße durch die Ende-zu-Ende-Verschlüsselung die Gewissheit, dass nur du und deine Freunde die geteilten Momente sehen können.", + "onboardingFocusTitle": "Fokussiere dich auf das Teilen von Momenten", + "onboardingFocusBody": "Verabschiede dich von süchtig machenden Funktionen! Unsere App wurde für das Teilen von Momenten ohne nutzlose Ablenkungen oder Werbung entwickelt.", + "onboardingSendTwonliesTitle": "Twonlies senden", + "onboardingSendTwonliesBody": "Teile Momente sicher mit deinem Partner. twonly stellt sicher, dass nur dein Partner sie öffnen kann, sodass deine Momente mit deinem Partner eine two(o)nly Sache bleiben!", + "onboardingNotProductTitle": "Du bist nicht das Produkt!", + "onboardingNotProductBody": "Zahlst du für eine App nicht, dann werden deine Daten verkauft. Das entspricht nicht unseren Werten, deshalb haben wir uns entschieden, ein nachhaltiges Geschäftsmodell zu entwickeln, von dem alle profitieren. Du kannst deine Daten privat halten und wir können eine schöne App erstellen.", + "onboardingBuyOneGetTwoTitle": "Kaufe eins, bekomme zwei", + "onboardingBuyOneGetTwoBody": "Um eine werbefreie, datenschutzorientierte App zu schaffen, brauchen wir dich! Wir versuchen, dir den besten Preis anzubieten, damit du twonly für nur 0,99 € / monatlich oder 9,99 € / jährlich erhalten kannst und sogar eine zweite Lizenz kostenlos für deinen twonly-Partner bekommst!", + "onboardingGetStartedTitle": "Lass uns anfangen!", + "onboardingGetStartedBody": "Du kannst twonly 14 Tage lang kostenlos testen und dann entscheiden, ob es dir wert ist.", + "onboardingTryForFree": "Kostenlos testen", + "registerUsernameSlogan": "Bitte wähle einen Benutzernamen, damit dich andere finden können!", + "registerUsernameDecoration": "Benutzername", + "registerUsernameLimits": "Der Benutzername muss 4 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.", + "registerSubmitButton": "Jetzt registrieren!", + "newMessageTitle": "Neue Nachricht", + "chatsTitle": "Chats", + "shareImageTitle": "Teilen mit", + "shareImageBestFriends": "Beste Freunde", + "shareImagedEditorSendImage": "Senden", + "shareImagedEditorShareWith": "Teilen mit", + "shareImagedEditorSaveImage": "Speichern", + "shareImagedEditorSavedImage": "Gespeichert", + "shareImageAllUsers": "Alle Kontakte", + "shareImageAllTwonlyWarning": "Twonlies können nur an verifizierte Kontakte gesendet werden!", + "searchUsernameInput": "Benutzername", + "searchUsernameTitle": "Benutzernamen suchen", + "searchUsernameNotFound": "Benutzername nicht gefunden", + "searchUsernameNewFollowerTitle": "Folgeanfragen", + "searchUsernameQrCodeBtn": "QR-Code scannen", + "chatListViewSearchUserNameBtn": "Füge deinen ersten twonly-Kontakt hinzu!", + "chatListViewSendFirstTwonly": "Sende dein erstes twonly!", + "chatListDetailInput": "Nachricht eingeben", + "messageSendState_Received": "Empfangen", + "messageSendState_Opened": "Geöffnet", + "messageSendState_Send": "Senden", + "messageSendState_Sending": "Wird gesendet", + "messageSendState_TapToLoad": "Tippe zum Laden", + "messageSendState_Loading": "Herunterladen", + "imageEditorDrawOk": "Zeichnung machen", + "settingsTitle": "Einstellungen", + "settingsAccount": "Konto", + "settingsSubscription": "Abonnement", + "settingsAppearance": "Erscheinungsbild", + "settingsPrivacy": "Datenschutz", + "settingsPrivacyBlockUsers": "Benutzer blockieren", + "settingsPrivacyBlockUsersDesc": "Blockierte Benutzer können nicht mit dir kommunizieren. Du kannst einen blockierten Benutzer jederzeit wieder entsperren.", + "settingsPrivacyBlockUsersCount": "{len} Kontakt(e)", + "settingsNotification": "Benachrichtigung", + "settingsHelp": "Hilfe", + "settingsHelpSupport": "Support-Center", + "settingsHelpVersion": "Version", + "settingsHelpLicenses": "Lizenzen", + "settingsHelpLegal": "Nutzungsbedingungen & Datenschutzrichtlinie", + "settingsAppearanceTheme": "Theme", + "settingsAccountDeleteAccount": "Konto löschen", + "settingsAccountDeleteModalTitle": "Bist du sicher?", + "settingsAccountDeleteModalBody": "Dein Konto wird gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen.", + "contactVerifyNumberTitle": "Sicherheitsnummer verifizieren", + "contactVerifyNumberMarkAsVerified": "Als verifiziert markieren", + "contactVerifyNumberClearVerification": "Verifizierung aufheben", + "contactVerifyNumberLongDesc": "Um die Ende-zu-Ende-Verschlüsselung mit {username} zu verifizieren, vergleiche die Zahlen mit ihrem Gerät. Die Person kann auch deinen Code mit ihrem Gerät scannen.", + "undo": "Rückgängig", + "redo": "Wiederholen", + "next": "Weiter", + "close": "Schließen", + "cancel": "Abbrechen", + "ok": "Ok", + "switchFrontAndBackCamera": "Zwischen Front- und Rückkamera wechseln.", + "addTextItem": "Text", + "protectAsARealTwonly": "Als echtes twonly senden!", + "addDrawing": "Zeichnung", + "addEmoji": "Emoji", + "toogleFlashLight": "Taschenlampe umschalten", + "searchUsernameNotFoundLong": "\"{username}\" ist kein twonly-Benutzer. Bitte überprüfe den Benutzernamen und versuche es erneut.", + "errorUnknown": "Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es später erneut.", + "errorBadRequest": "Die Anfrage konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden. Bitte überprüfe deine Eingabe und versuche es erneut.", + "errorTooManyRequests": "Du hast in kurzer Zeit zu viele Anfragen gestellt. Bitte warte einen Moment, bevor du es erneut versuchst.", + "errorInternalError": "Der Server ist derzeit nicht verfügbar. Bitte versuche es später erneut.", + "errorInvalidInvitationCode": "Der von dir angegebene Einladungscode ist ungültig. Bitte überprüfe den Code und versuche es erneut.", + "errorUsernameAlreadyTaken": "Der Benutzername, den du verwenden möchtest, ist bereits vergeben. Bitte wähle einen anderen Benutzernamen.", + "errorSignatureNotValid": "Die bereitgestellte Signatur ist nicht gültig. Bitte überprüfe deine Anmeldeinformationen und versuche es erneut.", + "errorUsernameNotFound": "Der eingegebene Benutzername existiert nicht. Bitte überprüfe die Schreibweise oder erstelle ein neues Konto.", + "errorUsernameNotValid": "Der von dir angegebene Benutzername entspricht nicht den erforderlichen Kriterien. Bitte wähle einen gültigen Benutzernamen.", + "errorInvalidPublicKey": "Der von dir angegebene öffentliche Schlüssel ist ungültig. Bitte überprüfe den Schlüssel und versuche es erneut.", + "errorSessionAlreadyAuthenticated": "Du bist bereits angemeldet. Bitte melde dich ab, wenn du dich mit einem anderen Konto anmelden möchtest.", + "errorSessionNotAuthenticated": "Deine Sitzung ist nicht authentifiziert. Bitte melde dich an, um fortzufahren.", + "errorOnlyOneSessionAllowed": "Es ist nur eine aktive Sitzung pro Benutzer erlaubt. Bitte melde dich von anderen Geräten ab, um fortzufahren." } \ No newline at end of file diff --git a/lib/src/localization/app_en.arb b/lib/src/localization/app_en.arb index c269c02..0192700 100644 --- a/lib/src/localization/app_en.arb +++ b/lib/src/localization/app_en.arb @@ -1,7 +1,22 @@ { "@@locale": "en", "registerTitle": "Welcome to twonly!", - "registerSlogan": "Send pictures to friends in real time and be sure you are the only people who can see them.", + "registerSlogan": "twonly, a privacy friendly way to connect with friends through secure, spontaneous image sharing", + "onboardingWelcomeTitle": "Welcome to twonly!", + "onboardingWelcomeBody": "Experience a privacy friendly way to connect with friends through secure, spontaneous image sharing.", + "onboardingE2eTitle": "End-to-End Encryption", + "onboardingE2eBody": "Your privacy matters! In fact, twonly was only created because there is no secure alternative. Enjoy peace of mind with end-to-end encryption that ensures only you and your friends can see your pictures.", + "onboardingFocusTitle": "Focus on sharing moments", + "onboardingFocusBody": "Say goodbye to addictive features! Our app was created for sharing moments, free from useless distractions or ads.", + "onboardingSendTwonliesTitle": "Send twonlies", + "onboardingSendTwonliesBody": "Share moments securely with your partner. twonly ensures that only your partner can open it, keeping your moments with your partner a two(o)nly thing!", + "onboardingNotProductTitle": "You are not the product!", + "onboardingNotProductBody": "If you don't pay, your data is the product that is sold. So we decided to develop a sustainable business model where everyone wins. You can keep your data private and we can create a beautiful app.", + "onboardingBuyOneGetTwoTitle": "Buy one get two", + "onboardingBuyOneGetTwoBody": "To create a ad-free, privacy-focused app, we need you! We try to offer the best price for you, so you can get twonly for only 0,99€ / monthly or 9,99€ / yearly and even get a second license for free for your twonly partner!", + "onboardingGetStartedTitle": "Let's get started!", + "onboardingGetStartedBody": "You can test twonly free for 14 days and then decide if it is worth to you.", + "onboardingTryForFree": "Try for free", "registerUsernameSlogan": "Please select a username so others can find you!", "registerUsernameDecoration": "Username", "registerUsernameLimits": "Username must be 4 to 12 characters long, consisting only of letters (a-z) and numbers (0-9).", @@ -55,6 +70,7 @@ "contactVerifyNumberLongDesc": "To verify the end-to-end encryption with {username}, compare the numbers with their device. The person can also scan your code with their device.", "undo": "Undo", "redo": "Redo", + "next": "Next", "close": "Close", "cancel": "Cancel", "ok": "Ok", diff --git a/lib/src/model/contacts_model.dart b/lib/src/model/contacts_model.dart index 5807f89..dd0c131 100644 --- a/lib/src/model/contacts_model.dart +++ b/lib/src/model/contacts_model.dart @@ -3,7 +3,7 @@ import 'package:fixnum/fixnum.dart'; import 'package:flutter/foundation.dart'; import 'package:logging/logging.dart'; import 'package:sqflite_sqlcipher/sqflite.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/app.dart'; import 'package:twonly/src/utils/misc.dart'; diff --git a/lib/src/model/messages_model.dart b/lib/src/model/messages_model.dart index db86b3d..5ca4344 100644 --- a/lib/src/model/messages_model.dart +++ b/lib/src/model/messages_model.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:cv/cv.dart'; import 'package:logging/logging.dart'; import 'package:sqflite_sqlcipher/sqflite.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/app.dart'; import 'package:twonly/src/components/message_send_state_icon.dart'; import 'package:twonly/src/model/json/message.dart'; diff --git a/lib/src/providers/api/api.dart b/lib/src/providers/api/api.dart index 36e6029..917e08f 100644 --- a/lib/src/providers/api/api.dart +++ b/lib/src/providers/api/api.dart @@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:logging/logging.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/app.dart'; import 'package:twonly/src/model/contacts_model.dart'; import 'package:twonly/src/model/json/message.dart'; @@ -130,12 +130,17 @@ Future uploadMediaFile( if (uploadToken == null) return; + bool wasSend = await apiProvider.uploadData(uploadToken, encryptedMedia, 0); + + Logger("api.dart").shout("UPDATE..."); // TODO: fragmented upload... - if (!await apiProvider.uploadData(uploadToken, encryptedMedia, 0)) { + if (!wasSend) { Logger("api.dart").shout("error while uploading media"); return; } + Logger("api.dart").shout("DOING UPDATE"); + box.delete("retransmit-$messageId-media"); box.delete("retransmit-$messageId-uploadtoken"); await DbContacts.checkAndUpdateFlames(target.toInt()); @@ -256,6 +261,7 @@ Future getDownloadedMedia( box.delete(mediaToken.toString()); box.put("${mediaToken}_downloaded", "deleted"); box.delete("${mediaToken}_fromUserId"); + box.delete("${mediaToken}_messageId"); return media; } diff --git a/lib/src/providers/api/server_messages.dart b/lib/src/providers/api/server_messages.dart index 4b4441a..a0d6ccb 100644 --- a/lib/src/providers/api/server_messages.dart +++ b/lib/src/providers/api/server_messages.dart @@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:logging/logging.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/app.dart'; import 'package:twonly/src/model/contacts_model.dart'; import 'package:twonly/src/model/json/message.dart'; @@ -54,6 +54,25 @@ Future handleDownloadData(DownloadData data) async { final box = await getMediaStorage(); String boxId = data.uploadToken.toString(); + if (data.fin && data.data.isEmpty) { + // media file was deleted by the server. remove the media from device + + int? messageId = box.get("${data.uploadToken}_messageId"); + if (messageId != null) { + await DbMessages.deleteMessageById(messageId); + box.delete(boxId); + int? fromUserId = box.get("${data.uploadToken}_fromUserId"); + if (fromUserId != null) { + globalCallBackOnMessageChange(fromUserId); + } + box.delete("${data.uploadToken}_fromUserId"); + box.delete("${data.uploadToken}_downloaded"); + globalCallBackOnDownloadChange(data.uploadToken, false); + var ok = client.Response_Ok()..none = true; + return client.Response()..ok = ok; + } + } + Uint8List? buffered = box.get(boxId); Uint8List downloadedBytes; if (buffered != null) { @@ -164,6 +183,7 @@ Future handleNewMessage( List downloadToken = content.downloadToken; Box box = await getMediaStorage(); box.put("${downloadToken}_fromUserId", fromUserId.toInt()); + box.put("${downloadToken}_messageId", messageId); tryDownloadMedia(downloadToken); } } diff --git a/lib/src/providers/api_provider.dart b/lib/src/providers/api_provider.dart index 78534c3..388215d 100644 --- a/lib/src/providers/api_provider.dart +++ b/lib/src/providers/api_provider.dart @@ -24,10 +24,11 @@ import 'package:web_socket_channel/web_socket_channel.dart'; /// It handles errors and does automatically tries to reconnect on /// errors or network changes. class ApiProvider { - final String apiUrl; - final String? backupApiUrl; + final String apiUrl = "ws://10.99.0.6:3030/api/client"; + // ws://api.twonly.eu/api/client + final String? backupApiUrl = "ws://10.99.0.6:3030/api/client"; bool isAuthenticated = false; - ApiProvider({required this.apiUrl, required this.backupApiUrl}); + ApiProvider(); final log = Logger("ApiProvider"); @@ -62,6 +63,15 @@ class ApiProvider { tryTransmitMessages(); } + Future close(Function callback) async { + if (_channel != null) { + await _channel!.sink.close(); + callback(); + return; + } + callback(); + } + Future connect() async { if (_channel != null && _channel!.closeCode != null) { return true; @@ -94,7 +104,7 @@ class ApiProvider { globalCallbackConnectionState(false); _channel = null; isAuthenticated = false; - tryToReconnect(); + // tryToReconnect(); } void _onError(dynamic e) { @@ -157,7 +167,9 @@ class ApiProvider { } Future sendResponse(ClientToServer response) async { - _channel!.sink.add(response.writeToBuffer()); + if (_channel != null) { + _channel!.sink.add(response.writeToBuffer()); + } } Future _sendRequestV0(ClientToServer request, @@ -184,6 +196,7 @@ class ApiProvider { } Future authenticate() async { + print("try authenticate $isAuthenticated"); if (isAuthenticated) return; if (await SignalHelper.getSignalIdentity() == null) { return; @@ -192,6 +205,7 @@ class ApiProvider { var handshake = Handshake()..getchallenge = Handshake_GetChallenge(); var req = createClientToServerFromHandshake(handshake); + print("try authenticate send to server"); final result = await _sendRequestV0(req, authenticated: false); if (result.isError) { log.shout("Error auth", result); diff --git a/lib/src/services/notification_service.dart b/lib/src/services/notification_service.dart index 9ad4103..5009abb 100644 --- a/lib/src/services/notification_service.dart +++ b/lib/src/services/notification_service.dart @@ -144,10 +144,10 @@ String getPushNotificationText(String key, String userName) { pushNotificationText = { "newTextMessage": "%userName% hat die eine Nachricht gesendet.", "newTwonly": "%userName% hat dir einen twonly gesendet.", - "newVideo": "%userName% hat die eine Video gesendet.", - "newImage": "%userName% hat die eine Bild gesendet.", + "newVideo": "%userName% hat dir eine Video gesendet.", + "newImage": "%userName% hat dir eine Bild gesendet.", "contactRequest": "%userName% möchte sich mir dir vernetzen.", - "acceptRequest": "%userName% ist jetzt mit dir vernetzt.", + "acceptRequest": "%userName% ist jetzt mit dir vernetzt.", }; } else { pushNotificationText = { @@ -214,6 +214,6 @@ Future localPushNotificationNewMessage( user.displayName, msg, notificationDetails, - // payload: 'test', + payload: message.kind.index.toString(), ); } diff --git a/lib/src/signal/connect_identitiy_key_store.dart b/lib/src/signal/connect_identitiy_key_store.dart index f277c64..5f371fe 100644 --- a/lib/src/signal/connect_identitiy_key_store.dart +++ b/lib/src/signal/connect_identitiy_key_store.dart @@ -1,6 +1,6 @@ import 'dart:typed_data'; import 'package:collection/collection.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/model/identity_key_store_model.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; diff --git a/lib/src/signal/connect_pre_key_store.dart b/lib/src/signal/connect_pre_key_store.dart index baf26be..a117af0 100644 --- a/lib/src/signal/connect_pre_key_store.dart +++ b/lib/src/signal/connect_pre_key_store.dart @@ -1,5 +1,5 @@ import 'dart:typed_data'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/model/pre_key_model.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; diff --git a/lib/src/signal/connect_sender_key_store.dart b/lib/src/signal/connect_sender_key_store.dart index e8aa768..90c9b12 100644 --- a/lib/src/signal/connect_sender_key_store.dart +++ b/lib/src/signal/connect_sender_key_store.dart @@ -1,5 +1,5 @@ import 'dart:typed_data'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/model/sender_key_store_model.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; diff --git a/lib/src/signal/connect_session_store.dart b/lib/src/signal/connect_session_store.dart index 1b5477d..74d1cf2 100644 --- a/lib/src/signal/connect_session_store.dart +++ b/lib/src/signal/connect_session_store.dart @@ -1,5 +1,5 @@ import 'dart:typed_data'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/model/session_store_model.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; diff --git a/lib/src/tasks/websocket_foreground_task.dart b/lib/src/tasks/websocket_foreground_task.dart new file mode 100644 index 0000000..f366700 --- /dev/null +++ b/lib/src/tasks/websocket_foreground_task.dart @@ -0,0 +1,64 @@ +// The callback function should always be a top-level or static function. +import 'package:flutter_foreground_task/flutter_foreground_task.dart'; +import 'package:twonly/globals.dart'; +import 'package:twonly/src/providers/api_provider.dart'; +import 'package:twonly/src/providers/db_provider.dart'; + +@pragma('vm:entry-point') +void startCallback() { + FlutterForegroundTask.setTaskHandler(WebsocketForegroundTask()); +} + +class WebsocketForegroundTask extends TaskHandler { + // Called when the task is started. + @override + Future onStart(DateTime timestamp, TaskStarter starter) async { + print('onStart(starter: ${starter.name})'); + + dbProvider = DbProvider(); + await dbProvider.ready; + apiProvider = ApiProvider(); + apiProvider.connect(); + } + + // Called based on the eventAction set in ForegroundTaskOptions. + @override + void onRepeatEvent(DateTime timestamp) { + // Send data to main isolate. + final Map data = { + "timestampMillis": timestamp.millisecondsSinceEpoch, + }; + FlutterForegroundTask.sendDataToMain(data); + } + + // Called when the task is destroyed. + @override + Future onDestroy(DateTime timestamp) async { + await apiProvider.close(() {}); + print('onDestroy'); + } + + // Called when data is sent using `FlutterForegroundTask.sendDataToTask`. + @override + void onReceiveData(Object data) { + print('onReceiveData: $data'); + } + + // Called when the notification button is pressed. + @override + void onNotificationButtonPressed(String id) { + print('onNotificationButtonPressed: $id'); + } + + // Called when the notification itself is pressed. + @override + void onNotificationPressed() { + print('onNotificationPressed'); + } + + // Called when the notification itself is dismissed. + @override + void onNotificationDismissed() { + print('onNotificationDismissed'); + } +} diff --git a/lib/src/utils/storage.dart b/lib/src/utils/storage.dart index 9ccc641..0064f83 100644 --- a/lib/src/utils/storage.dart +++ b/lib/src/utils/storage.dart @@ -1,6 +1,6 @@ import 'dart:convert'; import 'package:logging/logging.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/model/json/user_data.dart'; import 'package:twonly/src/utils/misc.dart'; diff --git a/lib/src/views/camera_to_share/share_image_view.dart b/lib/src/views/camera_to_share/share_image_view.dart index d55c547..a84fe86 100644 --- a/lib/src/views/camera_to_share/share_image_view.dart +++ b/lib/src/views/camera_to_share/share_image_view.dart @@ -265,7 +265,7 @@ class UserList extends StatelessWidget { child: VerifiedShield(user), ), Text(user.displayName), - if (flameCounter >= 0) + if (flameCounter >= 1) FlameCounterWidget( user, flameCounter, diff --git a/lib/src/views/chats/chat_item_details_view.dart b/lib/src/views/chats/chat_item_details_view.dart index 2952fad..b777ed9 100644 --- a/lib/src/views/chats/chat_item_details_view.dart +++ b/lib/src/views/chats/chat_item_details_view.dart @@ -11,6 +11,7 @@ import 'package:twonly/src/model/messages_model.dart'; import 'package:twonly/src/providers/api/api.dart'; import 'package:twonly/src/providers/download_change_provider.dart'; import 'package:twonly/src/providers/messages_change_provider.dart'; +import 'package:twonly/src/services/notification_service.dart'; import 'package:twonly/src/views/chats/media_viewer_view.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/views/contact/contact_view.dart'; @@ -138,25 +139,17 @@ class _ChatItemDetailsViewState extends State { } Future _loadAsync({bool updateOpenStatus = false}) async { - if (_messages.isEmpty) { - _messages = - await DbMessages.getAllMessagesForUser(widget.user.userId.toInt()); - } else { - int lastMessageId = _messages.first.messageId; - List toAppend = - await DbMessages.getAllMessagesForUserWithHigherMessageId( - widget.user.userId.toInt(), lastMessageId); - _messages.insertAll(0, toAppend); - } - - try { - if (context.mounted) { - setState(() {}); - } - } catch (e) { - // state should be disposed - return; - } + // if (_messages.isEmpty || updateOpenStatus) { + _messages = + await DbMessages.getAllMessagesForUser(widget.user.userId.toInt()); + // } else { + // will not update older message states like when they now downloaded... + // int lastMessageId = _messages.first.messageId; + // List toAppend = + // await DbMessages.getAllMessagesForUserWithHigherMessageId( + // widget.user.userId.toInt(), lastMessageId); + // _messages.insertAll(0, toAppend); + // } if (updateOpenStatus) { _messages.where((x) => x.messageOpenedAt == null).forEach((message) { @@ -165,11 +158,20 @@ class _ChatItemDetailsViewState extends State { if (!alreadyReportedOpened.contains(message.messageOtherId!)) { userOpenedOtherMessage( message.otherUserId, message.messageOtherId!); + flutterLocalNotificationsPlugin.cancel(message.messageId); alreadyReportedOpened.add(message.messageOtherId!); } } }); } + try { + if (context.mounted) { + setState(() {}); + } + } catch (e) { + // state should be disposed + return; + } } Future _sendMessage() async { @@ -184,6 +186,7 @@ class _ChatItemDetailsViewState extends State { final changeCounter = context.watch().changeCounter; if (changeCounter.containsKey(widget.user.userId.toInt())) { if (changeCounter[widget.user.userId.toInt()] != lastChangeCounter) { + print("FORCE reload"); _loadAsync(updateOpenStatus: true); lastChangeCounter = changeCounter[widget.user.userId.toInt()]!; } diff --git a/lib/src/views/chats/chat_list_view.dart b/lib/src/views/chats/chat_list_view.dart index 2f0e6ad..4328c7d 100644 --- a/lib/src/views/chats/chat_list_view.dart +++ b/lib/src/views/chats/chat_list_view.dart @@ -35,7 +35,7 @@ class _ChatListViewState extends State { context.watch().lastMessage; List allUsers = context - .read() + .watch() .allContacts .where((c) => c.accepted) .toList(); @@ -106,20 +106,20 @@ class _ChatListViewState extends State { child: Padding( padding: const EdgeInsets.all(10), child: OutlinedButton.icon( - icon: Icon((activeUsers.isEmpty) + icon: Icon((allUsers.isEmpty) ? Icons.person_add : Icons.camera_alt), onPressed: () { - (activeUsers.isEmpty) + (allUsers.isEmpty) ? Navigator.push( context, MaterialPageRoute( builder: (context) => SearchUsernameView(), ), ) - : globalUpdateOfHomeViewPageIndex(1); + : globalUpdateOfHomeViewPageIndex(0); }, - label: Text((activeUsers.isEmpty) + label: Text((allUsers.isEmpty) ? context.lang.chatListViewSearchUserNameBtn : context.lang.chatListViewSendFirstTwonly)), ), diff --git a/lib/src/views/chats/media_viewer_view.dart b/lib/src/views/chats/media_viewer_view.dart index 645a8e9..d3788e9 100644 --- a/lib/src/views/chats/media_viewer_view.dart +++ b/lib/src/views/chats/media_viewer_view.dart @@ -10,6 +10,7 @@ import 'package:twonly/src/model/contacts_model.dart'; import 'package:twonly/src/model/json/message.dart'; import 'package:twonly/src/model/messages_model.dart'; import 'package:twonly/src/providers/api/api.dart'; +import 'package:twonly/src/services/notification_service.dart'; final _noScreenshot = NoScreenshot.instance; @@ -69,6 +70,7 @@ class _MediaViewerViewState extends State { } } + flutterLocalNotificationsPlugin.cancel(widget.message.messageId); List token = content.downloadToken; _imageByte = await getDownloadedMedia(token, widget.message.messageOtherId!); @@ -202,7 +204,7 @@ class _MediaViewerViewState extends State { ], ), ), - if (_imageByte != null) + if (_imageByte != null && false) Positioned( bottom: 30, left: 0, diff --git a/lib/src/views/chats/search_username_view.dart b/lib/src/views/chats/search_username_view.dart index 844f45e..b727c0c 100644 --- a/lib/src/views/chats/search_username_view.dart +++ b/lib/src/views/chats/search_username_view.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:twonly/src/components/alert_dialog.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:provider/provider.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:twonly/src/components/headline.dart'; import 'package:twonly/src/components/initialsavatar.dart'; import 'package:twonly/src/model/contacts_model.dart'; diff --git a/lib/src/views/onboarding/onboarding_view.dart b/lib/src/views/onboarding/onboarding_view.dart index 0bcc96a..5d4a37b 100644 --- a/lib/src/views/onboarding/onboarding_view.dart +++ b/lib/src/views/onboarding/onboarding_view.dart @@ -1,6 +1,7 @@ import 'package:introduction_screen/introduction_screen.dart'; import 'package:flutter/material.dart'; import 'package:lottie/lottie.dart'; +import 'package:twonly/src/utils/misc.dart'; // Slide 1: Welcome to [App Name] // Text: "Experience a new way to connect with friends through secure, spontaneous image sharing." @@ -29,23 +30,21 @@ class OnboardingView extends StatelessWidget { bodyPadding: EdgeInsets.only(top: 75, left: 10, right: 10), pages: [ PageViewModel( - title: "Welcome to twonly!", - body: - "Experience a new way to connect with friends through secure, spontaneous image sharing.", + title: context.lang.onboardingWelcomeTitle, + body: context.lang.onboardingWelcomeBody, image: Center( child: Padding( padding: const EdgeInsets.only(top: 100), // child: Image.asset('assets/animations/messages.gif'), child: Lottie.asset( - 'assets/animations/messages.json', + 'assets/animations/selfie2.json', ), ), ), ), PageViewModel( - title: "End-to-End Encryption", - body: - "Your privacy matters. Enjoy peace of mind with end-to-end encryption, ensuring only you and your friends can see your images.", + title: context.lang.onboardingE2eTitle, + body: context.lang.onboardingE2eBody, image: Center( child: Padding( padding: const EdgeInsets.only(top: 100), @@ -57,22 +56,19 @@ class OnboardingView extends StatelessWidget { ), ), PageViewModel( - title: "Focus on sharing moments", - body: - "Say goodbye to addictive features! Our app is designed for sharing moments, no useless distractions or ads.", + title: context.lang.onboardingFocusTitle, + body: context.lang.onboardingFocusBody, image: Center( child: Padding( padding: const EdgeInsets.only(top: 100), - child: Lottie.asset( - 'assets/animations/selfie2.json', - ), + child: Lottie.asset('assets/animations/takephoto.json', + repeat: false), ), ), ), PageViewModel( - title: "Send twonlies", - body: - "Share moments securely with just one other person. twonly ensures that only you and your chosen friend can view the picture, keeping your moments private.", + title: context.lang.onboardingSendTwonliesTitle, + body: context.lang.onboardingSendTwonliesBody, image: Center( child: Padding( padding: const EdgeInsets.only(top: 100), @@ -84,44 +80,40 @@ class OnboardingView extends StatelessWidget { ), ), PageViewModel( - title: "You are not the product!", - body: - "If you don't pay, your data is the product that is sold. So we decided to develop a sustainable business model where everyone wins. You can keep your data private and we can create a beautiful app.", + title: context.lang.onboardingNotProductTitle, + body: context.lang.onboardingNotProductBody, image: Center( child: Padding( padding: const EdgeInsets.only(top: 100), - child: Lottie.asset( - 'assets/animations/product.json', + child: Image.asset( + 'assets/images/onboarding/ricky_the_greedy_racoon.png', ), ), ), ), PageViewModel( - title: "Pricing", + title: context.lang.onboardingBuyOneGetTwoTitle, bodyWidget: Column( children: [ Text( - "To be able to create a sustainable privacy focused app which does not show ads, we have to rely on you! You can get twonly for only 0,99€ / monthly or 9,99€ / yearly. As twonly is for at least two, you get a second user for free, so your twonly partner does not have to pay!", + context.lang.onboardingBuyOneGetTwoBody, textAlign: TextAlign.center, style: TextStyle(fontSize: 18), ), ], ), image: Center( - child: Padding( - padding: const EdgeInsets.only(top: 100), - child: Lottie.asset( - 'assets/animations/selfie.json', - ), + child: Lottie.asset( + 'assets/animations/present.lottie.json', ), ), ), PageViewModel( - title: "Let's get started!", + title: context.lang.onboardingGetStartedTitle, bodyWidget: Column( children: [ Text( - "You can test twonly free for 14 days and then decide if it is worth to you.", + context.lang.onboardingGetStartedBody, textAlign: TextAlign.center, style: TextStyle(fontSize: 18), ), @@ -133,7 +125,7 @@ class OnboardingView extends StatelessWidget { callbackOnSuccess(); // On button pressed }, - child: const Text("Try for free"), + child: Text(context.lang.onboardingTryForFree), )), ], ), @@ -148,8 +140,8 @@ class OnboardingView extends StatelessWidget { ), ], showNextButton: true, - done: const Text("Our plans"), - next: const Text("Next"), + done: Text("Our plans"), + next: Text(context.lang.next), // done: RegisterView(callbackOnSuccess: callbackOnSuccess), onDone: () { callbackOnSuccess(); diff --git a/lib/src/views/onboarding/register_view.dart b/lib/src/views/onboarding/register_view.dart index f6cf113..336da17 100644 --- a/lib/src/views/onboarding/register_view.dart +++ b/lib/src/views/onboarding/register_view.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; import 'package:logging/logging.dart'; -import 'package:twonly/main.dart'; +import 'package:twonly/globals.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:twonly/src/components/alert_dialog.dart'; diff --git a/pubspec.lock b/pubspec.lock index 86527b2..1ef1b9d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -318,6 +318,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_foreground_task: + dependency: "direct main" + description: + name: flutter_foreground_task + sha256: "206017ee1bf864f34b8d7bce664a172717caa21af8da23f55866470dfe316644" + url: "https://pub.dev" + source: hosted + version: "8.17.0" flutter_image_compress: dependency: "direct main" description: @@ -1101,6 +1109,62 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" + shared_preferences: + dependency: transitive + description: + name: shared_preferences + sha256: "688ee90fbfb6989c980254a56cb26ebe9bb30a3a2dff439a78894211f73de67a" + url: "https://pub.dev" + source: hosted + version: "2.5.1" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "650584dcc0a39856f369782874e562efd002a9c94aec032412c9eb81419cce1f" + url: "https://pub.dev" + source: hosted + version: "2.4.4" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" shelf: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index a505ae1..d8cb5b7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,6 +20,7 @@ dependencies: fixnum: ^1.1.1 flutter: sdk: flutter + flutter_foreground_task: ^8.17.0 flutter_image_compress: ^2.4.0 flutter_local_notifications: ^18.0.1 flutter_localizations: @@ -82,9 +83,11 @@ flutter: - assets/images/logo.jpg - assets/ - assets/images/ + - assets/images/onboarding/ricky_the_greedy_racoon.png - assets/animations/present.lottie.json + - assets/animations/selfie2.json - assets/animations/selfie.json - - assets/animations/messages.json + - assets/animations/takephoto.json - assets/animations/local.json - assets/animations/test.json - assets/animations/product.json