From 9264a2fbe6178839598fb262eead36f4f2c19355 Mon Sep 17 00:00:00 2001
From: Abhinav Gupta
+ Docs | + Quickstart | + Examples | + Slack +
-[Quickstart](https://docs.agentcontrol.dev/core/quickstart) · -[UI Quickstart](https://docs.agentcontrol.dev/core/ui-quickstart) · -[Examples](examples/README.md) · -[Docs](https://docs.agentcontrol.dev/) · -[Slack](https://join.slack.com/t/agentcontrol/shared_invite/zt-3s2pbclup-T4EJ5sA7SOxR6jTeETZljA) +Runtime guardrails for AI agents - configurable, extensible, and production-ready. + +- Minimal integration - add guardrails with a decorator, callback, or a few lines of SDK code +- Runtime configuration - update controls via API or UI without redeploying +- Pluggable evaluators - built-in or custom +- Framework support - works with LangChain, CrewAI, Google ADK, AWS Strands, and more ## Quick Start @@ -92,8 +98,8 @@ async def answer(message: str) -> str: Choose the path you want: +- Recommended: follow the [full Quickstart](https://docs.agentcontrol.dev/core/quickstart) - Visual setup: follow the [UI Quickstart](https://docs.agentcontrol.dev/core/ui-quickstart) -- End-to-end guide: follow the [full Quickstart](https://docs.agentcontrol.dev/core/quickstart) - Working code examples: browse [examples/README.md](examples/README.md) The published `docker-compose.yml` starts the API only. If you also want the local dashboard, use the repo workflow below. @@ -119,14 +125,9 @@ make ui-dev - API: `http://localhost:8000` - UI: `http://localhost:4000` -## Why Agent Control - -Guardrails baked into agent code are hard to audit, hard to update, and hard to reuse. Agent Control moves that logic into a runtime layer so teams can change controls without redeploying every agent. +## How It Works -- Centralize safety logic instead of scattering checks across tools and prompts -- Update controls at runtime through the API or UI -- Reuse the same controls across multiple agents -- Plug in built-in or custom evaluators +Agent Control evaluates agent inputs and outputs against controls you configure at runtime. That keeps guardrail logic out of prompt code and tool code, while still letting teams update protections centrally.  From 236a546da5989ccbff92335c894a19f7c9320658 Mon Sep 17 00:00:00 2001 From: Abhinav Gupta
@@ -29,12 +29,14 @@
Slack
HM zbIEMeRlT*}Uez%D?Y_5E&ykXo?{JOgN$D^0W6b6}p~UYt8kuH71MlqmU@ez@%g8c5$IOt^Hc 8+ZA zc8^aH#2XgJQ@mp}p6#VlW1MlZvYVDRB-b8$QNIO 8=@(vvbZ7Z9~6e5I*>5}_lVFC9rWNZ=CG|&rqK`8Npd0(7;s}eG+-(L^B z^N>k2QKjQTSgAmn!Owu^iGOnAHd&h}2`t>s{?YtV%o!JEktDS=qH^^K$7$xD^|N;o z@aBWBg%KlUtzPHcnMaZ*cNaU`O-)06mIAM4PhQ4aaz%cPBUnOQ(2*KzuP@AO)kfBk zwQD3NQ#m`%d-Kd8iNs #AsD1ux5i;aqiF#yd zBtOC(9ebQ{j%P{16caCd$v rT@M05PokP_z8D&Apse;(^%a3}x zQ=KZ+q?cL)MiwV%uG<4>{^x{G?tAKrytX5yYGTXGBggc#D@QUr6>r$p$KM<3@#s9f zd+%>HJvV>MxaYM@acS@Ioc+COUC?kzXr=I)dLrBPq4O*IuNLmkl7FPLomf{f-8*eR zES;^@e_%g$FYBualwF)R&8zdYdj!O57Pm9U$4>xD>ot9izKpr!GJAv)W=eY~%sD&f zV=%(etZf{PI|CWE=V5lmh&KoYU~xHO_D!kgaf}goLq(3mxp2;h?AQieB Ss{?Es$ol~(E5&wyjN3HS&%C8qTiqGE^$uNJ^D`86b0JS*`E93y*~rPTq#;qC0+ zp5Z6Zd@l}D;5beL_?Vv9O@L4~i1fl5c+e~TD;`0L D`OL&1~f-c4jK^>f%dEkCAF2 z83p%9NcQH*SB4lzBte(C&R=>{MXyd=#a8ciu~VJNJcp&yqM=jN4vYLGcz52d^a_k9 zyN-FU%Tqf~M$RtEE|pDNQ0Ks|n|B1fs6=1 Of>NqVXZ_&Fz4=7ruFPqj7*<&}}H z`m&*%5q#zY&b*P9w0;mrDNb7F-=$auyijDte;W$;N9*6Dg?qWlV%KvJ?dcmQA%H_X zX~}8_6Sn6w%;PBW`wd$3Dga}efceMw2&~${+XS?JK-z|7%S|QOo0WDev!yL*?KHVV zzz;*YzpxC`1(OHz2BVwZqiOR$@s+Dg8y}h+Tq6o?tQ9g^7T*6{{;T1>WL_$7uC5?6 zD$#{G1era*o@LYso6?{XQ~Vy}p*wrrBiiFH&fLfmV>+{8Hukzox*+<9(HuuzIH0M` z|0G fdEaEw zCgAUZFQCJBMw^b5ING#42dmGg!R$KDc(u>tgb@n`-xW(K-rzKuRR#;utALn3cZ}vR zY2oWrHE?I@&7Nl-(llzZY$#`8OKWF+KSG8QMxyYYr?maQ{=xY}Nap4iU9(8o%un^6 z3l+^z7HbQlsGjP2midTkdV%FKaGOrlJ)$h!2fV9;z8jIB%wdguxMp@?X)YnJ@aFzz z#SNOBsMtSTR!p>s +kmrcYkex_^E+R`b(r|=FA$vzA2;<@W;YC+D8wxD^?LjsC zk8&L`;uHHQ8H)IJAXi=Nh3(h*2>Ji&3nr>Q26e6Rv0n2)esLjJ6h=G#V&d@97NGNt zXb!{+rHTktR#Sf>!5&U};Ae0AnInG0J2cn#NxDR_G=EIDPE6AMI6C`d%GAku^*s&o zMRcY~eqC)A>vb{Rra94x5zSl50_)8B-V?cGqu`bH)Z!eX%wf1@n%rn+dPjI!4wBrA zdi#$Vb2^7HdE;!lhN>B9Pf=6yb7`vik^I7GQPZ}>ssTvcob)>uM{K$E6Z^2vyKzvp zIU;!G3{0V4!o)D_Adv=sH)ooj{XIOjT8F@3L9I@V{=lyY&Uy`s|I=k5jBJ*cp8H8F zQYGFEtvopyz<7i}AWZ+tZ9iW4YdAb7tYjEPn9btguduALZ5yEx*zZq-ArF`P@t BDB9^Rj+&m^LXf@p}ly~wwJ4a|q zy)Daq-3t4abrtFq)u*>FjwKR1GGxnJI{P`&zTugcQ%c)Htj6zVrJC|}sv5E sd> zxIpTu#6wVuRHB3le|tXy(uUj>co{^o4fm-ycQUP-q%7coDA3Vq)n?$QMU3wYf$rVZ zjQe<3;7O&_ZV@zVF1Zz^^WoYMkLX$+nT-ehon>&R3wR70ZyFC;b+*R*I?h>8y^Yho z&l9hiiRomerL*nEe1B8eN1YCg#=9ezc}$upZ_g3)x7wHQ--6xSCis%yn%3JbW&A$D z+w~chbs(i#aXg2q?5{Dta>|`H&ry9lng6VVc2H1lj4Kjdn^ioW#v|*xy0TqD?SN9) z((T|Uc+=}Q4@cGJU(t@hRbq>}=tLDdVq54uW1{DgA(ClGHBsBEMz|7N8P -b4AZ63x!%dt;!C((BB*(fw2ddxC*)g@HOp C}{&jH<1C9ED2Ob%vWeFjnM))|A1 z-o{Dl#9&@o9RJE=zO;D1ot*dO{^Hhi#@k=<*-GxG&D(kk@;XmgANov=+87H8{|uTy z%#UO%N63#DSG~rtlccw4( y}fzAN7bT{p+j42{y(rDSE52cC$va zh;;#0 |ixt#?{EAdIoWu@I0-(VUX zuvD15%2dxJGsMF>(mmw;0I@_j)_SchU;T`Km{jYFp3{0f*}bA|kh7d0eh}p}FJH4u zYC}H~U3(2Pb8sUAGcX(&d eL)5(EP zH+iokWWBxy+`d?&f<8gz^{eBjd4(2%m03Tn8vJU&9!~38r*dSN$Rgp$bcnJj07HGR zY8VM^+{Mhb2V9pKT?uPOxd)=h$7e4bEBtm+J*SIMbeqpHT1FPRdAFqU>H$uT@xD~s zSK1A!Ynx|2a!%WSEq#)#aJFXlvZm2l=DfRJ_zC7wq zkI|Of(xYCAPbO9rWHvoE?w@h%b%I Ts)|U1o?_1`K!#; zMFB=aughc$9jZ!vpvZ1KjE3Xpg?J7Azp@F{^1sK?>sKTm*I~mwa&ODb0F2L@xpw%p zR_( U4`x-y9Hy=VJQjnQmnjJ7ZtE7e_as6N!W zK8g1bO>7SruI0U-=s7*!7-UZJV%!cp!x-vMR8{M`6Yah9SkrSz-siepf6|5FR1;-R zLAEa!+J;Fs$Ynjh@)}}wY8fFb5z~)(EHYlPE#z)E7{6l2dTckF!$2{-F#T`sP9wE$ zqo|lCXTj({0;SSTBCXrl%=t{^%fG4gI$QR2w)jl(n*e>@>oh18EaAN>aBQp?nRMM9 ztpqUXgf#OI(s*&_LOJG8?eQ*X6(pnFfq2gOr0sSs&ATufe}js3zHRce^%pZJ7@k*Z zcl*&ilTn_yJP5YWue`zlFy=T^qe`-9UXkH>1*-c6p2w0UVq~Fsmg>Lv%M2)UM3q}C zciv2NQkzY#!30#gtS!67o9T$_fDlf5+mplZ6nlP5t-T2RCstuUB3;wG9)&1BVEN0g zSWeF5Whz_KqZHAi-iwTUv0pl*x ;3O+~F>S@&i469Z0 z&f9kU%0UG2oyn2mb3np5=?^(hZiQv6>hS38w*Nm}rmqJwosYm)iG6Bzs>!RKDROoG zX8BlA4uvn(Sz7O$iTG~gf%{I9>v!+HhbCaNnY#COn0}ee6l^=9Yn|9$qgWR^MvE$P z`K6ObvyWe0?`@fUIi$NkCKlxUTz{}Tx^A9zMO9g_uc66wj=a_<` !VC8{W{0T))^k%up`;mi3mD0f;b8;Zyag~y0d+p< z-=9QYu^Ij@A6##~7t>ol5O(+4kbAeAU_1gJ1Yp9A;~;MaHs)9AiAfi^G;j2K>K5kO z;$itWa7EwAVc3@m@!M@M(18z9!8BWgPs?lcS?rNY(iyOnLDgwY>j?tQyfOb1Z%d=T z3d0)N+feQ|yD!}L)a!+7W=lpcZOat5O4O1^4rJ4de%Hi!*j;PX)edvT!Q&209wgJ9 zJg$t6Exp>><{s%ywj)Kd-cs`mil5HST*?-X2`5iCpQ>)A7?)E0M@%*~mUHjdO-j{? z^qjNkf=IUD(bdb!_#G>9fQD*ZfdemD6fQC(jzYu^z=C)fMwdFkJ9Io914>#LzKd`z zFsx>9O~E*0<$R`bX&+oc3}=+BA6#t? TWVB87MYjpzf%RonZCNB jpiVw}%mHFOC_R?)ahLTvrsY4WN9zhRGdva{x5O}LfhERiK^QhHS*!C@-NUe->L zK1dVk^`(vurj4b5l4RyIJMkFX6y_zkE-THAV2;zcY %j!ZMBqzHm(mP+IGT$aI zd>T7hf8s3+zJsLO(If8Y2^18=+-U=JD|DDvL7(|6jf5ctA*89&V12v;hWXra4k z_vKG>%V7mhK!rTQ6(v`@(^Qqb6y6llLqk>Gbgc8Z@|Ev%0KkhgTu{ eK2| zjIYf(zx4Lip5iX9o4>61RneN;jC|cHdQUXxXc%#CVsJIB@T!qV)p=_4L&RVi@*{av zW9_H8E!Eb(?`ADV;|E#KsDvZ57&$5(lWUbVVFc-@@R->1#f`~oo>VrWRyXDku{@KF z$bgf5_rMGpy8Jm#zdAggT1>wVit=A~`F;Ua8rFF?AH&fNPz3nZz^jo^>dK@PiKs6@ z@+#AzYM;kNf)r=ND+3_Y1ZVe(D4ovT*TMGs-B@P_L{6} 18E5F6#l6fI57}D z|EJJ7GyB14N5DcD+3?EPK${|;)H{J{Rhryk=Hs%7vjmB@*SjE8p4dIQu3h6U*U$6U z6ts*i8)@8oUhKB%Cz+8j@@nJ_?P^nenM{0D7NjVzto zGNM3U{m35s0C~Nvqa@FD;jIq$Mwr3+Wphh8D6etZ#}aHTJ93Xby=975 z>f(|yGgijm4ykCi-1M#0-aH1gyRKQZsd@P);u V7BM9$-Hw4ao4vr4*wc;s_u2l?Z_y3A(S*s((mRD9qcN? zl{&o}Jtqh -j;3*ad-*yopQr<;x;kc-C zjz(`DDmc`9LRtQy+3AV!`UM!uzTpdHO^M2OlddilzjIeE_WWL;;iWRJ&~ljGjcM8a ziF1k +;i@<|Ey(KBEXIynn$jR1|ahdKzlgivQ)___rcg4xuH_9=X&I{Z)x z6-$KE$FFxl89>+{52ub6YW4CWV=H84{~x !1} zl{I7}pj}g*NDc^q2kDKu^9|Fm(%`2E3)^8I*h2}H2?w30`sxV#F5awnkJN;%v6XWV zyrB5Ra`Nrs)?xD<@1>c8-6QAvZKoKU FQ==Ab(o#iEV4USgi}vSHgAAVtX5>x0E!1UK(S91;W=)>Kdk1Nc>n86oe-opV# zjBW$!GQnu{nfK!M;fGcKO)em4L3w6VFts0)Kib#fcP>m8d*b`z1 +KgSgHO$z zkbd~ULEq)f<9`k|<|PyB#ob!J{E_**7K32=s4-4GcPAq&&v~tD{OZ6p$IQ%;<>=&8 z#z8qLtSobulK+x$D3TMGJKe`POzm#2+04JF<5=Cvu6{qsozQ6`$|JNq2Q`XHEE=D& zdp9V}43IURi^0!x;Px;7D*RLubxPGhbC-M!RTL+Hol>~0e)SYWS2JpTi4Lk3whxQ1 za6BeKDc%9_6KHjFI`?3qsMJy&AF>gcaYUx`NqE!XLDV$XI=%^%`}EGC5Li!B05KWJ z#dJys_=7Kh{`Rp7@Cs&Q9}y<@gDw#q!zhqT#mR=wqPdQKxJ<$oCsT_daR=vxss?G7 z`jB6NjM$>_DM$d8HW $OkZrrOtJ^uh3+> zID`y;b95rtG|{ol>AL6niT?Hbw+B?~fPY*lS-Bi$&GCvFB dk^-iJB>jdu s`JuvUO|=?#^?%)HP iPRlzk*4ua*f`#Ioh%~d(zI>kXS z$Aj~O01dHF?KxwC5L&tn8D}-SF@6ByHH}FFwK-%C6*dU#IQ-_t-l=GO*5GkzK|`+4 zK_y7sVZZ}h(N0491s;c fj$Eo({&S&Q
A#N#X7DmX| z2D?5~ClFs0vs3f83462)3GBo5!ueQl;`v&ddp*UuON?|ml@5L?NzX7YY&w4Sz0DQK z!->4IiE~n{;y` ;t63Ui(6nCq8g>XDR z4Ic`#Bik=1erjbLO(6bO;=MacY6F!y67P-|j@T=Z3Q1$_m%Cv(_3JYvaTEn?xV)U2 z@<&O#@Ssr*S0&q?0MCb6!r(hpwmJ~_(I_eWuGn&5ai|ckcI;`!SIR@8?8a?FNNQix zJt#K&%*UYglutVjV+%a2-72V`fAjFrYh>66V=r7I{x84H8;qKoeI$2BC`#Z>LeDe* zrYks=x6k4eF1K*kNKE>Xi9*p@?uWRYX)TpyW)(I*u{`^-skvSF;hMipY_Gj&Rh8Z^ zVZ22%n|B?X?u!o@H&M9+bkiI8gLc=A+QB&cNObD*HEmAOpCS~755U(=3t+>f{ph3> zE$3-wsJ%()-AO_I28H%=Mi|X{RGC1(=E*cZO#U_FYav9Nu|vnirlWbP7lACASqmpH zzA73Rpbd?N|HBGry9dW=^UzSMYFFr71TNphjJ7x$T(0UFPf(4(!UYfRXW`mesG1t@ z%h(B#@#ufJ9cZrbQLTXA<6B@g$mp=%J vSYV?Zj>* zR$L&VYZyPGd9#h?^15Ii)p(nG6?rw4M*KPuG~*c90V3!uoc5j$tYJ23n4kI2M8m*4 zWEwcy ?Bh8{Lf6-@&<>hjUTnolhrh(^6quUup7h>51a-{(^0%$V299`KbR8^ zy&%<90ZIe)qg7yO1z)RR*(r=VV(+@s+SSpiL&~a3KE#D^u%OBjs4Je7f@gK4{LMy^ z#JxlPk-^h;V;^S2!3o^VE2XL+7tccI?4OO(bRm|55#H?7Wr*AY>$wLJ?n;Byc^Iv$ zmg@_>O=ITZup_2HXrrX~cLCr7gi_d=>SLdpH?&+o4Qu7U>M(fM^HR~yui-rlau#Vj z2qSG5zOxk?iG7=?KWaRAkafR?M Rqpa>6dIY*x^hQb)9IjUxM$2bXaon zxenoN=eK;vq+2h>y0c(hE{FMoRpapGXq*=O^9Nf06cV(s*?tU(hfjkw24YytIR3@| z^d< Q=F7;Ul5{*q<%#DbGmtkCgZ6 z_LUTtpIY Ug=dtgyK8xzOvNwu`^4??LxxM6{WMglBqv(jscR>g7iDGM$(!Nzg zZ9hSD*+1;_j&&@1e(&c?B0NgZvDy}5dS|Zc+3_&kl)+dD4y*#VT`)9qnC$IifyKaZ z;#|}ozHwF$72C8OYK6l7xmOTq54w10f>g)w8D_$5PT)Lb@w0K$2sbisTSZ5Y68fMH z=uAw!aASU4&t+uavjDe*;8*}C;ifNe-ot5j2bM9z_U $LqJe7$)*l>7TXUY( >wK%M;pY0^Y~WC|v)#WqG$>|Ob^s8sg65xEZfx=C zwk)S;kI{+^*#*PeBaM?<^Yaqnma}Bjte!%(Lbq=1r6qQcprdds)Oz(d(Y_Cy;wGz$ zKhap$4wxG&Ps|#VY;@tZZ=V)@eC#v$jd&Vx;Vk4cihHkcS}mR+prRor)H^pUCxvHg z$>@pdMTuS;UulIXeroEykgm+A_#B9@?@ODEU)+GnjbeKSgW#ekOqw*#Y1QJ@I3ltA z2C<07MmM*fGKBk-Fp{lSSSX5Jy{iSIB)+Nt Y7sGW|K1>#lO<8 zLt8RHuOlILaq6GXH;USYw+snw!fh-`5^){HbCSfX mPa0QBdg}JUJN4>%Z7iv#u8Nz>RuwFuh`oDMX|IaVCd6?J3m`(iINnVFq zkXB0lZ~&58JSPQU!z^CFh4qX1u9(q|dfJ%BNmXhrSArf%#DyQZ$BHwA;H)}Hw{7u( z&T#5{ov7)+tWfMzN1@x;6lw4=wU6b9tiYkZIeA`7t%pSt?A+Yk3gf8VC4QdF)qA)) z$bweScS|Yr)4GzgYz7NTfYrBmG>8 e^Lx=BiqeHm_Pl8>f#J1g3hn*Uh& z+~5EE?@nk^=s((iLeKf7;;{mX&SgL`9iatq-tLCQ*95p )Yqec#1O_uBpL}`DF-*U362#;4pM~bOpBiGvaUeC z+2Kfbhu~nc+qnk5j^CWKpZnz3L$f~yhmyJf?`Bqh*GlOzEq8M>b?Ye)oEHk_*&h3e zkAC#ds&zoO%Jy(xe(PuM#@@|7Pt>j#MX@v_u|2K}I+S5_>7xaILOB9TW#`kNO73ZT zFjb$kxlu6N8n{6>*~Gr*_FH0rzEdOdG9X?NFxr_iKgRA&Vz~TRnqG42?sQeODQoZc zKlha+$0H`1x)r$D_!nzKgfgX-qt@epqGV|GM!)zbhh9w%y;d4H>Fej`=Q}+!%;5{{ zwETq5^P?T&9cn#VPJG)WmYtfK+BDGsAn3W%ax7oww6?%1hyq>!H13{65}^ovm`esk zf2{e=O*(3jQqz#)$!6=bM=Ny_PBeNe=mXgAsI(X{N0v4kkVOxU>fCSJ#|a*_6SYYe zv({ej)9)=FD}(Ci+2Tav;-Sr}c3HvYV}9pD242`>ZH?K=$Nb5EG*;e`qEou3rCr^s z_2{m*?X32Fes6PHCArm;{ZQf0SYne~QEJQI7Rf6H1`%%l$_leN5yT4veQ^c3yQtt? zC9TV!_9s_%QKNimu0uFHl_+@Z(M0kPsUIt!cl8_ZW!yur+Q_;fcb=~}?~n!0)}p-3 zpRow_(WFy!mj|)hp_cnY&8}rxMv*b!;Vpvfs= h#bt>(f)oNr>0%yKH zdX>25dy-2ffwNOwL7Yus0D7krhv8LK*i&{J-C>J*Wamw}+XRaz(occo`DZN0eSmBb z{sItWSvmGJTawXv+#kDP^;WMS3lm-OfPIV4Bj$KD4|!bd-JD?`Z?ih_S7trxnZ@5w zdavEfOTPgGv)X_a=kE#hqnFP1;aM@d3Pj!InfJoQ=^nSn6z#6nn!3sn2s#8~LCb96 z#1u&&kZMFHg`QqqXx`$2Cmj*@0Yw48&NexUVqyTX&h;$%M3L)4wmLAK0vW&4%GSc9 zbvdycEP%T?7KS*~1Gr?Zc)3L@4)p Kfym1)Rv3s *X|h&^p(0`dhbHlxPOzDZp!oopQ;FD zu)>b8cWZ3M-#BP_Ubi4 pgbjcg9WCv3EIt<{?Mv#xBZh9w==YDl$hf{6NvLy z>9IbIu!(0*f2OCVmiu@VFHXkU#3@+mF3$7`CmVI){;RF0LXO}!FT@@s+XOBW+NUvM zeUL+SmCX(&UONV{7KlL3)DY2RK)K65ozUPAoHvm`Q%8+9mzKMx;Eoj?7QKp}idZ<; z_g4}8Ml4Cm%g!#f^a#fl`3)|t_27+n1r~?i;AZ)nLgA ^*+3J24*58tU+zEDu= zyXY(7Gr inuvv zOGqEcvqXQ#>9)W!_QE>Bxp1NvfjTK^@IPDOXiPMdL8%BLYCxIR`q_9JsjU;6dYjBV zjnbp{mTCB #(7VMEeNPVZGj7YhyGseLfpZBy*Oxj zM&gwCGY#>#8shJVaWS5Hso*<+@%IO^n_7@U3E}#d{8HzR%s+S8$cnr!vN8xt$X{Z# z0?vG*B@p~(V#dD&VGh)nPm>fBy8IdHEym-dti}}A JXXu3o6S zJiXlA-CgD~zd-u4WqM4~o6*glZOxW6lGh?UV^ gGj1AyV#CV3cm%w@~obh!&?DZ)!uOa96XRkXSRK* zA;>LRXyX-;u=)O)U=nAW2T+Asz !5vaCERO9(>n?m>6xuA$>h3IG{Yl_2 zp?FH{`0^5WIX_@pQ0S6cDy)JKSqD>+v6Yj3*icIcen{mCA~F}3j#M$T-5eDgfMU^@ zXDrh J@u}JIvE>Pd1b?04qW*g*V1T85SgKL{ zJ>@EQG_`y|RX%VE3QtD^*MukWF^oZ Cm2NjlCFINtQDpR;ug ztr63?!!aXzG$sR_R_b^k75KdsazHrN{au*c YtlAsTWnLCbUOo7HCb<@|9{7T#~(YkrCwH$Vfwe|AMKOY@1gEUSYMHdL?x za?Pe9?ZDDXCj8&_D9JtJJ3x5XC_=XN^FE%6-2~!!?@)kjWsxf(>ajRDydie_nHav* ze-;NJNKT8{!W#5SZ6Z^u7>C&;G__++YIdAVT8;`e1)#7S--?2DX;_ir)cv8(0`_DH z$M3-k$B%ZT|A```)r;Q+l{n71{?X+O#!=HBvpy+f7#YNv3(}s}(G$3Uxj9i77cfqO z4$o{HvHFP1tRN%<<%qL>3)~)SSGVpGpJnJ8iW(QjZWK@fZ&`l4C}gW=B0OXH5lP8T z3FMts!$OWgrEp;B) VwYXSz#$)HOc7uqVmMCCSMZ*`T7aG+Rp@OOeW5Zi3|#119+vyz8nu zQWCIYq6e=mouCf|mG&c0s D6-Ng*vE> zF&0-aT%uaxl>z^QOVs6sM$NH5*681XXC=W)kT6Y1kSHv4D@0SRp*}YPMTdsyM9uWl zb?{4|8~TcD0lWQZI#YIbTiH2q@Rkb7MCe!U|Ig6ix4~RdWH`}07xSkrt1>pUjW`)^ z6Xe$>xeO^fPumGJTOC^}xWgEazU5h|Ag9P>;RL66?;$hb61aVybq|@YAp;fAOgWmV zLLJPB6h_1mRIE^u?|B)Jxsi%3Dr2UM-;zpmHL9s(39;+p3hRJ@%BI#>deH1Zq0nPy zmX}%pVR*0KRz2n&-E?t9Yv&a^^BKY9_r=+awTyn4GGO9qZu=6Q9@h;MEAOH4{@s_8 z fAN5db<%5J+a# MaW(zCZWV#*1kN3vR_tQ8<-v(;qyj#Kpmu9p6 zYsPwAN@9)2r3T4ICi8t4gdOF?tE@RGUb`f)KStekOcUJkiL>w2p@woQ8dfme(#_3n zp>(IGSzyE 42}7 zA%NXDdeGzn5CuXNQ|b>WshXCp1N2^l^x{yXBwg_~U$pYX04aA8%9E*U9QRg_P2f_F zwvg{u-sMCh8VqP0;?OLLGko{6*%~sl7FyQzJ32@z6Os-AUsk- {)K+7sm=gbX= znQ+TH9LX(3kt7AHS)Y+aUR?uczfE~yJ`gywH2+^!d#fi@T(O(;ExW|WV}4XogFB~g zwJZ~=a?$+?;E{oFk9CUczh{YciNP&2mA>ae)q5(ZDds96tt-?VfWfA@i~}u8ar62- zG334-9lfl957p)HI)caK!H19uaUvFdE?wKcTCX$c@CZ3If@N}#b(uUr$W!H#kST+0 z0$b%8V>%q^# 8E!1e@bVfYP<`8s*WK^gDAUEqzMnur1Nbo%<@i_l$!wSb|&zRK% zu&*_KZK1ei$Y`lHIbgqjMQCvt xDbAB}0g9wg}$ zKjK3BfK))mrm_!NV3l(x`|73qBB3j?)!oz_JI|xfogYW6P!C0-U3v%jCYj^6)q-@s zqG3Bo!yyR1XYlKZcyMp;>=fewm%n1jTY7?)DS0xhH=yLLaA0aOQuislK}CmYdx>`S zvmrpu0PR0P3e4OKYaj;LHRX<~`yX8a8{{N)H* (W3E>XN}L5Sv#Burh7yV_M5KtT~9b zdF0f^UTZMTl7s(ux~(nD JyJEgr;vq%Ykw1w%o go@Z=Vh*Au)=9~_p8`!$UnC*`;3y8i!O^=?B zB-#N}KtsdW_+yUtJ3BMTQz@FtUa^0YLaVYbaYigkK8Bfm;sn2Bo*p=Zp_$UVp<-s5 zRhl;zG!wWc3`WckWl7ZtSE}R0An~{DP7g;2XN2Vzk1~9dSp^GP(~T-f_i++N>=h~G z_!Y;`Qk1(8TjSLgf`9c9C{g!h(V#m-V*Js9@BSt5Td?Vm*asT({tyockJJr-C_f=< za!uG*A7zD#2Q6@>G_A{hPRQdp9G#ru=zg~P*b>tU5t)M{dHT&- v4@OUsz~fQ=dVUs<>i}kW1|;p)Q+oHdgDA znRAC2s>VQ;Od%jbao3Lh22F3}R2j>^Q9 UAG(dE&=vwn7osF&-9=5@|5=MJ4hWLsT>W9(g*=9;hMG6=Us{$@F~N+ z_`s#P`o!FcUe@G)k9Um3#6)kp792t*WAp)y!+wiTFp<}h{0#VQ4y?3>>QNe9Voi41 z-cek3s~%EfllJEjTJfKCgH#YP$eZU|)ZtE|OFnpthu~6%58W2N-_ql@+65}u^P|OX zwLF*B )FRQw8^)#e_gVn;F=M#$ z;;#TgivRjyaNi&uTtw>8Y?l|uR(c0ZaK)7J*40bhiJXRvK2}f&5&G0^(N53$nTHq~ zjmQ_b^NIbw(tgXWa &^S2#j3vh(h$6Mh ziND_~$huM}u`CqaBxylL=qF@LtzPl_c*^EspOQciKWZ+hx1Ike$t3IAHjq+a1eCz1 zp&{r+;VH){0KA9cBz!*wC4Wa{xE5UkmZPByp?L;ZH?_ipmh112YElwsCI||z6f^(q z>h69v=|8`~T4Rk`Np9tf1 C-Qv z=HA;u*rw6eD=%?>kK%Se;2ro8NO45&Mx?&zW8Lr^tNrq~UCZgF=_KrLO5I)|$Lj zR5!`%c`7I@EF6>cNRGC6pK%#hMVvC$XXQ-r&DMhy)tVbNw7?p25yx3)2DxG#xyU() zv|)`i@~%OYfHjK&6^5>+ezH}=GFTXUxCN{daHOF2K|ucMifr8$9&1wEejbW3d0zms zDMZ2Kv`-gUDw8M 2+UT_GwdM?8Rc7RgH1`zHP>Pb?f(Yque63t<)M z%Z+LU1}zCa;qyV0_4#XJ)$Q9o(1kJu<&1zUEz%*ZEGF|Xr^q6)|8e@F;>!;(F7yIC z#T-4ZwCimR8wHn*fbXgDf$r4V@EJhX>E%yMLKf{B%j@|pZnWA0zw|-2`Nmn7yWu(K zM75w8R7ZJ2BxZP|odI>yDlX#6G2f}(B1H#QxK7WEKY_sR`Y2vC2Ugr`fsG<{sx?Tl zk@I7sR|6&&+SVFe39qsIDAdQgL{c$85gqif+Oe_Pl{CmfFy}=m&mj`(6-9~j?Lm_1 zJ6a>e*zC1cK`T4~V4sQN_srJk`oC;X;J !8lXC=k-+5t|9r_6fI=Z7c zXNQK yK>1~B`9THx z>Z9-%#kxd#Bu9aVjh;F^ue6e;eMdfp`XL&JA^OC=hr{h!NIzqJV)n!xQ-Q;M1M}oJ zn%GpzV FVQ z6nn`Z&h^Z}Ws*nEe?{p00rQ@b2hW(zT5z&7%?8EJ5DrO(cP+cqD;KmPt6ik$MbZ@S z3>;c5dtK_M=7K7Am+v83{O98Ii<_g}GcU0r=xb=ZImQedjcJ8X2RydLq-(#=f?#hX zJhgwq2pU*3En#E>OC4;a2nhCZLe!`n7-zT&%@(Rm<09Ldv({phFU>=^U?@sXv+eHY zn1x4c@s@6TG{;R<6U-cfsZ3?SPp7+7Qm}c&<+Q*iBUhyME!{R0L_j?XBFH`MfY zri)!7tgnVikQlmJ8cnOgNCoesc-Gvd84$exiE}Y$4y|(DHXwQ?o+lVit7Kb{Nqh6H zu9B|&@o(@4Ew_QU$r{$l{gZzcXs-8$iID<1)uo6!6-{f{=QSCcVuVeU5vL3jtpwCQ zJF<4(@__H*`F#w1V{{P?sf1`Ohu&LzlzONAh}LnD*SC=fV6%s8W$7`Us=%(9#c>RQ z29J(4{Q%HNvD$UuzHZ&jPX||@1tyLe^>b$pCLg^D~ipR8U3V2}Qp&!Nl%=iV3y9 zjyfPFnXsZAP7G!=&NK~(BA42rhm<5>eOAXJVBA{H-f6b~g~c^wP?2hRPmarWsh(*= z`bB*@ast!k?=#v~!WmyAC{O^7<6Wnf!^I6eut-+7lYOh+_|5i-7!W?^%@OOPHFbMT zu^?A)a}i&y@^wWh)6vhWIl~W;!I`!fpO%{XV>y!51VeYTT+9swMT(!%pK!#dt279> zBC-Pgv_MP3+orz=pUc6pc*TwB3^4QpVcTOr30N}-9_#Mx98p|bfHFN*Ol&ttTWZH( zp5jjS+^BDz#uR3N_swA=ATG^wzF}wee=-9oYGjXX$|*gD)*6Wzh;bij2F$|5pR`gz za;rdA5}~Lnw)PReD0dx` 1U+!>h>!EW7+x(4bT5r5bz2DKBZG69wipD#<_k@` z t&tUA_y3LUTP*^B%Pm`Dm0sb!DA*lIFt$_nz$%7%{X}3$- zJs6Zpt<~1zzYTncn!SzQjgW+1pPQbmJS9|S{B2xl4gBe(>gw=ni&loCgjU}0IqcLB zxFe!!tWUTjaFh$2+L!E)jtmDSyDd9HBv(tNe9GQsOpq5(B~D$?7s+v7E@`+i61DhN z1!8`qSn&J#wiYyvYok4FrXR+8pO_Bk;~p{GBt80jd*7`VwT|m*eG7;5=*QSyM;5`k zN;!igDZIVM@THwR!>{r)ohdHg4IM;Y>c{?0+Tl#GXoWQnw+Ku|7*`?kvxi;Dg@PwU zHsH83uOmW#Uo9OISFCcu-6e|RV2oC@M;W~8V!haSeqRraIb22ES!J#j%J#~CD{ZO$ z7GPxyx%r3Ch{=XIHepil2J#xMJv2sRwM73t!ns4~8<37_YRmABeD1C`8}=z?nnkRI zn|)ANFlEAKM1uE$a0O(L0z5t5Wvwu^uQc$3JHBV{?Nx~E=+Iy63n|vT7Aa~wF#LGl z+Q4u13hO9uAI%+LPz<4$6S{SEr?sIR7D>Fs5-#`$?dQiKJ=nf-v>PoKC@~vSR{&~4 z?2i7~>( zK9s33eGT Wg2Q8-GAk1f z`}v{YXC!F0nCA>XM-q@IB9@ha_#VH4+Q>=$wy9 Gkq*cxh)%gX`3Y0#p{=Wh zmTB>r2chE_OO2dk_0g=20d=P_sYo>4)OLBH1hkLlWfQOG)|H!kh)72N8=!Fa)62%M zcP3Ymb`W&-@E{nh_cAdHDwOtn*skVE? {H|SHD= 5CQ41$J%IKa z>0f8-hxWTJ)1uVIf7#FLDw1z8Z?i%3JtKC_-iw5~(UBmyU46JX^|8m>9O!;CnNB)O znf3)$vb(a6QH1Jr>prnsA>Rj}x?0GNO+%#zLbOoq-lIMZu0h!Pm{{KmRI_7U>zAL_ZiBaaf%x_lj@m?<;*)!V0i; k80#v%&w7IcX5YJ-tmO$ZfKU0 zkTe(pxwTb#=(g3nymf4pd$^ilAQW1@%=Xu6QLPpsGks-f5!KF1WH2PJ@VyGeDj0Bp zty&repRw`~#{v12n*Dsu40x#TMk?cVOR+L#&2inbAKfJ~Bx=A)kYPOGkSWHLm^|Ic zDI?pSVZ0Z)qc8hb+&c?@1!&6Rn?rEA2FFMTrCR6G)dw{_d7~|1lf0V8SUkB^xK*!w z^^Whb^SK&(U=hQ(NMvx1kSR;sWrWU#OYw0j{cM~fLLv8$-=xk%P#lG}RFa^x#S8&6 zd{DCDChW^xPU&E27h^`fXZ40FVrNT_S-=PceP{@(w2yHbrRGHq+RhDKB;oVtj-*?` zlhcFqzu2wVZkuU5?FgW?4b7ssPrcVN7>%*<2DWLYi-sb`wyfT5kxsg;S^9>{^L+3N zFdD~3PYxEel})t!Na50N OUS1N=IXDS6z`b!>1j^H_vRhZ|kLv+vtGrNp&6R$%BDk(JG>gLA>T!!$2rpae|x ze$^N_g0Yho0-Z#sl|I8Y)D4`MmabIzb3hTgmbyy|`;rtpzIv|}^lxGSi_2&+1pKbM zg)SDKLHngz>~x}kK&kM$S6=HPd`(z!uLMA@v%^F7eLls4GxESD`2ji =9=5+LA1JRMiJd!{A_42<3hkKe}jt2(M z+c- 8+0WLf?%tEq0Tu9@OtxRjEDLl&z=-&(Xyj-j+7-%Qu)WuioH4(QC{KL^oI zbGr>*A}GO7xm0T532NMJ0RM*SyT7z;j_B*X0ml)*w#n9>AYGT$@+zi2=#d)q>4w4r zb%)gS;o?Fxf8SACm3BM27hQ6N(T5Q>zv?HLtbW7s?8*4%p&v^=It99edymZeV1ke*5xQP<%ZSe&ciBIj?;D&X zDHVMxL||Z{msv4mQ7U~*?@&~i;yt>J^F-Oi(x^?C$y(MP>kyo#Pq@H5W1eqoHEu!1 zZl53IGLG%4wQ8HrRu$FCOx#St=v<3X*eP}SDoLXn&G!PkQItVLKtfg=Y+q*HvrLX4FhTrW}{ByM$DyC{gsJ7uz`3o8a;gTdPnf!ZJ9AD^Go@IuDabZJ^)6C}; zAIn8;C(nhqlg^;W?|p)LhISr37%UBO3jnM~K!qhzs`2C1l5d4WVQ`!vE1pzCEp9(b zbHgCUZjOnw`wNDrvIAc2+T?ExMXzk|3}6Y^E2Y*=8Zk6Z@d!*hiN zixz`jep{YWYQ<5CAa$SbF5a;QL1IX9)6jq-7ce7hrk`DmKGGs-c{H1oYg4ZYe+F~P z&klG;Uttf-lD|WZJM1|5xxek`92sdE#(KjPJ4d-UL*+X8t#0qHlSEUTK9!E*V*2}N zI08$+hs7jqDPrAZ?GuYB`bv@)~JY=^`sd7$z3XyGrPd2$-x^ohDhMJqCE`0ZFVF zU!7T=*vI7Qfi)Oy9eQv&?=+J8%qglfG53fsy%4S*V#69<1CvNkH~^S| zGezQsAnsY^J2cIOMfNgA^D{aWS6(VA!i`_=PHrUy=Ia!f8FE?*(7{yU8B6TJW2>M1 zOG4K%6AnkZnniMVd0M&~pq$zs3C(P@%V77%w2il^7pbm1w`Xu}FaP$LF4Hd%TkP!~ z+1Fr_b=j{sqOotUPwDMwUELHOxr#8kTx`EO8?U3B2j1XXf~cp=VWr?;&LDaC6$Fer zhoqcR$U7Mcg8lz?9#p%GrlN=MV|!-eQ+c!Qcv9&Y;{yOBD~o>_ZfWKD+O*cvR|leX zl)A3=Lt|FE_(|u|=MK*&0WWhw2P1znE+ 7$ zUtSJes|#*_b?MxpvB(EpNUrphN$;c<+L;<5aLLy|q}%0d9R0Vp$WMTk5CvGX9RD*^ zg{}F+_ke+Sx6>NsmM{w-^Ylo-SS0?_nlgazUU(V+&i0c@j-OzS#J(CJvHeJT0fr~j zq8l;^cwo#=is`^sQeVF49f*EXp&-rybb#}>f%ubvC3Vw4tU#KoTb3ObieGbtsqE|z zNclj3qf)J6&^v?a$rw%@NV5WxW6a81b*>;H9 {9 uzpcx#?Jl!$Tn=Be sZfZ*QK(I7VszDCLJs%__z6i#=|c}Hpvt@iN> z6%FnmL&OUJ+r6A}8->0B;u@jpoHP_?0oea6%CZYK^At+m!*wP V43lZ-DJK}V z-OeM6Vu0AKeXT`n;^wUY+wf=$F?;I%Xs7so4LKjmqJ@G5!NcQn%h8a=l|ER@H@wsp zj?s|tugIacjp$79j=B?H)C>@RL~*m13W7@catbI_6%)V}ejQ&ka<-0p6ZHXJ$ZJ0g zgh%5pP@>Fp(E^u~-gItTpsmgA3u+QtX<)*ax>s^+$}JR`0(~JDE3-m*rYV6{Yp@H3 zG*39IuVOG7ZbC;wgC>hHxFs#GlL`fZ0Kc$wTO(QZ-#D5L;)2_)Ar zh7iD-hgkZ1@c1 V4$htk(Sm?)zY26E z1(Or}<-PBJ33S+$O%U!E$$+X%;9w2~Rjq?oc)`&|1=A-mKHZ(&mP5a7SwV>xfhV}n zZl0eggV3>V151Q8dg*&Rpf_Rf&Gq)4TT{|-GfDPPYvRDE=~K| OA-;uU5r;A|96#OK>kQY9MDCtI26SOWdrJPnoz%Aa6Gv6^2X2<%FB|*>=yt!=K3qI zl@^QCn5cby` SfNU5UPQo%YtyJXd~p?^a$i%WRrKZzjq~jP8u;a@R6W0 z3bv(~yE<4@s4%Z2UZ);C4q6@uj~xeNKEYnqEV^%_c>I%F@(8DxUrOE8dv68cQmV3z zzmOjTvMG;A@JH!8#*OhLbvMG>Y{?#N^bWDrf+=++M+_+j=0iktfeX#Ln*6w>TTuta z7kK2hIGBASI=zG{(wE=`3jjur0K^|!PQ9fRp>$sI?0hb$IdYZ*5+`+6%fvh{rk_QL zUIwNNd+o^om~#$Q3-F7Jc+{kfP`6MJgiXb1{Yy|}L!9O`+u{LERUtw!R~6%KjfkXz zhrI+G4G7~+uhFf)4$Y)GTZu!y!|9e3GXq5OK*A)gvtT-$U^T%s7zU9}6)Te(2At&A z-m@E?nAUZLl#>kOJA^U9vq{bd!4&2q^nLf~HSNbDNz;_h&ZCl3)B?HtOMUmuvAItJ z!YztrC=zTIW98*78p6*)JM%kig>dxu%HMHS>nN`mV7vxW@-<$1^QpV4hFcn$gvPby z l5xaYAX@dpaY}is;D3-kuo&iTCIG$i82{-HV#9 zTIvc}T6P>Wy)ScWOtW!PO43ok+tP9xEArw}rQRKx(| U~AJGQ21H)8qE0_R;nP zK|$MSZ9x85R!?2Y?nGM3p8V0F6jvI@Jap$3Iay;Fme>Kxp+8?-%AVJm)am^@(noUo zd!1aWZ>RJj1mgI*K;5gTb2H;JJ0#z-yWUGJGo1Q*+YLS2FSRwVKHdNQdpE}6f#J@> z1ER6RhcC+ qk?cC8D6*)(Zr4VWos#y4e`7}ft=3#o zrP4|X4?mTQ2t&Benpsi~ &aLhl7iuM_KNaD7v6P^?V2$cHzoD7gA22gZM%f!0g6FS?hHnPkVV&XPYDSa)^n z8{7NjI;|a=x*3-njIx}gP3)idrIB}>cv2fnw^i%`maT_HwB&!kdhLs+guA_t+H&vq z&3${Z#ZjaB=Gn2y?X4H*4*svWRlnR3*bhFIv43{XQkHUw?3!mX!gD|oow|#j9Mhby zOlhDvnm_m2e<$$3$}^a3I{7|5I#cD*^UW@p_*hbt3Y#EGCU)#*g{!GulITHC|8r%P z{Qv(?$ueZki4-a?vdI0yXzKLRrtO;hYGdtf9a3bDv6BubuopZy(g`{VRY0KHKUXT= zpM#DiqU|bkuPgfgFfIdYAO9Zv_R8RQlg;ktzqvlT;UXWCu?EWhT<+?VH&$ii{@RGj z$&z_@!#d0k%@6Rsu6dK@X<<*lL3a!hu_hSH>M;^bGaMV? U2)o(s)5Z#wPR{G%dwC;xe8}VE;WaOi{9NK{;;WL)>n|VXe$N 8V5D8uGVq&8Z6Cdh#~-Vn9Nfru z{+@nZQ&zsprLrYUcGH@O{&S_>M~(#vZkm65iio^^R$2KVs_DB415TN(-v>iy8lN=9 z{B3NmfBuuxmuryw1i-i-7#p%iW=Hf@6#Bu$hblQ{1rihAnmW~6CGNO3iy58zrPelH zc`6tE6k*GYIybVgeV%Z#E- w8 z9dqsD);qy>uc; PIq!fa-=9bvzcYOj5xb`CEgtywx=cC+=Dr?T!h zcHK$Zd$7*n1iG@}0N(y-(Q)&UAxs~3>Vy=wIpM8U=>xCz9d}nABufeWrc8MoR;3q- zzj@z_LD6SimUfGCQyop=<;L!q*0EDla{lG1+*u!EyeW-Xi)g!aPufkU<{)j-v~FnR zDye8B+Jr!R#26IW_}6-iZzNZVGbetp{X6Zrgl!^e+^gQn#Ld)B@%^T*;mkmMt^2Xn zW#LbSt*bb2!{x)qp{K`eO&obITlXCCat%qw+Ug_>6lLb~#nJj%zQ5hSvrgU_p=nXm zFPcIeq-BLXoGmNA7GJvlu^5vm;ikw=Iehc|*3gq{81kR1T>aAe571<1u0uSk@S|qe zK$@p$V;;NM9X(>-F%>HIal^*-&_hTRH-$+!M5;;ES7{!#|483vXlyZ}>Rju8GH!=j zITod!622zK|6JkwwU0;DYwFJ6?Q>e!Bfa!P_Pg6Jw>7gwu!OzOo`!C47T@stqZ)p_ z89v<3yaG6x+GW9hwLM|zvCs~4JN6VMCS&u~p+`TZt^Qf@!s8Eg+w(*C_2{S~d6?#O z<-U}smY 0pcJ&8;C1ljCboUfv~`YileP zow5COFy2Hi+PA|m;ReS10}>-ioNb2@?RCdax;%}vh1z(i?Pv1-6GkdkZYST%#DwRJ z&F^pC662XrwW;s;a__KngLjW-7w^_D_46%s>dTQ6Cn{qRpDwmMb_(<>`$p%n*z4M^ zVT2QPH|qux?^x`I9DfT)dB*m(QU4 z$Tcq?{3J8)@`z8JJdCSVaRADVzp-FC_G&3+eK `7{^!x{P- z!9V}wM{U)nZ6~}drxz(_vg({;G8Upud}O_zcQx#Yi`_0_yZ-*eb@H2bYPNlpbd4yK zAZVUari@28g<+2pyPicot+>6c^ VLfdM(6u<9>)xLTcv2b{kZYSjU_9+W{&3P z3cKa;dk%UXcvc^)9Q{;nyPAT+449agW&q`j8g~wzJ8}2XN_4%bcr?i2tg}v)%b(Hj zNSH=!bqM~TmDzn)kBd%+725v_<4gShY0cQh&qeP1W9JYZ|JAIkKl9wAC%i`mi-`zv zS~4ND`1jaII5>ipu`wt2-L`-{qJZf1Lqny)%lu_&lc8vqd#t1C7opwf7t^0k7vH0{ z#F@7L5(p{X7^#anqFecQE-~}GXx{PXZPH!W Ys%dq#y#2d=Ld)%}kJ)3C-=SZ6hLU0DHB{He3k-Lov}>i; z$>*9oYU%mNk*gF}53@V}oLRSP?l5KB1>A@Fjh~%wVZ*6=d|@iR`0zIfmnNVm!w1uc ziA=s%^iw-)emWPToP|cw8BY)=sFiin_<`I??S#qVdo)aKo`=QAc*TnqdwmtRu|?A1 zku^c|^>Lq+Le*}C+9b7{u#7v@&670cH9~*>$Hp+tMj6PI;v BX7gan`w6TYN7ynA}aIkAGH+busuKdqOxcVf+eA-}KM#O}Xd2#PpFLddWq=d(% zwBy+Kea9`*cwRcja$OIuufGxk9d$CI^y8rDTcTK%aqoPYM-igVcuR9LTf~O(>F;{q zBGnDT rP$=Vy?awK66X$Y{$uW- zbcL#i?0)^UDz&|t5 @ &8Pq>WIq2nr zsXIW<$ar5gZX~f!^_M}b;y|(P+5WPl`%cL?> 4q^qhAEuQZ=M7ebI zgfm?9-Ep3W{ge2 >@MfkLpM3Rqy{BB*R}OOST^Mgl~^~ zxLeK@^X7twPm>dR|H$Ucoqn&Peu=0yn(->&^{|Kb4l(C2)OsI*|4#HRROjS3dh(;_ zr_G-(jv6V>DpjCX-2Nzq<~5Z0)l(MH-iY1IC><%9Ykf~huyrOL+Owt|{`1T$uF~=h zqtAdNH%DHO=0i X>|f>L_JoN3o8P&ymvhI<1QP&;kJixW~oGhZRa{T-60i zq@tUBduNIs7I9zX&TRf|v-VGktA8q8A|F5;JL*;$d*YM((`zP94R&QFaNSY*bLyvX z*R0>>R(uh_*uK#2=ENJkkA6qPOjf=+)ZQ#>gsZ^TnkYp68mTE+SWSxnZFhkJ*W*Sl z#-<-kXuObGbNoP}%m71%lXzNw(}oSNl`dhzoiXp78g{6B_qy|}tF BP zntBJdRbTrxn3_ALvlU)*9KYEnu~=J2L5dX{zP)fCnt`tk4NyZZg`9H3+}QQf;+xvP zkkII^QFCj! G8F3Iwq6?vFqrc7#(G~W6GF$mQry6!E_zAHfLo8NcK|1Gbs>eS7^#>r8HT+UrJ zwM~@p4dFVg)&KMF?_ZmaD#|Fh$!r%t9lP_5J%$?D)KyAj&-Mae2i3t^lgZ=Q88; z6)91|m9Q@K^g46xWF4nfj&s!NS#|e;R*8EVo45U63%tlbQwI&uq!`ITTuH`knmvS; zp4sV|?tS*=0=jkAN5vJ7W8QotjeluomM+PiVQ&8;{hCm}!sPhL+QQV1+7odDRw=o0 z)4wd1UM$yzMP($#+^{-PUKtx_`-c@v1fyqPX`g(fY|JgbJGM6Zr2J4oeDiOMD-=WY zo-?pG4an_kQrL8}p`BM@7x_LZCy=#C4S%;2Nx!6J?!4V8e#U+yvTe^H{8w}QWXEJe zP}ftbI5%6zjG`LjPxbTb3bsR4@(rVF<_`A-xQzPE5BHc1h!!8OJ( EV9jA 1#?v)>P>!PF1;b6QhN7wfx-{}4?&)eUkGu7L6Fr?KIDwiy$V{!J0@dNR- zN^t}56AI}p1!{*c ePm>4e{GDm@e^u#KIex^#J~qG^J#_=Cq9O$Wy!C z1hz`@EM|FV iXx=A@S4lD2?D=_jB2`nRLa2X0l$9spt$B{r zv6&UnSA5~zFTu%2MTrxpb-I^-Xw)20ex&Ck?ci#JIo0%|>%rx=*&~z+a*=OB^S|}S zkJ$aL1Gs&C4~yfE-uL d5N>HoV)s8w)#j@ zw!-I|QhHdh0$8EHpO4YV%|C0-lyAEeTxM)6`sNW^ CAaI6N~nKWvm$5^XZcn7HhF?1aK&QnUYQT}b@h42TDN zfyh@j5iKL0lh}ejTh_KY1S>wN3_h~V3MWXf?b!ZYX1Dyb pzoNNB3 z j{`KA%Uf!YK`FHbh;Cq(-FR{*w`pIeRBOhxTOlXsOn6@K>>Y5!;k>hTk5 XVPMJ_dUCr zsr~EKHaR#vetyiB7Zx8$S=jDT6d1OoajZFoi+QLWgn1ZxDml46`edrM;>Rs3Vcz%V z7fjAQis#wl&Z3iNVoVNu#&VC!Hqp1;D$OeTN}2ohIv2dQ#)j@W4pU1$rB$O7B34K| zZr1y*DEe9KP9iL>>r?$g#e1lb+GwJ7GZ_C8ZFaWf= h)V2tJZbFwK>+679`0$8<;6 zjQ9Su;EFqjJ`D>|MV;IKKfc~P9?I_jAFsRZu1K4NkRn;4ED0eg3?XBgFbpw-BF5Nf zltN_RCd-fvV+Lc-P9n?Lm$5V18T&GpvHdRZ&+mQzaep7Z|C)3DIoF(Xo!9n!KF@XJ zlxyh&(GnL=nDYDDl}sVv34HR>_@WOL4T{x=H6aQv9Yt!tUAA%`kB~|u)ln1crBKk6 z*Y #YuRwE8nRp^Wxl3@wEB(=86hy$S zX15`~^=etwqoc4dPZ^Yu5t>UvU9B39%*Rf00by6or9Eo+)gUkAmc*7&TRLe=88X=!L4}iHpZ_1#+kaP$saz|T?}D6nt<;d0eTb{CS?pRLU@jI@xz3k* z;Fw+;j^E}$WIQHDSm_1wHpwLRk8l 1q7)}^?5k>14nf_zP+qF794OWym#LigBgWqbM;M^Mc-zX1RY0DbD% zCHa+LK0ZNwF) MDA=;k_bprAGz ryHrC-HZ6=e?~a_}b^tAbyz>X@ z0^n7R>X7{UwRE4U-wG10xhyqLV)ltezjA=i%eor iRcU_Sl1Rx?tvaxf>;-bro# zQC6{2^H*Ux*I)W+GNi8c|Ko%Lg(b=7k^;~E%;TKHJyB{~OKAE;3)6EMdXOJ-0Yc;b z@BjVx@4M>ADAt#L&tk`$d#%!=?254|FVE#;`ZdpEGIopIWly;N2e5xFT(%Od!9Jfh z8l-W_IeK9SJ-_Qwdi#0?#!qfwrr0OvepI!}zsLTkfAucsntH^l3P9^r8@g}@vIntZ z>@Ef)DAoFjEv)I2Wap!YNOzxsOXt`AoH%BD{}-3|8#C(n=3Vx2$Dcqx*xNs!k5chW z2~%J3miuSee>Kc GLq84O?~r@?O!AR(|xy(n2ar6RfoRU-N1 za!y^^{kF@k&lzZ!5=VDo5c23DOY=Gd_na`3tLp)jfm$lg!Jg+kRDOtbp}C8A&%iFd z`?E1~NXYStei7oJzH#qJk_p{=$U&WRYO!fKFT7J|XNs|>vgPOlTlLXB&T8COp|Xzq zAF}4#Me-Ah&4hX-9kW~bo_KnJ<3>HWK(c>Kr%q}J-~S@yk=0*v!(}4?Yq9z@8BE$< zaEkm%@-Re$N6s$a1)TVsOTE8;F^3L5`eOb9FlFY);GZwS%P}S@*{6eURPgiuG33n@ zO(aBo;<`V%v+p Tv^9=4BvmXUqDklyErb-*c71ZQS)_2a2 $JHJ((8b0$Pf&*c?bI*lvdeqR$G(bLhZ-7)} zB06et^~vEpO5gll#vB-U_N#b(JafUYT3KBzve5t6oAdMA(D5GWi~kE*Pn~QQpS|@1 z@Sd1(y_i_ $lUrI^IO2ph;0N-WRTN1 9oF9vsKVdyyDQx8N{xLzg`}h5mhEM0;3CT6#biaR!Rl3Ob5)Ke&1ZVQ|+@`r( zcB%2N*}n1s3-%o$MZ;b^S$3!C3dE)R?&iR!K~8+JM_2J5D_9;;9ji~%S@r8*w)sfc zF3NS)vIb6GWXofnOzoSjjb0#Y=PGBHW?lNvEZ(s7y2X#r+bqnQjGF|P*rkN?iSjjZ zPhU)GP`mo)K=J9D*98e{K2cR5Qo{#`Uj^lU2mytx^CXA$R4N}O*6jbN AYh zLbW8PU0F2+6bRzHBsbeWbTziAplRW9I>pA~&sEu7=QD-k`RWl Oj+V#sIpw*hYOIRSTFxUBs4W-T 4YDWUAVD_4hnwe8gXb<{V+j?HD^*NXmeq{ykBg5GgbLVg5?dbU@naxgJmA&3{|O zfBWzJZR91%(GoBH^nbyFifbn``qpOVFUq}ZI@chcuLa!}*7-YziwJM+)i8PQAAHC> zL5}g{MxK__bO?3zg~!6<*Phgj-B)vw(HT!F*riW~{SRt9hHfSZQ3#L`5qw5&<#QBm zJd-Yt&>wSp{+c8bZU0y1-z7h<^8zUjKj~gb{QX&X{EFzt$=Ya-tHE H`=0yufIcl&R7gxz_(Y#QAb_|Y8*F_IQ7&vLB -Uhfz!CG~MRKdo{ANIe;?;jyC`^yZ8Djxu3ia8pQP+|UQ@YTP^|EGWTI444N z{@P^->66S*LR(^eLQm@>5LqjLEZ&sArUT`LxNHOpyZ*|IG`!NT4NS)vaJZ0*$yZKj zJss60y%ou?c5!@jWZsd){I2BQJ%51~3$b4MwSUI{SL4TZwPB2Fr=8U&E*E&KwLhdp z{Q3ODOA^jatq<<;MAAA5BbLc#a)7gX6MgwIE9gw3c>Um7F^74t$_;yWQhSE|i1N@D zef8D)pB&Y@>Q1MV8vX42Eex;Re*Ds#KyxYpC{TcBzq zthffWNxF$|?f8elLjWD`*G_pmsHBUXv2ivtz_(|-su^`pM6hoZ08qQ|ZDIQa6GeLV zKSTbzaaF|StsbBb8PU8RjfK1n4UHdZR&<0X7t<_5T`5)Z=QB-x%HCx?Iwa@_Iz3~5 zrOvN7GCLKle0rQynv6&I>OGyTrHB#s9eeKE|BuA~$3290^WDsud!n#fRw!KC!8+Ud zOuZ94tN3T;*w0c~cq-o=&Y45~0Hos9(bCQ{;}@A0#OIGI_vS^`#d5wk<*=61?9llm zDSqTCA18paCR~!E)&f^1;gOTceWON>KuS2BrRkthN;B8C@OORV=IUs8`^SBt$QUG3 z?v?_B>IsqFOCQTB9e&4mhpL~X1^<=GL#nW{`1eBn(`QPs2joc5aQiezK+ esDd|d z?oak{#H{^wGwZ$l$77GPWl!imJqjVMIs;F@TPg=%<2BwWez5Tn8*}tObi6Cp=PR^Y z2f#&o-O7@+&ol-a+k?lsqHV+!Z7eQpR^1P|_GfbQ_Y-q{Y+68Ce!fbxdrSERgsfZ< zpFJ8-JBo&741Uch-lWX#{l#+W5Vp_?_&}PC cVaVt0Z_=hzts7QUSfRj;x)`EOyc=ZFxDHR<3mv_M;~3g4q#1sSy|A z*NWtvY1dS?I%dQh%Q2s#Qk&ZGi $M?za1yv<(!x)nRe&&D=F?|F=-4m zf2U9GZx@Jmh@l8Z{}F|GR8?{;8JZm_{;b(dSZ;!d0feItzqlQ&W1qllE6YSBv>Q~E z4pGrJ<7a~M{QHAlpibt1Bx!1Af8egCp<}jOD(?W0tIA1_Nv{5D9{+TIe04mbR+6VV zHigu*R+Pp|NN54EsGL (tBuLW}2720uV-J4q!tGP~i$o9hP8bvpSP{JJ-H z9>U`pr?ut)z5hRm=5*(rsHL6iHLX~FomNm$|1AJf%x99g2FSCfk+~Aj$MSS!DW_)y zwBH?tO9zo~kK|g~Ss%jB -1vUL>v{6&0uWK0aqi A zMmV|sT)C4}sbg?u#pvCpx4y4pk)JYP;1@B5=QvOQvzz|aFngEUlj7F=mS7fj!2s@O z5bF(u?~H4`ImKV^KwJW49xmP!JewMMDweH}=`cuQ|N80$u nUGL z!B Uo5t< z1$as-XFtQ{>3_4CUl#I2L(F32MFfFlUnPLN5Eb01Is85gKu3Z6B0QgyZvU7NL7s)n z_WIRQ+{zy3G`mANFS&}}IDE+81o^*hwwMX`ZE4v;n)F?^(I3lfD2E1X@59f2uski= ziLG3>I==z)%tB10R4&PXT5`xwI?Q~pmqz+B;Z&4y;0pwzVwK=AP3rpsgR^tS+449f z~o-W_p+Rg=jlcA5Im&ZoQIj*btgMnrWG9RKEjrP7`NQfzL2=!@5r*H6yorm z);Ggeq6lVbvT^));>Zs%A-PN;!Hn9(O5HT|^@oBMzoIQVXX7S{=P#MHTOOZ@yv^Q@ zCiT~pX-Wshiw+!dw*Apk@OZ5Qy=Y`F8N6o-ovfn(K+*2Y4$r?BVfnK=V4H5sLWA&V zBSSLXHYe$BM4QGv ET(Kr6tCCH*Fn0&dvJJIsF{m+q2EAqk% z>s}{t#EZ}txAyT2z51i_w(KmVO rJY?2{p+{NTP=PKG-AONTP@7w0?2cWndS4d#W20(>jY=n1a#S4=3K^3t|YC~ z$mpWCqmEH@AkNRPHvY?Hhu6<2@)bzn_E3w0Q-%gb)JY}ABJjq{j=>i2vuJRtk)gpH z+>j8HnzoUTm<_s|@6OK25&rm=n4#DZ3>79{`eq>o+ovtmjj04Jc+~dbDyTzkrOtUs z6z=EIYlko2>l1QNl{i=_h?>1gF&~xRgxP8j>hcf@y}zsB_ti|^RxX^9fnBela}B<( z%4Kc>&3yi~4fp}H65lD~Vd=t~zts`G=D#XJj6=A-z^4 #JqGkmTz6ABEm5l1fl~<1nCoRCWzaoYAkg()5&U%cZV`Lk@ XbdvkwcmTPBXvZ5Zo)NrmbO`6+fhNQAK$?v{2BDLK= zq* B)zLJZs38JJ-<2wFA$*E3zmnJ-I|mj9D6fkfQJ*)3PY< z#zi!b^KU~_)b}dK2^)9ww%k4&JKNGOTWq=0P6YHtTzELNa&8U5khi9wZFI7l!k?+s zNt_T&ub2OIT1Hag&W?&J5j)=P=e`vH7?#=FZN}oXhHI+xwko)6P0Ovf_*td=_f&^y zQFN9_O{kYvV5m0;Y>H9b#6PrYHjV7u<^fr( #f&A!;$Tyx;=^H H1t%o9kd$QCqs6Ke5|BDJEKi8dKLPMeoTPS3x$< zPS)|uJ3U8fD+tHVez=Hk9ggAY`ISw pa%p=jr<65VQAKRZl;HWsSEVXDaF)% z;F6`gLcm__yXBFz%g`s3Z>M!T3}5heH(V&2EK7oII NMGU2cs#72Q z6=`%90haUDB2J5`BV4rN5NkK+aRurboy4A>HGy8dOx573D(f@~dN0u=LJs|mvga87 zIC)(BJ9w=QNr07z6e6Zmb91im|BR6Bc+Og-2d+Ox+qxZpN!#BnSUbH9EFTiAW;I=4 z$-)yoG%m1ouv?myy?9esXS!Gv7O_gu?JPz>j0*i^r%s0+-E%VRv`C5Y9 JLnV5WGyKhT$ zdu#D#UX!EN(@l*yVX-C_hs4MtE7B?a)zw+<)^KN{KO=*HluPUBPu$J%n)-3t-O@G* zVWf@HVw nCY& z1?RL~53blj&^ed$7^t#7ZuZ5-?NqqnH3lxoYhL wquXJ$-;OYjq}>y0atDWQt-m8>#)_PHShyQL{P%+ z9pni7Nofi-gDnaodq8CDkQi^u**AcTCJj%ZaI3Ve%c)y4)B1agmD}z39XD{vep+VY zHm6Mtn@6VigDQ+cJ=_qPC@Ar5iYKyp88_h~Pi*Cy*Qp8G+b6YYxY=SwHMYluZLw8p zSCV@IWP6N^#j>p0{Xrapg4~{le%w0(!<(u3FvgmOAydfzPTLBnFWK2DO=W`R$JYdO+S9BS;CGI4cX ztasrjwPV-#d||&*Z`9rC^} 6e5 30~`02Xe4df5In9?5zzf#<6`8I(Ura +T_gLz{jCV5 z73n#ai&|~dAh`QcJYvs_$qAKk`Sa(Gr(X_5898}st6S}UwOqHpIy70i^L&JymDDsu zJ YH|GVkiu*Hb;%hYkv+U(MCTkHhn|ZWaGhKI_HjmZgtiHH zNI$;|9G~ZxSKuwF@lRcz&ySFC(R1SQd|Vy?TJclGVakkVj%21fcqw1m->br`_Z1I_ zwG %c#`GeCNL>~N%Wb}w9Px&!E28wt4&{P$&LUh%aV8os zc6 ha{Y) Z41<*IF0`p+TX2b|(MI7CW11nL{TUs>hx7s_@6pdnsID?s z4RvhFX@xd!T845uajD{_#=(X+rn7BCA8B+U`>JW!gqWzhRU3Eg*1(dwDaxT!*%sx- z_4s4(c+|itYux%YH6m4UFD+{1;1NZP6K%cjMA-oq?i>yFT3L&b%h5(jmoxx$q?z2) z9dbrtp2(>^)7B skP*C`;>oVatvDIDKSGcj?jNDG5 zZhhZ{VmI5(^$E^fC9e(Nbjz?3AQRGwyO|H~5!LVH9_xc8iU&8+#SqG%Hsauuti9 zjJkE1iTYMWyYv~oX?d57O{m@)HwTrszI*xr$KXbJwcYDi6zBE)tgCc{Z4U=n yI7n7WrwJ8L+1j#H+M#aDh><8r1?H!gUV&gI!ju)# MF&ysB1XsK4q8PaPMCcwuoSlU8K1>Rq2E?hMV%Xy1a$YW_wE%!y1f|NWV!v zjB+)Nw8{qpzf>#xl;7#S@Pp}0>uK!;H17`|@Cl*}mC03#1z-DZlg>6Yw!&c1yOog( z<3U;dYgtgV{^DLsRTQHl!m`fuf$LYhuRH3qoX*GhaA|zHL%gv8d*Fu*!Nz%yXJ=?@ zP0!|a$NfEI#YQn~@a+Xf2sQjb( lSKbWE~1AIRU6 zn#v~cvh1rGKBQM#;&oMaqZzFt1(q{2N{x%MN{8P(t~wvFsXw;*Wc{ri+plw(v|1^X zAupG9ir@a7knM$bk)PTBC)>DNLmcDqf~Y48hqot;u$sX!aIHBG>sC%pHnvQ-*0`vE z=v9D2_PU&&)X7g1M_9Y7?9Vi7Pxx<=8r!DrL4~H_lSWTDOpUOQKt*` HC za4lMfw9m4zw(AeurE_Tm(nq_oWZGv}AGv9yhCfm&X7M<-+<8m??Hh!%+E+RDRC&;} z0Kc4vrS51^urKErWbq_Y6Fw|(0KP*ndt*X{JL<$W^?o?305;C`&Soog@hV)&pRwwB zt8KzF7v1ea%#dyUOf44}*|iab?Y*}Y2x(}~g@xx%qqXyNJ%6$zISiM%<*u>Job}7= zH$x2~)$#OlB;C+7n%p97={9<{+LhS*dHKVxC^9I5OoOvGb@=Dg5cIt5ji-VMGk` 9CB?&9i&9g-MEXV$o+Y-DtE{V4JtPpW>!WW7YB) z!(o=Oxpl4zb*ikpI{0ok8kyW)`NODVCsv035Oele3Zt6nu*Q%w+}#_5T{ zA{kgi0 Favw$_VZ5PmDSm&E&?d7L;(RF+ zE}Cr=L!MKNj$S%=PL#F>dAxpo=iRf->J>~3zr5^?lAHdPTN<#ipJFJL@ 1qu>6gYTGM{N(zSzD5HqWj5#ndzgInA2@%3-E8)_i#Sw9$K-P(t>uPQKi6A z^p(k$664ioAg$hu6l+B6@GQ`7#23iApI