From 9e53a6ba43d991d331469de96c63d8b45196ba96 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 14 Sep 2024 21:10:04 -0700 Subject: [PATCH] README.md: document current status, architecture image --- README.md | 91 +++++++++++++++++++++++++++++++++++ images/gary-architecture.jpg | Bin 0 -> 70098 bytes 2 files changed, 91 insertions(+) create mode 100644 README.md create mode 100644 images/gary-architecture.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..dede920 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# GARY: Graphics Adapter for Retropixel Yeeting + +This is a project to build a graphics adapter for the Sentinel 65X, as +an upgrade to the VERA graphics core. It's a work in progress. + +## Current status + +Still building it. Unless you want to tinker or hack on the design, +it's not yet ready for use. As of 2024-09, the high level architecture +looks like this, with grayed out modules being the TODOs. + +![functional diagram of GARY](images/gary-architecture.jpg) + +You can also look at [the design requirements](Requirements.md) to get +an idea of why this exists and roughly where we're going, although +it's a fairly loose set of guidelines and may change as development +progresses. + +## Requirements + +GARY is written in [Bluespec +SystemVerilog](https://github.com/b-Lang-org/bsc), and synthesized +with the Yosys/Nextpnr open source FPGA toolchain. If you can use nix, +the flake.nix in this repository provides the necessary tools, which +you can make available with `nix develop`. Otherwise, consult +flake.nix for a list of software. At a minimum you'll need: + - The [Bluespec SystemVerilog toolchain](https://github.com/b-Lang-org/bsc) + - [Yosys](https://github.com/YosysHQ/yosys) and + [nextpnr](https://github.com/YosysHQ/nextpnr) with Lattice ECP5 + support + - [OpenFPGALoader](https://trabucayre.github.io/openFPGALoader/) to + program designs onto an FPGA + - A [Go compiler](https://go.dev/) if you want to use the debugger + - [Invoke](https://www.pyinvoke.org/) to drive the build system + - Some kind of VCD waveform viewer like + [GTKWave](https://github.com/gtkwave/gtkwave) to debug failing + tests. + +If you want to run this on hardware, you'll also need supported +hardware. Currently, the only working target is the +[ULX3S](https://ulx3s.github.io/) board with a Lattice ECP5 LFE5U-85 +FPGA. Once the design is fully working, it may be ported to other +boards or FPGAs. + +## Developing + +GARY uses Invoke as a small build system. You can read tasks.py to see +the details, but these are the main available commands: + - `inv build `: run the Bluespec compiler on the given + target. + - `inv synth `: run full synthesis to bitstream on the + given target. + - `inv test `: run unit tests in Bluesim. + - `inv clean`: delete build outputs. + - `inv genclk`: generate clock configuration for the Lattice ECP5 PLL + primitive. + +The overall workflow looks like this: + - Write Bluespec SystemVerilog in .bsv files, possibly with + supporting Verilog-2005 in .v files. + - Use `inv build` to check the Bluespec design and elaborate the + modules marked for synthesis. + - Write unit tests in `_Test.bsv` files, and use `inv + test` to run them. The tests run in Bluesim, and output VCD + waveform files if you need to debug failures. + - Create a top-level module in `/Top.bsv`, with an + accompanying `/pin_map.lpf` to map I/Os to physical pins + and set timing constraints. + - Run `inv synth` to synthesize the top-level module into a bitstream + for flashing to target. + - Use `openFPGALoader` to program your hardware of choice. + +Most development time should be spent in the upper parts of this list, +writing tests and running them in a simulator and maybe synthesizing +some test designs to see how well/poorly modules turn into +hardware. Trying to diagnose buggy designs on hardware is going to be +very frustrating, do yourself a favor and only move to hardware with +code you've already tested a whole bunch in simulation. + +Build targets can be a single Bluespec file (`inv build +lib/UART.bsv`), or a directory to build all Bluespec in that subtree +(`inv build lib`). + +Test targets can be a single test file (`inv test +lib/Strobe_Test.bsv`) or a directory to run all tests in that subtree +(`inv test lib`, `inv test .`). + +Synthesis targets can be a single Bluespec file (`inv synth +hack/Top.bsv`), a directory containing a `Top.bsv` file +(`inv synth experiments/vram`), or the name of a hardware target +as found in the `hardware` subdirectory (`inv synth ulx3s`). diff --git a/images/gary-architecture.jpg b/images/gary-architecture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..82c1bac3ea2cf08992d699c399e19625f0bba71c GIT binary patch literal 70098 zcmdSA1z42b);B&#cSyH{Al+Sxl!$bLARWR;H$w<09S@*LcXy|BcXvv+#7GSP+vmLJ z{f?aTocPXpzw7_bT(>xT_I=M@Yp?pPwf5c2-3kcjg|wVB2<`z01P8o9ck>`g5DF3! zG7=&RGBPqMDhe6~J|+e_ItB^eLu`BsQYuOcQgU)?IyMGs8Wvh|az_3qEF7FXJUmnk zf}#RkB5d3|Tt6QIhl+}dfsR3piAl`$i2M=Pzx=xU3c^J};C;{u4@U!ffC~qY3wPH6 zq5{^52>1I7^j|Ny2k;1pNXRItXz0L%Djd)QIC%I62=IuA2nfJzFW`F+0xlxnBhIHt z50&2_)7as2`9`Io&^{|`B~TeXrsFoU_d`V^BqAmurGL!8_=JgvmycgSP)PE*l(dYj z+zVATbq!4|Z5?A1Q!{f5ODhLQCubK|H+TQ{0f9juJ_bj}{1zJ*|LJo=dPZhec1~_y zetAV@Rdr2mU42`7M`u@ePjBDY_{8MY^vvws>e~9ox6Q5Xo!yhu?`P*1m(U+qKk0%4 z!T*UY;NL$Hc8@MxfUXA!2=EBVKk0&d-~wFmxCn@kIFaz4DkHzKdq~6Oi-P|wDy^&) zm6luOn83(>6pfIMXO;fsCuzS^_RkUK_kTs%e-rk9=$Zpzz{3HX2agL92VGtFb3zqloz+CI9^B*y1c#=mNE$-Qt+uJR5Xj$Iz*!U~K@4h+ZwvAI5jzK_ zxr>^rs_Ome#&Benqd_Zpa?~KE>WH;~i7HFSkU_3X`HA(Qg9l4{#%@vOwi_0+zxl`_ zCx!-tmeV6~9Q?3^#x~4JHhs{TABj9g>>w)Fn%7$*6K*x7dG1etn)acWis^9U4peTJ zFx@l6-JAL#_@$3TPw$R)Z;=FyE?!b=gCAFib-vfPOg$-9MsMT5csw-~lZhEy`-DeG z;Y`Srkf=T`gT?HPwMo9dF*4#z15@rWJOkY^xB8)owJ~K<=Hk4z6;Vn4*8auR2{u1k z)|Yo?N_^|c$+f9i(ZO3;CvP<(cPb2a+yg>2rwvRn?Q=!q#oskg31GM)C(90TYtWt0 z=iJbpY!i+uIJwe(x7EQx)5$shj4DF7pFwxtC76nt@Xs>;kLEFjbro6L6wF%M4%n6u z%6wF}=j%e+WGMado0sBL@dlo>w2ZO@x|Er#zi!R(VHjJM19^E@1i6ub58M7>ZmNmz zWB}<>9XPGi?0Yv$;NdB=Kr}TfJFTG;t#7Z`*Ab*7g1$x9iL8S&A!pzG-N>C&H%%A9 zbn4ud2kMgb6{QF!j6AQQyM4@Fg!+74ml`%k{0URS628GqegiJ$zF}XzEa3Cg%N(ij zo)-7J*<3L9qtDa$txX-^3n7!J#+s>MVN+l5R!Jb@EB{9>O2I-h-U$(>!Z~7_BfN`o z#pq3Hgo`O?s3K!Ga}@2(^1eCL8X{9UvH}eC9lOoFO(VgoH)f!kxm$k^ktBs zI3IU%)%JrWIJ#&QV{FC;(r8>Oj=e{6U>n5D*XotH?UWAXJZRi!_;9_@p`&NX7wyld zH=^5~wCm088bRnJ?MOg~F;D{x*5k0B)8Fd-LjZ-2;1rtd(GLML#~7z zuz*_iej>XeMfwi(-fvGeZf>S;O!W3kVSuq#thBQFvuYUxJVn*lF{{*I5rwru^>CNh z-G)K8pJ+jMp!Fkqrw3CD`eadHoLXATc*7-`Z1;(eq|zwQ)e+)^rMVPUB`6gOyR&50 zu}NR=)ela-KWVjPF%CRgaehjuKJo-fa+3&T&pn?|_hgipER4=|?c%UoqkPmjPMLmr z_Dy6Da)Me05=#*=2Dfii>%k7!-25PmeLsSV9PWT^531z8hl--5jlI%>Zs(KGLq$$_ z8?g*gM)vftA<)gQW{v-17yLix4!X-uc2 zSFSd+q+19xIo5&TJUjZ-im3eS>blH~3IU72f_#N>F=0bc7=2hq6v1d9iIxfO;gh(F zsf#E#jS(pfx1pX9#^Dhq2i%itT)HMsOW#k#{v`HzH8?cTMp#~pjE(%PWc zaVR1u#H%$`PIyzd%>{i33RqScP49WwPR3GEX8v^34+ZX_0A=j%PFZqD!}n5t6eovOts^2rm`;lVL(x7If&lM)~oAlJ3*nyga11 zL$MdSQY6gGPQy!WY#u4buN1KcGZuBN>x(no3gxnN8~Msw&6@2rz6w`=r#1Az$|1=W zAz8()u$ZgrywcOv+f#YvS;CE{J>PTKi&uJ`=@!~eK@yP#l1zp6>r6R44l;`+qkU1s zhuth(0OBrN;JjUn#>Y$bIz%m`AnKZni&|ZLQia}tT?6&AJX%lQ8#p~!VGw*1t%wnv z&%qh)T3jv;uOQl?x?8_-S+1+yZ*EQVHA;vj7{7vJ=;G^o>af5di#KXrRmEsna`my5 zj(UMM{Ydq*atY^~FiN|wj#lK{%TADK_X!fr2B#{kD)unzwv6yIdWXKvA-vDGX+h@q ztWiT~$(8dZM6Shi;t%ser0zf;F^nv2U-Xy1?A&yF%5VOTLf2W4ie1Ff8HOjjIr=R{ zrJ*6_RkC&ZB?j>z%ZEO#3nln!0txuw@U2$oOC7el?52eVr;v6hyT_xEsEUyuHWDpi zAcK}Eo$l6Yp@owl?3n)gA|_jws14v25zR-d%!}Z*i)MmRrw?xfip~piIpe>l#nN(> zMaBdoV4;U?4|-FY9uRJ6Dy&gPW1WU`6DLUfm+*PUomfpcZT+_rm(AAUJ*YfxL~Q=o!vF^+Ku5=?J~hc^~%bE^!~HjE?o;`-_XsX9dD%Qp*_ijOP%C% zM>UIsN2e+RZJ%yRWhu0t?4_iVZ&V$Nlr8M|eb=pRDj&=FzP}bn|6RRQ0-Id}#Gg8Z zB$tZS7R(4lYX8Pn$12$&G;r0NXPMS&ys?8@px^JRds)tPbQ%L*Y+H#F>{@Nzte@L( zGC&ygaw_6YZg6;GQ`j9+YxI%$2=~J!Eu|(CKJGF(t^~Prz`7hy5v_cwZV0;Y!3$L0 zF9k)C9yF-m%%spV35~FGLF}HBdv_q5T}sxn<4i&&-H@FsH@X;>rKh_3vytSsjJo}X zLW#b~=i|dGJ8v2T_nuGDk9{Llp6Rbf_)QMqZAQX2l%EfqHaYN%!%EJzM!d_Lq9xr$ z%eY}MLJXXs%?8+#-)rriD2GIM7D!2v)T%Tyj!0w5Ccm@zX%=CSOAJjfH&Z<&S7l?RAyMFrpwEP&`=5m3Ri%UW#fB9?O{Ho51bf0o2xFB^# zF$p0-kf9R%QKNYg)ImLATEDt98QqId;pt`>R#s`>M;r}?O}3e#cV0-C@^)(wJd3&N zC~%Rkr8U_5ae`S5n?k1DbN$xdAH$1qfyl1~34$p7bFKI&nI@~O6%3Shp@x+;;m>8+ z8Z!mWWl!F>bDFAfIXmjF{Rs3S(u zm34y*;Sv-(de6xQnN+Tfb*(f}QA*#})z@fV7av@{5?DyZFwg6B6eFAF9mX-x*9-9= zcGO~LW6f}A9DGM>)ww&NjA?-T|7gBzbWM zDtzQh^7Sb6yG}FJX!WTF1nVsrC4YzrWDys7=>#T+R>(Dvm(WyH)T5gV&zGm7<&*Fm zlYcW&o(N*dX09)Wv@f5MpP1hU7~g@$m~}wg|4y9pkM7;NF}(v(3xluGc3Q4;BHT;2nqr(t|Y*YpVyt;@b5Q z9bjB{ph$|E+W^PqTh_pOw0|ow{96qFD+=q;wr)i4K#ztAAu}4{w=`9$SbqPGQUC9I zzn$qnUbHQCvM!?RTh{bw$hv-^OY>qBHOZLXr+45D_G_!fY~KtmIXn8~m^W`PsS6J< z%OCwlnf8H-e_evCQUkFi$Wd6HEQHL4>{Z~{`mI-^b8cBb?9|sEI(i2}ISjgu2i{>h z5c8wu3&rxB*oJ8{&J<52q+0@CyVXUk!>*;SE$Q*>%9=ZnGMGM}#|~1TY3Pl=*90%! z61^lp__*!cfsYocwTS}`#e--ugEk+2i$Xa^g~wjXymFNdPk2#I$`1}k`f7KAXlcKv zvp$sbSMyS#VCxfo_VTDf-Vv|b{oB{xn{9a8;I_&U9&1!Kx{9&4tjQY$Nom#3x%?+M z;WuwAt6>x)2Q0QMHkCF)WbzT`7bkP+-R#$WNZ0_CXBx;iwDnXM2Edyy={BVWGAq`X ztZ}6Osmtp`svBTH1DOX|64|SSvE^H-#<<+kPS|dgFH{K$xeLB1$1g2L;J)~*^GD>TV%9U`{SgaxsuPgH-q3f%xhn)zEcjJa^7RBN zxd&2vE{B0^N3{t5m<2L_O#V;qApS86REy6rNn!GC>^xu4+s~Y!?dq?okz`uWCJ&7m`cSFx7*qLN*0F){9F@EIfOX`>>|Q)P z!}p&QqK!+87Sh#556hKSdqiqD2hQU3VJmfDe>usXhq_2smerP3k5+Emu!&F4cUy&! zw;VANi-&>0qgqtQ;oFc|;5{?va^Zb@2Qs;4a?@>cHYU036q%T&-*dMupRrmjL*a<-Ko4d9^5Mk5!$o7T zEy6E?S6c4<2%zKU0WI4)qb99p^_r3cc5oeVRs-OT*wK}eVS%D zE;2E?Z-2U!j0+Eq6ZNqEg@cChzD<%?D`OsCW|_vyDKRMzBnhIQz$Tpcgsn=qhvgB&dP><`a)!|ANJ^t zm)=_pt(Vsl$hmVZ;*^b3Ibr9lFUDB0C?4N|_U)}m6P-&0KAN;~39fL^=HeF<3e_|F zP95IJtl}Dbh=0hKq)9krb}mmC5=fRf@c;H(>jHP8!^@MP8+sl7SU1bH^wPy$PTfpo z#ScH^XjeSDtQbu>y%LA4w*W650ki+5Gy$;=eN$1@Zzpql zUg@-6F0|qqRUM%KT!FLihiZhGTco_X#=is2Uf)F2=pQam4_-e{2Cr^{yQ`U{|5d38 zQ3s@^V&1kPx^Gi92ex5#jBEhKH4#5XYf|f+&-qxm-&tNRZ*KRbwwqCT70v-RbqZN| z;KTQ~f{8yG`{#uQ8M}B98_QF&<^*w{2wA>%95XZ?r(+DoMBBx0^(i%u?2yo;E3bu! zp_rnK7Op9r0lJ)My#nZxUY#zpA)vrYfr%6}!a+tYTX0j(ykHrSL(+5AHxcH4L}!&#`Y=66#-U-k{%sXckf~9!`j# zm0RsF#~wNs0ijkV$G;ff!=pd1t*R?emY0WAbg&n%o18n1N~gtKYOVwvmT!iWO8;Vi54+frclshqlB6- z>KOFT6{#x|oB&^q_J)btFlfh!nzEyYuFq;13@`cc{yXNSc=t8gNY$5s+DRULp(|7U z5c#*!f+Ik??5AYfWocRQ^6irhRHLN^bxt>1sg!0ickT5Av@>} zRWB>GHRj1hI zoAmfC$9}HjumA;M3=#P9r$0hnxdUAh@QB|KN&fVf2cG`3KR!ya-%uw5lhRay!B$7{ z8wINScX}95Uw9iSYsJ4tKhB5l$<-KOTC^dLv+J)D;@X&L+dPZrTZts`5v`%pSpeMX z!&U&IFj+vLYyin0Gvd#uleczP0u}HWNL~H%l=|c zkrhx#SUtLB!Xb@I#K3?iKpqVtEz>6bSM3=hVE>5g)oR9d2Ik&-Fc7&gWf0$veD07r z34L^9b*?;?-W)h(IzhKA*idIGID8m7WJLAe6nRxM_gAc2>U2b)YZ31}=jj};6PV|i zwOU@Oq?fz9F9)Y7Vv;hHI@)NM5LoJHBO~89#w&@NAi!1~#f6ncfvVAM2Y@#n=74f& zm|dPOSpyaFUc83yBErar4>pBrD?|vVn3huOO-!5Z&zq{{zJ+KsUgI0)Y6QRJlk{_K zRl(K)?J^do;8>5iI(LyZe8`NYuM3_*If)$OP;xsM)Sm#WDvTW-ebcZwNOSwFnTM7c zDGE(R=TTQ+gNbU&mQNT-%O0-CjT+=)r1^;5OxFJul4JT*>2kuGv{I)oTX;yr_v2fC zBORak?2OC}hI-%M^X{OzKQtH>=S{CgvE{9IY_@72Xr*Zx&NnT|5%R)2Fx_rZ$QG7B zUzD_LD^80a9mL;(=#&lX#zys~Z|F6b&lvVnE-(7;K+%kVWaVGO-rqXFV6%`@DPc~1 z3RZ$aNSnGBpk3Z|cOb~ymLD_`_a0?NBqJ~7U~n9302xUshAhvs!(=mHcm+pS56_3M zuK{G=i?1Cp`j3B)@QtHmr6%tk2vz;^7WHcD_O|>Ev=J=6%G3-fkGS3)sHNKACQ9nl zKe?>u&4A^Lq!_*paALn@O{hoveg{Hxjk}X)|mM zx4>X=rZ;QZ@{+Giid)9fNI3f0sw`*EdZEoUMQ#PfAW&zI{AphP-bI`snlYYk(FpSI_|64sL)YB?riX$i0xfs?{l z`tya1X{52dE?r#n9M!h+6X`&W>*Nd|)rfvF>-rRjd6}(iqTH`)fuz7Hy|tcHU6dN; zmiSj}_-eag1($Xq#gDWBPQu2tU*}g61W5&H!0Jxa5ku)CH?$d0?@j9l0aK6O36>g7 z?#8k5@cG1OU|`uI%IbcT$T^@@??0k z((h&))*gYIIj#9J4Zfc-GA6v80sgq;`52D}1^O#_OreJa<-)bkzSWtrEJQ1+SUTCz zDo#7jIv%{5WV4~C5&<9dP=`OI%t!!z^JXX&qKpBFH>GG-$WAvR{FII|AN6IY)bzkiy2q=_Bory!i$TFgG%9p)aYHgN4_VQV|+$wO(#bx z22iS}K>JA*bBJZ*o=^HW+PWy(+BuG9BW6TTEI}&05#(eY?Ombn_nxFXk40TgHlcfMFiRWLC6L-1YL$nZA12-wkCnc7K>9K_@^APH zc=R^$Q>0n|yk!3lUNjEgxXQpJrl~IQe-BR=)BYSL!Uee8foKn-08wZ-x+SyJt-3!@ z2~yTGz5H+^#~;dmCW@^%PA|{+=<`Nn(mI2;E1B9I$Z>KJz2h?8eX+~GXr~}&x9k}k zjuihFf)4FDeKOFoD|P7TyRva*HC3Il%n99B3a}yf#LqWZV{ED4$OBK zdpu^2O2fo&>Yi@P?!vXEqFNMg^WKu~Y6LH9lqN{okJE@RMZi})b(^Hkb!)BT%|0!7p!uz zSVTr&%I$hf3u@4=2QA`k| zBr8H?Rgekkxh{gtu(jWTq!%ap-*h|Vqz5x|OZ<&p`^)GEfC1OoGdZx~#?s6NjXJdscmQ5oHk{ zS0-a`wv3SfGREd*1WP!QP~t^C<_Ub8wH-dPekISJY`T7w@?K{*PQRYgVTaV`r1oXB!7x5C>B;GI@ub1F_TF3h;E~{W9pF+B{Xc&Er908Z01^UihJyfZh_d zd(i)Mz4l5y1xuIVhUE@K)K3$X#Jc}*fZ801pJ68&?gr6*OPSQ%_uNuvY|IHlphyyT zg5GZZ#s6a>R+=nDH_%OxVF6ofU6-hKmHB_j&{LLIfBg9Vz*tM zw6m;{>&GK_ie~dmey>FUueqH!-OL4b91zQ_S$mlozi}hgo0~6uM;og`pe=7JViML( z?l`D*3~O2~U=I>9^M$;Pch7tkce zz=%DddOXEA>}MMo)Zzz5)uU6-HKj2^;WShuWpYbMYU;g+luvA`3)cGeN#&eKwmftT z@S}>;AhkVOek&#YmFC1WO|)O9QVfs9B5dk+;)I=0Y}ax7i1GuKUZD^Z4_p0O5@Pz) z;0VODpQ<(F-X7BP6MsV!p=N{3Eh*lB)cf-3n<;530|mb4RAnA;uV<#M;)Y%q$p7$A zLaO=$hfaP3WcfB;2f^ABTwrmMn)wmGelC#3rA`lK`uMksG#rhz05Z3ZxJI+0y3*#g zog#V<*}${|N;?Vw0+WASG>7x&7=l<6aw@h%b%73qn4{IP4SMub4S-;ye^D4Clj}gw z(X*+4xWOg(F@#{gi0W%1@ORU+exzdU3im!yA@8&XfPS>t_9Np22bo zuIq)zFxJZ&Nx9KtT7C|k9$UKWs6cW&zOCRxc2CjtU4EpsYnk!G9BO#Fi=G4D5tGo# z26Pakx%qtgWDVU6B^d%4yix@npIgVfdP`r5@yAHvOJtRr$M z`ZGgb+fBz8A$dJx20MgAuLdX*tWE5-FdoQJ*maMEAP%#RY|6_vVmt68YkaD2y3+1_ z@)f7NkA_4v0{m7D_P8nf4y18%ZBg-KTqZ-eO9yGe)tn8E;vxn*owv9XM;Z`6Q^Hbo z$jX5n#qy%JTk*G0J9YYzqSSF))-%_Gvw|T1-r%*lMYs?W<}MBixIME#Z`VJH(W3fa*NqQ0t4V?{BTGGGG)wB5?VZdPK z*0tEc3Dr1=_d6Fn*BA3r5k;FrXZCeoo{j6ItN*MPV9r1cZzr&o;9Rn*h-2{D0O5;d zvT&ds;`w5-ZQ;5%+9Ptlg`~`=qXY@NYIzU(OJ8H`tU~eQ@U%+UWLWY;@%|PI1kY=} z^?9CztW*F3h<8QaHn+KEwUpsK&F-Xo_w-2|$F;l(p7fY=GPa&(LFZ}{qpSDu^ZE+E zi@q`Z0K84!NSu&LJd`fiJq_d0vmVFQ9GM&)`bg>!(}3r0$kYd2LO$NJW>YrK)cP3ObpSN%^#MV#$*?v>*G9E zjBpVcDqK8KwB_V^rU-c#XE~$4X5tCdq&z*PEP3pW6?NsNOop}P+l&P+)Z@Qj7O20} z5r!rV9qZ+1YPjH%d7ge-!Xu;F-=~EkF~S@DcZKrT))g$5t~<~vJ762$CU_do`h`MPCf_;e_XJiKxg!ETwA)-Gm4g%b7;%1c*&^N;lUknz;Y8e+WL za>j2hez`e(2MSfbM~7BHv7Y{3GZkragje>U=)fMBq+W&OIem?6LE=eNfoh=Bhf~dBE@>%JY*q7XDs>he5|o6Jmt+BO^u~paNg*<1M!L41@Aq{d_OOEEsnV~^K4|^wLn{T zPWv%!f2Fucxc)GQiL_@sn+~A6=D&_jS`5mZ>*(g|0sqXV|`EJ7NhO`W*AM66X zzs66?)~E(eO?Qx*I`hTX!!VDlXc48Y781pqdMZ`SL?*I65XIKFMJDsTnM zPvo4u&X3WblM*g`H;0I^P3-##wM#Lti2c{aN3^D#(m*|6t#Qj&Pps|p=#6yE&|Tes z6tCBV@prq{cr3;gX@;2!)k=q>Mq&+m)Ryl{4|%TMK=-ebm~oF`wPbrqjIQzO5#2;r zMZX2^1Sah^^9-$`u93gM8sv)6LxFt zwDMFks~X&U=)GOYGhO>Qls;!$l-ZlTRMns-k!>3LSgLD<1oFYe1b3NtSPwdSUVI*TPAtC)Sj2ajCM1E-BM<8iyb9t7wfmTgNpR)wsk z{6N$JWI0(bkQRN)dcc{R7PR zXG07Zk|pJZS=gT|*X-b8-{+9BNRrqgj?#zSR-%qcIl5oC`SDO=rRv*6!^9TcR#Y2M z%aud~k|2{;f0c^-qdLydai)mb1Kmyyes+iILt*AmYyQ_K6<>jB1HBUD>+U&#(4PLx ziFFSw-=7&uA2qcK*;ty}-+Uw`ibH<@=L39Medd6b0%cF7yVcY|@BG@iD3_-SREV_E~6e2T= zt@um2;gZOqaY{3SdUyieEAe84E%nDKA2j;gqb$c>SJlt!lGF@shi85!u2Wv{!GIJ{-Dt0R^gLn*oAS2niLLM<1;n~CFwpsSz9U*9m^x?2vLbX33OWMc zNKwZN1q_~kG45qD*1sV)M4aJpk9ysyB=2E^xY$%!(G^cb*7#|*bj*h2Efy3h2)~uj zK}ReWf*l&3AzC5xc8;~Fd9BZmsew=reg=2=#U5jNg2ux)QuwO45rvQ*7huyb9zt$u z>x$#*ii}~B%|rm;{{lE7ib2P!FAJk@?Uyj_Kv6{P%NH2cKpY{j8ymDT`~%lh6o9S$ z;9LBvI*sZ_hxp1$dQ0=#ZsL~70-ie>#Fy3l4UWpY3Y_He^Nq@xiXNtrG=&oFUhbx< z0lW_ExNaIj+z;1H+#^%y(1$89ZFNFk^$VCLyLp*(P^r+cY@BrvIi9`1pnEKVNR|U7 zBx76Qai#6S&6C?$FlJ$J`I2I@OH?3-uZgL8m%ZX^A!Ys`Ck?2$aXM?7P^g?0CFWkM zT-2AubsyBd*S=EZX#;Lcc^SL>Vhod1>LW+zUo2lh%u!07JC7DGX*^%56)u;Xn>|p1 zg4;=lQp{Is+1@_4$y$6}H8ri0TTC}2BjR5R81J;jrFpGq^bN@Z#^ze>vNMRER(q1wScE5j+ntg66=UYP4M7j{~N?m~^ht0I13KFiivC1Okg~m)qy98^4eGb(}u` z8n{26@w(ck~YHQ_B!Fpxbw69-t;a#l{-q;~JKj>Jb|N=_gxk1u}l z@FzFRNyiG8i2-h+QC*|%0M#>XOiPU@?nq7EbqH?nY7-%9Dkp2_;)HXQ98;WZh)KMm zAT?9j*Nft~auJ!-k`FxFD@5$p4hTCAHt&LoJDI3rOI>NBQ4Ue_JuF@?EKo$KvE6Zd|Jk2#DoTdY2Oe zw?r_oKJiY^Sj??k8C`2l6WWop;%ijDtK|4r-{5!9RJ&ffMWEb>-@Q5@hJWq4NGjc8 zd0H!Mf_>?*OuVORrasckUbX1akx-qIWu>%JU2hOi5;>2WY^lwkxUs^BfF&sMT?xS7 z)(1N6?MqJCUvkmmJs=L`-tXYuq_o=YdJz)0;DcM-RtHru?Jw0voU~Y$mDGro_2x-_ zD-SE6S&hdG#US?&E)*egF}!j*j49;WjjKKYvs{*aj@u!ri3B<%Fyx3u9CxJCM+R$8 zyeqO=3oMC{=JvF!8mg+Q>Q4J)*ypf&hEk8E$*AAGd%|Yp^o8m}G9hegVr}9P?h@CF z>NP^?)4&x8I^3_cEqYtQ<6;OzI?g$_X?Y@Z)oDDM*k1T=L~=qXH9C5~>N(QI#0>M& zQ4&v?pFI9txJNqK)LSa2%(_y^NsFwX6|NtC`1zn4q--Xf5vBM+Cu}L|aT8YA+i26w zAgOC~4%b!zRmLqhctLWLv*Lhr0~~8__Lx^=RVa?v_@y;XtgN}QF#F}lsKhbZ~HzS;|W1TQ1z9GB{xkhb)MJ-IrYc~xN zcC+3yi(20I4X3pc<)-u$Wou};- z3Ux$EW!}=Bl1EEO_bxO>4U1yB6XxXT?q2CnB{^pm9U56=f>u^S?T+*cpyK)sHZ(w^ zyt0C2mcEo7URHAVmwpkqu*Qw`a1i;1zg#xYXq3acZo`49h8FL&*JEMy_$t4}eI1Bs zjNedudRz~jTc<(wiAK?y#z>*#Sc2)`LCn&UJd2p|v)op`^u!19$vIUP;sNI&=!0^V zn6_lX`qE~}S~->9L%C{}TzlS37o*Vf(ht8s%&=kl{&I3dK~>SWXmD`%bLW7KUz_5m zhdl^5(oeJ_o`qc$tc5*B*MDqTm^}eLf(=@FeOvWR3Ye1#rD_Dxf>uuC?A95%)u zw}G3OxRH>IjizT{rLs#&+Z=eMQRyMDTI17>Z`ZQCQh_%BA{l0eW zRe7Sw%pkv}pce+B$Pc3C?b{o%P7}vE?ZWEmFq<V! z2xV|;qM^N;U_m*QR;PCSt>fn#8M2+~hmv&g`>t_PVZQ27H7hF^CU7x+?nag7$5Tb- z1-nE`RFf+e3R3UmarEXs$C`lHKYcQ7rN;1&>LfI-=a32Ey|tQd8?_up3|Pva=G1G9 zj925t(pOtq_mdFI;N2!v)@wILaEX7g`ArGcOzQ&Kb_)#7GHhLyqiHxk=t#)woJdei zHi_P1yTqg+pi8`|W$+y)CKwyn+?78?>pW4s@hkdS1^|4!9&eRa^Ao_js+Zgb04ecX z=D;sAgj8J73BGU*IA3_1TwH_4Tyulk z&cCk1EBSZw3;$ZP(jO)a)${Xdn#E`;69hSPiZb`O%nP$tITJmY`hQ%H{5!csn!vIw znZlhSQ@ZcE{&XsZr8Y|u@ib$XNq~^eq|yAvKbH?%+z<&1C7;Bt5PCm;s;Nfv>f!35&| ztKR|t$f(5s=q%O8Beq4U(Qb`z3Nw}ST%5xP5S6&(ZaW=g$&V$S!1PTWax7eVaFG?P2-Y_;n3=i;~ky9Qz$SEJ_>g(bG< z2d|*BJ!75td$xIvT_+nq?4F1-*SIeOpktHehDt2O7;I|2mSiPt?K;I6W12P>%z^Y0 zArT}rv3wl14CF=Tiy+GdKw3l}6CbWiF>5!xU;<3F0!2%bpVYfj3 z;RNVTxGx!u@c*;3tf4B}OW0M=2+jJyCu=FaQLM508BS65DmXI>8EFKgqY`ZuJP|*r z05L?Ifo#v$j~5Qo!eoFIw>nc@@f~LCV*QhGC<)(%P`#dh)lilt51ZCJ(=3;WHeIgs zca(QX$Z!t9rcL3s)!bP_IXQC9%e$r#ijHC8OOl+dP_C&#e7LX+3Wsa%e%SbUOC|r- zFl-pY49E;4rcD976Z&Q5 zChT&on>gEHo4_YgTA^CJUlkv{FuTi#lkU6qvGDb?t>!U$ z{gw|_)9F5f;sjRTq1q2M8z=VDM>|H^=~zt$*@s%?@Z3^CT)Kyp_~%8gZ_mL8{Biov zI?ui*MbdvM%oyi#%cQzq(O~ZgBT}69w@@beoBxr!Qtmm(s<;%c6#3 zbcH|W!)&?_XY=3Th14JOK?9J4C>PVh#<DUqpxIn$qEY+7+4tU&w@rZ;Pe_U5&{GFuCI7V9QEo^6p&Pfk9Bb4F%b<_gZ103o? zt~9uL2(*0l@{W(naHG?H`gN2CV&Yl>^Pgjfp?(93a0xrx8J`292JVfDm;XF1_4EKp zEFhc$`Evyzf*5G)+5D?EZOdN4Zm^r)RI4pMmCh_?RvHRD;x4|$bKFZOSwkdHMr8{b;Q^I&#&rWDt_(F zde{>(oiU7Vg(k-J7m``eQhj8m{@F>u}Ed;VxAld zp)I9{l$Hb4*vPg&sIoi=?mEG$aLEi45+-A`Jp>nrmD61!;p<7!WyYawWj;5i*p0Yo z0h9s$r!uS=z@&4`I)TboUBm$dU^ntlc6YSggvtCmDI+#ubbM5=``+la0iZE(fX3JX z8bhnx*S5X0U2J@B^tJ@h7|?bLQ~=PJsN8Qr1LBz`k$7;UJh(vDa(MNYZqN>)A_Mca zLYlF~q%Y8=G33Cs9^QRYcH6X;as>iTw)}o)-f5WwZDD$y_`wm77#e|>{_mw;21B;t zfYUfX$;pV;_y0^`O3-@;0=wqGd`S6WSoDB?S&7#)s@{PlFahaC#sf5omppo(yl0QG zSn=AUQ~V4BoP+rj6~F#!?nb=frlc6%p1XIzYJqOji}jxOyVU|Vq09Dbg1U$PqqGiC znOeOzw_zFb&4-&? zE*F&r5kltiwqgVB;4Y7K5yv9z`=;UNgM|8+W9}&pArNSVHOvNU&qG|KmTr|8vJiJIm z&5@N@Uw5`Cd-%Z8+hzc*+Iz4S-gRf_$kzQoy4L(@F_sh7qQ!s;sD~W8hoB!14XXM_Rz9n*`=@RGpHqX1w7rA?SP>+9SI4O+^P=?WJIt#2SHCb|@r#w|N zEmWnz9`?(YzuAT_5hrMCxxbfqC3>Zt3Cf*FF!b{^T1X;!!(*4BdJGv^{Z%I zH-2%D*;{43=o|UtFVfLT(xxAepO+X5Wn)X$W^*1TED22|vhNoLj8$Hi@l3VCy`f=5 zC^h5^#a&K3ks8sC-_CbQD2feOj4c{i(wiN2Jy1^p$RgKANtys=taC2VAGFuW4M}ad(8espH4MhI`It^7>z~8!j`rr$!%{>Sf zr=U!e4hB-O^Z|d_21XFOW;#jMt`l^@vWY48hTV3R;B-B*)=);E`_*}JGJBOcwoGsj zrRGfYh^lyZMBVw~>8%BPR(j)Xv8VpytW|wNFpj*bo7)@S&iy<~^oKMDkKXnBhIP80 z6{O6O9tAa;r(0^eUs-clnaM7Zux12XIH$d#K0S$DN2ZBw>-GQ+B?_PLRpnSk&0Dac zju&C&<>tf{ZAuhp^!FkoL~xu8_iNm^74PD>GR-R;FYdP6dDy*;`@XMv|CdG%iRiM6%XXlNr%pTHc?DP(5cls=& zu)X3ZV?6cc&C0xo7B7EYbA9uK6XQ!FqKbp1hX{!3AVlTF6|5>g4+5vUfo+|LkB8n= zmi104@26zHjT;BBnYVn9?lT4nD#vvRc5$oB?y#o1)_k4Qi*YNl$<}{vvOhq;9Rc3a zABxJ6$=IIKF?ls6WBEX$cu|YV2lXaD{(~n!QZp<4wR&gl`EP;px(#MXp^gJr8;*LG3!~Luu%d*UWVNyRR+}Id%A%BJ23~q10H6Fh zXEaDnwH7vc+*OmtQ@=Qsft2NNA)H%Gz(JnD)##yS1Ii=bFof~OoANakLHX9ZaG`#? zQyZDnd{Y)5FC4?r-%z~xR!$U?`29eiHU9k^tH#*1@)X#K+lW}Z`yH+ZODLhR8u+bU z%&y0zpa?><)KC(*XqRw~zQ3YBNBW^H@wZsL;&0F7dXVeRvw%tz6Z5Tcr}yJ>zh%w3 zv3>KAqH`j7QLe7~&5N7a)&OqVI?$wv$A|gCRE-Dk$Es3q(u(xq<@zeVQ5L>$r zLqg5T$4iTW&VHb@Yz7sENvJ|*6oGb!vEBlp(}4oOxKCRC>!>jv)8kuwWfiTz>V>^lb!-srW{xYN>vk%;@PbCNfXOvhK43Ws~ecl=snlpcb$^|>?4fIY&XJ;gNsn%IhJKHVnAjPDMVKdgBEvoi}3 z>?z=94Z(OB({Um=!8UK5r|Qp*<5pZB%)$&fhL`_sDt?-bIxrHXCuH^L8c7$jomHIu z>*xINjecYM+M{5|=_@D2OQ2n|Bt=5 z0IO;X;*YC&!o>{l3)lX7Rcw z)v%)g+lTo6&$eweSfU<57`G0)Ei4fP_fKLPa}A)vZ*xA}c_n`>A1xqp!&v_jXio@J zMmCf)3|qBf&8Wh8KJ;dxUPNfb8__g9rOy&2S zl$MmZ;7tqYc=-r2e2VIH>E+#$-Y>-Vua#{LokM5dN{zZ<9IJ7bt7V^77nK@*R4n1K z&VY@z7N^UN8)TF1{ir}rmAmGltrO0y#=U-C-=tIR-rjlx_Xwe z-$ABHd!ngPg2W6Aukui(+w4bz*{6uB0vvRtRy~Po8h7#11&`b+-kRt!E75pnqE53< z@Evu#g_s)!-mc?QLAG~<*l(-DNB!nU9Ne|AD|)S|GfHG3wzri!sGtr2r87`5D;b8q z5cQlf@6`Yss0KMobRphCJ$6f4{R#sjD+48;0%6 z(r<1WeI+p*HfEA6=AQMeuo>BI;c<$XY)dzvqX{)ufS1>RLP7xSQ1P=*Ou}nb06hZm zF0u=}s~o_)t{h5oV5x%pHHdx(FFXM70(Ia5GP-(9+|H*_ByJ1=U;?Cly)z=23q_a#haDOcT>;rZTmaiM+gistmX3MwTtane!LCg6k?J3k|glr z!LTu{eIjyq_54Ml>*oJ6ch32P{?+!QOl4sE$2K0uFWyBtEX$DhFv-%=QlD)2Sbl%t z+2$MS5KtBli7^`ArgVkA^yC`gS4RCEsr`>H!IA#D6#v^N8tpC*Kz=lR2kB;i3!3T| z`GS-U9WBs1K`&qpY}%7`1bFoWkmlh|EczG0mVr``S#tgFMJ~vK<)z0=+hO@2H*Ma?(5M2Y5)4In!fC zgr5NG>B@JI@BK$c7a;DRl#;f>>ybEmT za>>w3kIv%Vc7a!2DmeVoql@>cUtq|W3%>m5wSc#Ifk$5|`F|_rKUXQ$^1)<#44Tj} zrBR@J03Pe5_N-wI@Z{Q=u1nPzw{UBz815J;RI1*F;ToK8gi24UM)@s9cMrYOcc22J7_c)Vd!7X+>J>jF)$-GIJG~) zZCV);%SKPNNjmI&dQTd_+I8X($l1q=Y0!3LAS9qjy=niB+R8QmAG<>Ok5{Uk(EX?W znoSd)C9$@et&yMGS^7T3XN@<%{O>6u{x)}A`uvH~?m4qRNl#J`T|xIHpZ0H181RV& zzB0nf{&5gWSv{!&#?~K3_y0XkJdb}m^E^CdjXyQG`;?@hid1*A?vUQf42_^ovq4=K zaK9rlK0yyLY5*5mR`d?k;)0Tl=Rsfsjvzoumj6yk$^w)m>fXir(z0KzGhoS7?Jy2t zG;aWm=JW-lc`5_&lh*-$5^}+^sutqdrTp8jF(XJ>od&Y{TiczU3P>cJDy?W+AqHb! z7O=1hKRSv`&196)TK$TZk3@A5rYM~f{ z30uyS@=dZWM({?TYk%PUGO5FPGnhysJ0`S)s#5^VuX6p}P}3JTV7anE;BlcaumJr^ zV+H=(8sbW$7bM@CaLNAUN!SEDQW+;0TJg!~E3|^zBkA~*w|7}b=l4#48`>LWwZU8n zEh#tKGgLoHUd7oA@nIma=z`hLazG_G=|R+t(?chg_SFPnS*7juWJIk>%p8`=iv+?}<}Eh$EM?RNjk((GR%z%LIQ? zSYdTQ&E(Xz6D!}VKWcrr7ag)3v?zF=^JF`qLIlUs+S?K7&yb%hr+t^%Z_)cx!Kte*{P?Y+htArjOTSYk>@R(AyUfWraAVV%nDeI&m2bD?~>li$6+LlejL zOIem=1Ub~FJ7#6g-aO~*WLoK z70QwDi!d@EX$<)BBx!3Qj-n=kugMtDD~1lV&N+Hkq+RtztHUjbq&f-yM4}KpcUpAIl1Au}&3Mv`daOIWq3YKOSHq2z zm!*-%gs~e+YC?IrtF@U)MV6!7N^dDNbSYY%p0&5A+izjoS;beD?P91D%i3)9$`=QX zm;_DIv2@pYONr3K?F4pL)%i)^<`wxIco+`q)m6m8*ABs2F3qkYRAEvPxYSj*-FMi- z?dFUIl2yvWpL+-`PS}z(!4vEv(gb6Aw%$Ej;L9zvNogqeTZ5~_-iQ#iW0g?iKra$W z&}bNinFdUDTZ5hF)VI%a0*I(g4W+0^XIKZy_P-1p_6Z_qjDekFSMx+$Ej%TRAK8#u zzN|MwBj_O5mSnR_Dpb(XozP&Cwda3A9b*vg+InQ<3q;<%h_Bza&ZmhM3FNBjZpgE) z8Yui6$JE9bWu{DS7J`N5_91CmVHf+iGalx{bho(M$AQ+jUQq}jJy3DNr*!k02wCP! zf5RuQQZ-ZvgKRSyI`QDS3og=$61A#b4&dp6DjO7;e&*D?LUNl|qeo zzNgA`;nZA)rSd(C1uxMeO}~(s@IMb!{^6RgxZWCwh`S#EOyBqI0n-p)1;%Kd*?Zs; zj`-j#azdYj{5XiN@R@h%MmaB&+s%?S2%17tP~__&tK%jTtOm- zKwwPd(>r23G;<=K2vkckiadHXOZIfCthlOVkbH111jF1wT@k$&8)c=JR0u zfamrso;_%9O?&{eZ9MjI_F_U_beQO-40zUqyGP_U6-SRqrB6W(`M0MNrMYd$EN!G& zfJCztqqOp!alFl23j?Buz#dSK3#O!0K=-y=>>nQAq^GPY@mFv15wDHOOqLBdZC3xC zS5vZ&L91DfUtdZ4VE?ve$B&CBxSLX~egG4mH`!)YQYu|;eG54kKK8zSAD21Xr+fmf zuRC9s(0oZXP{!sfp*TZJ$Cv2pO8VCm?B z=N*;Sp15-2BEajzRg0yAYhN387Op9B?!yX%2NYtwa3?HR6gM|D0oUS?l2=w%*2ao^ zGrrj(RWNEuv6)nv?mG=5m!dNU)<(9&u z55ST!tBxONjk5cQI|*c)&P_^dWO9U%h-&l_RNAm_%eazHceFJjhb-rETPx<XlUd-BT>E0&uZUg9_ANJuN4_Zo5x`g78r-vJixI5nAmL{W*iNaaj*NoZ9dp( zO-%`0V$&n?-Xpfr<1DeV4db!Z;*MRnFheQ5+jR?!Pn!!e%t{MJX%3>xqP!#((K_&& z-TsCIxRwS&K*IuQd`{Yj{uy-fxATlwmSKhbp9e&~c#Je{+&2K$(l%=*#S4EPbdS{i z4}t>c%ZdXF%)g2SE-55_Kw>V=<0j0L@ayP(eC<>EDc{JSytVk42J!Ttk|8?O7aH*HF?F!LOZ<$|P@%)Ax%I|!l}cs3>o{D} zx77K`8_*LVO`)_njvsFCx)Wj9dc0?L<_8mz@l6=>m$0?P)bAkmzGCtMNTTZ#BjiE{ z90jzW)U-g!FFw|vx9K0eoyN&l&AdGJinCkAbYP}XLxHDJfo6ekz#-}+_DJ2+F9@0o z%|3t>t`B_&v5Q&V72C8qd+uz3`Pq#-?5_EUIA*>~1bTb#375>J?x6|`1Vjax0*D4f zpn=5oE)?pJO9WZ^r6X8W5DTE>Kl&54Y?bcU3TfXNNp{XMpBCTwO}nAH`(pu?&i(Fp zUqI|Cv`FuJ(4LN_1&LkYgn#;bdCacMUFIv^TJioQdeL6@swegCim#<9W=LKAyCCBS z!s@p6jHbrssmjo8o6|-sFZ=y&HN?aKbcG(E6ufRAxIVh%OAa2)1iPWc=30;pmkiqA zw~;SA@WZr$HkSe{14gXg5df|eiUJ{H)~h1>H~_f+{x{%+NacR=$xRLD>|**J+RY&#N+k7F6m2QhMJz17jd?;{eh?`+_u( zzt|h)W*0z9uxLPMXwS@tIC-Ey+=pz!P5vB(scGkdNNaJ^rMr;r6x0Lk#N)-d^F3&5 z=>OjH7wVS%<()i>U6<_EBI@%zrue8*ytkqT#dds4b7 z`M&Xf@H{Lyt1S&)_!|ClPZ}K!%tm?rD?B#G?cv~mtHF}e`lf#Dmz>Z`ovj&QkxT%7 z3P^Ih9gP5zl>gW@0atM5hv$_%oCeVOM>4Eu=<>S-tjDUl0QjG3*M;~dvLJcJ$O`aj zH9+TonY^2>@V__xeJuYg)vI0g2}mcJJU3E@qv@Lw#Z_`Mmm|uR1l4l+Qr*HtJ|Iwb z0F*G`Ob6na2JgbnN-23Cf<>wGYSw;TdeX8j#T?!fTZ@-en5*H3*YAC6J#sJHt?pkj z4w^(wKNy7YANs(RJ{x|i6UhH>v;W0}|0~V@KQyYij)H9Ra0QFujx&x6P9_C9nu9Q{?bQEqt@D;J&CWl4E*M`*YqoDZ~qzVpa>+O7ZZ3~G%c-W<_hs3dFi5TQ^ucPbdgs+C}>KPal z!gWRrh8-qkWu%M!h*se!u@efe8u;Q=iTRHc4LSIaa0is|71iTgOQ2?X;}&p7--@A8 zHd#KN`?A;4TKjVsjqId3!ak2*b*Mr~v&bi)s3r-K^w!){RX9&o(f1)A)B# z`J%v4;ZcW+?-LKXj{5}2A-R&rp@m$?j;^FJjU29V`~7^4RT z#pY$zo|X++?=#aI)Opc{Nasu8Gv*jXFt_($=cbrx{Je|HeOCK7j|2ymW|w;ii6&y` zm?Cr^NlWBPzbkei5oqD3DTL`k&CCa(mO2=r$#A=(7~j^1hxW-uI0bDEZYaMn=q|RJ z_{G8b-|J*qZLoE=wOZ?}%#1NH%>B)4UDi2*1tAnsaw@5E>;xq4L85?j{PUraVmkGI z;&oIoAqY{z@N+j{N$m9kXp!G5bP0sl20MwkLeSiR5JV|t;MfJ zid+>Z{$pM|E#?s2IdL&(N8Fgiqvx@A#E7I$l}p|e@FGX=<8}gKs-B(dH)4kgGn}y5 z4>FW?Z<$x}Oc$JOk7Q1+r!> z@v2@g$cG45wYt7Ki<>d!-KR1x%|%Y#ekL)6+x2J{`(qXNwk^)6-}Qjc#@zRO>DO*N zBW=jH!&L2AP_7;{e4UW*GNAF?f=K0S`7%Bq+`JZpV-t9bN8)B{CnL$Jn#?`vwqIJe zC`EDV1d@XCQeuVQE4zsVICMMrY7tC!**xyPRl=zxAuroLdnZ|2sd~c_;5`BTlWf!z zKiXI|S&HNOKK*4$`kH4)H_Mt&MRZU z<1@X<3rfm(e#a)Lh~%K4YEVOxpX)Pv5tHbb6st|zK>_(i)gRJKfo~KW0 zp*)nxrV)A{)0-vQt)6o2O2k#kRgw2wE3TS>(Vr4`N>$7omVmZ5^^Kx->T&p7eMjK7 zj**k3!{D+BiX8Umd&GBiuo7}LEKgplop^L=Ykua4dN6x<_7xs8Nb=S)$a`;#2!klN zD{dU6-kK@Y`$Zmy92%{cTt!XL;Q&z%k;6lYQi-uvION|0hQNr|KYmcCX&H&HvF@$b98coscjwU+xZAQ0O9@XB37m4Ah!vO#7~qN z^0XiM>vdYB@Dg%_GLj)6r@1wQ25r9yIlZxVkqKV=GWMJNV_+ieQdVup-zvHPJ$!v) zm5<05@tvb{ALgcgrIAI0Wd5|`80=EG zG!Y&lS%>1X{*|=6*5CITJbo?SG~Y2x?+xCx#)Bu0Z_$9U<}Jx9E& zpR=9Ny$hqmadB{DYkssd3hbmx@%T3*UdjnZ-M~!sj;z&w%`Ol7m#c}rc8?-Ur3uK9 z+T`Bl6SAU=iyIl(*lc}q*Lh+oD+nW4PDqShz!#{!yB4rnRpr3%;LEg_FfIDQ5zeKm6@~ZT-rg=`0k-BA&l))sy5mCkr>VbnqG#I z>fPJNmPu^UpVXA}K4NHNINkUnXxT>BRYetn-JR&|vZ_@q3!VQCx@%dvp05jJtG5#^ zX){&Pm8J@j(iqE~H3spk>iL{u+dIyN@^`5WIr1{;acEm`P^3`t2}m>6)4!*-@9|jA z8xmw1wA@>()h%?))R~kh(SCD>#1x}B3YLM2{7TaD^;_BWh-lqil+Cb&ELe^~gRG|x z&HNtS5JBXfu=DEoR{AG4WWGA({j_Drg=RSM)7f_YE8P!V-`#jYqgYbh9X);141qRY(G3=QO6tfyn_3h(U|^n)Z=3xllIqX4JJc z1#qS3&EFI$;NNLmekOT?`d}nshhqA$)6{Q?gaR+@$y&DM9s{hbuzT*@zE!jQCaDW& z{zH6&$m%#yvc4P`mfT!fMS6quzQqz=+A#CW{?Jop5cV^(@TVH}^x0FoYh_cAw_F11 zn`XWN6D2(QA$Hi^CpQy-AQ=z8RM_~Mo6H0@jxJ}_4ZM`v&^PK&c`zwvUna<5q2aG< zHsS;;4_7p3Db|l{%Ql1++FPSU;ojjuZbfj|RvSfzHZB#xUD(1w&817&mK0g-y%~PTB63FB?Qmy8 z#>mzISy0y@Ndrri$UFIs*^0duDRV!B3xe;Wvzbv}DP!x@?P`_s?Uo|m_q_kNp+ZH2Sr``u>9{N$FE#Kdk`fPQho(`M^G6>PHl%_0qFnDtEg5VzQa{m#j^v z-RmM+mJPKbF>kQYNp`)w6b6|&HJzJwMuQ4Cw>QCEr?PS*v-6uVNd$%p6EUxdZ`+2w zg*g$0I?c@4xg}ixf|#*{jy4pq-0pq5^#JMzc}{`S}b^2 z*uXNuB*H|I$h_kZ=;?2MB!IKGWyx!%n-#ct3+MG{yG30hFYB+iYo!UxX(VqL zgfn&&7Nk^;Q3gm%Jc@k!?n`8Jblibs_VUh$&rq4d(ix-# z>^$r5GG^E8D7Ysq7!+FaJHk?yWa_l+Nk^SdKWDx!#oP8#D}2dnV3fN$8k;buBivmu z=j*xE%3$Zdyhw5yuWD4wH*;eZ0^Y@L5wBoe{VZaF*8Sp1LRya&$YDhY#knFF+h1v- zg-7$t{VF<}1@Y>NZ_n&-bn>P+&`JF&^P)g* zmyJV3&)VgH`Tnaqu%W`PzltVYq2642x8cX0E)Fx8%=;84%T}A7k=I_1^eB5vFtm-? z)YH#tfweZxPKB2hhK#GLWrgu#Ri|a}_3>#36K%Vl;!*v9%r1i_5T>XH@zPb&A&X-r z#7-SKj@wvSRb0LUy4o6g>QVz*+V62ijamEp5&e}r^>+5o2of++TkGYfMQd>QX z%*cqv24Y|XwW2(`$T@N^7*nMJ+*(&zdCK(pvEiD~MDYTI_{0!E26-`Lp`X;^aWof8 zc9~AsG znWAa!X(l##uDZ=V>d+wX1ly0+BJO@J|$7Nch(j!IX>pJ}F8>)Td9I2CcG&1ZS zO+`&&y}^CnJdGYJk6|8RSsRvNO%X;v^YjfvS|{6>QI)I0v=&*wNELu~Zl>EnHUobb$^oJrIw#2bV35spUC(lCyqs`Qn~ zCI8Ys56>@8G%A;pa~8+8_W#RKIhI9%*h%7a5$1T@Tw8+cF|bK%sEY%+K}418!D zK7$p{zk`B4B3{AC5Lm#l{$g2O9(h;xZPG1ZHTUBV0KRD}(`*Br%p%Va-F=IvB;`&B zv%`X}CPUvI;m@{-4&Az^A|WCxcL2@A>@)-+QK&p`I!AGiE4G1P1Ar+B{|m`|6Ck-S zJN}69A|yj#E?wM>Z=N`cwO?7dcLDq4I)pQveYlp1o z`^)tY?_Zl%f|pk_8HQ;Wo$$z((k&DF9PnJZ*>ZrLRFk;Em3v-!>@XL9s^EPU?8{I8 z-z_N!el@#zZ2f?sfwM;@u!Xbfip3#OZ1u!>KKslY<6weQ91_6agj zOS~7glt&!Xspv$1#oXqrSMjTbuy9QX$)7$H(<{@Ghb(>vS$=kQ4ZUY3V!A-8_RPL+ zA^~c)>wkWYQ{;@O8vyKwpV~ftVRFLYKYj*CpF~5kfzXbx&^<1)OIHnjn`e=}zmj+5 ztVePy**odL>s)V98`TW0*W?Z%ZJyQY)KZN@2~q5d0mPK6mEyz;5uOTTwpFL9MonxTcn=S4L`KX6 z_uF0$*oS&OR^yMqoPP_5gu?YdM=BRNBL+l6r1Uq6NY&$gAkYVEFSXu6(d93gi|pN3Y4 zEk#@YQ}sN0LsaWmJ!m->=9SXs*9PoQUglpJ`@c|BMDIUG=+=281_cc=#u};)P5oKc z6M{o$;AJd=<4M{^8*N!o2yMHT9^*Fy~kY$QKy+h+(GDmCE>~spzc2j zF@pW{F<$ZisebN4U$=bb45SYJ`l;#gX6;4DpAL#WLI98ixX$aHqUbd@T8ynhg-;#WY3xxhi6@pU=8t#h|@=urP z>FCM3+8zdG*WU3n-5X&4WS$37AFZ(b^FUf4NDfV8f%O~G1awRdFvkO9;1n3NRc{Zu z62NF+z}hIYc=XYq?gjsQP7-?rz~e+L2a9Ylk|82BM<1y>>)soHZEry|D)7x}^uKz< zDc4k~>F2$Q2@}`eR3T_H5G8u828chue9@z}KLB=(YXy4D4lL$_(h>KX&;Y^d=*5b^l?=h~ zf9^6;{v9t~Qii^-fbGR^I?e-Z@$Sr7bnjgtu#sW?BCyc`=WiS2{lll4$UNCMEEjo1 zb18Hcclg2v`y<4X?g3q?Ao)bxQIzEO&hmry_g9aJfjvE%zMxqHPo={HL?sx&ynz8l z0By&bKs47v5V0S1Q2t))KZ>q?<-0xN`h|s_19ox%0!e{vXBTB(gLVk+0GkFDLid$^ zG6H~y3j+*6l1m)ogPPt6eLgUR+Ms*#f--=%DZl6(XSna5k3ztz1VF#=&54}e1Vqdk zYAStKY7yw&SAraV_1GQ(h|wZQs?L2KX3m-YYJth=@*MfkTk^+9*FX4<)O&mnA-(Je zWMc;d-8%N7=o=UF-bcN|n-##kC-al$xH2jJUgJRMS%=^*>$x|qY5%#}UyTl~&%6iT zs5bvIwOniF0-h`jW|#thk6@rO%iss{V#qP7yOOqxvshh8RY^^M`D!8achHblhh-?S z-c~L?nJ);^ude2X8VaSZkBgV}?V11;bB?qxk@KTay=?O3*SRO1tSqZ!&C)6RSkS7@ z-GKwfZ_wU;wt{RE^eOnsfc`Ll(sA@H|MNKD zCo~&swmowwUz#0LH)_hB{89n+9M{WsZVGFwb-Hy~Vlb<`>N`jgLY>EH3$4x2_rzIm zK$d8VnwIINXl0-F|yJ;}i>Y zgM%)w=x>A8oS1~oGJ#C{2^eNIC}!r?k+)I~Zi#+tA_PsP6*Hd+q{7uF)hEp14%~5M z>zfM|;$eD6uWymHh965hh-@?gKh^@LBA(wtr5-VYh0}HHA*b`NcvcE9!m(DIowyHq z__^P4Wj37zyD}@L2cHj9BJX7DtPpaY#qQ}^aNlROy7qohi}KB@6`aUD1P)T~OMQO0 z3j+Zs!Bd^AOv^F#;jT!!y;gj(Z{S6;k7(ZFP9t};A7xL7JKG*6ybe^=IQ0EWjHLwv zaoD|JWbwd|su@}sS{^7c8KNZ59Ex2T_eP$FUJ6ngw@yH3X8Zl&Ae z`;OlYLUTD#tv6Vx$_A{MlfK}-ORapu;WNaJymV$!i6H6QWU^thF1O|(Ipv!C$x}1ybd*G?F}{or6?2o(6oL?x`5)oKHz5KgL5L_i^x_wxf!r~u8)#S(B_8V!@Oxp zt15Yj8E3xDM+&7JDJ6kr{4+~SQ2uw&4HAE#D*fYfz7ZW-Bf6`<0!u{gN=RGdq@wM- z00tPJl`343UH%A9hl6E^; zqJ>|_u7^aC^H63`VBuEm!*cDD&f6(xnptVD9t3NbB`A9cDecR>?Gg%EzfT(V8Xbz7 z1qUDUlxkBc&g8zjyJRiw;?;H}lY+gkJsd=Lt?*A?Px6e)iEJDSC)G{=0vWFYHofoe zJ+~WgB0aTL%}KdgMM_y*S>nAXb#M>oJIK~((1t1kS|8*ajku0t;_`V_bH<;AlW}D` zXidS8Cs?lfjl`7Vo3z^*+*m{;jGn;8UiE~rNq2S*L+31v>UbjFr%430I{SRKD)Zc@ zdCzli*cZ|Q)9B6KGg@{q(wskMfWLio2|5>!HkVK>`PC*R;E{dvEh1 zRvnNK!SU9A@;(<2-Lw-q1_cbfxvN`vWRvO4#zZ)e$U&FsnfqqT{Xcmj&9qmHQ|pJ^ zN?I8uGbM@F{78gdMSG8e9^BZsdY(DTG&g)t-nijmBU^`&fOu~~>P_sHJWIN3_!V7z z6_SI)tWQ=G%f@<2Y**<;{dX*_vzmhY>lj^HA%upls<((S*YuRXklua`% zb!T&8=Gg3Mebl(M?tBk{=9I*B@rb)APOY}U0FC+UQubF@fT$8x5HQzPAazSy3=>Z` zbuF}4?NqQ+4RLG+ImXn=i=P?uoJjL1g1$RkI;ELTf{ZWqY(rQ-pV_Le{5|DR+CRZB z{(2r+K(o4{vea9q3sU|BVoj;M9|@yWh8$zW0JpFip(%1YRE_8&DV>b1uLw4}H7mH{ z3wRw5f}!uhHvbhL*s)8}P}mbg>>NjC7N854Dq35&C87WV>k=6dT!k9Kl&9E-%1}7b zS$HMfdVI9|^ogh1+>%vqrTI00oB6rJcyW!XOVIqt;77uW?t?10^@Fl_>Dlj~q>|sL z<8}$iLM=v|nw$lWN2xS z@+%kmCN)^O)%oe|*ZA9C4Ks2MR*JHBwz9F_(#GXTTQI;IZ7Y?2d(aC>z@`3Wj{%p| zhj|}CGDtJDuy=5SnF5^A%H64OAAj?!X-3XIeo@NK)?2J>+P6897I&wF?Q0cY@%2Iz zIFVBS`hb9s-Smw%i5hT(R7Md&z-AVI>{TH}7EWq@bWfACg)DV(eU$_v8ozcRdLQBe zk%zdW2o%*dSeet|QM{mxRcUZSYhYr?H}Xe}Tcn98ddIk$e}zQ8iUfI*l$P&Q<`+$L zL$T7AM8(>m963`A51LWo!bJ5iA}G_d55vs(8Y<_#hPt*0dk*&OnVn8&yZb z2B`IM*d`*RZREQ)_?BJ?STaUJNvMZm!RLWlT{*gIhf8ZjPOqO(1R&L9csk8S@S@RX zY63cntkDV~ExFnOlR?-%u)k>3Q!?rgBJ?B@Ao3%$loYI}pyi6DyWIx)6XvzL@$lGO zLFN~R57CwAye1kZeL|vN0X~O@v)=9bk{v`Q)HPEc_b|>Lw_@>C#6$YX*8q8oe|t9U zZ7XjI)=1DI(@Py7v(pXS%E-bM*360x4p|FUc$EIU;C)p%>IleZ(tSjB`BQ!u6noMo zitLuQd`i~K{8Wd0s#hebXZ6Mpg!bh4TIrC1WHL0TpDJr5s^+z3N+&zG{9-UCgKUH) z^%8wmT5)#l+;>;yD|cH~n+7CO=f(>hHgzB2W)5nnR~{;LlClZwyeD0r!9g1D*LIlZ zYK)hauqOLhy2kJHj`5?d9g8ZrvwS1PV_}a5KE^1vhdROuITMyAIeuRwLZGxcei0uy-^aEmL*uJt7V?VsvLlSR#bu|AnuW zzLc~DTW3mAFE+s`cq$|F+yt~Ga%Oh!GtBscRrLZ`rn{a=D~;P==)hY_{9cf{^i`c* zX9tW8Nc}G+=}W!!T%m}}dN{tWcp=OuV})a8s_-{8gQQhM(GaO`Z+v=@Q}}wVo*Nze;3Sdy9XRCs ziz$Iios2 z*rhbML8gGW{(@S1PQg_YW2LRawf7 z7<)@6TUas;Yz3dP2ur=c5z!UG_eKA3dE}LV8)MIABdt#F+&bj0i0^XvO4`_SaY zO4Q5-oJe?xTUR?gE}ZUJvbWUZaWf-23*s(BCHMTg@EB4xiV8HaMw z`l|Mi_OTruz4~;>z-}EyAZ<%$Pt<|zVYq6&O9wOCr;vp3SgrH41nDDK?5mrpgDXtMTJ-V=C)Ea52t)X_lXO$53-T?$wT?fH@E2;dQb3*h zVbURJq$qd)4!Q+wJv>>MKdI4ucar^mKU3T>9`taa6- zhmE5z*;(SCg0Z_=GwM2>Dhm@)btLvx56b-Th0Kw2`zxkcKjBGiKWzwGyWN7H^+Vcch`@2vE+r{m57q&i@SUl<{GK+ zU|80!7~*O#!e}4i_h<|mfa9n>P@I&I!E0l}*H5-Q2xfi+<7D)B>h8)6moZ6_(!Sjv zRTmWD9`+i^Eoc`EC0sv(-`+)O*s4BBd>c=~!AvmS5iKZQFBv6;U^|!3bQCckeJQ@+ zA@j^fvu2?D*oxVPTl|)%UETHqOEz+tOD{71GC8T2qV}Y?1(^Bs)?Ivs4ob2)1rGT| zT?>=>P^jWSxeksc241dvo{qX~E)!!i%Z#h33Z=QzO|)l@^98c*^O)G5YFp#DYnab7 zbjjjRhO_v;e8SLlC2^2eRGnYwjX!b)lSfU@bH&nvUI9r~zpi1*>YAD5 z9{Xzz)w5=OEbK7B-S$^H*-}ppsT0}SQ)74>r8S688!{U-D$G90$%+kjvYY1GO0_7E z%+j3Zsy3UT$VWBrd%2NP2_jCky{J{!Mz12vNS7k{lAvWhK;PIBX=6OJpXIYLfHGMC zqkL3RtY*=}yVOAOmpPfjXV1(VFmO4{caowu8{QF0o4Jaz78kVjRgV2 zJrnX%&m9R7!V;AOm!gc?0nGu~;x;GE4Kt#&Jrj^SVy6{)v*h=sAaUC#A<|Rb9U(+Q z_G6m5m{dC7=4Gq)wkXk+tatP0G)F2B>;&H5l8r{lYZI96TUip>E*B}jU#iulL+;Ml zNh%!~rDK*@-gUDK5*%I{G|8iIeO(IZ7u?RpMsOHiG4 z7cOyVWXBLE>4)DTdtE$ReBF%XMvJ3cufId`?Y5hivC_6*O3agOB}0NLq5Ib=8PxA@bRk@!<{X&5}1(o85hzNCYcxVAkZ z0BxI%JQ7}(@S!%O@y_srvYpM?IIgMlf{5{tbR6huG5BxwY?a1ty=Xuqjz3_aLyjBW zmnoEK6(*^ds?yMGafxFgzLsQcneR2UjF#y-U1kph#1E)8A!rN?opFQe>sW4g&DruN>%*ct&nzVk>5;u=YTjRSc?aDVsLgxsjZ{cXZ!G} z8xfr%_#eYtU(sBwWeU#SM!+*zYfiE2wHBMyVO;G5rjJ1#M_j4mpcnDkeg|5~-X+IQ zj4$9R1G80Z--6KIq#|REw;Aaf4jL2j;akm(yVPJP??GiAv+<-uW(}POh70Jig3X(ZXuXsIJj#P$( z*(FY56XT&VsnVs`LMD!=4vU>T4}D(Um;+1Bqxmk5CP+5<%LhN_x7r#|m!XYip>%}5 zXP;%84VksoI^pr#hhpDoD&2@eedEKF@OElphtx@1EzLFPFky220DgGCPCY}DLBgYkG0m(lPy zM=PAl70}|fx(i&~$nH&8;Kgdjgv7=1P#kUM1e~eRZ%nFR`_NBzmPQV`dE$z__dW}NoD-$8=ubYeWS9MGE}VB7cquf4Z`igIn+ zhKCSP5CrK|N+hMF5k*QQlr9Bn0qJH01*8Q8ln#-hC5IlB2I-!mQ@Uh`f$_U>m)pH@ z$NN0%f7kbaYq{3I+%tGz*L}r#9p`Zz=dTDf7Ec2VAWJ>f(nj}99Hk&H*A2`at#jO; zi14n=B{OP(l9wlw4RYJ%*Y#PRebK9ed$=S0v>46Aw3+);&Pal#lHmO{__JqM zGNRutDI4|H&;aRz;ccsfxv`^yq+)9&1>+kd7xXVjK5ma`ZL(i-G{_{y@HL;Z;QX9q zr=s_YO3*qaA+4^CN{~l%YlSxamEb^+ zH0>QXoOw#_(lOzNxN>T){_u5ET6x_o3*1F5?y}6uB2BkBiURN^%frVowlbuHDPt!I z98`3pfgr*<01FUgf{avi|}+hfUjoBVFbAVRH$$MI8|Y0aweB`|4tNQ{;*^T*Xd z1F(o`FGRTDNw|+4Xx0J)%i{|ukjshg%qY>Sg3wa05!X@ZwfQ1z6SKI{U z>f^-^fb8#1lEV6qSUX49g~cW`64A0v_cDqx!fJ}l9ucLYd%OW8^&T?e#ARD*1vxX7 zCuN@HB71SapHwUY)*>ZZ=sc;1KP*_0Rhfcjjk9!P4)ynRSG&t`apx4q{P8Xr-{-{( zkny^h7BznH%zNrJO3pTzcTuxA;Rj%s{pqxqyJx*3wGsRYsKE|o{!7q} zL?d2ZwQ~+)QTl4oFX7WdBpFBRUT*(KsK$ zKAI;3-^_e)iT=?Q#RR!RZW=U}X3m=*0%gA)PXB^SL$C_8$oL6L?&Fpu!V+q3B)m$z zZxr~dL~1Y74PSOoNagkYKicHb8^MoYO;N>6QMP-3E@hT=cuQi4S>V3+BBX&5P z{p;HBmpCKDOUz{#P1Re-T&|~8Q4*jDRr4i&fDNH5O7tNUluK>*mI`!gExUSHE2AVI zzsMU_{NhxTnAb?^*VI#h#_l=Ggu;~If+21i@JP< zrb%I&>TX!EFjz5Q`T$KshtAIyeD&ym|IC|7Dj zjbx*^TI(9vW|vAru`nhp)Vqb8SMra$4l5(ZRGW{&WJMZ86;T1OH`KP!5HP2}*64TrUPmaO#(BN{3N+Gd>?Lr~91aBp zv|=I4dk<~an7Re2=Hk{7ax4{547(wUKn~!Yc3;6dkIieScBvRDjqTJp)dfrjvkCU- z2;_Cm0aAyZ zQ;=9thmthza=nfkZ52jknzBnx-r{fw2GyegehbnF4j`O@3{pN5Meea^TdCRo z9c23dHP4A7A?XHuSX`8}S3#n|@ZlW=q62n2gU&sN(;BTb!Vafwdwwh5NtRTgn>qfX z1z9pinHfBF!8gWWT!dT}RHT7w5slOpP{mpIU@8i9 z5oxoPef10IfuN{fZp+S%QUhwFHVsv+Twt3Kgb#OSMEM~wP&W+>6>=mpEQX4tD;t+< zB=2~Gp2H-UE|&*ei zMIY~e4e)p5AY-_p;b`ll;!m!~^b3mOz0x&XHX;CE+*(xDOTJ(g;Pb)iU{d` z^H?L84Q=eSJb0Xo?amhvhKb$_RUEFdxz*CxW%59<6AP%io*8s~1u>^?k8ZJYf@(!B z1zA)HuDliE_lO{R0aJZI)La}toc@@1`p+A6$A*W;_CbY?lNd_v91FeW1x7p55f0)M zq~9R05CqzJg9XDH8{%;?u#3FgEt#Qw%IHNM#fZK0X9AGhccbf}6y#{y%BY=~C<)1F zdA?>^3Pza(A}`*ns|I90#dSY(eK5|B;w*J~+6%m;GI>DqLE5RMX^#0E-qKaUq@xhW zqgP0k)gz^@iR#q^uESBVE4}7N@H@wK-Os8xvP~h5f}!M_%LgxjWn#?)SOsD0IM0Ap z@G%6)=xR&5sqj4&~4&0tV_oIB&6t74OfUPCN|0MiKRvDF5~APF zbwe6gULBKl*JhI!*a^&SIIC`LSy{SNbsVa4^P7d>zL-!q;pr+l1Kh2M-RW!I*%no| ztKIX)+lI=|b+Nn(Kjm*QqbX)j>GOJq(^|bxt^yi0l{qAcpT>5P%-?{L$f7@K`=#uW#7h;~f=eV@k6_vEs9o<8Q&>X8 z+DzL>#2%sdvSBc&rJ~2ytjKR%0;~>9=A)06wh!WtCVR*jHpl>)(TQ!d>XD{$SmbZb z&V(-uZ%S8m#BVsSb-$L?*#eY$afZ`VW@m;xGaBJAy0 z>XiztC}dP+n2%?8LCXuEtZ7w(UHWLfi9}62I#ay(sQnemr~(Bl&G-y>QqlVOHqnih z=#QvNNOb1H`WUj~ct@#@-~e_Mk==Y6`Lp?nO!_0|<%h0Bme|WVwzxuHR81PaIM|$rN0FtPl7ZZvE2-{QU_0 zN}D_faLFA%fRSX;03o~p0#MC=JLmst%ksL;SruEr6{-V9xLGYHq2ZU}+SRw(BDu9W z?qNsCyQKlMDct?f9!*m3eU8lJoojyy}B-mAV>Ck?7a)P!m1IL@lJ6z z=(@{1V@xW$`Z7vB>}4*&plnyqyw|bQUAN!9q9hXU@Y;MKf%H9Zd#Ko#SvwE_iLAf> z;K03Ue|&RLZTVTl4F=STMm!s4sa93d0KG^aXS52{h^V2MqBlR)GYp{GV7yJ{TJe@X zeuwA>QdO@fXSZAQk)s4k&_2c^uY1@i<-|^EgN`pg%(o zzwkl+>=joEuus2~OnpqjC zW4**vzyN^b5<1f0Sm^K@pXJZ)A48{V1=_vX0{8M<5Y}v~r#k9+g`Kq#T6xH!SmHcf z_@*z?XQh7KNq z%0qK0e~Ur$XZe5$I&ZF?k^WJ9ueC@jCB8WsgXF#w|MV>a_-yd7Hct6t~-PoF40yk@am zWqc!!!&Y-`&|t;>d34hpc=DPe08!+m3?HkVuZ;oXTkJmYmWG4Jr2uh_%ul@Vz2?T) z-Pl}biyp|c>f@Bm%{u${VlUYb-|b8WgFgSd&&`@|<~Md6jTHvgNV(_bCkAkYJev!r zjJ-BMmKgR?Y$hw;d7$2l`9a9LNNo`Y+oGxpza64+9k0PluKnjMu+labo~?>2nQ$UE zJFvSIyY=Ct+#?qvJ#vYFLramN%PKj zycb+H;;EPC)Jp-pj@KTM6#;7lbis;2RFCEqr1;)42;Zp&^1x17PwLb3F1g6P{UNKxr=0t_DZN*d2j zQ^qf@a7PWoM`rJpZ@OE(@5j8N9p&mg1N5G5R<@y%i3Mvwn|1Rxu{gxOn&2Jz!du)+ z!&*^@M#x@ZeLOSf^pLim*z$1n?YbIXy4!feIg;zsY!cUKx0M{7ZE&BIN$|nDRD0L* zb`qE*Qyj0x*wnO|T)44(i0v4$mN$^&&l2s^*)%^b6;e@~Lpc5DWhjF?d!K1UY26xAF*(%TT z3+~0d5Uo?`svz+$0@zdoY=xp5ae*s>JQQwmTD3ZtDvJhRD=GJu4})EvK2M#wi=w4t==Z98q>! zAk&hd=#>1dw3^?Pi-1ZiovI0B0jCQ5ok$O(TMY=Gzf=54{a!fO{j*B#_nN;y=mr7x z6B&?^`JL)7n9=&CG(oX&SE1Zs$szOoPGUyNPkYWURPMrlR5h$0ujZ?V+ zEuJ50aq&-`VPLw5?K!zUo`Czr3E!Ld^X%J>n&`}r33D#)Eb3=UM8sbDWn{1Fm8#+> z?U~C(8+cphy@y5duquc*AsFw4@|jydlAoo{%-SQW_b~V@>{8`UBHfs(b16!G@=|sf zRdCkiDJLK}6r_XuR1;#sy(@QS(HpGxLmEto2cHo&&W({oNI(l3TB@e{;^?Nop5CS zb#MLUdRl&?x1=wmKC^XhiA1-pyfD$`MK+!z0^ru=t@`w=AByDYG&__R+FNoeJ!-~e zY>_thG!X$bMK1q#rhW6h{|T<}S4Z08>k!*jliJcKxCvYMwE$kl9;wNe>qHPnK*GTX zo}zn;Zbx@+3oE*k*@jedjaAwan#4Z0biRR5s)qO-IM*zRJJ4JR5+5S*DT&u#X)%^t!kF+J zngf`JI1hE{5=AqX*mvK!c51A@v8ep~tn%6(mr$Q{adFfXaG(r(cd-HfbjvqoEzsfo zQboQZ8y4$CeL4A{Fu8pzfaGon;2!q$R;@>m#r@coG#o4>ZK0x;+@BRO+8tv+gT10 z9%14+pPt5L7{{BG8YlsvIo!+B9g(6oza-gBs3 zHsc}$gfTm0o_%5q?7Mve`Uf}kQxC}@-12gD;j>#H2c;*lYrLr+^kJVN)jvItrdr3~nVMlE(Y z0G-gfXa%4X@;$HHuZm-EQsZvNT?bS<%CgCyZ@>JI`MI5fz6ci&OqS2ih9&gpElRLV z)zMLSw5j0JGVQVMX$p0A)<|ILmBZA#AI;mKW~# zaInGoTM<)F-ZNHPQx;t4TTQR7KqkId=>sNc|;agiZ1c&|89w=|NMLX3cqE~+&Ht`lzltFMF6 z1yJH*p2O203TLFrU{iG6Kx*^rzoOFhl_M0o6?u0H>ao(qzka;xri~3FhDSfaod#n8 z7a6YEvYX*NyLUs0K9mBn)5%)rB<`TsT{*1TLUE?7Y4kz{wN+GFbXR5{_&5XNw>0vg z*Y5!xGhv)5eHyFlSZ38}Jqd@&2WX&J$4L_AQj1iAb}->5msnwPA-GV|+05nxl-sJB zN!-yK7Vahxpr0he%@<|E;`@OV_wvw*!gC8Cld}CuSGF^YK1(vjggcGu6!&ZB&97SA zo06qP7V)>JGnSq&x~MIYn0v$ZQe#SnxN%e#w2u4c#HRdEjV+iZ3o`rnYHUm3j!$mS zi9-6NBT@{RlSH+P2g52eVQ}EocCu_NPmj_ZV<8M5{O&rSsCzt^X|`NEaXpL4a&tX#Opk-WeD~%9l9Ug83md7Y zA;6h~qsxc2!y-P=KfS*&xl1{Ie{iv}U0P`W)=dNXcb#HGX<8i99XJa*fDA;yrD#-F z$FK%^t!+xRsg01xP<~OG*2|TeDMq5wd8@tvCUHle%l~onSe-UitDeF6FFq zL4x{bLB6RqWJ%3U6VN@qPgD{gVx%&-vo3n0y=_Cjm8zf|-q!o^N?BO|Xv_=pVPUI~ zv3A3@60%5LmYgvK?JpboI4z;Obfi1VasF+Se~=96W1RPX7%i!UnPn{|dtoexaq6ru z>nJJmD3fyP>{-eWRWKVaK1-}8DLC6;I&-)V=l zq#M&G=S(q@zb4LFrPo@k-7Gm1`PjY5G4lORp10KdJNq6sPuy@-pw$8LjpLaTA6hXq znigcW2z83yUAUKQfw_Wa-W2c%Y`935#&Q2l0{C-L2zb=*OjynA`AhvayZHwEjR*d) zKyhKKgS&B6^BGq8qzqP+PIuM&6fQEbiQuM*T%Avl49uqkH@#&|rfxSVH7Xf*|3pTs zx35R#SRLId-NZq%{6Y6k8X$wXuC`G%rjQAz!O!Pbg6zsC+&yjb2;p!h`7|vxXzeo* zv1Gohcb4I>WJ-?q3x32a>|nL`?4M?6UQ8mfiCf-SC$q$<4A?k%^DEmZX;cJdo!kGw z9L{oq!u7)BgU440mCf9ku6YaXs@F==mUK_1Ja{A>QRku-bt^PaD|?bKadv=*+D)PG zP|LJ1iBQ62gp0bzzDR z;LA3$$UuVEl5$vAnSx79rkA&;IV6~Lx|#dV9y%zP10qEm6o|8c)GHLDOI>0)F8Y0Z z=s4lfh2o95*cic`fn2?jMmD~Ed&SUOg%xR6$EE3TsaUHzJa1O_dznlnd`cfPH%AsZ zpx&`FhgfYUCZ;HYnyUArT?wB!PIG_>y6jVBtJ|w66pIxx;0*0eGUV%tGl|CehHkM# z%0q(7>&GI;*dV&)?202q;X0mb#Rn)Z*F=Qk^p0Mbwc?(LcLoBkW3c!LQFCsY*Dx(y z+ja6jZpXYMl#YL*%n1(j-|=icRAMGii$&EJ4I}1dY2IM|EG7$v;zAa6lL|^Qb(b_%>flQ(u|iC^*yfSL163Ux$V9kG;L1bh z;K9ompK>%?Wg2TPebp@tmO?-$OVTtBI)_#PQ>^;<%tTiXt6lP_1}MQJM$V@=m&*B5 zK0Fpd0RyUo@ z3utrc6I&`F_`CO{rq1?$0WB;8IOY4*^)Dd$0zbeG4{$g8?(K~4zW4wB*8l6TKN}Oa zU@VIv%`LrArMwR89Ci8EgX=m5^6#;!9$llocU;udZ`T zcAcv&jWik%dKu^Y)K_&hq>dbvtjCT zNd1t89P$GSayO1Y+0B1WHwEdZXE!>#vqF$z8HSCR3ls$#`^uj&We!o0Hz)EjQ}O#X zy-#Kvv;B~143Nw@Bu{1=3oKW+BP_WFxd_pp6fs-_0LI`5v<+YkKJNz~d0Iq2xB;Cp7{d4Xt8|EC@&6DZjLgNQ$06hv4ID7N7 zF)FrK!S+GIQEzb!!v-rU;1OYdRP_af;#ma`Q%9u0?1pRF!NLsVT?r)&8=NRLdvEaB zu-XO>oD6^?hq9Q3l3Yh`TFRvC;ZuXU(;@$u;+~5CLgQ*dA@cxzPpS2As{ZuOIK$<- z$MQxg&ZG#XcEl@gasxti|Bcgf@$z^HBQA;!=0~Ze7#_gvu(!6H3e%lGK&%QqAL(G; z0C#DBAZgzVjc7{wA8=2l>Bvrs-v1Z851{_vGxLBm%I~RYClWvY&ZPctea3OyE#7XG zW0`}8$O`%eWE^up-rBYN?zoA<74g=Xh;~L~Bg4k?rIgRC)+xIO?Eu4p?T@az$6>@p zz$En+V3N8M2Qb&v00RxeY@mv{8PE&hJlH^pv&zAF!7kJh;3(8e3jS~% za7ldyxTG%gpyhuFZT@5T#ADPin6Gs^c$^4#nSIgI@{v;41DxRkrkFqq+$4zfZu9Lj zptb*3H5rWl=Z}HRQFbukEi`9PSd)Kb)H~UNJJd9$ru4ZZP4RP0*>&BRu02n{>67!= z=@Wb)YyIz?KK}}H`R%%v6k%nyft%k!8$!8MNJtppPOu>^w3q~_P>^TLh}RG-V&8q7 znm3j8%%xMCiT}_lu$dH{Ia8X|$NTaz!|n*M1ugTiysPQUyC{p>a%Do?zsu%bLp2z) zAEQv#L~p`6%;eFos96#nplX2xi|x8i94%b&gZY&)*bYe*A9k&Dh@r0gh(|zSG0>rp zTaGCHdU1hf!LwOMu7HX79C*Fx#)%Y2&_H@I z7mssX)TE*1;JNfCvy^tpG7IIC#s)B7E1Ozm#h@^e;~UGKvBHCA88FwdFQ9QpJdQmM zRUC?^Udpen==nE&VyvBd4c}zUm-;9@Cc6Oj51;03cver<+H_M+5TSK8%|bN5-?ec0 z(PEYTK$++3n0)l;G_$O#)S$aatMTftm~S$_!Kp@MMY+(r%^S;J1L(otYZxFy9kd<$#@3iL8mfk#&fPEfQ{)#DV}91}p8#_ZI-6_a&rFDCV@2M4>}n6_0Atq{3NR-#?fI-MzfMd*!d02i`R z!NeOZnd@!inDttyJI~I}A)4Ym4maKf2)w0g`5eM*h^6`n}BTgon7Jy~Co#_a7jfNQeoaP61JYPqC z9n4{OiFT52J7`yXcTSpzcH=t!7X|~d;ZpNmxB0il%Hrk^7Ts1afBtB80rv=Lfu$MT zQd&D`sO0OOr7aUo^!$FEJAN|4H^>EjD!cq-7PB;sfTr-tOlH~t!i-G#s{x(Q{vXQ* za*(&Jt_ez*v6gGgmcbheaKtC?1?@5z>K7j3l;_g->MaV=>DbO7uw50)11ZNSqKPj} z>;_!hQ$5x8?VS42&-tcg8$;`6QMVRXtuf!dT4b{f4WwV{@i81Q%hAylbqhytjOH?z z$8O?#ZTZt1>oKg_VWC0CEA?-+4G8o&pq2eQFXKnFDFL@ zylk;w%cq!I)h&xOwOE`ML)AOvMZxtNxVGC!-Gd&2%W8=BF!DYAbI*dlm*dk8ole2* z7aBjpc<97FgpRA1x75(WgA$~c(*5#xufvQ0mVT5xgyp&JHKHC7_!Xz{_9G^e& z3+Rk*v^4c+t;?P>A~af+y`Skw)^#dNFWM$wCSkj8%>TA!7IS!oKe&2o{d{9Vhr2mf zOlMN|2pNTt>($Y;y5-C2*Dt@HrSHe6m31`Qh#w}R1%Ke0Q(jmBtmVVSVZwmD9>C?cff2|$gQ#)Sg zOlVRL-=pKBA6-qmqYddNJe_k_aSQM|6n;uss24%YjLt6!Uv{ioQxdb7dxDD0?F4va zvWeh#?5pZUD568=g9w1NZ{Zz|=;|8Vf_BZ#Ot>Zh;GmGjH>gE(Y4CxBoThc9@HLj+ zveZtO#@Plu z+|%s%kDckr0`J>d6Xq5u*x3V~j!UhNQjRSh&j6;Ib!0T?Q$XSK`$&dW z1ILww!!MxnLin!JwoezK5X#-hXeJ&w;s2!O!HV1qGUeZM77P*K@=m`UA9}(0UdrrG8RWn~_&Syg*QoElg_c2if5FFA$w#JUoZ;^r?uONb zr_!oxyJczgdFkcoxV;j%hLm7J$>@cN&|cAS5aM-Aesy)1zO2XE@XQ9_X3s;ut@^fO zx}e9Appf9@XU?Z25@B+7lTrk_ixeJ!le?w0yRT!Q_x8Po`Dn2&roqSJHSee0#R=h6 zdxkS8g+k!Sc|mWYO!l#3#n}Yt>Q9Ixm{-R4thQb;A@sOkB9BsL`h z3$@_}oH(C8)w}L_^xE7kO6O%Z+vs7N0tYnH8BO^LF-;VPou_44Wb^cB^nKTId@b%{ zaeh0mIQzv4-u8v&)A83a6%yC9LmuKvJ_%0H*f8|Xw=#lL49c!4;*HHD%QrwoIsEU@ zdJ0)!wU-`=HtTGp)Gyjy)JqZ5u6S0$E0)3Y$bRUJ^kMGnUN8QPy^uy9KGC<AnT?%Jf4lV7EVjPYH~jBO6hE0bXh-GcQ95*V@8;2{ z1iEO&ANRU*!p#TORd=vtof)Yv5;MklhYAxssW;zACEy{j(u&)iAT+C~j52p~zIr%h zYj&3%(%c`T>Nt@vH~n%71`f9G2+|zy?CDXWWqPLnWT#NJ|L}6U)gXDSmL~hfk_+&C z!tPQ^N*XFWj%Hfw@b>rP41KFSt2U+m^3He-T2=-LovM^x4N(gF374|FSRZq_xilee z1H81d*D`FHWcQw=atbr_N9#H(DfB)pl@Q_*Qwf_X3lSrpbH{7#(q!J<$u0eg9cysV zglKL`W;~2V*v^!cN9h270*&|-1sYSM>yWTuK#2niCY~5cFufbxJFaFQu3!D}%)(L9 zV?c$_0kZD-4V}jLY2M|x{`tJqB}@4_@9h3`-gW=9JJ&=^l|Px*g9XBGAtm`M-j+Lg z$F^s^zYwt-c6h5&e0F=;u<~wc5^MAIz6*U$!`S4{F_}VnZ7P|Q6)t59V9dl8wNlih zwC7)Tu)8&C%(0VJ{E`6gG8O?YV}kMjglm-63#T@`xGjzTj^^ByVNnj_#s6-Q67 zaWojs8Yh%Y-KG@n(i5a_rtV7K@-Y0i$8>664aSr=hiWi-NKvIs_M<}wXEdo~Zf!VG zMJgdt!-2tES8y45$ozo71QFcu-Izi=RT4~}?^vV(3+0*GG)u^K3m9E5Dm9So?cSl8 zji<_#QYBE@quv?l&C}A3);vc9RRBTVUFl7*-|CywDXi*jx=Betkw$+AQNGb9-Xr|H z;GG>IE$xDo8`e;{C?IiAO>=Gp$8(>7zzu z^G!|lGm%SpsYC)pHpUzCY18@VZ}Jc(2>TcC7!K&a@VloNpsLbdsW1t46)Y^&pQ(ot zAv?B}aqe6Lr!+C-Y%mUTsi{hYX{m+%qRBv3WEa=vZx5JI_+Oq#|JBGd&BpiI#n zmCDN-?ag+~4FawnIkQl9hdl-eL;$D(vD|D(SeZO#Xfib=;&A&`(Cn%mq_v=K{T)4J z9jvmZvd^`)&n^jji&I^aw=&~wDYOnKd^pe^amE6A$MTMnnb#N_hS?&2S}4K22UkWV z)#@M6s^WC~47if!*>dSM9E26?*;I#j!WGQX2mGDH;7Jw$-g~!fR?Jy2b|?onvx!mX zP;!@T5^-3+!jXb>!TJKi5-j|m5jMVseD4qI>vrTUMh&H)qf&=E;F1sTVe0`v z&g1dmobiZ3ZBtfW!(cmJd9`-TyXHg!V#%51g$ow|v?1=@ZGeA|Ia}vs@inFG1AE>u6C=-FI(UJrt=;E;d({8pV}?tbV`N*jo$b z<~Q5f%_*H-YJPNVwTSM*#{o8ZDhf1~F4;}sG~@i|ry-6nyKtB{ zLF9~zo;Ec_vyRd&W-6pc$o6i&Zd-Bip7m~@0;?0U%=iAS&o2a;u17dqz<8_%{`N`Z z+f&D%{#^8f1Iv<%X;!L>2{g8Iq%vBhDHlaU3SV+v8&E<{Tl1H))R9l zZuK}W5<5KE&;=@~n3}TGH?p8;9$ybCJ3WUbHAXmlX~15ZoGk|^ssLEwSCoV+-)NMY zuoUD7VrE#Y76Fvyj{$g@sT^?89~n0TT=XZZQHsYd`py$DdPI>lIV1=A1K#lM>Tb@$ z2T=D1usgP(YlLay(le;{w73U=b9o~fK^0vhJl%?OH{Gd;jOUGZ#m=*<*Z1;?EnFTg zML=@LUrmT;)xAnz=w+P4oh-!=Bs2V1yk~%(l>;b&#O?!?V3OvoByS#}V5J4(qhCNn z2B^)|YM?NR3*c5i-l-r+Ov+%N(O|MWBuybzPKi+OGT zbVUxtSmv=oI4MRekWu_5dusw$@@CD*^379J~ra2+yU>W8k z0W}VZARN{oMvSzwrZYZS6Yz*>aA4R?(&qn&Li!Y4zYu!P8L-FDk+VBrAYv$J;bzoWq#nintAQ{H&?Q~`5J#-L_)5Y z1m5+QHT>MU-&Xs%gF-Trf=%iaz|+e?#-ECL5l2KCw_=My$l8DDxT=Sf*z**PMxh^w zDgXm@Ei^HL2q;an&abv5ygqi6X+OV!u3Ddnuo(tQ?37ao2_YR6AkR`!Vf2~yw1Gzp zTEJi4U_AC-H(Zx4u8kU-i#k%Sz`z!Lx``FBj{S&XX(UT2ZKNZIHN6WcuW?`fz%(R6 z`^i(O;BIV9&G2Lmy!PimLz@v literal 0 HcmV?d00001