From 94be17392c1faf54c101d8f98b93519c2cd9c921 Mon Sep 17 00:00:00 2001
From: Elena Crenguta Lindqvist
TX send it immedietly back out on the port that it was received, for load balancer cases for example
ABORTED basically drop but what is extra is that you will get some log about it , useful for debugging for sysadmin or developer
REDIRECT to another port, to other CPUs, you can modify headers on the packet (TX and REDIRECT similar to the DPDK ones)
-
no support for jumbo frames in XDP
+
Limitation on support for jumbo frames in XDP , jumbo frames are supported, like 3kB but not 9kframes. Might be a problem for storage?
+(reason why this is a problem "one frame cannot exceed a page" constraint)
@@ -610,6 +611,7 @@
Thank you:
Florian Haas
Berendan Gregg
+
Jesper Dangaard Brouer
Alexei Starovoitov
From 5dc9a95e32ec1cb3381805eeb547c8bff948e8f4 Mon Sep 17 00:00:00 2001
From: Elena Crenguta Lindqvist
BPF stands for "Berkeley Packet Filter" it's a linux kernel technology that is used by e.g. tcpdump and other analysis tools.
BPF is used to extract millions of metrics from the kernel and applications for troubleshooting purposes, deep monitoring or troubleshooting/exploring running software.
-
BPF is basically a superpower.
+
BPF is basically a superpower! And here's the thing, Google spent hundread of millions USD to market k8s, no one is marketing the linux kernel, so cool stuff like this are not enough advertised.
BPF was initially used for tools like tcpdump but Alexei Starovoitov introduced eBPF (extended BPF) to be used for things like NATing, routing, doing what iptables does for example.
@@ -575,6 +575,8 @@
Panasonic
Swisscom
Telefonica
+ 2020 Olympics with Docomo
+
With eBPF you can basically modify the kernel behaviour
+eBPF to modify the kernel behaviour
+Shamefully stolen from Alexei
+BCC tools
- -^oD@H_Y0I;AC zW@_cR869~(p$l4K!O~$0&5Q~t<>S|fd?+FjNb8tz9-7itOcfnG;cc6l2jAKGaInEj zvBL4y17Rj9!#|BV5cQCaizelre=LiTw7^$0Yol0;;|Hq<+6X6Bjgw+|37dRWGK?0c zB(aJ?lh`EyA9Cf7zyuiC{Qi>}NJ)(zJJZU8Vlp^yi+bO{l3PmgL$v!H;wr%t3w8kP z_HLv|1YSAIcd<%tXVDelH7CkzoGtGM#qdypY&EY0G|6DNMKmOzX|??9NiGe9l;mGO z+gW`ydbHc9=MvQMrovi`pb1ZAL9K0XGQF z9vRZJXTgL{;mFs6c|UYIezljtQMR O_mYT%>N>w!}vST%`x0M66Wr$RE*f^(E^>fwRq_C%pN;IB*ZsRn1tRC6n9D z3u$Zv_~#>~gY((_$;O&b-vW1>NJi5Hp3Y$mwQE;hz7&dV+`0NYIn7Q2PZW`p;diei z= {B@c>uIpZMkbyUt z!G!m);TT(v?bTtgqSJ8KV2Pc6LD;fw{A~Z~+ %Fjo_NVT)SmCw$m#y#iHY{}|9%rvOZ9sO#cbl$toRH)E>MMLmn;+`M z3-N*lbk{PsxZQ)eYvZME<;Hb`;4 W2hPRMBJJMJ#CQE~h}I O8GUbjg@uakm1;q-G^v>MFzKUGne?i||Ft=p-Au7vJs67-Gn^o8qIviU z#mm-0YRWW@jD|)X%z`Ts$c&rJrk)a+)Ga+;psF_`O8z}0l#-&N;`yMx7<#6A5LWEu z_;{;)?d*zSB729SQR%N!`Krd9x6$Uc7$#@m5z#k%+?Bokz`o4m$=Ty(vU=u^2*_Wn zsKWcMLw!MB&xuS1Y3}Li3{ !I6G{5rFyM*w| zq;JQUxnR%Q=3U$U(%QzyL~)-WPupABjCZUjOWM;e B&$FrkTT=u3U|n57v~2C4TdsLcO4x V zYRchEkEae5S6=SbJd%g`N06pqOR1*=qc$GPDqTJEX7_P*c<1K!2EfA8OOJWe#$9t| zqdq8YB VhzCla zcXxrxE+5IRJ?*mI5ifi4v0iJHL*UyBjF`w$;rQv!?r&Ty!qqmL_3o#lG>XJ6JywE} zbRmA~hJm4x5n%g%jKi$5mvz|Cc)rfQ<`^|)qN=7^i6(VMdp^aMG*?~&OeM8f;&a<< z|6O 3FGJjO8Dsq`kc z+MZ_Rz2Z173`AdtVrL`yzno(oTVwr`&I!C4Z>P0jg6ei3uT$9dh`=g8wgA!&ALw1L zPq?p-?2zxftnt5`-gye@W;Eksh1175woZQ(alH0uy$*INS1eKamyK9ELzVwRT=gE~ z`(uC6yL@MNq KdwBllc|she*ihF?mc|B3YtL zM@M(FW?jq7&MvN^f(G?Ov@=r}Y 5pP8NLtIZp#){^#KMU{9wz zObrwlMif={Pc&p@F`-I(BHpjsav%8$VJDMT$3-80*Xdetv5NIghh#-5kkZ{B*vn=m zT?4Ns95zsD8pG1aWnU1kSdYI(q&L6xU3am7D2!m!4G s
Qe=~fy2+1`tt8tnhfb%O8!@-qB z{_w#i5HtZa=wN&3;8=IF UL32NN_n*6b}`d?SJ1Wxl{RsEvopS0pOzXk+K%gQ`YOVTxUbqAmMuDY)U z;_$hZeTlZ8VT$T@^%V`C c^JHf^FsD_{UQ|7>p0{+7h6+eA# z;DOZ+e`p8}>-EUsTkf&B_rBA>^t c}n56qabB)j}B#BS4ECx|y-HQdc
7i6n6Fj iPAvi(_f@P*C z_Jh$V!DoU^#a}yfK>n3Fl5%Y*D`o>qEPwYCU$H|Q>JJ|$M;I|xvb5P5O-^%|2>R+$ zc}=Bk=^Rc_LCii`H49o%5~q5-a3+gVQ zhUK-zb(~*U8rylINI867av)W43gfO tFV^&ZpBR_6k!;A4l!KUBp24Y6Qq(XM z4J2O$Akw+$=CaJtW3%P(`=Rn?2dvwJ2gc)N?0&f}5I)#;hxYyL%!I~sS{l+7b^V8o zE#bN}uIgugv%redYj=8=xyjBC>fZE)vcJPJpa|AOEGa3QcA3Kar8<*MU|l{XkQ$E)1bdmRBn8y-xxi%cBD zy6kF-*rAL0%|(s`;ftwiU#IWejsBcM)RT!nBxd3$;*5cc1P#}0-RD8QHU9|NU+Bw| zGiP87W?(PhJ2aJQ(j`rD?6x5e8Q)gew&lsR;};O<@e7oz!j_=FKJpC@nr3G~2Msr< zzx0GJ#qm$^42y-i@PzL3JZVy9Qso^lx14${=BrS9JB_R%+LwdN;V+XXkF6L+tBV;) z+Q^FD`0O*^>c;!{Z9+B>uWq+_U6|RWBV{U!ReI*=(iS_58HF%2^Dq?2!6d!OUcRQ* zk}(xx)E7Rvvk1|^l_+1b8-eHPz?qlLDbk2=w*Vq-q7mc=7lJV5otzaBcLJR*pJYQ~ zag)I%NFzw!v!or! f<&_OYMf@VfCO>T7UQO_+wRF=7<;|aZ2W{P-U4%`G-BUevQw*nWrU0#-)y5e zs782*3d2|x$7DRjsGbL3+#0LolkCPQJR#%k7h_AMrgdnXNswW#lNH7x_FN|ZuqmJn z^Q14%)-9!9uB7rlY-Pa#&!wLBk7~!RwQzzlNxrFvnAG~byzH;!(H|)=j;cZi?nE2U zFwl2{!a~l=$ok`yF`)RMS-)ME#=y=MwF`!5jdEB*`_g{Elj o=P<4qU)X>3RkkzLphv%n$-frn285aum4rJ@XEISktgSJb!vXIg`Vj@@@2@*6G? zj0c2&-2+yvrST3)F#j;l*AsJszlqHn@xn=%^3b);OxvLK@t96=s!tan3unrLoGwhy z!B7D{6EZ1XZc}?AoYBaO&mgJ-m!ffDa@x_5-u71U%AmE & zD-I?YM8mt;Q#GfuHjD-Sh{qQH7ihrGW*0?8tGg1mA?W@;F|`Fl(N>_@yNc~k9k}=i zu =qDxl+D$0=|ie##hAH6;D!%7DeB#C3lgUmh3rd{wg)T{6tTvcXmeZ0COhac#` zq*=8^zX4&gG;V?+VMsF2F}Cx{>3^fE;ES}DW@B$nwmUO4JXRuQ5u=IyJMss)x{ukc ziJHaf)b{ruq4Fl62-D>LlrY(xX!T2iS8l}ym8cqn2Jyx<)7USv{S^i_)J#3iLW};` zY8ohBofmdq6Z@4C6zRev9ugZGc?I>a@nza%#pMBX8KWIp0z_3Alo@L3JGg|~+vH2z zLtAPDSmbiie@85~D=ldpIYL`nP0glQlja*(Soy^n`^A2~Kkt_6vDARInP#c9X~`iU zGCO9bo}w&a4F_NtqTDe=&tp+B)|fQ-($QgPO^2J#YpwBkjWxNT(xzj_iYRI87<>9< z8T)0raKz3=#a;R7PLsqKH`SciuMP*sMXg}x;AvS@!2gXf^z;c`Rv3^5pIB-6euWvR zZ%u1&q?Nm#BDrf+>3aJqiCn!`X7v5#H%A@sY*FiQXKQJ1aM;>Y7wlpU#f5UbO=#vs zGkvl`x Wu*thVhLOeXdjwmXA7E@1+LMQI z#kDXrJMb>mp4{g}&xHc8L!xbDw$IHpapEyFw@d61Xgfba=HIl{?ea)0F9)sWUg3uh z_O93X*LH;+U8x#0mUqs~&N{Smf-Q_avpz55?=J`kcb_BZpEoo_4zjks-u8awZE0^` z+cPpuf)3Qqb#dDJ2M58mt+lnaPp+>`p7Z!$dK4@qDEHC!=@=PVnVDA=^9~QqOR zwzl+v8LaWMMv*4n(#p=6;6= z#+Y($>m4yMF{#p`9-ba{-UV1$S#$V2lZ*>TDG5IZONHZ!p_O=ktI{Y@p=V@flH^bC z^B_*r(_d_Lck-l%BV6F=PIGALjhLC4h3@Ve!G?n7UC*ws%kboyo0^8)A5Wo$0jjHQ z@dcbR0s{d)+xoSfh~AkQ*cJ!l7?@a?5wS+cQ@Oy4Ws4N{9UPFo`s6L8Va9E_E|+G~ z(BSkC1LDt>1S!KH4^e3HyX0@@ULAj8M#<7w2hIPKu}&+z!iR!dKUF06ig1h+4mD(> z9X7FP9$nvOm90hB)Cz7? zgmRysUley_-$~uKM^4$@^?sUJOe-m;7ByuXFuB*w(cfLTz%W;j;u5lF#ouHfoqD1Z zwUskf%ZxDzW;#?(%zTW1J06A!T++=7=H<0gDu@9bqVC?zovKu&lcbN$F50cIuZ*3& z@tDlt)7920Min+U$L9v?#n3U_9F2OW-9u!tYPq?%I(S$x@@s{cIuOX3c}&D=XQ>1A zsaUsla6V&`Mto%+Qids3-&ZaTh8}>4MqT@xII%Gd@$%oj6`ZHdN0^)q5E3hRL<*`p z4&HyG?aNx79*CnRl&sKNck2a>(O=!+r`w+Bg1q27aM<|GKRr)blG7C&%nr!@$s6hD zu1)0%qy6Z7a-QzaFR;Erj0!Zj`jtd0_{zWp6=(iA#mnvUZIZGlkdh5%#^rnmvDfNv zG%>R{`6J#Rg3`%xKcRi1w(;RD`l 9H=*py8m)AC@XMSjp8De}Dg zGe5r1iQ_Os4AWDk0Z8N67eLnWqHH^?r*ozLTz*&~FX$0e#zPi=WqN?f7k}BFk_o3N z@M8~SIPa68ie4xg%AHS4$Ab3{y0*qJ3t2LgE_>jrTjLlw2GJ2!o^;Vxup$1} +EmI8~L*1h1jfd+PVaGagT9bDM#EN$0ImE6tC%jeBW zI-<#5!1ecuXU}82=WuCZ+pp;)5KBm}x3rhRZkdnD?cVSrUL9fq+wdSuY*J`%U&d zUc`N8rbhFLdGLcZIKDSxpV#?dpWPqcju`>U|J?I44+X#3W$ULtp>_m66h0r^pXwS^ z_xwK<&bwG(%hg{lOvu%jusm kHzQY~|T @KSy826{y~TM{)_;2eJ}`cyOW=(^ zoLl4{uS`tezZ~Zk`xoT*ey-aq{#(BkczwZoy=3%52^brb>bZ@zuWRBHWk!NRyxKqi zzB@N%!AVj6Pr2#+s{Do(((z{fo+SDJ`1<;C#Z6S!c8xnv3yy@sS&Y_(BCKCu{5tLn z4XJ?*HsAD=!On6FMR|qVaV? zYbn9X&OX%I^GIJ>W_}91_1629nXhfGMtrZVChwq&OUv!e0Mh+R8BtMZCtlrvk-ECZ z%Oa!yP`$|rb~lT@cOVqfrn_LdYL >%o7-!9lqN%-}l^Sk%ylBcX^;_vLe)me<5 z&kOOb9+3N$L3RXqH+{qDIK(MEO=A6E^_{Ws<(IP^;i$hnf*vL@`Mu_~sl4wD_oouP z9!Kq*T>LPfLU#U91N^phKcmnrMqa+|2VxldN3-bhR?hF@=Jz+)!43Ql0EjN7r&1V_ zykVJ42fVcmH}SRWp4m_Cn6LNWEy-XVLOe8uF070>*}L1{MfC1?);^~yg#K-1>5F@) z+n%SWy#m(O=HBkIj;8);$NJs>Qq?*?(LFnyJ>#x&_n!s)7~>yWiqc1{CQcBXqkzVQ z6?wbt0151{7x@sFC9NE;=~T4dkVEDI5IMP-1*3UVEG$FYxX^jZzKQzpEkyk368x%q z7T?U>Wj{#gbjiEddd~+yN|}*U+}It dwC#GJ<|B7B&WW0s6P|K!E0M%|<+k))^$ zqWYZ>&QJY)1eF~j$JoM6iCfpdX|Y-nq&{H|lRSx05zJzTppKpp8DL9&ZN*xUDr97& zbpHTweef|OIXFa8
R zE`4HcL0J{)qKL?Gv!j|WfVD{ v+Ow%JNZd8I0O zRy^YkM>Z~gesyhX;2FWNU(H &d$KX8TDDUl zWr7JoH!EcITGag=+y70%eP#hw)Gu>)m&O0qzxJ*Y&FyeqdS?h^WU4Qc)fxMutl12q zbeWjQJ;4o=M0@)P(D7X3rys`^7tz0V7k?ba=x}ub(Fch~gK%C4UA844iXHZV1YhTT zEFZ&6M^Aq@pZ}3!;s5C(id=ZN7Wzt_=YNHbhKBZ1j(&N0Y1+6N_6*q p+KyjxMB94uR2X;}HzSyi*N?}pKn4O=0JU)sM1{t1_mv4SBE;-PHh=}+*W$)#7 z-{*aO+uX>n+$g)oWP(|+b@XFn;@{NNUHi0e8WfQa^!D?`Onw{3$I-&NMMiF}nVUIb zKyxbT`MLGtD+i6wG$pL)RDN$?yx+tA8MCeJ#BF`NZ;bbKd%AMDSh+4K^e>_}AAx-M z!} Ipb*M~@cI^S lA06z(}LT4k`z9J=}U~ zT|jr5LSA@iC|c9!lP_Oe8N$fe-O~%c|K~rZ5r);iKGYWV1W@_ufuYyXvj>UIJ~8I- z?JdznPjfKuT%>? +bXbf)EEqQFdVFE5k(j!0@lNFCnH*euOBpC!`# z*U>LOm<;?-4T 2SxZDb%$b0H8 zK*+;}Yk)^})XwAsn`RLJTK+^R@O7&&yTCsBamP}okZX8*LEdL( wI%4D(_j-fCv-ZB?dqW6oG`LdIn#uo;`NXjS z01Lj@b_Xw+&*|lZ{Q)HE8dDBia`h&bP(2J3>-B*c;%0aA*y7+6b*!;y#@W^+arKS# zJQSs>+9T>RG>sydf6s&B0NUC-R(3?had#_^CztT)iMN`x!rOTRrXTRf(_J7Y(S5L7 zn|v=P7KMkznNNO@QOs!5lj}~$SQ$iu;=uKlTBE*>Z=(OB-PC`%pgp~33lNh`3VnG{ z<<{SX_b{>zYUlCJrA0h?9qRvle6y*sv;7&a9dn43f3c4wz}XjALk(Rvd#I*5_oPkt z*K~}*@O?($ 3-12J6aUlmKziQA(JmBXLl^2zE>YLN=e$;osj}@5 z1wFb3?`^xFcDC Gj6X1L~KpXN9|)L@4Gs zjokDmcrKh#3Buwm=5oxaTU0>H?`?3OD qiSQ2FEo`;GY>J3Ut-~>kKgUNVlV07n zm9Ur0c)=5<`YDM%@!y}XDf6fAqYXZOXOaA;gvjUfOy+HNM($ }?tiUZAj(mZ6 zd)^d6Sy|ie$8v7%tiUk>9IQM-^1m;ReI6?f4y_H|aen;=&NOS(lE(Z}9;=Kb&S~07Y^dTx1qi&Ue+szJ%+x6Du z;Y9lD*K@A{f}6{;%iWA9lH<#b(Qm4QMGb@fc7tA!z9BdufAbB^?R5K3Oo1GZZ-7Ov zW_t4QtXtaJnmITm1O^I64H>(F?%7O{=Sn%BJy`YJKX32ug~|kce(uK$Dj`S@D&>IZ z;(AvP5C^#6j<`Y>73|h`Uh|LhyKl=`SWuQJ06|0VixxZf{a!TV-RrbJ;qpC~_Y=Ot z_ugrk;fRI6Gxnz5W>r 6Q_<2M+ZxOB!TvP8>*IBGuw~u^XuPNe&xDp#*_1u z)3^7mPhRI>`Kv(0$S-NZFmbCw>G^3hit6A;=;!&t_5SROd3f})8=3BTnl$-x4kFM1 zN4O;zLL?#kPxkI?{b|j@S%c&$3;H)Ivzf82e`^fFAJc$O9IiRQyLSQWITMe-q#(a< zp0jn!C|F;az|sJJ_#1REX>C5=2ppwN-P<9~XqQW*-X~H+Wn=0iQz`PgwhV|EgIJAd z0o$P|nL>eFb7whth+~L#A9I$_A||{J*jvCz{FULfP+W6A&2%sK@TwV}tmiJ@#R-1V zaie>KMA=P|Y0{E=cj@*|3@jkpps 3ZOeL2*mMl}* z@O<`-aYt(CuoL3k-zoT=P*4Y+&S-3(YKFM+P3*pP51pxtgu>+W%2q4zX`*QmbVxoN zwrxDJgIwY?IQZIH50eGk>Kzd;a0jk`4ib24b=4EStirfnl~@PAra-Y(`OnlY-0x2q zhPKVjfHQ)y>)bSQs*e?EmhU7eAeEegh4-oMeP`g|f#~mT7PMMs$*K`m`X9OxqZrXD z-#NCrsl9&~(zNfEcK43sGIe~R z)huSGL@S|1zT=4^)=0rJIS=hrW=U@Y95rGaF?y9vtn&%$>r=s=at!?O8chfv1fNy{ zPWD8TUVtdHmx`F{rP2g~e|`BMU%4OAjMpWUymHdhbq#)*pPf4s`B14=`@0f^2QmtT zBy_d)b;wQ^FKpsAj4v1XF;kEs!g06c`PZKvJVj9MmqCKx^YM<`Mp(;?PTPUlLuOM* z!8###xCv1+!`1R`xPVX)<4a*?Vr4|(23!|#{1u4r{e0ipPIvm<`r+NccxJCt2nvPu zfT0( d{H&9%H90Lmab@`(pTpeIvm-+mC-QoOmJ-d+-VK4EvwfFAZv?xh*Vnyu2 z=)&B82-aa?ymZB_LL>jFA*@dO9Z3=Te*l$RE&S!b_xxWI248}UBa{>rqoxi282{Y^ zvqd#s_453B_diSppU)#fm1d|2$b)oiBJ)2VtU#vn_$Pp_IimNM5h`?81T8|nO+9>W zCvaenj+-G8@Qh9{cEk2 rNl0D+t2%-Ewa40LNZz)T6a|HB1GEKizxx zetTbRHinDTOV&_Zu*xL$iTcqW4Bn!3eauZP8cG1URQ|_8na9O^e4_2RG8Otw_gY95 zM(U1)S^x4|?_{4Lk-^tpI=9OSa@-O;!lfZlu3;^k1}IXYQ=!|0jp|Tt8+-j~d0X55 z?B3qJ9U&TV#cy)s@_BJ^ZId-4qFp7xn??aKW7{Lpb^V@^{a5X@*LA5(1@K SayK7?o5gv3ks0^G;v zxf@mGrF{LO81HGjjI8DHGRV~?l>f^~uum7GgobvbBJAt!L>U*i+63k2K@rp|mID6o zc|CH58fX7)uqKb=*DYGwe_-|qwGI~#T)y#}qJL!2MLRd8FUeIA0a1$7DNAD78rDBi z0`_-01@exIe7&g|jDxv*A4ds3#*PVp5B=M13k&X+`#5x;Qa<(LVP=_>J=KS77`y9O zB)2^$|4Y#vdrk%HK2L5E0+33CsQIRU%)vUzF=ZEPOR#o5Tudu%(z~#+&u_Lyw;bua z!CwyDb~05&a?v$3@gX?Etao>gzn$^fcl*Uez^^%LY2^aSV!C4?(T~c;G9n&D2+h+; zv^pD$+Oaq{p}r7f#(z^e9DjC$@6z1g&lhKBY0;EHrzkXM_ZYRq;oSrz5ZAb{*D7~@ zuGcbE@L>W3psw2Dm;UlH*-?`3BNsxaf>q3!y3G7Exq-fgQH{blTx!9i4N_Er*Co9) z$#Lrn6a|;j2!Kelu!y{~HeLIXR{GOuatcnworu?MD{=`ZrNKHM_hPP_T{-ckPZiPZ zZ~?#+oq^1!$D15fAc MY%M_GH@1;?&JA8IX zeJZw$OR!<^`^n!gJ2X^{L6`34DZAO2tvNuQ(5@ww_MUvopq}5Wx-alkZ^L sPpWCA47>d; z-mn@!KB^eZCW*py1 s z0TBF-eUSDe{Mv4(9H78!er%qZpI>Gv;kj_sHClUrq|=<-Q`Q 3I%M#y#gG`sJFo12?JnW0|Q(AJk=`Z+Tr<4;dbGyO>S z^Og)vDk-ce{<6_=O)k*wT!woyqix__zWZ`kknu-_pPy!A6i@^MOVXI^CRqr!(OsDf zrias^RZ6W{(oX;Td;UGs?~i1a@tmJnHX?Upn=DCFU 9*rWpoGN6=x0B2-2a_5}3nB=Oy&Zo){SD?~$;4ikMK{YY~NlHjd#_s8>P zspz4VRxSzNA&%uQldnFI+U|yaShtm(*D>)W*(}YnTNSrX>&45?!8P(Ic4;e-qKeA6 z_17|XBX}d53gH{Nx<&%O=fAn|q3Kpg7PpR(VSIV(0IZ*v-i(JvK7O%9a&grVw%@bO zK*zOC2R$gEVeoSzv#IkXKK~ms<-|RcA3#Ts%E){qBi}UxNDtWl?&v>Va*a> Knq&x2Xv)EELt{d1O%xSPaOFbkxr7(8|h|9xpkux+GuTkO@S` zUM9pllnj4?y3`B9>V(|ra0_KY$pXQnYou`=`DIu~DK7I1; JFozobfxZW4sP6o7yLN0tj|tN8Qfm1zM^v{PHSS*RSu z9MM*LCRGi)vQul!A!>FlZ4tnuoozW8(#JO_Qw(!^rjIqW(}p9m&)Ta?A^p^ag?(Z_ zV1iLmf^Xt(Pg`xfL$^q?q(PuRcHyBRy@ a+Q;M$qEgquv~n=N04v&O7yo1mZo1R)*${l5w3oJMwe6{T<2Xh*aR3`|T-i;cMc z(~q&Wwf#3e+1Svf{ON0LO?ye;R)RC)c!|0z-pOafajYJG1T-^|O+<6%@m mL-+%jXf>; zpS~2yC7qRc%Z|{&Ak+7jR#sM;j+F2Na?cuF?m*PxW-%y~d^}fd(q)KI)+U*rURqt2 znd@u2(+O^r*zc8BfK0Xv_rAEk_0xN;gqkjag`AWiNezWw2yV=lTuXba#zDi|*BkMv zxtM!pFG 1uQIa7f?7IJ|g~gKqpw zMLC;pN`nD~I(AV7JKj5Awl}C00Ts2oGi*n;an>R%wFQE)xI#x}clS=*nzy n^sRh=%f|Qbp}Il;G$WldW5C3` z^%=+m3zyQ!<|9lfbsr(%I>kRXig41MfxP6xu7>_0&ao+X(4vUATsO(`j!}tSM7q}& z;?@wtoU#;csv4po)L!>fMJ1~F%yxY%XfiB7f ZiBKWHij7wj}X(Op3X?D5(s{2KVED#yVA?nfMw=kYcY~<=;f+*Y5@0pyS7!^p$ za^H?gIyv)K1%KYj*8GOQK|lkBXq^Sp#&>-uH@oi6_sjXc5DObcltXIxaVh6VCPK|I zWn&>IfDQ_=Bc(`-Jy3oXI#z0z^3V}rOH=fXur^4g0_Sm%mF3u^q4fcsLaN?8OBn}N zlRWIm*Hl@Vp9MmNj$k(Du^6w3R(T%9RN)I+0T_LI$$yCjHVJ7CIX|wn`M>cVAKV;w z`T%p8Y)06qp-Svb$e}1T#|`$|0w8-QXEA_fN5>{nWXPuG=6d&OeSPmkE|C5G{Tu<; z4%`G_KU1%&cD;~oLdLr5VNNC{eo>v2+iO`Vt3i(L1ft8dT%#^IAWfPa*g(xY2HFA? z$4TP$hNU$4pR)h~y3UOV_%E>| he;(&UHH=DIOl9Izmu?tb9?}JJTj?NnV(nM`l>lHo#8LzuAe~yN zN74gE;D_6)D`X8Oy~_nVQm#iR13;Hyrm39$skYsW4he2lEkmJ>jJER!nX 5gemJ2mLXhax< zF_&rXLSyLY7#Ld495yoDs100SOL8R$egAR%Bw5uD5yeU86R5;SL#>xbGg~^hyGzB; z7v5E^1S9mo!55T>QHU|Yi;~_iI15W#(Z|QYbFp!VAqmaJuX<~Pb)+(qg_g(MZ=K fsMDjkvv>>yZj5(O%R@b;r7%Fo&wE*~9|W!-b@> z8RjdR1rQRG$v5zyd4KQKf%~z@=rK>+CeMGoQ1eRZL*2aCU+(t4TRhiUON8m#BYoc# zB{w *C9bsT=ezF~3Pfssr2=aBf>}O_PUTJqXL5a {BQ_|)-#Fj*=bHn2{;|esfr)HNdC;4;O3IZ+ZzQl_uw_>tPL|;*71WX2 zQc>fkmcVQm9yyho^0)W)RR{+CE=k~W*7N<{_ b88t++Wz#Tb z-gw<<;U#ZXOkh=9uZ~JA+F;tp0e{`kp$=Ll2w!DnSU=3Lq`CgX8W^p2k}XZnR#%l} zW!H93!W^qMTke}0>W3I8*RSzdi8!fMdun8rQ9eYZTA4V@(Lc6teS3d|!eS(&p~--g zW(NWlBY8K=IqEX=zoh}ILQIvcDRZ`xyH1`R{n--ocVF!|Gy*X$1NOeBtW8ZE%XCW> zePhvRvT8)d8P|bzqpE67W&(zUXn14@qg0S^8C3@CwNeN*Old>~37~iF@YQmUsOhv0 zRuz) hn@ny8&f$`@HL+}PdTBd*6sG-r-SW+YzVMgr6 zP4=>eFarThdO`IS#k|WwV*5M{#}>5soi;7b0ab9h^j5mv5siD!zkGG+Fr&?ioDHA} zL8ZngcP#U7>+f^?A9WNn0($6lI1%dIw?#)~1% kNo_ZynYG1u!D$`KYONrKDsb>VyF^xWJUME53>8wzx0ms8p+ zEzvytju6xI!q_vn{|j=8IUu(2Tq~zQ)|x@ax9y0P-z}+*N!B^s)XO{(j>vy-Z!G@o z99*DgA!Mzs6#E$hjWw8*icbXp2M>5uOv+0=5?ID#akT0VI4qK-R7qxpMQpLCqhp>; zi^vYv439X?=D)r){+K);xY7~BE3)(>3MSEY1|Bbt!W{J!n@DgZoKxCnqjLnx;^zH{ zY%)(_up9mx=ix;$ko%qyo0*@{7a}bl#1e@eij5gFb3-G6Nz4Yd|3Y 0~ zy)9l^{h{(@@kkDd_yJtG#GqY&!lLq%6)k6Q=~XO?Y -EGfQpLe{gF0DD$tbTd~k#EB-jMhG^j9Sx;~%Q zyB?QxfMl Ah&GXk2V0n%MTAF8 zupY0kYwLTm_2zPVp*o(@|8r@5-ck*3i%SX(Hh0SA{dBdv$Y}tz4KDRL)!Hk{kzLYT zixf~qL~zKv{VH$!{#Wjk?_mZ|jI3d%h$51q+7M{a7zM3nNvDqLC{MWYOgt_4%m?gv z>Grs^r=c8{34T)Zx&wvIyl%^CAPZcs=DaNrah2PFqEf?BYEo~Di%x?baZPWl2H}cp zH+U`O>vX@a(Ha5y_^=Qxt8R`hoD>Dl(eEah$mwp-N?nB3HfZf&0`!rK *Y&w%w1~myXERp!n4D~MR z%bS%vBR{tfd=e(D5c{4F68=*Hc=zVL3H0Ndl-CIjc_*GV1)`e^FrBebaae3x%5YH7 zHa56z|8MYI1)DO)<+1mX=^Ovg7i6@IJOx4(NR!~Q^Gk3C8^W)>PW#*UeBTh;YTtj; z7_Y;;7B7|?A1O|KX_qsbh+1kxYRkxczW_3}q4xEfba;vHA~(bhmdI;tr3Z708G*AC zIfMj7Osqe3wn4O^OMglfDJf%G7S{T+j@$mOcBj1*?aX-ffXuD=*U3&nPOgWnDzZ zq+saZfH(iMEb1i_7n-C{)0}>}j^yBU0ly>a80Bv8PW>9UU#zTET2?D$1)4C^6&d)K zB*ei{g&TVd^td!IVCYs#|MM_j%AzxaQQgQGGnsjqmGYz%rN8{OX*`Rw0xA<97K)rq z8#-l9lDf!skEE!$;`eS%kPA=n`B33xmZ4kTK=^i%Ey!C7f2eFL+TPBQ_Sgf0N}d2d zf&J8nm2FXxJ2>OIaAHg(GO7iXrk6FHJFMI!sy0u8bSAGJgx^iFv*b7a^mVAg_v5j! zY!U5|6^lNJz-bDIKY&m2xoK`yKninSiH@$Hv*#9Ju;1>ejPZ6H&$-L9*zY9GEkPIs za|GuM_BFY-@B5+muQ3cmY=7@pbnDCCc;dsq-XpOqfVy@ff$z{w%W{-)N_g3kje(R+ z6biRqGUDVgRr0tT72+ShH@Z~WT4OO_li1IA1R@+53AdQ5EL5+xeo$XS%RAkU*bqHm z)%PDCsrPK&Ozd_dNF%+(taP%&o%K~>McF@{+yq|*7Izv@_BDKg{xZvJ%VU*%uSAtH zd1hvTp@#)J|Ig)bPR9R3)H{Yp) qO%+qQk{ zJ?A^m{Z)T9YVW<)Tw~5T##lY?>^>hpSZp7m)yU91fQiPx-x-uJmcE9)VkAX$nR zqM9q`hy^`F%^)&l5c I>v2zFwqx#)b{;^q865f*7hJE(+`Q8KYyDILa z)}jOho{ >Fw>qFAO$l(RcNZ;;bD&NjXliqxiW7a*~mp8t%e%=0@Sy@n8s8vbR zC9od=xUZum^e_&p*ug5FXYZ$)XqpEgHeNr8c&Ep1Sy3}`(y~lA!K>@q`~r0lKfnyM zONwQ$SERY`Zqn}t_>Q{2Ug3q^-=LsM&NvijRdI@@p#X*P|NaTFBfAqoAuu~rO^56U zPt|PF DZSAwDUgW{RKSs<&{D zn`{v&2}UpSd%Z(V7kVPM`NjKQUtWt{B6JO2&L~rj4wxtMGj6+lFlp2i{=#%c>R+cI z>M@<10)G{B_uWESHH(kF`YRVGeKEUsv}|0j&CT!>woT5d_FJRu-@zKb_cl69GL6wE z0^8I;IchrZgYd)H4#bDE;58W~s^Is&sa-SO< z!`qeSL-&`muIvr(hUdcJg6d-+qRN76U;%|`@vfAK^nf4D~ zZW}M6^|N+ZKXGcnN~Lz3liJw^pinos!Tg>DHahPmNb+m*7&J#E@5b-JHux+ZN4K>` zMkUuPR%|h3!c?+z$un=oB+Qp3@th5rpnAX-W}!52#bWOUX}#bhO+YpG?Fr>^>%;Tt zm$fA%)T_Y1rO}}$V1NO5uiD5m3!P9621z`aBK3!W#zg`Vgo<+Yj6-h@H97u{)$|Nb zTaXf1?tndAAr#bVy;%dX&%Cd^w)VzPoW>_u*m&N)NsGL?kJP)0)Fra|y^JB*5}4ZB z0&{X~UC)>M*6fHOqSpqWy5As4yxz%RQAs5DXV3kPCaLS$*!h lF z@s4es1E=CvCNE^gRmc>@NgxIb^&0>rrE<|LqV(8}pyl=Z^j7qCf4X>jKJ4Xr`Ph2% z*?Uy4*8NRaOi?d|_S~1yN_OHL8X_Lx?bJBZP>7wb&~C1?`zGwWt =TYMzl`m6XIvS{uEu)3~&txe%u&6{bf6G*n>N>HkZY_AcIOS(C7lTPXVCDaP0 zmmYd@(gvudfIJ`VzY^?8$K`IBtH6 _Bb zn+MQ=mBFb1rQj8#V6)Tsy9JQ>@QW{SAd-}|uvV5f21I-x!Gnc|rhw_MFaLPG*+|gX zBBIizPGE%}>^Z)UXC|DZBpt>46K{FhrYCC!XUCtmxU@*Hw_`XQas-ag{AZgyICTRQ z*kUWWAW}`WR(uWBITWzA$7!XGV}q>hpu2DTX}aq=a%&8MNwzYWW}sC(#Vhjd`?csE ztQk?hSPA~BtG~DK*m6j08nFl@qWaL&PhL@++Ul_GPx5wdn;-?&?s3dxrt(GdKO*lK z)%qLJ`hwy{=14ddC8g*4mUdTWcZ=CguE>;)`p*<$tek3|=kEI)MSzSp_D6Iqi#!Zb zI %>2g{37GkZhK&s~u5Le_v2 zQNzUrU2RlDZojM-=;9m(w_ PWq?I$RUK%&w# aHMa>*P0x63=#lL%AWPkBWqTn *v&(Cj96sDNTJu|Zzuo$UUKF}8gJHm71aWzdonZ-Bu{w@fxQY*)5(*tGaB>O8z zIfa#tQ7R$93{ SNlqb1t}sT;&b;Dq!&qEZS7S>D;0=;@qT&rL9zyd2iIX?=^!3G z90Wr$`@{q@ClAlvabfKBvPtYr($vzrrehlss99sZ!7WacnBP*Hnv_~m`WOQR0U~wS z+lwSSLbD!xV`mp{1`OWmg>oa`%$EKv0F*C6gepZVvx$f(>*^B55_t!%tms4zQUnDB zwdRCf!8$v;+HdDe;}a88r;g1mZAr5%VMQ>Z0MBMu76v! 1o_#}rPPa>^y*R6|p#%(w;mspWaxU-Z#pP-_~ z&|-Jg`+g8(R*zon$;>M9n& )YCVC5nD z+W~vRi8k1kb+-gm)}%IG$h$^SI2+>WC8*fT<6ZeFK^Z%KGTn?p#P9tt{=~%9?~92Y zC*!{T^)q}m )%IwlTK~Sx -`Rrbc|cdm5QpmEy~nrHTMW={J33+>n6 z9-}HjnK+W70-`4S-;p1`Gsw`Pn`Y%GL!u;hM*Qpem47)TkZI?s<@|LKoVDec9f=!l z$%xNQl-kL^Q6Rz6?=Oa^koc9~yK4+jPUP4|)9D-v>N?Dl Uvgtuh?FaS%US zgDDVK`xeBQ)6y_d4pageQ*k9gU!Az=yGmGxmOur=f!E?{k5G8!Liy(7+Bv$XC-K zN)>IjOz(GsdT|cV5E$FZ^~-LHB8Aj!_&~i~zUzrnLPg`Pex?XwrSeQSbpKWvu|v-0 zlQg=^i+Z&+-t&C*G$*~`Yi@%N{XqQw<5RkGyMIAU{?d8t_sFM^N>`p^@F=9_pb< L4I$ubOx10-CQlypY1_TsS19PZWI_<(v8#o-@8=si-2d}jF> zCazK{4Duxw2*LX&mSb~sJ8`30WL;qGdOcDV_|7EG2y_8>wYfl?UNV}68$mX8Rtx5a zO)yJb33NLD8Z@nK5N}`qBtL =$Yi;# g%56cYAc@ zrv!4QD (%? zR}z*(38 Jm~gRuaxCue!ujxj)r+!? zXmm8V^5bvdD~mWpQ-7U^ig4hdYCzY4PK`^-+?@^F|LOB) 7F^ja78-vsG5aYC`XUR$MVB*|EWu6jP%_p zTEXN$pdrxbW4wb7yOKb6k>{W~D(OyA{wVm%+mT KwM3ZP2`+*5g|grbAMCYY0Bhr@pPg=n;E;!d*is70yGOLE|djr}`NW5~2^sXrRq z%BE5j4wjrf?za>I_$pQ2_n=x%a48~H@q9EoDmZj_PX5U*jF`_eNDS-|a`Kb17@iwJ zPWIcCWSR8h0%{ 3*IH+}nn}I@+j4D4I z2F>llRySoB)&m`ix1J4*%Z@1xmh0z}7lf0%VnLoKOHT>=cL77VXt14_rSFG~T9>%L z$ux_qNmn`VQ6Y`VJ>$p0GttlyW~}goVOR`&qE{V7e=22>ZucE h#)vdGvE66w+Khb)d>GD)NFhOn?^r#B#D1?!SuHU*i>ky2?GI&Uu>Afl%QrV+fP z`A1GD6n}%4SAqhr9_G{7AQwd}j#L#|egqn`cotip=JWZLYyd>{cT6ogIE5r+Xt5-2 zrb)iSZ%61@BZ#uygK%VkB$ak3O=8U>ha;xnX{IR39qti$lzh<4J4D3BDOK8rt(lfz zjZ%3S?Tb?tJhnLhtxmXYtWc;iRkYu+2{@d2B0FaDk|j==P%x@FGva!`t?{jL1~X(d zqsugL$NWJv7xCp14adrhW1qpVaZwxZR>^CMR4DMl1k5{3^J7T$Pjl{%Gz_O}1fLk@ zN!kq2Ds`66(1|yNGwDo&h!SE*82O6RTKN-vQFMr1Kp@^Q4{o!n1zv<8y*N=4=i3hm zDDVP+(dn$tWY3#^T35Ji2jV@-Y>NkNcalcPkaS*folitF1rBOL?#`*KOtN+jVao7Y zFjKR6xKlsQH!fK Ab?N2cDvZ80HA$lI^-FN$#T8}`K?HD6Z>4>vwwol#a#qQWtKA_d< z8C_5yNC*K`la-NP9Eg+J+40;RYEG%8GNz(Wj${NRuCrVgIhdQYg u5+n0o>-bF+41cnnHgT4F)D9+mINr2d-6Z8@#gB8Ap@D|S MX-3b<1(22mk!n|Hn$GE3rOU3N?n z6!vd~`?P=JMOD_+y+Z`a3ZqQv$wN@{?W#VCxR)fq6V-JsZm+zqgGwcrvX_W`kQ9CS zk2z)aIF@=viT#5d7kMZ$Km@KpZT{&S-{4- $zVgyxkpp;j+=aFA6tl*`m^!WlVTe{MOHDNV zZok+OEJGFppJfb2P4ZRzS9sBX!8$*(HGDW^w72YyG07Dbe5|b`auusm$@p$Pdr;pP zwSjk|Hp4kDMZMsNM2}pUoW)yth_9E`*$d^;vdx@wPQ& Vc1pKA9& #pK-gXIdf=kLWz4 zMvf4GR#qA$?9*NG&kqcc+*f{f8eoeq=F?x8GRo6lLebzp%>ZEKv}L7Ookmxwp3bt` zxtkImFA^ML1*W#KS=?4+6V^sSWs52cbh_6C{q%80tnNelr3uu-Hjzg`fB12l$j_^~ zqM=vQ%0VtFFw RfQ)K4+n=;~Gsl Q~C<5FBo1V7Yg0tN6{wk32!RZE33xE2V=Ifdg+&ch&C1GJjVZ=0H* zrZ+?s;zm{BIRPDTClE_+7WI3>9Rtm_!P+}M39Y%+Wy<54ZGdr^n%t&q%O<9B#t6n# z3%(i3mkmcV{qlDLy6=CSB1K+^-9N#+9dRaqh8nLFUD{ZMSmU@_PdFI*VY2hUEUXms z@5>E0W*@G}G2wwEhrO*pCPkOZl=<9|3*(mP<%t8pdIj8!rCGfmQ=EXTNoV5PgyY*d z$Pjg_B^M-W{tq{esMG4`Y3H53?KkkPuC9R+p_0PF#K*_SjOBPNovLRC4mgu^(T(;- z;mW`lLezJwi+1i@7X|=}*jwwTAmt0u*P#5{OMf>6EsLVPgK Vvf#m3~WCb6^NK$5k&xyUV?7)qqpg@0YQ}~-luHPXU3)Cq?jSJJr6sf zW;WXOaTFJ&O3e^rthV~=ovlZ&6Ii4M(F}ZBI9_GS6lcaZApmx*TUxhqpdoKj$*I0+ zV0s4EU&>qx!C^D&e>fwf1f;;li!p{FkOjVaz!B> T?mC}3v2a6Kmm z>ggU1FFUFJW5SRY>bLkedCoTQjOf|>jtuXxZP6?9!_kkVU =`K4pD)Enmu@4yIrBs*&UC{|Hvk`OTw{T|m6uqzk-+uqYrtSP4R}uo-*gxnl zmFVQ-%`$+ZDtkK6s#?G9weA)erhS-A^NlQ4_?QrHW}d%o{tZu77bt ?W+$_%}2%jbb2SGRP{Cy)fjTOxs{}Y)T!9 zFRnB!=Kr?NTPoB6vEWp}hb9UMo^DbFK4W|>+9>sO fWpz%vofc*$AnJOrdt6MCWy+=xc zLyd=1ujJGecaIQW+GL#z(1|a?OK3uh5YUScky-apmyJSSK~t|#^=Q#%!WsMM_n~zM zwO5*lCO9L<%*oK@w}x;q#%k;_t8Dd_LAfLW8kGP62DzT#)ZZsXHnFAZ;nP;nggICC zMQR?aU-cOewvUfnis0nJTI}i;h0syhoQu#)QPA~T6vLiqKQ5*4377%iBBE9xV~m<3 z<__S2t3&pg$HZH%ik%Bw1(BH#X3_5`Of90A-&YAfJOFJ@ZR`1gi2c_eJzd`le3pQ@ zY3Tst=?pZ$Z?V0Fg|*tCt@8iE+@-MAb=^9Z)U{~GvnF)EBpl`x(<3pCgE f0e>RIL zT;Ys8@197osmru_4;1(-Xxnk3!J=13z{P-%KtC`s@&A6VwNUmHN Pl37TvcbsmESt~KkN6c+U}!xfx}$f z|8tM7*#GYFPmUO5@l$7QNI-fv)YqRe!#3uTYYe-9GsavupvhxYJacRVKvW?pcC1F% zbsV^)fS1%B7&DHFT>v<9Hbh4$-s)*JNPxl!P878 2RLXNc= N=P6W?~Y8Bnv?nu2h_qF*z(P^otS zoA%6T>$YXncDpssSDmufx)tn7c`sEx!we#SnAD>{$L_y*4Zk=R<_0Le+vz|*VgR&4 zE=Y8lo=DyLjRUbOF#EW04E%DfCOzqg*|ix_K@(pGb1{C~=zrb_2wNAfFN!^Fpy8zm z41uQSf0^MM@qds0AMmc%wvBJbAgJp7@92~>%Gw@~% jwdpPyUaFwH7 zxswp$`awfP4QdK~giq6za?OLvsztx?iv4jVgqy*cbhj^ndTgU#>l}1x(75CY48t;P zM fVY~rHB6Y4J3Kl#+S3q4YWZM zmD~W4^>3B(a(m0V^dBeHQX?8$rL8qj##;7+uaF9^01+7uQpHTKaynO2)R5#JS}=rc z?`s3HBUq}aR}qmy{r6~;2EE6gp-js+u_x3eZ &yv+b!>OxVKH;2`g7qm|N@fFptt z2ggbOLtNXyf*=6V6mBGN2_c!UFrdnLjzGEfhN7xAv2mTbDT*bT^2PPzeV5|| d%&U~Q3w`@ zn4)O4JEVJCiXPWN{ZOKRw(HKYNmGPpKv3IglEbL&tu+hGxUB`9iI}5pB3w@(F3`pF zFIENEl1>}`4B>=kpQALoIMbT~@8zpUiCuWKw6Y!U?@zqh z@i&WFyZkE|sxlW!s5;6M9xK1OH8jmLM07>e=|vqZ}`w^{C_ IF k7g4(L@Fa2b)JWgCV+~8p7WD=J z)041xxLIzLeurzd*e|Vsf9z}xF_Q7- J w5#>0t#PP zCxO>=+q*8ViK`v4F7w!+pqt{A;9|0~1Hmfj6o(3&aM(|z_tumsQBV3VMyOGXM59 z%ZXBQM>T_>uq_vogaQa7+f_Adis?>iC13tmI1;0Kt1CMEIZFVCF1}YMx|+Td5k|T@ z 8i9`N8;GONPF58WZr%L6aew9h+otxmSFSluhs`9<=#o^c;%hJ3{ z2nqGVFFYawUMY)Lj5`y$H$FiHKY*RDcL6|IEJ3ds^<^X(>qSToU9(3POa%uCR+Oai z0m4;8y!QSRnNo{?;&>DZg e>>j7T4^-=m$E}x6_ZN $C_m~`fgdWS}%0bAw)}#x43!Q^5ase!4h!#nnPP2rM z@b(4w5!A`r=<8j@e&CN5-@)d6u}S*^oA*#@d|;y@Hy57 8CXBW*gJB>lqx3!UZ|ZCQI>SU@y)|3e-fY4L$y3w1N0RlS%rP zwRI;WO%Y6X4XH*S`(Gb 4z9f8Hl_=3y#Smg~W~4Bgi sS<1*h5Oc?eoL+kt6%sdu1%v$NW zT~B_{D6PVf{cbb^pDj|MMF5`6Au`}wj?rn}gX$0LD$Pu_aZuh9LS*N>>w8{ZT= z*ot3@9jaVG3#CGoAc>Q;OV6U9K9O8Yd#b^l30~W6p?`oqApPWyYz|^Y7|$K=H5VKO zBJ bTwroim)+b3{C!cvYAG#QMr??HYw-xjuHndRQlH zu`J~+(}mt0Y#fxW_3i9ImmF3kjnW|d0|PS F&gI3rAU)%H9+GtTU#8H JN@Q{zG>EagMDBz z-U#ZHAaz){gD_i *_a1i38DaaWs+@BCr(7G-oMv2M!*z7W2l%hF| zc8=2wfOk%O$ie!~(82L0J2Uy(qSvs_TBX~!C*|&j@R=#{MhF2=SwMh&v<4Z+y1|ZA zx%7chl^V2M+N5Ln2@{t8ST8;BeWPdZZ0ni2;Y{^&?(03b-sK4~4d}4p_>2B#>KTv? zY<@4dTmEgH%!C`#6h8#UQlG1i@ULG;qmUWm>(J^efM?S)w?rYd_I=gjd19)kb#bsk z+ZNM7Zq?L>D2f2(b6)3jJN8Q+Mferz>mv6<$GBs;6g_1TGog|)Yg10Yef4#zf}%xf z-8LwFp$u_}V*E=u-j&lQ$pF{d-@vZ@cDVsb2vd+%dVeJ7N>bS^;5j)Z)>vd zrRKN~H+ckx1A3vPgBpB3u_%R0M$R8_;ji7=JIkv(&Y2dP;y>C1E7S1_YW@ST`O_7V z-%m&g2(&M4)MglE?e6s>BxeQ-j%m;Y($L;k wa`CpPt4R#^22}>>amNw8{a~qgX_Vg+})$A&Z#K_j~LjebEBn_2R6~F z>z!qC;rC~uAqy7DTXMN)#u{dc)?M~7so~Zv7RGcMXBBF3PK OE8S*`$E{|cC$3fFp>S^bVQBC zRs~HQ-uqA3@$vBltI=wQUrcA|m5tU`!NF0fEcUzew9iacMkh=u{Ggmpdr`<$#S#P{ z2#K*7^z1&&bQ-FJP_LGU5|xGfKz^|9A2Hvp04WHXG_ @zxbF_@cw_m&Sdq^(2FtmZQUY0J9Ce=woBf~j5R?ZQn^>W547QqMLboo z_HD!ZmL<7Le^CTnNC8n29c&a9js;wKjmr%aPA>w<{~~`7rp}m4aecWx5|Ly`KJ?o9 z`lepo%ow#e0@isJU&Jx^J2>?W8nSysY-@=>{5@N2No_gQ61_mee`v_9z6!MplwwqQ zU3P`e{7=R(b}RUF9Av%rCo%VZ-wgOOqx!(3Ew${3P2QYCH>1}2gz*!W0-=QdH~q%m zxjCa GIRB*kTb(u+IMZshJV-z`mdxv#Jz^lFyL%)~iVVC*66*fYI(_r7&W{%vxWh_c|( zOx!xcB$?AdzuEMI5EC;cMS7lxCgqoCIy=0ouK9gz@>7p nS^t0aD|TN zd~Nk$!yoOwzs5RGRjHv9|ND3w#!DqA>}|vUefwx&?9HrG?40utpdK!~gdlgUNNwxk z1S$ESMa%WZnvYt{tHj@uOztvwDMikCm~Y=kLv7I%gTeG0Wzdiz;AXlhQ%RV0YDgE| zHw#qHr`c7tL WNgOC3X42&1yom8)|BNexzcgl(D-Z>vtHBSdm2W-8?h~hMD;o z>I42??#7hj^3PtHkyY@EGcfMz;}};jqXRLW)tD4|TM4Bo^;{?F-zYhs{}NYjM8&)u)#9+9GvgsGq7<{OTJukiEc{D8KMYp7 iH&!@=LZAXgJm=n%fcnY zms7;^gV}Q>iB#q~#f?(ZKMWr=$M`8!#WTz#hS4#Yvn|`u>5O$T8+|%SCF!sNrh~=N zC{BkdaDEVB)x0nU( ^z*fng#Fd4XVEDiN+rlaOh z&~h#uFos4Qd+lp)`oA=o=`4%(@x1p=(7@|Mlg90Qw;opNGH>o|1HXzU%OXV^5zd*@ z+;zG&EkMY>>ZQn%9PZn$G!dsdg;-dOmvP%NuFH#rL=7W~OAFrcxwJ&RxHH8-1x|RG zU~_}ySWI(x Ne t;ihfS;__4wAirq=|L^DRK`5#K z$t7Brsfmr)Oln{cK^T<|%WmXg!{UGAvF*x|lczI&-nQ~r_acqs^H9MI(t-i&e=|dG zqK}yJKbFp8{!@BR_F+gVN`n5G_yz^n7&0>&-P|pG$dQZ&9PnBtK)Ts_Rc49{2eBr# z-vOdxRGK%k;`RpQ6> =If2W(_YS-0 z1>2()P4lb47Eu64$%9RxqRA9T6)|D3gCQ5#$dcvq#bbKK7+|I4gE3^tLC{yj-=4|< zpjO2qr610=^G@-*MhH~i3&$2r$%lhVd+j%S_#RvN7kR^Hakj3CB<;6LUvE>CDvv_^l}BG)C8@QW`&~PBB9V ze&V?bXx_`5Cu)-I=Ycy9T#H~{5z5us%W*savweT`w)=@OpX{mRWMc!&3*dEsD# zHqiIoqy;Vj0eT^lBGcB~x8dJG eLKhZ KP*AS!aW)>^*TAeEON@rp6u4@ zR0zjn5mTYc995%#$>Q?>?_shhPQC2bTJ5;yrH4g+PL7Kz9WKMsBNDuwAPM^0Wjg19 zV;+?yp(O`Zy7S2C!W^GgT zfzkt1_V-vs0 t5GXW#0HT9JB_l@D=x=|A0R^*qy$4R_-vl)4s zLNd+WZEEw;&jj4^#dFTCF7-}Fwyt(TVcg&EPUYKCS~vPdp?P8NYQ=7l6mkP@sg4oQ zIH9O@ca}%IToa$B3