From 9d23a234bb35e6bf280a56c3700ec67b45985e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sun, 6 Apr 2025 20:55:07 +0300 Subject: [PATCH] docs: add new diagrams for game loop, gateway, guarded suspension, half-sync/half-async, health check --- game-loop/README.md | 4 ++++ game-loop/etc/game-loop-flowchart.png | Bin 0 -> 45674 bytes gateway/README.md | 4 ++++ gateway/etc/gateway-sequence-diagram.png | Bin 0 -> 30835 bytes guarded-suspension/README.md | 4 ++++ .../etc/guarded-suspension-sequence-diagram.png | Bin 0 -> 50542 bytes half-sync-half-async/README.md | 4 ++++ .../half-sync-half-async-sequence-diagram.png | Bin 0 -> 60756 bytes health-check/README.md | 4 ++++ .../etc/health-check-sequence-diagram.png | Bin 0 -> 55383 bytes hexagonal-architecture/README.md | 4 ---- 11 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 game-loop/etc/game-loop-flowchart.png create mode 100644 gateway/etc/gateway-sequence-diagram.png create mode 100644 guarded-suspension/etc/guarded-suspension-sequence-diagram.png create mode 100644 half-sync-half-async/etc/half-sync-half-async-sequence-diagram.png create mode 100644 health-check/etc/health-check-sequence-diagram.png diff --git a/game-loop/README.md b/game-loop/README.md index 69d2d6411..3de2804a8 100644 --- a/game-loop/README.md +++ b/game-loop/README.md @@ -34,6 +34,10 @@ Wikipedia says > The central component of any game, from a programming standpoint, is the game loop. The game loop allows the game to run smoothly regardless of a user's input, or lack thereof. +Flowchart + +![Game Loop flowchart](./etc/game-loop-flowchart.png) + ## Programmatic Example of Game Loop Pattern in Java In our Java example, we illustrate a simple game loop controlling a bullet's movement, updating its position, ensuring smooth rendering, and responding to user inputs. The Game Loop is the main process driving all game rendering threads, present in all modern games. It handles input processing, internal status updates, rendering, AI, and other processes. Starting with a simple `Bullet` class, we demonstrate the movement of bullets in our game, focusing on their 1-dimensional position for demonstration purposes. diff --git a/game-loop/etc/game-loop-flowchart.png b/game-loop/etc/game-loop-flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e73f75ed8bf1367b9db8ed1d26c024ea83be05 GIT binary patch literal 45674 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
uvm!%0aEqZlA~cxNUE)Z4g(tiNVGY>RBrdi! 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 literal 0 HcmV?d00001 diff --git a/gateway/README.md b/gateway/README.md index 0df5d1b74..79c1a24f1 100644 --- a/gateway/README.md +++ b/gateway/README.md @@ -35,6 +35,10 @@ Wikipedia says > A server that acts as an API front-end, receives API requests, enforces throttling and security policies, passes requests to the back-end service and then passes the response back to the requester. +Sequence diagram + +![Gateway sequence diagram](./etc/gateway-sequence-diagram.png) + ## Programmatic Example of Gateway Pattern in Java First, we define a `Gateway` interface. This interface represents the contract for our external services. Each service that we want to interact with will implement this interface. diff --git a/gateway/etc/gateway-sequence-diagram.png b/gateway/etc/gateway-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..167dff8ec6902eb52f1b712165ebe9d1fb7c507b GIT binary patch literal 30835 zcmeFZXHb+~(*_8L0-^!}qM(vNKtPF-lVkxwf@H~Y$U`2Ik~2t-5(Fhm8W^G?IU_lZ zDqE|m;c?=giSY>V@8Vslbi@xtx! z2>(3e;o&IZey-)?|MzP?!T)?EK;&QhpJ)7UR}~xY8V})!=-X+(^?0lHO4Py`z+-0V zY;MKl4RE=tfG6%PihBfDd6+SH100>)MZG1M{?rh~Jzo{`GBNzA;^82{^j7UPgPgOQ z6@w7ZGoEKmk~bL`7{uKytwpt7D*W3V_a?z)>*3)d%FFBJ<;CO0&*SW7!~0xBM1=Pl zA1@ytH?9V^yN{EHnK!qSJM%w8{)f&>D|ZVwI~NZ-XD5a$x@P9iKo1EfrmK$r^Yag% z9(LCM?a9gg-(lef$b0pL_c_lq-v7|XH5I=q71eOFv%>X!MPKr{_@A2ptL)!?#Cfke z|BIP_M*61|H&n@+;=KP6o8-+0Cd)*4c+z;vFJ-j7@pp5szcZGf>d`RTNrjNUerTZb z$=3CWQ`d>1qnVjmu>8Gy_w*ePSN8V0>fdr0JbCSz_$d2agu+7c@QJ1I2*`u*2pMpXEL6d3A2_)~L;rdG_sdiK58}7+ z|5FK9N}`0vm=~0ykjVH~`=Er9+kerLX22(5Sfi{Sf5P{N_P?LV5q1B&O9uQ8{sg+T z@?n4XDVr0b7C#hRA?p^oc_Va@K^-wY^86A)hz zmJ3AP`Y#iBIAH<)ru=_fSVi4m2Vv7y@j6p$q`{>WN-8Q*26F)_>6rbJxu5qGgE0F_ z6Ya&=>5=fVNM#0Hbh}Py3;0N3PGfMVa6*QS{L7JoD806BBC_So|Ml!Uua&zI6C=zy z8b+$Z zqk#dd;gX9Qdxg-C)IVKAH3f(Tq!|Pai+&|oKB#u5n_a1XxIHdqn3S9hS8CDg@H?YZ z8mCD!&O39e$MOzxrFxZAB=(W2S}kQ-a&X$11oLu==POu#E>8=9b6HyMYtQ;6-x+VV zxPgY&U3YHxLd{_}s|=Z)pQf`W>vAX0c7K|G1ww!a^g?U)WhvF(V152FnuSD^1_cx1Hj{No7cvFjC80Fa1Y% zqT-!8R$ z@IID*dabVr$OY0WOUDoHra1QoR1Uta{i=fuoWMYK=-tHb+I_hESdyB-p4|OF<0W#uWyqQ+&mBJ!*xB{U}}a80&58D4gZW?uh#)! zeMmG8BMq}Y`pXg9&Xf6K^J>Dz&TrevEo3zk*1^FFSZ7Vfee|_TltSxU{8~@O0aaF~ zH$`i7veNTyU|w%jZ&(ps{FyJ{Xs)HMT0U^-XW{lo5(41e(T06E>5`<@=4}%Hafhtw zjjrNXE^5E+i?`^c|EK8<7DL!nDLNE*T{n$jDzd68hZ3JL9{_EdoVoLeytx&f2VA+P zwVkdX9n^r%KMTZFnSAbd)H(dTEAYerm@6P zCMw`uGwcjv5GHrjct{|#ODa<*;%dOc3Q+s!rAcs}%7^t%uaZ*L(5)Vfpj6A|TFCsUg>Ln$dJ#p#_zFV;L5eZ=v8R6{d z2KfHoF=a5rSun%=UWrf)_YnIiEr?-9w(VlWo&9gE$3Py5(>iw_4F9ck7~*gWa<$Rz z3GLrinJA=t6`3fBHpR|H60$$(yS}~~h0{HCgu&SjUurbf6;xT|X|J@9P1h$N$3Ul-H6-46El{ol_wPU{bWpMVMzf=Nso8lTFF!M!C-=j4#qb_X*WanTF#pR z#q$YIFQ)UWtQPzE{Kj*dft&P}V+PtS~Z(Vb1zP>Q~^7z2T?hWU487&p1`yY7IbE3w#{7I&ZrD76D+ZVdCs8QrW z($@&@%(b*$S~v=Gt*G`-8!qQMLg3xjmYB#@l(O$5P-7d57u}q$i5MVg!QZ6{S>Sq` zfV@r9jAIe*J} zI2jm0ec1mFIX9^VX_JLmS@xY6#yd@FvFo&vJn<_0SdrN*#b@zSa(KtJor`GZF8WY2 zSKMVwyBTUz*5J0(W7u~95*w&q6z$KW-<;Inp;LVImZX0rjZ_@Mjyue^XT*%HK~19mZC}Lttf|@y%9qEG-Q5oMn4jU&qr@K1oPR+qOCnAoq^4ze zVWND2O9Q0qA&Zbcc-|B`oPYAx<5a<4?$&a96;*K_MjAwCoU|B0EmJA)mnJ1`fWtJ9O0u%)SGwDl1Z~w1 zOm|s^>`@$@O4YY@dy~CLR~lK#xE;ISTc-^IWg9f%=q2Mr6LiljFrBMke{HALLHZrH z)n1MoYuDcWhUpE!T4{5b@`zfk{B;Oqrv*6ac(I+rdFXO6k$Aey=&bqen0{=y+wgcm z)W`eMISI_LhVnWohr{U)%HzHu@~#)I*ZSS-Z=N2CetVAxw-=ZUPe{~sO(CCOrLKo> z)V$y^9pO%3rq6-hfuHtPi1zA>0aJz*F3W6nzl(!>zGWi^{b6M7vC8|O-}}xr&YujV zIuFxxmPm-12Iw1Eju`U^DW1;P<#_a~Bx)U1A6%3Jr^woS#XC&Dd3lMv^Y*(KL8-2v zd~tBRG+X3bJ6uKf)3D{9$*dOE#_pHg{hi6J@L)Rm6C&i0x_!5#3c$yH zd+sf!X`491Q6a$@yK1wlRU0kQZUKIb*lb)~E9GSiQ>?`TjP&koi@g;su~AZ%5A|>H z2+kI~c(Yn&;UC+dO$MwbTaj9&Wt)r(398+Up+`YW{28S-*ZcjN=~>?BZK}|( z{(^Fq#kOvqT(4bsej^Fq-j1w%kl{%PvP|16STTD4`49?iOCz$rw2o&+k8Zla`_OZB z^-h9`E87>$$lIx;LbC=Q0l{JPLlJ0ss78$>+*dqbP0Vm9524#D&F|V^W8FZFAj{-C z7CPI_{57A7g3If)!*b`$G{)TM#kM6h+x_eH^e>^p^bScvPdeWtZ`F9-)B898ZW>s7 zK?#+(FR0CvrcU1QX^t$UnB<*BbGC={kdZ|5MJZ&ql!*f#9(LW z4Ul2}ilnpIFSe~vN^>Fte5TQQHQRC)FvBrX3*)bN{$z8VpCiWlob5auLd*yloKsl% z5fvhw_ZgE9V4ZNfNgcH_C_i11z5$Ph- zCfU>NSm+TPr20x^E(=V?o^fn6+TvHIk)jh@x477Ik6?@~zYUS)xn%_BpLk^iTt1Zw z;B(h|2FQVGz{Xw|5S<-0f)y0Dkz zgplp18QskC;VZxGX`XfG=580MIPywUTq+XTr&32a}B)whUwz|D?y^86mLjtHE- zdcI;J#F^0?RTo@*rAMoGPo)hNy}cdFq4%N_ zZ}%A!y<$qXmdM=X{j;=gD%5YfLEH2PGT5VJ@h0r=gm$!3AdDGhD%cTqVd#0;X27?9 z=~wCR4fF4_O=Hpp=LQb z=1Rje*P6B4q&Z2?O}!E>Dc)lud9i(=8&t)4iv+v8$iLQQqgQQ!?w=5OC zW2hOKzA=Y7eTLvrTskb4278bq-h$pkEcUOv9nwUJzBZ_DVja>aPyx-2mf20>3wJGc+(Gh3f?66~4 zS=O>;&&%Wg;*?=_CSw1&h{VwRhhFDH4PhREk+@mIkDVOvg}>3OS=cYBh#Z!Ym3vRE zq7>lPfqF(xODf`gTx)w}T!ULG{ArnB%IQ}*bLng zMhbIY89vM;jVbp%)`@9uWE3+ugGtdllSd|j?!sn(uR^swNY-1Jg zEuq3SP7|QEfwAIop_voLV7A=CX0|WJ-!HT!%9Z+%R{N)4Cjq~GC6mc}b!lT81sKp{ z9>$M*l|NdNK&cq=^Hq}Fp!HyBZhHniQJGz-uvy23-AP-7oF#sOi>jzwr*f~Zf#MTl zO#=H7Tgi*vQE+qqsKCJ>Goii*)}eINhf|bh4>uq{);SXRjaxO71)7M zwe<#QVA5gA_JTN^$jhO=0`j1kl{NZv362{G%l5S}QZwVOI zz%=GqTj+R%?`^NZwjVJQUf`8>FvT(?X*gt3her$?1{DD<6|B$POS8o^V_HR^70nz*MBG<|DX z=6fcMc+U=k-wauGT3AxQYnmZ=s-r~jtXtpY++CGqPFNo&Ghr1CdEnDo5CUm$R%nWS z{Hyb(H|T{HmpWYC4AH1Oha0rHd`^7rPdStD zKkuf&Ggb>`;H}ASRxK2W9cQV!aq6vH72zy<3Xve`5OVL1#?(faE^FrXizfabg+qHS zURipyJ2pF+?i=7dZ{At7>5x*R@CVO;D zB0g7CrRfiDC7KZ?;#?aTDnouOq7p$IMb;;I1f16MOuYD1xPv4wz+kXKm~&ba<7Z_G zWCLsk*Cjb?1Lz!F1DZ}8pqn)qvw=Ae<>ctLIRze+ zPf=qEU@(h^&cn^2sCw;;z|U?~LbPviL@!+Gy@D5Ul|AM5lG3K(4nU^pScD8;isH3i zs_apND*H#18pV_Y9sEG7CaC;NvUT|5-#SJP=K(Uo3y4Fv=9L)r7ZoBm_b%bUl>0Oj zfyRnGz=HB9WZ%(ExZ)X+*HE<+FRflE>ei9Vr?Qb_K1$6JZtj{hi4)^qw3Q`s;5}zPaNm@^BOu2Gr zg>Uv%|HPQfNu<}OIz)UmWU=v?JDhetZ=zm)(WuSn+s^=xz_+M4vuPTdK)D79wON6O z*mYC^^J1o+>Bt97=eZ@`598qL$!8)z&KtuoM~%gSB(x3-jslHDaYjed1?^=G0+Pt# zdpU2#x*Lf((z?Th?+t#_1pcTDGaN#mB!*bb47J#8={0G^bxSzRY?!%1wbrAw!(NJw zMEGY<&M@~}ve~q>HSM};nmz!jkm;uxvMq*LM*4KJavs|RQqyu6BIZT6MW4JG4)7!O zSw+kuI#mZ8^bvE#wUz^N5Q9VPNS;D}&Gz+iF9&|ZCGq=?4S_UcB;{%(4zbO#>H)1= zFu+x9- z-kfvN;^5CQsh>zIZRG1u%j>4P(L8UyEKlaiNjC1RRyxeX))qq9xKHZ6WEL$H9zf6C zy~YzSUTxbw#;c0~h7z@#a9|~>OIih7=jI>or(^tM!(F=zbcV z@z@4cEg}Yz_s~h9aFTkh1RbAhJY>&BluiK?rWsD;P35gYzn0&lYu@9v2}FG{7Ewqm z7q5Ym`#6BFt%=pzM^`S@q(l~?U1~%;nVNJr)WknQyG4JTf6)-&8rd3;HGE)-S$_0Y zH`cB1%hsf`BghMUZGEsW@2#m9NLr+acooafwfjP*l84(s;lw%bnMB=-uwjzX@U($J z!X-K6otizKd0MQuak$BQ9^h=cOY~tlz0|wX*slRtQ6xRblOy33UJ$$aL-4K zZ@^i}xi>4c3cYxrbID3zSM9|Js+@TI025P?DO;~oPmM>3fhcgjmea8F7}pzQhGfNZ z6gah)YBj5p`5d=^`Zg4PrlqrTR%JE{JY5l7B9$s{2!QQ0WBPe@cm#Z_Zh*U6B%Vp- zrnjhg)IWS=H%)ZixZQ+(%>GH$G9EULVn3xlU~P%_Yg^e5g$*J?^H=%hZdAq+?ZDQf z%)Hp4(xxy)#rXPyQ^=P$yIQe3v~H;sJG4&oo-vC%d~sF7c~(<`Rn?T{InHO-t+~&g z2U(`5e)Ry8a0YPU%6S2O+pTDCVUnek9=5j^g$3i^TPM&Io||wBIh{e$cC0L7P^rCA zFmNF#cDJ+V$B)r@iT&2ItdoWMa?x2`_Ei(H6S0eCeWHLb7oPLlM+4>w6bDF63Ms!u zT9Jcf@b3HQjpMx)AH?rht?dh+s|JieXKHrQ3`Mwo^Y^Wig~4hb z{x+hD9KD&QCj2%hxdBYU%SP#p!?gI8fRMsEi>%^OiE8WL)}_wu4BTiU_du-DE1og_xX}03RMMDBm(yQE*Pl z?;|iLW2|E>^uyS={n^*b(YJc^#+A87{NIM$2bhSa3uZVRUq{|x1-B?d{5Z@=1OV?(pS+>S6p^TKGE%JIaI$!g7ZszWiT>5M1H^NzDSDHFSfn zXY_0KL}?0QH+te4c(DE2eY(Vd@csB1hDP!ye=vRaHPES*aIn44eY!^kGCPzqHG-lQ zq1tE#1|<-aQUkIg$6UjM_~kc^mm0lvRC~%Sf?}dZO4J00>K*l8+U7! zq5Zp#eMU;81c$2sd;u46oATMXr@qv&uJiw{OhLf?^3Ml@C$k29FI&UE;Lk3iPjrs! zpSTg=Vj6Yu6smyySn{svl6tIHU(97av`y&oDuD(Ad#(5ZT8dqe`v8uI_nl>wS+Ers zPl_h>L3cjFC@FQEJx#OHaq zI1_jLjw7LeN>&E8qOxZ61dA5xPogsE*9kV`CC7!Q_S;=`f1|LB638sf2yc+IfN#t# z%2A;}+j#t|a2?y)Vy}^#Tg}=n05kebp)cGaJx7{+R0s-Cq8pR^jg(`!C9ELoH+hP0 z%x~3`%PRBykr?AU65FhOC@cQ~I?x5BUgLMK5aAL1j$%|usua|tyN%`MTwA1f22Uzd zfZKagKt;xZY^~SJIEbd_?#Rj44K<(QLQ>1_lAWu&ZiZDuHv6NRzE&w0gXV+5(u;)1 zdTvU<5%47Rpb6rvHd8yy13o#$2Hu+2Lb9!zXH}=De$RUO?zR1A+pMZG-VY;!99>9e zaA|^)*{NvMb$%UQ<9{_5Os0GBd zaXrQjzoh|!fwJ-II4zXKI?fgg^fx7o6Pl~O%c^8`Tg(N#oEJw+9iO$U`GzetZ$EjE zIL6bEBDY5#!50kYpC8ES1mk$En8YR{5Tu44>HcWs$%-U3HMN$B2@mzg8xu_)D=TY< zQ}<1(-a293z7XDMtD$Tb4&IJHo_;{|TA>mHt6ys!eYJ`2egb1BPL1$ft5G9TPn?*b zQhpwX=(9GBZ{-o<^hDn`f=&a9Fzqfn-~0t?r32n_)>Jd7MGg2go>>?YN2xvFpdJ@% z)^6ZShV9? z(FNJ5yk$IJg#2FK_>J*tHc4QGA~a+aTZmWxKzSUS zgv1K`-T6PDEhzWlBuNlu?uIyQLMkrCUhHK@(|@d3UAaGswJis1UO*mkHa&$WDLn`}k05tK`P;&aG^4P#jRW)q9+Ts|t zuyb*~jTx@UzWGyW5?A~RSKRt{@mFm_`QGN;76phqB-UezE*yQEU0QL;CG2*wv|-$< zCwH@yHknI)rfiVsV}-*Fe(inYR@|VDR4Y14e6ynBPCSaulB=*g`}vg{{59c>DKh2z z5+5OeenY10@Vq{)VFn4jb~I(99tWh%=bjp3&9pIltOog}MrRs5gJAdiJAFtX8c()O zf2NV-@ARZ^tU(F!+<|W4em(%~vK%Q-3iZcCMcw4! zUfyQlml%THFgJcrXnXB86BEIoTnCmXI1WN|A9lsP>WFRGx#tztn;qgNKOY2EBkXe8 z{qScqU@4`0QSEWx$p5=vI>K>=q-44FtE20HOyl?tl98vW`c0E?+T%rYAAkRm9d?m_B=do- zBf?)+&vfm_G}R$(ZKZqSo8LDH84^kft=ChhIDL&b?d4Yp{~0$GZrrjuH2*8ZQaS=p zHa8X5$sfu6Bkcd{e8=EMW|y({$~3>nzT>H|ewcHz;l9t4z5W@4>jpWd4AWKsi$`=F;);?KXE&@~_3aoY&h z>or?FO~iowrla;ZDRBl5pY!2O2Xpn!JL9dYL{eGNfIlK0eMu10D@<{Jj1eam6JPg& z-8yI@Vs)flm;X}{E@~v^yCzgXPdxyAb)o6hgpv{2i#f77$*iAT5%zcnntGTuVlmP( z@p?kEO6u^kjL-2vde*j=!4IT(B%PR(!#dK6(9JnS``4I*Qh)=xm8l}psnJn>|136X zY1~@0BO(t9Vm%mrBpea21n=AZ%^he%oC68j}rv8x`fi%lqI)_nkkJN*IRA?RlmX`)P>v zHI&#^?uS;Fo@zj{t=z?z*pn3Sw_C{5J&rU}@3>e@Uy<`pOT}|5T&|`&-*{`_a5lhs z*8f~#(rM8@Io5LhtGIrRqkjESu!z!KWfeZDS5LUP(;gh9DJ{)~bfm|B`XkHN!ubAc zu#LOvwPi=7R@+fJT1EyNs#!gbg5`al>lG%VP%&SgBV+v$jevc-7?CZ3B)k^sJBT-kvT1V?5vs z$`e>rVzYD7V9YI_)kU)PZ5oqgx=P4fXVy zdg*TAP74qc49xkt+Uk@C2tay)Gs&;FKR%enK$dcI3~s zl4VH2*%F96@j{IWcs{JJc!ji%`uH(bMc=2%$Yb(^?*f%qf$GuCA_Iq9c8;`vjN}!! z?}9A3p9Jn#hd?x{9@osWb(S|P$;f;%Nvf%FOT3lHs+u-0elw=|18G-^k8|_n#@7@ao(D=?K>wz6I}b(~97?YDnC|8X8-pTaN~s`vCUtD$T4gJGt0wNha@^)z z6~k615{>KMa1OSbK_xsB;fhXxf#u3Bbe*3i1xhfa&ULP$l1sN;|Gc7^e zf!#NFtLLws&MiiHOWYU8ud?-3yS+nGxhDn*8ECm61q8IGgRf_0Y6jfiK^B@xW7|Ca z=07N|bxlJP_hYK{^6ZW6-Q+?f1-#!!0YK@aU{d6iEZj>~c84w+DQmH(#<%Stojs*E z{?(gnMXX`KTA)o*+vq(`nf!LgoxG@)5IVjpx%sDK@une^K@cEns2=dH_{Hf`yOXhP z$fp1^&7lOnrdJkbn%`O{iV=(*U9g$9)_K5jLv?9yH`*R?*4?#%GB~5A3R`gN-V>jT z@!sd$_dkfFp5`e)p7?>_ix=HaKn@dRAEWBQ3#_R9dc#_U z4ZXF>I=l zRwcteaYHcO)%&FA%2$6d!__k=L0n&(kLYmv!}+^MR~Ha6U%q>XO(>m=%z})^pawIV zrRN&@8thI4xaw?2Q;dy9CvDq=Ol#I|JN?9#?SCB(M6QFEo>>2^Z+%3er}qH#+T~&! zgP`Vu?+E+8N5+jjD;p>so#X{-VbRxOf~KE2e`jh2?#W!FI8*QT5lbB#zT*{ayP!Rt z1KBil3s&-Hjx-oLS)<{=J3)~9+u3-|N?$Ig-a1Rhwt@qpl0siXb4eO}%`ra`Zp++5 zaIVZ}5S5sr{TNpOT+2j%l-x5W+zkn7O5&J#n{x5vHFr<*vZ$d??}>UXYm16_NPT{c zh4-^sKTt5<)71NVF&Kex=WQ|&dMx^O33cuc)7u-e|ES-f+1W}a#X&ms#J7f`L$KXn z8Qm{9#5I(Zh~zFK+G`G{%5pXbZLAAB`sTG@VseOmFCWmnHT5-~v?i^+(aiJfyg=Vr zVbOdc0(mdX$?@oyv*Vjes4agW>_$p>slp(_F~Qy9P$y;xG>5^bjqT)%E3fTe zc4@rWAs4~Mym1tGbkVlGqY597=2Y7EJ#h64fN=`}`(^;m4S=D9e~7E*y;}Z^*3pY+IxT`0upM?{YrpJbm1Dq%aFA8AHs??+*wH zL#*Y>T)#fI@3OcagQwZRi9tK2B}9F=T2vWwUP%T7g9sI{fAp#H<5i zvf?XwRv(Q44^;>Hi$=w%>YS%rB9r=c+4DY^6i+mG21@KZ~q*A5~xudqyywDVpzclOUFH^u90|T45$EB+AP;x8_qm^WyEU zU(PYW0T~4q4X8ko;G3TgnVcafSq5}BX-BwL==`eY@?pzmd2M0%)+hN6gY!4qqn#a| zO8x8ft1$#6I1@ZAki{dYkdsC)8^0JGRJ}^D{>KK)!eI$Ql*7^toP@)C0eh=tk8Bpq zzfM`jt0=JC{MVJhCDLjSm6CpF`u@CTzPrB5+;}rYj^#AgQFlUm-%XI$X~p&`_`2 zH18QkU*S^ptwU5h=IYN6o~U~sU> zne*a}B|d7$&@R^CO>z&sxf|sBGS1g$$Z$0}@(9mmp9D@h{I1Yi{>=PMp4G}TD10}P3ohI#7yRzZNi590=1?33UKw{|-Xi^R%N}Cz zfwy{HP?bKQn+AtU^HSlNqv4TQz4rqc%-#w7IatqA@no04I&_Ym*+F_Y)q9`Q z(w7S@?=0#YAI;?0kp453O4>N^=VgUR{~`lE`$D!xiXQ6wLvS zdB1nnFbx6|#!Z~J&)vnT*kQQ2_YfC;y;?OvP#mg+)-9ZQ!;4R7((2tv{15FQX`GvA z2LIzG{#)|L{Z_WYj{Kic6ApYx(6|C0 z{zDB%*ag=(j_}{n{lg0jInGQV(77l7H`_tDDez*M`I{GpV4N%{OKYBR{>?Vd#%N*w z{x6#Fk3UZG5(lM7r^svm&Gv6x<3}V7fAgZmaCH^%%G3UThX|#=&YS%!!3afyt80Zl z=9+AIl(<`kh^El=O(NW+Nlh>bT}{}*1N@)OBb);GLx&AAFF^#l@1&z*63CR~E!eI$ z#Y=|#6=fpXTK;hsiC8Jk$k#RjycWuK8C0nsquTDvj-px{C`Tj%RM|{&G|jITMjJ~$ zljLmad4v9TQuZJfkEyO30c|na$1faxNv3a^s83}m)3ON56`=PrpdZ^R3~pVSsR=I# zv+3kiRPHiKx_;$;#yUx)3do{0GQ1sgc%OC}H`A`h5>$6^%S5`Gcq>92pWsj_sNq3; zy==yRZj?rF;0yoQZg|dpD?={-F+pW41R$Z=L>R2gh&xHC2Q3NyOie6fkhJ|R)|H`AJC0AWWs*-#7fWpJJ)Jqvt^^e;ZK9l{D z9v9AtxjQIrv7TTl;%7|z@xDKAUdhaipw>;b6XjG=>ApvcThbj;g!WP1_2rfBm~Ss; zQW@6X8)M&I9c=$@sD%8honzoiMfYE}8D?;0-zx*l|H6`$USF-tiWgD0|7|O6NpSso zD4)}%9p82q2cO@b|17-2!t!u@J<&O$lM9C^6y=w)+)-6XTnWW(ViWriw?BPKFWmLs zUmdYJ-)db;=52HO#3dUI)c=g-I@rSr?n z2k+G`M3kl8%mZD-Zk2uuU;{}M>(+3t30T_L^lc^1&x}kNI&$)F4kllrXT%8DkF$@u zsZ~Fi_f(_gn49*N5*0>y-qyWb^4+(15IE;k4T7?m}`#o-&X|}JG)ifRi z<;?WQ_kz%W4h?cj0_S$D@(Uiq5L46x_mo0km=08VPg_yNy9-aIH&N0+_2Jm43> z4t9-$z0gpyE9C0Kz7B=o(2!SOGd+ln-d|KXPUN!VKu`+)3WH%s1qt}BO_|jy#Lo2Z z1zuk0xy=Nl!bW<~aTLd}q4s*%&GiwVXe;TFhkb*@64^gNvmEaxNN_3Wz@L`?oOKmy z`IU*PRa`1X2mv5U>+KhU!6Ib(?-jfic#1YqLJ zFO2OV_wtL(X;;O^j`4w+qTK#V&4q=tC)exCBKT>VamzA`bFR-Wbm@+o+3m8;F)|{uR&>3ma1iQe& z1ORy96_5C)$E;he+7F+nMlCPd#1VD=hbLaAl0d65&4cI>vBIUXJ(75F);x8j!m#+s zi&>vzPodVlK$LNAz_Q@Q?^<5?;kjH-ABo~4&P9mloy`(4-@LH*XY;BE9I6@~L)W`$ zin~MO1)a@x-U_EI-r@W;G5ST0$ZsGjrR)dzt9Rg50F{P09Xeog;|eMd1w1m0KCEfW`?tJfY`T{|ms($hfj` zPglhCa=B(?hSPAkeb=C`zyBkQr~O&Bjm2BL?CB+6(3!{j8^G7*iVUCm6&~fK*VhY1b?-v0KKvYmGfmGFCCsm1sRuU7x2ah)dQ2v_4;rrv_dTZ0Q=j-s ze__BJ2mFbGaYz}^MDHy^`mM8WC38rrr5u*zvG2DWL>%w`n%_8F<^8o*EX-!GJlkwT zcHzF^=(jJ*FN^6l##Yom9BD_UF1TVX_?-5?)%-eT24t^u>GpF3w$ALqnnHfaa*gW5 zNc#5#4!u{HR6PJMVQ0GEcx7H*CM4+TWpoo?n6IKR<5`q&v}j~4hs>heUf`~sUo^sH zxlJ)IwVB>u76*DpJhZ*+Z-2(sn(enei8#o?rog$3wJI_DkEU2laJXISIx5fKY}TF@ z7rm!~iU(E*He4RV_G`@7RnqDfG3Nu$Fu zof|&b;vQCJ31j5xw$kCAQrf!vHlr=xU!=U`irlgG}Z?!PeE+Y*yo=#7RU1)I^* z2y5>pLSVgqy{M_mklcC4l1MBhSqXy+2%Oopnp0niT>5U~{uH)Xy--m_S^3LD&y@__ zwe8+Z_%wFl=61tXSp`GUI9%vo>pI^7X@z7xG* z*KfV#_Ovpmmc_U|ENc9ylexfa0b5Gl5D#^)jhXQ!&6;?0Cc#M=qog|qQz+HR55R%C z55)8H(6*0v5Cs7+*v*?oYMu>TVT%|f%A@HtwRsowwM7syOq4eRYK2O?oS~!$*isQh zHWZYW&a}CX+GawPSIKI<1`Vrwqr7vdP#xIH+S9MUq5E5J)^@N*~Gz& z_Kt3mcU6m>WgWL@N2etPW=Yj9$L{Oy+$dabN`uxp3mxODC?ZcPlr3btkg0}dN=Nev z4YTP8A)Yv$!-i*%=B@Z?p)YLP;;2pAzk_0FSFfy~pESXD0JSfrzTI(RDs79(2-&auf$KjPlBlv(o7-H0R42zejGvN~~Yge3Hcp^80{RyjX*CRTf(~ZaWI! zf8>gVeo%Zl-RHGj?TU)P-Hf3xSP%q160go1%xdp_6b3$`;c0MY&cuzj7?<$S!1Ajt zc+7WHLqIM=U&UjteDs>Oj^ro*N#V9P;h*c@e-)THq72@^b{|t-cMQIAID$LwHlFX$ zRRp#|`W)?bMf#kQS;2INrIIjUsGoBiF6VuO+imsHS)WO_SF_ETlaRr@&}_G`l&XpE zZmt1XI-k+iQF=UgMHN6(Q9R z$!o7~hFAnJWzl;DsmXIxthDjd67OEBF7n2#?GM_@x5HA7jtInav}Sh&xPAcOsgF^& zz0Lrl3E5rP%dp_|xX#2E+vvE}Y<-yvm}2CTE98YvS0ki$@kDnr%xw8e7dtBrUCer? zd}h;H2(iKJ_`Hy7o_%SH&d8vK7>&48xl3Z`$=?#DS5cE;f^$@`?XN};0F`C*bU3xPRIIA4lyke{R zdw>cwf{lolAcgr2LDW=js?=i5YDP`^xa&rvE;!G9khGju;22ua(BDw3vCkx|2aY?; zrzyZJUeNVMSsbQ!)p3d^khU6JP4ZuTD4Q>kT(IxA;-EOHiGi-yO&+!tb{KN&8GAzx zyzt75aIoo;=hn((As2yV_r)9KipC*E?q)L=zs|$*I(XD2Y_+4JGxREd1LJ*_St|K1 z`|q}>&v7Q%1$snG*Kmj;<+sjv=$*8fFGTnx{jB#F3RZk3jZbG14~`f#oJy=+&HLaK zZ6m|uu-IpSrxukQOPkC(HeR+Xm86qn;-7Ic|DL*k(fIfPySskJGWi`t;g!3wT$g#v z*HVU%_X-nurw-9?^yH6`_0Q1b7}w`HL&8X}i8bLSmE-X^9z#3EjwpHfz@TJV71kwh zFN<95@J3VcWLDQ_*~cP%4Vv905lHO)Y7|^=jF-&GA)$o(K9z5nO519ypYZ=Lp)8!&-cPaaAX;$T0i}|2-b}&X#D*7z-w}5JedGi@ z-1l1ApQ-+My#ef$A{~!RU4PW-WQzld#_!buxMoRE3G)Z8dBFU7@J`Ff%X?$}(_u{M z%%8Z42;}_{1!sjw@Q4DzrW$d%%E7;pHNUH^ZEklP5gdL~gOX3S9)=4GUs<=-Cy*T* zboI$a8MQB{SQRsWe=+p*lYOvv{OTy#M+5mQ zV`Ek2<>eFOqGm3H`&TI2LWxM4=zwPG21w>{%Nd0!f!IoQW-5RYwG%wT@0)$^UmEYt`f`!tn>h8w=t zvG3~sv+4=>5lQw_$DdN{7eLx1w+PhBxGrx2Js(s|NB?dI^x6jzVK^~j-eqV71 zkiN)D+B6BAmrd~KJ1LvO4Bk<>kyD%yCq`0bGi zyFJ}5y!`2xY@C7_IDN*!Dqt`PD4Rg5=L;!5i9kFas#TbVM))rPgL9cdXyEGNLPC{u z|M|?d$2mmc|6chI-1q;XQPMIqA^I!K5FQ-APEnXpE0T*qSy|cP2_qR{fCa8PPuRWX zGcXzah!li03zg1{_d+phGWF$xb~pjyE7IIYoYnaOqprPX=3(KM2RL?YqBOj{gRp>u zR@m3C4?|VjGBWbVZ;;3^G3`CPV-Sl6pD>8!$dSQ~8~8G*yS%rqf*7;ZTNg@H{vJM$ zIRAu1$G73HRTY#d$4}Bk22nuxhs`qT2CxYQw&oWCI(EydI4=f=NaBw^Tt)d`lZynv zJ5L+s^HO*QpZw_@2Dt60VI)$&OM5G(Z0Q^zMxhr0^9krG>COMB<43^+X!VvR`DcPN z8)e|{Pv>D9kfHSR6_Evqc0C@h16j<4erK?`$B8l?aV-V`~G#gNWejO!Hm%lG{8-pz)w98_X$Gl17`k_Q0!Gu(No zM8A7iE7(XdrbE($|0uQeFS_ABiVTwANRUM+Ce%NW{cE3rQIp|{c#gX_ggqee>otU7 zDNlm_N1?NUwgKVm!bZUU<2cOmyFF3tLP6|HE!FgAtZT+vmb#f zsepPc+%vjyW2-Gdu=33)t<{*ZF2wFJE@-C^Ij*2!R~mfJxZz>4*F3i<_AA$Xd>o|E zN1N~!&e`BIhqL_pHUW0#0p8$0+Eq#|s?u5DF<}4pa=rwKr&J;xs6+szV}6Yb+&d`J z+oWH=8P`hH1!t~A?tC17E_HDO9{1vZF-0aa*g=UU0v@^R|vhLY7IHR#oh`m8wR?kaX-X{id?cKVL^`FiIw%&x|% z3DGjIu!rlTMaDV8~Cj{sjU_Tccu(J>EweBQaCj7{CXAS*rFHF>v#=lWgFh zz@6pm)i3MvaOl#x;Aa!S?4TBBkSE^0xD_i1&(2?6tR;wm*M<;oz}a+fs1G z1N@wl*;e#}@a4Fa*?j+O#O17XaVqJfM-U&ZBxbeUUf!oCQheJ~bYYXQkp($jh8|Z# z3S%q{j+HzCz0Eey62sC_Jqvrko2T956+sD%_%`XH z4Oe05l)(fW=x zc_ST+=}VF0z+KGp(ByoL;YRU{w$Jw`N|{j2#lOH@=s{8iljW}!*~e16H&0MCn<1rS z`{|D*^&rrL0LpLabDMf9JzBJ-OoC(+D@j=+CfMOutbfZ&a9hM;#Z7C>fVfB1!}wM~>jXdxOEv>!U}hZ7ef##!anS7jFQyccvm!rX zH`S7pZ~+huFCO2s$u`|WcnPl2FEQ~1qCU^V3y z?(6fyYax|nOV_#dR5p?&S3Nc&S;&#nt0jCdO#Max_ZXmqv3-qJ+|ey8#(HfuI6W=O z({Qz8>pRI`f9G37BjYyT{}Lp4^xVkX=oX)a|3v-D+f#ivhU<+hSLck(chv$5q)K}} z%J6l4Sjw}7e-WmFCcL|Hh2OlheC*J-3WJA8CQkQQA`GY*w@6^%Vlp3uITaXv((Zpp zdVTBgt;~iCVnKKY*_v~R3auHObAC3W?l)l72YV*hu-s8a2+T%*UJ_Osm;OpcJ)|j0Ee@xZZ1>Korf-K1IBay@ zkBYIlfR6_Wu(c@};@!wEdN%mfR;-syxT0ts)inLkE*Ea6jpdkOtsKM>D6OtsXqIoL ztFtbuw2ijq&G8Doboh2knB@dV?mS-ds9zkk=8ayf7||jNd$_#(<{e$V+x|*LYEie> z)5V6GH4CN3uF#%n#F+qCovxs+nhx$|PBAvoVn542R zJ#HzLFohRliAW9tfapJYdB_#qtP%1DFJ86nBx<`HZx)+!&#C>f9oX}|ueCAr;|trP zF8bS14w5-EVikqg#!ua5+);ddeO2up_fNKPAXnXPv)qVT9K*|-v%(vJR1NFyFVe5K^Oq!{XY6wS7P1;F!bj@ZBZJ zDE(@qj6;-(=Sh6ImQ5>6!Txo$)&wC!vYAa$zD|8=!Zxd?_nVUh-EwM1I7AeR^{<-2cp=H!_L`QvF!L=K zeofKOkbcX)SEHJa#&7CNt4$`{*?q)+)r?fR<0zUF4BfnQKWBdnmmOQK2 z0g+~~av*>>1{!J{xA0aWMEkW&k?r({=*aSudB6HOD^cgudZ1til3!KoMAWHb+++3$ zpX(yS+~L@Iary=>HNn~0kR!X{;7}ZW0uv@zlW@6$O7DV4?eH8|?y2ep6r`_ZG5M9% z=Qm9INuzXXRoa!!e=aB2h8KS|+~`p*7t<^&ezqPM%!jD_VW@{8mBnBodA4{R7s>R3qndM&l7h4)_W*tW#*DRiU~wzuW1H zKIYZPwvk5-%_J?V^Bs_}8w2QhpXWUwd%XH zBEaOgRc^ec&=t;)DoXJ@`m|m`|8nrPNipAJMlUp5t>XuX2Blw&ejhSeX?{RrLa8z$ zNO}{Fn$Hy9h*M1Q=$W`H9x*x?JCURzeez2+uHC7y&eFDj$7%=OVa2E3l%-PuN+-uZ z>`84vAKDg(MxLW}*D$9v$kw}!_uI= zJB~7NELo7eYlAYl-9q;`80OaLzEPgJ?q)HmzN>B0T|!Q)QLfoDK2JnT&7AR@*nP|nn1 zY;+QBFjNhCuvH3sFzceTZnjGO%k{s;hIC#iduT!z+R`XI|}}&ZW)+sFYy@+nxV7IDk9&e|{ynjHLf4Qym})8el%z%}`{I+_0*M zX(|qidiXcT?L1CH#Gd*PR#e3rz@56ptqdL`n5k!bAEhfnIdv&*CP#?#(z$y_fq&gb zjKEMw%e)dua0AFoUj~R})ViSn`vhRc$f>lo!9FT>a9GG|t$G5W9qL!3{Fxi9Bu8*} zG*q=cJe8N^COk7t{(wNdfqClsYR!fuIwtKFA-*h7VV?h7KqeF#KQf`Z3JRqcfD0~HAlY`#izz1&`LWcur(_sM?uIX@ukbETFx570|5| z3R4H;6dhJ`zzO`TZbU#zkqi zSZM!k?*GErWe~R;_U+Vs{bZJR~6G>{r?Z z9TNMb+bhtZi1SY{OtAo>V|v1#DG=^Y^@hgsPSmH^y9k7Pf?&9*jhP-muhmqJ2k5n9 zfuJQbL#DZNWrRJ(o9{jBKs>lg@)zN{x{{G2-+i%gwZnObA{O{Ehs$WcbI2d2+rMeA z%tU;BeFm%y*WNSWuiSTCMVtd$&s6~qnBmDBBO!s^oNi^6SyL*3fru(h);_7?^)~A{ zSC}FMmpWYqqa`CgL#56YHJ}xkZJ$P7|7sx`Cn<U=j{X)G_(d6-kA|J zH(q4U`hFcinKem)dN{BryFe*~&?eGzgTo2*A}E)K>>slUF90CFN^t-0eW*i@RYOCE z*~5BJzV7#hvnJ0350sP!GDe4sBTkDDufQ z8$w8jiHjFvG%rx?EI@Kp>|twoT&Cj4t@C~=fFO0`WM>Kk!w|2na4$G*o_Hzinwxi1K9fFg z3d93+lj-IF1@>XSQ4%lzB5yG>MAeMJax>FX=hu?qhqn(sJQ^JY!j-mmVM?<03T5=+ z@B1|L>xcelsH-k+tzlv07IC?q0Ef^VvZi;I{?9{{0HPbYmhI59JhGe%s!nY7wlebr zqm7$==G@t{>VAo|r2|FmblZQiE}#A3C&<&eOYz%%Iy6G=skm&MM9=Y0)4Ml#Ak0*Z zm{asRkxJ;y<*9?p%34r+HT@+SO&w-N2~ACE9f534c8cq)j7=X+8ABBazbpo`Z$%J) z;?#UV^gw|vl;a`m3_h_Y^#vATGGe_Okf%@OzVGVEUa2oF6@MwG)pxwHKfGR0u%2@` zz_Wo$SXn`Ak0t^|!egSMo-eyLP4hV(XjtkcyEkUm>!u(%5SRENpWKjGu$Y?|SRt}* zoTzJq`$!|%*RJLf6qBn{FlqX>)<`53zI(Yje{r5|y-~1ht|cXwrWAQUMY3oz-tkBE zap2a5TJ%fIRO2tl)5hqR&0K|HSCf|A7IF|~@j}}>+Zpy7kP=Rk89kp8g$R-SQqu2P z4fkakJ!ULD{CX4@u6a)Ukm;5#@-r!wUO0I-KOpMViT03v+fF)Bi|FD#`P5e(-}c$l zd%9#GN4a>I_ik%kY$sI7vT^2Vf1C=lKOO-|KQ-uM;WA}y{dMcR8CE;7rktI6KQt0j zFG*#&3VTzavQ#6IVqmZ55BIj$FES2Y{9D+jMH(r%$H8Ol-V?0`Rmml>=y3IgKt|)6@4?`>9NzPL4BoT?JNG#!Q`>7GiR98t=#&lLbzxb{RslI*w!8P zn}2M`Nc7R&K^VVG9s38G(<0K(91*p$HLjxlb3LHrhSYsyICnQRq=KkPY9W_#h4cDhVeB3 z-j=nt;;|H4wl)u0Mv6{um<77SPEN2DH`mrqUUb6cnJ5P230WC!*!8r9)r6jUCG!AZ-~C7=f2w8sg|P)m((JCAg?1JCa2}r zW6ks@76`slNX7FQ{S@CeQgfKJ`XmM>!*{#!ErVAI-Qmmb8cPN}-?~xn0?CX?ycY%y zi0b$PhOAk!vdnxMZLj8>&Kxe_O(<@pDoW*3Hm)Ut4y}fAs|7dA8sNkSI4To zmrSd%4W#D75t4(_wrYYD)2N_I_*k06t&U z&b#0fV6rQV%#IUcg)V1azZZ4=$8Pl4>TYzzVzVIhikfE|$P#IUuY@!kfcserDhH!y|7Mbc>=ki8*!^ajtCDnkG1<`mBSbRd z3Zwg)rTLfY{%W=d9gdyaps}F%hD(BEeVqrEGCdo0jV)(n$~{@3yYD>Mvn`N}5LHnZofhddzmXKa80h2&qGG~AJwEDDVUv0cGbO~iJs8wb13SZ} z3ke?PqmLL?(gW&H)t*w9{=PBy$I`T1vCi3Wmz3|HRw=4-j$maM>Rnxi%9b6J%gC!n z-x))NtTxN@PL6it9S2;5p^O_;ZywBu1u49FC4NKFTjn_N@sO_4v-`D5JLa{JZtCCB zmWEmBMp%9MO}tkHOWy0tfxh+4EqT&0Gc)xW9)0XC5G}7c=x1VKOOsidAu-+?^xY0< zF(JreI{74ZMzR@G)qp+W>WpVWr^#f^wlvgzSdhqhe7LDQOCxH;+jiJZD|%QFFMx#X z-czHUQ-4{p?MkK}=0Z=tDoW*YtJb4K{MF%K?3!t?(}xs!DAl-C(H!e5<7*=O{btiX z*oxuT1}hcqE?QkV_9pfuqj9X6{rS8mBL0;aqpos{KFgWO@dv8~j3?Bt-ah~DY$kw( zNV-{4uE6AI>aQ*NI_vG|_8p_A^Hd6H-~Rk#sQB?c=U7IkxUc3Om!vpbQo>Fu4Pd=AaB9XyV~+#r=eQ1lHmp+UVT#F5vpxr05Tp zlCo7(qddC;_ruHz1~H{IXWTtkblkODl%S81j}5i^z+jVZYRGD1;j}1DnYRXvB<~T&p+!#t*k%T*NxLLJpX$4 z)J7O@8CYBBn!Yn+-QFWKf*CNM`XC3fM~mRC_3+DJh;YGsy&yYeP$F7!o`G)U?YxEI2$w= zFlaVVDdhD^{JOit;E%|I)x)HsHFMRZ8vDLKIzaIRx9n8h+iT-AC6pFtN3Oq;_;eXU z+HD6BycjHlYiIZk@F*_|Xympwh@NCL71V+@n(2&9B<-88{}vl)>Mj_xaaUgIk7RLjleh-@xS#!ilkCrY#a&$hJhMP+ zP8QdJa{+&6!6)$eZ)5)&+W(H(|EH>9=63U2Hb~k7vFXb9=?Y*R^T7x9QgsX?WZDmi zD3r*8P8S--5SMM_6aWj!r>0-a%ncR3aZEVqSJMgX__rvhHl)uCr_y!cuP3ZESW&v% zTzIJ6UN+4?W?&CBu$xX;Q-S@Nf51#+<^c@s7ICKMzYS~;;73N9*J^S7ou+sJA(tpx z73%_W82{B6Sl|N5T>3~sKiR)T2ATmTIHkR5?z=x5FklC)2ACp?3a;{p|C;n6Re%X= kqWiM)?p=sd%0Q>We)c^nh literal 0 HcmV?d00001 diff --git a/guarded-suspension/README.md b/guarded-suspension/README.md index f13e40684..af0ec85d0 100644 --- a/guarded-suspension/README.md +++ b/guarded-suspension/README.md @@ -35,6 +35,10 @@ Wikipedia says > In concurrent programming, Guarded Suspension manages operations requiring a lock and a precondition, delaying execution until the precondition is met. +Sequence diagram + +![Guarded Suspension sequence diagram](./etc/guarded-suspension-sequence-diagram.png) + ## Programmatic Example of Guarded Suspension Pattern in Java The `GuardedQueue` class in Java showcases concurrent programming using the Guarded Suspension pattern. It includes synchronized methods that manage thread management and synchronization, demonstrating how threads wait for the right conditions to execute. diff --git a/guarded-suspension/etc/guarded-suspension-sequence-diagram.png b/guarded-suspension/etc/guarded-suspension-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7752815c7b433c563e889bf5bfae31f385d148 GIT binary patch literal 50542 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%0D=g}P$ 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 The Half-Sync/Half-Async design pattern is used to solve situations where one part of the application runs synchronously while another runs asynchronously, and the two modules need to communicate with each other. +Sequence diagram + +![Half-Sync/Half-Async sequence diagram](./etc/half-sync-half-async-sequence-diagram.png) + ## Programmatic Example of Half-Sync/Half-Async Pattern in Java The Half-Sync/Half-Async design pattern is a concurrency pattern that separates synchronous and asynchronous processing in a system, simplifying the programming model without affecting performance. It's particularly useful in scenarios where you have a mix of short, mid, and long duration tasks. diff --git a/half-sync-half-async/etc/half-sync-half-async-sequence-diagram.png b/half-sync-half-async/etc/half-sync-half-async-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fdabbe242a8a078d03942ce27d1819df40fd10 GIT binary patch literal 60756 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 LS3j3^P6 The Health Check Pattern is like a regular doctor's visit for services in a microservices architecture. It helps in early detection of issues and ensures that services are healthy and available. +Sequence diagram + +![Health Check sequence diagram](./etc/health-check-sequence-diagram.png) + ## Programmatic Example of Health Check Pattern in Java The Health Check design pattern is particularly useful in distributed systems where the health of individual components can affect the overall health of the system. Using Spring Boot Actuator, developers can easily implement health checks in Java applications. diff --git a/health-check/etc/health-check-sequence-diagram.png b/health-check/etc/health-check-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..65ddb26ab812c69564bf4e8fd4f39b2890c88ecd GIT binary patch literal 55383 zcmd?Rhg*})^EVobROtvv7o`dWMClNU3IYN)dPkacsS-lys8k!E2muih>Ae#=A|(h? z69`Ru2tAN`cz)%5&$+(Oe{k;XmF&G`W_LDsc4l@yd1Y>Dz{14O1ONb7?it>G2msKK z008RC40PuuN4btV=O45ly7zSffa-K+qVt9Gdr?=zhxY-12nhfnIvxPPpBF`M001Eh z0Kk?L0HB@?0PqHUZh4@2USaNLb zFPeO+|67|+{lB#|qaPC2^3G5FUEJiueFOe! z0MHCqKhOHQ1v`s|`}+6=sfTNc{Z|Y1^ZY->Krzw(Y7*?NC1!QsTvXrxxtpl6yn?)f zm^PEBsHo=ir|#+xZ{Pi&?&o(}VxGal0qQ_tSXh{Rn3BBza}S`RnwlC=;Rf)=4Y~6c zazQWrf}O+V{DQ9jHk9Z@Shr>qPzm||Ij|~s`*c;y4iCtw{y<_(AQSf{I8b(pR)hqqY39WHTJpiBsxOZFkaX8gZJAKBrX~^0c5V?@EAEiJScRAdE zk6KihlUkbpjo6)E=4-bx6)q&Ndly`@1m>EWTAPrQ6?&QKzs%F_e&O<@;!NBVj_Y!2 zQ_<4GKxPRYSs&&nwdR#3<|ikgSfgp4)u>-T{0oK;XMKbc^hiCf){i)-IN1LqF$l&4 zEJl1~eHG2{@;{O)H77pg%72!>)X`xy++f>y^`!B(4()#=J$S``@HywqAVtMUqSC6~ z%KR5rh8xqjM5)F8BTW-%K+HT&!tKe z;W8=rFUyfJR_XmO5~Za!($RzJn3c7N|BH;y7m4NnFN>s8_Xq!B#ND|3-m`QD*-tuB z+%~~Nx|KSvpbd|v=Y-;Y=-;5qeW=^rxi6ZGoTWzW&CVtP0x(i$8w=8-jJ(twdHF|3$By;hZWIVelw&{WCTW zt0?NA)WhZ}AT&7{9ZL+x3w1M$jg7<`Pt^ zqbYCj1ir^rrj=~$G@b{m-3iJFvdty5k^Aokw)@AdmS zE0nE_5y5RD(ssbDf;E*=8dp+ol-OCeB67XfT8naM_O>6Y%>rR#ikTgN{?tMqpmB$A z-d608#1Vn*1@z-R4__Bmub%mP0wRXC&ji^hN8GH$TgOQquXJ8~PL;vKvG1k5YUe{Q&`NtmiyoI?Rixuu5hCC&Yyzv zYqlv}dEGh5@pF1JVc$U0#X^M5+Ss>ut5l39)sy({D`@QyE;->PU}$3H?}AF4kT!mL zBXbbC=1p{*zw^C3GreN{& z9;38ROTy6_31RZbdpOk%^tglq=7OlptRYHoGL`3tZ*@Q$-HjL(GAS$yYQ1ABmpq0A z9W@Uxxk6Gg>Bn(Udn&<~eJo

eew(aHZ zC0*(bPi!Z)o=I*5brRwh9C_A$7TG6*PNe%DeMda4nF3|j6lyUd(YKr{VV4_SX)X(7 zGg!;K!|^KWeYfNk}xJPJep-sceLG=|PWH(_@zpf7bcxxU9v!R7dCG4-jTLEgpo$Qc*g?VNIH zhrj)x53#4q>JMKbpirWRl9w@Cu=UzAI7IPa1grLmwu%6TVmc$V;Flqbd%x zQ_D+P{=ySy4O-2yB7sleNv9ENG`nB{`_)FTtCfwX6(zOmOkQ+UZn z;d@+ka>O?JU^a;zBq0$4J4v+_ktN88u|KB1daw3syR>o9!-fL2Efi_i(s8l!eYIHv z3@4mX&81IsVkyZw7uI5ibV}T9JMUpaP1^j55!q5YJ)2FOiztoZ1sE5lP>5kr3JEj| z`7;hArrt5t^jP|1rC`<;AxV9GL6hE@v1hTkYT>#GQkb$izJ(!UFP2Wb4rtE zLEi0gZNPa$lz%&ZjoVfbt4g7L+heV9ypt^yQ6~bVytGPK9)j}8yVkyb?g@vHZ@k*4 z@Sx6Mn%d4+r5TBL)EL!&)^PF}#qTt~yT{x8R_|gfh==&MM%nKb+b-_S4@eX&`e0=? zPaaISOLTp{V()_g(ZS7d^!4otO?cgo$VP2&LMkPa9ErUrDJdItTFkRM=f6~^8F_HF z0ajqVZ2*?7r5I%Hf|v`#<}P=f$;yUGe;NawjUl}719Wdg*FHFJgT%7PF0f!B|1*XZ zJ456q?|{!9@$_q-2GmE^ap-l>Q+TD80;FT|LtRi0=V`LOgMst~YL9|b@V4GBd;p1H z1TyR@8mlYv*WaBr1Hx;s_MFhk!sbg}6@e~H(j#d9#N^!1(mKMc2l!ZpJQJ((Z*Y?X_kzvH92ar7V&e9B+Y z0c}l)jHN+|ebzGsC+A`cH^e}4=g*M-LU^au_xEo>WHX$&FZPVFXzR!Oca>4<)Ltg@ zA>Spv4CKXZLrfV?%F()aSNpZqH@JnG)-fVGwKP2>eu}R4<`z<%_ATFGXHho7`U(>wI?pV`JBqgZ<5xG+4wsK_I_|y5M)bR6eqkh$ znc?u&y2$n<_Koji)R*o$t-8!buy(b}6(7r=dti-e~hc|IohO#xzOl zT8<5VQ>68<)e3XxKhI(<=F#XjG3smu1|+X@x=tlX;~(G7A7>C05oqwU!k-dx1M%>S zH<;n+)>e4EpJO8YA{U>BO{#EYf6)29{@raLNn!w`vOFVYA^my`hQ0z_^mv<{Y@4Um zr;boJW#lk46a5yF!A3L|!JoMn#eZts_;$LoVEajYabF=b)0^_8>ql(ORfRM`p6sIW z+N0K~l^Dm~B=U1Wjv%FKXP?05!awkLtx>R8Z@|u-`l_LgS|0BNe0aoqyvHmJoN`9Q zF0Fn~a5{d>5o2_f-899D=Y_1Q@F^=^;dAM^2oTnb%(cOIZA}?*w-h6oFplh(5f$ z^_o5A_0^2!Q&{9Ij59Hg)#ZRBBFuWF4Uq8lh#4_d>TWr zMu>;Ko1lS~Aj-FZ&eZSNItP=Wj4BOI_j4k;x*B6Af4sh(k7C#h+(6UB${!FAQI!bQ zNAIxIe?zDKIB-Z^q|zpR>xVjT$tKyfY1bA-kh6Nu9tvb7>W~l7P;L2g z95q_9RIT_?V!{|8*u;huA+8rtSQm547jcayl}5K(J!!w?Q8ZUq533mlfE8ni(dP89 zp6hy)U;Zp_ zVeuOdr&*Of;-PDkf*jussUvnQSG_EYuV;4#C!lY%?>|<6hS<{@#Y6{_ivoE5BpQjE zKQ4ejyi$t(7v;Q4@Lbmi(uW8=`WGwUwa&Q`&LO(Z{_h>X3@B=Kbl~@iR88L}mM}@*RhRK`X<$bU)A6k@9j}&d;zR!8<<&YhEt;Yl zVw~^KB(`umsfK~pACxO!im4H0XGtonS9Zbh1wBBya`MGNT)nottW4cr^I}unt(fN? zq!a9cyRP~x2_i`x-!pBWeX&S#JxcxN6Tq1EfJf3kl{@C#ER=eRc``X=ZSPub-urg8 z?pR!+%)YD!bt>xU`A5m;Mmi|F)&z^(V0+-s$RTTYb z2IJkhQCfp{9b@%H?a=N^TX&VT?X34y5fXQ0mB#&N|HL;|bW##sZuPIYzjMvJETk~> z)m=-k>Dyp;{Ya+pX7$eL%jqWTM!Rnxn%M5}TLP^5Z}hZh-UpTo)|j;0P4yUUz-XWo zTTSz%oYK_pO)hA7e?(fUncwUfMpe;A@h37$IUsS=3r8To)o9)DB z;1lC@%&ApFVzdmuaiL2irqK!Ui{no9MPPn~yv4cy&$s5JEGm#LN9@8U@B2%J#)&FGlx*f zf+<`*@)FpKi$e-Z&0Q51Y%vS5-Ns}d-?HFkvjx2egAu7nrGdLUoe7NF!g-_u`;CRe z8Ql8Z{(NKN&fwKZ4k@3_vh=y0R(@YeJh7dme=^gx^w-GFb|$SvnZpVYvt`)ZaO)A3vGXx`9n+V`92ylFOmzzZ&H84A(r$@L_Wj{q2iJ)D>9EzV zKrwQkje`)!=0-x%zizQp+V!qLuYIVo#J6B(cMn6uzoQeGzCO(^Vzd#b9@5K?m~NHp z*t9s;P8Rm}YjU?VTn8uoZSd#%=<(-x&itwsjTV>ENjpkaQA_&VX@^09(?)JRcE3E# z=C}dub2RC1y?lB-NQT~hzM0{ANyhhfjH{>R++9aeyj^q)jLIuE&+1kkQDeNMX-B zO*?&$;ZTx^Kzz98CE%kU0%8s8`o1TxKy&VmQ8g1k_QLKP|5@1IF5T&&;CPVxPRYNS z^PTUYCL76Xi9>%ZvSB|nhz&Z7zpI<8E;3K(O^Q(`Nb3Bh>^_-1!R~HXnW6spjNIZ7 zFm`u7SCI`)ZqC8smGgc!wr%_7mspTL`m^mP9=KiS&%8_D27ZzX2@iXx)l}HEyI|*$ zx|i|re7_P8uzyqv@tYnw$*~Qa-TGvc6YU1S!r#bNj`X2~ATXg}>swz6N|O71Aii;! z+c|TKFU-F`OpXY<)i`Hw{>-PuKRBdP&(YrxQ$=Yyq$70a*<$dSCwfAr$1imT*`TcG<=JE4vG(3D(y6^&i3$hqAb-IVOik#1rPSA<55yH%P?x(6)`(XUSFAtN* z!j82=%eH>{ITi&h#)oZ=CRyFbZ8EKH9hwxygnT zyt>A*5vI+m6O6EMu=NNd&&e2fmxrRmz&>akSdNor_E_XuqxY_VwE(oDCr$H0mgpr8 z_84(-ogsXx_p=>!1~OqZ9SQ2tc1i-8s&)}FLvCdndSD(y_wD8qCB{#7_Bk{(vg@Wt zQ!ce(pEM!LlEi{S-gz9)uzFLDHz*Ioxw+f+f0)xUnM7M)36>T0NTlUVOqVvHzoc;V zV4lCSp;g_&Mk}78RM>YI;i}rjHkw<<8_}{;9y41Wm#nKml|0{QDpD&FmRrqlMJcg6 z1!xNT`D_NjEF)TdZ`uo1e(O8ZC%o>AWK3y4qcP5#^Dg+IUJS?=6~LfeCa1MFWGR~q zj}FTpB9lA6oV&yvZ+6>V2>&#F^KN;N!1Bu0)w|AMmus$&Vs?1w6!?|LcR=~3uRy6B z(~!Dr)Qy*ag)qjmeLb!-MGlc_UZ+B!R+U3KfKcBB*L%tI?D}r z`oa_s<_-E~bAR#&aRqk@IR72B(b)5ZL$L7NfNG*o2=CU0#;v6Ts?~Mb?+Lt}Pa&S; zqFb%ue@YR@JohX66g3)5k3$4s0Pv=!CV#23-Ev+nr5wi&EDD~{TY0RX*u)Eq?qW}y zSgx!C4kd0@mOpQ17GuvIuX@dDZ`gz`>2(^tuy(~$U-h=k$3Wyeu0z?Xw9>(l42?LO zmz{69oQT9<-@YgNLeBnVbKzf%O(Rl}xFx)H?Vm*(hXjI=hTW=blcTwG096HLoi4+e z7X48m8Xned1nZwE&KL>l`KjBjNp(@YN%d_FS9?mq@w4JPP<>-mOXAy5chLm5U*;cJ z?wj--sys39xgRvlUk&9;JY)P5!ZV-=%6?vPR`0`$|80>qE&nHs6<%u}wG_B91$up= zkQe59o$TvQijT&C`s@PY#1~Fk}U0SJ}bVPh#BS^ z$Wd8r(kkB_NJ?TK0J#^NiyShpGNXl_+}dr@)E54`tKtXcK-Om7ovw)RzBAl0UGY9w zSg5+fu9X-SFf1a-Usc?SXnvBO2V$wD3qPAwnQdu_@HWtnd3QBy0Y@aAkNUZIh9;rm zzFUJH^2g#ASLX7BRXsk&$gg0RzI|8(0Iwdsf+nH%XN*1+iHa6bm>x?%zR_hL z;_9d4LimBNs(rtXwTa_h)B+*haaSZdyguLn!ZBm`U(+p^O_0VmtyRk|8eeiLblSh{ zIpfah(ZvGtp?~U(D+Mc!#I+mW!kA1M@Se_N{c9NIYD0H>`cj4CU8%rCYPKlp*yjMq_$-&LEIdW05~oA(%Gt~%fe z%qKgJ;XnZSN^@D_VhzCqiHTa3+Az?7?m<6SaY*S~*jsvFiI(0z+wJ#x;yT~QIz1;g z>w>q;M&}A7@ws1CT9S}EU1)26S9YhZkAmz=?A)g!1Z**;2)_Lbl+uyhd2YqWiKPu5 zoVs-I`yIDhSZEYP0`3v}uUM^T@$IsJEi941g*hLUPIU(sOQNDwL!O5AGbrvki2H); zPkQzmwq3uvbO-cKlxvgDE$)P*RxbAOM-AQ~AGFdjl<9Z8xdCS4-96LFbH)DN)s<~? z{?NmRa0o*M4vU<1f}ZJBLNN7I#ZpcF-npdi5jpm8#k~C6e0*lD;gP~wMoHV#kCDZG zUb?M63OpG!3dq*e71~H}D2kD8XQ<(`8x-5DxGHUk1TQYbE5sA8B|ezO63JVw477Ow z2Oq9*D$}c@S+UsEfH08u4NnLcmvSO6k*EQ9w>^)n{-xdSR*Z>FXk*grauQpTJ%olF z`GN)VsJTx-aSAbEV%MT&G{__2cwXmb4?Ufh8R*|$XTtIlgnecpx0B?Z6E=san14!H zw*?9$1nfd->@bwdMu(7)Mx6`_gC2`^#}dD-rL8|l3T1a+k&v@O|6uxxfQ~?To1?DQ zv~qn@XyE+$CQ=2z-O76L#4PVFYVGsexMrF!=H^wqtPJ=a$!)>-=X!T&WnwyeV~Wex zT5vXXkgFG?@-{BnSNCo0lAk13&R=i_%!Q=9kXRA`A0{c|Q6N>_&)v@_Pr__QSlDc7 zuh0}Q(0W`fTWxOiJ>3TdHB(1My-6FH+FOJ-D6}zKIWG5JS3VdBVNp8DF-=od%%ZtS?Nz(fW0*_=PzaNmhR--)7f`PuRYaQ+$o7(%`85+W_cqMbXYZ+<; zqXb+o`?kIX6t2An%;)VMxrY}gzS>*C`mu77=5)94sA1lP7K}s%#OP? zsg2G840}hOs;BRw2I7QSQ8)!X#(rmxBV)mCV(6+&)4F3>Xh_GIVY(1BYRvl7pB!H7 z3$;wnMXD^Tj%~rugxVgwFiO4_FCL-#r+)w8=-i-XqMhxa#~y0@snIdAyog~qOGl+_ z*I&$8q#TR$E2*t#k9O2nd**-j1$r~eX5n2ZRc2TRcV$9RF16MLGL1c#>5K#0(3#fD zWDzsBs&Wu=TPt?bW8r zv2Kw*4Z07sM-1N+Bw3g*afq}QFe;KcnuzHdF;Oh|8HjAm2e2=wRqEZVPHlc@@wmC|0!UMo8Aek9l}Q9#IP9s4 zoOnha+hS=bubyq5g8!bTF+Qsj5)clyAl`gWqakVzeZHcMoEv)z>|yB;nL5SHvBN&8w8|lq8 zK0UR0to3e!j#&)Mf!ahi`?l5*Ym>mSYFOkov}-G0DWVt3eHwPNVJ2zXH!wDGdgeW^ zm==ehz7$RRqhx%jO5<#~Z|)RxdJM_jrpio4%$$SvbbPC3YeoDMa91jrgfP8$rDS19 z-nP9fLKq!hYy2xqmDt9G_mZw$IAqtOQMNtk-5#aswEpQu8jz*BBE$4te0;|FUO4x) zq!zhx+Lh%wEpwhW^o=-PJL;|yjD^(}ipp4QN#qh^bx12m=$K$I_dO z-K2r8!D+d8*E^PewJjP^UDg}#*4b41^xOq;A6hxhkDXO({cJP6OCF!cM1K6h zwO!`dkPBH-c+YGuv#9+}Pp@YtQJ@?@7uJlTz9%KQ;l^%XPlH4N<7ct&GA#{s^eC59 z6|EP_VOzm^rEux;!$6Z;)8KBf)7kD`a1WGu{{VePR9tuO*!Hl&6j0iJH^5u_tUJBD zpgR;bx4MN1m;2kw?`F&4^;8x=VCty>nNVoKJ!32 z>!!EhRol^brKI`QT^evO@J=h`xQVMJ44OZ`aM*lo7%&stM%CWHdWGS5X00B&(@;ri z?Wyqh_Wy41uvcb!^n*rQ%zbf&o=bc(oys6)GpY#c#aw!(H#V(QXLRR2fXg0Ss)u-m zHuf!y7R=tiG<0&V-mvZzucDPIN(j9u3~(f2^p&UB5~x>s!{tiOEhmof@=G8Xd#lNnNf z64#jIbDfr`wMXj&H$4&e5qU54SS&K!?A;+Cd}l0!`Cj%c9Z8N_S7J{Jg%@y9Z;?N}T^3tV=(7>Xcwv7P7!td2C+?ZN{iKj=1h|I@w+p-YW>n*_p@*)pM?*!)(>W z#W|#jCMvcu6CUn&j?u~RH0_R%YfW`^(j^=0&$rT~&OgU_st2*+h}|$hVg~`dLLkRI zu|H&G7#NPDVOF!-@7cFe`HMb{k#wqu_S|@-$hYodIy3t1Tbo;UJ@j+{%A`xYV6};@ z!4p6<#>9F*b!{X1A*GgM;8R3(Od&oL3dZ4(sH zM@tmyzFsB)$o{tS0nt*H=FS}wgpxCfI=TW?k;{rck2SciIV6cyyPP z$d^6^4I&~PZusS921bcsj9WCRgSY*YL`UqX%>QUCfi9}FU%zB2@|=ClxU&>^>xoD= z?Zy{GK+Hw_TxA&^w3khQ zzMK&Y*Qrtvq0+zngFVg!dm$w#MSu{vaCm3k*s!eSa4gF5?oTFD_#z;({&!TM!ZnRTK31;INy zpW%+4&g(a!XMtysy;wEsm`HB8Z*-2f+|CjA_n0rKgEZ+^Mq$F#XGQ!*)HXyeL-tO- zDCm}s%_eENA?6aC5fdRf*UNV4qU=SWr$MgI%2cQnTfUQO0+`bk{4q@Qm78ErMN(4F zuf*&_rT~pC5svTd)G08^_#4v6#WJkPLgS?gT>0%3lBv}Y)N3MCB~|ExpZip0%#iH- z5*i*+Sh(Ug!*=;Xgak$7S>71v;x?EU^;b z8RS3v8?#iuI%38Jn(@wv`?=~7fl4|Z}U&DZInc4p`*z{xr$M2w zj1YZ~dUFA7ZSSpe<^3Y-(_`rLFJX-vnv316M9jG*Xe6eC!y8^-UUn`>Z}5LEzc+kh zW@(XSFXEbLv48XZ)6agDyF&0))Xux?PwCX)8`b_YtRjmK?G5r7bTqXb7B=T#!Y$Eb zG4pxmdGyMGM=z{)5Usa@r_FjMVR=-a-4(`PqNqH1vs`;uc*riD*n z!gOzV!ihB)Ax{k#f^@G&7Zpxk^3Q78$1Sy(&?}K2r<(1YwP{*TB+}YfX`?FEZl3F> zD9jWA>1Az2{m4Hxpr04F~m&T{O zcVHWRoe|kS*yjnz-$5>Wn(rCSAKImtTxeYo)|I06ihV$aFuGr#e3pJKIqRI zbjiFEtIIiZSBgqmr>dAU8u!-mHW6eyz4M;tN^7P(nL)`(D*83UV==1!)x)0dQxbZi z0~zHyRNp`^zZbme(WOv(>(;TnGt4#y+9G)uLroj$D7ub+z_7_x`?L#s$(f3t!xbtS z?<4FgsYfRjt(4-_@Q{ryp1+s)Rl#$;rn40X*lFW&U>a6h%wqPmoSw-x7Tc&?364+y zthMx<>U28_jPxT6-*OP9N@P)(J|7EhZnUxaKzL*(idngQyFQE@o0BIWcl(94)m~4C zg4B&sWy_6EAo9t|Zl&SSv#jsHG%IjRkJ2}2B)X9N?ffXVYp4omG9s~ffx){S{3;LC zO?Z1x6r09;E1wu0Muoodv+I70&_I|ltsRzk>Vxr5-dKXd;l*>8E+el?#^u8~VHZ8U zDaFF4i5zr0l8i^t759$(H?{-5*{-6Xr(I~fp>Fn!F-Jfex2i$JqpH2D#JJbr!Yu9*ssjkxg5*fxerQEgXI;d87kbiN2Y z+~Q7caYv#)h>6i^@p7yVRZhqwPmf5=a@;^(Ys;w((|+Bek_I`(fRNJ6WapThpWYEF zo?8XdUhSJRles%~qDspuqn7w)aSZs>fSGbHUI9fOy8c-&UJYO;3}6yAw+YCkk~j$> z6bMJ$H+K%?2_#Rn@w%gQh_0T})J1yHyC2nkv6n;l~@W$W*)dxBQ(J>`qG%)Km@uf)O9g15#7m5`}XjQ)Yl}>=P zy7#jEMzS|(+qs{j7`f~z(tc5u3s8QPa)#r=H-|b4tq>^qz78+UGC3IMAxy<|9A^kH z{7Z`*>c*z1IWW@MzHyAcLQnShqaj_TrjpPJJ7KA62ofeds`|>d$~mh@&g%xso%|z| zC?+-t6WYu{)teGc8=-%i`bEe4NqusH2THqk9h|UPEiX5GVb2|!4sltzCUp)0u$X?^p;F-QYK)&h{ZBph>#w(*l<%w zaW%i!rTsSU{F{01UTAXNt~B_DH|^ciR|xA4pK0DVcyrU=2aEGv?tEAE-LVSa3hfKR z;tE#FmR@mH+HgAnQZSWsQRz8|4yFmf_&l^j{8!3Z;2IZSj2kQy+$NyIn9-*tsYF-l z9Dgx>+qS(7UnVFFD0s%Vu(bJ}Nc)u*T`??muD%-b%Nw3UtysGSxQ-vN~MB+sSyK|TL1FQ9o-Gzqg z{=OER6H|MsG^%kMaKpou2|n4njoC$%HPC=|gKF8vRu=QnHoi$2d{x_+9?M6$4_@dx zgAw$|av?u*l;h@Erz+u5<(137YxSq$yerx%MOK8g9=0DntH z@C)`6NaH~B0s6%FIwsAm^7eAagD}~Mdl^(*G&gKPA9zbE^tBjDn!~Ma zh?83%hHX-H(#Dvu8fM|6q*&8>%Hh05t+PzUQ?8*=Ov}i{!K1YM^*>RtYN4Oqh~7xh zT|sTvBSgVyh$n9`8cdT%Ya(H&3l+pw26<}eUuqCj0UXj1=Z7E@ZJfeQ-@2^HgR!s3 zKXv}gm&4T5sAQ|XUJ6|u4n#7SYABseFqwI4+OIk8G&^}H_6ZkvwnjgNm@EviaiJ%d zigI4pkjP04`gO)CeDZC$s3PDA}vH?7CY-gA9($YhX$_~N4$L<57w|$Q-R7{fvv``uVLF57g?ekYFQ($n$(lFdW~-Ulo&v9Ct8OyD(=Fctwa1i z>C~88^HW=fg=VhJ6xm-ddJJEM99!HkUv&R0v%8^06MFFXiY@d}9Apd8*t&x|4yFuX zfn?t-3@McD#tzsbOrn{vL7CZ-T^2%WHrm7Qx{rVoE*_nq4K9Dfi`z;i1gQg1&d9;nkX1x)2X2{HFt|0by<1rH9L(;D}XjaLX1dt0}CbgyAybQ zc-=3Q=(cW+RTQVEsb)c1PV@&h-{Q1_eDKK-NF?_l`I(R8dtMb6=>ibNX9JwUsIZnR zzrU?$K=KHi_u>9Nu)l;lHVFt5?ABaam(HHpf|d`xhR>2GDst@lNfK?VN?hct9;P$i zKTkp3Sy2EsIG0SyO*ie1x ziEcwEIsz^+42+pw;$RSqY0&_Ag(3$uudAW(n|Bdb#NWIfYqV}H*z--mTJ}ZZrVA83-uFr$$8D)KFf=b%w>HVpGnkSCC6|k90+B{X$de^~lZ&2_(4^1$lI#AM_a+JI-8xtPH)WrSCtLWP#=t8Lt zj>BXi$?J5q>i|)*Beg2&oLhVWLd^pmwMLX3$%eb1Klf7ClnOyyQPru%R}4iU{m8@# z^sOr2fF%%qC;#``(I&F9>_AedFy@P7m(;h@LI7E&W*ffu_t4bA=>TLiY1Xdi-EQf4 zX*=#9_6n8V0RHZkRh$#QZp&=3)2y++)P^ovZBkeXJ24c44EUidfpQ%ONhoTP@GrS` zaQcJnH2NoRH2G{gqi*0j73TiVEUVH(QT{!Pqxj9KVKDEdi;|*y@FN_r9RomZDo{S~ zn)1r~*rO(?W4%6~0n>Pkwp!t7D!og4oC9ox4X9B&+o2bFb!LEZb!L5Cf!hiAIq&s7 zm>J}68^+phB}t)NoNMlPJxoMmsn89!dq6qG1Ijjgs>r%siN|%rN)36yUxEfHS;fah zq(7_rQcjR(;}!1c1S3Gp6hbymm99dzST=lluS$y*7X@;FWi}B>>CR9IY@vX5JCl_} z{!>jlx2|)?ZOs6ySQee#2|+Q>e%Rlk)j_YdBO&znBPZs!r@3)qR2RtaULGQVCdxl8 zqv@`RYrfp1u#UcQ6otY>A(B(u7Pt3fT&^v;!q(-^!-Lhx`>|)^I_d4&!Coh)qPgp{ z_~*iz1bz14%>`|0XDCCrA{=&EC}9#lKt4Iub+sTW68p=}xbxITPwnzsLB&1bAB4|A zxZ=OCN6Wv#PTUnW2*;gI?rykrG)-xwklm(qF!b=~0a$qUcz&jj&JTKxcAOR;=j027VmJy!wE=efl?)Dz38@H2f&Xj8-G3Cd)*>*9BD#Y>LLOYQVQ>e_9Q zg%!L3WyuV{Jx#xd_DQ({p#6y-qv(N!(~6w5^zCqywm`5RJsRos!R!mE5CNU!!dJ7b z9BsPk0O|TqCp4UXU=Ym^vEX@w)`z@lO}%mQ2mo7jcW<;RV3)&zTrs>M+Mu?<&2}X0 zq^i%;OdV@cV-9d@K*d>KcIrKXQLK2j=Rto!n*F#+aXG;~!5uHn?D6pIuX}3y!!IE# z(;Nihs_tuHA?)tbk+@vJFzW4L`5QD^7i?`>4_ASuJEoCX4mEByzT=% zrgs;o^qM?0K7I{QOb7{(plNvZnoWk=ohR{Hz?{Cs_EokN?1f7*eEf^jI&R$z+%$jf z#P)v9oh{LUr=bq7K1+x1CoLk($UX4S1eID0IWEsQ4HDH67JwozHvckRysew}3gh_~ zE6`(1c6;k^LnBJ5Uu%U7Y@9baNj}SAN?^UV?TUi%(w^Rymj}U36UA>j6M1Xx&jx@4 z*vU6#kjStPkVv!gzQtX^t^w$2(B-=2bSUKv7N3uklw_N6%+=zrs~BwsrF`)3X9gvJ zTNWMhw8uZ5(m`zoNlla&BA!$l=2tqUDcLcw-E$wE>_r2oev04f)c^;2C6zIB7W?dsOSTRsLTCi?XgeQ710;9eH&OI3!{ws@09PPSujjI#^dk5YP_7dOHOe z@@{p((W$%6h|NJa+g+KsyEHVgI`JeAIU;NFHLNJ*R0%go$%$1fUr&(Q@s6S+&2ByY zqTR9!Y#7sUj@&pH<^f;C0IB<~b$SRSxJ6Yw_OxFw&K74uP@4k7oAu0SqaL55rPj=% zUttew_YhBL$e z7=tVL&HWqP$|&#LKl&DQ=UM*0AjM=;&MOlFCmjAI3e)`HJbW{YDE*M;&VQn)oSgrO z?M%rz`4=cz%v(wG$O6!9iPHf&v%{|wGvL^|(AHwmI>r9gD>5Fse?(Mh* zCf6nS*5f5%_Ans%5}nR`c{ug0@Xhq3Vt53YshUZrM=_nE^hRbV(d*2dBj%S_M!}*$ zB47tZA-cU$Fo7S+9_!9WujjK_*Qr0PzfQD_F4C^r;*A-{iYZW^Pepj{u8R6 zFUQ{)VMp*AF2s_Xa9O&2ij(k+qEcH~u5!j_mXkn^>~}gX4I?$bWe^i`*fY>N>jiRw zrygaMg;mH2>io30b=Md7>-%KS@;P+ogI+$zf}DoBSi?89wN#4HW)s>Bwc34p9_v?Ue>`F# z$?FJ9$-JZ!Z9x{`xAnbq{O1scAR2`;pTJ007_^s0eKWo0S5d_4i*=>RVv7u4pCRSy z+#3^01)gK^evi37m z7yj5Wne*{_SU;TVbm-gUlZN$`a^;AnFS$^0=T`+qTi>=W#rzf5>9atNe#a04;>z2b zySl^oS@wI9AUYza+JPsEId020Dl6@3C<3-CCkx&;lvNd-lOk%BGg;S?(-FEuzr@W` zS0Ng6!wc==eztR^sAIF_MgcB0*)w$9?boDb$sF4VXp*m4P)<8Y&AD*1PUsU~^(!9< z!+8tG+fHwFv@~t}et0*)HtoE(x7ya>VEUh}^t2&Fu2?AB;<;&cqSZ#0Fit(n7BaH& z*(*!9F?i1be{RK#Wu#5px*VtS%!R@ewr$#R&~up8kXVT7!7Q3YZU|+&GtXPm(x{{kAJS^3@*9>fb^Nw7yBU+$)IyI zhzXcB((_;tWg)vsYEi4C1hrjPNcf6-n1^K;VlTgKkhfw7Kr0e>ly%B#|8S+ zaTu6h3N7pi8Ip9|?vkV_^^i$K2{%bLg?lUjL;>;cZP)D}n7N0vnJ_@5o6X6@t@5V+ z>Dk^-IdZM*`aE6^f7>YpETD~kwVlFS__u((R6VHJ^q&4}J{Ec!3rh?I#hIzUYj`Z< zJGlS;IFGMZ37BewUHY1;PnCUd&4HLa-d(f<+5D5+^&&dTt;T%p^?}HTZVtdGyL;iQ ztCj|b{Z-{{1^s<{mMXo9i#?``VL)Q!BCsbPXlGE_ApzY9+Drvwg*yoVkSmw8#%~p8 ze|y8(65ZOar@iC<{LooKRejaysczhVRQmQhM+!vJ=j?i&onQ>A{N`(EX#v;E*Dy-R z*;l;K@cKW!g)i75wRf)j6Ax#x+Pkv|unrRwrH(~hVrS1Bj_F%}`h1vf-$ADxev^{i zD(JDB+g}UHl{DXyJ-zlQqBfN-OFOSD2D}PswHpaNG_qHL6dTa)%55DtN6EM&3)}1hC;RIvAE5 z;~J0U5hclgaz9;$@@xe^(bM7z-xd)xz8_l8R9%!h`3V@p`BSgM1Z<)2jZpvIJ|MZ{ z@Zj^#np@Mxc=d!nBZ7I_K414X?Lemd=9fJ0`zj{- zp{5(_kWOB}c$>;%Pu4@f(tXFpiPzijU12x?k3&Pq6OPhXm(=RtX+%Vmn|DsvgV2Q2 zObEpd?TCdR(ZBpDZvQb7Hqdl(;T+Qk2xD8ES=Tzp?Q%vXSm~}0c2(DjKeqrmG^E~o z5dQUkYczA<_g^I|oWTo+=v1#Zg3?l!+SmX6F95G10o*$*DNk@Q9YUE!V3MD_=9~c4 zD&;A>$K?+)8h*UEOcp%{_ChFKSS;wQ1HnuE;f$*@lG$AcV$Fvp87QSmStcz6%Qp=12&4yVDUOy7qCtkKoUYJ>r zLqFnd0X8R^rbVPuF662oFejDl<+RZ66@1-?i+)}(txbb!?*!ohd&k0ib>El4rf2Kv z5U8f?mkVz7rD#VPZIWKR7l8R36zWJk69LY&Rqv)kiQACE5 z8O+E|KIl}^KMjzrYXaqqn`a59biuYW8~qj_e^_78iao*-{Nxb2Hxug)WX^X?Vf>j2 z04KU~e@XzgI=mgZHV!}G4cWUf`(kw8>@S1bk{eopkT-^CB$R}aiCDMsB~BlA)jrGO zlK6YO1(o~o4W+*LBr`!U7>4DR>7`Db+I2w!LcCK2eSj{8&6mA zNX`2Q>^sQsQ`qh5m%xI(BVIrrjTVKM>Sp70dB^{Uy*Cesx_jft?YpwC#ZV#%QDhxk zQAi~u%P84H*|#y4C=~Tblx0XL`!4ICM7FW-YnHLEV+OPR-g=%&pXa%L|NXA(`@631 zKV6gaexGxn`@HV^ob$TRx!cLI0ilG2V!ErZ1U{I9#Y<)Le0pIUk5}D8%9(eHRTjbdx7RF#mX%oZbO{omff zSKl0epZR7$B_H`6_r8Aps2j{wLO59U+5j8VQX8jbVomo~bkF*U(=9!Sua#(34&vT8 zKiY7)c9PMpOXlNaC{k)o-9U~9HK7TY!cH_hXKlh`oNi2>*0}US>27gQ^;go#=ONI| zg3UL;<#`07*ObhM7P}ewxIw|eIWTU!8NoqN{n#Y+?XMb9#!uTB5G3h}a1`--?Yckm zQ{`7&`%aXqJ+ILVFp+>#8SLio;m5voK*FAr8k5b7ndU?`$h?5x)1DXhW?*jgEqgP` zSJiS8%Jb{>Ki%`Z#JxZK4j*hl#(`GJOUdfM(pDkRe&;f_5%&s88*-_hDky9ABHdY^ zU#q;+S(R>VDMBvaH(q{hv=7s9VRyV>;<5|w>b@upzpd0rtMTWpk67HnCZl9>%H27>7xH*Q~A;OXOrzcT- zr1(0@4W7LjtLf$>Qc9aJ8aZ;8LG6>c=v->e6B52UL&f$){iyB9r1gmz3!j%Q#TGOr z7i6WE@#?Em!{>nf15A2$sNt7y2&lf9J zDbo_tID~7>e$J@3ow&VzaPhvj#?QDa&vOR0Mcw8k8W+e%(sl2|JB>lM#E9Oo%JbTi zggbT^I1Cj7T)xbhOx&_h`wH9ajLkxAzarZktU9Q$;F6*C9b*Sq+vYv&tW`7ibnUlW zp*zmgRAOjkz+&^;MM)TAfu(<^I*6o*B&jyfbC&p>io$P#w<{upiyt4KtL?9hpF19! zlvRnJCuA0c3B7=wMZu)>R_Dyx^tkY&Fd`D47vOKIcvf`ujrm^1S5i+(dcgeNWIX0W z1_TE@Vm1R?>`de*$!25S_1bUeff;pvG-g?^*`AYa!?{m*{hERfaaP^(W`s=ag|(9S zTt=DDxrI@^`L^!xo2r?+9H^CxoyRtO!CoTPY)Hi!-uQ?k#;2&O{cRURqOta>p!xgsHqIg#QhgHu?Wx)5I>aG z+5aK~LJp1yusqAw`VVog#sKs~kCLe4%m2_F$77%{#OjvFe~IIFz)egj+=%)w-TmL8 z{QqhwpK`tD0#Ik82TJUC{b;!#y~jcqrm;P2J{oyA50KjM0b7O1x_AigTRpIN=2UwUfHB98z3gWVC^)Axs%bqEs?oUf@g_Ef$e@}b5 z+~O0$1+(O4!?%&zvuO{%Uc&m~jk}!q9q!u{4;L!v9;?Q+o>CJ6uc!*p&Ut=VSyr#* z{zbS2gMe-c&X(lV>9f7KE+3%*aih9FHkffZ(b9E#KpK-qQ)9txIx$0-z_UnVt5)EI z_Mp}!2;EZ6Z=6#l0q_ojTX`B#X-&CNWl{zDhMGsm2D1NZj+|A@1hBfco%WC8j38-| zsk2sgtN${28*Q~=T-(~Kvo#GT#;+)0#$F_Y!PDY*^|q}vTe1rTOFEBVU@Z8ghk1WS zerp#voZG}Yl>u`Rb1q1}X6g;g$ED?ZKFfSyAYtQ_h!*?sDN5rw*G~~X@KE^m=DaXW zZt|E#S@IVN5;{%!1@#OtRoQ_~aXciJqvwmbzaKqELsIOHqC#?Xk~b znvu^&?A;h{818(6%3N@SSABfsm{E7wpHW2yjo~Og6;W$?T&{$O?)LM+a5K?nS-Fwe zxBks!L}5`9S;{TX#bPQM9#Z<1XPyCDZT2!wn(V!UbEN$B!{az-0C=`NxaJPPRRX;0 zEU}2kZ^Yz~&q@74-%^YCV({XvD24D8Ybqmgs;f|6?__RWUFYTIuM%9(O%1JUSq_T_ z__}s=;QaS7tI|7E^O`{vi!BQY%rVbyTSII62PB>EeJR?c=jSJ#e&ooZRgG`U(4P+tO#H_!v1iZao2(<*34*+3=h`rs3--jeEDnU;-jT!P=eWH zS-j<_5~@fNgC4;O`u7Cx#%85H<4G>Jn5<7#A@-tHs=@ma7Arfwl?J20**2yl%)_zB zx*%)tT_}MvKZWV>tw69RCdn{*H_qD=J9GlPU*rT_j&SD`H##B+c8F2kd$xndC}gxc z^zDQKf3WMcNN}o9%NLF6E}~yv6f92bew6bjo++I10*j?hs^t-CwYc@zu$$c3a0ax4Gz_%5cZpmnXE%t^@ zs<4xv{Nu~&L#;*!I^-S)s$hH06#AJ&Pw6s}=pGZ->eQE)7AuHpth%RA#tC|j1Kfw^ z&)~?Dzyd(npjz=PMUzPVbxJ=qWn5#<0JO+^f))(L)YKNaB0NjW)P^Q!%}3;OEu5Xt zc64?i1XCE}ZWezf)ySy6^k^hC1q<b{@ z73AcV?XXyxq^8_%=l{!NcGDC z6i3XQXZFiv}&-fw3!!Az7c}ea3_0lv|gK$M?=RPg%^qrLQk+*yg zN*V|9O>H(!-6#v4QB{&d-+JvVIztJxM@PlcHrwGlvCe$F{1uc>qTgMc2epJOJDOE^ z#ThltxFl{{j7JZSdyg$`Q9ZQLHp|ItKF2$XtTIa@`%v?jrvO_m<>x|7R$dwX-pPm1 z$DiF%mp>?9UMl+SP;bcr%c(dh(QXw=Gtfvi7Pd$Kc#fqfwSs`J)bkqz#-iw#=UNtnoh7wHDekC%CXK=<#S*$iuC_l{3~%Aeg(Jo3t-z{#1+2 zbK(=~4tmCJCECnY_(-#7z`e%P2KeLzi6VLzV!KIKuRN)S>Xu`dejvr5LhSS=*jt)J zCQ>!Km!xyjJ#YK5e--}dkr)l~7v*wv#GSH!9hZx7pNh1q-`O7apB%yU_>*wq^Eyv} zd~eT=uB{!{szE1|U?gEt41*z6Z^d&Wnyr%S`tAf)rgw>x%3K2nP2<*~&CZ=S^}Rg< zc_7I4Z3#VNZf%11xK~O4_-#8Wq3GmDiaYz@-LB99#_3n|YXbgT4*s;|mA2b7O3%#6 z3=kWUZC(hj6iOqbbKI^ZgUP+RJo9dcb=W#(Ck1IB_%mid(Y3mLC(!KUtIDAJK9l6nX;H?hhO3&y>+nTbf3E6B%!#Mvu!EtdS1Ti=@m;%^lQSkg$8eqA5O%H3N-Ffv~m z2%H~ZKQ9go+#hSh06F2157S-GVGhofwuU4vpRnW~2!hs441 zBCLdQC8d<>i0qk*R5c(j2JP+B9Jw*V?s#_=m-WhRW86{Fl6+F(6>mR=v1jM9)LL&+ z<`AIX<9FeN3d9`My*qdq$)N5&?bPvlH;OAODSkYbvLX*iMy9+E{uswFca__nsulUWBG-?kL>fCJ~9fme=kQ!-$9ejbIx3paLn?+#S z&5#u8z21@T{Z6Pir24aS>qi=hc01np(==?!TCfxjovcnC^?_O>LpR$XMQ~NpU)zrM zVQw=g)?sk>Wz?o9=%MV`6lW~_|&=W4% zU*>5HKAw;}Jh8^<0xOKU6r6(pHSbj)Wyi%$J?Sx=9lFo`X-d(S3{1ua%Hy({7LYs8%8H4Z#vL%Gr&$hWSn!_)zWo6oYL~Sml)!&R`Cvv;3q^`27?=r** zJ*vdguJ&bve=DO91guNBADE6$bd zb_MIy0l9hZdUDAZca@4P|0>9W3_Lvbsyqq5h{^tL1X$c)r8L>sp572kBcm`prTfwD z&4@=PN7=DWR{Ah{$xSpvs*N(@I_t)o|9Wx1PB|+6MDsO`PhcAA$0)9K`jrII@kUZN zd)D>!zVm_A<&c@Ny^j(K5hr1=?S9vx9RJCXt@Med7hhcIEGd$1x}FQGuMdF>1s^!MP~I1z5y)j$q&o!!@IS!&g`Aif~R)XvxAK+)xb$^je#6iCqKlmKoA zg7xK9dcd`1lk(3VG`Bi2$dE(b_n$n`y(+YUX=Rz~!@%`m# z--aam?Xzfs1$&3Wf%D4p51HcIW0=owYS_@av+B_kOb0RIVu5dkR?fTz7Tu`_i|(J> zq)VrQ&d-Yj|BXMPwtRYgH<9%WX(`cln6aS7#nsxcQZ&Uj6W2UFG2vM`o<+Evqa2G( zR&}4S49D$Xx;=tSSuf_c3>>!%a4u*ooDBI$_U0pkagRcPwCH|ufECq9T3uJMMbFQ|7} zWp5=)lAAmy6$d`M{NTjQ@|zCe7LUbK6c)HkB;AP+bZ_3S2u>41ZK~Ncu{833xM&6c zs9ZUsVM9gjKhL~jCzRR`_vO53G@0GmnUg2}aP-EWA#Hhb-t(5RNwR_M?fdk{SUe9? zGgf@$ru$jbU4p{WO5|VLU>j-Pqw)yc2^;}T(7j*sge-Ch(;4kGTIE1F)@GJuljQZ? z;p;uSiz&qd{)SWI))0IStPrt_EBMR_%hT@)P0bn<`Cd)=25TZ@4K5+|h7gkl@k0|n z%g+4j;l2!?lJ;XvNu~=u$Q7KqizZGWa6=W>Ga1-X7xj@iG~r-#Cw)WLvYIExAQ*r7 zejfr#+PUsnGo4BHK)sygZZR(D3yP(jC`BpChfTiLUrr0~>7Nr#%~7EC_q(y1L2ta* z!9OrMb3HPEv4)S8<{>IizN#>kPmEF^_}yb?;@(k}6|c>Ojmgv3N~^XFD!xd~daah{ zVdOYyfVFw~>fnP%k@VsQE>%QDJrZipcw>|Wona8kkPu$w_-R|V?_QwnO{(OV`-jj3 z?B$;RNLESRK&MLXV>H^NIa5x0xoDUe)+n?*WNfV@=t8ebg?^!N5+!A)j16F5U(5?B zgKI1=T(p%_GgoC_K3Kmcu zA^czq46i2g3zTCPyiw;p{B_4^x?IrBkSyP@tN0n&(?XvG5WCk?BpmkgG#oZJr^~H`5>G=$3f+I8O=^n9!Eqt0)*9 zo>WhI2_8{)hISECt(uQo@8_`gBJYPWp3V(zbQ6B_km~`%N5-=p_fFRsrgm_*Y%ix< zA)W1cv%aVCgh}F+Pq{NmL&!P#_QIGh&IyKjo*GWfSsjCGT)<|@G)gfEO}VzSO2ah@ zLe~RGH?W28is$?{?5&gncVYz-OPJ$x;D(0L>Zdj57%yfHvfNIXHI%G1RJxQ}Pqq6_ zYns2Zo7+OxdduSVep{awV_=O#U<9p{;kXfjBltyN3(mE6vji1>tGZQ%@ErM`I@w$iLJ<~m zaO`M~Vn_n zCSv?kX6wM+$oy??l{EMO2{SKlHk`k>-#Vw9o&3AjLKcdxWlOpXt0yRgS&mV>dTR8$ z3qW6fXH0izfALgao}chPoE?h8D#dXX{H%u07vF(aD!@f6grZ`IPbF`ntyi?;4shIKtz&kb{_Es-%_-; zW~Yz3bb{*$3T=6lOwXF*6L{+$M)u9KjMUvLHp&?>j|uh3&VNj5paWuGnP;ERoFc^u zHh>qQh6T3Iem_1|66kVVYPKg0 z36#97fcx&?Gj?Ih^+fQbXj;Z^#^9+M%YkOTn;OCAPfju7>rzpF?afg&D0ufA4HlY$ zdm}VuNti*W)4%ZqC`lcN_khLhZW2B@QUGt55eodYoq2dDh!l$Bm2^6wq^M^Dhf9I6d?gz^ zc5-fRjJnL?kj8$Qj+Gn$2fOrlo_{p|H)dGK4xsXot)Kc3YxR@jO?VEdZuo=eMKc4-;G={O#% z4K%V~X1YH#y}Qf!L>J5^O8F5Sch!sn4!EUaBKNGu^*_Udg<=5Kxx);UqSU78yPm_j zh__GPGuqtZeRu2Tm(=%G-|EKp-OXP(#Y9AbeEx>8gMf-UZA?zse5DZ@$rCrU6LNp{hhU^e4v^G z_vHJBvQ<272H{rn7s-f(i|V(mUb(u2Oqt)Ud3){X`;{j4E7e2rWfL){Rn61Yr;|#b z=M_zP7^@r(iYHtKLL%pnH4siDo>Qvu?hD+4bPj*H?pK_?x&QPzRN`bB>@OXMfV3B< zqF@e5QJ_-c&`r|!kMy`1l(w^kLVx<#rAN5?rzF#03=xN-L26TUEw$i>Sss`pHs@UZ z+|JADPoZ9a+%k&Y5^g$k&9oaXGW}KZ z=F*9mH=S*pD$c}RH6=~G*x6ye$OW+Y1AW(BU)H$Gz0|o4AqDA{0?P}T)qv>e=cWd( zh^BkpBzP^BDSG=V7B4WHL>Huh0?|a=>U`76=P=*d9$sBxZdvW+)MiAyS8Yx#gb=L*BqP9jik7mk!ZN$ezE0jE3nHTek&)A>kx{VdT%mYMe3exGZPBB^gwn}ry_5?! zi<%#L6=Nt7mM*`=Z0tVljmN+U zC`4HYWW6wdjkvYS{QNm)Ct7eNF}XT7FHa>Yqoky*Zn73hT&r*$&WF(U=i+FcCfxI4L>U zKMEo2qcB6ESW_>#@`gmKB613rpRJQooYo-gh6}S_;2nRqCj)ano;)xWg7}!xfwm;s z2%$x-6sB$WC#j`C{|hBL&J^h;93NG#`GILDZV&@C z4Wm50c9{I{YnxOgSC0iH@W1X%c9l3QS;&UWkP^^Tg%a$MR<(-QBr8iI|-HY5r^X-=$wTo_2#Qv{38?+?%o9Ht$isvq`e-frbw|E(> zKlI(*B3tf;L`~CluxE7+Wp+TGAX}lPh;=O9UONU}Q$$&CGg3`2{J2!h&|=RB zfo@F^l_tHmk1HT2@G zrpOY1#hVVeVO`{Ku%@ZuL5g0OE&T5o^r3aZk`YCd$C!giV8X8iX;J7H2XH@{h~e#F@-(XZVpr7=@Hho zNi^CoHaDLiZU1QW`m>wMjH2D9&_1=b*!Qe!99$fCob}6qX!6iYYtdYyV<>9gB#fAh z@EFEarxs+3RVb9$GA)%b;8om6;a1YOYaZ6AV85KeR3P?hq4*|~@_wg|pO!c7ZkzMWUzopb z=u~a;biH7~pv&u~UU%v>33KVeiGUqyTq0~&6gPu|4`o4In0<-*9cRn!iRS)`dsz<} zY80k7!{!E2|FP7^!wjvLQT6BtG_MYw}0Ao=Tc{sZBS0h6mEc0gF4j+$3w1PDSq zI2lU{E<7}{2~*jxuWg8en6ISm4kmUM1&&*!6+(1%ojy>rK)=c!wg%9PJAg%eya0(E zG2?ulBQCWnHHB(w?83(?9zS7eF0>C|%?>+JJ5W_sB{9Ig{T(W=1@)N9p#M+2PN@4*?O6iM!xM{{l=YEMAYvy*3_V7&c zUN(5eL*STo=pSG>m_qN%kZZwCAyuva#0iKjxb#%eg2D3QbN-~kv9@o>^0CGS!<5)~ zn>~@xil*aDz)S>Uru(p98+eU$BJkpfae}UTr_ZUH@Lx?VUJgnkdL(wUeoe=(EnT86 zpNAL^_qRDy`p3OOjeZwBLo=~W0Ziaviu_gQ;l6;;Po?$wa^C2pT^0SW=Z2SfsTbv~ zE>rzI%^x^_X*IHLaFB2ZWS1NNHscbeg(TB)4f268G!9l!Q#v%?`QhqzgRC;$eL3>H z(jq^iiIQ(+5e^4w_34+Bf)T`&Wy`=X#G(1bTA_c|QU?;fpaa^`x;~f0@=2fKhCK`|F&fj<{4KN|Y2*#kWvQaM@hNf2ObAy-lv|B&e5 zsbDP@HMD4mIO_5LyhBcRk{l42O^?Fjf2#wEfUy9x-ck_#vmL;cK=gE={a7ou1&V(c zu>w7dNNrU(42QqPyaHGroGMn0`wy{ySZ2h5=u}3X^uO)&pRVap0J=Y!Kvi|PtA9VG zLj{N~{K4(oVLbe8T5JdXZ8+IQ{qG`SKy-HXICqUdrj-Mg{S^fCm;O|+|sg*k+l2#tHon&43Yf@Y{>MX8mqu=n#jWo_# zn*n%m0zdd(Q9_f<=YiOKaO1B^g3qzElYP!-2~tyJTVT8g2Fo|Qxw}c2ErCPt zJW{XgH;%LEdg?0R*xn!L?ONdJiM>-0MbeYOkLiV;{R!{;6u|hOYL~GFP_1EKT{Gq@ ziP@HIukJukfZ1H{5cgNeWN-c|g=QsfkCYw|- z1InpP@!vK5ZRT-uq)L zKm>ZwelIMVSLlB|(|s}WMx3n2cV4*zhj>evC8{YmzpkOm-!C^e_sg9-Be@?6>$Anr z+;reUbN+(6-bG+~d3*vD0wA@DbzyC-JZF$EFDq-%F*_$01O}&RK5%g;%V8eOt;zM! z>K>iwzPn>mVCv!$jdh5eo1bMue=Ny4bF83c;_Ydp*KoM}#&B}o!V+7QQ|3N>zoPd< z3(CdOrHBS)Y-wq0#5o7{UGx)N&+IVEOHHkp%QbU0s~dLUR3)O|e(hUZyM~z9ja}(H zIuG1BZ`oMV11XIwXCq7Bn$u7MS_7$5(XAV>+`h&L49}6^ubH;E?>Vk3p$4i)?IX!rAgs{B2TE-YJISQO1$;~M9OhwWj5oDejDp{|uFQ2w-2`VIY-5ABJ9vzsY zi7M`4tM=H7gzoJeQSzSt{_sg5Glj#I)MnUgK9$xCfZMn;qNL9%{m(pJp9gqk*Go^4 z2e29oQFAh@ULA+Ec&&{%>37I$t)4wny&8i|Ml6JQS04xa`h9U1W3$3}S3kf`P!4o= zE7&74=jW}YcLTAiPSNbspBJmEk*2J#P4$~H-0ZnAG`QIy`+}|NPpk;a>@cOZm(oyv9xs5^sg3F(F}AYBixYPG+HfgGM_V?k2!Iuw2=+lz36XgH_f1Ealv; z)3L~_*U=5~O5UcA9u?)?E*A4RJI`IUkhTx^_j{~?(bc`WlFzB@jLGGt^rY*wsNvY1 zL`<)3R31sXV`kl(HL&{$8Qw?Ue=1cSR6>WY99l2RAu4H5OXlG1iatnB7Ju7D=8gt+ zAGk*zYQSj4KsFZHJVRPhy?7R$`C%QBK~V1wL?v+Ix3uT z7=M2h5(YGUH{MhIyhPP)&KM>2tJ?t{7~dq=IEUCgh;-VLk?XmB2XHb`T# zRNxm)inmO(GP@X~G4GTe@NB}Hv(2zu&37@b0O7Db7?`b!o$`LNJvIl$_45}DjR-+| zcS?}}6|lOn89QCWhhSiAH7q!#`EB6%-E-7q~%+}zz2bvyBs<@VSDKrgpH!xx=J)Iic>WAOL9y-K+GEs=C~|0>xLX(Jw^{vR z(LAd&g)t?-xtFJo5NIH#b+IgSgqhbMJj6Fq&b6ds0w?CvFY?8`xWw79gTo&`je9U% zQz_YE?Q(L+1yXGfnOc9sPPoIXwugrmPIo*Bpbs<*(1?p7YyQPI`mN>N#b_v1MBcdO~pwGFz*ek7H_k?sp4 znnOn^Vy~%vZS%2Cwvd`An56E=TWz>FV8&YFMzY{W+-rXCopj{K8n*sD;GPV`iL*7I zvMDPnMOhl)N!ywQF7W!*gu+=N6II_RllpkE_(J0*;6PWW4aivo`H zei@Wv?Or7&3GwxoMIJAo5Cuy^Yyiy0`h_ zn?G@qv<&g1^LJ*!ZFw!Lj$VKP1c2Wz`JEG z63L=S66a+82J}M2QZ4O~FmcjR1inUPo&u7xVJyXinVj$w-NfE7vsCa%5k3VJ{LJbuG+V<4$~>=M2&#_*$?$mvlnkHFtuqxCZT+6R@mrbzNev^c3N~(vYluF| z!v|iX71M&eB-`>>PCHd}9HOK)`YL4mxi-B{z?m;5gM2P|{=P%7`IoetX`8?)dG`V$ zx1zrNl65S$s3T{^6`SNgH3cGCe68ZK;T@0OaoWrv&l}1FEkW3JaTU(*ckfzpmnNFuQ)SJKXQ@%s` zh6AhhjZuOhzYnW39g;dlz;Na3Io@9Te`ctsz&csDVVf*CfYfu{(8$F(ESFrFER6fK zK1k;VcSMurtYhwk)TKJHFXop15d^s7{=4LL3Zt{4qRj{&6vm|QHD~}vJhuJ9C&DBw zBj!g&i^o?NzO)F-&>_(>J`^;I~^%PA9vG|RpE8QNMqi$6b!p|x&uD6jzC zwVc0%)#%?)(xGg1zf3KVE%^L`l)RMB4$gOH`$mx(@A3NyPv7!5;4gK$M)K2q9YOo& zzsvoyhYL_Zy}S~$)4p;v_zUaxiNHkC%F)@K<@m(On*F_(-Vg z8pSd!1T*l`On04MQXm|m=E z00*x~;>s6aXU>SLIBLv1hpZWN(?_bkPzR|--YrGFPD{%y?n4zCyq!$M){vU)4H^Pj z5*|`8Od@UxR!i<%Y~oaM5W^x(F8D2Y7#r#M%T)yGCzN~uRr&D!-~pu{2W1ZcE`0lJ zN+QB{8FO9ln&oDwz`KH09Mazt*L^->zOuy5*D^3}b;27Y(JOE5=lp>=RhiVpI8WP< zR~l?%xx3cY&5p4<+5o9}Xn8wwy+$fMYs{OMsV~y}LxE}8SjzSYnGDy8lFv}o5_G1F z?DYtNe;^Ec8E0_G)Kte}sA{H~Wujn&T;$RvuXfEnqubX}qlGS>EbQ6&@YU05$&#wK ztTwa}`3#ho^)E0)s@x~F?8TOoHdwi5=ZvSqnRq$#tAwlv>j-kq@iU1R^!&6uqSKHJ zq=H;AMqON)@8ieM1gqxfs&YbmK;Z(-{&eqU$>mK<>$JJ!;<;##!qWJQrOh+8pUKJ{ z0I9-&tQ&?~xyT0W+{h?e6(H*&Cc*)zqy9B_h{GVixv+R`^Sh}1chH%0Jdw(i-Q17z zz@*k~gHd?Ew>kt7H~F>^#b2WaSN3Epj|3&G)6kry-i@iFnslvsI`Qi2WOI{SSk%NW zg^#afok$>%DM~n4oM|@(L5g)A*(y70c^+cIOxgpx-8oV6I7@ndu)c!H6{=h+#B9^DjDYu?|O zL8y?1*`bJD7p+gWNL8Ya^n0!5ZKhz4Q!Iq{3n;B_^*Ea*_*rVg-pn z+Ko8@ZNZ?0rX0Q)d%ypDq-Iju{(5U~p2eN}XDqY%N|WVTbhIg2+e~~ATA15!Uq{B$ zTBbn5-V6fYIQxusEzA;xiTUJ}^@M3iT8vXo*g|*y<36;n5As}-CVWnpE6juJxRTRX^owh$Xo}iFwg4&rGNS)L z?h-@>S#dgBt&H&&zq)m$UB}g!i?>-{pS-0KT=*&_>!jG(w2^c^uCodJ#-J|$RmePr z4W^yfg(`u&%5eU{V6HirBfEVl6aA9eNi?Sd=-SrCI@X5G2&>lYx^;`DUjP^eyUz*f zMb9y&cL~{psUMi>#Y`^?&$Qbk5A4~VBCtBV3i#-D;>{b5al~zpoL3o^h;J1GkW#3= zys%r}`dID*|M#}x<3_9%;w@T7pDqJCCwkG;N&e@Sl%m>)(Y{M)ukKVjgoHr%?!~5(YT;MNh4)LaNO2f%)Iw?yWBw{QnPxc!Y-O= z$zRhXBg z!4S$B^4tK-^-h%I!bV^E(eTRa_sN+l-e{=ZgH+;vTET6)v5AU;BJ*JAKm4q>j@nnc z3>mGw)-(HmQz!@fS~4mZeX9o%c@?UH{_ll@8@j7MUZmJ(0>t{U>y@U;k4GPyXE!QN z{jm)OcCYolaQc!J>st+V@3PHv?p(JzepZDty;JI2QMLj#<+?BVKkusTv$Sl!N^+pS zBv+C;r0D00ClqWt8|~o<2JknwCl8vw48)8C-{{|ge!t{bdli;8j$3zJ`M#GaEoZvh zCeG-*M~HK{VElvfIFLpSOddhhcFZ($@owj<3GuckQd{Lq@m6IgwGzfe4=R)i1{Nml zwtM?Lx>=~vtwHhJT@CLc;cm!U8=*bn#$W0jJmP=TMZnfFS1hNv^;*gP%4_L|oU=*O zx=)O`H?iQ7HLA-8yoxxv+rF&lJg@x!@=Nbk077iU;2h=ua_qr+2RvNg8@n-<79EPd z?9LVk#9V5nluN|Z`Px*8}Ncu=yp7@y!FCW{dyw*en1Roc$UzCiqt@=i@by zQa`O4>E9t27M>I!p5`O@Anez}2L^Fa_j@2{2x~PEqWtIoKP>z2A|_yg0aoTN|96Pw zCQu!CF6#yPp{M`(84lf zfa(nPPTwc{chNKeh$pB<c0|?W6cE9^anC*u=pgEvA z!$1b!Llyn=)9PRqI$c@#n-2ad--|7vy3@e70seNDhdU z!~gli)N(vf_V1y!k~xSJiOd!&x}u*-N&{gcXiW+bCi=R3D~a|Wg8;fdB?qY0mHpV0 zg9(C1kOKNTInKFKVfeMqa|yG?S6ggtZQtm}2g)KD8FQtB8H;BQvP=+LIuyvjLe=PbDi5j)SgIcH5hFD+g~`=hg746QFN zmPx{Z81-1;%b|18b#^PiBZ@Mi0Cr{P-`oITedV%R+Rm_K(6*aGYs)zV5zf&HqiMCwMe`adQih*;$E&mBm0ikj=|J=c)>gtuN26nsVFjACX zRj%?pj0B}-{rjNQdwIY+_#xNp7xwSjdTJ{^K!MGRfLqx4uE^r=#gfau!bsyC`eJcoa$Nzdq4&urTX#L%nY@)hlJXSA6zyFt$kbFWo&Y5GJwVG zZ_7I%{(Bu2wFUIxQgKGG+|OPFf>A6v$nhYCG#a`PMV~jTmk`U)4mj zpGyFJ3+NcrKZg7Q1KgkxIfxw5h6N?ISlo zMPF}w;EDCwff+P+Am=c=CZCd+DAG@M^^M(&&+jw!_C^+J-!ghVivCz;DO~_|t;;Cu z0M134-Bl0P&&exKN=j01z94sDG;Tk~*wWb1&?!4Fr+Rd0nZME9d57bSq$FP{7+5*} zvWc5d$g?8^Yk0h!Oy5CxWr8?mZFbQ$y0&VQH}M>FDfRP_<0>xe_&vje^Q-_Zj5ISe zjDlkN<#ODoNj>fcBj2gFX;zW^zg=r^pAZ1fWlYW($X*k%vsD1PV2nX{*loE#k)U9C?`_rl;W`Ogw}crV9K|C*S9wKO0?!QL@! zcZ=>&_pr0c`1W95kIQ&%EhR-df=#;3<++l_HM-y%Y`14ZNMQUZ;#jfw>o}i_fi5mE zI?^zZCIrYb@%sO1@4Ld9+PZcD>7XErfG9;!X%ZCaB~(F?qVyUYq7>;hKmh4or6|29 zQiMqFM0%6nYv{cb2n3Rx6}Rqh@9+OF&&_$B!&OM;nsv-E#~AZ{$J%@<5ifK73BI1| zaOEx9qeKH2J?{pXdw=$9bR?kfSH<(@?`BOK{4|=7%C9GbsaXXzH}uOIO;ep0XFASY!E!cw4X<+I^b16dMc2W!-)G54@2PQ&_IM6$WcYb@cHRQ8i2(=q zplo1e`n}x~mFAO@O{3=@uFASxOTq_OuobJtuW#mUO4%TSwlqst^h34Yex+P>4WbPi zJQI>CVy5`SlXBsRees#*HZM;bO`puXquy_&n?o=%*MvX%;MO~jhgvQ%Ve`#uC-@KO z21IW$=MI$9 z&?wW5xdct0D$=qOyRAR_?bm*bwglE7NA&rHUWof~qGt%)yIxZqPs*{(!16#2Z0g#t zku1SPjcR`FZDj@H(3#a=#AUW>juY^}0TwCWD;-}N8LI?!B??bOri$BGOmcj;Zf}sP zly3d&JjmO~9xYhgzBrk6`*wSv(qC{L;JD$yv=Tq7O1=gLwRTKt+vVpBy&xiZJt3TS zjbIpb8B*(DXz&b#d$oAP1m#3v@WmDo^s+N;4O+ zhnrw)zKySo$AUvcWA%-#4?B-zW8-L{r*5_aJ4hDY#q0GeX^#8V&uge0Whp=2NAZ6J z_rRwA#NdL7V2sxor0K3jFL!#a(p06ePR=9yhx;Hx0!k+q0Veh1yo*^G@_=jk#G16^ zViu6nw6AB>t-QNiP|9KMg+YexLC0d59WLSlw)mw6UFRVX8frlqtaswnl|H0@&#f8E zJojwG$~XHXGPyh6HJ{s*@4unHp?+&~c;4L)Xpp0l z%B1eGMNs6Ga$eoo!_L&&7ie1pvEJF?VV9Flc4RRawx>*a44LO8;VQ)hl272K1oLbw zL|?`46+Je-3riUqe#k-y_58>9ZC3%r-qZ2Dj?DX;1z^%jX-a&{QkfRFYVro84wO@+ zX2B7Co76$tLO*JD{61*sW*@>1XJQN;d5|XnVjs=V`1Vup7UWrC-K3?8rvz{(9jA2) zS?;Lwmc>r4+i#s-hpyK~)!g&ZW3K4C1o~)!@ZM)s!k^{-8bZY%3u|1Kv;7{P-k6n!-<*AkR(EEpR_UCX@ z+KMTsDZtPJ8h`Qt?4ePT5rjBMk08Y~Q@C{|jvDyL&?}>Co+hdjGz; zyMed8Zh4ztmC8d8cz(b9e^``(sILrw7uMG8nm ze>|X(y_Q{i+lr*KGF=ScP2t%sHyVz!c0R%Az88fm7?-76_SV(>@xC}@C{kaC zs*?>%HDl%&9IhuPw?udGtv*^c>bx-ZuS10S0bmx!s9r{ZJ|$R$iNzV?0t$p41RTUd zMR2cyclp&Pw@@88;T(Tb0uELPKdo7$c77(kx%a2&@2f&@ zK_CM0LejUc?k7j@@|hvnC##jVaQBxnf7Y0r9WV^{x~OD;Ai*7fIe}pdkI&E#Gb7?B zcbi5v!hHXJ}a+#m`=5^O+UfVC?R~&&odn@Xu$xxH=8tf!u&sAyQQM3Xtp9kJuq^3HZUk)D6B0^Q($=ukqmhuRngW)P?GaZ5emA{JtShNuSiKKchAnfwz(LcJ9g9SJgKRms(@}FA&{)rekqp5s4c>iY< zpq+sJq%D?X|L^L6XfOdAN2H_iA7AZHncr7tWSIZhzJLEj1PCHYn!|(t5_Le@?hw$Q zjRL*@La+bY5OO3y*DnyoYX3t4{@y9?2|+@Zm%g(9-Z=!hXCQQ)C_4$baQQRP-@7ZC z78q~45Dn^oL4Ohf6HO|&`1j8FyI$WHgz*L%rqTU(bws|Tgsv0uef<;2`p+)rJ_C&R z&QB7r|LOuTGyila|Go47-(ISP8#772C%r#f4g!H(jtu3L=MbTKVQ&8AW$UWQFVXx5 zM30E{agdLb@*9^ja|?@4xJJ>COPFe5euJaJO~pt;9UdwUszJQ6n zz5gI3eJ21{4sq4;3IRv>ADJV3R3!%F_~J+ID$2iqy2m~9N!;yN<#QtiVFK?Ef`aq5 z#6t+{$m7 z#S6 z(MtmR1z>%4c63}mp}ILsc>rxiS8ulMemML&PiL%auDqgbWt^Cdup0wha>H-%9=^^_ zo2BsAqRrscw!%_Zr|~bH`T|l?oms=f22bVdE3_@GY|&POh8h}&S0S0TnT>*&NwpS55N@LRt12TasR6q94zw;HZblpI@~43jz5ZgcIL=owiS zn=SxkF7j$yY{HJ&-0{!KFnO)+WRU@C>OG2X`#dIWs~M%A{kPWXwaLC^hL6VO+o;^F zmyG7-Pm5df3cbp$;6o4_N+8#G#{--0Z!CvxXVBw;&Us$e*ZX)GFrLjP=q;60LwWC% z+S60*`s_Q?Oww)(6}7I|%ka9L@O*=+qcTDJnVmC%R!?i7}qNrrjIo2fT=;9FALtpwf9{ECV;nHv3#>Zua~ zxpm91nvZtz!IUl#Oz6o6fGys*aT+~iA@f1SnvL_Mz$-{AV=GjSy7a{&S4aCylmaFX zx4;*}FKbHg`3&jk1B}5$uR8NY03++#_)!mTur$wGL=z8!D*a#s0uhDP`tU1VtF7kj z%8U!uF&3LhHh= zk7fY3rp`N}Q@!c_uT$@d4(U;zFyF(CzvxWu4>)plWQTj5LJH3WMHxCD#LVmt?@})V z@1w$TD8LT)961HdGH?&P-U6`M4$G{ERC5LbF(h^y3$J024HCGOfi%~F`qO2}vWD6X zQ`4zNHt0=OW78QtK!JZSUMA*~}XW-O4^VX0sWvhq#wC5ombi zZ(+Mjd1Y?(((9;W+(H<9gKpdVRVrrxni!9OnK(Xcz{SO7jOmS%#|bvd22*nRB!D#t zaGAjAuP=%@ho1d)YDU`w;=&@f2zbxHi9biFYOn>MKNdnQEX*fv(^&|jzN62&!l}$O zLgs-eKqZHawKJQU*?MJ{E8J|+Y;=t6PO@!B$aFP6&D2p|uxIr?NMU4?ZNk0S;#18Q zwPMuxP~bf&w}p>aB|Rn+Jn<4+`3Q?HKBUD<%1T?yH)S$go5K?OldO4;0O@iZ0P|Tt z(AA~?vG)__He*LA3|VHwyD;tT9rEM7Lc+usck@=U{mT1|R#>jxiq2Md%*L@$o$KU< zQ-Bmbp1Y`)KL)?~yulkylIN4+Fl_NKaqT>bE1B(nX-k&f1`D{Xn~P%lcxS-(`C_s@ zSRcy1+>?B@z;&ykc}6BhHh*|f#l1Pv*m$$4UHIwgo|0M($Psjy%c!O}MI5o75fr2E zam#O&EwJDQmvSB}YnG1QI0Jj<&sFV47pg4)1nfVui|3&*oe%ae#uRsR5j!Q(a$j!U zVy82LLRH*gdp`}e1?x@Orr=xbDRxxBUGTH}}yYP_iSykDi7z`r6mbs-TG~vr+C{&pxCE_n5gnnzu#vkueXU3K5 zDEFkm_8y%a=Yibh%hos+ViN`H1){uMU0vy)2Sue&EZx;iQG{H4$nVMRW zU|d|>@DqP6?`r9}j`Fx2{a{2*k9IDfH3HgRZha!^R(JiBzeA0J(ag%3*lX!DfCFcq zG`if{smjp@TicL083;;sBd+y+8`Mpc?6>pbyxd6KY+Bkau!%9&w9-1n3t^E8 zjVuqm>!*rJm2{k*_SjZ5-abBbt<3IOix|^KZqOz%7Qu`B)_U|O5XA&c4adD^rN9eR zC>|9^AdO7f_9SD=jr2Ub1BV_o`{g&@`8n;f7|$>Q?q8c&s!KaE=o>rOdE5-TYp8wI zFK?uvvK*?W%GK7>Nhe^g^V*TiXN{F7HZ4EDQD;XZT+n2r$7*Exa^lj)b41|M%dMnO zoPN)uSUsI!*+*%#l%{n(OK{gwIMTB@#q9_u)J+FIx#KprSigPXy}0PTo^fIZ?Q%S{ z=-CjXUQLm(TQT^!uP-WV9ud)XINh2`HVbNurafz!i`?l>1s_PjOU8t=kOCOv2`}l* ztWz&WsX_4!(XKGM;fFcY=ud8~VxUZV+8eg89ebWrbe@=5A%)oF)yMbd(DQ%Uj&e^3 zbg-L#4)0Ae%lTj0=zDxS@U&fdSI4uYhcePv{<#;{3QoOqKTur^u$`#5)1+U9sJp9f zLlE71?&pg6n$&hWInquosc`YB&^wfO0g@oZmTq={!H*%LORz(C$gBMfs{&;e>847` zg-Qon5Wo20H zk@nbeO2fK0W}Jr(u9rb}gdC~H`um?jSEdgHo1)z6a7^-^4<_50IW%{s1etY@G^g!r z@lSiA>d)j09mLA&i7>WQZ>N+#J~@1|=k`qUDw3sV*HX(mxj>*gzRo80)g^7Rj_TEVR13g=$wY;vE#=>lj%zwjuLp+n zhHyJj?gX{%%i7QcGIR~(fd)yR zdUxxaMbFBSvnsO%2W*{HrdW{-tez82<)kdKDKLEe*Rvt z?V%>aQAnLNF}{mWIk58OUX5afO>lU@X2Ze*jrO+ls;v7O%-gP z4&m76(x2j8BjsOewORs!Mjo(&!0e=-6b={V!3)#gx>-@<0_d5#l|VlLqt+(YJ~_rj z`kC*L|FS&WWT{|7<}(L6;H8M!x$woU?i2*Ge{KV++6Gdbfp&_XJKKjg%_?owRVhx*x8MU{>3VcWdj_gmYwzCUZv zcq0C8CCYYLhCyy<)BMyO`^7@B%8&Ny$YdI4V?ayZdgrUp*D1}#+Yh}(+!BJ;m{v|7 z!1$e)iv5mYTIWyImjxf+{&Ikjt}s)!Cya10;|;IuY-O*VyVtK2fzW3DDGzIJILWO(#kC52hQ+VuXHr5E8^ zm*o>xELH9JJ?1Kwr}Emx(}WK7=-fvv9wmwn$>6ul5%nX|8?|?sJ!1yEN1NSBA^Hbb zxqrl_va=XuIIbA_nWBSpH~16e@|*NEdKJ}IS#s~E)!7^`8KW0cDJOI%efG7kwBf@rIJ(FgWkd-^VQoviHS=n63rbP&uv<3Og(_~sJF*)WWn+SjC6=DQ-izip zF`*NodP>!S#IK&|u>wEWJanDQ(&oDe%hQMAr`VBnEx`eTPt28~g>*X_Um3wvk0T&I z8NTiMX)7FXx^E;GQnTc~X#fabHR3ZkExcUHn}Ah)jN*v(Zjis-;9XG`Rg{+T_UvZF zRwe$!a#<%)W??R`r>R%e(u1A{0nx8OXiBnx_Pp0AL3=}%#CdTbD#zT?&BfRH7XveH z>DbvjLY2#)PHkdrW}qlULg-;TGxwQD zvpn&I{DknEWN)0_7b>>4h(+WyMo=5|KjN2eDjzcQ+;N6`*}+vxcpk{TyO0Viy|q(4 z5=Pv@syY|->u~n9ze!(riabhW?%qC6#2Nm264XNVAr=TV7+M5+6Hq0p<|O?Vii5^E zL9f(e+7rL|c{0Rw48>7MbjsuwPqMm{>(pnnZeAX$;8?c;%>DrbI~|ulYy>lxZnEGtmuKZ z@_a*MKu$trY}z{0B6fnC7AEa>7x0oqaSNGrM^!r#hja+ogfMm%QAe)xLmHdQ4mm*x9%>zVpq4lW<*N$O)b4~R}dm(7VWNqf+@ zg9ScVsneZ^= zsD@@`#c6%lT4l(kvHN*e_|D7hou`A~2zBMFiYo|KGHy)s{8&DV=Qk7S-8-66am0PShtJBxDM`6f#qMIG$4kiGu&Ttwrdq#qu7+u) zbz&vQ>JsWl(wUz)ZP@qR$FCH3`9@%}vCjGD;6;EwfwUEL#4l>+`%P_O^>0g4*)4v; zZ$)hfc#uhIkfEQw`5`_NND`0|w)qUwq1oaCK)kEcpF9{Xh#?9Y*Z$h`spgRGje$jv z?5^ry^7&MemRPd^dB@L`B)V99PLhiTCW#xrIXvmq*MJ2Ae> z=^V%rsX97mVjcgTg`DDgDBKQnV5NWJnPjJ^Ru(i2e%&K`9Bc&`R>1M{m?#L2qP^PZiwe05XO7$hXeV_MszO-Gy>rU1@=e|;n zss!ro+KuCW$sQzbDRoLMk=6gOmMuYWcWPTbZgL+#coQr9xm__Y^ng!@dHAs_sA$+u z-yEM@jTzAg9oiUq$+b}FCg}sb$xlN%<#H)6LMj0w-)IEUm#4aZ&UyOo={2=ac`Iyd znbZ9E7QOU8x((7@U@k+69qM~;dI+xpN1ZVRW7Z*hIkuKX(^y1UY5*xX0@VS88pP;h6+}4uIK0$|h zX~``v@gRxptk6S-E<$(;JGG5tcFT?Q>%XeNQ|+pRKfr@p#P)}>bopb>eHZd?wX%LI zJtx_Eu)p$(>P^Vg{IWE2*7EJs`gP%w04*Gamq}=DZ&4&)!BPEJhzDYtdS2%$5sTU& zXmKOe4uofj5;CZ5ID1WSZ$5F!n4B%2(r$OpyxO5zpLU0l>hAVl8yzE7Qm<3U@_swO z#}prwjkb&b3PC4@i)cb4NLlWYmkO1!8pl$ROe;6@LF%2=!UoJS^tTz3w>^@0dsK7r_|ujGY=N8 zn=zINas>}Z>pL~Z6Y3<&?Mrd5D4LV2DtG_<#Zzk_iL+yjPOQCJ%Se>qcg^z*{g9GQ?;jAsT5_ewzf z^j=*y5v=FU&=<)g4AYMqOAQCULLm_95uM#1Jf;dK4_+Z~{f@IHl4g(>=GI!I{^6W! zsr>>k1bPh|oV(T?vv>k7Y|ZKi*BtR=Jo&`RbQiK$V^!B|_lgjH#SX!dv~19!xZW!` zOoYCISsg~$M7!3n)icGMSz_)Ti}S%jx@yKW2vXHM@HmU^N|wY?Cj=+JEEcoQE;4n( zcTS?2OUOx921RB@c8*_0*N>pgXY@!f%IhIV8C>$56zv~9^%e@8CS(iq`Nia5e>_Gk zw5rN6JYYdFZTr0(huxKL?CkC;Vg%`qvEoC_{mFfSJCpu!AJThM0KMM8^;Y;pw&8@1 zJBen(ql!7$484!3>&oMp{klw>`GYID9cZT@Ev(zTPv`=W`4HRsT?vUtflp(Zyb{kh z74209Eg9#582UR_^*(&R+&zCq_A~_MbWX+zcVyK@Q$Tqp1V;kWyZK1cn>#F9%uPwu~BIKAP-=miOknY&v<+jnx+h@hRBTSW1gRuO5p+{J1w34g- zM*uf2a_JJnYklg;=(}02J30}IM@L?|`WaozycZQvsWzoYQ283cLHB%rE3BVQ zq!YFXHaa{#A-7#N9cKV28D-j?KM0{?ZV<6<+Q|IPL@Oq$etQdEgA=zq| zaeE@(G7Rnk?tjglwh$0$JAUJxXP)R}q2xWkJ-v*_t)V@t;dgHY6!R;{A0OLWhXCWejMpDfi_l&ura>hhI9ni$hU6{c%j7c)+21%z?)N^qaQ;&h z+t_^>=doybM(Tfz?jJuSy0EP#AC6*SM zbv=Ass;WlP{_6ps%X>gnKg$y14d0-5klDPGCO2pmK^NG^fk%Wm!t!Y+&SjdQLAJX9K z1d|L^Nqfa|)NF!7O_;R4M@FK-xrX1}-+b49BE>1>X`U`6!PS~2P0UETwz6?fH(A?T=np&{ z0K8(PCCRzG#x;e{{In)%#08^m2N5=PHTks1eBuw@{`d`1U?0W_2tF2h(eSq7>hFv8 zc1?~jlj((2ZVyUdDK4Rn5eJ*W9)#g1=#g63J+oU&-GbeHIT}7YIGxmbQWQi@3CP`Z z0;0?3k0=!)4hA63HDEcvSX@+ig$Gx zC2bLhTb-3=ZFvxO6h1F?;|3i*Vh?k$4^Q>No+E(na^%w*<9%)3Y{JLck(l0W@fo>W;LW96}%z8|L$C+GHq|(h(geVMdRh)(z>zD%&h z0n6h#sV#pAAS+F@HR(bUkjAgjA!@w6tLuK*R$nSN;Xb;EDqZT=)rL?dX^B98bEp2s z#&K9(!u|5txQo@%NtOeadDyU_ChXY8PR7HvpvQth4i9H}DcL@KhBirC#pm-xuiOJ@ zXs8>R`8zsWxD(b3L`ScKQ>EJ*OJA3kih5ag{g8l*hz6|3$H!t0EYnD!$HpvhQy>AW#Ml;Te5U?X{Q3vgf2c#@Uhqm zx-Jpx{S|eE3ir(6NZUi>X3_oy^rrbWmFCjlqEjv}=ZETqmrpQ3Y|1;GorgEqKQb{g z8s^jVo?X|QxIhPfGBEW)`uyettS%Hk-_!Vo5N1vUIP(=Ihij$xPJkr0W%DOfXO=&# z^z`(U1NlfM=IM|YKo&)`JyM{6;#@EkxIiO@q8rtRC;J)74_Z3oQ=lDY?zq>T`@Px$ zpKK?N-$tz$+ePR@+*;0(ymj9iuLg&ojNN1_V@mbvFAy~;rjx}sjHGYfrotRMS|G)b z5A=`Oh6`#Awq3W2fx8jlf@a!rK-QXYH67hSx+k+(&@|xCp>Q_pnPz<_t58b11!e zjZQz_$|76rR70!mWb_=n)Kh@fUta2(|9w1x_r^B8OUP*yr zf+JSQ-gf|5g1RD;#TliCsI^nG^@P84q`)wR9O>7STE{ao!gtB0=6X2a;l{&yNN1-u zU(+swOp1^-2L(XrICTo36X(0kO7|D;E{B-$GtB*!$#T8NFon&Y3yC^vAHWL8sLv&R z)oeSmL&{hw#MDQhX+3r6^K(yO5Nh_8b{p+ZlCkBF2eIr+h!X$}azzZ3uMM`QzRJ(I z03m;Q%(b9}{%N$Jof&v?Qg(>kUsf!lNsz zQvL}xp&G~=Iws#F3ZV4`>AY-TzdoxR7nv&gyb#FcQV@UiKD*U~2$TR8tBKc#Z2p+d zEZd$rZ#-+ZB~hFOsp2NE<|asP%Oz7proND?T$y{T=c8@VAnsrAtzC8Th$H$qU<3HnEJ0>Eu7^xmp!U zNPzs3Ar8{Ntn$w^00^P#=fbNNd#*W$ooOx`_8O*b!cGQYV(;hXICid|G8V{A$js76 z!%WN$8~o~(Q92vj>sOJ0gN^N_nG+!sWGICmUM)#QVEpnSuJODv*y3A|AZf>|a8;7c zfxfZVgsehz;0bHBNhz65$Ajw?=1QXg&VQl`E2aHT%Dqj@1~)E)HJpx;$RdG$?J@mc zK8V-yE`wS-ld`&d&=C}ye)XF%bi;QhNF^tOE6cfW}rQfJ}in=2?#W<=+*P7~C6c69;n;F@oYXVR zx(!U*Wz9FIy+t)ED)*gJh6;E}%38L3qo_L^@?Y+*go>QK(nLcz7hbE%4ef5%LL+j7 zlBpY#(UW_h2ELLj{wQjuQM4DYjjxdQUMun1X=jqZi`Y^=Tu?@C`azV5#43A%EKYg` zYKCUsiv?gHaqM9)cKwV7dOnF`j=J|gLO zH&XSpqdI<6e;T`Yokj+MP1m{&X)rua4!ty5X$7yHS3X!cfbCj~tp;VYSS2Pnpo6Z=&nx0j9c##=-IJA3 zN_lo-paEqI2cYXo=#y!;`jN#eqxOKf*xg= z;s8Pk^5Xqy^*EKtVL?y{1%5flW%e|}JfVZ1+GceM%bC6^S4QSA)F2}C6vKImLf&}XE=JFfx zNVp?^llQ!KR1o%}L|W2O(ngXNYI|n(xyzTWT>TjYQqNrj8p(P_2kX5ZMKKiyYq*@4 zNTHGA6vz=NV=niOhPqn+fx?HNDgHG%brP?olGl1OL%Rn@IawuVZV59Zb+~tM2kQ;T zbXO!VV~TcHTV>v-iC$bwTs=?Lu?}|KeShmPJ4njrfv?uU=rh@Z`Y__@)iDV+f({Hl zzk@g{!JksNH0M6N)%Vi!j>$;($Jd6jVsQWW&oVQsp99E5_A}pfkfozC*nM_T=?2Z! zr#zT7Lo=fnBEq4MySiJaj zIsQ8qhCe8u9jAT=c3-j%rq$X-sG`)4EDfuUv|K~97w7VJl9b@2m3tGV)+yoC4@8*9 zV=R#4!f**A6WeGZz2&ZWvU(7kLh@TUIXo+d`%DgvTns~TL~c%xHn>#X(7ajHmh@O>)vZW-RWlGbYDaF zMy@-l)oO<7ME5;wE^0mu(}&RJ5K&Lr?tS-GrqgjN#i^oN(aP{@uW*~q&HA?VIbX}m z<&iz@UAwqNGWn~r%#C21k+W2Hu1Px~Wzu<`I=K~p72wI0dvq=|+h7%2Hd(TrQW8oPbYQ8T<>B%#lv2QT9QH5&bIs8r$gW>e5wd8AtBg3Rgu*PG20KVXeJY&3bcZnxk3R&-ss2geod&SaQl)-FmuE;jE^cjQ7?G_K@E?nB+6$$b zei-4@(|2rZYWn#5kn`>+i7c%{rW%gqxMJvtGJL1g>T zgA^`}FG0WlfPJgKq(5{j3Yxy#s87qY-{42>K2nK_zCFK*2A|X2A9BquG&qnEN`QB(a=-K3)!pt^2%gwM4YqyjsD~J&`Wt)KK^CWM*yBkIu-V) zZ8iR*UMd7SYiL|-sqB=qW3n=Itb0)_FbMGLo=y;w%^|U__>LtHlwXUq2_bor!DYL# z_W_MwSEy0gMff!3eBL+a8l{+)tTmjGpna&yoi@82e7UPwwGHbdX1UfPZv5B#i5a)3 zQB)WP&`()@#<$>1y6n`O#5HBO_wz9K@@^>egz#L7kY3b&H1#xY9o!i8CyR!`=% zX$qTGDeyAn32`S~n$1^i)nE5hA z5_N{pOZQbW@s)M=x2GX41K~2FkkS($Tt8d=fP#}OOA?Ld2U@9H88CF5spG79{4t(KC!I} zo$|Vqk!%IKIuMx}gpP-OMHCcB1u&nio`|hh+tzumWw7qh5t9s2H6eZ7Ht|pGP&l_u znEg^$-&#WQr`|*T+n?|+f{6&@9TcGFtdd&u#tovb%KKw0Y8Dubo8~i5CgLca3lBW` zI-k|4+N1E9i;qr1Xyje^yu>ttr|8{Me0uTHH>0k}`4FnP$475lb!rX9y>n491b*iD zZtEMAxv)`9-J|)d0PxjcB`G&dH)@n=qmbTwDw*jpgvc3IxV`(OUBu-A}B>k@NcL!eptqDZQ|GP1*0-s*U zn{6G9zq|VDLlMwgTr0=F8{+|17F6!ack|yPHY835cRnWw_&>Vw|EKrYZ2bS}CG2z` zx&KSjt7-a{V$$po{?xr8^vXYRdToivbf^Bq3j#3k_mjO$A?iFrv z13KCF4Ho>c*sz8{b*c)97tFTK%2M?Cp-%#2!7@8hArCf}jY5)Lo6&zb1moS+Mb5Qe zkTw$RPt;#tT^g`4D)Yt9Z7l4b@l^JaD4WL>wjbH>^W z=ksbp%M!b?u$f4w_{Kw1#G)q-DTN=1yA35dp!o)d