From 6c5685b01b79fb138e86cd5b066a8ef4aa7cd902 Mon Sep 17 00:00:00 2001 From: Kaitlyn Barnard Date: Wed, 6 Jun 2018 11:51:27 -0700 Subject: [PATCH] Blog Post: Dynamic Ingress in Kubernetes (#8865) * adding files for blog post * Update 2018-06-01-dynamic-ingress-kubernetes.md --- .../2018-06-01-dynamic-ingress-kubernetes.md | 71 ++++++++++++++++++ .../kubeflow-ambassador.png | Bin 0 -> 38120 bytes .../kubeflow.png | Bin 0 -> 30194 bytes 3 files changed, 71 insertions(+) create mode 100644 content/en/blog/_posts/2018-06-01-dynamic-ingress-kubernetes.md create mode 100644 static/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow-ambassador.png create mode 100644 static/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow.png diff --git a/content/en/blog/_posts/2018-06-01-dynamic-ingress-kubernetes.md b/content/en/blog/_posts/2018-06-01-dynamic-ingress-kubernetes.md new file mode 100644 index 0000000000..d2237ac3bb --- /dev/null +++ b/content/en/blog/_posts/2018-06-01-dynamic-ingress-kubernetes.md @@ -0,0 +1,71 @@ +--- +layout: blog +title: Dynamic Ingress in Kubernetes +date: Friday, June 1, 2018 +--- + +**Author**: Richard Li (Datawire) + +Kubernetes makes it easy to deploy applications that consist of many microservices, but one of the key challenges with this type of architecture is dynamically routing ingress traffic to each of these services. One approach is [Ambassador](https://www.getambassador.io), a Kubernetes-native open source API Gateway built on the [Envoy Proxy](https://www.envoyproxy.io). Ambassador is designed for dynamic environment where services may come and go frequently. + +Ambassador is configured using Kubernetes annotations. Annotations are used to configure specific mappings from a given Kubernetes service to a particular URL. A mapping can include a number of annotations for configuring a route. Examples include rate limiting, protocol, cross-origin request sharing, traffic shadowing, and routing rules. + +## A Basic Ambassador Example + +Ambassador is typically installed as a Kubernetes deployment, and is also available as a Helm chart. To configure Ambassador, create a Kubernetes service with the Ambassador annotations. Here is an example that configures Ambassador to route requests to /httpbin/ to the public httpbin.org service: + +``` +apiVersion: v1 +kind: Service +metadata: + name: httpbin + annotations: + getambassador.io/config: | + --- + apiVersion: ambassador/v0 + kind: Mapping + name: httpbin_mapping + prefix: /httpbin/ + service: httpbin.org:80 + host_rewrite: httpbin.org +spec: + type: ClusterIP + ports: + - port: 80 +``` + +A mapping object is created with a prefix of /httpbin/ and a service name of httpbin.org. The host_rewrite annotation specifies that the HTTP `host` header should be set to httpbin.org. + +## Kubeflow + +[Kubeflow](https://github.com/kubeflow/kubeflow) provides a simple way to easily deploy machine learning infrastructure on Kubernetes. The Kubeflow team needed a proxy that provided a central point of authentication and routing to the wide range of services used in Kubeflow, many of which are ephemeral in nature. + +![kubeflow](/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow.png) +
Kubeflow architecture, pre-Ambassador
+ +## Service configuration + +With Ambassador, Kubeflow can use a distributed model for configuration. Instead of a central configuration file, Ambassador allows each service to configure its route in Ambassador via Kubernetes annotations. Here is a simplified example configuration: + +``` +--- +apiVersion: ambassador/v0 +kind: Mapping +name: tfserving-mapping-test-post +prefix: /models/test/ +rewrite: /model/test/:predict +method: POST +service: test.kubeflow:8000 +``` + +In this example, the “test” service uses Ambassador annotations to dynamically configure a route to the service, triggered only when the HTTP method is a POST, and the annotation also specifies a rewrite rule. + +## Kubeflow and Ambassador + +![kubeflow-ambassador](/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow-ambassador.png) + +With Ambassador, Kubeflow manages routing easily with Kubernetes annotations. Kubeflow configures a single ingress object that directs traffic to Ambassador, then creates services with Ambassador annotations as needed to direct traffic to specific backends. For example, when deploying TensorFlow services, Kubeflow creates and and annotates a K8s service so that the model will be served at https:///models//. Kubeflow can also use the Envoy Proxy to do the actual L7 routing. Using Ambassador, Kubeflow takes advantage of additional routing configuration like URL rewriting and method-based routing. + +If you’re interested in using Ambassador with Kubeflow, the standard Kubeflow install automatically installs and configures Ambassador. + +If you’re interested in using Ambassador as an API Gateway or Kubernetes ingress solution for your non-Kubeflow services, check out the [Getting Started with Ambassador guide](https://www.getambassador.io/user-guide/getting-started). diff --git a/static/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow-ambassador.png b/static/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow-ambassador.png new file mode 100644 index 0000000000000000000000000000000000000000..74c637bf49f5f346af0e765a6ba5372d974d753d GIT binary patch literal 38120 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 literal 0 HcmV?d00001 diff --git a/static/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow.png b/static/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow.png new file mode 100644 index 0000000000000000000000000000000000000000..ee86e11c32358175d4ce24b5c5f5127ba3ec6fa0 GIT binary patch literal 30194 zcmeFZbyQVt*FL(j00l%vMCnqxb4y7{NjE6cA>Bv{N`ulRAX3sP-5~-ZN;gUhNK4n5 z%Qw#Z{m%D|GtO_EasE2b7>)t#wb#1udC$16YtHoqDat>@y?o~~3WdUzmJ(M+q0VWd zP#71nF2P@fQxeQjsLK`RVq%Ko<_@-&`fezcR8UN;i>itnVaK{VYyG$D_;0R1e;6!+ zTH+>nfDV+AI(I=7hdyxRrc!gsJF0VCf#Jb)d<+twd;<-L32xTneSY^o)bAoO!x5(J z+tJA~_uZ83uSaj!Ya7?=_x4V!QRM-;LEDBJ#U#)!bvlOu0jrv{Nv=SALQP$aX?&Yz>`z<7g~BF=!> zbQ#rT^g@>kvndzDhyIa_JVsME3dQN*dmqCmL8#dU{uma5jcW48km6#|NW>O7!9wMG zJjo*Q$-+h988j&3h+MgdvUx%ncU45^3aX;IdiwxXK8t#qaC$5COQTyBqhR%f9Ie8a zb0}1XNSYkg49l@_(X98wLMe8w)(a>zt-fzWC`AmB@Wn4zHA?wBO$KPL9H64!W@3e< z8l^B%7)KsVG}+E;eg6_D{T2U`L$r{+`~;2cVh7#H#nN{p(hD+;!^(4QNAxR~`DA)q z@~hgUzuvn0<*kvHyygDhTT~{CS{t4F*Eg3KO~1sP7_(45OknK|zM}T^^T||_NNmRM z7pzz~%F8pZ#^K^?MStP~-^U!BQwmg$o9|%g?aH*9-k$&7b=0}wFQLHE=69o*5=*y< zlms>BdyXF^(&W)8n#0B^`*kZyO8gw*!!Ko(#{B$zr5KTsDw;PM4+;n=P(EglPYdS- zFl_fOh)jD8_sw7=Dr5ZOndV-(gL0y5;#W%%O%zW1i9&6NV5mLy#Ut{;*7POid%@`H z%X;Afk@y1=npWK(4+!Uc2?(1EG%?y0FDE@ERu#ql{o=eWQMl-pw=c_VF$$ZUe!ar{ zhUvF)UGj%uC?%Gt_%E#U-yh&y<7~TRCpr?yd;O(21-leSq`wiBf%pq1Np;FhsoTmy zza^L7q(EPFoJRpck6b$;+-z>9VG|HJ6)0|-)y-ftSN>too0FELu^BBTZ= z$MEX|mBd+;$fWS2Cibhb3FRIikw5qIhB zQ9lxig{WJRypem6zpSlr0Udp33(Sk*bTuzV*Pr;qFfM&!)4#yx8mbmrAG#g-;O-0a z<~g>qgv>9kU#u4bv-}qvdoJ{x>tX0oN%Yi?kF6$rD4X$7Y30L^RY9-HpX~id*W|Q# zGxfW|=*i2oEsiX%l*^VAe{}ySyi)Aw>uB%Dvr_&`ps#&Nd*y52<9D^Pdv$9Ystc;U zIdwU-DzD}1ivpIlR@#3t_l>8!sM)AaiwKMBy>ApddwW{^BKAemgNkN#zy3>N{y1Vb zVrf6sTRHt%H4~YHV*}NimyN=RmTtegLm%o)>_i-PTZgEFxQNS|%gacVT|dbv-jaKX z?KV3%R~Xl0OKqFy)1j81c)B^pt%rqXhrI2TC7%9^{VtChS6Xa?9JOZqer^p8_NXn7{Xox|EXOXWuQ~_x7(FZ-E@Q2k zojjS0t4?)1oBO#;xyQG>nVp?%8ov0Tcaf9H1k2=iGW!qX-|ahNtAmR@Tk_kd-)nn2 zJ_oF*tZcUpx5cg3_Uw5BN^vj9&W$FcNFrRR%xlWwM#{9jsXWhtNdJ~4$a1sk`04G|o)I#)eOF&ywTWMQEhPkwCWFgJU-78T#DuMLa^he5)rkFib zJnn3Rv>*9)c1c3`FFLUF3??%sx?7|y3#`={n(vplmHV0NRVhtqubH9m)uTOM-f9~E z>fX6GZ!>=tyY7Oquj%b4w~cT2a@KQH8sQlq7{!?4UOE3Vre%0EZIpYI-2T1&?qX=j zb&0U*jEVAz8wR*`;Z+U|&Bwk6g4c^I!NLLzSHe^}i(9yARURu36-UpZ+(YVfM(&1*Lc?#sDYj%{Xg^kM|&gpGOo0h4<)Dhvq)&5D1 zn)Ma0&C`bS?3n14iRERyWzq@F*F%iU0eG2YHC}uhw$J*htIhD-w_F%~5$;BM^($?1?I3?%*^$ToLC7s%*0(ELD`I$4 zWO4GkCVJM@GtV;*a=Qn!^d5UzEjzDTH!L_8?9?3XRHWP%%(mH|;B)8PSa_xLR!8Hx z>F(}Cc%$c@{Bm+b?Qw1IdeB;ZL#ns;@8+$5{Q%n617tD6L+-jqNrN_Fo`s&-hv$!q zgn~S`p8D`^Y`KiC>s<;-=}V0j=JZhCn^-#NO#6|x!fMh;LsJwc~v1NNSDHJufewiXT@t zW!p9Kimawv8U;yuNy+1EGj&m@CKRgYGs?A$+$RO6sR~adL9pcBc@&DHWc<9`Z;G>o zd(P%4leL+i-w<(KeJL%{Jq5SnIP2zBvxY?N~IM~>ES=qQ**?5@Q*wJi!XbyIYfBr`WPqQ~NK`V<({_|Pzn;?~$ zqoXaFmDRvv$;XWwv&p{?{GEjU5c_&21gc zZLBGfJL((QI5`SZ!Ak#b!PwRO|GclY!$0i=7Gp&|VP$7wLpJq~-CEiHdj_c` z|8k*`;lHo5b+WhoyG|oRR%1(JD`RU%2e_8~-#4{2vvIU>Fthm|ZvF3%|H}j56dpbL z_cQ+6wOCpG`wNYv9t4V{O4y{|M3|&8xLYFTeO(HvA(0RIQ$c&f@9`m{(Hu%aK_v`XbvuB zHeNIv+dnRSWMgD*;`V>NlpoE;g=XjdFPDOk8Re;|37Z(VrC4t{7+x_Uk>;mmpRy&IJ)TD8$U1wTm37GDE=!*D8$5& ztieY?_ekH++!~1-`hP9Z&`jUj)EH72D-|p3h!qL;e{7ERf8F=r&;BDZ{OfYaHpq|v zPIK_fzZ0dgHQd@B(x6{Sq$~<${8C!{fvW4<)k&B5fi~i%O`FnMjiq|(onP~GRD=>U*fw^Q`>&UGm_f%#YcXxx_{d-kNWSA zQqO3buOolk;FKm}m1C9?|T>gwbX6oLnaXvZQw6@KTd8rcUC<7a9^EUO#`cWTX zIq)U#T7+vzuNm*L!^+uowA%y+|M%0MC*%1msb0g@n=@87C|7y950fseI8Ps`cNaf< z!!MFP%5zKa%tRz`;sJ%Y1ub?g{!HPBkA)U@u+cZV$e-lGENddMsHS4{Wy-e6H#*92 z672;P>T7rZFlG}c?8^kI%KyvQQLuV2drR;Cd>;S*CI7vj{=a7zyG1UnVvOZOS!YrX zex?w*N0%$kOP1aucsY_EEQz(LH&TEnf)!CJPSdp3e@W&=;bU*X&zIzH>B{_g-jnu1 zwt4X$Ztf>DT_^2pc4PYe6zQb$5*QerJYGJZO3d0_yoq$3UfkF6P5R-hOQ~4^xnD5%=W6C_2nBDQOY(w z^E-55_iZ9%f)@9_q4p1Sg30$^ei_|*#})SG4ZeYaA-3Wr)A#B8+fVP)X%ft+Je3_P zn6SA2jNW1UO2pLPXnk>s=u*yEegTFz$ZGX00+*<5?opS%GjeO!K z#)o)fCGYWVoQho@=6Ih%sGlNHZ0ARnz_m5@V}ko4WlohF4MuSQz9Pjfd^tx&^@fSc z7`*x1Ya*y!0f`?jwfu$jFrs41i{u_3tuSkySMRE1ec`g+VB>l0hl75_;i~;x`F19Se7|e?hp*AL zXHyS|Zr+rTlEQMXeM|Lnzi95)HPK^<*%mbJm1XgJ4CSh0kK?&7sJD#<*)`ASMd;Q# z<7W4F#so6zRuPJ2i6nn~J!bwLzwlFLL#`tIH5GeB$drkBuaYe>UvHTCZknif8kN@;kDmLWn0D@9Yrb{Wxj)D7-nsMVN2?7n`Nh6u z<>gc69JwE=R9KFh4HuFYHJ+m3y4e_wCnabaN@ZFklbfqMdYr@7D8l$*U;W`pJ(``J z{lcY7_CNcKOHJaMWh*%x7Ub*~zDQ3ucuGr2J>B@xtR6rko=XimjH-u0t%hK|@k~f1 zORm|Z?Ao0>UE!qnZEGjnIyzJeb@}teaJRBT_lo#|L%pobn7#4t>W+i6J%?);sUBQzHLnAB^+)c+!EY zVvq*K6YmBMOx|WUxWEz@^5Q(^d-FRdM|+jXjxNHEq%vU*l4}#yosqO5gK2?W)?eb; z=`xAfo}!#-Cpd?R?SiNI6K)>51{G`8h+v)#%}m&ql>X< z<8Y-&hcq0YKBfFAc0^acW{L0GWNm+@?5#UoW>1~?s7P-MKIih+XLH?n3N|;sj7fRw z58KM1x^jypeETNyDWAp17}a|8~Cbd9+K*&K{wm=Q)ThA_8(aRgC85 z>5=2=SPYrqb18dTCT{yVDP5MhawF_bUgYzen&oEK9@jYPH~C=5CGqqu+rE4g%S3tl z0(q8gw?_Uu**F%*m7zzGj1licN%*fy7S>`oM z!%v~NFJI6m4aA?3TyHpHNxturrBi8Lcd(G89^jzyK0Q50vxMr^<(pIj0u#%&YYBwR z+8cu!dfzLobn?Wiii*4Zjg?0SoZyg6*|qIQiVeKOj~;78L7 zxn%Spe0!`bhA}8G@W;=GWEJRW_gwj8G<*^h7>HGB+->5-w>KDgjkU$rC8)(@V6Iw(jUGi11DhZq0vC4 zdhXulNeVORNz@|k^8B7AhIv;ZMGgYv!Gj0LO(@0upO%ff?hI;3%g7k~`Sl&5tj+V@ zlvVP4%j-tN_bMXA(j+I2#?H#{;!JzU@kZ-a^?*n!9Aci(VLk6;WDnL8 ze1A9hhLDMpso3m06+B#GU8uhQH@4|;;p4Z$-YF1Jny{R`5yRIJg6__-%sP?<+8^`r z?nw}Fnc-VkCZ&l594>TUr(y;R1s+)1Z}}a5^=Dr_ ze+frwyYpsKZVY2*94on6u4)OIK=z~MXk>v-r8cQ#@EmE#&T?MSj3e4@_2V$4RIJ8G zDCBD;7q1Y0%T^%w$GP27Zr-1dx0vF9PWIUU8Ng-U*S4(4G+b&d>vgiDfk!T6=|o50 z_wIpTJcsdR!;bJrWxVcze`K|bUseT}^rrN5vo?N#{L_CN&sg+Y_%wchf8WtkKx;@27|4p5oQ^^T;tg2X{wuyk4Uh4GqobDy9gNf5V)JAtudYAM44Q%n){sPHwYr zK9J^0ywAMy#H6ojS6Fsl6+Uk2jJj8VM=O!UV|B;x67I~$;U|UzAC%MssM{ukW08Hm z&?+D5y={30xl6{s3^MZnc(%iNez$py`4(6ixNbrUV zwYpn(AYr{FSe+O0l(I+P=Ch@M=nf?l9D^*nj{x?T*Ha$bkDj>A-;@j|>4XYbfVbG7 zv$u)17|NGU6MdDBN865tgEJTLkW7E}QyAQy0f&gqr>RNg@XwN%sHkYo?OM7%GH|vQ z1;o~jMRhHRt&Q!Sc7JPCSWZP2-n&(wj06?9&*r#IqZX-5?zdVO8SMuB;?J}Dm&`>=R2k7x2kDyLL;lr zPrMF{aa!NhUXjS9cDZ)hF3#lZTj{gYlm5v`UtUJl5BT74`ja(INURR#s075v6YZ{! zn>x|u1Xqp=76{j>WboVHO2c=VEvTG&50xEkgMNHZ<7jVv5prw>#13N7k2cdOP|+QZ z_wC@Y)sUy^xuoGdzm*dNsrC3Fr^%OhF6&b`Akh*V`-Hwu3|(nRZZ!n)Bqx9!i- z^fwd)ccS5Yu04s|=YN#-3Rm()4&-U9KY?N&Mz4}3#TYB~9eig7uP2_}FGbLu!{iIm zUHP|WPJHyDmX=Jiu}nX!7gNNBGtme4;1PG3m_p~*>k+Gu0c?urG{pl~GW-kNsN0x3 z1vEt`Uhq3Cusv-;!BQApIB3g^y9uw~xUuvt%?}oGC+rTlLCZ^QaS4eCdX>9*t4D!REiel&lDkhoeM#WF&GytsuHBaSZ2VaGiR$IBn&$(B}D=WbZi@^GHnZG7$d1dIc9wnJLNr|FB5U|sMbvy-hWG}mKWjRq5 zA*^sB4JiSFX>e(zggWZ(Bajm#Ac$ZqJIGdgOpww{ml-eQSp(345{`EQDxV615z{5Z zBIlNQAYL9sP)X3~ROEw6&`>w1SXjctl6bU9WfH&FySorFX*K~`a?P~SgE}M%2W-s) zbrngVRd%yR4F2PM4huL*yf#@5i(ipIz6li(K-cC^OmgHNeIK7`EPPGwPAW6$jAzp4 z2e+h3z`k*p&7chn5=}3ZhyuKO?NEVlpn3)O-hwMXc`dMo1z_M)!W>Q0HGrVzl6z~D zkU)R5-_oOjE%Hu#^e?{=N7FKEin_|BvWrFL-7mMFmsuXj5i2ohM+{;yQN{lK`*+Ln zik@Y~zPDeK?{Dvp+i<$?T0ZgIQG=Z#}YF zSpl|^I|zl1gx`MSGQE%Q*Fl+rq9U1PNreBR9!-SIF zSBJF}!&=_T-+PqA^AR1bS_EjANvGn=GFx9hK)h?@ap?vsQ7!0nlh)3~-1IsM#EVcqBuK^qu%}x?t_2jo!i# z*JbEvu1qL$ki1^0<*6&>DAR(MZ$EjyL_1;43n{M6x{}jrSrq`cIh<^eqaj2#)D)4( zyfd?%X&L|ebpt0lbNR)u$^2f&RdVR(2@k$K#e)8hz$_pHOv7s+Wzx+afn-JCKvQ zghv9YJ?9BL=>SZKSQT#L22hIc7K<)YcOV3<3xJM7ZQbsZWrg%%$NN4L+??L9BP?pJ z>ord6Q#e{K%aLzztgpb??Kgfr_y=-ZQinyj?oGOA6+gv*pe;s|Lr4^3xBvx|QmmU{f=!21K5=WagZ%urIyVQ|St%PpGvQh0P#3;0D_&Trs)AtO z7}BxnZ1>;SKwMKB$t=IVrGd!u>Mt?3?R$GK)guyIro?^E8ZwLv!bto>Z;u`~o@tQ= zZ~T*x|D2E0`$tBkR&Fo@_L(6wl|y9oWw74vV9S`tYOD=VIc)#&^MwRcgmGjmq-Ke{ zI0x|52SI4>-cgKI+9-&M`i6F1Ka;A#lE~$Re2XN1s6{l@H4lNYToUPyWo8bi@w6B# zr}vRVC$^M78xDVUqB4(fm?>9k5| zpa=nvcFeOJEj8+n4I{nptVtSN739LvSNOQL%h0K9^)qq`NMgGoz^oCeJ9!_RZx%sh z|EOJs^&2f$AmP6p8PUuWyT)q{Vv?-D>p{1r%s3G5GZZ7A2C3>pcq5R^yg#ecXV?8V zL@rRi5#FWD;!h5}f&u+Y@Ni~OS*+6_8PrvJ@FQ_B@tDq9`cicWfz9uc5-1a~@O5@T zCP)$+Dts&p8R+v{{xXPwXFyRhK&C)S2Jc|LgU^z>cw zHCYb;>jbn@E{(=sGsqi!9{X${PyrLd5ZG+H0dOM#_8}@JR)F_#LKJ|4qW^<&=hfm- zOQt7vBgl;qr)BXuHk{UFwl;61o+Fh5Qo6Cok>`wkwPv+FEtEi7I=auxwih;l z+eQI9b=!Af_*N=$MZM@rPw-8~UjsQ&;NAp3QtoOV?XJ)E&C6DLdIQGAscH9_fBEvl zr*P8lpd0trEKVkCUCtCVybur#%*5rR_2x7#3Evw8OPGEoaXaqu`~#kP9TdtqmdE*c z5;RZ@$s3NhWUDphE^2?YXs>Zv(F763YP{kjnnb_E8(IC@F9$n2yHGOjL_kw+{(g`CX^ zn}^bD9k}8gqob_cM{09pvloh3Ggu>m`x)Us=!K*4>e$CeDpFWj( z9yx=lUEV>i$=9up1U@b!tB!W*z#f7h!9X|k_4Of-y!iZCs>$-zA=F3|08V0Ey?Rfh zP}gI-hZi#E8<`k}5{toHolg~p9e4vB6n(%# zkcq0qtj5ZJraO_BI4&u}HcXxPS{R^DuyfVGz+j;Ds&GEsFE5;2xDcHA0~~W!v~upx z8@Pi|K?|alEkGw(&dE+u#>U3Z)hK$BD;aiYd7|3E0$5Qlpuet!In~E{%eg={KEM~1 zGi4a4s6=~Gh4s|%it=}VkEX{KX{P!5`VE4;2O)8*uJ9BLPLc2CLfqth3M0+~*PO;5 z-<$R>0!Wt*novFz{9n*(n;ESP0+b4TQN#Oq zGk`(2su=C~>y37a!7Gc=(oB1FvIQXhWgy5(+49NC&xZ1qSnD=?4^Q@{2Lb-3L#j># z^;EmmD5xv>eq|yc{KNT?67MmO89Y!<#4#+uJ)nTHc>ekR@Uo)t$)70Dh;@FAeau6y zAJh-@UV?jR_`s1PpB%9+hiexjYyiHO!0&Ju)Gt%mI$yH9*YW1V;G4{ngSl!Le9pg# zs_hr3*x242A8cE!v%{wGLmlw z$7lNk1qE^*xB^rRf0EIj!WKZ>iXXMPFW+Pkhh=Itc#>=w=9k+I@i44^+{9`!6*}lC9u%J55KEsgSj_RfZa32J0m@gRx6R$q!M9kyPSv}6 z8X|N9kVh882g(D~Cb~?sZ|^XsJ+^UCfP>zHOVixFYfv^$2jT@(0s{~;9Dk2Q0KTx_ zoRQEjH`^rVsjM3P96{|i8^#M-py{UM_Z6lt)1>B!Z^FYoS9r>&kInA`hsuh=?wr+G-gC zevS_k`V0i}pS8)P;$k+W7Jx|G304Baj&ra*pZ>JjmxRyO2ZXHi-|{qAzorT+xVrL1 zC`An9Yehk^+xkrX+IDq}8`9T&2qO*6g^M01JHx0ipkjfRhNS4iC-pJ_4EWr4^KE<% ziEZkd!KHJqKY0bL9MRXZTVlBnq$OlGwd)Ox zz58+x*UawjA+o#CXZ)JIUtbR#7R^BM4HA+sQ3^uRus_s%R}4b7 zRP)rsfX9P2F9QJogHrmXM@ihXa5@AGs(~Ob_I*&I260agz5-9)5yvGYSEL)Wn1u~Ts6jT@0{|6 z0D%Jr1fgT*iHZx`=g0J!6V{bz+aEq?x2-wcBE33SB~l>|P5!92ymf1i=s`#yG2^T1 zGW1SRmYjYxVZ=m7&$$a%>v^B3CG*+Mu&#uKhpU6rsX$OPSXn~SR}((o@CyzNRh6Mf zF4lSNGTL~0xT1Hu1~qyavd_**GH)T2clx+)NY2aP*%r_XWZ>aZr_WS<&-r~XW#0xe zTP}+G*$@+;4;ng*&bRqz(gJta^G`d6A&A*XOO3<}=gQ6llb4^(265nli{)Xy@NjpF%k< zaB?q!>eZ9Py9h>9{h-(kUh){w$xTX1N)YH@wzY`^JT-KZYEb~WV}i4&;gG?mZu62& z{Z1?x;R^`ZaQZLh;*%~zwF-d{5<2;#0^rK4ugcC)=ycx@uy%J@uMp6N76lL+_rx1d zPXI$RAZ;v2%m8bxOAXpDBLY6eq&b*RuPcHY6KLivDCls`KOcf$&%!N`I4!q480IIJ zScWd~MlFQ$Hi=Zk0;Dt|y!iUMuuhTf)qb4T#xPd|x}M?7fz2(tq5?M?|~R-waR z)G2NYw?U6`k-pCKQ={H}&m`+!b)@N)EV=tGYjaRj>W;U%flZvILorOu$e=NAm+?dD z68zc)DRh3VMOFUpots{qz$Os&8DCU^wKT+U88VnxkWRqOf-ZG*Xk4WpV&T6uou66@YHE}Kxw?vMgyRF`sFKERAlJ6UDkBL{LB!?AgO8qmr?WA z{{TUi3#j1(z_jVgd}yfWLe62xjDG&Rq+mv)jKHX1(A`F15kzs5nu^;5bk6F zas({4D~`1YKx#e$>Hs(t!H3{8xxnG!Lo&CyYuw(a9`lZ9HR!Mn0+^lJ6bojy8^^El14VXKv!DLKt|-TVmdHdtc#5EctFHiTw7~7A~-@JL_ zMmhkLwQ~kz+w3ufRG=+5+9-WJH6)#Qp5mqD+5DAHE2f^qlwX2q#^JuPlT32Q?9_ z!8d*Cjf4V}@n|Tn;6cj3_Z0O!HeUg2N&yo9vdV!J3o(Q>t?Lvm9-+D(}6TXoI@NcaJ)dQi~;o<4Z6y{NX-mpKT^;{Y&G zHK41A=dX@yAmYtJ$@c#2GPGt@ABK}CLFB4QOG|@qYc;GN{pnXY8q$HG3@1AZ$u8)kBnZ7;*oe**Nfsdb` zS-{~n%r?TYSb)6Mwd9x!i8~j%wz;eg`=T+-IsiKc;@J&7I@EzE4nh_g0EnD}coP!z zkexj{*AC|S>Frq6LfXj#4wMU9&VyDalEelpr3Y1?3oKIOM!D#|YN(RDzWn!5ir&s_z%Z1qyNRhCK ztXP)ExhzlWKFGwe6wJ)b47jh?FXr_FR9nfDg{+^4q)a?Afe%m^;9MWQ6Br&``g{+!4-ewdcdd4U~L8g0bL0Ri5$ROA7J)ne+H=yHd?@az>QY7 zlgYE>lb7!=JQGkAt3RnY@E8K#_yP2xJlqxD{h|9%I;Rh|Y{WB1uNB^8P^AFpfmSzo zy}Ye08|12V$E7|L0)D~l=kdwN53>s;-o4Yi??$N|BXl97P{C=wshSC_BdxG@{TZd#}d zZF4v>Pdm3ttIq4R-?@4!S4&NLWMEhj0LW>#7lU5mG47Et)Iqbvh4BiQ_@e?T(L^_f z0bGyFl7|?~Nez>8u|t>jvDPVyNtdXtOYRqG&!Kt{Bd~7s#Ti7S_qW#1{fE-%40lTv%~-pRsStRfaz`! zES)KW_Yqs@R9HqcYJ9DZ*+v%!XY@xVcH0QoXj5DCf(=-6EG%T3XtK?p*B{2t-)P zulw@bbDgtC4YV@R6yB%DpcsHDU^17Cbl=JpS{aeiH!u%4;npDc)NC=R z{tYLJA1&0Nt1e}0TfBasfJHYRhF4KA<=3PjeAYHppyLKwQRf@VR@@b4rS})W@3&*R z;Sv(OfTAaWeWr0&dZO;VE}9r4buKmSUdxLMCS+c|kJlZ;_z+SoHXdFU)GgRigU5l# zc;Vki>XjHsfCSBs)4Jyct=Z2hg0<_epOf$N!i*wvHsIjk_%bi5)Ki)~;G`&kV z`uqw39ZXZbw-I*jR)#u+b@?)tVOHo%4ZOXAVUx0hE-Mg-LCj-sEb5s!o2uz|7x+~p z4|~PJ!lD4F3=9M!j^pFK0$zw@81qa#TFOEfiU(b9*p>xzd(3y$rjpSeqY7zmp^Uqu zso@~t2C(6vkdSmx<^|4jM}6tPu;F z`|dPZIW_0>3}Vc4r@ZoOZwfW$yx>tjJP+b$(Z6)gxi$xiWD%2FdG*D6(^sd~72#pNetvM`+qlN`LPArOOg59+@JEOg@c9hH zxb_Dyg|HtR1H%jF{LXnU27vssZ+)1fS`t|leg$M+2q(+YvV$QVfSP(*hxa)y$sU`6 z7Cp0CIlTaEa1rJy%0SD)EH&bZNc$mO+6 zk8apFCmYKG0{UjJ5l-yB%_ZDBZNQ#;>JGMnF3^G>vus1m;%b8JrXdEB4pZJ$GO852pn4X+51D4HhQ3n-{maN7S;1Qp!E@OXTyEI zR=tQw?4Z{J^;(NUsF#A!fp}y-fqV^CJLzp;&oCx4o9r@`29yq1<7p;vmFu@|0jj!> z(5>@G7YA0#L1~PhU1hPHs^bUlgBY6{y8UM`Bj<%MXs86z_A!?wBqd9q4YL3ZHUq{< z=5~6p2)4h<64wpdf#(2lSD3Nu?I8DN>Sd980ld}w*$*F#y3J3-OxkstH5XNK;Bojj zZnXZBvy!>N1_FbF4WM0(Y@iG}GaJzDFLqwlzQb){1kJSDu#C$2iMKVcUcCa_ z$u}G<5F-AH~ykhmHFw2R+2f%yID19 z{Z@XFd0JLZu5H!%EN_1D%aY^N4o6#9jpJ&Uj!k_#AV0(?NGIzRz>8?eN&qHI5Mx2S z-$n#vXkf!Z>qk6yTG>LjYP?POcchVTX^QloCTs-{nq!-S-7E6A;50~4n%{x>26m9< zrptbwh9Kh!iz)8mfq{YEJ1&r2K!(p_WgmH<_?_XWfDlxbSSicm`Fb*~*1_<7> zSM-MYFf@%N5Dgl%d&F9Tr~9*DjAUG59vD(R4;{YYHNIv5V0VFn?4A@xQ&Cd>^d~F; zE)V3|#o7|9r=F0U+`Bt#r}5bf*=Haec7e$dRs0{_F1t8H#RptPSMX*@ z3KZadAnf^gVw%WA3Jgr&0teO7E@g6rrW3G<&Lmz|kRObIW+4;FfO99!t~@n7$Y&(1}BIOBnVz(jJCB)@SA3RQK(}K&@t67f#7-z!=t5$-t9L+vZVymw9VTi?OTAjolvu?Y=54EZreQY!(Cdr-iqgh8j&F|>k0+=-l4S%p7GLH?@b;0rR@x(*IFx>$J{1doyynq`AY=VZK9;U*v$h?p3cq~VN z8)AB-PD3jVz(?KQl)L3vc@X4BWnkdQSYl2w8<1>d{sX#xx8Yc3W!i4yk)!26WAgBO z0g=%S*wG9)Z=wPpGA=Xax%XJTP**xny#VC5{Z7EDu3%HB-bkKIMWpAq)%GP8I}DHt z=tZDhAbmVA^bF)*82fZw1fd_gJ+UAr!K5ai{TvnqRvP37#EA)*wF#1Xkon`08Yf01 zp(0b=V00uRK*8LCn;>Ztx<{R{%*3D!Fab+#UUKAs*8$*m$U)vyNTGotG~kH`L!Lm- zAzgO>dZLFGKXQGl#}+oQS^!KD_Z6%m-!3E>F$)Q$Ks=E>|3wMJ;t|Z7gCXZ>#_x z@lkWVsi|<2Sx2-MOxaO3Q+n)PvT#7T%Jw>0sSG27b_c}ltbO%o z7-XKeYfu<<}1Z63z8hjvu7 z^4!GC_v|Nj6Y;51^q)7a9)U9&{)YJWQMV6CT8( z)|J@@ixr?EjSt(?_Lj-$Ae~D9;ZCh~_xb{$(dlsb$2?(AZl4Rrl))+`UMJ6Q>$#Ip z+FeoC)FeVW^APZJJxRBGl53rn--~1Ku1$6W8<&H?N!VFnLVksV2nr3&K)_LVT<>1- zC=ieD(5Z)(`UAMh=H@2S;(@MK`U)DR$pPCQ3_VU0y*QmNgaSRW1)jifH**040|R+~ zXR}43Nv@&BWj$Q^awY);@TZ@)Y%m%E)N+6N?6d;H|8=PS&}uFb1u{E(*|U)(N$H2DtHin{Hu_rY#0%ZlQc z`=BR>1QBS!Fo-)@Jlz?vwb1<#@B*?nP$W0&*PN?!R12@g67Zac-)P9^2h|wWkMz?=;pwTECC7uMUW!Ej&U%+0Ta}2tu?JJEky7p z(2cut6!1kTm}3=I-9Xss^%?|#)J3zXBo?wd%?J4_D3%&Y!`wK$#DsNm>()CcaR}0f zk%RBho7!EURFS}&IH@qgk(943b;JTRX zqFG^i`|n^Xpg>oh1c}3_`!3c?cL*zKZuRdC3kxxH+~0YTWnP8LTayLtecU2H{^VxR zJwySc(<{D1`Rl)nZUN99yA5Jm6f{p7L(M^HVYtQm1aX32hXurgAP9U0!Ot^Q+P=DY z+_FK_y7D(jU)P9e)?rV|Ojg%#BbV-3Q~~WjeM8_G8(b_o-jO8@yK}rj>4`Nu50Z^Q#%6P!lvC8V&eD zo8Vn+b@VrQmAxcI(G9r3xF9)IG)X0(n~ZdePLe=~fYg!ACeuDcxv zVeA1Xq5n&BoLqzL-gA@RcAxQ%Qxou?J1LWj;Ap#zzpU=DQJj38|5)W({(k$r=_kC^ zVqBKWl^OK6W_})Ea%Bxvc}_-}+{o7}r2qPui|-ayCi;QL{b5 z(p#@GWAuXTl?%QC!c?mpH0q~ycW^4~>hq;&<11)h^!#jWAARwIf`SOXaEEsU*LI(k zoOgxLMk}I*){32i=Eu4)mEQz%bpP=h_Wx|uf4`~y|Jfz*O1MaH28MOh{K47k2)l}^ zldx}%nD?#POC#2shbM0YSZeQuN0(2o(c(&-!)bcKJ$`0QGws6j}%d{9tiC zOW!&mW1LAgzHa=FI>ACknZ9+$_@>vV+P7z=t5NIjn5Q}Gr-cHOxhYboTH}uk?=vgM zk1wuI?U5yU?^Vw&a%zkSS*`V*Rk zs6Qx$6SIlYQZC#-6x;jNZdxsKlUbFsg8qM+#=X~AI}*-4!qh1~NU7;Rna@#}IAy5q zT=s2@##leB+j;rmuz+_hdUtOgRcK?X^P^x|Bhk$=-G}enxp%7apAGz?Hf`4utI2$; zd5sPe zG&5;pTFG`Xjs$P$ML4gLkY0Zq{92wta?Qno`P#P3PcLbo!**_=e5>r~O6%BD%XrLZ z+Sxwh@sEckj||XGJT-i_@{_6SYrbQzED3O5IA!C$kJ`8KJ7++!+CA!86dM-qK2hi1 zgnOH7doKH_z7;X9{j-6CiJs19m#tNT&f{mhW)y$T-dPPj`Q9^kVvQyLpyTymB!vpT z$96_CM*<}WHVdt2#tnN+F%wLql4o@XWzAJ$*6P9**{+wcN)i@@FOE2EbCNn&X?Zb? z?uKb_vF2`{QaekMJ8mC7X`Rrh96!D+1+!go`PwWK-$B z-&G>HlV+bS&{dsSNHs%CWcn=4JW|E1smM{j5K(1hc?e;TAjLKujG zbV!a6Mu#9sNXrNjHp&sBL242Xr%1zS#34-5x1``eLKv;mIoRl$l+@SHAMm^VU7q`M zah~Tq=XJi88a;L$$J0oqKe|!y9tLV>7H4D7;pJr77w&VOC(O*Cwm&5?i*sV%jk7jW z1C4-q!f!`&VLz_JEGs{a~Qi0={C@; zSK`P}aygB{skQF*K{bik!Z=+2^)N-H8ogt{GShrcn(#sL zZh|MyDml2~1bM>)y@W+@%}o7UiA;1(NvW>MD3w-y#+7k@QCztR9ZXM=BUM#fr!b#a z5XTnqDB#{>omj}t3}FFE1^1WvQ$Y5##bw$A^&5NErX_Ky88kzx21j5uJN9p@>*{wR zCKnOAV2BTbBM>^OdWtQ`N(iop2Ej#sH?XR>4^!sqD%~v;xT~9+pvcfr+avK0>Jdo# zRXerV>0toQSE!K-Vz@@r$iz(rF4KG+)8dO=D9DoSI6}9Ow;Zj-@freYhvO z{3E*UOmXyVj;i|DEFvMS#poGFb<9pa2E-{@{4R$kTSkJJ8`5kd{cwV2hSHsXC%wz)BGOJxvB?~BZo>+MR8mE2qKhPqb>u>;Q_iBj^>FpTUP zqWc@0Dw5vw%LnN*kgEGTr6G?qTY?};AsoT z?>QAGZ7c@qKBih3eE!>pTUIjv8hE$zHR79gpOd!G=rwK`UK%>@$!#_?Rey@GePda8 zbQ|E$V2#+fvg>P6f07IEltjk`7hBL-CR$5|H$$qj0aJo9(2|mLAFn_!U8FIw(bljSaKc(G z4#!CB+W6G#52!nLKBq`rCX3x#8860@WM<92(Yb)065`lU@lsCut$3}9LK8x-EvqC+ zjxY(g9QAHZ(JC`qFun<{fda{HEO>?!XZjb(vsj1qiD9x)#|%M*}#UkG0V!34kCjC%ne zDn2w*ftJZ{3IzChs$7P_eP;$&MZ#+y=SDcCm0vde6J7P)GJs?=X}oO#`akJp3Jl%$k`!51KkxIArp{ zRy;e-{Bhl!=cUK*k!_1htBJ$g+$nuPmPW!StS=;8Jxo%SFZDfxY;j$ANdY_n8Nmk* znkAM#VMWOn)yC=R0oZ)U*PNV5p4d|2Ut!J5uElq4Y8ojs0yl1g+(qpQzBEgm=&(yg zE3Sb%dukPwldbMqUK0k=DtDli;gPg4W3(3oo3nct+KLPt0h*xi?bN{?7cs4v8z_-_T1?I6N+9R)TPK8&-4&l4#uKO9eUCJX! zDVx&RX9yaD<}F^Ijp^nrnn#zU(ya%^QK1I%t%)f5`pxemI?2?9vL6&HUZYNXSw!#1 z+glG9rc?3m7RZI2SaJK9OFE0Y!TR2RR*2u%+7rzVk5>vz@>ER=u3NeOyN}z`Hb|L2 zkjCq?R3%*W_J*&&{0_a!)7+(oUf;!7rI@^I&wEVkkSu~V$U$33FSe(}ijF_D>Hh8V zkyu)KX4_kEJ!O<%Q9VbNW!WKwn?<>$DXn61ywB_%SnZt|JVrTEoAgUT`R0YU9HHs% zH;Ao2^}t5d#1Jm-L&%XzBbhKB;vJTz)#WQKWXA?#+wcPIM>T?VcxiP9cZvLGmK~`> z!xNl`n!)?OpCWjhfwsTvTy|}ZhTB3Xra)p3@su0w>g#El=&>mvMB^#+h$Cb^dUmK% zG^E9DtS0ny&aAD}J_O~2+FD^6UHj7Ys6iII)qxFbXhCrgObX!AzfsEG9M3&%KtIq5 zu3LXy`XFa0qf$B9idn{|Ecgbh?re6&DfjyyYM3|aS1u>)>`eV`LX5DK?BD18DWTlf z_uk8YNkD|N;13R>In-HFd=}$rJ9xf}NH{Z&2YdquZ8|=A zAaO!WE7hk%X%F7wpkrGZ@wBuMGpG1DySRKv4eM0!X>%B)dxea50A3z96>RB@1h=BI z&`vK&zbjI$gi^ZTv-aSf_q3Y}2eVTOwXbufL3Q1OcQ9NtTrbsT+ib>r6w8A`zzR&u zZ%mLdM=%>E2jU5o#af9o{kzj=c=U5Ih%@MNdT{F*9fpI`f$Z7lJk_(RA9l{fT{nu9 zeIvd+E7$k|71AA?b?%$GBB8zA*nF}UOBv#su^?T73iJl{?`TZpgPj9)bFsV~`Ef0$ zz}tgWb?0`7OP5w{#B+=jCw{Sbj#^EKaqawe&05=p>-aSUoEyIy6Juj3m2LRZRTU8Y zm8oQ$mAmS=Ny4(T2W}AD{uLW`>BB87{^bIaD*w%_=5b36l~DsTp7__%^wrYEuT_Z$ zu;7bs{VuqsHN+>C`b6X5XrL9l@&4YRU#f%!Au~`7g`Bbv{yvyCO?x^!8dX&9W0drA#NeUVYoQm#`h#+nuR&9%eu zUuNd8(v4NpWGVWw0BG zfJ_XB+Hpc>)OZ}spre#3uL>_trr*Lu{orwWgqZ=P%ai+Sj!&R{Z+Z6%3qA#*$gkwq zA`!>tl0bD&!K8L|n!Ufd-$W}F+U+*4yPUkstnuew)dzvy&gkL~W1FwjIq(Zs1=22R+ zxcmeUF($F{E`oMwk+>fd&PcK4yu0& zSgWUQ?&CGFEt3_t@sS{pL=5sze&*Y>tul%~^aI4|m04FblQg68W}-<`hlH=Wwce~J znw{rYOD2#B7Kfl^ja_#zuA$3J*_hm}J+ebg zhIt%i_oDA{zshtz80_#b`6$VjV#$8EJxtWWZSk} zDqwZDgr>TewkS&SK7OJx|L}X-qa^!oBAM>%!*$iqpPhmeCj}>2ZvV}+ZYyS2@Kgt<|IlMd){4am1FkCqK`Ntev8WQ(wz<9 zmzAVFeB(A-rB14$jd|l@U%#@UUES01>bFc%MK(f_6f{%7YT-^y3@;=XX}30?z7>s- zUuf>jH5U3I*W0`0>5h4#+#tn1d_v;eS+i4dHi~G(g_1O$1u1y3vAE#LPD%}!v)}CvuHMVPTQP)3kMNekVECT#AI4we z1;&IaD&C9!b!PD@_z7~E!~;*#$TuNa(9;9>*_K{X2|@-U!zv8pF$!mkP2rYiH&IU6 zTpjvSh5a=;az784Q4a9_rV`UI+R4RZALIZG4^QTIQH@)vZTj^{a%WL5M*yh&^+Yr#n4OStQv#cBCJsZ(p^s~hm z!KtlX^~C18cRsM5R;>8e9{+#rnPig4L8uP)hicPi8XkyALj1hg(LK( zoGSaLJ}w%&0=661J9=_g)yi1jh={v^HjUc5+`!r(@WK42XJGTYUq$X3Q_r2v0bx9t zOi&_)pC~bWbV(v~BYKD{i|%{V(y-^S?EFP0&GnUECtp7n9CiSJXVbT6w)wRS*FKsv zH|mZ9se=6CXn;|nIZwe0T!JlG*a6F@U)*fi$g+wN_b5~h=HoGjP!UIJhLb`hen?|klZbrcJS!u8 zY!x@&>B8Qp)t~u=r{&zK&h3C*TFGz5z(k|hAqxfuS8^!kJVWcT!?)B#eec4no>opz zA(#a5&pjLmCS&tp#+i>QCN!8eJcJZ4P^0&EpxzI~>`<_a)zs`I_R@)xp(l zTl;*s-vgHV2s*492W2Dl3#}isGU}gFRi!SJC`}jCM@T^w510%z{#pG8;-R$H3fHec zbe|BQ94T>!kpGit6F^?-~K{nmvR;svyB8e%rPJARgUL+xZz z>r`X|S)%vlBXntDfRi2bKf}cHPpsK{tNjbE?(Z$i?Oxs_Oaom_%*Kbm z^}?)9kADt+ypgKY8sPnw0_9{kcrjC&YIYc(7oOw;x+$^zH4xAx41Jg{v)IboE+(2+l+#cne3l!Wh2{SZXlw7j>qd z>)C+wJ|g4#=~%Oh;-LrHo)q99Nnp~O8?Hh9=8^KM) z=%#lTe)OHyj-^J6>Bwf?Xpfo3oyBN>irRB$4LfGuYVuAJ006cx{+7(c=2v=A2R|QZ z7eigiEED%A{WmIc^)4*`lppz#kh<92rBild^lY%LjvOAe{Ncq7luG4PMcN~R?yWz2 zvjAn+BEEbgD3(H&bG&bK7B_E#v^7xDeJuO-dtJ6kcI z;0FJR{OB+oE(ycQa*#&|C*79+7LMkjdV0mxjlnSUa*xT+)}GjPsq7YoYDEs`QWnnN zX~o3#e?X6GsRoV21Ap_YOg_;imCNz1!ql?MxoU(#ZU^c? zP!loAeRoPn8#0D|Zt=Fth(CD_mv6$N=uU&?|8~2QC05Z@J(0n{b$aSm+t*d@m_QHI zg&k+jPVo3PWdXd7cx;|-_aV-IJ1sr#YCOlb%a9aLbXYoTpnDd|M~uy3n>E3DpJ~bIW3-PPFnJ%i)3x~+`AuTJ7Kol3E2+aLF#N5z*viH zIR`8EyBzqk3)u1(MV%>mz8iR^y6ZUwAYg2sp6;fB0S>rkvRa*tK~y~7Etz>u3NC72 zkRupl8G>@4p98Big)91a!c-{hcw?OF>JDD&l!N4&;~mH`m#t`>R_0r;AWY!LdC~$` z@pO}m{x3@dV5;1hY8Q=l;?_=wp*X97ctg^?Q(`@(GU{@n<;QzH@?AA0I4;57;COd- zOWp4criGVDNfTbz^re8c8?Q#R{=EG09xS9lK?|;FTelmJ8%wAA+UX0*ba?=fJ9(g@ zc!Va%^xgqlz}8%T_q_DyYl**Zo;Ut=kytYhqv`xiO=rj9svlnPq0q}$rbi<27BDAp zL_O)|Ie=PqX~O6*8~67vfMsN9&%! z&%sYtirM$gHe;Zi|Mpm?_o(`?^3RImW@0C#W*CM`Zlu$6#rP`*6j8FGT!gr?g}5g2 zg9%P`4N;9UA#4**Iw9qoneKT^y*|5|yfy>Mz`g*p)aA--0|Kwov zoubJ_w=INnMCQnS_Oh@QICs_N)Q?oM_D9%&*%O>=BqC|TSHr|RtD*te1Nd%Y|${@D=x>C1e!3|zh(Q1k}-v*!7W zgciP3icKfKB4}z^hl7 zswInO>Z|pqq_xw%CY`EJFnB7->E2@mKEzg{l}%_z-vuMo}Yxa%plBt(r^XM2r*^dErO^xNfC zi97W{b4F&pi6i9!eyrxv@jtdd)ZXjCJ-Fe**5oDew{rCy=r2DB7A zJUf4A&EJtbOgvtx&`|eN-W^W-@n~)Sh4Q;Rx7Dp|PvC}PM0KuVw@-F>#K_|#)9}Rd zgv|pl6y_vM$7h=LG$*x)wQjFV0;IViBr5xlB{)RS^BW@VNdL1urp$R#G7GZdIQMbv zD(3UT1?5G%qh52J6cnYu9 zCw96YQ&od`I)uOoI2!i(s`UO47IE#_(Qwu%`jLU#`qF-rsXzQev4v9EBSdhWwXcwJ zIiDz;*51;uSW~F+J?f`CRVL7B&;h9I|)`%fv*xY&Zr!eiL*8qW5Y8lb+ zBN1@S_iX5!?r&^;JT#X3i?6$+6_sn7H9QPEKH?)Tf0uytcGKp(J^_eF$64^C8IZZ~ z+h03?qV+(XIVxVg{teS}c-(`~|1q3PCoxm}#UnMz)GiHYn0;6cn zRJ3*<#-Gp(e>}CDqmHD5|p+*vX~RFg?v=*y$>bMHtFh4 zJ^msJbqZ-8wocwPu@#sv+4rccj6(k>aG&f^I!3TjptJIAW1xDc)Gai2Z36Le1UW6UIkUAi@GhuCIgyK|WxnzAI+ z)g^y+*KS6om-D!+O1+iRe&%Oy^9DL#;_6D_^YGV_sRaWjkjoYRgSW|YOTs?Sk1?Zj zskZJumJX`u-hG?1A6o7cASjUfmG)t6m8ZvSzpLGT|E+!(PRszVa```hXuq~T5gYaR zKya2-J(4jK>T@|ZxsB8)_ug|d(sZ+7xT>;X66(X9V#BAb4|JA&;|j$_=4r)18IG8z zI$A6$N{a;qI_MQ-Hn~G$^}dYX?YHmeh?6EmZ!yx~e`1OpN((hW{uicc!muZ#F-EzPE&#W4LE-TMize((X z;Xhuh<|Pu0ws`gVQVo)5XandR$Wu8seTxGOs8td$Ssw5BF7v>23}YovV>^K`V)@|r z&leS$yOqu5k<&PX|^BUwM(DV43?O>l8wAX86P#;fp&fT56uyzw^EAt_caIZDNHT&Hr;2t zR-P4bQK`@uYc#yu=vWi_WT(Or%e|OJS`gmzXqZUreUUP3DC%hY{oZ_Nzy;uzUHXe7 z+X3Y2-!CQva``pE9bJlB&6S>w-7mhD|4hIPeU__s|97r%w|rkYJ<`#|Pl@>bEEnx) zxgsMas2{Poon=~RTAup7--P)8{JQb~Gt2c&qntYLmkvY67)9{gtj&uXUcFzZF^_G> zZVzi7Zo+=0wupRcLA=O=a7c5N3+U=p{CdaG5g2|MaOU^!otZ#qtVPU3b!Xr^Wc06X3on>hEjGANiciiro>|;kAXXWVd9>bGH%0VuBWC> zS>gSZUyh~-08(-npuc3w0dYj3D`B!{}-V9hroCF46bGRUo!C| rmp>Wji$i`