From ed7474831bd2db588f283dd7bc8d79ca53392016 Mon Sep 17 00:00:00 2001 From: martinabrle Date: Mon, 30 Oct 2023 11:29:41 +0100 Subject: [PATCH] Add a local development diagram --- README.md | 4 +- diagrams/demo-app-local-in-memory-db.drawio | 81 ++++++++++++++++++ .../demo-app-local-in-memory-db.drawio.png | Bin 0 -> 57566 bytes 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 diagrams/demo-app-local-in-memory-db.drawio create mode 100644 diagrams/demo-app-local-in-memory-db.drawio.png diff --git a/README.md b/README.md index 780006c..4a7de5a 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,9 @@ This is a simple Todo List demo app, built with Java 11, Springboot and Thymeleaf frameworks. It can run locally with an embeded H2 DB (no configuration needed), with a local Postgresql Database for more realistic testing, locally with a Postgresql backend in Azure or fully deployed into Azure. When deployed into Azure, it will be taking advantage of Log Analytics Workspace and Application Insights for monitoring, Keyvault for managing secrets, AppService for running the app, PostgresQL Flexible Server for storing the data in a resilient manner and GitHub Actions for CI/CD. With AppService deployment, we are using deployment slots for staging and production environments. GitHub actions in turn use just one protected environment, PRODUCTION, for a gated deployment into production. Most of the features used here work with a free tier of Azure services, so you can try it out without incurring any costs. On the Github side, majority of the features will work with a free version of GitHub Actions. Protected environments (gated PRODUCTION deployment)will only work with a public repo or with a paid version of GitHub, GitHub Enterprise. ## Running the app locally with H2 database -You can the app locally with H2 database for testing purposes by following the next steps: +![Architecture Diagram](./diagrams/demo-app-local-in-memory-db.drawio.png) + +You can run the app locally with H2 database for testing purposes by following the next steps: * Install Java 11 and Maven locally * Run the command line of your choice and make sure that Java 11 SDK is installed and in your path ``` diff --git a/diagrams/demo-app-local-in-memory-db.drawio b/diagrams/demo-app-local-in-memory-db.drawio new file mode 100644 index 0000000..f90a529 --- /dev/null +++ b/diagrams/demo-app-local-in-memory-db.drawio @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/diagrams/demo-app-local-in-memory-db.drawio.png b/diagrams/demo-app-local-in-memory-db.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..5c54f94eb09e7e28d04219e3e931a9e1b6c9f6dd GIT binary patch literal 57566 zcmeFY1wd5o+Aci9&>$e9G6F*@hypXTbc3|0l*9l7jKt6#gNi7Uf`HPBVv!;tEh!y} zv@`}ebO`?%;+5C^?)~la{rms++2=nhthMg-tS9d4?&tBYwx;qC@>Ap>5a@`iiozuj zhyVuyfs;vz0m_Qv#5`~TyIfM117)=`eghs9Q2MG?8XBOpz&$Al9E=7L;+p_Jr+^<2 z2$Bj0L4Ye5PfH~@cuRmwg&f?2lkp9|nKS`ooWJ0zsPAg;X@#~!fj9-^_wG0m{5BXD zS55&1P6Pt!=*Vk{Mp`=~?Ok{sP_6(8cyEufL|dUzmV0dw{0M>baQ^cG{FmYUoC2~4 zQT#74UQrQ#!@c%MYm~!&hZ-1fw4EK26QLx;%MWzLrGd0SJGf$8Y&ZqvfM-<)SCk!a z1<1f}EnVQ3KJWwQH-!tCif{wBvW|{+C_R+98XB05k}$szFPs-H1iauKXrg#8OjxDy|*f~B2w1cP}@Tt zaoJE;3vD24FL!ZoHSYU;?J@{~;N|BP-FxBc<%rt**b?QAwg4u8;1p2g_s_`%U5NUoLt2`_Ih(b+VA(K4e;+g{P*4t`n2~{c1Akd zXkaXN8E5IaHwCyLo+S$geJMEQXyJi*%eVD#Ni_XxUZ@BQHb5cit7p)FA^`@QXv zTrn6sSG41wi53_K2b9G=zWY5Qot-fre{N=lvD;tsej7(%S%2ysPtdhM+Wjq64{hlR z2nb#xMTPdKhi|QdLR;G$j11@Be`Ak4XuMBwu|Zm5JodidB^^d(kB|4n!NI@;$|Rcu96y)c?^3r%%(gn`hW z@F4izk#=tT%+*uGYa1s5|65jDbq`(_SFZ!+BV8Q#FttK^;uT%a#?{^q;2<2hb;JM~ zy9=(69H)>1KtbA}tsQ{37Qhlv&Hw>zzYDIM6~@7JU$WqUG91tq(Dv2*5aRB`{gM{5m3kv1*@tfKIxi4kRDn>K{Y+ z3rJ-Y#vbMB>;-hY|GD6Sn(V6${NUN+mk7u%cUA=LK>|7Ms0XMl1>0_vkAhc^-^=l?-)MfX+fz$ETl z?!(aTTg}7J3IPb>LHyqb+5;Q?f3f|gxMF|CR_s3(+XI{S%Ub{cUT^>K?SB~M|5$YQ zZOQ-D++UgtKQLzp=)(VF(G~cweJ;wuQWhT`BsM0*Gu5g;&lPHwVkzh@eAG#bgR=_jy;6WSZj0WNxd`z}W+ne2A1W+y* zH)kMY*$uJ(I)vPpTa@LWqV|6rsr+S}b;#Ks#PWY~w)8D)obMZ5nw8Tcy?{Lf6` z*F?1O!RsN>`z<1X3;yQo_ZYMP6+Q^~uOqp=!T#=$f(LoZfwT+!Hl!=k*&5~g-xzW~ zg#06>{l}d7*9V;N{jm5S*|z_l^yAYGye8~PzMzQU|FYx*nTfO4t|H+-#Xs!#CA_Oe zc)~9=+I{*%kMK|bLPgrs!99@o6wc7a&d`S6MdQ4ckp5Mqn1Z&guEIgi_J5eZ3I48c z0{ijyfoA{f^-Wmh&w(LaU_Zb*81g??-}ZU;kMs?wee71HkQS~Od}i)pgLXyfIwE(C zy$4V^0%(Vv&);ned00{iY0~{aAfR1;!XkafycE7T2kG8bL*XHG% zQ7&k2r1@^09-rm?MKRtD*iPHq&B2GwF0RfPTa-M;4)6XI954>}UVtq>yWdEAv;2$H z@L%ZpMfPFd_xuQ8PhgifhdlouwSdE}U*LZ`*N^xoT>qg|XP@nsNEe&k%pMQSp{NT_ z*G9Smc{+X<1qe_11^z%zZ-3hX*wX+c>u_n{?;`epSk8d>EoV5;xr0FPU!OAk&4|Cr z-+wz}I4BAL1t6ps0Q12T_O%#T*+0(N50@4W`m*=jFBKf@V2S*e@ZcNbEztj3<>H_3 z{s5kTQU8C#{QqA6yXB2NKL0a3{dd<+4m{!^N5Y8^w!`}gH(;+!*cyL#K(PZ(F6>cM z@W3kIcX8$Sw&8bAIRMVa8SMaUu>zRy_3_6C2L$}iEb#u9R}yw|!*6}>ZrPsS^B?$w z3vjq2P+i22y#M}SWG-O4)(&t{uE2=r?J$6^;`Oq(1DxI7fPgUU4e{rh1LVJ%3PAg{ zpo8y!QGk75U>>_`yaG5>;C}aL#IJFFHT`Ek)&@$h9vElKgSLM;IzT+kbv%=QaSE~T zzyDd!ddSfKRrdXNT|EYPV`aBnD7FFIKML>-|1&$_2Q|=x1pO}(L^x1<-Zd(R-L%Ml z_4~l8{f}no)@qvkE_T*-Hu7@9sPh_vikg;k2Sv0)N~MmMQ~*v(l%pNS%N~E`Vs{yqyNp$fdq|GQBCP5k$Fefz&K8avo!If%yg-Nd0_3~{jYeHi6~+RVQN zWnFVa3w1pwH@LE=vZ}l2c~^BS!@odT8SSd#W)8r73FV0S8-V{Ehg%MxdO$i@*!&M3 zdJq=f*UNpN1r88AgtQ1?;_z1PFwh6Ie+$rh-rlBm1{YlrS~l{+%DUDF&x@Xa0kjg3 z)gbt-kidaO;MCtAy6uj#!#M6KH$Tz=u=V_|C>PgVm-yGV{E&_QXU+QG=%8o`1wWomGJ5PA4eDQ4}YYO`)_s&`}Ur| z>0Cz}UNpu}nw{=bx=-Jt&O9O*m=_T0H z$$(T9WG{Pyr;SOlbc%gHt*qG9^bz-6loXEA9Y4YT>{uIP6{EjP>p8170iW9xR+3{6 zyP*2>G>Z2vKZw;E_ecor_k_$Q4E+7+{muWUo7)wck1=4B3{;zV z|8o5pM2eAe1VyHzP8`pSHTITi8EMDbKkIv*pgCd%IOmE9$!`N%XQ!Ij_@t; zyPs6v&AvmE{u4?Hc_oRXR_^O{-@X{JMVTI!*A+)1L2h#&kxI!0X_OhX!mi#{VCf4> zW=kzkG7aVL?2K$D9Nsn&*-%o!pr)qSLj^+!hhC$LujbVAtEcASH%0e=!G${S-#>Gcg)I{0G_lgdA`r?5?&75B?kmfG|$ODbqFG}qQ?-1FA-48h5X-W*d@0(ipgAG?0XK%fV+7_$~C^1>z+Fa+^y@_M} zse|2dFT?REZQQI3;aYzZl}vUHQn$JADV91y5V10lV4FI;6jY{@2DJ)MbK0up-X zegL9#hl+nGPd93fxU#*eRfY{iNLe<0jl-WRaqPj}d31J5yZA*7T{%$z%~XHcbq$g_Gm53WK9E=}`+ z1`%L7U)MLyDzFjpZ;qe}*`h?mV8L;NcWO`|Op!?)!#9cH9iYQH22P@$<2pD##f>&l z+mpC3xzPyF4pr&21jnU@`MHLsR=H8-%7-QoRm6{YGOW48Z0Sa7rY&S}t)F2@lDm-> z$8=ADoanZRI|nT@e!?^9dp8()2BS#h(n8#HPUSi-v%+U%wL4PEZ zzg})s=p!EvaQ}M6l8m;31b9in;SUDB=vCPQ#s2`N46RJ4e9g748@Www<{h(T8o7Or zU+m(xLi!HT8gTVYk07Fd$qi}5B63bbsv~I$JlPuvOYJCWUm>KsvQlO|4NlYcmQVWR zS|khBQOY@{E7;TF%o^ z**XfWVv03NE;%hODM;Zs?h4+SGqrGg4kg7wdmUiWu8G>ayuA}h$*6X^ zQd{GfF+G^%pDe6-EjBzm@+Hs9C=+kUk9opK+CJsUKgD{4hmA;^yZT=1 zZGYim75e?PiqI7|-{arZ?0csa7#rvrJnDL7QK`}oLGnVsdby)Z{IZFiIU_iG@DlL~ z6q50HLT$R6f<`K@%{$Md+CYWv5Gz>1q1vp>^=Fhzb}iH)d=&U21MS&fJtOm4DI{s9 zwgESjSb=Q=J6}tYJ65=Z>J#|D7yGl1Hs+LtR|=aERSLg)e<8IK4B8YvLP~&o8_rcE z9Z9H86iZ;zUHPEs*aD4=)COq1($!2{TZiYz`iOG(^0hEJ*4CB569%_Ue#l|JwSGCj z+2)7d1d|X{fEhrAPc1C?BOzN<^F3;L;SJ{~QpWqO^=kZcqz7Q6`9vomE`jDUhean) zADHq*QHjF7b0;ju`4lkRHSb|-$I(e3KHHl$I|OtFQJeljf*}Tk@%7!v%Sa zre3XWxz7g%<5C8~dKY-u8wajuRE%6S4Hy0Kh(NTyDw0|*DbT8N2XrRF9*6m=UfG0* zETVH<4Rhj?TGt-u^*C0L0_s*w-wB+t0M)n3Tk^;_%?+iXjj)&hydoP)O8Gi^Eb^^B zDrk%1>r|^G*g7kc2o03OrthZpSgS!MO z`r$UZ)FAG3TL4^WeDg@5j9Z-BXn-QL-eTaS)0rfsdrg5jh728X0-2`V}`OgRfw1OmqFB^lN6{Zv(#6(rge7X;zk0JIfP*+53lCr`BST$~EPTntA+eVavv#cDA6> zE?z~!;Mb!4nroCEd70^BufDE(9d#48ho@)s!JWrWe60|LlClR$tfCC08j63ojQaK% z5G#0B4o;P_`6`inWk{BD4kyGk1iw~}R2qZSh{%k8VeRV4urxF6=XW)u{F6cYE(&>Y z6sKF6#D1UNWNI{zdz8*=cB^S->lj-nch1V2#c-vsE2J*XuJ@BfPNwO8p{yCSC>Glu z`0zyAr8I++%$RO5UoG`>9V3&V zGizsE{Cif&^?ZzIsC#B4r!QLX81;UmWDD}e=nZ|iQ?j}9jwhm{H_JC!t^VwLYx(JE zhbBLNeT?OHo2G?3eVd#V#IKof-^1=jxQU2i*lpSf<7sFIw}1XAG+m~c3`D%TH$zQ9 z*8B6|3XAX^l_z>}nGv}cu?6d%FEn`;FG%k_3;3w~}Z_UNI9b_e;8R2k`s6w|G z18js=ua8_Wv4iMne}ZxUcx`UT{09*chcWrc{=D2=qURwMOdjG_j<(4?y>*EBHE;-- z(}0M3rm@0~u!5aJkg z`nP8k9^YcsyHK|3z~hclxT_b_*6^K;`B^;kdMaIUgaZ#gX4!X`+9t$^9LUkt#RlDm zcbP#x)yF+D#5e6+CIlK0uh=`;M7Sd>Km%;s)^>~RHL8^<*dJJZddY(DTw^L`C!geA zlJJKSg5KX2v6sayxZhLHc;=fy5s5fWs5g$iWhTrzxf*3DW-X5R;s;AaP!4{Z^|NBZ zz}oKxnVlh6vfC^I^AJiQa(i|}*-9S!)|D$8J~@~feu7U0A_Lhh^v?}R;ud>Vf#7nj zEX!U=OlfE)&3(myQ77EIg5|aZ-#Xyx*tC51 z7Gy;Ub4yPQO1cg@zAiJ_n05K%QQYx~H^`@kpOYROidLS}L&kC#+|*-z5*=$_zU(of zdvG$2z&l+8veb7$m^8{Z>Bud{jfH&MgpRqHnJ?^}%vJ7>le%FeK{9F#FG$6fZkvCx z*EClD0b-nKRTx-cROX07yBI3G_>ntvM_wv^02Vbjl=!1h6ttjrt-pmPqrIm~I) zLYPpuhINJwZyiaD@MMm*_&Ls^Ki;Y`ba?^!!QMC3`5dB6HNuUaLW-v=gJXKy zE&Qx*#_TJ6YO)`ZMF%d3zRm?zU(eNTCr@E)ys7El7QWCEQO#FQ#Kke_*4Z?3$1TLg zdw6g?AxDyISpT}mMs?4#Bv4To_Z)VZ)#{|IjTt$HCL0MTO!0Z68@@>u{p)UB0$Gc;u5w5U|H#4^^A}95CP2bqZmid#F z=+9*9ELFk9Dn7@^G@-ZYs=^gv7UR`4JHttS1{D^^N1~_NUfdfoO=`TBwuzav*1PZ| z05Y)o29ph*9jls@%0=3^{gp*epXIDP?_D~|cmtjoWb6(eje0EU{Kbh&o?0|))Q*$J zpsu&|UV}J6fByYjSy$d~#$kvaFK3f_iGwrj3nQ)VeJdStkAs#3MXZtf=?!58)Lq=u zOqxX)^sd!@hyDzX`svj)KK=6;59{2vQeb9GTw5dgy7ZHl28&5|3C~G^nR57L-Gd@R zOyGsq$`7Lcd>xlA83vQKay4?7m#(BKe_j|?p0=v_c`D*3SLzOxD9qQoqUw%<_w#RM ze#D|D91Bx|>`w({8AVpuU20mXE(95YJj#lDq>in9d@u_$zh!ArKjHx!9*T1c-}DC$ z8J;C0r|;%#C$G{V8FFS~)=d>)Z7tH+1`(bGmT`ghY<28mS5w0c zDHom5%Xc7(>^PFjWe>!VqUpD8yx>rivC_kCcF0Ro#8YY4cte9lCz~mG`cYA0(O3%yWlXEyI90jLLL=|r8A?KVU;{SoDddbsMto` zZ;|4)mG34aj`e%#z{8W0`~9TkW+r(1$b48EEq2uOaGZ$OR(?wD2Js=}ZN0jqd|Q>D zekzT1h<;CSS3H!71bUjYK$1QXBEAvKIXU)P#1u~vwPy%h>NGhiRp zKU?Z|)HU>t7DK!iSTeBr@N3?vC?AYjlW8 z8%_?azQW4M*nbh=r!;N=<$+w%WS$?6$M%%lsa59mM!g6JHM)7!N#+5+?q zG9vXkuf9i}q4+)Jl4&u+9=mi7l7~HId-tnX^{M{NuS`=;FKT1K&fo9ZKQK%<>0^Cs7w#gsUhf(IvrDk{_Gpi znl7XA7j>Q`HEG)%ZA={2$;z8~w;FI{S$eKRNkjeAZOsVq?=eR9sDB5=#ZZEG%4XsP zJl8Xj^{as;XZ5R&^vuym`1O8%Ih_9T`?4ruTe{z1xpl_1yB)2;uT&l=@bqW-?9_Ku zPrXc!`(*mfQSc!d|DRO7QRY;*I3*)=Vy%SbCkYEfJVhcwJ2BW4vRsA$H<&aU8CqW5Q{&-qI4BqX0N*F(@e za-7GEMdk;^7D*2%lth!rX4X41X0XDyg#TDPSOOvn^9q^k4jVq z*PNez^Z>*9+pvo{qYl!2PES*}IEFRNU^#R}bg4{Kz7!I~uL(VyU;7{`3t)td7QLn* z=M``}LFyp21jx}8SH0Ll%Jt2c#i*5_hp&5;wQ}sK;;RU+LF^nDR(%h&=}RzN(BS@L zp~bHe=i$oNIA|_Xxotu*Uz%s1EMDKLXnA6u!BJ$Mn+6jbNQELeETF03h+)$8iqSPb z_cZBIe>2{B9)5z<9&SQ!5M46Tj8#TZjf%uBh!G<;1MTi+%^W0z9j_^znU9~4%voNPmvt&7#g=E{KEp^k;j zGewCmZwV(NNa{efG8V%M*r}WKzN|TQL*)?Gs?u;7TkO^jB(>c-;50b@GdT8%XBlM= z`Ml@F3(Vu;k9V$`k@AB*p{aPTjhi7V%eP5$231&@dmRMJn>IXZwzrO?M%`QnwJ~({ z_#35i(h$x<);!)Gb=)4Jx$?`00Q&4t?^wec#9aFf5<*WdK+YIqP(R5om#aSVp)?sA z=NGO(F4xCenI^+liMt2(R!RWV)kc6cK;$pLpz{=F4^>S!-S-KCfVsCz40wofI*tV!bJd+t8{+ix~Qy*FH^{V{do{>vx9^*W5&q2*}hR zCCXFt;-j^9c@8Lu=Y6(LatJq1gsIbeo=MdAz@6demKG4 z(Xat)GMT8JqYdDz1o>|(cfdq4lEWfq;`4OckC^TfNSBanIMI$uHt9aj zK{7z&A=D=@5IUS-_tbP3gHy29q8V0Pcx5OItFlbLWW{@oU*<3cCxYf#zo}N*n=GG~18-|Q z?I(ibFsXtTU&_|9zJ57ML%zna?`+z4)=U3@Vo4E0Pr6^q^VcnHD<)K%)biTF# zeBM0NkPDzMkO{cA&o?4du%l-^2wShHBMtpZG>@$y;^IfsVd)-n_F6ZT(x=8}@JkS_ z@$nyb+%RTd@BxQhA#dRrw#D952&tpZ5sU6WJ zR7K3GBFRc~t5(C8u=O5*Mt=nto$qrJLuDy&fX(^`R+Up<#|GWlgai}NH< zsQT#VFLpqmUIpudlBaZJKwKZ5vAUdhB&l3Z zww-wROZlJN>jctFf*hzqUwxr7a66FwNxn0@liS+`6!LNtbSh}!^s&Y5G|;n?iAoDi zX%tJ(TOmVWcLJtBJy5q=M+q%GS^F$OPc}pG2*RU;E>|s(jpbxKC>@edf%V0jTrcn< zl<}c<44*n*bCN(BJnNlX+{DFS0qQwfuy~}>BJC}BEvH(Tw2pg)$%pRfvqEQD8XS_H z!R(9YKmf#McI64v$uEc;<~JaiJZxT2M*OJ0y?J+A1x@MKKC1-w>6w!>d9anh8+}l! z#Z#kN;PBi5+Z82%DOBqcB(GD<0z7%ST1_F3KY2iL4M)T#)(xmcf6BPV75AUNJD0b` zRCe1i<&Ev+moG^7#42L!%p&;PQ8UR(#2Cn#4kJv-bP96V_W~yJEM)0EHRzP$c^z+J z$+0BkT0{2PH-+LX>2W>11<@_~8w%F!7ga_+owS*YO1UA}&4i{)37b*y{+ghCV!mfK zM3DT0%9Hkt`B~^go%h1b$qgAs!^$UCFYp58cx5E)WSg2|nEe~-7ZcA@p^e^2)X5^S zifCmAuh6GZ$!}#~XZ`!TQ*Yd25}R3-9T&yc(}J=H{6V8Fh>kS=KNX*VYB)(J1 zFSDST2ESt4>*A28YK`lg3*Q%hFPaNI45V~TZWz@^A1W#DhknnYK)F4^qUVagW5!{- zvKLe{1)y4i%5M2Plc^Na<9v;Xq5Q`gsB>#1qlWw%PnY%!;$W8oJd1K zjL^B;%Fax2`YqLgYNwJzfr9+;`>(F>K!oDK-lK1@DD0n9;BWd#rL4IDUT&zrp_nQE zYvsH93(sN1i1ub1;iroY(L}#5Gt~-k5f0xaa6)6((0qqedw>gp#*|+ra3#;%?;MUt zfw8qA&~`XZXg(bs_aN}BmCRIBw)u^>-UsvF-!4u)OW&aI^g@L175-OlXAiP&xMk|B z|Fm~~b1PeUq2d;a{F{$YMUDlHM(^B_UO3_Py#71=_IdP`x50tuHnkITRu~_`?j8)U zeUJWmiJXaVKv1M~jk84eV*$gBG>)pz-UW0gGi5sx)cCSEzq3FLM6Kiwr9h+cf$z?Z z`_wFWz1YZFpZNL`qhRz$c)!b{J8%f}c|^m@YB?B0{d-hvHa1kRA z;cI*X$C)hta_h6E{b`ayRo>id5?0#WPlN^bsB5 zdw2S+mR6*$&nKQ-^-`+>dws20hB%g{!sGR}C*PVL9*+xh+`>%4on0YVPl2`Fw3=k- zS$|#P}_9D#@3{ zSGzV%T^?p1mu$<6cu!_qEBj6MS5YJk=t-ybYhPmOz+$y9wC6PU#k*@7$$9Uzdjf<| zsW&Jskp&pf4JGL%2@@iD%M(v*_RE32twoto;O=8xgC2KV&HOW6Px%gLie^%MK2Ah>UuSsoG z@)Vz-R!UjO1o?8l$o|IjynAU|54ZGfc8Jol_k-qFVw$w1sa)CWIlco4Am@=Nlrv?G%WcuwcHXy7IVY-rW+%+ql5ZLMp5_^PQ$DuxLX$&G#~Xj%=}%6~*}%Pi8pyPcobqJIOZ2 zG+dxM9%11t6o2O)Im8>KC^xF6pM#L_kLiZd?x zc-SYh)VpauV2&LhE5Ao*RJ+OKAu%woZuO43bBK24YA&d0)QVB=g3I$QFANot_F0aw z++|167b6dxHxo-Zmv4G-2y_i}@;Gz7!*3_oKq1tYtC42&o?F$@h^In?6UWrpY?6u#W7#e=;_#nAM;{;GC`V`#fhKl~{X<52Kl^A9%5ark2ma zDibiTaQvzdXB>%k!bc!Lj;O z3BmN6icw6C0!3S_^5!y6?j0+@mBZRv*MbvAJv6`oK4U>p@pU@djjWSe{gRF zO2%7+T7`jh^?Si5niUrjV$|eDs=5(F%$KVqsFBz*U($+^cWanyuT35_*Y&^5iFo+j zhmyZw&fXX*Rn(1j(`VV|V=~T6&{xgL%f>zxo*H^jc>D6CQjC0R0$n$#!=W>(P9fTI zrkBv9aMIIJMQd5Dnyy0dMO>td*^iivY_WXR(^l_$f3${_;VWY-FsP@i8vBRUFJW1O zAjjwT779`Z*k!|K61l3yi9_p?zAe}+^+Xt*h?$F}`!E$iSBvJDoM`=q}wk59hfe{Z`zy^y#Ol>-XGe>z}_F zN;s{$xun1%Ybc}=N$B}g1A5gwP9*Ktj?a4PX?C58@FbDuuMr5EdP++NDP4|vM(>^* zWfHkYH$pG4sJ4E!U-D)2knsL26>r3m-NqHechbB$9K}F$jpyOFIdQUFs-z!wuYZJX zZd`7tU!z;Md?wLZ7!Ydv>HEqNNJ;Wi$JUx(7m>Y?13jt5bhEKbiflmEvaIByw09f) z8q;IOC;f2s(;&sxv^ly($w#Lf2IU!4v90b#jf+N!Bz34J;!sJU4+C9LmWU0mS^3M$ z^cSM}hSa>&$S~WEckH?Ul8E?`nA^M4;S=>2iErdFo zC09=OD0UljlWw+W+4A^X*P(7XvXSb$?`$u`mY+!4RA+3WH#=8ZWN3^U4qY9gnp>vk znz_fQqY2fB@MfzOl^CO&q?@PAMb~Af42ozdxvIfmi-|mZ(0>ybM<&j3CwIn|CRNOf zvP4iL2GW7d4;KaHHD+S>+@V>QN;TmD7=LKf*R%$jq)E6}Z-Ebd<_1ruj6Fx!>~( zwi?`_?iU717r39&O|o|$H&dHXq4-EooHw0(0U7qK$X(E#vQ!$S_GD)(_h*-f^#s+} z>)EA*E&|e@+B1wC)ooWaR9G>Df)dMj0)(YaH{Pm8x*wS_qI92$gheh=sXQnQC{!xT zDHvBsVH^;?LR_d7WrgO&Fn$svpGRR)-PJdtXMs(>MT4565h%zv(u`T`BT2Qhx0XrK zviPmwu{4N>4nDlT!$7GNC{OqVr#=ZKZ7!N0}SN*s9}|Zc}keUq(y_7lx*0VCy64 zr5gz&m9-?Fij+-dtG7gp2Mb494xrRebyC}=aM-%YA-vpjDQ7In)-K=ist*+vIS;oY zbGJ3!V!LZTxKuwBIAbsh^HYdo8CVb}myg%vo2`x2m8M!+Q2N7@+2m-JWT$UA#teup z>Uvr3XeI7ex&r-LuycCAL4yp3Eq9$<#?Nn8He$SdOER7d)-&lz@&g#lK0`I+5r(6yb)f-aaWWqTY5tgXHo= zVymXL5Ky}dyaXl9c7+WqmzL?m-ixl6Tptl#4~9!^JA_AkK}pQU8xUVVRo!>FAv)-K z&ZF`h*EQw>gc8l|<)F_OD9uzf%B;`4_ABP+LU&iKrQ1Kjp6h8q3U#k}wknOSTC6}R zUyR5+0$FDUG7QzE)wgIfOgF3A=$j9WvWdMjdYLaP8LngPp+?=rY~**NK)+9PDlA|q z>CCgj=Bp`PQESJ=|`GVRjrr&a>Xii;U zVKEvF(TS&yc5<;5$jlLjfngWkm-EPbw0RlBz6*HikqABp!tc$Pz_E9ZFZ(RL%zVqY zLatoG{N(*IeA$=K_QWkY{{-SSW!O~Ranl`&V4{<^-YaL8c#G4&>KGC~r}%8RXRVUf zf+1pq6iDOaduU(ztbCrPU9@$7mYqESPw;59c?M)e7N@s6gVWTYGAGP<=}12TrHw)@ zw4eie`%1v~K==$JC?cSRadoKJ>AvOqV#_=<-4N!X;O_NRBT?S)H7-#M0TNlymF%=s z38vE}VVY1I_M02xI7hbP_s~tJ$0I1-G_+KxS9Tq(Dpk5e6zdtRPn~l#WDDe<)8aKP z|MeJgb1F=2xN8$8=VK+QSIRW+q;lklEImO=HAb6|@92BJpdo7JbJiOld64k*3LqJ= z#@>@j>d7qkB>-%0KI``*CIh7NZHeIftZ*&gGcB@Lz7wH4Q2t`%g)m~B&$rGJcb^cE+3 zE2)zHd4bLT`#_(nYSEMA^RqzD?q96X=2>9B?{bhN(U zyQd>eNidD;P{qJNt893&*8t@uO)p}w#&K9L%|3l1?cKT_IH zxBO+8y<;wpjv-1tZL5>+RUzZW&#$~>-ia)$eLn5~t-XP7Ch+H}wRF@Ytw$N_oW-<; z%qftE)XSgeC=<$G4}??y2vl6-_o$kTZ0@HM{4!BgJl1Ta>~S&j=$eg(WgFpZyA~eH zWrM-vxFTqLiTb(XRs%lOG3Gd8qp2q7R5*~{`Gzgc462LZm z4V)JX^SL;ZW2AU0KNLkhTESbv$h4F6dQq}D59;{-f|g3=nc<&~GS6Cy-R*fDE)@ws zGC(`FyEg0gc%bidQOu`tcX_ct%}5;k$Q|DjoJG^YxY0>zVZ=w@qw>gH)6>$xtfoe+ zKa^UeHpjJQ%~R@}UDY{(ULw{PDI5rIvyf8w6B!&uFYjX5v7uYt+pi^HjN^Eud91{*B(U$&jChWf7TBS)kOu_xE$uVax=4|8F7NF9N z($qkhu^!0| zh_{~BEEG%}AHS1Bx+X(w(%jG0nJq8JH|8EW;heWD@;+w?oy>Jlm?5Q*b0|#aS#UDU z#a6$?pI%M+x*6mJwMYC1rJ!)E)r~964lzJLXmpiQt3s$NH2O1@$=iD*98C#p+UHJ+ z=z4d3iz+0p=TARf$jm~+H(Cw(Bn3MwN(GZH64T9RC!6r>n$!jT$d$S=p`EDxMkaTT zaG*k3HfxuWVi39y4r%Hgk{Df;6LRf*z1O{(^iaW}tG-85%?D?3a@LSp{opyMLq&4q0_piRCAGM2On{&%Byo4kj9<3 zJ=!q-fC%B{mX`RbqWq)U6qGtkf%HT{$j;?d7Sgb$8bht z&%8QhKj6BTO_gT*3|7LS0waNUxx(owm@N=^F_IGJ4slAI=)Imv&gdzF!NeP*3*(Y$oVt9?eX$fSd! z;;4Crn8F3-rDF@x*l~t8wuxJeno){|V;eQ*(;Yp%75RDq7IVdubeLXuwq+;tGsa5os`=T1?5UZU zQi2o?GsfnDtS$XKev74%)5jg!>su>m_KW)APBiGoBoZ|bb|RK|Onyo2*5 zCxFko$L5yJF}j$BlF(W$TG`){#H~fWe!)&BDvQ{$IsH&l_#xA>G9JR?5V|oS-P4QN zq?{JLEpGJLpzh<@n#xJ7p_r@jIwLDaXIFksG8GPnd=~bM6KHa#c?eHB{$15~`f}GM zGxNFYd@+I7Em>$pYx8fHfH~okxWtq)RmtYl9VJnW-Ea*yi&gQ4hb;4d>#VlxYqKoVr;e`TE7=s?51kj)(y_pQqQoe5Z}?3;s;H_$f_%_q3w+QDWbbcAEZm2SUV@ z&zIYJUCM5@T#}E@%uNLGy$G9J=Kcz|h150aMt1RR&y@PEd!fsrC**a)l?epgILdH$ zdrWdz&zZJP_%0O0*N4-6Py9J~0}`Fi_bf#~E>VsN+N@UDnOo9zF0i%NUeqMz)jMZW zs={@BnOw{eZ_l#1rq?smhHJkj-7%M2xpskf+-Zv6Bj^76uNj_GbJ0(Ao~vjw!r8pj z5aWri?@7^*Zk())FUWhAooWaans0YqIT=D(EgKFTIQe8n%x`og%m3!NPxfB9+>u%{ z(Y!OAnPQPmK5J;t%)zH{HPT_X+O%4~$pEy`TtR4_X((}_$B`8jbKCm#(F|J25d%TV)b_kd@R26=6#{Z1< z&bRc7-R3j?lMT`z1ftJ08aDG~^HkQ|x|EqdN=aFtMTfHpTsWSsv^tTfH#My58u42-?ylJm@~0UaEr=hl3M~}%$?b|lxyCyvM-vNZ(TrUV z<099qR<5h7t&dEbLwm(#FRfQWllj-G{ldS-bDbZV+3_@qdYF7)(`}YPj!E@-w$o3n zVC8(WoVwV0eI1*+g{Fs=pNCdY1hp~O$6RN7>qFEt zSpPb=2*uJg`|wzuz4BX&WXfx|K0X6Y7CcBw=1i>7?m2a}TJgd2c)0!8x1Xmj6h9#M zDNuS+G*;V8Vo zxM%gP6YGmt70t(B89*A;=@&KQeR|V(U({0 zC&Sb!zq#RjErJl8;&8#*RfMlvBX{_tBFUL1-)0ek9KSqDVzx}(Xu@JkZF#ZBx-UzY zn%qA=xM?glccf1-g}{;E5!6mjYSCNTIbiTAAlVlMw4d41oV4G#j?7*1^$#9!Q^>m} z&ZXK3C$iKiw2$Aw6@LiA&1>loQ&DIxh!*!;z5?a7b?a5J^P_+LNYq&mKOY`kWn`BISQ2i*ZQt(Y9wHho93u(yO6+hjUUH zDTm*)#w!|#CUq-eZ+kmUu8tMAj!(v_T9x-*#LWYYG|4Ez8jIZ992wj*ja7-~_U zbS7|Yl57$gDPG@{V6XDi+_POe#fYQpYFBhEQhMucyQmOLy}MTI&HmHQff>)ghB$5L zF?WKf376;FD~*`?M&?gl>-siQA3^Tb4*c(o%SR!lD>0r&-cd5YN%$!O<8jsqLnJ*0oIr{8N3xax}6P@T%u1Tpa^au3S|zFo4T0c zdd?Vj&THT-k+(r6c-E9rMSieZ@e$Ya^{TUyi?3_F;Mc>vM~uKP?P4aPiEgi}Upp0Z zMEt$8r3k72A`wshr_FTvcUmF$)GF@hW5%OhHa|x%s4a3ZP^jnX_ygOEAkQOda^xqVmUt5v#CpYt>$|J`Bp9NoJ5Z)FW3D5BwX|{*|Sv1 z0<{~KuIiE1eMIRPit?s=dtpHrzA*TB)%WbDJ^Y!NmqAOC88kLrh^SC=A16EP;<2ACL)T;=fVyLJ z!(;TP$9r++PrTWS%PO#G*f1@2@p(kO{;{o+iN5EoYgM^RqLZF{_hjnIQ3B-FcU-Is zP6;$oDqd(-@p@OMbDR0e1%HnaFU_abGyDTf6v9EMpW&&A?M;04Ik+GGp4r-c)wfGr zZuWCDz>{>x$BK)sp6W|zr8-moAPW|CoN^teEGb>|7{8_NKB}qT)pgx_XZ4ep_E3XN z?Y88!-;s^wIq`AQ@7_&Z?stnB`7Lr}rIq_6Fvq>pRx4R|-M#b+-k23H`Qxr|(@}Z^*h?_CzdA z+@w1{WLmfT-P>yuts1DcuEmSQ?u({Zc}2`p%Cco|@?|uZMIV0`HtJ!gM9!ilxRaBw z?{8>wF8V4F3VQW6@V^NEADX^0sLihH8g~d3C{A#9cP(DLxD_w%?xjF+clWlqd!V?x zHn_WckT3W1&i9YWFiGZ|>+G|a>=pj4=1=qU)rlth{Fh2f{uCP+8#B|{s#_Z{=5r^e zfjM|FM@qd5@pJQzy-hzXYYmaC+CE?e;f%1NDPaxPYG%w;OmdxggQrJWBtnGt zZ9A#OTE!b3B;pPeDC9g8IRFIJr+?z&l728c?mW8g!u<230+h~ zm4`&+#%gV_G72qP!vE=3&9_2-SMC3@0Jsk?cfi<4jc&(^7-9Sj484XogkJi_c9~Y9 z*csZ7*dgJU;$bhOBzsjFW6(ZRVg$o5-u}W)O+(*mq{A$Y$$PbfUpc7)Nq=W-Y4^vT zm-k<5Q-QHgWlBAii^rrYO1+LgG@=?NFhFy|)A2Oj@ldnID)1=6RP6Q2v%n*C*@&5W z?xFo8k^i6*gCF7KZF|JUwL5fg=v_G_SygO>dn5Ppv|(zr4t2n=)r&*$c(hcYQ)Dech9KmGPI6`F`Q)gp%6n;56XEzmB&GbFe953xjg>C{E63 zU^T)aYfw+{ginf`zLQ_~!XjyimDU$wQ8@yYE~} zZ^fjZ8FVt4MHkWgvHT&|_|e8L^gk7FC$~IZjA;Ft$NTK4>)@2@cHhmD#rNT8&ndc4 zn9+|-G`spu+iuK%%VT|%kc{vAAE?g@VOF!$tC38#&86yK9vsE>SU5gUydhUtD9%`q zLmUOY>}P+ldq#S)y!w}}8=31vtevzMRc|{gfzOo?*3JzZZp#}V5>!0)09P96{b#4` zHbc{VPW!9K;jUKL;ED2-mu0PwwHnA^oXD5dvaFl6)+8+RHi0@rlEF-eDGL>d>63d)fOW;n~}{U53+;@A|7 z8Emi@5SfbMFC51X@0EVsV!$dH+Y5V)bJUGbltjMKW{bg3YN-^iM2yeH8Lj>wx)ou8EuV+{}G@xCwC0>+V~S$sGY z-3|Flz9l&;&lObpavb1udPV;OSmL|#@^oX~4tI)G36t$6&#Yj(q&JHtWJnAQA`btD zac`?X_kYHwNr`3gbg4XYrxUKj%mH?wpJ6Vu)*-_Btg4S6ETyNub_I~BGPnS z>S2c^oYxc5_j5yIWytcB_r=jyNx@-1Za++Zy=f7hOo0E8fjK_ZZ50a{zST0_ghV;--Bg+(*f-4^`abY-Cp%pb>iBz1C--{4xLy~1Q+s> z4t)nG^krnnf}G+^f_!A<+xc+>OSIH9jJzUe#hgp`jnmUv>~7{RVfECm(Om9+FaU}I z(R|_U-Fh%1Ms*prA&W75_W9&q{_|*C%Fb~<=NA|)dR^2M`D~w4R(lgL?8Desik4R= z#Pk}u^)xPFv%$JS9pR|D>U%wh)?62fcS-~!KB3Pe zy>1a((#s|fwkEj$+uutI3MU9q9uUSUN|RcTGuFymLML@rRyOvX>~1^;+mI%T!A4$* z&+4acGqp_GL7Bpstc>7Aa}6=v0-`|u|Q=|n6)hmCiAw=w z5<)3*=%)C+$$8AmzgO`u@RNC^(?GM?(^4bV(E_PbmzR9ftwpyzGYV_K;g2_AyAzv* z9Sx-IY}kA~8e68a@0IAy5P_b@ihZvG5_~W6ejwqTG!PZf*b`F2h;7N+ z(j|lRj z)ywP8;Tka{{9_tr(*9LOroBPXIFAXO)KAr2IXnc%9EdvI5SN4C-6fu#OizFRnRl!t z`?}Q_N<|I*B}o@JK8#wxHZYY;R~VDltwiK4a*T4eYtG{6d>0d}HTq6NWf;rILEx|( zQHlNbYvV}`zk>oX0PXKVJTeURCF3LGpLb>5WHgk z&p@zDfbmE(WOM%)6_LvY5#e>(f@uBsz5J|;QuJO(KH85hHaD_|>PEs(wg5X$ioOQ4 zbxLOvXO>oOIX=*1t^MPrmf%U!*xviPzYLb>E;c=wdw2Oh64wJ!SJjn=lbmQ+svM=M zy{AVrpm~_AK|HilEVQ@9WDJknA{TDm5aRt5N@&tng)&x1U>c4v>|5N+n74%qc;1VC zLUjGSM8jelXMk3o+#iIuV1v(Nl<9)b8B|`ktIYkJq=|bjsGrS3f?`OAXadwpvpXVGm|+tA{i7@Y{x0{bdZL ztD$dEr9qee`ZKtpG|F2$VAW-4guujKU4xm99jdm5M?vqMQocWk|Eskq5hnDgcpCxw zy(CTwrfx^(LSa|)T2I*1+C&Iu{`(B7g@!+3oIZZ+0UN~xP~85`tOJ~w&;PSJOwOBl zz1)QCMfDwz#P*#i#eejR@;+bT7@(K#pc#>-FH?HgMwRWK8*`j6?%U$^Yj*NEKf6z` zezy5H&_lxG=yM#fyb&+5!EH}HxCnb!Xemfhv<|L23(O6~Z|;VBgU>-qIF;|fLaiM8 z`?0?p@fj{|Lau+rx)p2F0IB9Vfh7VqI(PvFXx6H`Y!c!<14C+X6(kW5JQxvENT=-~ zzI$`au#o@L-Sv-l7{=|l<8;I&z68GrS|w_cL(P}CXBr)1v3esFKXD!7Jbi{B`~3yF zz}Qzm8^yvSr#`us?6(^MZxInTa$tM|8VkIK6`Y3`xeuwoUMzva%J;VIB@x%?&Zqrs z*ZtqrW9>DJUWbJdiW(Y8&S6V9)Uuz}_!pUbKoR&~pK$)CDKWs)awW7M8H_m9eKfv$ zZRc0z`krm<{=7TkfT!p^ch==I&EiSzVI6QMA{ugH>9Wouwghy5X>{pbCNMaYpaQX&_$_k03vKx= zN6fc6a?*sj@WW73)TqGw5M#eiR^7Cgpc>VpCY?z4lj-~F;3JiF{GXa4-6(2b!~yQe zG=oQfbl zqAa6`Af4LT1!E<|Plb^6jP$S+FgXx1bz?tH7vs1Fq{+3@4P=DSbVhcFQ_Gx-QOOwR z8Z%t<7K@UTKfjMNbA5GlAbz$~I|;^EW~YF(+$vq{!yYY`DE7NV%C$Hv$?uzWLdNeX zGvfdr^fjoX$EVZe5R8)y3hSNNUK#i#=KwG@^CAh+FJ}zq0Y9~-4@5m^wJXVihh6tu z*_Nwb?^Ty*RZB)*xgu|mJG5v%)i8c{3p(k`x%F1Ah|B!sLDiK5O*#KLBQ24*A_&IL z8pu!PY4&X5G+U6WI2ykk7EQ<`#rlBZ3C(ahwlf4DH}RPS{{k|{IeBD7BP>VK3hbZP zh;188qz!I0vs?+#Y+shd$aYRSml3)3(`>6Yi@WwOd3^j|u&DQ+I84Kr3P5J7(y^^W z$%qlhmxaMaYsBpFX{UUGp_pOfAM(<<>-tYYoW3sJ>YzSH5N_{Husr3IJy$~-&N4|4 zxW{Z0X;U^h4Sm``wKyVQiV!#O+|r-97N(VmBZlGyt^m1{Q{n^;`n~`_1&kPtKN>04 zD%w|3d_mwcnj!pWm~&)rD*zl4Trw>AlxG2B4{}6d57$?WOEL*_(M$>Ap1?~?1aMIR zJSplb`YK9o7dLG40&xb4AtDRBqAhTxqmtT;Wh{cscVz?~GHh;-(TOU8yo!8DIEloD zI1KhKDDiBk%m-MJ!D6U#2fU#7+63zh5*8eGxqeOhi{?*%Gf`yr1e6OtMdpzP#8r|q zJJZlsFb8((W>por`myTIT|@1cT@BO0PoMRlHD;l|CkZqKAgw(n{<%^8#d?rXvUi-9 zP+PjtQOs;lt{Qu+HNv@!*tav_v}ix%I#&j}kx(LX$`w-QtR)kabUY$!DQR zx(xb9`%6R&*%c;gU$O^TLc9RylAZ#m^}{d%IXo7k5DWp_0}K!z51NCf3VQ*2)T7lC z0)yzs9(>mYtMCu$H-TYL5e90maG8KWVuW*jVGrhLei&>6Pb3ic zhcZlN(u98A;R|fth-s3^kQQT*{ztD^P6xY#YG?6Dglo(clY%9ux({eeZB7!4D)MR&O!Z*0$X-?zTwF*Xfye+E$V7cUi6>(0e|^q z_#j<`k4ORpgs9_4%kK>#_7t$*h|V!^xc~+pWBz5a6G60s1G^8GjLt$m$lv2&y4K@i z8_f!+FVQ8kQSdS{?zoBnUi9EEmTlS5ZRegk)ZCv{8o>%ud7mH2KoB;i$KZm8#4rVj z3vw~Wkr|HH_7|{#Jl-)?!K^**n*a&cK@2q(+=IKmu%6~ss?OKYbpL_-+R7g-fvlYe zB%3nj{JF+=4jIXw$hEjZU5J$01Jyl8J=-=PH;|Q zUC*qWYX{RHPr^lM*p1(uW2WT-Ja5Hcq9-K?x;KIlI}bZ0wEwkxo-yV7Uq|M+3=-9Q zUzrhcTaA-@XuBioE_$t4rjPhtbhXF@tU7B4duWI3jW)3734az6c}k1R--u>at|cOj zO9;w=DxRKMNFKo9O;R|1fG4ZL9^WFZ*t7s{x zD@(>UWfa_V7$Qj<7G&a>ne5O$jCiiGgMc(X7U6zVy=1@ZpnQ?F##e zn^ZmO>z17}h`9WNg+XN!+{W|t!u4SG+ZOVBP{zC31;3Kb_m$g0AzM?5ZFbH&QcuCr zN$1pV_^X-fGn}9ABpJvUFdw0zY$^=$P+t1xXKgo+n9&uIL?JQbZaT#o2gNLd6a*gc z&|kjbr&o-NnDaOigN9ysGnqUm=ZSSD^CZ`Am@tvp*B&Cy{XX`S6O?gSQpju^kJkq( zDRSgcV*l>o_g5GO=`0nUU2m{ z*yEQLJUrgQZOns%I%e#E4=&TLl7QsM$cWD0@5)&`jD=sG>L0h5hk7^M=ai*PgJxt1 zMmUE^sdI|z^>u=~;+T5^=||2wQZ8T`-HpCdjETw9SE3J94t?WJ&}H|RRIeT%7^=WL zbj@!mgpneI*JSufxh^OlhUM4b$}}MS$sM~8NVV>dprk5zyzPAl(;XaEkr(JYht^gj&8d1l3p5h^(l-H36*%)F{X{MJaQ2tqk?onic__`QXdRlPnx zzcn=PKEPq97@l-e(&e3W^QYk_CEoQPt?wS{irc3d@zM{03wEf>Cy6G2O%Cj#bGaV? zGAGz03HabVTYc3{UfHiAxic(W@!tcojWVQt)4*58C`<4<@W{(H7>~g-98vNozvl zsk%&SEnA=hxc;b~ZtTnW?lRc_kyYQqs>|nkgr1h2UG;dWhMm3h@;j-|Zem%WHR5tT zUw8yY+gUSMB;qLL%MgAs8`LuAl#B^jQ`4wp8f8Ax*OO7UZQ8S>Ko_=vhBX`$!l&Ok zwcGwJlk(*hL?GMIq}*j(q|C{+A#0mhnqS3|Dse+o4E(HbA6$<;PX~Z(Vzy@5lx4Wk zu&rva$UKfVwURDpMPL6y)`GcxE)I0(Ky^Z$)x0V+=nHnYC++dSC2aU70?VyWqo^~k zyz#MSKz$dKBj@YDwqsMGw(pEhmGzCyT+0u?gPd_E7#Jc36XwX@Gxn$*{PY@()AQ*o zj)W7)yb8xO^A$F)#x8g&MBeWMs!tDz1TqC#EAnRS0qs|$TBKHdc_fBvJ+`b?S?x$! zXigspuK-32Ap_$rnCkG1+WnGlvG|~1WLiA~%4tj@s ztW89!Rc@X*iy{QlMTHmy5B5k01J$5$jH$4%#nCDcYEXON-BI6(!+^un^&Xe!sqPWD zr3M2iW(aydX6BZCOHyJ>)G-OrqEpRdIa#dY=I7m?$`x+;9NTsO&#qMusW?!;K%e$M z8D-M|bL9m!m-GLER8FlnkCGoC;L+1<9mX_4b4=-PUewFcvA@clt%(tZWk9c-OlTj? zorMTYwp%@-g5u1}e*&cXHCNwj@fsv8kSFeTa(cqZ1#zmjO=GSuf85 zg)DXK+25}J;(}cmWb|TtlcZHp2FGj<6~4G#BNg|f_OKAVkyx@vxu<2Lb|QU-mxYUy z%k@~tsvW=RX@ZftAf%XGq}*cpid_p0yioIxgJW>C$%HupBd9TK0BUp61&8{kBRj^< zdIo9vbcb4cn0vf>*n84@06l15Sucre5jU}kqjv6tH7{y@Hn0Gh>O*dVkzw>3@2ghV zy5p%v&38y(uOF#6fEfslh|Baf?KxuJd!__)4>ve@2nj83669(qzZm~J3P{Am2wY6h zG*JO|U6#f{uXjsgueWoF=5`_`|+%$%!AX5;Jk%%Vnp{EAefdX_$U06b*cV zg}?NLR732~4uT+-W09nQsrbGR{;;j=oEAvZb{u{p;d5VCMP@VOf1$!V16*LRhL-6I zOicGFEr^J3-d3q;4(_lr<0n3wp^6)z`*Zmj{5fTjWli`J_lGOb=hV8n@USWY{0Ja9 z@x*&)w_6LRE;r_^{q^JcMB}5Xv^5MHDfQ-2qNjnhy*q3g40w$QKW3>f@U~a8vL^ah z==!5sFxa^2S5eF@nt32YDyzF_`cory^>Kok!g$C*1A5r0kmu-CT`1S6(I2cI3R z9lXRzp*O*i&~_&Mqda$!SzSydIf$+atTME%4Ky|OUzSVC4D^kOe?F;+Mb2BO9z?6161n;On<~%p0ZJ#x=)$I{0Nh9_!xQBG{Kt=9 zO~U-}er#)b^FqTL?f5eIl8}<;Vaym4LB`2V5;IafL`LrIyFm${aoqo7I%%I-p z^c#rBByJ|DrV5Pj=8Bq-ff;Zv`Drcb+j)c&ANJEaz~8UunMy|Fh7Tr@D(`3p;ZkvT z0*Q%gTaP_VNc6%H=b}XCQ@`6rZjVQgTu&;@29E{oOdPD9Z8&WH1${W9|7;C>^NGOO zPTUM-ytHU$PpgoW`I8MZ3kxZS^Jb6h#p9xZ6Y5Ykx5!?K=4jJ9NDubj!pCX*K`2zY zZ8GJfHqtQ)JTQkSW&F}-;K_{-v3JX^_hlQO+(U(CL{-=3B_Wk_(zq{y_VAh)-n4d0 zPDp9aa>_}~MhxYOpd4a3(p;Of%*b#?ToAKY%m3taxiGo0o$j>{u{^hGcuCI84Da)J zR5LA0`IJlgr!O!g0`Z4`0?M=h)b85Gj%>3T(;U#Uz?N`xW67rH2xe##1b9JLV~!1R zzBKnwe47V1MEQ$m;}45UKXDa%{tLxLLl_zvqhm`DIA31z{vuOg%gc`Rue`i`YNg$y z;^yB(#kjG}#@AnH<=1dmHGWAPE`Pu`mkU)r^mc}HeUo<>d{@D(Yh{7*ShnOmN?A1%car_c7Up@p zU9>Vn7a_8>;9fHQ^-j#5GSoI@ocJ?2SKz6Kj*+;Q@5`vfDmV1O*SNg`o*rE3;@ssG zGIEuW8NoF51sW6mZ_aEj1zMr*Ex$|fL z?!Z?B^JB|hd93V;Ru`es|M;HQgeJ{$mFw4s4W)E8Bc}P`5{2aPoEu!a&k14Z1fy|e z!ZdY(@Cvrz{{*ei#PI@EXi&Edb$3wTI{tC%`4=M$i=sl#9^GIUUP~yvpVXtL{dr+B zea*_S%Q!hf=rimSH@BPN6Xg@-O}&c4zfIPgTYQrF?d1WZ5G1H7I+h7^1ox7+uVQ2t zn&guQ`K}*b4Po4?onQ7-ZxAo`xvt*tnO~I~+>jsNh}8cV?odF-!QlxedW?8wdBeZy zfDDUA%9V@~*5MF!@o2yefkAU9i*rA_{rT$wM4ev#u z&-?2`_F3*;?stH>GSX0=&Z2-aRO%g&`jV%qv{<2|%ICDs^85E*Hc|4P1P=sVpj?muT?){>p9l!i0_gtkt`F!`_=3?P|a(r@9#190y2e0U*S7I9&o;{XG{gdL( zB2T${e70BwW_&>ldH&T+Cod#p0_R!e+phO|7rsEIb4uQ9TrIb3f8=P2+NIZ|aaL>- zyR}v4)*E^;f%ecTD(qj%KUDU)fq-|ElGI!FSIyN8y=6n0(?Y$LNfUm)XD=!}sn`9A zHNmYw)5dK3ewJN$yx22C%JH6hTo%2P{e(Y!<$gNx%N)JagZFZ;Far4 zSDx$f*)Op4gH8re+rxcB#a~2V(8hR)Cyh6*nK=u{dn~N#^053{2UOmf0uX17+Ru4A z>n94r($Sh9=K)uobf?@iZ7~LX@i1bnV#G{%akk{-Qws~CHKK5!H=?OxX&Umiu@+_+ zlP_)mrts{e=|`N_e1THMPAAItq;h%nK|2y*GE;?oJ8X?>P7Lldd^P4-<+KyfhvToqL7iC%X5njpuOqTG2|?5+HSIG z>jz?a(=g*)IOs#&XE@*D6BG9K!=liaXOcJ&Sr{*-3Or&DJ(=dv43E9-;ug(;+OBeSM?1L{Z}&MzqB zMqjaO(YyeD6yMd~`PoHvqin_BJ>n8i=3CW~lY74mR_(kM;JTpXeLHw53)r?#P2G8K zDl=@WZ+5wVnw!!$|6b2LlBR7=o)SotYJ2|yx3RA?&cf}>(~fu5rFdY$vAvCljrxdJ zwn_Rwa}rx?aYL;?;O3)O(z(3w(lf}#7m@&#ytLDK{)o>_aavR%&+Iz$UcH_|ng)mN zub-4}2kg+@<^$V8noMoFXnhZZvp7mj90*ry=vY?E`7lna2nO!{px!WpHd?HeMTAuV zv9Pyz?aF`Qr#ed+6Wr~b!ex6t>)^dsT-+*d6RBssIN;F*%>6pDE51Bhirw0=Q705` z;_MVI<@D#}K9RG|V!A^-e0R^jG${lH{TAzBea^NlRSB$e90^{8Nhl|Mj-nJru;Zx%8BA>JQSU=~Bi5^N(cfLKJAjT(7 z@$ZWXIyUdM9heZZb)LM{_Tzh5k2xy+%Vw|U?McMJfWtmyLWm2j_lkc)I%QRT<$o?T z+}PQE?Wr)jD-({$Ya0|VQWh6fTySb6do2TMJMm-YJgtvit6G)7L_WBTD^*fqXsC@XsgiHHMic3MWTC;jd z)OUf4Jy?+!Y$8l#EXt{~XYvm73LT1K)zo@oX+v=F34;m-3I|GK3IGK^C9x&~CGk{W zrJxi;x})-gBrl@ulMW?)oh(WRn#?8jB=F(Z7qEPB$wLWzsg8z{8)x}MNqXr~61#<1 zLai;8nz*GyfaZ%D5S{h4d51VC{Pn%C_{@#$Qn_hIt7(gtH6L&X-*k#sv81k=ta7o= z7*X>Q$|eA9kiP35AQ?9z*)DzUX$=vpMo z^ajJiZ!^4L37=wj!!{>G7#UgnZNT`=bv+C?1si=kcttatwWVYuGZ>JjL->=_BSR8U z0Xw|(`)uh>;H|02%Bx~Uq0g*Y>r)`S%>HZKud>K7(Z)gJwz9fL<{Dt%vZbAGOw-Yr z=;m3^(tKwz>=ocsliPWo%iwYRa7Fy-gw`)i^^Vh4ETyIkPu2?+hy3b2*xAt8 zxTM^LHCo{t&p+>sdx{Snp$9a=%dTeI-#W=0m+JnwC%FH-{o$T`t28om@GcKlT2j1_ z_x$&Q#}nAmxt@cZnfQAA5f zy&4f zp1$U06<<6XaM=Q9J@l=-cK@QV2MoPVzpIiyu~^H*UA(+PguN3tWMhf(Z?}KFAiAXt z`@^4Zyxq5Svd91X8j9JAt15znmKk_GtHd6=0h7IRiAb9tFnhISJ(Pp}@!yd(VyaV< z+6(iVEh-l!Ob8Pl$I0pf*=wV0`12CM>AlgiMB>B3ZeL9qa3pm%kNpc+cg|#8Kgi)B zp`T3-s@T9fdlYw|Z%N^iR9`p%6N1ChW_HbwMqN>7>5-6dzi*{w@?usq-^bzdtyPeKYR$O{xKcr~ftuG|gF4L}E z|7xJGEu`n#-r``O=$f$2Kjc`vSNNN!WoG|*b;=#0LE^c8HY}XwNbU&UpfQPAWpkix zyXZ~_rTUgM8*QM^k}9Yeo%W0<^tB^|(3Ss-yK^%t5+Cr|#yK+^(4il=SRZ(pCL9O( zHrPpaHA)BE&d3pb;cG~M9vrA3IXI`~EAk?R&YGe}bJ7fb?eZ^jgxjPbys>IKyTC3GmPe#S2pZ7AaZa4R=?e zoJMfRe)i471FS;UNxh&ToNnCG_w;A?=R?EnAC1`E!^Vj?5Sfo~_R1`ovS-ONjg8!h zhdpx_+e&21U9woBN;0WKn`AvaM0jLRC&^c_+D`Sza)bcZGv*@I-qU?4ftW_PKSHT_ zuT(4vvgvD>KXGOx>uY>1(|@mFmTfoiDrO|ak^1f6--8*ch`Z5)lB&X-23VixVeaIJ zPnKj%0lF)o(&9BH}Gq)GwHGX`kZ$(u~+d z!rMnY(T+^sOw5Kc3Ld{V-d6kbV#}irzhLe$mOaeVI>-Fz|IodFpmTr z)6>4X->&`r(Qi08^9m?|&@{M_4c1?|Z#M{F{8Bh*C8JBDfq%sp#GspFsvb2BMS&|v4bLLDbSl@s*#Gyz`G&hy#N z1;5V4t`DxUfJJ7pZ zj`#>Gdh&>;=DdL{tRDmzb)Eq!4~Z5-?j9ppC+M^Ovk|lJG$uTqY@)1dj4OYerN!j+ zO`cWixr5Yf!5+(*fx6d$)f)sK%H`P};&`;`tLSM}Tyqkhlk?uJOO0sTOsHvvkK&dg zy_;x9xFaghiAmr$>XFI&-$`IwHU)8d+gIqyDU6@#eYt*Xws-hUdS7A$g5MNtI|He$ z=+#rlOBRgbT&8lRNlG;Ietw4@63A{g?z)rCg5k|p(EE*-jj6V>Q?T+y;=!m%hhuc@ z_Sze{WAqB7hDg*}rSW2ngyj^-3GF6=C3L91mM^Frg#A`wtu7_oK1wP+@ceaV4@l2T zvQmibvmX*NXisX;=Pzv!6uvoXuH?(vKZH=&)Xy`pGWZZilb!azKrV)x*||>bTZY2F zSqqO}D2N%Gq1z0+er9vd0R_)%*3X?=I*mAtS++3jkd65NGmG=id>wIE$qb-?R#2Mh zV!3!C-?`s#H&tMh_vfX<9(aI#mzr!f)ls4rn%_aL7u6c(&$qXSZtE(QzR)5k&=Z}V zab09}xj~B~cg3aqtObe$3>=x{S97x6b#1J9IUmnjWb2fX)I4?jJh1!j8|=u8r|^qI zopR$`H?7IzSL{PYgyZ>4-`~|8Z(oTJc6S#?GpFQp{pJ9_u*ihm&tpg#<81x3iJ><< zUh~WKSVYGKNEq4~oJ>M5ix?tqDN5-dXg1L&GY#+#uUxFV*eM|}2o!1)2zhEds$+8@ zXQ|?1N|}a7dQp?y3b^xg=p{&uqN6nv-zU`HyGm|_aS$&)|2;(@MH$bNwrxW_>>?hK z&k`bIegpkxeUPlE3lzSt?^Fhg2l^9=2ynM1`SHtK_FV)%bR;+ptDF<>PhN%AkfXm3 zk~kp<-&^PTSb0NX6ffBylVJ^LrbK$LVLa6}NHkIs=D!X0gk!f-jnfqUu_vx~?N(~d zD5Of;RkI$K^zXQzWRZ|DKsSDl1H~N?4p4!6H{18rwNO31Mg^geGoB+lkmI(QE#df< z5JCCTihs>r^Kp+oNKbbQPVot|mRKA2?Quvv+^PGO@AhPg-OzKz()4D6KmOr-y~}S} z_Z`l5)TICJkSz>Y&_ZMX0z+p>U6%p;1ED($mmT0x$Rf>h`#9IwkN>W0(`R>a#p0t< zW1mvN4a?J^s>WHxt!A*}*r(f{A5_xGM=q+Y&V>N>C&*P4a)F~MjD_6mFn-TRt1M9Q+Z?u!Wt%MZlc@QR*c6*aZ&WOzx59d zJdMqu>*<1Etm7iyxl+-(cAX|BMO(!4B&jX;sFVJ|Pl@@+QY7YpU8C7Fv0J-6qQ)Z2 znujnkbC?g|1Kc&@DS#$>Vr+15aQ}AAYeRI^Ya_sPBjCXUo1?P(?OAf_jyGLd`@HL6 zy>^h;jwahE&_*_|Y5MOB|As#|1_>Wa#^3+i&Ii#g+x(MgcF@nv*G*(`6l79oiAN~o z*>L?gaVkpYrh*3`J*qA-;!DBjzDx2oUgUcCan$~LcVxo+%&BcJ%^B*n8kp0qZkQA@ zy&52hr@kRZ!cF4u**}-u68!JKV=}p|#f%@xQ!35ivVWi5C8aMz=liRx*-oKfZ9+5v za@MkQ(W9v%SSmOnKKf?-vKb2429niSGx<0Tj561(QcX!?i&jpv|6&eXSXvsod%wwl zw^z>%!k7a$9u`H1_hAXM_(KPfT-wazMfqB5EE_$v9?+7=4$4gSXUQsMwR}7?DU*Pc zLW;-CqSUOkD=*oBMY}6zAC;=!wa3;8azfEBjYT1}?py|unUFc#lS3krw;D2EZ8v!Rd)6V#yRx%};4=e{RZOF3o0F?sQAjFTp&Vfa+a6C{j9cmdGLGQ+!Mh`UtYBkdM&rZ)rdETK?rJjnBF{xx{^{4^Cr z-bR)cLy_c$jY-HsA#^vdx#QYC06bds>@+T$^Nl?2Qo0UsX2*s6)^<#(P9mj!VE6o> z@Zg?mtw0VqkKnFJe3sAjEcq~KMdQo&vD_#{@gc)m?i`n-0Dq%FoI^q0fc%dKkbO>; z+0=q*hJe~Jy(BI;w|p--L%FoL#1&m zoMcjK9ku&$fPK53I2U^)F>Yz^a*+G+^|o9*HtC{@xu%or?Y)M;N!E3qy33n;R&BRc z1*j9KT#|?}!w0sWOkYv%RPC*I%8C49Yh=Tm3iS>D*On~5Z1-R_WKF&LD7>Mh3bYEUmqA$Wmp zLtvA1%gi`eFL=%77JIAqr@f$Q$3+eY^~3rNjv zXJdnVJCCNm_CF0*6Or&EHmuc)Kgd_tSvU>;~| zyQcE;Hv2l;kaV^*`(}lWWQ2qohvT=Fd+mQlBQ`Cb;Z^c)~ zGlB;>bEm_0-k)>I7382jQcQO@sr+So9{RU+cD<3kVX$8J<92j5*;6e4x`5RQI-J{G zGbHcq%X2ic9d(FQxfja-$ybkS@cig5W-ZvU!y)_rL1hRS^zsR_qOD*8zm^)>)XX5@ zJw=uO2{`^;zHI;kO`PznK|EVbyjxDHJHnw=fQ`I7(|xyT$rwGVkv{uswx!@M6t4yX z%P0P8??ORl`+K0_4QS*UDnQ*mC=+s7$VdCm@jJF|g+FTFh(S(qvBY04ouQ^jL?aj; zf-BZ<;sX11zt};KW~%^k=`RHH~= zC%IeY-}x3D(u$-@sg0n}l+*GB?KAYf>I`i&L*SLE8~;TxwA&IAxYqUbXXIPRTj*&L3ul+$Q4r{ zW#$RvtmSNMl66U4u@fYA7qFY(NogScPqTfPMArt@`}k};-PD)G%goiV?;_|OQt-_~ zq*7(lNhH}gDc|9!kY>c$a!tW5&tppZ%gbs01R(UE$Zr3Bq{8knGJv(&XKf1Qp9qUA z&N&6L;JRmant@}R_gYYr(C+-ulrY_fkpdaH>@SAE=zz}d@AWQZ z4)VOc^CO-rJI>o(j6veQs;Y+N5l=Mxg<>O>KgII$qutkRw97pzVC9VQ>NAJ*_PJ$# z?*NoRuI;a+@nNGnY@!=Z!J@a*(mQ%K(5|pUOk93z#q~d@+U8Z^KvuP@^-&!$ejhlzi_EHU12DffKZHii zq7?kpd+A9V8uB|0@B>ZZsiCyrk%=!~08M1}wq06|;yT&clF%{4En1+@VAy{MKmqrL zm0c@@{I`_&d_AGuIsr^TNq@*$>0Q1;q_mj!2{#Q`V5GZyguN^Gxqp2wDtAq4f_!4k zChWb^Ccx&34dj_aJbqlL6#3BP#m zmdm5US4~>JiPrHdnkd~Um?&6X5sY92oW_^-&pte6lj8LPe!`hC0q5vRDal` z%J^JgWYyV9m6LKG@cT$z8|ouEMa}KstRrBQ|2}T9slZcI)9{0|6>$x|xWo)qF(yg6 zNubYkRju<*EdR%*7Gq=lT>tBlSYHiaU3Fm%LOASSLU5k5XTx@<)-MvjijO>ZyUyI@ zGHxqX+`3=BE?3lm{z)Chfq+~d{ndqql!2&u&_5+8=Xlb@K;D;#KXL;ww<22}pjOlI zqN`J^H`6@|GR_g&Xlgsg+*@rUbl)sDal?EAwl4>x~y58cbU3K2GNbU9i3 zRGP@l4lq;5lRu_4r=0SbP$;L`S138QG=bdPEbOj}vKAX&9j=G<_fP*!NSEX*-p{`= zl!9|^V`DttwZW^^TN<-vdrhGDA08aAnDMB@7i7XSo}FjG`k4f8VSHmA-@FwnrOJ?0 zkMF$VE|z`n36!R$en7{!nMNi%8qLoxXvHh-MvEJOt+O@v1)gt0fa%89u_dUb{EG?vyW%AGHI^LbnZFd-} zF;{2FEAh74JvwC>yQ(#&yQ3u?EBTGhGV1{%C1fD<$u-wn!SS7WR%*6kHarP@BW)8j zVk&vzmEfM#Sm$2Tm^{C@5oOtQF*JLVr24{6+fqzur)GMiJedtSZEjbo>_^}#o>91a z>pmwkvLAULp_%I27wM;4b6wcsYP-(KW1bpP%?Ut8^MDL~DZcWd__7;Ony zl9(bzocg{)nP7AObCI=D6am4zIq-IOs>P9*3fIQAWD&h|@3=4T?)QEpm4p84<4!#F z+H>S>VcczDf$!puevYf^v@o`t6a;a z^-c-Rf@Nv08Ju*w!{?Z-y-!>vOnh!0Kyya5;+Y0YS+zRwlaGN$MtkhmAC1=TD`>^zxOZ8WLs0gqy0F$7`fs)4!RH^6#*79_YPf->F;zfC}W>rm#QSKcKvs&iYdt^sNH0z%2H%60lj8DkAJJw{% zz58TvcgKIkN&Z{;kXE;_?5pAQ5(b(0e}5aQy_?_2W>H$yGoyS$^n>_WqLLOZwhRaJhZ=}r+48F=!V z<`KH=epL@hnw#tYYwx?`sea%8CB2P`WR;zftYn5`OUEWznaPSs*0CKbWOO)Yws5i% zaS(CH2s!rNTN%e*$1%Pyy&LEA{r&s<{quW#{PlVquX|nhbzS%KzSe7WWcK4>-5aOz z{Xmi0#xK@Ko78J-#Jy6%ZLYOEYg9)8k|nN%A|J{uV+?ix)7RO8Yn=SWAJpq)`AjRJ z!w2uy)?kN64DZAkISW$}{E)fys19^A_%aa>tgd?B55C3$V1e@+$qqaIuZy>P)V}jh zEF6*_PuRPH3T(iq)+#y!lqkl6FX+v8iJfqR5&N|J5AJK;r6;En@QX7f>uq@Ie+F&q za$vi-`iB|njhUEyM+SN}$lIOK>D+!Xj9wgyKMhw`NvXF-^%k81 z_;ac96#Pq9u?_u?6n*kn1u$up)1hss19St7v5By>6V{y1Q= zFa(iMZzsPS<%2gn(LPEAJO&CQ@n#DhptZxhy}e%X!AGNCB2BLmoH;ce_TR0W-3Pfm z)-T(5TQkq4U8Lx#oPF9wHm+P^P!tZ$#zwdj#UdR+W1< z=tUz@whxEOnJx^|{A*ENuaXqjSkjx(WO{pW*pT|TWZ;Co@FwSOyneK=K(kufy>~gW zcD4HTFVS}#Ygu2nM4N?W<8)QLalVJLYUdL&H_6}6nldftFnLOmp9@qcOy-#uX;pjA zMATCoKxB*)`Q&NSA_nFAh!DMRonr&9;%7y_^%SOhX&IX4CCt@%p z2rx``(U80^(DXcZoh%&7YGm5fjbKp=S4p$)-Wr#^>809?;7HE-C?#*Cz3CuCtbFV^ z0{$ivIlQ+WnJ8vN$}UW$hQtv2I7N+xT#L@hOyP-Ju9w$KXnHo+_B>8?R3W3BAM{a6 z_{^kHTYMt+{3(ctRdpO(zAl~Ou$8RswM#g+BDIM$)vzIJ0_t# zIjiEfs(}hDT9%s=?pB*K%hxIpRbq*$9K|UQJCt9RraR(_W_onOa%8d@As*^=><(V` zOF4J}1|#(5-O&7vGQhX)c&o_^X6j%^=f-ur@+xmNjl zR9Q@Tqg+CY4SP;2wEsyH9S@7jam|KPQK8v4^^=62-FOFLRa9HoD1(sesKFAqDNka| zsB2oEVhMIAM6F0w7Oo$4%Pp}$j}5V#mYs)PFfzc3 z;X3xDZxX?uO^kr5l@oJ(XJW&!X+-;TS|_n@S_)H@IX0iX)vaP0fhyO=!Qd&!p;pbH zUUI$XqsewEcThz_W3=WR4*b&mrhLOIeKGzM z;&+8;fs+vO6r*lrCh&FT!gb48+~cDs+|Df_cH{8Jpy+aI4p8h72dJU~xLhSx^9}=6 zp1hrpcB8FJSR*f~G7Ip;L3$r6;Eg+54Ue^3oooa|1;{;{BafDH`0miE=pL*J2}np- zX*pI_U2!iQng%?)aWN4Q)-K&MM}=$I#t2T1WcGPT3TAHYdL>#Xn(1*xlQ3c@Y9MYb z&1A75_Io&Ka`SX8TPm9)Pi3cQ^l%C*r;n#)F=rSeqwyAtPey-VMCm z1^qo(2p?uF?Ive=i2ij>2D>&B*rBZMfk#V^Ee)3Z% zJNCTU3ZuQIR>sA9c4zI3xh<@S2RF-^0Ixs{!ejw8;%v^12ofSYsQ=F1>JE!BS<}(E zy(re|n*)fFAHrlYoVOGAln?9CdbD5RmhTqRcYjk*Eao!9I~tZz8}NkRM+`sq&7znY zgZSp+9m6#d!ecF1Tw*}Vc(oJMo$8%>;$@K|EBV3=hKF>fZr#Nr_60P$sIee@b3gZr zX7dPH?!Aw>ET@_-i1JFt?#llG?u%+aVP5*jtEzPxtJy&~&I^LSF(Lc~!4^=iTAo5U z=Oi61ioN)e(S)y&xu#1RG~yK5uk`tInX+-wW&RHcIW8& z53IQ>J6Lk&`3rX}Il#*l2@pU;`1!5XJdopl;+ifj^c<7&#k0p5bEs-Aes0e468$t) zF{B7+^mET)58*_Vm)-R%M3OObspMt?{nIVs3Sh%)PG<)%h`faYfAbahvhD@}hBis) z7jnLjfHTo!a9V7wPSNGY=^i6Ep1tHL6}I)N(H>PhR~vUT{y46O)5zPiT_(Ey-i#?H zINEg27641__dG#)yvndxSw8DhW>w@_$L2Bk1{Vh?sX{pvTmQv+AXYP$JZ3dcs2w*9 zmoYA}ta>%qf=V@^P;y2dKCq){#b6`*%)K=>{fSjzeNH!|c?vnonpapsI#2zDIYB?f zaNItsx4ji1F(Ud){PU^?`YXk2*$BXwy(7#4+N4k^_sKqc8U@nl0f>w3NVw|0x}>~I zB|B#Y;8eD~oZI_FE2g?pGC)p<5YcZ9t^u+p?;_c^j&W;|3+d3~W>5fENWiH(ONEHO z?@g_>U01tmsj!rK636g0WXwV6oN^WBj9r8k*tL8+)+$G`cSY{5-R3$usH{ynw5Bj_ zTPWQgXP;-T!)jTXRz4nY#Zu8tM-pn9MFU!v836a(jBeLlONbs_@iiwHDvvS&-~4QT z)nM+M?tx=8)|YeG844(^)$o`|P8O$NDjT!N`wY zfU%RUom;l%tfvdfPx-y`@C`jKx=*9zY$9`a89TJ3&)i6L>B812#C!O?kh|Y%Zm)Y+ zvS%t{d-v(hw`5Z9n-@rGm>|Xitr){G2D^A(=|bg>{?%^}OjTJP#S|2;X}{+|q<=QC zRtb>{p?4-9o>T^>QmZW<|V?UB?mPz${usFAJ>qZ zUiJ;$`v%bwNb3*VNHz%rChI-zw+iTnP`(RR5WNhmtBaf_0lS?_Hfs;cn;}W6xW{~z$h7f&{88297ty=~=7jw()M_2W{WL5y9 zS7b7pv0><{#`GIUuC5GI{!@oFz?lSrWY_DulE@?_AamAU#v=ZQ`?oxw<)sUJ^BHl9a}Mm`2$W^qzBVh%Pld~yFl~`14a0L1 zu+qblLhpL%*&Wm+@bPj{Eji>3Z}-^EorWUT=KO?!@9;f-kbvOtmOQaQBt%f!n}MVq zOvU6ulUgCoB2ubCjS_q4RJMeqb(tb0ad;>6^9cU6dKy)r9uJN8Bcmt!Z=C`h3t=wv z*mh)C%XesjUM0O;4T7~RDxc#)e5U5oPwJj7x{>JFoZ1CsO+Sqg@@_APcKe^9-Ess! z4)?QR`h{BlxKb@J<>RhEfWiK33b5=4TsiNe7N`#ZyuHNZezmqs6|=0r`o;8Hjvo!0Nri3 z+c5R;wF{e!RKG{{dRf=7WXmB+EfQUZ`s+9K4yo8@!VU3$eM1yuSO)b+fRcD|A4&;%hmyw!}0Pd!Cx|1u7ZDghX!prwwo zp%MD5fs*_NH_yZHfXzQYOHGqS{To*E^VJLmQr(H62(oi}D(xXRT4l^X; zG2z8L>1gY2n&Pv+d!6SBXwdWjIxqg**IIT~J2AehWvWy!F(*X-r^o&ju`7{Wg0Hc0 zmFQG;cXerVYrJLpm&m7k!wXz-a`+bDbT9Lfs!T@r<8IlB{Ow2KUR=^{m=afHwGnMoLUCp-Kj zrRG~!O$gm3egD-%zeFZKO>U-zLUXyb6DgxsVp)rFOBXTmRxH7A)^K_O*5GUeLNvQO zdha9l(NvEo|4XGZx3sJg5D+ff8ojIm`y4gk6ekmx7F!i)+X2k?n%^nZ8dtw+vq^OO3~;}Nh)9E*m#dp4?!!Vud}7GQI-6GiMQT}kt*6l za92glP~n#_pYlq^7|}q_8AiD5y@NuxBoY0C&sL*4F2|sr>FBo3c*eZrkK0k(DI)3H zWyqR7agf^-drl|P?^@oX?(DetYdUscGk&QRh1EoC|mt}?gb|W z>84U^5eLgMC$~h$bE8QGfWZ+gPvXnz!tW;^Z}&WMw4+(nUsT|>upmA;ONzg{X#q!H zdlBGgbKxPj-}_)l_8)`U15Di=NT0ZMs@9Go3|&uFbgCDqAqEIN(|i&o#qpIAu+CBp zZ&XF@6mPS%l9y%8m@5OIGuG*b7ZlvMH5|fIoFh`}=4ND(GyY}-;^zOp&)7a{0Epuk zRc%&*eDfPq_faBkLvWhq?PPIKWK|k%Dk++`mcO41XMFEM>X82~^}5%;QAj^EOg`7c z95L0HkTB1oS0R~0E5%x20G1o_0s;hNARW>UO&!ojgZA@BeZlNQkoAz9@|sU~OM0cu z4wOffN+ev?4ooJnP`E>4vy)XUm$0n zD|p=p8Ca(?(oA;=bwjyAX2cLopOR)+=M9ZhN!i|>K}D@Q(`sp{7viqS#Aj_6CJKz^ZZB@!*UukSw) zW7|yiq8As#|7RHcLoQ(NSOLq$pSb{#sEm@8&D_y8Vpk#K5P-_pf)V7x9}YuiN&fRS zZj!!&XwMZ>Zk{ai->UzcV!$h3uTMI>MER)!>>C$P16J|6{*OmhdEi~{8#@0nU&&zL z9wv+qSz49-bJ+eIR+|PePk!qi(_!0u7x4Qy{Hb6iNp3~@x~Fg%k^UtbLEs9}s}|eu z3Oqy$)`VzwS%GxF1MSnjxPjka@VWmwW>l2{ zI+9xG&=6H!0(x9i;EMV18&3X)x&OA-B{{>kN#nxy_#gZs$yl{>gc?j>|DE{%HxyTu z2jD3+b>3M*)9|`8OPV#Y>hg&bAP}~r;`Qs3@{tLiZD_UYsA-@(i2k&Hvi!FXcw-^bs|6%TU!_whdzGQJ|lKg#~gJO9skXO2xf zhWCXVe*e0lz;tuad~QE%dPbp`?dQ${*2g{L~4KE4ZNu|MK`Dg620@9 z-N-Hf9c2GvE#s{cC8M~fQ!NIIp;^OtJ6cI<iD|w3_rT6rBBh>d<$?Tc)`H*6o)p;{ zs^x8r=#YZ>x)46VyUXcv20|n@R3Zzye$Ip$e$@X>uXr z8>B&G9;XYSYQkSYCMoq&qsN*V)qpX=;KyJNZ$vR-&+h*}zM(({-1o z30}sd2~VgTkT^72J=T?Gv9)tB=Wqy zviq8^=^4Ox?vVuL`s@vijwn*%6qf96W?6o|SU5PcQ7OL3)S1GLM@MSqhfs;G*VpJN zgX&Lcblj)QMC05T#^M#0R&#}bx0RA+@$d_^(v&S^ChPIb;IfcMbIRUN7FHfD;ZP1D z^^W$1t1xr}d`)?T@jTwnvl2qyWGOe;g}rLbNoe@E@yz+G+bJkfQ=Q$98&`-PfFD!KTPRlDmS(<%36l$@Jh)g+V*{QV75U+7M@iN8B)uht1+WZ#-2>zadS77|W%1 zaxkNLryO?8Hc1GN*R45=L)bSUGw!iEH_R>7oFl|bio`x+urLFdFC*4P8=;9OM9)cA zHVh;-=sj+N%}QI5=CC&vHvXT=sGIFRC^~wu7=dggHi44=3&5gAu^Qz+Moysl_-biRV6lF`w!m_4XMmtdQvC|`#=wtc%gK1m(ggp@_JKtP@5hNJpC;Fq zWvYq_E3*9nj>OD1PvDXL+~rqHqe2m(oe^PlJt<`gYfQlxmf*K}WHX#9iYHY4>QTlQ zF4Xw+FYu>N#B19C0*Q(e*0_qd7ZA#!)lJeo?(5PrHE5m;M49Nd71IhiLznKf!g8+M z6vy@F;|-k^j8_iYJ__U?B_;LvIprgeQ0F5w~7sr|IyEju8LH z^}~y#k^Fti{$^iV&A^xQyCl5isRBMWckLZDGz|S)d@Ty+y_+S3ZNU}`e4W|7y3e?k zRtz4L7;KqAjtz{fJodN4A6R@FbWQ3#Z#e9LWjgNKpE#nEGLjp99+v%-mRdJn0gsTE zZoH|}hdNVNeN;^KyuC`yyG;sm=&GH9*wAio$C~^1&Sm@D&=3ppf=L~HPEVmVV*#cm^V~4LP5IM%`n%WI_&QoBGxX)m2q$#-{y{@_VPQqiZL%I>**SY_ z*BMif+ZRhF9cRzgAMoyRFP$+I7EInn3JlYMWv+d}*Nav}B9yb-Fb9v|N1au1Y3Ti% zWTgxHLK%KGA<$8lU5XdP_PfcC4tT^cAeY{WakYD-?s!^Ajx|;8KC=3#!^Jx_=)*Ew zW`8EtyACoBDKSw8lzwgTZi(Lvv8nO++c>m`OybqA1*or5%?=NgK8Qoxbg<>m=C&x= zPFGqD*0G1SCRK~+G7Og%5z3AqvR{K1 z!dpf$Pu0C}{<%9FgSD{!8e@$sY_|S^{^JTPHAn6;?b@a2DQrDiQvdZ{Glo6KPe0Fk#<0a-}y;YoePtx;}RBBlec@VpEwQ{Zm^0Cr>76VZONi zkGJuZ6*Hk0P=P#~`5&gV*}|MA6sIT@D}`|uLA@#G=$GEw-G0_Q8`jwNLcj*PH+})g z-Ysi{3(%-6ohIr1((WxPQ`{0I_cX4o5_nX`IS#4YG>|zq+%7c{ddW3$C^?4B{@Msi zD#9qt%Y0sQ=HxtXxPrZW79okJ3RZ|#x}HAkZvGbW4M*T`#_|c{J%L8lz6<2jep=}C ztjZ*fj#QR<`+80!PbAgaSxR_kUHkPv69|yQl1RBCLx%fe{m{Noq>Im+qxW|yb_g5< z=VwcnvT!3tppoPd_DQqnD?rHgZx+?24*b4?9(;_hHp|q7L4!ozF*a)~xlN8WD~xof z0cslawi)$@{Rjvh+1Bg3)nI);;>ExVPqtn9Mn;m}(|1)E7dS4Bmx}e}5`q^>^M3sJ z%%igFoIX~e&!C-&?x|)ezw`Pn{hv_@0=>fPB_-e6JQ4|=cSE_NFmw#|N< zI70W`TIw$vabW|>x0G9^c;1G+@-^0^#QmN#K=Rm^0ZiuY1X(S<*|`vl1N*Nj&pKUu zRb39zsxp0wg<7a1_b-liPfHKF-~c!oKky4dr+oy%yZ&?$c$wv~K58 zg#v$QJ^GfbKDGYUk%BJM&G=HPlN=mZu#-&{caU*5v9USUuUTm(CVskwiv!+1$5#kwKDd9lI) z^Sw@4jwgkZL3NEGH~rl#B(^rQ!^6>?Fa@6!taFlCkEZWO_$U-e|Pa+EtVkxoF1fG$;eq1;!DR4PG<;wrY;bGU- zo1n=lUK&>SpIIG`#|qbuT*fw|BU8nNO>S_Zeh6-eiZ)Ejpte#y({C_h!?2%vF5wa1 zjS#XxH@2kQxo%i2eA2Oh)gqp4t59N#r6sg>YGNj&_wmf`v?a{k#>$%kvai4@o7q zyzO-Fb@+Ct_OzwRylLdpvxkOB49TWkFGw&DN~6H=^h= z*8~?S7?m%RFM_9bS!3$h*qc*~dOHNS;9ncHq}-dr{E9_OJ14%vJMRXG;887~?bZ)B ziLJMemJ6bZ?dvKzdI?l(F)!H7^;quFpZ~KrtWn_ssn|^0(t8{z`czNhI(X-f3MlH4r#JxBB0^s*1dKBe0Aa3!^;oK;Er}_@j3c7$QaSQE13Q&O< zj9QY-bi=bCu+jyha!}5(W}9wdTRWS%!tWwYc4kh)H2%uw@1q;9+5h!NxpSwMXEMpF zBIo|l%T1IJ{=Q%*ujVKZURFWAW^Np&nu`~Q0GOjme1Ux3X~6AI?z(_(H9&G;f$U*Z zm8G|TU9tcZqg{y@;ZRK3VCK$%aVH#`3yx&I2ULU01hRKQ2SDI?Die@>?AM(cev`ha z_F$=?o5^F0vM7=XBsO6S)IHmPYyw3oJ3{r%yymThmp6fs1lZmY5VKOcki)eKq*psX zsOVf8C^SYchBT{V}>QVM$T$4oa6JkND4ubDnr8=%Kq>9>H~%Jt;Q!|OL|zx>1S63G1FH-pZ>!Sz6L3`6F3om3|8w{t7R8b6;NZw{{JX8)Sb5P$~qd z_$OfE+AeAVSE3~iYY92clQi)dcYmvuF5?`65l{D7t(;D@O(V5U_k(B?$sPjH-~uFH zfe)DUt?c`R0F___O}rNo?Km^f=^%?AU2iQG5eei8rjQ4&-V0%)B}0$Gn~Y8qhbh5~ zlyp~bKQ*cL1u6?R1T#Fn^8GX`>ogz6`2a{xW*Ga&{QV~=F|+5x{e@(wnd-d>9{~p- zY4|PlY_9&Qc=YF=jcS@~!s>I+m;X@`|k)r=1f z4W&SVT6n}4n@A_Vd(`4g_opeKSHPpm=d<-!d~vYAb~SSXzE4xnEmGYFLbJAwood{N zfb9PI7C8HCI4sp;LP82i@11VHJ$V7h(yFaL&20vq5Hq=H4|&eMZa72CcnJbzm)|-$ z+zJ6Qgruc#E2UrP2K~ zlj3hY1&x}h(V8)rwsU(pU~k9)+3+~HHd5Bnl?0i#w8hgx10^C}hOH-vqwXY7aLsFc_@Hguejdi$tArihfLwdP-F{H-f&Q+Qmj+ z3U^8gqkJCP9%e<#ka?4c^$iSs)vVsr2p$}=(?V;0&N@K}7k4R~Z_@PjHoLr|)iYAs z2zR28-o?WYkK+Q^2VuEC^GqumFRL{wK9&J!uD{1C(o4Cyy~r0Mh-p1e+Y}N6w?VhF zSU8jU<7<5O$X^gszz|oR>$!7ME(3*t3&fXJLFb+n)j+!VKp%lpz>Ma)o@1Ze7ele+ z4RwKM8|(`TX%91smX*5>1dGk8eIFf5m zF>@Gw&nbc1s{HEO+WE7cZnLi{Z5uX}6sv%EQY8yOh^K+{#!z;Qv16H@H>AT|cHh2~ zeKq$ONRz%C8R~K87${wL9$+3V#@F-Od5XY#q6b2$1WX9UpX