From 7a53266a8cc98e6086cddd1c54a988500d57df7f Mon Sep 17 00:00:00 2001 From: Henri Courdent <122811744+hcourdent@users.noreply.github.com> Date: Wed, 22 Nov 2023 17:15:42 +0100 Subject: [PATCH] Updating readme (#2680) --- README.md | 82 +++-- imgs/diagram.svg | 778 ++++++++++++++++++++++++++++++++++++++- imgs/fastest.png | Bin 0 -> 131476 bytes imgs/windmill-banner.png | Bin 358825 -> 236888 bytes imgs/windmill-editor.png | Bin 337606 -> 297827 bytes imgs/windmill-result.png | Bin 254651 -> 276966 bytes imgs/windmill-run.png | Bin 156631 -> 258551 bytes 7 files changed, 827 insertions(+), 33 deletions(-) create mode 100644 imgs/fastest.png diff --git a/README.md b/README.md index d3e87a1af2..12cdac1699 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,11 @@
-- . -
-Open-source developer infrastructure for internal tools. Self-hostable alternative to Airplane, Pipedream, Superblocks and a simplified Temporal with autogenerated UIsm and custom UIs to trigger workflows and scripts as internal apps. +Open-source developer infrastructure for internal tools (APIs, background jobs, workflows and UIs). Self-hostable alternative to Airplane, Pipedream, Superblocks and a simplified Temporal with autogenerated UIsm and custom UIs to trigger workflows and scripts as internal apps.
-Scripts are turned into UIs and no-code modules, no-code modules can be composed into very rich flows, and script and flows can be triggered from internal UIs made with a low-code builder. The script languages supported are: Python, TypeScript, Go, Bash, SQL. Scripts can be generated by an AI assistant powered by OpenAI. +Scripts are turned into UIs and no-code modules, no-code modules can be composed into rich flows, and script and flows can be triggered from internal UIs made with a low-code builder. Supported script languages supported are: Python, TypeScript, Go, Bash, SQL.
@@ -36,7 +33,7 @@ Scripts are turned into UIs and no-code modules, no-code modules can be composed Try it - Docs - Discord - Hub - Contributor's guide
-# Windmill - Turn scripts into workflows and UIs that you can share and run at scale +# Windmill - Developer platform for APIs, background jobs, workflows and UIs Windmill is fully open-sourced (AGPLv3) and Windmill Labs offers dedicated instance and commercial support and licenses. @@ -45,12 +42,13 @@ dedicated instance and commercial support and licenses. https://github.com/windmill-labs/windmill/assets/122811744/0b132cd1-ee67-4505-822f-0c7ee7104252 -- [Windmill - Turn scripts into workflows and UIs that you can share and run at scale](#windmill---turn-scripts-into-workflows-and-uis-that-you-can-share-and-run-at-scale) +- [Windmill - Developer platform for APIs, background jobs, workflows and UIs](#windmill---developer-platform-for-apis-background-jobs-workflows-and-uis) - [Main Concepts](#main-concepts) - [Show me some actual script code](#show-me-some-actual-script-code) - [CLI](#cli) - [Running scripts locally](#running-scripts-locally) - [Stack](#stack) + - [Fastest Self-Hostable Workflow Engine](#fastest-self-hostable-workflow-engine) - [Security](#security) - [Sandboxing](#sandboxing) - [Secrets, credentials and sensitive values](#secrets-credentials-and-sensitive-values) @@ -58,13 +56,11 @@ https://github.com/windmill-labs/windmill/assets/122811744/0b132cd1-ee67-4505-82 - [Architecture](#architecture) - [How to self-host](#how-to-self-host) - [Docker compose](#docker-compose) - - [Kubernetes (k8s) and Helm charts](#kubernetes-k8s-and-helm-charts) - - [Postgres without superuser](#postgres-without-superuser) + - [Kubernetes (k8s) and Helm chartss](#kubernetes-k8s-and-helm-chartss) + - [Run from binaries](#run-from-binaries) + - [OAuth, SSO \& SMTP](#oauth-sso--smtp) - [Commercial license](#commercial-license) - - [OAuth for self-hosting](#oauth-for-self-hosting) - - [smtp for self-hosting](#smtp-for-self-hosting) - - [Resource types](#resource-types) - - [Manually fetch latest Windmill binary](#manually-fetch-latest-windmill-binary) + - [Integrations](#integrations) - [Environment Variables](#environment-variables) - [Run a local dev setup](#run-a-local-dev-setup) - [only Frontend](#only-frontend) @@ -75,22 +71,28 @@ https://github.com/windmill-labs/windmill/assets/122811744/0b132cd1-ee67-4505-82 ## Main Concepts 1. Define a minimal and generic script in Python, TypeScript, Go or Bash that - solves a specific task. Here sending a POST request. The code can be defined - in the provided Web IDE or synchronized with your own github repo: + solves a specific task. The code can be defined + in the [provided Web IDE](https://www.windmill.dev/docs/code_editor) or [synchronized with your own GitHub repo](https://www.windmill.dev/docs/advanced/cli/sync) (e.g. through [VS Code](https://www.windmill.dev/docs/cli_local_dev/vscode-extension) extension): +  -2. Your scripts parameters are automatically parsed and generate a frontend. -   +2. Your scripts parameters are automatically parsed and [generate a frontend](https://www.windmill.dev/docs/core_concepts/auto_generated_uis). -3. Make it flow! You can chain your scripts or scripts made by the community +  + +  + +3. Make it [flow](https://www.windmill.dev/docs/flows/flow_editor)! You can chain your scripts or scripts made by the community shared on [WindmillHub](https://hub.windmill.dev). +  -4. Build complex UIs on top of your scripts and flows. +4. Build [complex UIs](https://www.windmill.dev/docs/apps/app_editor) on top of your scripts and flows. +  -Scripts and flows can also be triggered by a cron schedule '_/5 _ \* \* \*' or -through webhooks. +Scripts and flows can also be triggered by a [cron schedule](https://www.windmill.dev/docs/core_concepts/scheduling) (e.g. '_/5 _ \* \* \*') or +through [webhooks](https://www.windmill.dev/docs/core_concepts/webhooks). You can build your entire infra on top of Windmill! @@ -146,7 +148,9 @@ instance from local commands. See You can run your script locally easily, you simply need to pass the right environment variables for the `wmill` client library to fetch resources and variables from your instance if necessary. See more: -c8*rHvgQizU@Vyv9;d%-RD`ad^-ZfP8PTk3nxOGyc2=SG6xyKR4X=i8JW z;b}!?GA~QVZB9d$Wrv4k=9uhhU+GOuh<$_k-#&Zm-5^_A25g%Frwz& GH_3P({2~rw z;SXa0<9ey|eL86$&DceMTHR(Ajd(gO{5h zYI%2d1Z-~b3D(xos|V-_ub~Y~q(XRWWY_1r;Lu10*wTOHnN1|bI?Lu?URCP6kBxt) zIG9C!DWS%kjsLpb_vvmUXxP)@Dc3*RNiHJZb}OA-NooxTxPV___b<2hb3ecHM}Lir zd$d|?j?8~@`Ny0O1pRUTo0za9^z2UZN8=OFt*`7U^skmwg)1!Jo@gyFfY}$|6WQ(? z0uanitCWCUu@9`0uS?4rPRYaCz${@dB>_2{lHbq0?JiA#n){z06$0y$@?){F=u*V9 zX{A&F5Xav7$PHF^y6fd(u)43ns{Gxe^ZU!{LFIyw)ymeFFE!-Bp&Ex;LK3i54v#u5 zCx6N2BkM+Hfdm8Szo0Ax7CLqV`Q7f0`&l_F0o*5BpFQP=U-Sp& 0K8u`Iv%& z6tCw2C15Kfk?SkQ7851$>>E4F@7D8eX=kd6vJ@KRsB<2B(rQN&q&E!ig12UsL?(Yc z12R|dKQ^XF+W^gL+|85vz~v7p0PwxGtFHr?Yy@+6|GN+Ax0ipQ# ok zEFA@b8!G~AKmUr@&$B@zzgthVOQDv#GXTYa0B{!VpcVyiu#RN?0qt4Ugr{H+|GO(| zWdk&qQ4 JOvrSpk@ zG~j&O0L^21j {xGS1-+bYV zMN(_fR3r~s>uk;32cu7Vp69E_XAnI{d@kkH_a_8gdpyvokRI4fv8i#v2Xc*Ii`+$O zeHT~qE3BMDq_g6&vmH5$xL50SIw%< s_uI+aI4f+h5jLmaRuRI8=JC=-XS#ac|K?yagBHcV_nu~ z(^VBXRy$- M7ZE1XNdx&i`ACnr|hH+%<{65zprmov; zM?4nPnC`f;*p=cxQ0v8;aBNUT^~74;@=zG@=FG~6Wg|;jyvcT*_O8FmLcit9eMZqs z2{WOQf+4m uRPc}S#7QB9r|)TD~NfrY+6{h>6)F-xTqTG*hExr zjC^qD9j^H1xLn0#O3Zc ^+kGu}~4F#5DDH|?-jZ=^59Q9A2nd9gzcwP#QJn0%4MV9$5>m_?eH&!o_3 z?ZjWclow9~yc)Kk _oJuF#eOTL_hU{M^J1#}HXgz08)@ l?A-G$Y9Ld%=AVS6Q`UdrdMG*f!{u z^};9Z67V8DSS1*2W!FHOHbG)ZC4$tlk4y|G;jRxM)vS7pSS{l|?U!vzt-47RO)BZ7 zb4XL)l$PM62p&O%Oj7@i#U;bCuP~UaknxuHD8n6emuUH?Jyp(az1)4h-8c@%&;c)- zD03d2A|&bhyGu!lYw27Zb>sWJ<`)xH70?Ak^Q&8rmMiXE95Agz82AKaiF?=gG?Y}YJpVvAV4_pjymq#6C0=_tz<8{7 z=6#eOPO&3!o}Q9`{M@Ay1uz|xFO-ltvTvxms!536Fm@=JS-V|iW-YvH0I!qdM|$Zz zp97d<@!jDOa-MxrAxT>UDnb^*`+)0R)SfRJ{=E4qSp=?*CP9>9g zmJ`QxycrcH_DC}6zR}Gk(u~49CD|zE{F|FZEgO4(vU}O1>>*5$G#~cTOr{s}Ys`er zJzEkPrCd5QrE;=dn>;_+`-w2KW+&Sd#n2)qChx;{rD=X#v9H%8ekb`dZBFj@eGjHU zdb2kAK`q=otfRG%R^1Z;#x8p3M)lW$8MPNWOG22SJu4z-pv$Cq0Ref3i>gphjnk+~ z*0QJ(;;f3ub^6CEGIAy7D=2#f=$&b@47aHsgC-B`1&Kp$`v?fQ<)W;uU8kCjqG-U$ zr6dlc4z>6$o4)Js27Oe?Pu5<#()YQSiVee~^BW(H=^FH7{_LN1u+6utD7vsz2HZNZ z(0uX^hejEu*Twm{IDK92&^meh)Joq0>DXr?iYb(sq)&Q=b-UD1EJeeM3P~|Fm)Gu9 zBVNQ;*(#`DueH?iR7^i%)O0OKyDKfh|1dvVdSjxw*{5;2IlclpiSp_s_f+}K)4)&y zN?hr!TXwZ}Vlu~tOc1JGQ<1(wo?mR!YG-a6M1z${Q^>*&yKM^?ZL`JE%7D94-bbxq z4c+O*<7xSE6JfzasbQoy0koUK&$ZR@>cu5bwf~yW5TRqMTpFtSkx~A*Z&iK+L#iZg zx|`X;5rX@XrzZHjc-@)Pi@5T^EFHDTM3?25O#KSLrt05noSq-DrS0<(4vjTORo}Qe z6fNgiIkwIA1L^(Z#P!kfYeQjl{OC-38{+#s;v=7@j9;<6>W%ft`TnMeTu&G}GxUw` zOqLU_Mo&UH+htWEn-@|f ?_B%XAM6#`XK6czI5D6%`2Tz6|OBq*va8- zw)5jB6Vza{m4af=;?=er&*k5^O+7PE!i_$kP}VWg4dK@l37GN)JD4`*{X9w6Feq9n z%ADL+ =AoaV<-D>_My-0c&TIl23{$O@uOQB^eGk7FQ;`BAeTJ z>^?0mIoaq2ygQ`OHABw~*S!J2##igyv?LK|%fP(UxVG&@2cM1NHEquZ1B$lwQZt|U z;TK;~WnfRiU+dPTm)H*TT{|1}a>(^iiTcdlI1>QeF$?L11v-wyHGp2uv!jUg+G!Lt zmvwSz#V*t8CrA!!@7XJg!ONPY7siKIx8;b_J5_j?L5nd@?F^<2FQjWVp) bsls#K)YlU{pg@ zt(N|h&>u&~=dRf)sW0gzBR>b5mW58eojPRyg;w2-b*QMFu}jjHvemO J8{#0rHhA`UVW6QJb-r0HWw)YE4;Yi8$|p|UpJVUw6E9me5q?g zVsdVxdrrCdmr4Uiv5$o|y57SQ*7jwTp{(U}1B?A;>9|WXbxHO?i%U@nj|!twh?hNN zZ;a%BI_X#)++XXWFkf8B+&RescBbHUj2bzp#ypyw{D3?y-mmUF!Zm3F);@xPjLyc~ zE$J^``Jw<|hdmLMGUKsFRnB~&Gr`#K+yz}M3F*nUa4#DQuC`}_uAC-7Il#a(A zQahXaLPurFzJu_ OLRK=j#KRYNV>#gQ8Qie;4yD&wwJx+V47)ff21PWNg4p5M3Fz_!LRdfwdhK#mTae}9k$#rGQ_xN5 ze5;}?bTo4xbkyuqkO>oVJxUEC*VLb{ih;)AQe0?W%jxgMa*(Dvj)Pe1HS#)+oej ir%g+H%7vzSv9mn9;{?iQ(3`Io{E$^( z(0MUdXOPR^>E}fMA=+TW4~ R8V(k76bHN(h@FG}z2hV@>GvV6Iiy$Y_a zTR*iCgmM 1?W>r!WpuEWBlhEbY3T*IwZUJN|2sAwfSs!#X zgf0sx9}#9TJyP75y&!P0@n)CjUg-77r#r(T`Lp0{;iZW>`&b?ZE&88i%~+TYa^43` z; 1^|pfp&WcBaTDyqyvjatQnT#tdhoK3fFeB zX0UoI-`@uvXsW$m3W{{z?VRW{e)phe{X=A(ja3Q2M>b4xq7VML@4hs2ps~~6l2y`4 z(_Kvvx{!Tlt3DL}9GLX|g-_y-q2}5EZ5bBRfE68OA!wPz%__;!6c07C+{noV55g_2 zyi{lV49azXR15rsD?XNoIg1IZTUktRRqoOgf)a)t>o0Jj3o5Syt5gG&WhGL;fWd<) zE)9deZ15dNg!BZU?L%&0c^)1~#fWmDUzqLtL;AlJH&7nD??EOP`lENrzza6GRo^jI z$;S>-KQPV5!p~w#Ed6s{lT|Y6Nkk? 9 bK>!lu3$Oh5usk&Q z{N9ue-cY$a)(E 3Mz~j)xdyG&I3rT6&)?v3mJ_7Kfj6ndSB{qhhojR(dVuX zD)`&gqM_!?HUKvr3q(EOJMokk=WAl1W@+a? ElctL@4YHu!AI&@QmxrR1kip**HFKcu1l9C*}21s!%4 z)0~R12C0kS$l=(xXyD#v!QfhG;b#Rdw0QvVkJOT~OPpx#_bof0LBC-d0cb==VMmD! z^g8_M&PXV4r_GQV7y7}(i~dv4<>;eF0H&U8@Qur%pfjwJl+pPIV8Od7pFz(M3SdG^ z%mR2+b3)o}DDP`;{UHBgA<(creG&{v9(x;-$61Xgu)*`S+2Dz-Ha&;g;Ov9WThBt4 zF+tm0KyiEUxd8NZnw#Zege@_M6Adtywmpg<09|;0W~%{Y`Jiw a=<4^uKb3yIGt0|95TXb6Z1d$VxZQ z4n=$Qpw-!03K0=9?Ih9LPtKuYnGb x8b@nQ}sK< 8{?8DX^edW zSNG=-`#dX@T8)qX{Q&Wzg#K{CyiVGfj$2?L6$$kG3c`bd1WWGNo)Twp(726w_}^hZ zefB8}A DcIq*vOU~d(T)4Kqz9Z0zNemA*-@m*aJo
9mCz=!@@{CJ}5=V?ZjV=SHWM&DqAO4T-4p*=_!(civY9f=KPvvp`k~rH$9J)yEP% zE4 |uMS&(bSa FoU zL&e=5X}R%Lmiw2V0%_ipOAA2tBPG1XQeScF?Ta-OS)j;wTHn?vUk#``L{(FQ;rhhq z7+u0*O>$WmA*z{GpiO##T_E5RcR%H}r2h?T=$NJ^RU5yUg_MtEHk{&JJR}fsg`W); zgWYxS1n>@~jI@kVehv^Qq0KkAqy;!TeRw2`6NszN=9S~T-Tr9H-%4j$vD&m7{A_rI zi^*K*Ke7e?4H}k4zYPN0#Dr@bxQCnsvZ-g57J%B2LRnY3a9q0hhV0#LAba;%NlO6| zj6)h80 &wrU2KefilW4*eUM>L5vGCiA=MJY 6|aeWq=Hl98hxFQ)|f~2m$rcs_ ^G;epuF z_PF*0b0wgj ?#GtXJWn89i*Oqn$aO&Zk0dLNh$2kT z7>MxZz?=>(AkfRf-SZ~^%FBO)rol9g*Ofqg%&lm-X`x1}XxR=(rXrdMyqsu7pwHP? z=FJD>HA$(b^na*chfXbpFzuulfUPb7CLU_@#gfyNq(!2de*~C7G3rqlwfg_oIs+Tq zm7I=JfSlNHqEs`5j*nms!Fvp*SN(FV<;;I$={yU_k0^B zj;gA?x>i iags``(vo!=Vy#4XBK}08!|V$kg7)JhjnCX;$!obP zpVuB}V21|0;i26@>S9=Lxs~PRW$%k)0lp5*w?Gg|y;(>RyE<5UGP|us>aJ*5{XkR~ zfj|;Gu{zP_x)kYN{ALtMAP|&zr0i98M?325+#0HO_qrG7K;po4f5*C^?a;GW1?U*b zb>S{#8dTUQ$BuSh;Dih&OD cJ_YfR>25-+6+2q9-5|&eNI8yJO0i^IC}4%}4=j4~95M}E{1C|sk18dV zzlOfF8cIR&nP=J2M 4uX$3+oM9A{?(#g~_(D;{3J+Fc(Dk6+u_m~(jF2uT)fMYBN zwW<$22s^=9D0SCMj5jPjMY{rvWwi0vRd{%M>bipuNtL=wenZC6&Y|!@#KmUtQS4H8 zz30XxI(_Mkf`Z0Nc@?~2^`C^qOQ0{o_AD7|Cm+kPp?mC9boWEY9vedP=BSnfGEh8! zMP?cF< sBloy5i3u( 2kAVY`t~>if4I4Fy@4oss4WN znu VE=ee3C=>T_mtO9eMwS6~0K zLbgXBm|9YIk$3rZB~JLyURT#X65t#XLYLFygjrd2@)3OLCMP&i>fKYo3bvdB4F0;N z6P!bHcv#*PRaR6~bcmTU84JvC;ordwiR(kW61p{kO?!|JP=k2o$tngyRaKR7wmoql zPFLaX^_yg3Ek1Zmi?jxhfxfIJ1E)|s!6_1r;x=<2psoPPtaXbhae65LgoD&w1h15K ze({t<_qT65nPnLzj5p(1QCRQ8J0EP(m*A7CQNKIK2V4vGERadi<17JI-FNq;m%3P5 z>Z&U{dUOj9)S~uGTMFtR7R;Y!$#|;G3Xh|@Tkm4YxLdg`haJ6R2z$4X8(N fJ`GD-HZ2w zOfdL$7W8Fsx}xYHRJLfw30-lu0Ptw8bvyy(5t>SeC6K@oB*1djO5Nqq<1~@r4KqwG zzd7F^0=sr>cfT$}#m>sg;l^^Ojl_rTP!*VBn(of63}eoL !p~tLn hbf__e%Vs+? zIh4r-`D$!u$xw8=MiPJoA-7%yfpj4#GF-#T2$GL>9|IhcI+0Z?4+%%#D0m2cIS6bd zT-#-D0TTVS%LXhN4c%UL7a-TMY<}qDm*=eTT@Qn50h^V?x_p3n0*J%z^J8Im=X~l1 z=E8bC#=gJ1gR`~jbl2mQ*uxv9)UqAgjq1%wa;&1P&JPWx_btL=QEqKcB)ix wfg%2Rp6Mgr;0wVNA)B(1n`nv);J!b&rMcMWu z+0cMoR*c?{0bBifE BT$WTzb13mr4Ig5(WKR0zW0i67kyW{|7* zO0V?}sAo-{4SlpMA2R)8*ii{UacXGZn@7lhF`2afpw0E>Xira%ToW$R zh87)>g zEBsoJ?4S=TT;NEq5f_x>J!5YL yf*bLWOe)Y4zbLuKl; zYYIHjOt3ImoE}R^e#?!LBz|ZT{P`Aj)_yi%t7<@k|8fr+8sfYu#1B0q@B25{5MyIy zzMO?auGnP2x!E6tSm858yVHfCXCGuB;e4EPf&gR`-fL F;5!TDeah#A ze9hcxG0;QEwAV3WH3c%&|D12m3cqTvwc&1OL}q};xW-%DV?#UVb3-}fn9*mf@U<2> z1#ak2YiRFBR=AeLJ;?OF>UQWOx^GIB4ILPwts4VZW7!1Fe?YsNpxFe?e|fLo1kEOB zHbJwwJ^i203O1Q$lW8`YW|L_)nPxM4+Dy6s^BVMK%Dq{q`7a+_Y=Y+h Gx*(y_tS*rr(?C_h$ONnSO7!N&GkW4gNpb zlbs%vhb32iqQKUAL??5@+@@OBa{TB*#ycQQ>PQuLdKKff1#_L|r9O`=ETGDTXk_L? zU-n4dbt#TMcYy}}Xk=QIX3uWs*b=H>u22MfeVNvZTgW6A6->f9t$bIhpU%Bm*rIlg z;pPxVc+N!cQn0) yh@ThI|DA(SOiN%94pOA@vGFfz0S+M8OIFKhv?ug+sB^4gp`? z(`|I-z*}^MPpl65CZz|CV$?hs(WduM?M>u<##sY4w5Pf^BCnu5X+WDwjkdDtUz`*v z)?OY7lhEY sDKd!U>LZx_pt&>6$56X zlO?#MYL0b-Udqt=d!!nTdeOsms*Lq!JkV9GH(Pb0LG5Y+UaASDkO3XGlwcf(v%N zh%Z<#&jz;U^3i&k&mP&$V6NT*e{8`fY%WRW5Uujl^lk82I2$=;-J)4+LV+d?si-wF z3Jh8$)3K~9p=KV&YP=KD^d1N(48o4NOxE)Cp{57s6AiQHt}$ok@+Gh 5PWT%|8dP`mt&p2Nt7jK15G%Km%NbW42(Y#s$002(4)l%{5| SV>q45s!Ma1&5-uPqRaTcYPu5H_8@a#m_1_0@`yur9KHBv+S0R}*747TB)o z8&x$q&`@mX*= OsgdkmDP(SlIs
+th?Ue`<&x^b4piVwwB1x@F)rS3V5M{FcnEDfIbhWyHpFS? zi!Pkc+SIuaPYh G7S(31F@f7sbkj@u^Av70WyC(rMqX&={Q LCU+_{R@2;K`^%OS4;PRF#k69mlZVpj*~*RV=|L-MM4N4OTS`I) zCQ+eF2yDl|%KYcbNe+`;OrANqnMg=V!=$Osnu?O`S~pLzCN;5&H`X?0Wvg!BDkezc z{4S4ZrsKp&dO~LcAAML!$N%O6<>NQXM_k~?dsf@a1J~a5!rUxT6Lns;G$oOm&cT z_VwO$`e++=s#tx7NsSgQR}{ZX#p=#pJxW7_j=YlK$_%}}5N)Nidgqg41%;tYF_F+g zQlHPSS1*J#wdPM=AN>$a$wryfc#^w2FFqW@!Oo2iom=Rh=ni~T@;soXfYEnvtZ2P3 z2@$YV0;_tPp*d6a>0AJ1gA#?T@*a^2r}!tqLM?+o-P_s5ROuMt$>cVv1rER*p?Q5< z&pdGVK+AIpL}yh2Z_Q{;0@D8aY9_g`&<&OMhl@RO4J#v2d38!|(hSA8Fx*CKq=_>c z%^YAdmIE3DhtNq_5VJ`Ql~GWKZIXMqGIQXrPDyCnBu<0*F-$T4gs+!F>}>U*FAY{6 zu2Dlz=h=t+z}NS3S;)5zH7nM+oEpZguSYGZP;TS=J|eAsS0KyWdd4$iuXQHxrA4a3 zIXZ X$d`77gd R)?D5?r9@-LRL)u_$MyhF8$+mf2RdPw~r9}lMz5Ow4 zh(U)jaZc_{6?N=GCcE#o(U~)m?V&mZl+yFdJ73&YVm64pVDt>9Pn4Hf5jw|8{QI#c zimzSFXK^B!Lh39aU0Taxi8hr|z%Rb7@EAS6fO=Y@CYU)#SM#L1S`jWV`0}5Voejy1 z;n9mPUsJMSi)Uf|W2i*hM-*8sh?vKV5AE=g?Ypr?Nnhy3E-w()wO%*PIy09WizN2Q zs`t8?rp|-SK -cJ?&i z${KlSp6NOJ8pWJ*p;E|dg)a81SqbU7070P{+?_VefXd>!Qoy4f6*%Vo7IKkbSV6(d z8&g-9jCUok-b|LH-3ZOABRZ;#3!*;PRL?TM^?YBND*lFC_6lB)Q{ydo_v%XT!U`(Z zI*j^mgP#gNmB+G?6rgy>>NIQA4nTllFTP`d3SZ{pmwXw;_S)f@U)<9oeo6SnG<3J7 zNi#wYj(+=r=Sh*A*XTA@HqOsNhwa9=)~47v`PBnhN|%RQYL26!TLG-y&hARglI>#? zt5a-=mY~h^G+(QWkmMKlTOLWz9Th-ZEF0(h?T77#0t-%pH@rf37w~cNOY$S$dPI8_ zNVBlAeYVztgWs%zTNOg4>-83KZ_lx^!UOL>EUfeFU}S@+sz~s;<3;H1p5E;FOKhA6 z!ELJEhmEy!{q`!nyc;~5&?`Q7soE5bN<_TikbvaN>l>rGNABPNGnGt7cR$1T7_o82 z%Umo^^y%_5Lc?`gN>$P^37q`$hHpI%jlGzOhi(P`Ju<8wMv#R?@*jg$JUb6_FaWb# zvVQ9^Gt;(un3XN@{96x)!TQCC-(QvN^#IMQ*Z5XnI><{xWjuVHiJbiBE8*qF?RCh> zEx _*zS{tyO!*4#(K-66tqy2GHoN!&_i)aI2s Py+Xe0%bD)^hR{;+*K*|bO>4xQrLFf|s;&tl!gCJwA=EkHw1 z&@tTy&@I^=hwYM9=YlnVf3;cFjvXD?yG7SSgqstZsnf#%!|YIeIP G zTR{MP<6wW?)ZbsdoLs~Tubp9$DCc2kL;DS6_5j21h&20MwOu_I0;b8f!1bhP?M0D3 z8m__W?5^Q*E%$e0{bBnNElULfe(38KVCrxsFh5~tyVYK>re5ryyNKe^d@}Hh5#U={ zUG4O9zrXsr#hN99xPs>Ey$77Add~D3Fw8xk%hmrEd*2< Ti{AovL??o-b@{7^vi3Zn793DKC~xyOT`c_qDyE zwC`1jy&)-yX@xhEe2%=|B~k0D=}P#>RCp`Lz!&}?R?o2~+NUdq8!3PNDJtBKq-_7r z%}{=A?(u-W)i?VYBHptZ`xFrc;0^2P5mlxs?FsO$GAlY*z4B{&MQJ}QQ??5V?)wo^ zzenCLSL8AawAmX1yj7}xV-ASbFJj5A7iEiMKp%bODJnt_Qg!Qd-0u2f-l*y9CoIMv zZopQl8A!7q$|5rLWtH%yy`r@D_P1Szs4s-n qV8SC=S~ zI0*q9(p5y#h4J7(sC>nNI6?H@hp2$V^tMrLHMh9@ C$uI-L~=lD1%mETG|JTkUDg4*?B6^^T8U<{x7MGWJT&WY;EXqjS9EL9 zwa&cd@4#)sZ-T`(`P;{dOCAH$l>9T{0> &*y*-6&eeMN-WuU)Ta7Y&1di5 z2LFcY!;q_>sl+13H2cKlH_txR0w6xYsU6_Sh+&`Fm5HPF +KjSegme8ZYE87kR`{CT57c9g3e)4%Hi*d_m#@fQ~ zri0yp2p=bgT?u;`dp5ckued6TA&}<|s~im9OoSwR@tr}i?M;{+GY}W$oG*zu*?7Ga za)q>=YSx5~2#nuMILWbRsPC{UtE>YT NZRk!~=N`rm1fC#V #Br>)0blbQD-#5p^T~VEJ3r zF$4R$eCR&nj-coB&JMgTNleq2mkLh7jV-p|cFB$TRXddG>q3waNc<9r(`83748nvz z5N1TK+Ubk$8TIpfvL-4;!5MG2+YM)Y1v%p%f7jRrXN(gY^=7}5RhZbHPyxOO95>x$ z8*tnq;J8dNJK(sbz;R>GMma9C#10n+yD@RN47<62>}F9o9XRe^hEkt2A?jJ$Xn@Zr z?%O-&BZJG8zla7--zTr`JH;?!)R(@t8944-YzTx?Y7kD Tirq(C@@rdR8L7D6fpKA(*>xB?EHfRJ8GD8 l IT)TYqH3x> zJwvtaF30t};+3E&_f?w#`4%IZa`FQo;Ogu|ObHSY>{txToHhO#D?S;Pk#@vX!!j3P znXzZ+GLt#$s*6{_GB>J!0rH{CT!^uUWe!99*ERu8{2Q&vpDf3iM=K>>^M|yYAoi$Y zfDy%kXR-U20Uuk8@+_kQa}0vW{0sIgLDHrn%4vJ)c2G|B%A;|_Jw)-}jRlPt4Qegg z-B&O}3HZnE(=*hdMW==cT99QP+N%Qj&}Ae_^^j#uebI1a=`>j8S?mfi>^WHGoThIl zEVC7s8GD8 ($m;R;O>cpU2_v^ Z+G= zuSrew;t2@ctfA~WK?FnatNuh4;(%81fof6?RXG4B=%*^{bxOtMi9U3VR8|>Dk-Bs( zsI_F##{zZFL0Eunlbk*vyb;CrDmNS8Md*&Cs4FPQ R z4Lzq@_VXMwJD;EM`JMdXoF%j6x>4<3MbZ$p#y z@*EWs7LsdjP6nvyHDc@vu6(El`aAswuGY@eo_9dStAaI{y<_1bkl>vVhbv1pp9FSI z0o_bc@;nP)P+o~je%Oas9(S@E #~tJmI~(OxVVPL4~~>%HBb9bPuFyG1u+V_&+Fzq(#y|H$(# zc{xjX+$$! ?{dvOXueqfPZFDcpof6G;wP z?(KbSx1#(sX78_W71&(WyCc0@j&PK_YP^Q3iw_b!>km}+^$@n_3ExXkGRhPP-+sKQ zZs*fLV3IrMMKF#MJB3FZZb}y^WOn1ckM)&MS~F>7GZyKz$_o3R2N(IU+I)CM)S{6b zLTZ<`D{W)bj8ywt_qUb@NX>bUaon& >Uz2o#kS2kdwu)nt9d1~0&xjNlWmF@yXN8zh9%Sx`azpQCg9 bk>-F`^O0^OK55CO)F2nErRpv1>)V!iKs{4+6uucWz8j6n2!) z2|s1_fG*+N#qXL!?G$}bh|*s!7AZ?vUL(5H;_nlLc~ekyP>Ywvq`XhykY42 ajqK1+CY6(U|yD-)RHC(bwUvi@7)BJGw zx1*_do`^h+%(E!4$WRNtOZPZ+qpLi|t3;*3kl8voas|HB5tFFXc$2hQ@TRA`$x&}@ z2eUK$tu=h9$M0z!FTh?#k7Ok1-pzD4ZV#(u899>M+BqyPj6eyDS(df?u&E@t9i5X^ zLlHMl8=Szfpct@gPHTYKUs-$J1YYh0W_L3TUyMMk;2SDOH628leFmz |8OA0lZ{c| zneo^BGAT?`yN1fN75a$1mfs7w<{wTx7CgkU-~ryzTN(o%ogdh@F=q{>%q7lx%sc?w zU^)anH2S+EiXE60M>7sy!vBbnH}?Vy%m{c%D4w(z!khbhjDs+K?;yN+r=2a7lH0N9 zF#Xdrl;PhI3Wd&qNy1xoXcDLW*_pwEzlp?I-(>xlVy-8% (`ewnNDfJjLSrl8mG(V|1-H8uUa3{#ut;3;9;o|I&(K$DrJfLJp|5mmFqHQF zo)M6k*06f}cLf*!c})Dbe8w+v&EE;T;K<{rTK$MUhaCB=_co!xzH`B=8iBY6aLi9( z7I@dA0QDaL0&-B-PAs`*1Xw?2g=Ol&i-327ME!lh0AA^F?domc9gxB+-4UEn#YUrC zjJ1t`SL#;DMkV|=1i(0A4B4G$@NUl*WDkObFNXMd>=`QI&$J5%lTisjZolF3wC{>D z08B|Q+yyC}?+Vr7m9BK2Sc%O=Picv56!J QDV31A3tQkEeJI&qG{s|)bJFzLe zk`?pdW&BEni=%y6%3v4xlYc<-e%}P|0Kl`L=$G#ZIlgRk$8s^>619KH)bYhfQ<*b? z#4Gog0pR8WB<`1aM8S&h1+Qf6*(hSwZ;~v!1BewCuf;1g`~F}Ij-2H*d&zg<8GvZG zhTeeWEfOxvJcMi{{!_Zq50I6yh!l_&h6Dz11w6!szN1(p8W-kr=lfnkUuj--;ok2L zQ{k1W9LpE~6Dat1kRC9a<>!;<`fWyx=H#9ffDR VmOuT(@%p6$06d8J)qG$X_hm~|LM@Wx%6 zao6T6aM-wO^VK}YxNGxG@!0=%*Jf6!t-q|IMOJ%4Mp2DTfvdS94rV+;$@oUif@Q&n zP7PYG+vv`pI!Q);s1` PidEe$o9DP+TC(143T(!!@&j1@sY>CNBB^Z>JB~v zpbZa?l|iQKi_b>=hDeQ!q4$@I=U?5fSzOhdv*>K-W=Yd2{yCNgh0a6W4Nn!^YkEXy z<%BV>%+5TmZx4{y>Wz6=5ngI(X^C_GVeS;hP_BC2NH{msN~IwkaX+N0ciUidCnGV6 zid`ds wufo3y10O;D6pN*pSwu!BnJ?0hcM~@%( zJnXDi6s@}>_l!AZkvB!MVW_;k+>=A*X5fM@*}&A&%yKqN2kwL+wzzQHu=_v~A`j=8 z_wiR+SzA$z-eWy(PJ|Sf`F{8a+gx_aV2u~2yakZ5{3?z>FvH!4z1w7>C3!`M;12|C zLf*6RKz8~-y-JaJm2*X~eoRg8IjVZ*hj?0vBZJf~#Z{C}J>=BYmc|i$Y__uOJAFe} zd9%m6JO{0lqCRoo*>B&MFMU*vyuF+DJ;5}{HSB^IQ3m3Y3y^sHmr3TywsZ}#$RG1y zu4i+JhNdQN!DbIzm}yHqdbH8};Vl`3js4E9=FA@lHX5+i5uYZO3GAkH83_|^)*e7m zVF4fpypuAF(-^ C)eJVudrOF6Gj?a&)ta~1XhKEa7BoB2mgi?R ze2Fd=*^>t&Uqvt=nADa|Zh;BZ1PjqfMWW8|D{OcL=mn_Aal`+e#RhCK3M2f`rXRd>!`7Xfnc5j4frg)`b zV7c9_jUWY3IdIbjhOqkTMn3!PQ!M~q4WuME#TBw 52%J~FfR6z4P`JQR!?4r z@?M|PuW#h}@veWsc{v9dEL*JW(Os`@YCKT!!rRr{^6}%xC(Di&XD&JGWIeGxX409b zaUi#+cteQ>*zIe>c{vSE8)Q1q20he#=-e6|tk(m>Xhj>(cAr^mi<93x#D?+1OpnF| z>?e-J;ktPz6e#8u`Y`cWZReZ$sD!h2?Sy&&M8eglg3J3GAf3M%R$D;j1e|d5Z*& @v_j%fet7wbC^>-@;|~3J49x#3>HW_Oe>~$5zlN`xc#5E_cmhz@C3pz)W6bcUCR| zW& @&i^Ryrk z-jMtB%p}oXW8-3I7g>4Mi7eT`J}*ah=Fjkj?URptuU6j2d3-b;1~kKade}%d(B+<0 z!yj|t?v@F_$O*BriVJa?GHSIXP8LVI@ygm4#6Z!NExTjR$q6ka8|t1O?$*~2kWW+F zL_}c4Z#(5Loous&uUc0ByR5uGMMV)SKGk3Dg@_YuVrm+J6VeXC%;g!2&Tf)yPzKgE z3Z!7(-0Fsr!j!bwSnkyv9LySDAmiWI!WcmY4Rbs@lqZ^N$;-$Z37_5F;!jRUXxA)< z> 8Zd4l%$c!prud_`cKmO%s zC|YxxMcjy4C&N7}N54kCzRUA^oGgNq5+$9 zIC}QvMVU#lv7D@twm6Etc6%WIWuT7x@#9TKdCbin*?tqO6!g43){#%dz$kPtn4MhV zFUMGNwmS$mZePu8D0C$EIfL>NrOG{P_M0$??A<%{zg#O%4%tB8r4))NO1i?q3!o@3 zL)v%_Wg-Ivsut>ayBKR}OQ4PxRJ59KiZ>)dGob3Y*2l_LAF6&w)3|2*BUZfA_Mj+@ zx;*=1xIYOzm!5TUHm}gUN;y}tzT!|{&nwGN8O+p)XG|5eP92jU8g7dKimIQN3)d08 z!Uvwae4?}cttAbHvZo;LyfYMa tSX+3L` zVSIL5XKe;o2;T{$P!G<%y1n>Ga|p4^mL!QNMtf4OGgz^`h%*+P!TlLb><%bgzkkyB z2F5Q5WF@JX-37Ap#b>DZ6RnkPVR99wgv 168JA!E>0vKZub^RwzhhzY|{bj(yH zw&Pwq$Y _WH1EBlYwlEFMoh`8rw zNk=d?!H$y<6I;CC>UO5WW)G#aPUwXHf5@Lm>uh)JqO(NMSx-CJPGE0$gLS cK zi>9G49m!Owi_Q-Kfl_7x+G@+&6utyfZED~vxIbOQ!a}h*)a8-fm+C=bo;egnb)DXl zA_1lGAQ*#PJG`MZFJrWxh$T_`&P{sd1U&f2uc` fjoJ d7+ zmtgFC+ 7JY}%(n-=&*Bm)U&d=LhN@)l7omV^Hyi z!JC@iEv#0i(7(a2FWi{ToY$7@z{n8R>@I#-#OG-GlP2BObE|VUk?|f%CRlpp+uZf~ z=;3ip6#lmDpb Hb(M%oh)-yz%!kSHmmWdi zq7Zza+l$Vc`pbpOZ65kbvOyb8On1hGFi4a})iED1rzbpw`TYG0Km>pW5sDS@?ISrb z*8hiLsjZEoDloQ` Qnu5L`$9?k;3S@4hRJ?CRRRtX971o$s}y# zVl};s^hXwVMragHi`S}B{G=&-56(r$dpNXs3ePdaYF#?-?$ft(6z6tiaVneZlewj` z%>H(h@`WB7I(Yv` T45TP7kdSTXQ*#!|81VJQfRKiqhKFBB zji98-#bwr+{G@=H@8}Ko54r#;(>8k?kv!7$ 5{;wJHan;V~oVC#FR$Y z4TYVVBrDuwZ0sn#=#IkXTm3^l5D0j8m|nknM$b~<4EEI#oJp%Kl8u(qZXlAQZj;ls z{{XjXmu=h?k`L;Y!EGYvjE!}@SvD~~g9;pvyvKRT-oajo`kG;MXG0HvhO%J|?@o(O zi;*ncTrupySoACd*}^o|4k@fST?(}3uisn;i^WU0-k_=-Lb6EK4F(@4NOo*STmf@y zD`-TKtK11u#e%;QRg9Icej(o?_u9nZzXgcu2Su7vNUhs96ls1b^Yf{y@mp%lz67fM zof6nDVY;6(6W>ynHJ%ChYR%_(CSbhC;ct|Gf`pG3IefXc9F*vIk;7jta_AN%yK~;U z)miz}Q#g7pJLug8Yfk }dwKh>b8~k* zwySH=B1N=BQIy_k6?1&_I6<6|<5a6o1K(^VB|;%mqx)jcHR@RZOO@?JFrGg!eC-rQ z`(N%IkCRZ!*{)=ijlCujnQ7xZ-ESk-CiwowdmE7wGYO@&h}p+Li5UhhQ&v|Z6a-=b zH^Yh_BVv#yiR*KA6qrcko2;hde~0f&<1aQgufQG`f2U?}eCv9oARz*C4Ea?#u(k8i z%H=YNW5fZeH_&V{4V$zcE%A<(Ms^a}7Ik0rlbAGqw(pvj!h_ ZWGS*l*`hL}k7qUJHvG4w zIF!LmM4KNx#j4E6;*cnZ781e)v;ij*Z$>x6tilm7( ~@dV$sC1DGVtbuGuD#e23X z0d^^|A1%q5b@&7j7`q4x5f-6MB8Tww*@_q_=9XKmMA(9M(>xj7i=GY3Xx1alF|ie{ z_43;zFW_0x4===^#oUrFO`MTq{s#&0^bq77ufTEVjW#>kRN0EXd^GLl40H)c)}5`9 z0mu?E50TcH!(uPd!$G_ Xa`FC5O8O1(yH(#OD}VxS+# z Z+^J=Uy!n4Ns0bqMEOR*EEu7;+WPm*$s*dz7^y3Q8CUd9wJx|jDs_XYb= zrrkTK=!p0wglR8%*dn_643GfnB>EExj>RGGm_39|aviP0L78pJ0zVyeiQfB#JH^|O zCEBjFA$&jE7d;#-9L|_Zg~P!iy?By9@iBQq_2Z3*^_Yt&+b;_Ujgq{Mu>Fl`Wk^l3 z_ZVf*0%gY} Gz6fe4y*uW6sT9obc?`T?0dw{TgEH)Ocx0(C{Y9Zu6 zSC2`G65+C}FVsCsPP_I=@uGW~6|t@}W|V0+I>{{AvlU_5=ljr#Q1N4NTK`M}u+Q+O zf3nXgvmL9H{2+y@drf=8#e4LTCH(gzt$4u3=;1&s-Y1oMj5s_EsqFLhwfiJbsD9+f zi|rU?`;#^D+aj+ZY=7ke+DJ5Gl(LI~vSX6sYe&@+8v(Z8jHiz&-ch#qDeaF~iSlf7 zrq*TrEQDug?LoV%Onp%+couZ^n52NN_Qs@uuD$?!8B@IIUWV@3;EYkGE%kGr>$ezT z+Qs24q~+{?xr-9G8j~f+3N0yT6){_1`Lt7nBpGUElcPDQBUIQ0%}R`xVl&?JK#pb? z?rmpBOQ^D%1>ts$dkQX%nCHzPw&VxtIf Np|alP z>x0TjGTb?q w8f~B!= bpX&NFf)>GA8EU&S2K@Ej`5taj#{5o}rDL+MnkTTAIC>QS1yDZ@Jm1ao_R_jnhh zjb2Gi_cg5vmCidUy<7ZS7O2G4<_2@x0(ASG+Kn9C6uBP?MkXn4EOQg)`UobeiE +r1ZjqgDyV+&pmHuMfG}(VR_u-@-p2Sjf#x&p0C#or zWK?IJE{SeZo#Amz>;Y}C`l#;H5igu)yu>XACnKSKgh@WZ&PsC(T9EG0mnfuiGBi^~ zBF=esR>S!%L0kMCHVD@GRIt))eOv|_(#|ur`s{Kj h>iaF4%$yLc= zMhI4S_B%%~i=|27k2A}lVSbSWs95Q$EdRx@y({3$pqU32*uFtt1*AiM1l{_=7#dM* z!H}{zmR#sJltg!YYtDmJe$G-?7?`uS5oKY <^pK@TC_ zEPpXh*b`0*l9c ^psn&zS9R#43^d9bjzG_c#{$$!;L_-xsJ{tPB8(exFydVqf(^h+V!fN{K$D z4a2a$!=?CKn|*tTvg^6qOtJ5UJU&w#e NZ>Kdn1#FH8L;`<8LAz9^P1z8F7v-!*Vz-g529G;+!$+<_hM6jgsU8 zFk!pu-@r(JU?@KvYk#!Fsdy+Fm;Sp%r1g=3)KFiE$j-s-16zEvlca|f?-d9q>H->e z8GM;JJyeh7&{J%Vr>pT6^z$Lh{JXE6`SaBGw_z%mn^;wPhvS>R8A^{XK*%#2{W4_> zgl&VG;{C`loelnY*4QweMc@W~JWhlXhjn6AA=^8ZzT!1N $#SO6QIdyv$Vi@E6gLNFAawD5*b%F4jq9a^HX)G#%82*=yg0ME*~7 zF~;2rq;a?n+~R);T#UOF{{&f#yA>#2I0jaXyA^2M_$iYz?pFLchw@+VR=k|?q$?<5 zByA3*x|1pB3Ny_j30q~!7L?X#DyiTMl`>*%-+ND%Htg?Cr!5Gt4G{4aX$rw9ZdJkj zp*W6xdwX9w*Br|BD(Xr&!uM7#{*=z*ky=NQW~Xpqz(HtA(d1WKr7p=SrVWtam1hjA zXQs0Io)vd=@uG1baY9e`RNi?eselyFA h|^p#^U&Oq2<*A ze;L N8M0R)gtKpo!!dJ}N$H_hw{xXi<6=kLg{NyFF z#cUey{j0}Em8)BD-oFdl3vdZpz1=-s^~M<^#adoTyys*_&rxmncyfzRo`!|s!)_C% z;AKuI(=#{W)x{`fmTR6y^@4=TDvN<%Cz-OH3TFu_*py#{EkO*yI~I#i$>2UM (MxKIT?jcP$Xx~BZ+insYvgr6vj@`G@Ak$2=4)qg z+HDHVbAoiv!wM?QGx-fZO;0%rPV_QV(eEm}aU%6VeLBIB(r&8LUR6vQX*k;FPNjRc zFIS1{^Q6QM*hdpOP23WGa?^8(uTACsR@kx-S0$?H+HJxZWJC!PJJM1}^&c({{suIS zQ%`#!$o5z4aL5?x?aI|R>YtO!sHM@%Ee4+E2;41_V|)s-WVxJ5=byE`eo5xF9nE7A z6P~0nJD21wcYI=NDq5*; A(5KkQtM{ik$%A@ _gIa`IBtr%5}&F&J_LW*n>Q7{^WjsiNb%a8sm0>_5fz`5Wb7 zd+yVdAyxT(wH)Iv$DgY>#$66H()d(jI_`4(uXH&|gQb-|)dC=s@cwOy>A3sxALM>S zO3bGd9MX;>QzvLf^}ounJzK*3BeFTeH%hRYZ128hK5WY}*V-KSnv;2!6Q3TyOg?RV z6Q+?O*vq^85WrqSpx$lp#Q *7(ZLcZ?G0rsEc9e0e-QiY93_4XP{a|dYxHG zYrhSZmQmERBPRyyvzgdwP3&|p?%_;=UwA5Ed%SgFF80lb%EyIW+wzR)oD6T%jLsZx zB3V>sYR4FQ+GwA2^qq`>$p``GajdUAjvJr(zWZ%qYFE{IEn#{_MHji6n86F~I!-za z{f41XMrD)nwACLfixgph^JV`^j&Ju5cCgC~0#WokZBP;Rm3*`Q*Wj*cs!;H2mVS32 z8xn>{3VIRJ$@mRPNL7sL)BOiAmnb`t(*0bc+cN;?m<|g`=rWT4^Ej{-vY!_mbJwC* zjU>5Nu_IfQ@rS2D;r?RAtYWwnDG92lj#JKrL(S{9nJ7gs4~-}e{4^&C<02TSNbIP~ z;+>ZHiWxD&rT4?D2yd9-(Z$XpaoP4%-58pN zcUh&ja?q>d%$}=`{L2mQgI%?}+f>>d7jrJO?gqSW>9b@GvWTKuXwZLgJ0!K{RKam& zqi}xuus69MMj_z5M&e$Fv&~2+*j#;BD8n#p<3NC-utAa0;$5Ro87^=yZs}{``cTY? zo%_s)oOYg21Z~YPt6}1aOK%4|W4JjKchcFpPZ1_;Fhs~$iCcy-86ynEaM5laLv#^o zfUWE9JM(Im>7kzA6WSTpAE_K3qdlFpJm?jnZs>)kFuzI-p{(krnI2oA?n@O)Tzj#A zh gRTLcKofx&a@WmmKXw2^Yw}3eO5yIjbTD>VrKztDe2X*UIibv zNT4sMQ%sDH_ZEW8Ud~9+t~4WfmNG>z8gl%Z9j|{Wx~f?>WTT>@La8*%h~e;pUCp`s zs5JAyk+4bW3B2 &AHJ$E=N?hz%jEY$kfE7PH**=u=ZJ8AJKhcVwPJvgQ2G= ztVOzCmR-OG?(oe{Ly&C?q}J}6kZo(J`)x;6F;gQL&hMXJWIIyLYt4A><`oJbdE}w~ za4UdU;Xw+6BPyOSNyfYEwn_1746R(~Jv8$UgJY@Xy~~Krjd)|ms{jVIrV5_6va^n^ zxm{Ds6*QEyx*zH#5~=2;W*MFup|x72Iz+LLuayV*4s5Q7cWjL(w^ibf<42zGd`ZNU zK3R~-;xNyfz`imOYW D7hMnG|g|BHf(}Qi0x3b zz98!-xZ?5A5AgAb#komP(zyW2F75l*&^E(eY@?-`=R8|lDAy3#2s5Na(grV;vt$cT zBvZWHZUkp_91l)_d!l2?SuuvogIcl>J<`;`E;hrYyTchI7p*RzBBDF884biIb#CcJ z#1qL??sv?cH-^>Knek$Blt0REaH_xGz%DYw%%@+hqtWSueC@6$jdwx1Wa;IMG}>SU zoO{cZ0z8ab2_ki+wYY;et2L{}g%&beJJ_DNDi$Yu-bU$D9?}LSsI)U+$vE8{D^*OG zHC6WwS5Tn }UKC9mY_+0{ylrLUN?mI!fO+geloa_;Ru9s$1C K!Ov1fd!rXaVUr?3d&T$6iBTJ T6f4k+^pW2-h_buE^kq zpFy}ZK%%NMcU=YH!ox>Di}U&*T-Bozwd~gIz{eODA7W?WoXTeptL*5`2a2?kF{Qw) zh&U)03kAt@d_hz`ye-gyul6e^S9LsWA%(ZPjGQlLiE3PHWxL?)3Ea+V?iL?5yT*)^ zW2cePbd+D`NGsP%Y)_}aRkA`wZP2HgEk2E!w+nbCbB&?ZC;uU2Cd3y)N618InEX;d5Sm@OD(c;y z=)sVP1nta-Y)?<6mkTr7(>XrzXA&7BZD&Au7x+oz6+;S780oQ{J7BDhJ}{zUMnZ 3MCA32k?a{A zT6$!WSN%s<(;qE82tHuV57zX`?Ni10lxX^t(E5h?#RQ_Fb5HYI*_lr;rC^W~y-Pyt zT-a%HgK!oLeAtvDY_8@)*rh*mI9FjS-H+mdry1Rcn9ks>aVmjAZ_8P>#7+*pC>z&4 z! e>u?nc0_kD%QJD)mqQO?LB- zibOQBc|q}vGUXqT#v{JdNJ2X~o;Iit#4CeQTy>;oF$czQa}4-+Q{dhYVrM(-$7qUZ z_OKM5N{jMgGe3Y=>!{Ty5A4 IPK6vi*+Nr`J%}d?(Ln9f=gDqJWnH>x1BJdOvADE*l|}qjuDMPb&0FZFS_xn z$UlI_bF)kuu4z=}MO6E|%CD$%PZ8bF4R({gqx06{)Gtw#fn{@OibLIJYVA!e>#~ME zUKGABPt7PVXT|AxJP{QU2U8r=xD7%DlA5i)k)4~RPsagL;jG}nRG$x(AEugiw&9vS zzUsPdUcKSTQTu@#-0(-3nf>86AkZ@fhPz&Uvjk4#Q8Y-wUzZ5-$ ng_feo8m{4w2O$SW~{!xJ^Kh=~H$+G6CGKw %`38EXl}0XMF%Q`rS=;f5A+T@#sr_Wa1^sX)lqqZ`+K8uHP@UGS3B6iGi8d} zR5UF4^*tI@Kic>&R}oMZb&@>W%Sa{`Cx<>Z6Sy5A@|4 LZz%%R%?N2mdOUq#O=SEKShBULcZj{TEMBS @*u0imcApy&2eT#m6$+p@Y*;KBUq5Zp@2~0 z3=+o`!O$LWPWQ@fR9eg(A(wnW+?F~u;$5-`Tq-!G5?z^r^V=eK8;ZIf@%tm1`-bai zG#aj|rbgb@61;%{VDWAL0by6QT`ZzFIC`#arB?A&s?Wz)M&w?Kxuqrhf {BG<-`LYJzwK;DsI9%8<`OZJVCW1)8~M^*E2-- zB$TuEWh7LCb>M**cS~&vBFoFr2X*)r z+JpV(H>3Q;I>Iz4W^PEE-8~P&)B4>#J79q<1e|D%UWYhN(!c?89GaA&BE;z~HfdmU zG+!Qm4`v?GEuP$nKy1~y$uG;LZ}h@YHMu8FX#1i|gL %;0RxPigH<#;!RZ!vM3WPji2*V( kr5Kkl37iMZ5BO}g6;7TQeV$e(EZp8YN@Je|G&2x~`xdpWP@gg6-0bfV; zi&qWjg}R)_GpHU9{~^p0p~3f+a{XsDm949?Mf$M*G^^rY4r=(UTIbulsy}aBSSJk- zArS8yTKGTfjQQ06^$iXDpOuDus`~kc=I+mHq(9ZUd_!yZcp?xf9{tqRJ)Q_0PXvB- z*35V!@PB0@a6I|yXeO=hJ|y&-~l$ zZ=WVJUWbH|bi5AfOGEDd8 TvwHJ~PepcY-;g zw(?Ff&Vgpm&(0ADNNVkj{>m5pn8X@duWX<^n;%sh9Ixl{{saG9o*~WDB0VarYl*CD zV%kVjS6ZH75$@>G 3~3Y<#A0Ww4`n&)chA`&cJ y$2xA=+nC5mr6v{=*zPbQ-qOR7*>WzTs+LQnlyk^DrVTeS(Y?=-WW?lM zj(Dp;{vaZ|X|LfQB5;)LvqD89B%W^Z@aryy<;WRfV}!eVhT~91YG%vJu0-z_v-}kw z4)nVX{ThKY7yU$SVArM8b>UndRC`xzD?aI!uym@*3gq+ex*dCPvbiPoQ0WA~VX`Yq zZvpHAgU0R&WZzxzH%0Of(yO4uzdzRlnrUvD0aiB9-q#JV&I7>8-ppxy3|N^h3SFg? zI=^oS{;58_q?lK|d$49 G!LmkE>uL9;7smwLfFb zm)-80Jst3@Wn|BVkeoUPz_~QfRtFMoyH_g_f`^(sUEnGX6Ev}=+A+oBkv)u-v|hm2 zuL>EuCIpjH<)Ejb1QQIJ$A$_d(TXz4VUnjOR9}q^%DF~$t)syp%a@~dSf1)-J3r0& zyrK?NpD%iAj6h{yqYIqsV3`MuskwOoPPM0??<1UQ{Ae1ta$fi0>OBA$YIr|11KhI! z$<`3+9zuhfFN}_~D;%50a*P<}PK6nXy&xB3BbJm1?U_Uv5qM1*C48?%Y|y6(igPU? z%dk!u6^8(hU!x1`r6aEAFzn?qaM=6cmbX%J2M&yK*rT=ePw97I5QY8FUK(JYHxaI& zXYP|l@YXM$*vs;h5S;m;s@RaD}~R4D?Ta<;1R0$L9M$ zSzliQOy0zYqlC{VJv3ZAhQ1y4Mp$$xFkvx> `P*Rz&a~9 z(Hk$qOh|N)R}aFXjkxqnpjHkX_zGRVETE`YBCS1Pq1^(QgUC9sZVY!2*rg#{QJ_5l zv&TTjzHnk+5(Bh-r*60Fbl`>)$nlRWu5rbMNf}pM|F=T_ih%wnD6SM;@xhdGHLufD zo#B3tPq&niVF?!mVf>gde9-_d4g8lw1pi3joVQbO6YrYG?AJFR7rH^yP)cpx z12X6vH!;x}mw!{+dyRT|$V6ub+%f~d8!VXWMFzDFgK^)Wg~0WWD`0q*@VqZM475gz z+zwvlR=C^}98H)NnPo=>gSuRaQ1U *pnC|y$vUu3^&UjG zPVG$D3h&z|_0lAH6MXoKGqXSMh%%th$AXgn+Y^;OrE~uJFxb!AmOnLd|MkhkpXbQN z#-)AH`~33U;m=c3pN2nv!%W)G$GnWqW&ehWwBs1UIEL`mLHYj;FoeTm<6|e$z~|F^ z{Lhl>_1`|s`g6tcH-_W?7p5=-l&TD_bwT@x-VmFu*YbLbso18ia=%`_xINB8Y+cXk z-~&Oi4_&8+Ue3*~vQk>q{-Y;Lr?X^vkdD1+sGdQ!oLY-}wwVEO!p_1=JLk`QFENXD zf7kw4&mDXGHep|5PK9c Y#SxJRj6w*&RAE!-P`bmep?M1qO7g`w;7 zW6PJ~l``-L=<_l8b+&DRGk?I$d}yx@-;+G68 {HX&WrT3nH^s>g^-!r_Fk9Qj3> v zQ+66L; yyA>}3>T5R3N#f3mbk}^7EajXN3F8B)O6mgm?Ha;WI_SIByeSI zCpVxuVB@hzEe&OFH_1{p+;y8?HeZa$^7N_LZ5T>=XB=U{>+Npp)3+SBSVmLS^EuMB z#L`SL%yUlVwla!Wz{JN~OV`K$tlRYF?N;MM9Aa2|qQ^5*kW=zpOCmCN9OTqL^VTe90C*AE}Ymr5tgoo#U2>YiX61POZ}op}b#I z+ctsJtkG#<&TLs}WF79&*jd VV k*$$cZDXnLt@;?@l z3ThUGrqgI^Qk(p0+cN@4&uZ>!`cSI}GK10^g#`mmm%03=7BbhUdQQR%^Q&QiJ7r^! z1m2%&_W{5bIgd;zb?Uh^> 7K zwwRAS7FQ#byThdK2$wMV4^zW=FG?cZTWN8e>cO^ijcS7I5rsJnw}zKDWH}6ua Nt()()^dlu+r`#~9vo#;M^gLlIfiz)CtlUXnI{@5 zcPCc)RJ>QwRCH?^Aj&d^uMFqZ4LqjRwq)9o8&dVsTN)HeJvYzE);zN6KfSM|E7Qly z{pH~|HGTJT()Zy6HyrZf!nG**qy)BeUz(M=Jmqa!oF#9#LRH?UhZe<~WBFs{DP-kL z;cy?p;YoB2sdQ1htlI11Fqe|frhv6Z?S?}+#qo9hH 9vXI5X7bX@2seu?HjLCNE~rf& z*mfqTj?&0#b2hq@!3!{tI@7$%v-{SPkQlZTk!xxdR;tqzqVA$y=klWd13S~rrKG}9 z$WIcB #&E^g2vFkm?eU>X|LvBJ`W|+2e6yksreD^Y@5N zz)$quyrAfW_-}|B{mo+)qDGGbS!Bn_GESCpZux&AMD(BUF+SA-jO&?k^*gS9$F0)1 zu^#tf#$CJrKRsR+K8tQ&O%DpWKM$ELQskc5s9;IC7iH $JmW@JFinTn~o zYuU&WK}~htApI!auIf}}TU* P&ZNNPx8lV&f86Yb~5N$S>5@)N~($fg`o{)pgoJ$4vtZAg(FZ zClFxBj3WYH_#qQmpu08XW6}-Ci{FBa*`nyv#IP5k#NhV=6PTcT1Zp6zu(pd!E}f2s zBnuwIozH2A*}YPIMKu31-CoqXM8Ri+ywGc9QzuE(b;G`z-2F4TYfJR?V3@2?483x~ zs`u~T6GHBL8m(;dv9D&_)hKY zTBAO(yial6I{mq$iMa^Yiol&rCeb@SHgTKOXb{+nC=GV?AM6K-BcgA5i3F z$@@r%n}@ofR>$4ZS^}b9dAPx30O|H0frdRns2NfPl4Oh`c@#AKE)_Ky6HcBy+2abw z|MSYGyXF~g3XeG|)Is|V@-l%c(H$$IulSP!KBjl=gNZO!3q2zHpm{O+%+vZM(bp%r zb+TMbJ;I!eb-6ZueSPZoA r{-Ys%jSFdhc1J12g^oB^9@T%e_+I zg2Za1=E8uF*&q|!=A6L6PJh~iryI(#%f%&ML)}GKRh%&t70sA=jXL9bD%`KO7GNW* zLEBkSe ({3ZgQ}_QlQ_!)lLv!7+W2}DKh@a7w-e`0lQKL3Ok^JVz}#2F7h>0Y6sMl zD-_^I@^-CMUm4Ah0&Xu9UY7OG>FF-^ko?#b_4ebl`!;nj4Ivb|3+qVP#pdR_hM(TI zAs_Md9InWtXv)hN*@QH&kG`%B{}J^tB0zXr)*F 16pc%!HWrdc@>KNv#eu8FV!h+)D}ihe~Y;nH4zi4 z()9FbfOR-IhgxeH=DN4 #cz$bGWa7!eThlDkwU$q4Lc{;@Luj z (9RsaiN61Rp~Wc}`$yd;4`EAG0AvfXz$!z% z0iFXey!&2hfZ-!wniwE>+ds|*jt{wh_oJoKYQj{^0L9bTR0r&-h1T3D398XGwe-#( zqpv$;f{~~W*PVa$MUD=8?i3dMznvf^&3p4BQth=D`VPN{0K*>k G3!is%}X3`Dp}Vkc5i`x)Z2LmC08b0wm7hB`2D`{-s_xdh7Zp=v+muycQ!Dj z OEN(`!$+^vIfe|55H926@q z2W_oU!Oi2CCV@!7~dz>iv3@hwL0ent8y=j`E3X z %xz%E%*-mc&kl`6C|H^v1+RycgXiL&e~Yu!$kf z?z>h}-qQaMdv6|3_4@S>Z^MxxsdOSTG? G|o3`He#B}0U=&0^~a4TdsiCPRc2 zA;YF9GS6h%LhNMN=55-0KkLIe=XbvMUElk@U*GTZ+|TQI&VM`c+1ItMYpwNO?=^g; zGS}i;1%Rhr)h1`Ia8c7r1tUgw WVg>Q_Qt^uUjumR>az#;0o1t6v_S;CV-(7KFFTa( z;C&3k|Hj^0UEImL{qXk496FzCqJ>cdyV=+ DHMQ z*m=&CYehyz;=o1|U}9SWOdsF@3%7O!Oq^?!ZZLb0iVk*tuD-^sU@=HBL=qXqM9j|4 z4pcn<&4>&jaQ68^S;<6+G)QTk41#?GC>o>C-Bf6oxNQ9kcrTVHUDG8s8YQ?Bd1Ynt zWRKT0L=G0#_#TPIEVx=VX1+^}ii)ImMN&B2ggy-+I-mcTO!4~VvMA-7FbwIEU; YUIh0=;ih zDx^^on9rpr3Jcfbq8dflBdL Ie92E4uu5p__pCQ* z9P=%7BJz0OLeE9nPr1ac1diP!dOI!_7L_{ +>WkA{!Xhty==<1jvQJ!!j_rR`QaBd6}z&lBKNA>zJCEQ6A~m zeP7P1?k(hE*-k1@gusL;E!=7k=%v$tg-H69$;b?c*R%jgLY%i_bilRk+4(p}+$mZE z=3?2vjEW9pKVO)OpbRz2{zvqL5a0;5JtpfG;6_We4X0<<^3uT2aP=c#v5Vc#gc~uI z>jg&LFoH3#f@9K%EDR|5?L SwxFPWc$hF7b7>l$;Y`B^G6WOn7;IU0$EfR&(0yTtu zVG K zF?Q~}I1%!u@78hoig3qTT!rV2zQVO~?}=DN93ItzI};1~NXfbpW0w}rN+cJ}KL6G0 z zM$UJUVC{4I4Q=DgmzT|=j2&x9ozihQW^Kw7GjfMfv)9OYbLm2FC(+JxvGR75_d6u~ z8MnJEaNyNRL>QbOs>I-NEdgMkm0KYw+P-`V4(Px?9?+j>xN(KZqRkI!xwYP*T7qn| zniXzOPs_OkZHxIm2CzqcQe+2LuL(P9cXijU&<2ePf !=Ob z0A9s3pjI@R4F&7Fpr-b`eVq)L615HYZ+)P^FW=s2Bh4!1!6K)4_r@-WCbi6Gn~-`? z4FIG&vn?QLEW&G~XI3%Huss95 X=>YU3^cQGAAPj1FyUS(25^o43;L+WOAiu1=VL3jUyoldi zml>S--|PB+T3$(mz9xTiho+04%|l3YFa=B%)4mO#;5pqcW!Eb~Y*A*Ja>L6FuH344 z9$nrEVe@awr7t~o+a*{`9c%f_vYbvK)c}VIA}ttF5zZs+(j|DO)_-A-KXuVtctQi0 z*2YEPyOA?=>$q^5a7g`B$u#9MxOx_h-Z=QOCEdC(h*f%`Ok8>bEaPuLfd3Z&a4ysI z-|^j~Ej}7TEC59C#@;KV(u#&FK;lUFQ-RC5$Wi|cDSdz<2f4#A>Dd^xtJ^CJ^o$)y z!I7J6P(uQpFUG_iLu%S 8zYhTvwM5e*`zxU@fuw2_{0{ZojKo3a%@Cwxu;)E0$cp;p{h~RBYLem@05& z7_S>Q#seV8obJiTyAmoWWX});0|>BUQ^Ota2#tmTk3$qKoy_a2o;Y&kh_{*0Xs1?t zT&qN*0));ZH9VMg2bd}9HTBM`$bLZ9^}`O;vg8{v1fJYZXOnJ;#^Co?X0~ix8%?2s z@<9V*<2w)?6NJ*r03AwSuwnW)-5dx~&48KNz;N(<6H`-emT!0J6ID4;9NPl60CCL; z%U+{*$^!5m25}3<^WCjRff^b)G#dRpJ2y8Z!0SlwS}6}uToG{NLo|e7Q0Vlpuzeo* z<6fFB@}uJ7Vz!)|9PH~GG4+~4=q>A{#Zs3kkB=AiO$w|AF^a_gFt)FLf7Ak?6JY?R ztDVqjxM~S-I4_Trmq!BniX3=?C^%HhH}XgQt%b(!q+Xg_40%10(_V `wqDC@DejBLf4*)Wg7&Uns5YqCf)Jp zG**Ii>p%;t%}iWux}Br8()kjdOp3C?=U(X6QH(TtbTx{T?D}SVM-&?Yvac_<2Z1&y z0Rg*>&R0i5OC0bfrYJlQ8-C0>W{eM*$?g!$dqh=VVFIOK2CoBxfCje|af1g O^CryJ%|>o(hh`x}}qKGn9OA|fWo$r6dPN=*>i=L1RbFn(?6 zPAXN>(5<(SBpF>kT+!9to#^_d+bgKzd)7qBph((ebZo5WSXz|nYShT$65LzNspbe^ zyzypW;E9ByZs`+L8R3q^_4W1qjik}kT4`EZnm%ZLBaX5L;rUt!(RB}mtval$J+lI< z5O~KGxmFNtV=U!S3lPGH_ZFHAP+TF#&jn7Z5y{3ZAO5sN4$ei*GbnkH!}8$;?6(nv z_%?JBfjAEUjXp5D3%$)peF2xyiC$EP*aOOPwbvQ ;aY%#E&L15Nx;j|V( zGiL>;rxa066E96lwR ;%B%N?I%y5`iBo&YW%2--Mv0MN3+M55vB~k;} zwPKTQ0Ns;B2*NNW&2Cr%crk*67Fw^bu)_7rKA=D`@U_e2H3(x8QM=|vTfyL7*bdI} z;_*@_{^LEG1DiB-s4fN^_6a^77);0q9QL!HZs0IOqa-|9p$*mI_GrFYk>Ux*>L8eQ zbGl^O0fH}M1u`K7Vn9fgF@U}Nh-Ci+xX15 ?%;}V-#c?j>l3?!%a;vlloTjo`7k~4-*L8ZF$v{Bb%eyGuSBJV=T4Fs zVP^JTlt*75&ZPme0%k!N@2gjbzC98xU*=4#Lw`wx7-Uv}P?j4$#|8v!i7QD*N(-$5 z^XW|t4BUx#EAkys89+R21gobeV=+rSD4RZ)a~k7Ilr_YFC%Srjlkt#mR2CZTf!z{< zDgE$jgM8h(8%W6aaeX2mylDjDYa=FJA+HimhxlK+-R?O2IDbE+bw>F+PXZqV7~w_< zvlT?ummsRn?oX8k^T)rzh)8I4o6ZVj+EFclz3{G+pJy|5>&DZ<2f-m!f>PtiOGP{j z?`T-$&uQEMg0>xTilT~bw~3seR?Y(7!$WBRLJQDEH|U))`U_!E0VM%B7U8rzdEs+k zb?fjNLKS_^1Bns3WbnR U(yaizx0F6n$QP>&J9%LbgHCT2GFQPaK03F zjAYl9qi*AX2;#9c61lJ!-;qQx5oSVZai1j`C%|n|mY-;!*t-o=5I)xoD+I3GXz3*h z=t|u>>F!>N>l!!8(Ac;PmW&2-P6>Z5KT1H-8g>*CP=RC^Oip=@U^Fqx>f|XOB@4ue zj>-xnEXECBG1{Ftn}CYThH_eiVs&RwGA+=o82c&%5dE*Pox{?Z+mHj>w4v<<`ttSW z5bhUoZwsJ23!l@`5HdTICZ8GZ_?4_I2SjTHyy- 6v&U6^{x$i=h*d` z^?Ozqfk)%s?P1ne=#b%b_#YEuQ{UGLu^vNjH5FfZ*ZAd{9CsY8DkZGdLg6>bw>j7) z(Om;g5OI}^W$A4jz%0LStTihs=({~89>a=TtL^N=t+x5G_OZOgEs5tE9A9d)br~#J zu4@c10lebtaKfDY%GK+p9Z^O!)@(T^WZHeX#yH5B5t(v7EzT57#kv38MV? ztLY9MOj_UU3#+EYxr7N~|DEX`h*AdfA#A??D_Gu-krvWG(w)5k`Wiks26BhN81b!- zE`ldw1^SY8v Dio*;ItA%S3XMEnB-b~G&Cdk;&J6NHt?;r_-D3AsDUfg?JyH|a; z3v)nKBBVsubn5`XR_oR+Te0i`hk(-|_W)2w(xE5Ha!VMtqDaO *kC9jNW*;|;cm~`f4-5}Kqe}W;!D@qV3s?JD@zdqz-QSXmb-Cro?vIU2 z_xHjeXaPx`vN5KCVCi_V<15m+TmuV>v5FPz&!?F5N63Dk!6+~b1H$WlrxJ{iA3yJi z_(=oBM&QIv=)BpINO1u~GYT@DooR5pZ@G>)qVriIlcE7ft3YzAZ|#QC2;~l@U4qBZ z%uJC2oLPl4CjA>#64q)jCcfvbzcMkw;(|soFlr)4goW2f0TDH(g$so1p1>7O0U+fV zsIW#^`;sSIZc>jUHhesd3Sv^Q;FcwJ1(2TL<26c2ol^Eu;)f7wys#6>THsyUL7{~# zRMgQMEjTc2>w7T}m__!o!}kv)T!hwy<<z8!#MxWM6FN3M8*sj- eVoUjKg z_}(i(?hglR0EzqJStM~^buwTHd5eQ!M(0gs-U!4lM7+2LBSOFy=ezo>0>QJ7*T^=* zFbs8f5+XLwEg2AuasUtH|3VV^wGFZ56~(L`*yt2^I4SM9x7`FX2w_DZPDsh^_=I#V)G5Evg|)Dw+K`-S2Je>vL#obDTKZHlbK^!R z;E#TVxb&9`n$Uq|y0MHu8o#!pekqL2p-)BDk+$O^v}4geq~hJk#WF(g!>{K=p!dN8 z4ypVX6w*}zO `!g#tdbHzc-6PERLi4 z4y_OH!mdAh$~FS;$((eu+6E`Lf34B bavf# zj_%wED(Z_MncsWUHYCGGkQfbM+~_Uoy(M+v@o9v0{-75Pf@Np=bjj-{S*Aa$43Hi1 zHmdMyZxDHJ?ekgh$|Lw&J{9;mA0MjC#*%+gxB{sEad#f{+vE*Sp5c9j=m1lOEP!KZ zum4*te~aZuy_|pFmOrf41}6NY#r1Eo{4JLMena%%x8?8K^7n1|7pDsRtwjH?R-!Kp zJS!2+!sLaCM3PsOY5tlQp7LevxvAq~Z@2ffgM+NoKjSGnl6~>sOZ5{)Wec9MtlmVu ziK6um7Ge1`(w77y@1@Rp9jFfKl=IK+eKT4&(an8le$RXWcEa4YwAsC9z0$$UskusV zX;_4b=k3+zZ@)Zm8gO50ntuE~sTluOU~2;Lb;V`uqGWT7+)$BX@e fDQ!P9q|X6FUSwL!LKUL#D> z3X6)S#2FE`GROHH1oG!^2|1!1dzZ*GbUwkJ!|Q{qJkq(|Q(Ls-J%>9nT?2FJ;<3+7 z*6+3^Vn~M*E582UF(`qHQFt%;D;t(9KyJM;NU5H8aG*n*4HlrAzwZce;OO_FBur=c zN;gj3xpkG4shZ8@*zG%-w78gu|KiuyKf9 47+tA}# za_pFXx4vp)WC}}kDMgeZY^wu*BuBuBd(4GNNxI^&M`h<;b^29!WMnI@+&_k)&@`T$ zPYd_cvKY#8B@`2)Yk2y-7MnT?%(t0wO};JVjCX6;H*YpjEbH-IjA@>TBhI{^NI53E zp0pw&O_-dPn|gb!WZc$*6rRFXHzmijH>Z(#dSxNVtYTidFVTtOsy5ZVk(`E5{NoEq zScgKE niXIsTbKmYT z^z|T%XuE$1S;QZq{J->&-vfCY2;{rY74Snj1XS}cZ9At(MJ)+|Jo80cpg2r6He=x+ zxu^<({KJkyHY#cZq%g@qsZ$-Kdkv+=ipbL+=$haE0+=ZRY7xfLKnd+158hxnmM-aG zQhlhB)a*Q=!1fG62K;g%9>{<{22GrSK@*HwP_3v2lv0?q&m2%nke|qUWe78Kp%ekm zMbQ1Zkm7}RsB?lvjr7~q5cWu8IP)x=NFcC8C;pKo`X>` Air$kr z%4jfQhDd^%6I%LpXDEU_{F5TsKgJvVS;+kExKWKbwcM)Ns*%0~>Vnbd)qMUdDC;i! z3kp!#>O@6h8CR(|iHG6V9FW13z)k=L#8@xS=#R+QFA&T-be1YLMvhga0*bkz{v z?Mts8EPyX~tOgU>N^Yh>k_M)$R%O@$68K^7F?dG-6yNtlY1+n6wEH3V9n6h?dJ?J6 z-P$Yk0Q`Lj{QV-7#r_qg{Lw}FCy?22OcI=TkAq+Oy_Oa6ODvgC-^zRLde#Q{|9?^_ z{|nCX+*Z^L1U&sq9`*`KZKHkmUqT#$bUqSD3HQHdXK0i*25McTE&CIr h>L|63q`3*?{2g8v&g ZeI>Y3O@#C8A!-fRVjEy%7B~e*as*Kg5i$w zWI4xEKmX}wW4>GC&<9TaFAJ{gLu{gVzN U)tf>|l{Z%pZYS8lHiWb_vonyUC(dc6!UKE@t?Oj M$nO4 zj_CwqK^2IF+XXPJrFgS+Vp>JdEBjrM0_uWFihak{u?m<0x$=JOWuPpL((9<3P(oFS z2yiH(=P`h(FzEFO%P$g#;zwkr1=0Q@%(VCl6^~yhr_TDkn}mA89;{IW)Dy~V);<<% z7NSo8sQPolgr`KO=*MkvFi$z4L{CzGh!-le;MGp?$@Lc)si^g!t?2pKp}qJ1L#HBg z@mo6ji+v9Q;}QNPG(ycs3F%7`Dm%uB^p!b6d7a~u3%}A87r>sAxSTrphB$a^95x=x z&!L4?w$wH27*szBY+wq0*IJh*0bnu) EtTvRNHQ}0IlP_U41Em-D{8Wk?d;EH&r)dT1YDP=Z zzrt~u0n>A#VwW87ME{L`O(@)Ku{Z?XC7C-m`VRHb_-&y;o1Obj^AcSDA!L^`bvKdm zrL|D8THDhX4J02F!{vJx9fHvnKbGR=9{c(FWD te`+vA2vBX z@B+Z-Po%g}zwH=x6MqLT#oR#gLm=Zsfo^+Y_K*t#FOb3ymjG9#@#1lMs7i!xKdW!Y zB0zQ>o2{*x#po^Syl`LN^BsPIx_b-RrJIEm0)l_6em|7r<{qa*r{Z+rQk2W-i&0T8 zBI>=U`5I|tPKWlSA1&ciS7tHe7AS7^2UXu{lCF!W@1}xFx=!;lz znz#<$h5Jeym3{heBlb@_zW+92e;cv?>ODk_uZtbq@`C^yU%*h0{i{RQQA{VHyQ3K zeJ)}Lw?MUb>EmwpoA;>9Q=`2X75O}zs;jK4NZ&;kr_heuV#Z&-SSyy4wrISFwGK$1 zQ@%<^yIm