From 3040bcbe43345e3e06be46f68feebe1d800816aa Mon Sep 17 00:00:00 2001 From: kyleambrosetti <39808937-kyleambrosetti@users.noreply.replit.com> Date: Mon, 22 Dec 2025 06:54:50 +0000 Subject: [PATCH 001/348] Extracted stack files From 43e7574d3c65172a3a22aaefd556eb8f87011753 Mon Sep 17 00:00:00 2001 From: kyleambrosetti <39808937-kyleambrosetti@users.noreply.replit.com> Date: Mon, 22 Dec 2025 12:24:10 +0000 Subject: [PATCH 002/348] Published your App Replit-Commit-Author: Deployment Replit-Commit-Session-Id: c733e69f-785c-44f1-bc13-0755396d01ff Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: b3e93182-987f-401a-893e-b7c9170288f2 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/5ca336ca-61a6-46f1-b3c1-ec79abf0354a/c733e69f-785c-44f1-bc13-0755396d01ff/jyY04N4 Replit-Commit-Deployment-Build-Id: 3d000035-e47e-4582-ba55-712ece3de78e Replit-Helium-Checkpoint-Created: true From 0c17bd3e0b737783970f7e3ba73698357da62f9a Mon Sep 17 00:00:00 2001 From: kyleambrosetti <39808937-kyleambrosetti@users.noreply.replit.com> Date: Mon, 22 Dec 2025 22:25:53 +0000 Subject: [PATCH 003/348] Implement user authentication, dashboard, and admin functionalities Integrates user authentication with login/signup, adds dashboard and admin pages, and enhances the support system with network status and ticket management. Replit-Commit-Author: Agent Replit-Commit-Session-Id: c733e69f-785c-44f1-bc13-0755396d01ff Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 2cd45f39-042e-408f-912d-aeee3794c5aa Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/5ca336ca-61a6-46f1-b3c1-ec79abf0354a/c733e69f-785c-44f1-bc13-0755396d01ff/vBuWmwT Replit-Helium-Checkpoint-Created: true --- .replit | 4 + client/public/opengraph.jpg | Bin 71603 -> 71579 bytes client/src/App.tsx | 22 +- client/src/components/layout.tsx | 41 ++-- client/src/hooks/use-user.tsx | 108 ++++++++++ client/src/lib/mock-db.ts | 198 ++++++++++++++++++ client/src/pages/admin.tsx | 114 +++++++++++ client/src/pages/auth.tsx | 101 ++++++---- client/src/pages/dashboard.tsx | 333 +++++++++++++++++++++++++++++++ client/src/pages/support.tsx | 49 ++++- 10 files changed, 899 insertions(+), 71 deletions(-) create mode 100644 client/src/hooks/use-user.tsx create mode 100644 client/src/lib/mock-db.ts create mode 100644 client/src/pages/admin.tsx create mode 100644 client/src/pages/dashboard.tsx diff --git a/.replit b/.replit index ba2ecd0..9d0e9a9 100644 --- a/.replit +++ b/.replit @@ -9,6 +9,10 @@ channel = "stable-24_05" localPort = 5000 externalPort = 80 +[[ports]] +localPort = 5001 +externalPort = 3000 + [env] PORT = "5000" diff --git a/client/public/opengraph.jpg b/client/public/opengraph.jpg index cc390af8b1ec3ad8fbe4b78a9592c464446e852a..883c7b490a1cdcf745415f19f4b15746963a822b 100644 GIT binary patch delta 68615 zcmafacT`hd^Db2&2qF-A?+HbEMRWar1uhf=)p#j5(Mc@P~<}6>OjY7(FHkCeOY?r`mfOKUk6_UcAoCG zBc1LxeNyer`}uAR8KKkgp8MX@kFZ!(k$(te3V)IR{w^ z?0MVW|H=}ZA-7aRR?3|Rf}m{nIq(fs;Jlh)`_TIOEtjPW(T1^HsnpLnuQA)rgV3Yl(WR{s9qAr_i85|9cm4cW^!FqWs9@RX2^N_fpaV*Qoe4UI5$7N0|(- z$&sF6kBQ6dD+f90eOm8Oornaa@ec+0O5W5pGc}hKc;?|n=3q6^L*lQem^o`aadc1g zl7e#AG9t}Z*eY>TJ}zx&|LdVZYe50pw=w_ag$;X>SWug6*X!b#S24;i8}{PEtnpK0 zR(cLx0!$4~x4%7R{I1LA*OWx+;hTFY$+(NWbwk;zW$@?A?i-scE9fF{7e=?<$Ga-z zH;1DybMeP}S{=V;UCQ{qB5rS$`dxW=yf4z{C%Gf-cUHTS|BdbLUQ7L{m5*!gZ;|*5 zviK7g108}&^zd`9&6`rUQB@OqZ|k#j{MDFaJEw?GTb#C3DYvfJ2f~y!bVjaBrDHso zl(^2un3>-CRTo$I?xs9Shg{UgU2!Kl1x;2C=IO`Qpk zpqJKfzm}6jvZHAQvomPPk>4!Eln{20H@{;>$aB*x&_aXiI8CEKzwaLnk@XgO!}6i> z)VD0s;3K4VVQgVW$wD7~5lz`1mC>?Lto~X=KTz?>f6|-OtnlNhS^Qwj=5yNE%mbMT zqI)U=yles4$`2k43dw!Ao(QLCy%y|mWBIwi-|$TOv~`TbTuCI2Xpcs?3AOODj5Ypg zrH|hl#%Ce>fLxgHNj8w;9`f~=@AC7;Zl}((C6rKIMUMV${_Zvs8eerXlc;2P?pz$V z7CB_=gc_tmSXomRoxKUfFm1S|i#oQ7g%oLb5rocLrm)9}2{2nFzkw+;ZPQPrWrh@5 z80jXjS+9RqXFbO}xz|Ekz>?(BMD2Q;x%7wJ$6UF441I;WVknURCX#{q#F|Mk8RX5h zI7W$PebMXJ$RaR(XGZ4jk( z+UMTCgA|Q}oVtd!9LkBVip~+yy-E_#b(*qZ87}Zz%i>w+os3Lam%h2kurg+5tGI9b zq$is^?^afq;(}s<0`flpM)UkRnGi#-Vp?;Y3_oo`Q(gzrcvKbnxs_W}U-tcV*{uZ*=R@&hzJVa-jfC{pyL!(`#4UFdQ*3wm2y_o`RHET| z)L2HIr%%2X;5Kv&t;YoUCp@VFZ;7tT3|S4`r|tb&%Hou>Wa#F`oYgkBzLu7*9kYJa zC5BU5{Qcb!W6P+b2$V+Mo}blGR=5aY^bc1^+@U6Tnv-2d2_<^;x&4R|LP%(neTPbi zSI=_f9|FNkhC57*-yK{JT&kzNv~Pc8D(!Oq_-t`9WD(~vm;H=Ng1bJqO2ZUHRbAZm z>$jA2K*&eaii13xbUA!7etK6p{W>E16O|J3SGwgjb5I~@ul5gi$j4b}RkUivX(`se zNW4@h9|Zkj$w>iuYn9qkl6bqKARTR4RaN|^cPq6x9M2_0=9|3-TR%9^6uPoEu<~q^ z7MoA&8ehBqjkJ-1Wo7$)q;T#0fw#xTmhwLYd#BCzMb1uRW{j`a?=lUx82~&sgBX$K zn^Je5QUyg8@MdQ8?ktckkS?>fgzdH3Gd2wE3p7161XA(A0FV59pSK?PMa60~b;`A} zFSs<#tmR6{biLv`{|!^?{i_Aak!$ov&s3U7MoUA#dIL+o?LYZ@;-5e?Mb%xSC(_P;+{aNkET{X-YB6 zm+`aA*A|NB@{QqwhG|< zC#>l98{~@sTHQ&`A&}RJvNKBo8;g(wU&j&K>IfI}H z0(kSYaPTc*55JOo^FS&6Zi2pC!PGdz(voesikO`Jy_q26q!PZbCBilXC|jhI`eR*z z0`CfqYVL_}?X@O8yDkQX_9FjR>gBq)+|r`wcfPI|aj#!X_xDuZY#f|0;&HDms41TA zeM+#C`RsAe!tnbT9mL)}x!8Lxlmk&FmBZrCwY?8ouMJ@2_9y0Fw;KJsTY_9_UMwD- z3BQCsvRKD{>4=h0Pjr4sZsClwYL)J?9t$kQn%NqTh4LM#&7C8h+heG zK@SsW4LmF2XY|>R^!3$VHAJ#2-f1c~TwONOA=lzprEtu6$GTad$i#H6Qr+wm=SM;l z&K))tkIK#@7DqJorvt%DxZFvEqDJwfkX6*d%o4B42Lx*?JmpqKqrCy)hf{G1{bJn7izAE3L44eqR zmArm+j?o3RCV5q%nwd45QBQG%3k%e3UHzspfxCjFWF*Kz6@{dws1QtJ5{rS=W{CEP zo$kt~eIcvy6~$hIw~MMGmG~(-lJMJI;0E*%kjj$#in<{(@W-Bv@f+LA$PRg#>B0P^ z!Xs+}l9n2L(Lv06%)7n1`wv0D$fPSdgfX9Tjt~-l|5+9;^qu=$+a$IGi`N* zp+{W4gB3{={&6CbM3_!I=j*J~y;Z9EvwO8PhRKG?sWk<%(4R%q8J&}|ENNQ(7z19y zq4I}>CHc`DcVuk78S(MRX|J={8m{{5l-k_67vFSRXwTD4(irhxhfU>Ml7s}}mOz!3 zu+6wnNb86G#h&&jGoM}zv~G$!rTdHQJu_&LNMc(=>MmWMsZ31uJ%k*U>)|$Yd17ed zQIv^8IlvIZL}w-!mn=+-j!Nt3QH8leb+g|kt8Y|Z5MXFVe|*9?&1Fu$S|#-6AZV{T z^tPs}@6$V6YsVp>R0mEk8&o*hpE&2Ib6i>6bfc01N@plMUwBnwKQ+Ue=T2~^xzF=O z3~&{O+&fbiO`3E3`Qk3uE~a)`n_c_#t44(rpZt5@p_K2_Qh_YX2SGeXvd!SwL_)w8|T3<4nFAQ5xdtPve2#H&IJ~MHQf973L{VY>I@HMN4l0I?d z(punt>*Xq~tz^laO=i~DWJ6C^bkmA`tMgSOQt&jX+G?S)wlQ{a~@ zce1YQfy}(j&TrV8vJFgwhlgI3eH9~o_2RR0r{6kSrMEL|78pOQ(*nLf=T98dVRxOK zG1M2;EFUs9_vQpp?n%kZIyj6NVQxrh4L+Ii6x3 zG|1!;ry&!wS#u@v-C4Mw$U|$2DJ35VtyxIx-Kb;MA;H16E;FYSr@*;Eri8>IHg;jV z{GRvoerNur;B>x3+PXy6p--*fbSPUr)L7hoM(+g$k%7MbL+~(f3KcR4)Vz~$Z&}2c z*>SLx)VIiIHD`pAO=Sfv-gVIExD}$cx3MGxMftKP69mTDpL= zOsZq6Ckp|YTH!Gnp`#<|4oIDK`|>dA{5Ny$E^SIQzcg>p1G0G5?mMZ?G6+q@b5V=LGo}{K&3n75i5vN8d~+RNXGTmp zC8l4*?`$W^zGj;^4Dds&Y7PDzV$;z{|C+bb4+GM*9(W0-Y{k9FSBY-ygGC|7J|?`R)lu&hoFNxpiuCHI@(h4ZR(-}1SmgT=|G zM6lxsYx*GbLv{^Twr0=k^Xyh8CgkTQ^^ZIpC5|k&{&FzECI!4^s@Je|S_yGD=tLGuf+?m;inTbYOXqL*tud15!xsQGwt@bLE zU3MHLFsXNUEk=e*(p2>7BAYq4tfP3Il18`9C&FL|vpGGAn~|C=Zx^)#dRnCwA2*h! z9i)SF-Rg#e6gjmEa_i?Y(z?4i$)4dUT`vOan)ChVL@~X_?Hz(3oXfLU!`H#tk<7-( zJ4$_a7a=2C7fM@s+3%?p<^8CM^*QU&;7)ba5@1dlM^ z9WMn0-~1H2W09_IXZS=b!2(<0SxWAdi)7|Wl`_xvAa1e8HTt9kVjHDsD$8pd)3Tj% za>SD~j9@pThk9Z=6V?N!?vT)lY#n`O^KME0cGi-k^5EX!{*n%d7ByAEEPQ?|2V?Tu zX?qH~@WzCYzj~;!^^>!jTq`{A2b0s%Bf!do*`&D)e#t4^Qgu!7l`fT%}0FI)iIJ@OXp*z+#C%| zR1;T|uOl3q^0rmyS9;t^a*K>5LR9JeEVfS~ZRDQ~GJRpZB;lq!`I4T!&cK)bg#q~g zdEY?lRixi5rGM+2sm##(l#!bK$>H;2hlDGB1SrdvMWE*_S&x@vw}%u3ck=H~JxZsl-|Am=J^j!Z`-=A;0)@g~J}c!Bmm`hW#|}HH(qBWj zt|fjbTYRzW|Csp?L9yZQPRC8-KCtfAz0e z$D{8>tQVXYb06Q^FH?Nav--XI3irsTONE2?N5lHN(T|fg*DIy*do|+~Oa1 zIo^1Ej<+e>_doPJXa9foFdN)|Zv4dt`CnA3{|8m)e?b+R))(C$AG-ejzf~B#qx`Ax zl$uGL&!;5-Dt0PaW>WO z^oN1W+#)X2^(n`QNP1)4&x=R*;f%Cpq&>sja>nQ{`t_7*x+&ge_R$jPy z<<#2UrW=?toKUN z);!^d;M$Xfv2~ zc^{tbTD>l?bY_!V3jNE4iTBI-_#t@E-!^(zAHcOxL)F z+5X_!gD^bTmyo9he{9bH3wBs)mc*=8B>&_5pGaInknP@S@H(5^r}}@T=<)7v;Q=-7 zLt}Q3fAr$5tBCz;7Qv`BQ`T$uALCE;(O2%s8KB{GXx*6&>SZAUAJQtYR+z<~fY+O# zIO4~3oB#R^OFsM?hV;=kJk#BPmDnrgSIYH&f`i0ICuSRT3)DrK`{fU(FYlWkAXNX5 zCzL542r~H-m{NQU@qy9#6PRiSJhF)Dxj!^Fuv)2FRbA}3%>#_YyF~|@U9O}{<;&hF zuo&ap)9?xU#^Lp5kBM49@w_0Y>l-*X=&m!G2-oXGsiE<`9%n1a^6T4p>N5ZBkTp>% zDC*RBZ_3>0e=pPn|Lw3N!SsoE_UxEG)qcX8XrgM!`Gh1#s#H=(BL&qx5Ph*fUwTL+PhuQGd z9a|{8smsl4Jrn$Z86CSZ8Sw(?<67P?;TdQqfWn1Tb3Xcq;J&U~_ScVJ?BoUjEAk(S4_UbXNPN+ebx1|NFt3I_zWNJ5zHU$N7k`e z{}2=*JfZPclX-uU&0M)$2dkA;t92LtK>++0J5s(10tZk2D{lI){U!<%k-rMxupK=5 zgBd+l4Qbrd$D8;+S5QQgp|AeffQS6GnE9vCUlAQeJi18`4T|sr@5pr!Y~l|9lvh@n z+#lSNIzekC3;B|#z*Oz8%m$<73ihrh0aEVK+)MT3S| zr=5eN4GfSU6-HLfbGxxV1hHXBIV|DOI3bdNX>l*mYeFKK;@OPp9tsC8?=g|XA?uk7 zSI;HVbgQ&8z9@7p4ys0(yz1QHA`-X%BXYKNG$Qi%zKbXpnYBKz^=y=r{MWps(Q*3S z?>5`m`ZqiPg@QjIq3#(-@;^Kp-2)`zI+;54x6v7Xyw^c+MRZ8VOw?w*7{BNO8en%I zbrt$bxlRW5=K~!EM$}o`9LW61fkJ1`M!wEmoz{gkqC=BR;4+FBr>nmM#m02z{v+gl zE89)8!{#MxPnpiYwc)7&`cJMza97p(>YzI*O^|;t%m8`*tqk9Axx+-Q(xmdxc>bZ| zys-DbO#Qn}0^6qph7yOD#l#uZW$kn}p2GX6GeRw*SluQS>x5nET-gD2GrEev2z7%) z4LxgS=xMkx9Nrs&q)<>d2zqTd?VDaCXV#?P0!R`#Y7gPrJa6@EACpi57j2pe(=bm8 z2BR1tbs}*fLLfPzIJv+m56(>C9D&tj$RlV7%|$TMrdCzV*l~lzpn*fL!C)$WapzF3 z$MkiOWE7)TrYq^3e+|xTpkgc|+P7wOo7N$}Lr76D6KxK)LXU*|^joF;k-(Ba2gtMnJpmR9xT*3oZfHCSx2_jx&^K9a2A1$RQC`NB@B9$uyr(SVo{N+zu}V5@ z@7+fA3{}rSjS+hMZ}gdL!z?i3a@I%aXUyga3Grfqo^U;$;=vccb0d0knuF`VbR+8G zD|;8Sy>uj=*iQ8ePe^ z^vEw46!;@8<|xTl4sieVF+(LNEf&djEsW}W~6PQw__C^6xSg+0uNu#r3 zHW5qqr{4ki((q4*o|Cs~@zCw3(UZqr@@fL&7RX!G>ZWC4Br9_JwPK>sBGHtPRP;E{ zC^`l1W+8+D_?FvS=XBzC2_UVV+Hmr?1(O*17zmOkdT=%oZ5jrA*bk{w5Pv`)#=T%d zH5Ickwx+UT9>!JIz)1(4{ON~z(PG5L7E3|GrQjRth~}i~(h>@8%d#@Dh7dQ#MhaMv z$&42)Hdt{}K$rIW5sFGY3VjWO1v{Bp3uaWgiQ?=iBR5p%&5VvFQ+Ou!Z>=}5JQ_io zEDHNBit)N~dnH$;;ofe}MphhUy{SvCQn07AXF$OCxjoa%&G!5FM7g0!?DBi0){D~3 z8uk#Z!subUe5Ze=C%AhEfL2UDJjVeh41}c)`mH`1yUq20DGALb^Fbq_nxTkXnm+0{ zAnahot!{#?kK6B|svE3~+ip-1h)j^A&CQ(l9w>*>fB+)T$g44Qb!ydG**v2>qlVKE zFikc2pOHrMj6tXx(kfn(JUjr+6~bf;JP=K-<+sNLDvC^M5IgZZu*(H@cX25S6BAe! z4Ov!kJ$Y7H2LjNc6l`Bv%m7`}1vnou2ybcHXGlCJZGB*SU#a|+8r;3VxN{VYawgBWcdsZ|gZddr-hA6tJb zBSP<;U|?}J zwv7{VuV`Awjm|^u^P$vn{Gq!*4y~2~gSH=I7`EhdirmIA zz*Dtzc6B6TTP62+nSUDHDq&^Du2%Z^;b!Ve6E91S0n-aW@M-ojB!{OQ-%Z5gg)lMn0+ss&L7IR;mMJ=aGVKIp{I)Q3>QZR1#<$%O^p z3$$H$VZBUlhU#bq+Eik+4cBa!2~FWN5F1q8V>3nRHXD1$G`n5^qWCShSUH&A4rz(* zU-R-!3$*3h1Wv!*{ccrcz83R39D$XTwW?@PG0%m|jLV4g9D9eqg+z9a*|DFSnq$g6 z-Lw|v+Xh|9utQ3ke5}KVoXx2r3%7IO%z|-d_08jF9GG;QKC!kZ;U>=Ps1FLt z?aR#U%VGC67ELjb=oBUL>79AhgZ0I`zhKI~{u8X*pkJ2ycz~-P!b+<5cCT}kg zw=#XC?|`T%e~D@iwB{jcA5++Az%}?PXOA z)%rf1M>x_p`FaidRu%G;5zyGVR=)wMG18W+%R+6@`8m~Nlv#}2I%2xEc1!v#Ld> zR^i2;EY-CaR5ad-e9&M8-#u=pAYTPd&SJCEnr6${Eh7fZKPWJY+$c`YeAWjnE=hSc zKNTjg1Wvuk_Eg0=FJXQ?qg}cR8mFsy`gs+W)qJ_U(QL**#*A z)7(8~)Wz`^WN{m2x|uS-+++b_Gz?}rIn|@JTJsSmb(llSEGr|km=In`Ng$78MV^Ef zE{LVX%(8ihrQtsGzMgk2f~Da?-B^e}^|E5e0Y|<=(g{Nbr!?I6+^KhNsK2WSBem>0Oyz+(9dkT`}!fg6V?u4U3uM4|u*JuH!?(dQT1r0n_Q9oPnzxUsn9 zxB`RaLDG6N{E`{tBv;~Zz?W1Ekorknd=*$m5;kwUtiBe~Z^Theoe(cviN%fST43xC z!Ib3s&K+b#F;iy4fx1S^=LcU4Im+Om(3|^G!Wl+c(rd1+MJu^++T&FK|fMZ7kO{SUP91geT_FN-vOCP`M(W~x~ zY}Rrom4C0p7wAkkS96;Xdt>jMd{4eiCfdk7{RyKI?kN`N?%&TSSOGYFg_TsoV%`u$ zfV^9H`|59kj+83rk79Y!>hVsLKqPHrLww!d0)=$3m4=EG+BeY?20yn*mnlEhbCxNQi0p-)m{($epH?`MABA=kiQj|kLbgWv0Tdd&KMXCX9ixTv?xx`0u(3Qz^ zXsk<*u8Y^Q{|#nZY;o;+&WA$F`>ww5M1{U4vG~urS}$p=*WC1oS0Z4J;X)!_`Wa~% zmWwKdz^E|SDE@2()_8>ic#*TYWUXHIh`^y8ogHR(=SmeqRjdP-E6I`>`Bx)m5EW?oJDJ1axzL*JWjJ_pl}Y6qnt_X zTmiy6jxv0)+EpW=MGrX~v+~UPfbvN5`1rX=uQ{>I9DSfcnVq=v6w{5vhbB$QBwle| zuFN;JKB8wJYEObXNyf}FL0!~x z1Zat3Fas4s!u_O%(fZ8a%>X^E^wm#j58(_bBr6X-kz^={2bW<)YBm6*+*;Y?K)W1< z270c#P7vVFbV0}nKX<1`t3y)CTJcL=SQuAD^E9A!yT6|})^*~6ntwd$A~kfsUl-tb zh6qT+RJF#p%F{D+jy76g!e7|$M=zW0KT(^=!tEMhXduK{iRzeGEM~nq#JbvXI!V>v7&#-GzMHyNpnJ7&*a@ShmT7%ve^d18O3=I|x8r`z#ycOj z$ObDTqfd5ALr;sSvgU6_SB81iy+M7;#x(Yn9B8X=$M0*Jw_Ner1kMrzCb#szQ7F%a4)+* z^m&S?8+NlZvy=_LfKgyVY z{#^(^!)S$-jJ>X!8;z`%(tUucgK><#U={-=Dks)!ZL2^(fCfr5B5U^9{vp6dfYq{l z?Kt$6>S@}045t(ZpCMOksWZZaBlwHwPFYt$*c-Ah)#ojjw<&eFB6PULh-8~KELS$= z^hZJLgh$nyX*|8Pp#v3y0d8>vk>Izk5r(abVy?6SZkj!zW`1rt9%K+iYOeMVX#Nq} zZ9tU-%%0d=%xH@8XKi?IGIGmO;2>saulTnAhLD$_+kPoMEixSOfGuKX+_d0*>Jr;= z^0`@rov8uqG+(Ts=4$TniX*TosoX+T*L$4b!L=TxS~hx@A)X`d`V;64zbg4^-7hzu z&sPE2mR%26f7P8SFqkIk<~s)%ZwUj3bJfcFx%N>#<%htup%IhnUB5RDqFdp0ZHM#K zJ#ij^z?d4c0Ho{M-9X<2&P?r;@*iYJ5SStBOUjtGqWgtRG?Xz*hf+VP;fE336@3*j z-v-}icErhiPZ*rxc8@8_I?2dsHo5O*gN8@4;ZaX6uN(IIM+fVK=g1PN5HOgeI_87IVrY@y4uy)@S~$3MQ_Q*-^Ll@>JS?@s5^WN< zpp_d_u9E3Wo+5}5N!I5X`>vHtf)QzK)5_q_bUoL~0WLEma)rjX(P&(Xu-|ry5Ey?K zFIo>6=LG}iR%>vTAT_d#A|w=|4`dL!LnlZZgDI@*HMP-*RwrnTexu|nBqpM34aprX zQl>{(mnqnkn^=~a?8uo|R}6ufDb!)1MD%r9AON{h%Aa)Ojm3$?#LQXQ;u8+gn$W;H z_YEGm|k ziX+-G6qFp?T*{Boq5kAz__cwJYFNqw`CEv|ewPW1Ou9MnzR@x?r|C^uwM4vzySc2J zkX~w)D0rF+6dSE&iY5gABC5=#eWQ?^aoQxoFF_CBSDB?)Rjd*L1*7gEHp}rS6hY*X$owYq7nAfm|V2xk$j%EuN5{g6VB316eovqnexLW-?e!}M98D5_V^+0cHw6Ds1bd$FRclhYdpw(q! zW`bog4+V{4wn$Wo^+NZ0l~#jgzy^JDmaM-8*c!Rl=iIL7(N}MsD)=^RyV>UvU_>+| z{f!G%WM8eDQu-&;R5f;!AM7)!$JSd_DyYx3RBK|~maG)uh1u+B-{%IaRbe))m^^MP zgGk|caaI)S`$)y)Wp^JMK6>by)R$2*(4U*W;&p*}YcZwd+lqc?ZYLqd)Jem=-Q$M^@eFz0XnvU}0YK^HC4?SnRtn zS^6)rl;_-X{OL>a{l4j}w9Rh%?|0*EDRqrcrxOM9 zW!2XH@S?&C^CxKA5A~eHh12Fp8^3`?+M>Z)px;^W)Xm`dAx2jEBhJZP)W?cv54V!o)h=si#$rPUYjBBU43{kqntXf0Vs zo8D^T9Go^af4ed_w>K*uN5VcU^9I||XvC2=YzZER9Rr+xfACK zNO#f^uV@*)Jq{?^(M8@@_evF#AaxM0-vyGK<}l?X(I?&3bp{!@*>cdw04(3SfF*&= zuj@wvmTz+EL~RVzxszPc0ip_a)sIbEY_3tBlu$Z8U+Kbv+m_zZ@@i6qx` ziYE8Olh%Re0RwZ@Xf&Y#TkfcdHCq+XaBhthhfp7j%`^_CBSZI_#Z3LGpF;cA>TEu+!lv69^m{G$%<+^TQS zN)!W^3tqR6ft0|MNg#_=pQzs`>ia5iNjU}kQMI3XLpL{?gDfzV-kXhY7t(;nImOwT zfw;LEdtAn%(nF$v-jRm1IoN|qSO%4?xmCl;G}2v!&Rk(6%!N5~E~`R*IEDWE_C8=w zQAc^dy0!Ox)35}<3(U6Fi&#Fk-mDU=n8TTOTL@#hLMm%R@H_uz_eJ?nG!?;oO{_Bd z&seO8SyY^94xFF5y?v-(Ja4v_-D~)=!6>zJjRm6z{}E=D1O}!$c{yc{1ZPVe=k$72DInL5up*HQ7v>Mg0wP~}F)DgmODBUfdcyH3^ zMw^q5E}CozMflxo&lBo;kBp;C%lWgs$`4QV&9JLB`>FrH&MCS4t#GJJ^uVNLeL^$8 ze!fbQjQ0l{wwTZOb1{aq9{gih%*OzCmA8uY3ivyV;Wis+G96K7E3TRG9CGmfb_jK% z)@0C`zvOrCP_0Bwne(Zdgz9F7;I@;_&Ciyv%&$ol>}4#`b+P?OQEOYafoe>suxZe; zU|w-uWhBK^YlR-D|A+*_gM~2VR^tW-f?C) zZuCGhrmG+@XZGB1kU15oxsfR)_2Mzrm>n?%JLBEz>UkqF&)38&VXAZ8i6_um%8N<4 ziE;MFy+2S^v{ydA2M=vhl=H}FN0@I;)>c)O)Rc{lx;!RA-t}wADg3Bj&&6ul;+|V# z-EIjPvI*M#+d}{TU6~IX-^HXuJKv7fRTR<{R75IzKglQNaS>5t_Iqfn)%*aspK7mf zjWw;c9a?obUU14ijrwEE6yNlEc>(N}J+xuBS%xdfKF_0C_xu4%dI=VD~yTr^+hPm5oP zb8QpJrdsR-k`I#4IBB|nV%LBS%q?{^qvj+_rheIN`(k>mLIq3_5A(*m(EoV`!5K^0wr^ zd=)tSh4oIA4NWs)zf|_ihQ3CS$XH^68fQ=a{_IH3d@v1quQ^K6T^n?o4tuSTa@sk> z?$>sA=TTxkOomPK-I~Sun?k!u*HZ-%7XWIiOzguR|yYY(`a)3Jb8@t0l3e<^XR zf8*)38KdXTniW)_T-MVQ5J(_^vq~}@-AyoBbbm5AbI19$ui^QHoH3c=i|0`QhZ5to zh@OYgkg=0yd~b9^#@?>1qpx8OxikqWZ#QmaePwtTj`~^5P7;lRx!(8pEw3Ju>ur_g zaO2fc825E~*YDM%f9DVWs!glEqf-LuO{#~X!W zpcU6u(P5Q7+Nz0t@8+VRTvN&Uy4F$uF9lVrW5~Zc?x-X?&zND_rtXsESEOrqbPiok zc8)EjFW3kSdpe@e?t2sD$V*>VC1ke>ERd}rE@i7Vhvm+r?gqjd@DAa}lkU5JNqy}> zqYe!719}^RA{!pRa1RC1OFVI?C#+^{dy$($?40r zVmtLCHrh^UbZ(jxlZcl$0&K4||W@D@nK1 z+5zrdMB)4sf_SCmmef~;H3oKHA9Yd@d!%rBE`G9!us1k)FZ5g<$VF7a#PO}n4r)!6 zlBa;uNS^x+ul*JfH}Ft`}L`9S@Gxp*_ce`@aAd0tP%2k zD8)^&`S;xK(z)w`?XM1rPxjkQFLagExmvA1k$znqgmbzA4qJ@ow9i;N?%UV zet&mtO)M~V157C=YjmhN6QN(ki~rS7dvX#TAP?Oh=T2c_ePaF~ZnM5Nkin;;qTjI9 z#xhILpD32iXk}c?bgE*=7r%}=uJZcH2X@fjzz}~}OK$7D!&=La!Gf5lMOWo0%fKvO z;%yB%e4O25w0z~~Hz z3fszTdwx&SgDk{G<7y#t^o(0sTzO zGP@>>QgKl;XJe(c<_o+<``#hjAa;$)F+ANC`D19e7-9%%Pt~In|GeWG^O@%`Z)o>y zI%Ko>NU1pv=rr)oGC$uNj9`eIv+WM+7#<^C3A5Txn^3H0rdRuP)R;VaZx!YnNYiuM|FRRd}n|VEGj$jWM0(-4vDco_Md1 zWSiQkv)rpyebC}FI@MskZnjH(?7;m)r&1xDWy)li0QkW#ScQ4?%p=^6QFj`f?gL!o z*C^eeJgS^7UJmVT)R8FB!$K3~rq`B1(QA1yCFPv8M2vq{Q8p$1$g?NZE~-%_bKJ>r zcaf7fGbes=Te@1hU#`%$$ut-%R)s)fGa9e}m&qL-3)0B?B1Q09YIa}`h{$DL{F%8+ z;C>#+=td?lwEwQD1(#|RaU%BPTvHnW{Uo)CLBW2_`gr^vT+eNEb~)+;_(2iuf6?^S zL2W$H*0hvj#jUuz7xx0i9fG?Acc(zMxVyW%yF+nzx8g2EibMPId++;Z@<(Pencd9p z-kf{xIp@yT5s9FpPaq~E=KdIFG|XPLzaUKuOepeycsht&ljJ4Y*2BIiZ2_Dg{%n5x z^T3YB0T}i)wWd4snj*yqhg&ESrU~BiYq}7TQit7%Z}4zGYibR6Gs1m^*8Ei2`F}7w zPKyiUYJAfyH(6Uk6+7P_9IMDmLOF1P>B(KaLTU&{J7l`rH>@iwe^zL#F;x|pmfHTg z=3wFqCW^Lkj=gqre_>tph2=mqTu5vx`3KW?5BP$sjxdhSj(GInblN<1x=B)(ch19c z!?Ca^%icYp99Z{OS1+vnm30*4??KJ0Ot*%(SyT`?-NH-_adNevvz9$+HoKa>^_9(f z`;K!gTZ4lq^7n2J|EgStGWXYTu`7>KGxMewa-WB`BIj5cKq62p%lj+J7)$qq^UJ@O z0p;Z7x=W0yDX|lD zo$bV=LOm3k9Cxw{s_AYor@wj?o!MEyL9dHdksfY$y!z&s^Wozq>T(bGbYuFVUTn*u z&Gp$pKc8}QEBdYNVbp=1g;4)kZHFl+7)aKR2$FO%A38cDYw=l+9<3wduDkOL(&zj- zwVIcnehJHGW4qIxu4moF_vAZ@(zC%xY+tA_AT^zu_HxQ>cVOthD6SyLHk`waKQfv6 zeJ%x$cv{uL&DR#E=@S-cu0EZCpD)dc%!92hd2StrwfxVw7vE9Cq;nS%*z_F}1fZ4N zn*Ty3V+?9R5L8OD$HjxQGwLO#W^(M6!i89{k%0HcU|^NGmQJp8ke;oNbymPd1*Upb zQMb)n)Aoj2C~iyRErc0_1Vb=OoLZd7FanGp3fi=%E5;c^hZrDG$07iMNVIa@fW!wC ze3{wG9P{gpJgu62d-)x}5-d1Cs9Fmedow$y(<0vhx-Q{9S)*6P8}i&cjEs!9&W$#X zgS#s4wYQ`+Kc%86-XY#S;_kmRBHGORC$;AicghNaTzGbzbzSoyuD=~WntpJ@WN$Gy z>gGbxJ}DY3vV$CQ8XF6)6+5`@ca2T;WoXaKD#w}2_?QT(z{AVZFW?&3o znnsxZSd>-Y{H&Yu@YA6uIl`+j_4?DIUQcU#R2{sY57Q-;u5YM5(U^GOQI1-&m!dk+ zAmr`Dfi+~tf%La1n^Xr!QJUep<@)Lp*s9O^SQIwCw1SnXTt7cb zG2d!s-JDz+G_XORsp1{L?b*HfViE5jOb*bk@e6?OD=r$cE{yYQtb4zvi|*>((4m;j zjmW+xFIilzF)&(K?1OKLA;0ny(lWge)oc*HgNIBiH$8AoLt$R=59asqL`!02Z-t>m z$d{}%Ghar!@;BqthQ+qqrc9`^XXxrx%*vYFpD#!D_>0&|v8^3oRrf)p?8H7|euJ)6 zH@ZWWhNd9m6#$$ZsMP~Cg|myQ{4afp1r_erE7H$e9cCrjLrjt!DlJ&72u=u&_3qguGuvCVJH-A4ccUGy>P>@Crq99X&T`EV3DZg5d5IXZT z|FvRZ(<$i>{Wb}>AVG8^Zf^OE^z^K`H@{C}B$7fE>g>zbrs^2PT|O0Cm;S%BQ(dF| z+ir~KM@}eh?V_zWe#gQaEVrS+`o7f2BMRYM&$k_Y^&Kye2_Cum@@?0#|QWr4`ah;>CB^|zO|KcUEICa_BEm>>XZC_k`vV$`W zC47203T@m$GVBcTyGm~1xZNfP>Z7-cBbjgaI@(xTT$=))Cc~z-z%Ee2S@FoPK5q`w zb^(w7>lU>kZ|e#bM(gRGQOGzExq=eRm&au?^fNm^GVs zxWcAVOfk@39wh21;u5 z5=IGt1%pLQaOx&U3g~sWWOwR|X8F1>hitHQNA+|!=*BQW$?p?~YM9TH2Phg+$5iKl z#?o4b3f4;OW=%Mkg6^>vseQk7-qT8(H7LhOQoH)`dLMLJSFeh5p3#nMpZi0ZWUlz< zxiWc7y%^DEQhT6bJJLF1MtfbugQz7vF`gM=VSZW;V)2qh1u>W!NNs>mz%u~4-w{ZKY@SvZ({I;c*RKdpG`-l-qtRAuU@eznle z(H(&m7 zTB;kPk2=N})5VgtlL2*XemRH4F|fV-E%>ju^Nj;#yP@i&?Huvo3ShJ~5OQ+c@dX?ieZ;E>Z9(0I5) z2SZC{`gF~`s!&ZL*r=VQctzKBU4y@ZPdfR}x1!Pw&SKe+d?^n>JL< zlA5k=Ukt#5p%8bn>SHswW9*ISKGNjIk76)O8Qt-yMIJ+ zwX#T>RAE*5Sq(aY{CSxvRHU2aY^W$DA-)4p=3gdrmTxJ}Rhsd#gcdT9yBkX5dd$Vm z+BhC0V>jz=y(7k92@SH-Zc-%?s~w81gGIy&(N{?#q-eBM0e^K%Kt$IziAZ|4qtGi# zR@ScjK^vB0)K={STpZX|8Cu)gu~&TWoF@*@)pD>=y=viHPaNMOl8?()Kd)+;*=PcM zW8ggOPm#7+(>BmaS=g$oA*4k+e;KOEV>%c}yoj3C{DRx!=8c4pm2<8`h^*axGTtv4 z9y0Em(AwC_16C`d{hC+T_MG+JLYPjnL>)VyM?jPCgRt}t@z|i6zAu3$zmET2`+_OQ zhC^93%}#MIv~ocU7mCZYdNGpN1<<#JURh^+mWi5GNdeF=Ht7_!atICS)=ElZN3E>7{ZIo|Z zVS{O%3)#C=)Z3+qmf;y+*U>BE~5( zhW#L!_lm~)du~}%`23@`8}~A>)DA5L-^V=0TzIf{)Wj+SRw@&);^S3U zxoI$(eld557v@z)r`KNx`fS&J7abKt2p63nC}7k=kX^>x`M}J|R2}(8$qp*dYdYr- zY8|7d*AUB}LYmlI2!WFjok9%Enm<-a#Q6pvxC}>cbX-7=K+=n={@g1KxZ=W^_1>$8 z_-Bau|J(+h%&G%s@5TJ@yCyZcja(hIq3t9poGgJpwzFOPG&M&?1;}4=P-`^wQPy2U zNxMWjl^3Vw(iugvyo~;Po&LD2SQe7lGTSM3h=)3gjcs*s(RFq+=za0S20goJ1rEqL zLd5NhT8MQYG@mKyN?n-4w0>YuKfS3YwDAj?B^#?o!)uTJ@@#@^f!m0rV85Qp$ zno;CMT+777v@lfySp;f{MZa)y40UTzaFU~?+6`F+#TQ2OaQQrZF;`1JTkI8z9XtdS zjQorsJOoZNfYd* zeTphoqKawXx%kocLse7LY9C6a*e~PA$dh6@=KE@D5uf(JwWJ1jivHM6wk|zPZYK|aWLo<|iE*TSaBFSSW zRB~S52X*-OB`f~h-i-K+=?(A2jQ*agHpAB|1>!iX!B(h$-2$7MxqL6>Xp1&pphIm3 zHmGa{Gb`d#1vC=t(|Y9*1d3cp`paQ!+7}a@+%p=hIPap38=AGnvL3Wk!vy%xllg+1 z+pBe)x$N^?boA!kld6&CHc6qk9Q$fTeOn>+wfynanKJtXC&g))5%aooitkwQi1pgF zMTw7sX9ph5V39tGT&f#`qHxf2qwp7i2dT5rwrNm+8rS_K2ky=~qoRHOP*7=i39jGs zLIX=*CTvtqUWeq^G_rOxuWz7}IP|#XiYHu43fC01zjn-4l0E~gn58r-%FYkAV6?j+ z{}C@LHwK&iCxFCyoZ2B`n)CV(CgXKTY0V^Sy*vU^5u8_p>z2?>w&Px{t7He@hL#ge zPDOCULjQL^AWBn?*Dwku;a}@hzvK8SEAv!uo4fiinl)@fH1($q>$={ zLUgOqwfceCcmgf;#J**fAmkD_-jBA-pt85w^F*~tw?_~_S9hMTdwYN6ct@0~2pha} z)06rvYnkf;4ajQBYk89^U*0OuiknW3UWdzC7;x3E^)6*^8dphEM9wwjzh)gE-B6^I zk-M*%_obj@agaVZSXydUbGtjC?|WUpSCUEyV{`fk_$F|ghpcKydWpti+3_v*MtamerTjIFh!90(Lb)c&oLr~E)`wF!IG@&*Z>gm< z+w8>syOQ*mkdw%YS2Wd|P~7j8+y(0Q;W6qISM~TSr>NWQgR0lYQsx=7RV5EB!O8+< zYDiP39;o3Zl2U-goNbkJ{8Aea_I`39v%b`PKz-4l;rs?Q*Fnl8R#;)H^wKiYdsEU{w_ess%xwz2Kb{;`!E<(am{Hmzu;4Za&IX@_W z6c9HA;a}h{m$kk%A_2bGK5d5f-EY0Dmzj<~X8=o` z-1y=uVY{4-oVJIcg|U?a2M^vAU&iw$Qqx~dYahEa@C%ab`#D*|CM>dY%0xJs?n#EB zahqvFZWf;g=oEzMmhfS>tz20xH?qcsRi&~@A~NfJa})w9*D$s%BzQy zN2vOT*KdaPMM~+@Xf=*K5n3Jq_FkN^tE+nKIHTV7lk)+-#4{;%OVr~L>JI#D3s!Kw z8i+*u_}r!{dAZvHtq*yp8zI9pO#G=0Fsf0%mm-|}0pJ3!O{VqVuI-<$YeE3b!5#@H zLvft=xY*wlX0nwZ^AF~a;rqPeESt8WenTsR=?9>ExBo9J+D)*p z6&CgQDQ7pksU?cIjH8u!pTRHi3KCypv>QeW&?l!S|E+T`?v+@M}Gc*La_H zU-_7v_OO*o4t?M^_^R)DFGt-X7M;Om$Vk4GG)I};j)T2>N_ z(R;hocitVW^(iTZDUE79j`g%9;nIu`mgZQnqY-MK#I-F_z>>Bhsy z*YzH|@g;3*f*%GTa|YW$)r|ts8pSadNUNls#g9p)+&llca8Y5*rr;a0bL1d*XszhG z1L^NyN|`0N-2gs6b*((O76f&@T*3URdQA9YGz1hCXrmpW|H0CqC4v&9ic8JRuwEeM zpAnlX(%!&4mrND`PtATWYK4GGj-#6@ri%OH%0pQTb%Y}}af5La9}!tLKaU(~Y1~cQ zT5OJ6!Uj#As1821%B*X~x|Uu}wdvtBlkfd0Hac;810a^$P#;ha)x{=YELt%~jS?%O zj_K~r7C;@zjl-&F>Qk;CY~wGjGyao+cxdwqscly4(J1OP4y$ieDrPuk6du>qska3( z?3Tfo&#mh0luxsD%CXxmLIF=_T{YC8bzW(f5Rqx>q8P+M?c$*`j-wQcQ_*Z4ze;d1 z^SB0Vm%2)H(Ah?tpBO}#rAJjCx817pl}N0bO}Yokr7lO|L>6P_8(3YqDCRN0RR39s z@{ovo^b}wovQpHCqO#^uvHNozRKJU3jZ2IidV~eWO357wKad7d6q55#sEVtI=^SK@ zy%EHNKqk^|Y?9bW9KR9-mqCL@>85MA$p(<+HuB<_QZcVozR;uAD{m|}?M|tWE2361 zB)2l^lG_i0L44K5i|>|oVOOp#7>bHN=!dV$IvhsL@$!Wz|JYW?t-CaCWwgafnLW!! zN=l2+)T@h+Xso;u)2SciDB#EGCMfRIJ`?QS%qna=)@c7;ze(h(`lxg5j+1tsoCxe{ zHr(_?U7}sf5jn23vmR@87@7vSIKBRaP|{wod;P|bd5|0GiNgCMZxC^AmngOSX>k4f zr+|MjWf3_RhO{Tn>(pH>x(H_Z(7{w11+z|=O9^a*XL3Rin+&_oJxE50FuiXDhNUAa zIMDBTIV@!O^0R3eFNDLT4Sf&_YJd%$PKaG6Pvz?$k!HMuBF0)uo1YG9M%&;yke53-~GHw-oA7 zk-;HXbv}P$klZoUjaAflQjs5DUn;*lEc(IjaNuiC^)j!PJH-wJ($~qk_esOAsZonq zyli7*(q&_0Jj8JsU1=SD^*~}3yCzcgzI#2_5ucrGT7odAB1z9y@+KzcT`2oBJiTsH&RDGcv5tQ*? z|L+qCPc%dW%4@>+-k~{JOxA2nHf_JqGU7UOZ`;izc}wUd5}5r8<6k;c}H{fMh; zkyr`|x<0x3-Hg87nwZEvIc>)=j_})C=a+Tj8<(GFf1g(8Mc|SgAi>yZSs6n{`}i|C zCb9Z~=o-v}c=a?`;&-RwLP#Q=`HruBqh@e`HTP=JoNG`IU%!tt(#`ftn7>@3U9z#6 zyM5Yj<7+L873@TL;-zQSZV~+FtLe3NJ?`RkMHlL6$~B3gKl5wdQs5Kb0Ke9l5a<povDCK(?%E@Sokl}Auj#W7X!aJl{7V9PSA8RAyi)u&uuHxc8B9UQSFxi$**Crl7%;=FE{(Ef;&tV@z(rv!I<#irt{)=O7@=+L_$E*=;4 z5{1g|XqHDt`9%crvBhsM$!QLR=(tvfs^K!i-uma=p6SIq?^h{wd*TpvjVY4jvV5QE zPmkX?G3_Aj0P7&PVSXztNlK_7(a@^K?sKIuG<#2Iy{j`{2dbJGsWemV-77&cN9Fw7 z<~TzlulYCb`!Vltw9;)a&-~8}U5HUGZAvJZL^WfsZG=xXBN~S8z3IRk??QHF8&E32|UB_>_w7fJ_mfi#gXcssqIa?uRR*HY^?AYMw(>lVu zMMe4gv=_O0gZGh*WHs|^Pwb+c=JM|KY2>t3Ekm$45V-c^$h$tK$d@C~vjt(dokuAU zWWh8iZH8|av$l1HhkRp*ZuGeXO}#k-KR-TM6S;*eLQgQ01#Ltl8gUo@(KO7mj^Bfq zo5zm>fWL}MIOExTK35$+@2JVXmWt@)^8@jx<4uMx)E;Yq zODgFt;^cEmLN+~F+O-nlUQ%Gwxwo{7^ai>+Bjp`{^f>P4L?R#)IIC(Bw*X4{$Zxs# z3D?TKP%z8yxI1xm?PBcJX?ysMW*Znzc&4pcs%l$RsI6``Z>45$tgLN195*xRS5Mmk z3}6R-2^MTi?OasmWmn9922vJq6=0q2ROwrpMppQsbwQdxDj-)t zv?P;?g4Rnjt{k*|t|JH=?l_@gnZ@Y}Bs6PE&b@PMN3Q9}sV77_@mq!@McfYIiK>O~ za{l4OaIr2Y!6)SSc<6NE{FRj9p0taV5F+u{4gP+vvgNd=z=3iT4@!rqX3NlO(z5+E~j?gPhP6vuzi*V+Dcc*9_j6pxo}-gt@HXXWl_kAn4l| zMA@zXz*OAe)($n-@1RC~|0)!C=kRadg z21(Fj(j&DveJTgvxeL{pK&C#Th^g(90dQpFwtgeR}y=AOP^^k8O$lA=E){7g4&N`&7~sh+bNf+j0v2=r=b z2LwgJ9WV4;TPIlyl&E}`T2hxcTPPl^C>>Qx(+qog7kq>Uv3VB5J3Pli_se^mKM0I8h3=@Y@e5EX3e z*@jO9e25mY2*x!d;5gR8SDB9J+|^OnTiCQk4l6OT`-!6F-C#M}xo8?~&=U7*e?f?& zn7hTVw*c(fX=Li4i+FkhqT$93USd%=i2e1%)&Nq>gv1Nuj3?tTN%Z5RH%`hWD|bQM z@OJAzn2$a&N<#cWM?Q|rF(t19hGGl1DDoSOSIX-H46Kvmzzf{>n0lsPw(yS)|6mSk z*tcVQLS1Hb zm$z!?b*eqK(_dHEj!k@D8aYYxAl8Ouf+~)0KTXB|4nSrMlNU!u zX1lJXS1Dam?_&?!iU%<2;2=p?4N>@mpQUK3woMkQfcNGX6Am&k&)%e#hQvdjeCOM? zw4t^4ZL{5s>a|cOH<_T9Em}|ct=30YO+S-`#~|1nCFC0WXks0oQ0eWkk`o84=~vOA z9`-k5h_+$=V+?80t`ZWvpjhaNFtQ9j|In4h8nC5e(!)<9skA_X!yAKEYy1z!{P()^ zo!8h60Kwt@OKP;0;c?OSeWF77ggDrAQ_^%3n%JZ+=dy`MUthrRq3tpv`vm%i-UZuS zAxRSS(bfD`QXOAKA!AZu(Ot5X=|kB>d7C6yqAkv`990!5yy2TR^+E_)W;uc?Q3)Ge zVH;w=7!#8J0xIcYA^P`n+bA*Q^Zc>e7g{s`p{xx_ydxJ~#mL{4UQSdLS0#M}W8yqz z$-0%7?1!=j)n$ehoeL(I9D6FJzHFktsiyhF&nDK)1qWQnJj6Z=I$p#N$Xv9cz69}w z*AIRy?wQmg1qWg-TqLiTtIhlGYzmk={yK$SQ#nl{C0J^9^iV`5X~0DdXObLKT^9#( zt)LcKz0KHFy+s>~?vv4hh7i82#o2|p_WJYhnqN^zs@T)H9rp>o)^WpbyO;1 zFiV0izgNp1zp(hI>o2vQik{Z-PVnG=E1I~(VT~k-(2A>8K7_581SO!_>^6^zXZE$U zi%_fWb??}JF)`Mqg_mOds8(Mzb1x0RuBeyBuR%vF@^Nf`#A#dlknY=Jv=0e(^;YRq zzcc+VApPEf7Ko8QPNir+u98^TpFl0JKC7xDx#KoIGTTdUtF$H2I!Zr6hFz4EA}jmV z&3c>)%|W7cj2a(-9Hv705*v3@o!U<&F^IYlYMcGB%cF?Ez{!AYR}a4qCLaT8cX{Ly z=$KLAbViXiKsy8WMJRp~vD*FW@{OC&pMkV;z`Q8|=1aBRPDR(~!>3!YZWx!>txz4K zWAF{HNX|e{6{s%&aj`}|F<(y;^-XO$zf(p0xMS|r)N)8ls6)65;r+Op|2Hh6;$Fz` z!Hef9F{g2G@H*9L6%uD2cV* zrzp{$Y8|;+xV8V+$&DX<@ht1*xpV6H2lFQL52m*K?XH!Lm_6ser9{@&TA`^{FXW%M zeofU)K0X4rtYeISc*6B`1FuDbJ=1z^gy>_HU}A5wCki{10^v=10KrYuhGN!S&uPZ3 zh;8=vow)6V-h$%1ft-i)+DD-f)!l509qhYFn;lf2HX;@htzlj?PxyU<`C&zpga?5> z&(}{b`F{|~Xvr+6LD1D09m8!t8E^xqj6JClBK>K>rV>(E1rz{WkZD zy4UYjWvf|pyp?>_a~ejd4hc9R=q|cf8KK&h$NmSiN&Er^z$H_!Uvf(Zd0$`)sv_kS zsO98Vb{w}^&PXZ2FY0aLUya`7YQ39n-0_2IR`VdZq=FV(m4<5O+X+ZobRmHTfUJYgK9FO`O(3io`# zoF3`nyze`BV4-_t&0aI4=qC^~_=gXoSO2DaFGG51@9?;9D4ucv3afk3M2dVX&wm{k zF=HL;X5R3OiiUVX`Zdp9S<)XR5J}OeSCMaMBbk}6SxJaXNNX3Xmg3Nq?s@tNTbsM{ z&QX&I#K&oW+aLN%jh2jQ9$zaH&8-p;%`u7MePEpiNKMs5cja|oXCNzvd7q56s2^)W zjiXaY2TpeIO~T8yRs>*f-ak+KvyyiGCT;x7a0UsNxT$8s-OaRky?0n=Jb`@LaKs~C zzgBz04p;5|+VgcgF5v#lqCgFc!^zm|i`&CFrj2hDm;67NhKy(D+((?0GXU|JvgGOv zcE6Srkb&n~B5WIoSL%XDx4)(A$QWN8h4^jFeohe|@QqDm@9`rPSosvIE~#~9&FUz1 z_9hCkGA#c)63pr8zz3C1{YiS#8QYAJ+2y=Z8f;=o;adNMf_F|1?(RwY4%9vSr#D1X zrI%HCpU~@bGE>|`%v*Ryh#;ys5H82pRtPl^WKw0?MTn6X{JYs-lD&%ZFgWM?4H0F` zqT`SN)HCw2?Rv8&YF)a&L+RzWS=|erEYj=Uz0}Ua!mCv9($As#@2x~Mwaq4dFiy91 zEhBh!0YiTYvGqnR*+tbHev?O1{DT>qY{}}DxV9JGZLek<-U?l06DQOi_y3p?x`Of( z=us=9g3_f4lqK5<9FGNlJRSRg!_J!Szk)z&o(bwiTv(F5A7~j3zCw${c0_=W>dzR9 z(KoE+$%Dv!bJLC*@NYXm1k6dHQ(j0^POPqj7oS(~|fqCt?PEuDbSrN4Y? z&zinAcT&IQe*S}js_V0+-x|>n9;q$>=#)Sp=fye(|DHo#Nk|0!wm4pnAKAjmtudi} z|1BZ-u^a9wOvIA4*|FxM(FWUE@V2W#=$ijL-C@^L{jV*A410G&{1>`Z{D^HbpKm>l zn8Qwr%(0g z^6^XEY>qLm=p!gzhH4{AhVf6$%2u$Ns$-BO%@XI528b`(x9Jo3heP+#0ddL^lWMRJ z4`z8@g}wGkk*g}|lvUj`-jWZ}HEKWzzA#FR%xHeHqASh^OiC{pT&R#bC`R1-cP=FM z-JI(zMBv&Gv7}c}e5llNZAlHN*BBY%F+VajG~VaXhQtiNf_7|af^IpmODa6=R#7Mi zVw^6D0}jX`pj{tx2>I|?olY(xGc;FYwn6fz&yROE^kd`DR9{oh*Gvl{$|^yiQFB^Q zeCK;N-Y!8Zb=a>Es%T%Pr8|Q@d$^aV(0?$q-VSxMt4==VTjZNjYg?6A14BX!=L_o?yNcl<<;XOCHm zpUyKmn$NhkOM zE=v>b^r1Rb4!^@NF%C#28CsSrJb%jwNcWKqM;fEo7UG;li(%H9MzQ9Lei6F??0GlsotI_TId|5bUbMY4;x6>gjiiq|BbZK1_Cs<%`@q|Lrv>IFE3*swLf>{s)s>>263n{%DfT&`sTERjx(lZ{2Dd z7xFvZ;2p`qGw-8EpJANw8&pf&*u!^~u!@HR7|qE-hngCFM|?xQxq^D}J*uBP;6?Uq zMV{n@o1EBvUSb5*owUo@1hZJ zuh_rShC^`^GA9?b59i&E6=aJuIl{pjJp_>4XBzqn(FQltIgx=bsoE;BuX`HSfNRfG=awPIIRzOYB>(NKw4Duh?w zg}q*iip3@!`ZuY!EsDIGP3LHqNgruZVv`jFia#dp7GDf}AQp&8@*VDrc^2vgIH6$s z!ifY~YT&bwBylJQ=a(oV9@BPSub^_E)xMfE@ha241|@I6a>wn&X7@k=f89F-jr|X1 zn@!aqFODI~p4!ghR>CZbeWD-$*R1|4DM1E?4tfy4g-$1Z(F1`H! z+HEx-oUyc^)~#scO3bFI<4Po&OFB@!7yf3hl1fn`fh*CMk*iC|0RBLc!r%`qEYXP? zsKb>HP?RyN*f5?KFd*5Baa16yCX>PXv&1$@=HZxw$xm|+$VXWIvuuMlrJW?Sbn?ew z=i%S`*^3#y(9aYxgS1GHvXFB9BM0azq*Y2~R|QH?;b4f;w~J~Sn8ZFZ!)a(qjs}D( z5}|8AGhVMe>_;=EN&?-ja6^xL1po{l|58- zhTTC2-D6Bp#LislO8Z+K(t!kZ6t~w3Rc~U~EyTL%XVy8sinS z-pz#PYCVmS`z-s$K{e=ng(OPSpxQ4=xaX<$>vVVsrKpsy+x`V^_)v7OxQrw1 zL|F0x8;@%k`(>$l=%4@F!H+&$XeT+n5Y^<_36DgI1Z?XTAkKc1Jw zYncm8nLllwZZAmt`m>HX@@BY5$U36*Y{%J@m7^VB9D z!mfO_c9_=N!y5r<+%W9@T!Lu)X#2R#z!1JHlMJL)qq-1Gw6{iaP1d%*VX;Pbk}4=o zyqG@+*inXO%MbsWfgcllBn{7Wp(WajTWHRlS5addR>F$fG_lv)+c-I|y{~LSCH>IY z5m}2q>uj?PCHN1yd|A)aM6P4t|G{uVr6z|y=s$~wI=|+{MG1zZJ?d3AuR;*+Q!t)i zSb>EmPhV!W{&Fj$v`O5L(*2>N47Kv}Hy!~sqr2uXmy4vQNiXd2Uqt85{7~^lKUBpt z5NPe&=S_y?#u(RcEMt^1DAKn*#hgdk8)6>9UTbyxC!Bjwc_zFgjgb2T_v|jK!w}|` zdDWhXMF2qz*nd@h+N(Xq;=YPMG*(sUm9y#Igbd-9#feKV^`re+X zh;_=yC!}LjIYRsB0Cv)I=z7c{J0GQ8wCR`?>$kvF?+Q^=wc6KZsBmOr*T)Fh7`_O4 zrjgY|@n2)%rVn^2KJm{9d~DSXzs?1SGoGbbOFUWs!LWJWzApTOk)U`JJYKnK04BeY z%rPPGqkpf!$9_fXzVmPS2eWRc@_%T#d;66pt7m)W^=C0ZL|2^B$W*d7zt@@uen*aV zIUBF-;_3yaWw**;HSu7*VqN-IxqYZWx5D1-uivQVsOxhk&$6$5c)#ng@K)dHyz&y6aD)M!~Nas-0~`f&eBf`LK})kp5vBP~di62TQvM=P<$_P;~R1&tjwveLAtl*ai-=F3wlAx7q#VaT^8MDIxaj6rmsk>1)KwKm!|9Vx@!ullQ#+)Qnj-Fm)>i)c-BF}7g( zMOb&wAtYwFJesfnx?#SbSxu3XW8H%1HJ7tR8D9S%jF5&JNM!*KMj8S8yA$&B>FDfS zz(J_f%DtnO zDW!kP>D9x8kc9wYwWm6(bVccLQCN~JQdM;~0)$$tUiOUJogP8fL=!r}l6@!{%Dw5d zPa$ZzD^IK|US%gW$Jdg59?X__+7_8(%Uo-X5zy6g6f_z+p`*HNkqkZfm3Az6a?J9V zFDvWbUJ11%U`S&|h@;H@p+bOhy^Qyv8zbVws$Fq$Ng)uEBJ)96>XDs|)7!s8*6TMa zuaRTUr$KSb^yfAr^HOhjRx)HXG8odD@+aC=RENP8;3)zq{QmY{Ru{8LPHFrX`pGUg z%B$6XFjKTlo**z9mm-#+hud=xx=;g0BrW1z^W=+aif*~QHoL=QHp0p7|HFwgDGVEb zM*$%VDhVbD5-F|=W=B*jT(Ss%yu;r(t?U~-;otQ?SzIWng@JqgAO|7iEh%-7I9s#J zN?RkU!35mb+3nn(P)_l`Q-&*yi@tFR;(Wc(#R)l2(%!PL)nOE!|7m? zG^(?3jy6pqtj5S6oMiAC#7#dBN>w<7zWgs#oGUPk(coas)zX-IC1SaQaOJ=Rfoj(I z2l#Q0%8Fn-giT!057f*Gr4mqSbTSpQCNz{Uce?belO`^e3;I{*j6!B;h%b(#6XH6p zTPANYs%S1W^KVlbQE@poJbtb~Ig=NM>b)QAh~jcUyXrt7I`ql(7hn)2*IMTNBT5#V zDI{m=(oTzABLGzn|4_G&fjVqImE`H*hX_W2HsRWY8$cls$juvcS@V$qarI0FeK+PJ zBEo5TTtcU$G3Abh z?^5E6WnXkn3WX+Bq^g0ws_4QNHsgN6=251@iYsBJITc-va%8i}>d=(-crD<%yoC+KS2XD!jg&?o z&}4looEE*Rc02_oTjSMYs92yFOQ$0`e0K_2u<^%v6FxN`T(V02Dix~ns`6oUg$Bb+ zDRc8^<~a2#HoUGYR104xXG7L}FHcgAdI=T4-wQ^Cch$oq^O<}cUE5CNlu=x^9!#5X zwNUq_qAYI|0%~xb13o*_S63xx5^FWY9uliJX`gEh3KR$&H-x-T#m+nERM?hP zH$jS|8$XjGv!v3%uLx!EK`8YX2&y>XeCNZuvy5^50hmoaHY+T2x+}NV(V7wX;pQ=d zcQ&Lzls~np$;`{&qE7j%BNGkv(E)XPgK);O`-CY(@D2^vwfgoPUUYspzB?32=`77n35Jw{!W#x@>$O|JDbQ?9q+sahEkA)`L(S9P7bJnQnr*J>s^&9Neq zAQ&bV$thU5`&!0rts}T=5_o!Z+5nAj+-MjnwJ${L0ly8K?U&Bu=26d*8ehqAh`-f; z-UUk1eiPs}1;*X5di7>wIpLuzVV%+E1nnGYDygpX#@uMR(XJaG_GqRdH_KDFw9LX2 z2G#PT;`NgCU6tPSqPICcs`6eQkre)eIjKMW@lfGBOxni~WCn2xWhHe4I~p{u8!GQ{UQ{ zyClmQb#hrGuE`*?c+R3CSl6t~%w)2@pIJQH1B7SjoSRfS6qw*UrV7H$A1kFMECcG% z-*qhXkX(xSZc+(_bPIqCnZlpj$FgKnFDiuewD z498q_R^uq%|40x{t@u2CpbR6vJh2NHWGOPBxXk>9jW5npDCJfuiGA?yqY7pm(xOom zhV}rtbRgr5f3~#Rm~|Zj;{ng86n*(R#R$WG6a5dy^9YIt0%+n8T=^KfDd$msW#3Ny zF*Ub@%eWqfGw#idYU-Mb_J<(0Bt2s*^>);e&$6k~NK+={Qk6Iw9sc>7$;vkXR`WMJ ztz6!~{BONKbB%Tu39y^t!MK!WpTwfXBB85I;NE4lXCXzr&kY16`&YPN=>_rmBgtW| z1m!P(4ec-r;HCF#Ul`*N$Y1^VS)m$x6J0lTMse&=@^;pPyq{oQ-v&%2|7)Bh-QLlp z*t?yXsXz0g@7#a}g{i_GC2O4wetpo$t~ZO`cY zQ=JqKbb|&BRlh{F?=2K0 zf(pN#`B}PZ9Um?E z2b5Y!7-at*-b3wN)U<=HAwiyl?%v`KEmoxMd-L6qU;F$xBN-!SpS9MWb3XWb-@D*yHo{Jovu}r)>#5$0aDEha zvx6*i%>ZWyOx7(zA5=?v;mUk#K8;o9JNoY`vOF;K56EKrJ#t`J9fzq1n!u{b@ij_g zE8nR1B;Qa@svQH5L6^Xat)MEH{JbZqM{AHqxVZke;DxCtk97a3=RJJdn(;muDUK>ku>^e>mPnHMwa9o7L5GZbw9dS*w6y!6&A;yxOE|7zDa0JlWQ3=y z%9T_8r%`lVcCaqV{DPM5!tWc81X{b32bQ58ZA82NuC6jS^~Ju=FUhs_uX^1pXZ=?9 zQ10Jnf0c8ghWeXf7k5Re(RNU{MCJ0w4eKCF%8||Eyl|lQj;o}RpGN`gI0ICY!2tMx~4rHtFW;Z}VeZ zSNThiZv@(&*yohW#0u|_E4GhYEPiheKbke4w%-5zB`^r2H8=o($#Y|U6=w&G*3GU~ zG6v7TOa z$4yboLKrnaRuLk6lJk-bOl`HY7&AOq71Z*^?+E>9IcW0fA)q%zm6F{2KI4Vg+QI4c zq=uqn+VAGE!}$~VlcG%89#anA3};=FKZn)KH) z6=X>K7JS{O(Dh8S96MDv%O9Wjmwrp@+1j=6Z@4EuMNcD+`My4rmw1bh?({-){*S4@ zoI(~1a)SLe6`3RjQ)aa8CHChHaG>AZg#W?$3t?p(ed&xa*i%B-(~+Ny^9SML1)qJb1=6?;|>@)uQ_QT-F=OWypL!VDG`hq?Tvf+3(H_(eVNK|E; zsn7lq>+TiONkPWK5~&+$YD5wp?rSC0&)utZ!h5u{CJT;1Pg0D%pwj#+s(zs&d--l> zA8JjABzzF;eDfzJJ1gZEB}TRDC*tYEo2sMR?GJtOm=cd~FADm_f>+4yiRl}N?hku! zO*L9buMNBRak(o7Iml6eX`V>u3?vrEn?cI`%%)}ItAA0f*U-gPG^Xx#=FX!Aarw z-c{;bSme>7sd)>@_IaP3%-k9xbZ5}f@eI2mJ>$^n^KL;SLt&~a<<2b5%jz^|T(xtB zi!M4q?ZCQlLu=}xAty+(W{CRPTBsXz>J~XM%Kt*ec35z9XY!}xfpKfYQ`TR{zPSacTi29?Il4|gG z+u<}Lv06Hs*;g$mYGHZ)<5h6k5lyZ2?zb@Bc8)Ik;q(s(ZmGiG-=wgiM6uNU*Qt>! z)%d{k>+-ttfI4;C(f;&4a`>{Mj@9?j@o67i#7C$-KKfmEEgGzCQHwLo?#U+J;?<^v zgR$Q7NN;ahx^}kzz+e6Mh1~HdNf3{JU%_jyrKsRvX%8{)A1LiX`S!c5L&xL2${T9UA!PAKD5*>6iv$g|T8F;G28!mTIoUJMt9Z0>@ zO4$f(mCjjl1a@<=^!$q?xkNJ-_;8H(u4bM?`xHd`N|_4pDqEl zAB|0sg5gvr2PwQvAU^$lBt>`<~QQHr7D)5&IDpzv3eu}T331OwB%KE#Z8(V zSL4z<$qYjr*f`#^y2O48NhRr^o2No#kT#2of-2bxuVboVl9e*R68}JX;<^L=c7^n;&!!zWF%ZdMAX+d11T84xzAtH_E@Qy0TD{+ zl#9UN5aw*vxY$-M=9(KE!0RS|`*Khc7_{-dFGaI}U6(7VEmFL(zEme4W*??EhY~e~ z^OXzvX_ST^M}GW*pFFv+!U%>^NYuz5nsyp%Xk+4lx;b?L*)-X*Gc=GNWvM@U@lrkM zsr3^PXaVDAH!Q9n#oLqZ?a)3cxdX3GLwXfYfQ#C8H*DYXYon`~*3$=GF{%PYe`r4x zxx=fRiYWqbP$TI!$QZG`aT~7JG3@O%@SFBCjlJ$uV{Hd1lm_`@gUvq2$YLU_)dKFe zJL&$2u1=KEBU{>+T8pR%HL}nI<#&bAETK!Yh^|Dfsi?2|*`d9B?L*X_1+#e66l~%X zw zL!oQTkC=pBW{| zph}sqtA}3a>*Jp5Wnm{Uv&U2uGj^pQj2#(2AW^T8rZr%bn_k1ayd5p!-leoC1^J-` z#->%8cz@yE-~@@q%bR!{tD zh^wH(1KYTodNH@S{!ouN{R=iRZfQb6vXgFZc!lcV=%UhY>@Yth%wDjgLO|?6EpCr-c#28HRnGzr6XX(F`+8(pOj3X&c*g;HzncNCadts|Tq7-NDNJ(FXiZU%r*!FEpkH{==@R+B?_8 zKVR^Gh#RYM(3kjg4_?h4w{!%&aqDPSWP0Dno_%^~J$c+=6tN!pV%;R%-5CG5k;v22 zd)gI@BE{uhzkDuR&6{&M=i=m>yHr)kPhd#&;Ow(d1v$+E41Ury)YG%p^5oC-E=9jl zk!gB%2d8*E-O!|wjo3zsrYLIek8k2a808PH&W>)OVk9NY*~51&$-uIL%>X5>2VNP{ zMy;|ziS38l+@wCY|BzUMRev6kyA>xJ5aHZh| zfANaOrfV0Ctoa_U^0=bt5cWi>^Bn4&9hW65nY7zRTa({su6Vw8f#2Lt${Hm;0|^O) z=lnxt3I#@wE%UP$r0CO_)=OB1xWE^@j3Yiedw-NIH85}zQ_brskv@n#^K?^D%9epW z{zD>E!Nj}w6D|+P!n?3kZfqzkEBJQ1^)$_2@kjjbaB4JISwu2Mx-KYBjskFw8j^r=)v76(St}X+1 z|I|=T{f5EEnnTL&*Rv-%tb6VsrEj8%>&pf_*=_xd*8g0~$kmQ}z7^Ie# z=u4or%w3ZcEchcX5U?I?BOj$DlZx zq>#VvR$2)jGj8OX_MW!$cwdh#t{%TG|Iv??BV>r_U*#{Ur|SJ;pfS>se}AjM9=0&P zIEHKSBc5w+>5uvMq4uSnJ13E)qA&Yi*7}z@<=L?<38%+@oiFc~XHrE}$#H>SJQ%Av z_ZX%ww^>cJ-dV40f26z?`B!lV4*6C_Kz5-Vx_DM0qb7D+@nnzNJKxRKEG17RinN^< z{G~Ca#k?P9HY@}fe|j|XGk`wc*l3RtSu$m5TkTmW!N*HHRjBn!gqvZQ`1?8_I*gxo zCiq`e$ZpCX>NpXup@r?6{`b!JrVn*wZkXnVvAGted%?EkG@1( z>tnlWf}y?tA(=d^qZ1Cqs?imM7glUJ`+Zvvdgi{k@ZFIi|1=DufgL>x6W#p@9-?7X z8k1fmS^8pjwNta)0LB0#44}^6Y#Xv-z^|J{cPNi>$3LV09F#tGKdN1n%{6~}nL9tj z7Tfygx%^80O7F=Kd#AR(4+a)7Cg!fjry9B^emkMof)&Auw^3K~eNuT$v14vUQC=o5 zs%n4S8=V`v0B?OD)521caR31MafL@>>2-4$UBDMZ`jCoQ64)|t;!2AE)UGA4KIqHu z28-#(s1S?OSq2tq%0ZX=mR8{hs;?{J{;_|#w&?q&DWyU6=l93Zenq4%DUojRm@nSV14dIn2ZAqZ}puq6HvSGbn238NA zYRIoS-m0fRc(9(HIqs>=f)v!*mdAEvAYI~59n+trPhyA(R=`%-!M`Zs%F*rXCOzEz z{~<*x{PFwC*=@;K{$pE=GC!@i>rd6o8df@Z@c+xYZ}w-OO$e*b#Fh8YN+8=TGQ7o} zec~*%nwuu}pz7@RW}?90p1IY&01Yi+kUD)8up(E%YN3;}dGwZCEVGVsBgaTaDe0o? zWRI*uiBS6td?p^eCd$3LwI0BJ`LC$|jKQbusgk$I_*rymuUY*mXlh>Y3qQI-&I-{? z>e{&KZ;PqPeIH>mSKt}+V1iS^hq2?<;_I(b0hxbz3k^J?3Hm@nWo~z_-o#04Q&&-Q z36+a7*}o&2GB>QQcr*h4AuU6LzT?6sIL~ZLpq@VW;2$Jnd0B$4A-O?=kLrgqG~>o2 zdNZWWn~z1gh^@O}C)9q+TtnFWq$M5!wK|=ZDGn zFC!|6BdEt%f>kcK(!_}s0jHUQCme#roh@33WwF0L5An=HIwE3(@81z$F#>N;>{)jR z^11@Yk>El@uz1co+VMD3GIpIiPj&n;?%BG(Zny1iOyYvJ?@4G%*oQX#INZ30nI{E_ zH~c8qp*vCCrQId2h=}NX?wg@P2@dm*zvgQ_Ol7Q!*QnMhdD2}Unqalyz ziv=JuTo%z8<-_NH=vevbzkOuSU1MWvWd}Q&FeHvRLULa#AVEOS(*}^Z-=5DtV%}%^ zi9*DjhfO_EAYlPgPel5s;&KrQu8_3^&vh{)T45>kTQdamLiBRWH&$ zae;Q{*SR>2HlYP!q1x6`Vs#)G^dmNWM4JTtmuuvOdKC$pzqwUq^(-fBRT-*G%*6`_=qAFW=OWFOBTe& z1*y4OulKaUrOcS&7h{HDY4UTr-TT6N0#^-8FqIWgBE}662|zZ@%?q^;ezYH#YSm_6 zl-ofc^&8#w+cK%pcXtWO<+e%6d6&XlbjeA98m&D|NS9?4^S}V^Q()rkMoW)`>w-bC+Z)l>@W7i zPO4~zGOa|=WSZ`nZt$J8lae%MyAVSMkX-%r}$1f1r} z-?rL2tg{J3a_hy}_;XG@l_1%p8WxVqo>BA~=gkE064}lS=z|Yt|92q-?JuYLztcb4 z{~N7L?eRvUy=X;wK_~}X{zF2Ie|+<29qTXYkntSuo*(TGSZKc`Vg!z8HQTFxWz9YM z-`W1!6&9oT#POY+b$;b8;oTO+(0@p?jDL&!5E3vdc0TycP}-@}^D!#&Xw&OIe%dRv zvq!D}kZ5V$!6)p?;BT_Pd!3A6?-3g(Kc5pSHNQL;Rb5PS5lX4%Z>hp{>UpHAfXS!G!Hxbs`?Umxj$h2L+yC zNU~@}7re?XUWqagub~$GkY7sa7QVcMu$7=boPCqe)y8s`bTMP0W{@W)OPfIE16=%S zm$}9v1_7nJToogplFzA&Ya|``axnB#@bnYS@_g;{a64rSJVc9d|C0oyV9xcE z{`;*J2rD{5tOtMox+vjTo~hv9J2ER{yCcoa_24Z+VPwhGuuYA~J+*=>&cxxr8KZqyi~Cn3nz;U@i!atHC@2TP@&eZ?bDYsjlQ z;Cmi>5|5t36lOb8n$Nr5GH(-20y80H69Gbjmp)y+8aS%eIUTPhiyl2T)@ysyqLDBc z5q8Rt-_@KyWXc3*;hwwZfuQY3dtF8e&5LlhvF{T8Ne@|5u1o?((aMaW@O z3c-`2hO&0&M}?QZw+SIUp{`1v=0ysFV2=jM5i6gT^mZH(Z*$I}=!rb&eM^&~x)v3_ zD3eY?z3W8NvtiheX;uQ)Adb;MC(obp(Z2^azpwU%`Tp#!AdG5^rbtT^$Ot<-W0Ac!YuQHLx5f8PJQ;og1V*im;M9@D> z3w?+;&0143V#F&!RNFqZPW6=W$vp)EA`=ao&55?&38`Z}?GluDzHSu%6LZpRNG&yC z`tf%#D?oVch}n7%?|DS|%KtJ05l(`d)YkIDg%0IEr0NEHEZV05Ww-0UsXZ@(p>w(a za{ii=de;1hl%Ov&8ai(1LEk3yAJTO98MZ7r-qV0i==9&@Ru7~;k^jHwl=C0bukU|> zw{DWsKOMcEi9K3fl~1Ve8{tTAo_4^0x~lFVFNP88v@=B;FRfKOSHWT^;Q0$#vF{~; zRDs_ee&OBu|C_MzA1ZpLwm+e~=aow$cuf6vhllt&A^v}Z{{Zh@YcbweNT=oV zvlM02_XSZaQsr=z1Zzrw6NbRn=dG*vf#zmPNh_dZcG)9DyGQ*^?FBs+{0dLI`+g42xO=gDHj^E5Uo4zn zF0jb;Wu3JHlWG=muUn3sN-2~Dlf70kUi)(4I^H3@k=6d)V2RU>^J=>al8+ev=XKH*aNc`Tp0^ zQ3i;>{5)g{bIA!jT1i7Sqke|7C-p`NT_8cc+>AhQT=uVeTFkshB$}I$zVxx-9hOviequ>xFLMU0zp6tw*+L{sce?s#r=+%4{{N{d;3D*wDYd)Cs`S0#2X_`SVd zaPItI(b2lGHr+|{JVYV#DU&KxoML@im_NRc!M(~OF!DP=M`Ph<#Yim?ZXJt9@fO%H zaMsT|mI93Xg7T8J8eyFneB*TL=(F?b?9A^^@0_S{Ra9o(LA1Sa`mDcVNjlSYiv(2U z4?Zz(y)@}eXMll7V*S%c&X3y7UZm0wJkt7_>4g;>`YXqSJ9QZ=32yy7ssS9Btfj8( zOTJ($1XJvV2VB2FZoXj>=_1^CoxalZ_jW2}Ck33clUnQ`%=?F#CK(Z-WPB?LPiVMI zumAs*a{0uQIzR4Z*{VSlOrP%ca1buHV%>?LWD@Oi9wO#~!xo}u)92nbZCJirvA88B zn@n!WB-i7r8qeG@`aeEhSj#DXB@n+V(^j~87=sIN0NQ}>bhRO;NjzCjZad*f-@u; zXXPratkg`-%^~u}0G{w*jz2HK#)Kxy+zihsF1TbV>O13 z>TmEPH*VkHSD>;hrhteTPT}}SHPa;+Wa50u(E0E^R-ZM;(`sF;@Fhw$1w0V)2w#9A zEB62jpCKlpo#SbE=D2)khNio2G2$50=CTTFjfQToYku;vdk<}bzk{tge0Dvf)8ABx zcN>+=I&{^H?>8EdgGQpJ8NA@S?29jp3N29i1)rTffj}Q^(4iUWRQN-Tfo#oV@~v&1 z(H?}cd!dMuT8}T9W>R7GPg6HsnnKh?-YvozKZP%C#!<*s5eME|&Fh@gqRnak81Zz)Ls;e>Y!n8xM>H*U~;v#oGCWH z|EeSEMbu%ELAA6&z8%OpRpM@2S;=zw##pWHZhlJApHDP0z>zp)0HWki=w zzeIOKv(g)JV>8(h+{1cET*dI5vW8%iF@tkoGL(nar@S`tK=i%8kXeU`sTPr^V2djb zZH@N1lmB~jRHg#eapEk+)iU<(rj#+N4>8%JD1F**oQtdB{>O@dB{}h)pNjNbYgYb? zsT5dZU@B@HW+^vH5+!7sA1x(L!U8eXg(Tq_sO3IixS&%|dt2Rht_8T<#ta&JazVOL zCxe}M*oV^6#Er7DO6TsFT)g>)PDxHm3Xgf>DfX$J^|Iu(yx!s>zJg?>MGT-E^#_B? z(sQ#|9UpUc4=nbE^bR!B^2;On6F0MW$rsfBZ?sVwR^v{!eteQGb_>XT#O_?CCYowhT;q~ z@YG$iV3xq$hFzTa7eb}6uxeZf5xqcaI#Hr|%R6g_hXOc)fjI^OipNxE#AfSz`C$bp zeNc$p^ha}pWPZmqcPOJK;ij_tAtca2Ix9vbjB!U(GrnD%jcjd zN>EzK-PX*?0L4$OUG_a~$8r1>nH0a2RSo7hbB$PW*44>;d(T{cvmX}LicKGgViKCi zY<%>L*#iO-yWX}K;ib?A73??=G`Z=K@^_=cia3)#4zd!>X8T~i8!LsT$->JJDW?Z; zZe;L?d6EEoxiprwDyvPeCo=JRWh*=Xa;*!%-N7qHBY{?h-L-7 zO_f^+bb&nrQe`IgRbfYoLJ=iu)}K#%b>al)nS>S!!z}UFZ=b0oh)JZgDt(FUi}fWD zk~k?9jnupTS(^y6M`j_Axc-0(msHlT6_*;YUltv--Jfg|%pfdWQiBxQcaczH9 zh{=~@o4|5`!m~(mP4=ZoZ3{gxsaSn@(S*^aZXk2|$;J_1?1)dE%8d=IrP$5DUw$c@ zj@1|Fn5Cjj=}-UGCI|zipjf?gQUTK-3Mm^^S45KK&7>Y(UUgTvOUhi^I8{32GZuVbd-Z)B z_JlSv$Leq$4lzhVDwwL;WdJxPv*IhOEsxg{HFv95W?elnA3^Ln z=vox_OcH9WmK0V`o&krYBW~o{Wv3nnCn9MRQ+qLF!xS^QW31sNl{G$NCwfMl!X*IW78- zY0~in=d=;*{6RGjE-YDBI`t(z)lbEYvQuBC7$-Gy7!hy1xm!z=!E|ZhuX5tcse`R? z14RMlJZMT1=gx9`w5?TF^_i8{3mh?8!a7*{K1&7McGx#_)Pv~IGq++yRR3~y~B zTyUBmy-c4BMB{>so^sFh`KGf4Vp7njo(kwOt4Omp$;T7gv9bf53AP+;OZ zD*1;E5DznwSOsP7yNP!bsG1z3OR4!($&+dchxIsBn)Jx(ku|p6aYd#xE(9&?&GK&M zb$(#4{05W1dgf3!5%}9q73a+S86~?~kl>LQ*HM|E-VW4cNqW0neDb1|#8I7HI{=VR z6E~g6cJ!6_rOG2?LFqcobW(ka9YLxla$Dzu?+ulnWp=Q2hr`k<6k`5JA6V52z4x>D zBH8f?TT8M2HqZL_FP7Yba;cP$1%e}ERYRQ8w$2*MvWBv7Nd5lSmKy6)`Z@F=jjB@s zjK%#=?L1^?f+S)>l<3GP6iWayRhx;&1VXISk8IsRQm_pXNfS2u3Ll)rQIqUFKM#%E zgBptK`o-01^CqS;?oX%V&8eJQJPAuOgAhAWO;v~AW zTvEgeslDmSxxVG|3b%`rnyM)yg-alQ@W2L-T11?^-zRpnCgtJv;FULIP_U83K}HuP z;X0*JeM6n+hPapsdr&3O3}wdguUWd9(i(__AO9s#e1-Jwm7SH)-S_P-Vxu(nn#7N{ zpsyy^NCo34?ha}hd#eP9@|85QHVI%h8EPo;sb?)_qeRqmJ+vaTowU3xEeoJc_G;Gh zW*^<#y402XRO6$@Ix3{z0ldz`^l(4F*j8!0zHaH#*n4N$?wh~wp(Up;O*9=4`89uU zi2cpKrq-1$wC>q@R*?F+MPP&B7KYW(kLvnd5pS|3zuj3T%N5EDS7KLTXQ~(Dk71Rw z6ybQ;5|K`Cn>my8%2PX^W^B{-7AEi=y(?_(`6LNJ8X#X&7@=bH7#K4pC6?wnb`n_x z3AskkSC4qQvaX(BMWn4DA(O<;C80C%#iwgT%QRss8r~uh_AAp{94Kj~?0n7>F>fx% z5yug=vZ$a#J!I?PfnJq5pqQYbAE&2_oe)_nn6lfJCAy^1bscxUgPkas1dxERu4zyK zq&o2DU64HAyl%PGg3FA}HIykWbp(ypC`D`hn{ehG6f;R}S}LQQvMcax11W{JX}-jp zF%SG=u@Q1fHDz7V-@Rlt_ z{KST0tT8Tcw19}zicstRk1raLSM^av99zQr($aj@nFb>7k@5PXUQN5$T+ElEkZMXB zD;j1_;nA7FEbHMi3Q#o{-8iU$GV0!q?noJq1%O-;ZJ=mh=xoTOepHOD_QpT`55cZ5kCDGNX4rKN9(deeo z(#Dzq#B1wL+vJwi2ZiDz<@YVVE#kn@NI?C8ykG~04zoLcRSMV~ox}vT<04stZB+Rs z#A=LnnD$^QE>kVxH&(6lF7k7#rdq~?6;&CHK#hFAsVj6)A(c&dKpvGoxA(To4hF7t z7{iF7dslpe_Na~6P<4z54w58eW8q`lR={Or&G2bWCBK&T>bNl78?RRvp=a$5mo605 zjrZU=bq!R&vgW7)XN1w;0VXpi38VjY(M`uXF90Y7-Auap48zGdf%h%DH3I3|j;%oF ztXx-9j!4bQK2W6lY~36gL-!m3or+o2Km(y_;BZ$b!`6EHaaccIOV}w1Dn$Ygz1udd z>qgidKu62V!f=zLVp4p`JRBLlx#5~Ha1~BQx!!vQM(r!!z6rIZte3N%qZ&`6f6H>lMo;^* z{U_9sa~}%Rh%4)Ph!&$eyW55dZmG5R8Z&mN+7j0Uswm3Bfkds`&YLb*m^hCq#m{rx!(=Vy9R-TkBnQo7bGfw|{9eAP{~*{2{AY`@+~1aIeN ze&ZB}h|s+~>tq-TX;%m1ip%M+#pRYX1odHXGm18)G>(^etWWwi8?t9y;xvCS+q^W$ z&HON#Gen~}^npj@#(F^~)@EMU`qzs5@ieo?yCxWMdfjeDzIm74AxvD8AZ+c2ak_~Q&YU(0*Tr$#ng6vLTU0X9z zk7`b$f}1O|7*T>f2OdGO3kiqZB`Ok|}BIc~QjThugoJaVVLs`lF{ zuC%ljCwfzAK_hVUg#Lytk9RVe=J|rM&&ZChlYU~N$$0E3w7E?{KQVs786@lLkXXN? z&YjYfwqP8k6NEFnJ?kkO97PuCcnuri;4dZ(I2=yaiz-sHA|rd{M)Z8&-GiXF(W@_0x9 zz%gv60tRuK5_)@P&9G<9SPQ%_6F0PRb31;nKEb`fMG$BF^6~-(sE(qJNZDJqcjlC( ztveMbT}4H`|18Ij`Gy~9AQlpD+=T|+g=ePqPB>i6XN&V@_;S3yM)IZCT{?T$AWmF` z8XU5#TqY6vw`UVQvRAH|9HWh%q-92IS_`!bzc9v=r*{%E&H^OVxqWjhE>Nzulk zipJ!P4Aum*oXvfCLorFjRoPOfV}s+p)x{%`Y*YNM-6%xWrLt9J6?3O;-38 z8FapLVn6sIt@w5G+KQ^WqR?f+ge zc~f_rLbKonUhe$)?aoVHx3$ZNtf&`ok3s@+F~j?iPBjSAXCU86PZX>bmL*nzw5Hot z4-pxErWnOUIA3s9RyR+e%(h-la0B5>$<}^+Z7=gw3(l~AwO`7-bNyd`RsXK@rv&~g3jwwr*%P%4hJLR6s_`o44Cr}r}T?Aq7^oStNg=D2SA&| zy4b}3xi}ZBWE9_!&QeS8sOENhuIW$UIDt)O5yZgXl}tBgM^@PphUa zS%u5;=SV5R_smXUi*48K?n4%1?ksCe)5(I>$)`+A@ZgSVn@$fR!AGd-aWX}ui^EaA zh%nk@ex|Q>Gl?n7C@b5fzAxU_S?;|VcFfUrW(P)HWv?giB?KkY}cb?PWmGHfxLApNG#VE`HvQh-N=jD$=3gJW8pK9^O6i`lpt z9XL2EC!6JBlFc%VWd9a!1T(dkpWgsV&q*`X_aLfyoTb1D_kjQhrXVb1O%bBi(8H<+ z<%W%T#0K$QTb0^5=Pdzt2#q-PCn^qB*V~t3{2irl9M|w%k&#Ik7Z;^}#SSRu_X?+u zhp{QDs9>$wZ)gxJx}Y~icTX;mEc}u2f>yKzK2lg4>Uttq`_F?d9vl_2$Bs5WjJJ<6 z&b7o`{9;{VW!7{;nJqYP2ZV&?2T!tXAOd&(BrWfDch5Ov^;2;fD^qJ`Y&EOAZM^T1 zpIg^@Gx#--_bJY5`m+Tf*Avx2Ve7OW=D`NJrQi}+45ca~@zF4X&zuXe{`; zW?$@VVD=P9C)x;g%OZo8q5fDr%7dQ`(?qG#X&M%IU}M+A@34 z>xxS5ycTLAl`=jY<=H#g!7|1BT?r=QAwkzs*O1evwoMt61SKzH;>0&-_W6^T|BZ~S zBPP^cnxPAB`K9uBdBXRez$`EfwH4ff8P2!qW$R60>ijN?g5y`TI*F_XT_G8n75D!? z;f>YXMk%1vcU&o#L1oT`Q%9bp+;BGP=((!0!~WF3B--`lj2;KY zVe*3%u0dwoi4Dy*@4M8n1f1D1d{Qz2{c{o37hXP(Xje6-#g$1+I?9x?V8k#uD7>ac zj~^Z5^z4f#>L$y%Qt@R)`qA+C{{C8;#Bq)|Ev$D2m9$6{V=dT_)|6Ud-Be& zZ+>V-n~!AKIoMPO(F*bRPKyHb=hd}5H<<3zm!uo3!`W$e;@2^0?o9$dhxuVgz%He- zZ0HwY2RE3$S(Y)B*aaU!;5wqTHhJrmndz-9ZTG4Rb9Pgz9Kq4CLk|SPo~qnMIk%yd zMNi3C$|WV*ueUhKQ$GKaqIYp^Wq_?B(`a+iiG4Kb5-= zCfNpM5Pvb=a>2ZSGXGp+gE!8mN~h!PWxOT{F&Ce~eqwD9W3^xwIE@}D`%>U$$u|zm zUgOJ(`lm%yU*4K>lGk}RE~$s#jfOnb#5#_Jh3x8nyjH%w=QqmZNUdK^Gt=*kfDl$= z!x+V%A8jyr=QpoqZqdg()5&+fbdkfb*cfoUnIS5(eg*EHL20+VAR>N%5@R@v(m=D( zJbDMm4vt_Ip{hCx_{eR}$EqV3x}kQOM=V4nw74w1)JLECLXJeaUh8QPwdb1)Mr6)z zaH?0tsTy;oD4hX2fKzhb?!8GLuMt7G$K$J=4gZTxAaXp~hp03K3*uKe3NH1}A1CcG zHcfxOpmENb7W_e$o?`w}qH|G}_q(8=>RFBx#TCxB z?2TD24NU33|$^i-_?2#$PMDfo09G&FFxj37i(W(JuN+SZE)C`hGbpW!)c)2oD(m~V`yv97#%3R^9R*|r=<4?*)g^*WgmE}oAn>3*kE+fb2}cKmCeZFn76-1jDI`c zY=^%WtN(#bsuN8sYZiG*se!>yGC;=v4wgJ{j#DSei6$t%eQk=`>197D2-;n{%mmDO z3Za2pv}HbMNOCax?5~mY*8gcUeb?cW(E>Y(bBgdL(K2h-(9FZ;*^6zXU!}X}h+(fj z!!FQ5({MC4V&wgW zlur%wrZr0@t|mM>h91|QZ&^>0`vFF|1;6ZKnczh1Shf!I4UF2jj~t4qxEYHQ7zq$J zL$M|^$nc|L6^-}^D~1AF7@|9xW)Tqb?eG2jn-k4D|G6o%uPas8sgygaAQOkQ6@266 zx>Wk;u?T}K*9SXhRhS{PvR53oIdEM3_jfAw;mhB5qgx-mqh%AFp8 z>MEoSW667!Kl|H&n7~FZ&y$(BG4dxAzl!LXM~wlZrj$vH7(b&dyL~aU)F3t~yx7A@ zNet51{DC1o*da1$GQawT3uzt=t)FetC1Vy@@41@;;$J{uAmi*((_QETHWbJ&Fl!Ou z+l^bFp%$0ubh71k|M<#qQku!q&&CSp-eD}q(bj6^EL^R-)ePji4$5y;TVhrQ72IYq z<1kAC^$czFVpcOhYAJftU1##Q@iKeUF*`MrC66O!@d`H1{u%}K8*I+I^|sW@FbjW4 z5Cf~EZ?SOwWdt3Tk@Rzps49p#@fx_jJT z(R)s@VCjvLwci0mz!hXrX789%m4L8FPU4fIYB0g0S=F-2KWM4h)ns>wL4oob>>DcA zqG8V^Jc^h;Zj?{gQiriC!2`8Xv3erX5(u z+yyNV&7HMSlQ#g8PPJa=%^29SLL1Hnxpj@FVs*emk>d}L0Tjy_B@lPyH9{E7IJ>8s z&A_Y#BF{Y5E`%O0Aa~{M)u$d~rw=qpuNk-0VGe(y&J0#uKg1{uWWkq(Ul>Qg1^L+f z3~j~b3(k7UFThm=g=*r7mw88iLwToj%4Om{&-IrOU=ZpK%euET`S`s*PZ59h>|oyE z7Oo-v9pWHvjoUx=`c@cY&2XM(DI0&woai|;xR&Z&vh2`&H)Re@~)Yl z>{z2S$0f_x)WmkIxUmD%!UFEX-gb9p7h)`U^r|B^U~@S-4j*Yl@n-xwM2qU|ZS8K8 z4ml$iUJ3hA2aTlzj!xky(FSEU^oGef!O{n`1i2a4_0by8_0KI4EvYeUsdF2)XP%@5 z_(*xOeMbKHlEiTMxIq4l(4hviE}ny!M8lQ=;U~1EGi8UTo1-E!`34gPQ0VCc6OI&( zii^O)<`X(L+C~esJrN@q@jeg1_>A1Yq4xQy(5}0QE=aE0=|sA+I;Cekr}N=aF3-s-GA+^O#yQItmnpsje!cvW29d zQMOMAf}AVr8hC~ohL}&()h44-DFyHCO#grxBxsqqJCsUU$5`AZh<- z9=~EFpVo}`hWbO%Hn7RZKoCAjMk07&VDL&r+F!99v|FoQ_=7@}X`R)@pR{Xl|EEDA z4K%Z~>HX=@6ge5ro6WY@2a0E&RdOnr&c}^PL5cojZk(pJO?v0ARxHQ@w+~Ml8kBY! zPxYKt)=aue{d>-rn!mN%E8$!nE57<^Ht9b1X&As<6vkL9-&TqwnOLh~4t6kYtfDzx z^}W&X%x4Ej54t>jp}rVX7~=+!TX2#y*@D*zC6Y8$AtD!Bh3*{Vyl0kWTlEQb1)$GA zlS(yPMev0JN4XSi$!t; zn@%+x-k`7rHS`QgmW*9|YbY+_a@?gV@)U z%saX>{~uNF9o9tm{DDRw2%!i_FB+PVP^4E2#ZUsokOG9Fv?yJ=1u^s%M8E`)CM}SJ z9swmN(uIHs(nVAd5D?MVg34>T%lrM^=RWrjmVI{5*_>?7nVB>5na|w%u>Blk*7|^^ ziE(?>Moic+3N(Jip?J)Tpw=*(RUuW%%BD3J1jqC}9(8HU&!-YYV|b$VJNTG^*-c|T z+g+jW8oM;yj=WMyg2^w)t7qy-f>xpu;}%iu5awdjxohg3=FP?q+8WMD-H+O{gR9p` zCOQLrR|3t;OFR%P_pPkTw0@g)Yb{UDcf%ef1&iDjTVWxoT~OF4Z9Fj|kf{;)&&I|U z^US9r1!%0rbElr!C7Z6xt`Qov8$vjrvWc~ugT0LhO27oUwUfpSJx!-CqY0hk%7BrVgYpSvfJeJQ3kgCX&*7ZMS z$btuYb&>2&@4N@?C)QrSW_U^a-Kl%^?ZL_Cw6OA<^CaJT18o8FSy!^FuXJ_dAOz1u}L;ciK)VPIjn$OwCv8IcYB_tMmpkYpcUpvaY{6$@;MSy5aa$x!X4ir_QXt z{CMp|dEk*(9&i2g4V!ZpZbl_&pYobh(pF(G`!>O+Ra~Y~fulWLa-pvddKq#*b#>XA zk9aB5PPJ+*ohx`aB<&t4M;78kxkf$S_ze4c@%y=Jb+QeGqV>riC??nQPHXCrMnsgH zL-`{pFZaEuuN^125c}BUs+z`OZ>%{31M7KN6Jx)_jIrD)tw(1jN7k^7cHI>8 zZ{bpR;1jPlUl`%dYQ7RekR=*cPaNOQC`Oz_%c3~5i1jUC>fCm6kwnY}jcKViCbTN@Udt zZl>*MDD~96@eIxDkEl29jc3ho?sW$GaoZ&F25kNX@t>RTk9ARJ7byFmXYuXSU$5*^ zy88lS=5n7{Zl8&JNo7i%ioC{jAhQ|4VGSWS?3mW}E=Gp5+;Zl`P#Z}#dn|<-2iPf& z=R=b`Oa~o=0DA=%wU2T7?!w#7bgOJB3~LN=3fpo_2+8dnpI0Rd6wi3jw#z6VZ)~mi z3>|V~1coFwU!C;ixGH$!Z_#sfw-$&6?c+aSV>fSRsXuA3vWLITCUkhtA-|W|+f&M> z0-Z2(ri&7HK0o@GlwV`O;|ZpxRuR>r{W1RAxeuwh*#nm0{D$g6@Jzi}q$ie$rGO>Q z(GJwq8$k3^tyXQ$$cPnE4td{{APyo%EEkURJ7g|+NhmJ`r*^I3OmhL-Gfnwh!NbDUO z--fjX87_L$nhnj10^^9{*5K9pTH7v?+WI$wX&GV#*i7<9{R`NBM}A6b^%@wj-7fssav_h%S&K5zYsu^>>|KaHKl zzKduCaCp5(Am4r3Cmd8l@)<7x-=& zH-?T^laA}vC&@lu;?>+!v+@+Q94lC^n|}3{{-=Gjho2xGlJ{B9sQqKdWzd0`j?S%& zFK$go_D~7~YxF!8Zrpk`3Xw1kI+*KmtUvg@Qcgirz)7K|z^I}_dT5~@WgpV>T`z`j zPQVyIDsA%t*tMKi3Raq;I$Pr<6;&@B`4Qzf+u^qUfahk0awApD`^!kWuU5X>YY&f4 zWxmpj0igHZQW1PuiBK74AFW1PDC+GS1q=yUKxur5C>s-kG@uunZ2{BkB|>dfCYQs_hXW z)6Bm0)y?|_87A2E=H`6gDX^nfR?lAF+~en6V<|#YVzb-gta9HFImr@%*drHdt7-lr z-7Rqm^P<7Rg=WnNCs0!PF|)z3fWZ5?sB=h<@91y_y%otH>}9X2yg^^lw7_8?Wch7}XMv)?wFZuQEL#R*e6~UpM5i? z|AlpEofXSEb;TeT;!d(xF9S{HbNc+fcSG#X6`Mp+K4S}nz|*YK3(KE>chDH){qkrt zwP=-m!;U41rm8DX2p)GzD;<55{OuUd_4dFdj{aXn*^VW~`f-1{^x$*ie1qs5B)Z0!2+ z5R5cHOW6#PuX|J|z5MMP-r!bqy!6+rJf*|#QQiN0-yf1RQ$5Bfu7wY@64br;d9OG5 z&vCyYi&#zWmUami@T)y?ynW5G$ka6S8)2_u@ao7?UAOs8A@SsIOm#Nq!1z-Eu${)LaQnYO|~!%p#}G=UF_B3 z#y73wD(1D$h&$Ho)IqK9E+|I886yW^B>xV$H6AAh5Y#rbK===Et=Ztgn-00B5-r2= z`IX#-fG~%rh#^x=k-2@OM3F{O@jk^Fuq>n1ohOt(Az&kUR;slNejbR^%fw|RJa;u2 z{BmFW`YMzB5^H2IdmuPv9iM>oIU2o?fIOF&48m66UsBwt-0!%Fyk{zzA)+?E&XKr{ zY8^{ScqCP(FByt6!kgkR;N_>Kh=`8#st2^}pTSK@G?;sc_`K%J=Q%;>DXNUi zji5X@icG5Ro#HaW6P|j3-dwgWnme{qRH6vkbxfby#j%Zz*$h=TZVH4k3(A`1v}}kc79dhC zRq2s4Np7C~bd3m#g8|J-pn>wpL&#rc3>Spq5W=hVJZl)D6r2=YTh-*I&P}ixRWYT$ z->L*!V^d@!QGoU5lNDbuq(D<(XlE;tstr{>QY)-PMqLyn)@CHU)icztMeq=X&-Uf63s09| zlxWBG3;3ce*d2gyP%;hwlF;j?rD(%MZ(PiB>Olt<{RJgi^*~~W*SC?BcTZOt39x1_4!@%wNZBbh09*0iW`{2x z0~V?J0ZSv~y9B1T_5ye3F1}DIq^#vO!?iy5X^Idh{JXmfv2-4DN<^%u# z@`ptLD-CA3t2 zA?7aJfR84GE#L@{@}f@m$2A%32GMB( z*Sc;)yf?wY+N~}LI4)4$xfZ*s8jL$6WvIXgXqJinRp+ot;o2dbUUdy^SFmhKW!nky zzCmAM5^PbCKOIr_boX(S=sRoWedE&ZpHk$?OiS zaHESJMzYXGo^kzPl^3P`Ha8n6VV%(a6tEaE1&ekM2oGAv!r_`4{ICw2$+hR;{>X@)#gz;@Jp!zo(Q zamf$x4$7WJI64wy!7hOzvY4VVfWYDLdOnD>wg=WnW5}7Wn4t@UK<-@^m~Jz>gJA>P zQcY#wo#Jg@+Lyzu2GSCTeAoF0JZa@E(|e$|LaAP;d$ZrlADZIH(-cqjFAPasf9AXdX&gcV;}d6?r~KxKOV>$xObifYeK9u$r`w z%ApG>;0h10tnA&fQXtABM5d!`BCvl&g@{STTAK0DdSS+BXUsVYg>WE+DY@a&p}o~B z4cRB7BZ+D>i29e#>5toGL_+qfscA~ZTJWr6bZ^8rTJCZhuJf2l^mXS$F zb(Vnx!`YV}oC;pH!PKc+E~@aPZdH9v79t7lBL>%ly!DTJeDq{&h?+DTcyP=l5s_jhgg425x7G@84^%b|-Qhxg| zwO9aUuHTUx>taN$u2R78a_aDmu~LH!Y4KHWH!mDUw(tm}!y(;ans2t^QN_X9n{g&Ch(xPD67BCaHcz4F^Wz0%j}H$mLB<2O6K)(=cSr z!)4_hYM)3bfw!}`?jawTnnaRnB%lmrOPeX?N1O)t?WD3aHN&Tv5k3zAYwGc2RtLtf zce6mhXMg!lo_=pz6kU1=g=T6I;1bPkLr{*_Qu>dS>tq zfHV=l=cRTphD~2uJWBX2Z)lbsz1}tYUd#n;VOQQ!tY>_PTD=M5J)UytpRz-n3*VYE z=;tvflhezizMDM3>#zQs2yhK`s3P`ae+Qz>Q@;+-AERD3UPmCNwiHgkFL+D8^Ev*( z+aiFZUuN<~*<<%x_pbnDpy0=+?!P}TY88*D`yKf*X!Jv!d>`8vcfRh@EaiWVo%b96 zC{DdmIrXPA%us9h*?qV3|LbSF*r4&5Dz!hDObYGPe+~5FyFScH{6vwzZtqQJ2lM}` zv)+r14_;oSpQT6t1vPo(oR5-T7dt%!d1@7>k`Itlfx@wzyS|C{jLZ=(^Z z-CwuQ^Ty884t`FH54uP8u@1o`|Fk~U{;36<4*Rc7P2idC<=u~hmwt?=@83CnDZJ?c zFqXw{&FSl4RO`RYit;t0 z?Cej}_7YI@dO9^{X3nfyzK@Y9AzdbTCQOCy7y3~n`6%y-$@1ZUZooA9Q-_Y8`64f< zkh%2g^{lIJVd9UlJC&_(rnR}xvTamOefQEl%FaIc`IXeKrqhi_*`(|L?|IuF&U4=GO$jUan7w`Ay5E-`UJfD+xVe5d`BU>YlHs`)~dQi7cNU ze!G`H=(G}c^jBBPUy$al_b$en527#K@;N=Kyf<@cdHl#`!hfx(wrSzqf0X(j1Kpv| zuQaF2b(p3e1sGzE&emU+dZVB_cKoL&iR51QT`S@4KS!i~<)3EgEPHZ){@eMTw&qpNoyE)@~Jq7j)bulPlM3 zluzw0NGu6rz=c^Pz7;o7{ZBVw`m&Qz>9Y?EK7HCpaf5Q$Kj+$c!f;^qKk!%r2Fo0SoV&xwLMC?28?z}p^7R`J{M+93Z2A{ zE;69{`R&kaxUhU9u4xIke3LqcxPn2Y22{mL&119!_gw-=;$A$w2{*Y)#K=k%!2Cf5 zCscIu5M;qpstD?VNX$wx$H0P3A?Rs3JNO5b!1XHdkWsJ{pV%M@Z%UD>nDtuE?bLTW ziwK6QRdxK_GK71`Xk3r3V*xO51<8v_r9;^KHd{Ma3*AP`yhco90i%pk5!M`{b&2S) zWwCIP6mM@18!I)+ANppu`NFIzs!ol`crFoJuyLxs700HR*Na|7p2IKlk79v4bPkZ= zCn3wkyj3f<0%|)IsB;)L$DK>*oH{so+_|WhlTEJy5YpG_oJ8%os(0-F@1)!Aem)Pt zlknZCaKr{Das+#j4m7SMi5(MzZ<7@rQpy7d%7cxVmgwM+ff$#Liky0os@+vgMT`vo zWxWSl_N8|)Gin@fT)KJB99i%czZTiO^Q zskC6|k*vbOcxtO=@xRmnXag~oQS@0XjkVZhEIQMl>Jv3P9`CkTed$x#MBE&nwaNVX zggmpF1q2Ek#`g~Hjm}Mc1&BiDo}l8cb_Q=3feYlMejPS}_Q%gif9pY=QY+HFVjxxr8(&ciuh;U$wy;(O@1%zqC7P%75L7j^Dh&0j~t;7 zq}t`!@GA(Jl5*BBv~aBmeSO`!U})I#JY&?9Ug&u4!Z53Ida8rkuAStJdgmWPOIN(? z9m^(J)wdm-tZTRZetYzE^q=FTyi3v7*em1WjZtXa^Jn5Q(=+0OtAQ$rnw&QZb3xVV zzTGB!*D@C+W#?bYodDmuZJ3&&BDuK0d{@vdJ@brIYD;>j{ovs|rd?mCF&@SsDmXCG zYMl?0PwujooD!Yz{T~Jbvu`7}o}Cf@XTbCA*2Sk0UkRS=;ZN?|je6*iQ~REgvV7rs z5M17p8ZLES-!Ji5E}>@Q>7K?ylKzKt3g@=ci?*0IP5qR*iVw)%j5*~(7(Fj|p_X+0 z7j5>KJbI;$r1zE7iDYK{6G&HP=F1wl=e2*`5p%limZ0_EW$L^2S^&SAA3)48wF!8+ zD{{m<>9Xrt4nKQfE-pT$m22;;FZ!*%{Ja^OE?E0R&#{#v*W>jM`GuMw~ zJ6d>+9~vr4T4{&^u&5Y0{p*hfUYr8*l#-C+wFPDmNGO@zLPDSZP{e54V+70SQRUNc z0L&+xdRF=A)pJ|}Uif}oXXaC(<x}fd1pRKS_7poFnXI4Z`nhBYWg}dlKJcJz z-sT`7!`f*RRd-Qm@UH3$;o4nufigC{RsKf#?KI+0?>g3~6sL1;VMlxNMxn|fs`@p# z7FE5rkcUG@vt97M(%1DdQx-3Z6)``a+UX6g+~6aU5~1f^-RFMCAMe1OD%rTuQTY6i za`DT*AfxX{1%2lQmx~cwtt?jFQ$|!!g;uQ!>P+&Ei=%mk@a8B+iXGy0U%oyLtbNTV3_uS!he-z1638K7{QWz4}+%|GM*e z`wVC7KO|nBZ8P}D8Br9cc6{7tp{a$(>mXgwQMS|Ml*vo0E}6tn88T^ON_u7v>Dl+6 zw%mX3u>tsX0c*pup_VZmvg6oz<9ujNR=ramG4;W$ z&%>@O6t_6{tv${)?=Khb(1MR|ccMdnVhTabEK=+mw!Apf>&F=G!>=vUXu_pp4t#%KRxo88vGLARf z@?QVDIFxhg@i#(jKWO2~pTmLuCUcoBwF$7b=qo7}(Z?l8?+?VCL?>;N8H>?Cc0Di5 z^Akw|l}jm9MekgN-;0{j35vZp;_Mc5q1AJKY96eG?=aXELX0dpxS=*ASGS9F%4QNP zpj|9Jp#y;Wei~dJ{hzwN=V#(qjvq@fb`^hir##h8Hu zR5M>zTL63A7&u*fyAV@qCQ$ElbTyy~`6tv>)Mq3u!5nSef>WM7kjuXysjk7vW{!#zEtg0+MFL*ul!N2ocL9H| z0hOm=dbEGQSVs00Cw+R6nEE`Q8MV{k>*2A*k2AwuV+v4$+U;6K0Hv=*S>O@Fxz({W zvmEK1a*j2gpNhi$#HGVgKgc2bjjj(evpw7Q_86>twzTrhprFn3m}442@ny1QVYV*s=N z_Q8rFN?VF#dc7P>!Nm)gguXt(+kJLqY8YrAryeNj6~Rhc=dU@2gz z5v*{ygq2{ohoaFcedtA?={?GxI5(*u6kn!l~?ju zXGq_5KNt%KwjPDQZLTvbns#y;_&s$ARXWXf{DN=?aCT$KY5Fo5#F~=$;{6Z?K9Mccq3+2wOa4`@cBzbPOW>^oudM) z^gGW|8~ssHBf4!Na`VCko_d>KW{S$}Ge45n-iv?rqu5@YSde!%C#R|yq8Jj%<^kn0 zIvM%#SU=jwIPjS$R<+!++doJ+-R;R^mG%@q*da0r)`(GSJ=>?+f8lzfz7^-IChx-=J-(v^yCGbYbNji{CmB-UaYA; zvlTx(b5`z#fGTyId!FAexL)WCwwN*Y4`_aMU4D$)TlfvQVNd>E#s`T_`Ky<|efVxH z0}Huyy~?P4$ktpvwEZ#h8|*@#j^laW+Pfs_)zc6%Rm-F{>c#gHUaJq}1YSlPv3_2q z7ftWk7oW9zHnzTQdhguN=0_iARK7Tzcvf)rs7kYO)T@e%m^oJTpKv6g|B7 z`bp_o>hBM44ZeTqJM!+ILy$JE-C>P@OKYKz8lcxxf%1=~7qyN_xoVw|MjWp6tMI;l zOArL$pN@8`lwB`O`S;>E_#OOa`?>s~)sTmC7X#WGgm!qDMew?$8l3fs)^VYM?5o0$ z<8~hW7BKBBtuFfdr6}Xhzrp_$+Qkbm)_I1>Zh5mXTG!++EeQ9r}&F}H& z?i0V3PJcUI{w#BDx~-$CgXz-QyK1jdDv*}2b(!=9{R;@jn&vlE4pkh`jm|kS8d~BN zx_lXOTeRk0l2OFNPJK(>rlqEJwZSmPmuYvxuMHg>XUTmTmxdS6>0L^uS85 z%fyrHJx@kzdR4x9;dQ}Ga3$=5+WkU#$Di>{t>jI&^QS+21pj6|-JQyF9$zP2AECZ{ zI5)f7{U5A&^% z^o$Oc=)O)lXuaNk%bIc(C}BkgYMkCmt~EK8OfqHW{xfY5RyM`I5*?C}zx>@g67+c~ z>OoNELx=vaKcZ8jbhd`N-_?j6J^vChmroXH%wl|V#!u_fzCYC6OO$N1mvJ2lHo!#I$YhYqt=d(Vm^<&o+PQ$_`Sx!TGgh6-Dot? z$?px)V-<@K=_R?n)IazUMWoc!RG+~=*}5MNT@ZCfTTxQhEI)fGZVrC^C|I=I|544) zJY$zo8Fvhz%loBf75+;&|DdsE;+=AHldT)nCGW`_hnl8uI$i&qGyCgLw{v+d!M1)7 zC2-xHc6_F}Pk#2Qi9^(0Ve9Zi60i^7Za5EGA(@K`$*-3)`fD%(7fxCH)_BpD4sy3V zh_=PAMz{ii*m{wyTK8BdffZ`y2|ZTBMof^ObD zJ4jG2ub7)&+^ z{a9$U`xsI3!A4r+k@1K4qqVR8j4G)1$^H>-iR_oVQo=o8+*Geg6FEiNnv%3f}Iq&$4ZivO)c{ zpFTgL0o$x%7BJ1O5U}c8_U=7LJ{f@*OBB!Qu6+9QZoaHBuK%}&xP9W=`60#h#~E9n zdJzcopb{a$OT6}SpQ5A=S3E{+zK6YOtc#Y&ML2VRC^mIFGUXQ$9{o}yWQBaT$YplQ zxp#=P(^wPgDdwwd<9j{LCnds`!;-ayA=f4(XFU8}}l|!rN(g?zg8Eb}$0Z zQYL*2FhA_GX1WWcaO>rkx&g<*EIGFwt=|_(>}@~X#51x_OdU{h?3m8%t6P#jtHb?_ zIIotN9iir`J!PF2lFp}Yw&D8nzCQ(JKD_Vwa;c+(rWJNL-4!8@Zxg5L4%UPeOFq<} z=bO~5lj>&|2fdO?ayOHl=$m_#Bzf9gTRzNfr}5bPsTU(kH**JuD*^tj1jB}amVj+8 zQk;4v5TkZgscclq1x??clvwpPedt-QHQCTRKlk&&XvAJ&OH|Lom2=z?gAvzB8ST0* zC@3xBy||yY&+6HUN7PI_bo?sJ5Y~UVz1)u3f0$PzC9sX(w_~Wh2bv#?k%^xcjf}PM zF|X&gu!Q*nhm(}F&P8w(P@4}HR7q-#qHd=Md8TuQ2aE67>z8e#h_ZL}r8Q>?>`T8? zH4W_4S>!=H4zmH|{%VJ6fbeDi4pk$Z9FK@>vUdd~ReYdE6=H2~K^IbWS9S#PX#hT- zw1i>~5SsUZ2{~0DCJ+gT=|#2ypX5N*u(kukQe{DFr*;^j)kFpxsoIe)Mf24T)J~|Y z@(^tjEmdvkDnQIYvvznNxK6-p<@x_~rdj}z<6Q)G-@XEh+W^;Qt-vfz{8;vb?RHzo z*WH*=^ts$lfTgf5Q?_cPp>|k|6H;nu7sSKTtGC9bRl$WErOP>JXi&*9GyoAXLgZSB zFG!++gA*waNj}CB0iHQ*(Sf+F$hF`^sRU5+m=sZe0#X!UuR>DzQZ`s%#Pousr4)v& z#Np!Tr5aiBX!1KE*VG$mDXOgkgaek|>iPh9t{LTP=cg#)r{elVS3n{Iqu{ULwsoBS zz_i&j?UCn*9Z)y4;MGR&!ZFN@XViChIc1U;yNr^+K=~c?Pfbx*9P}9od|OW|;4djQ zm33cUb(vz-+B6jrJHmuNrbS2!oD%ZfAc7~l+*Uhsj-Jn7&Fy}lwfxBy+YO)M0^K$L=zL3e8;X}6#fJrL#@7#=7Wwb8yqf4QtLCrTd$$MsXBB)^Ijkfp^qU{I zR`(uHbZz0g4i4D<0H5FR`lhk6{9c%pC$^qj(UjQNdf*SY>z-7+{f(KqKgxLE4Edwz zT7Qj>V%WdmT^t|K0ug|J_`aub!b=y8oG-`=g5AQv=4Sqlvl*dSTn~`}~E) zS2gbg-;S*vjcdD@eYsGl8Q&|-{T}|diQywYX|~Nnx*q6mg2Vlwf)NUyzR0WdesO2fuDQ#l$aC^d7X{ybk*{_%YTYxsvS)+p{jm7#tj515 z2EB*E*(ZV$zh0pTl^^_Sp8Qgw_X|ltxh}j~=bVaj1PTfe!bT?cz)yKZtnehK~s<% zUC!=&+iwe$=X(7?@zOcv111664=?R}CC!BW-zQXmzjk`-zQkWpH9*I1_3EkAIsNZf z{`b(opk2z1kHx2doCiMaFX)4+#tY>a5AEMB{{`WH)crpC=Q;LC#b3~;C*uF>jXW~{ zkS8baO7qhEY0@vzn4yu!^S@w*7cADobw-3+H{10N}Yb*BWlrtmvALMkt zG)&+`mg&NWg65UqOPfn|Ij=RBwLyeoE8KorXY+zo=c=_Fw3pZFWw2Gwo)` z6MZE_D2X>(?)J;FkuUIMp^D@~l}S1Iy7D4Ax;GU-95yKUP zOFJJ!OhBInyyJYT4sP!>Jov(zFoTLs5fd7B_+&c|Q5$46KRdpIPW*K5t$M059y_9m z+A@F)z=40!5Pk<=yqIS-rpAybAxSgI0*%BZXd{snUN0^Hg5oaC73|@UF)W(`@s1>5 z-z#-{MNb8L9O)EBOvlkvTDAz#U_0COZ4i zVzNAxIQvrjG(3eX#mk1sQ>jgqp&p8na)_+Pxu2Z8qnf3O6S^ZqA*yqdqLlTr>70bI z?BU^TI%6!GqethUbs|eg^eAo>aSV1dE+}cSYO9`VnoG;VU!|mz6m6{%){HF(lGqqy z3p(4Mz@yabl;_Xq2CVt^=MGVFSD#SjYc;R7sGv%!qNP;ZrxtipFllrZ9x*D&lR`Cel!-wE0dNpr zQ0=gW-~r=SozN*a9zL!T&>aMYBvJ`@lGK6T6n8+&F9B8u5eL`2YeAui`iqI+2s~bp zklJB@{4s=S@jp8xS2fRn7mb8#rh+;AmcVzWC=ElY{0&8h;8+B;H*3f`S|&NHF^6l1 z><8tJ2>^xAX!IQ3`!V4y^DqmDk}*au#*Yv`<<*E8FeD`e;n)^SNwy~_mG_r;4S-qC zK0#w?76WetWF`!8)x)0vCWxoiizMn* z!=s^|bj}?OE0?T`5Xj*8+P&Vcy@44Zl~&!3-agD2(@!H6t9jRvw3iO#8pxh}|{ zoqfr@P})@Js3%miiweotu{UMWzRQus5u65W1$I6AQqe2xyz`V)0H?O4M4SW zOkc_@Sc{T^VMFV6NekzII)nxK$wWU-Ge(pIu?Bt|Bmus8Qo<<$GTXfc@vl2bEc>*! z!B(^`;&aiHe^_aQ?r=C8U*OvM)IC!mR~hOMDZcJ9uxf*lnSO^xogq4x$xJ#?B^}Ca zA``dC;B&rYievyef!S##pbrLbYLcO)n^6*`&Q$UH>MRm4HR&3h8bf#K8eOm@0FUc9 zAmsp&uI+(MGlVSeBQjm~!-I+3he2E=3_(>*tqJW|S0fQ)?49gwTGk?fmeXrZ#$(@| zlu#Xff|KeFKLr86d=#MUvX67v#sdgHTa%vT99-K@5laC6DyV#17^;z~jxS`pNN=l$ z1OWWtEj@<`CP79PmGt)8>MTA4Wyw+Npzr~{-dyn9f!?f9KbQexbYoUirnIBjwu2}BP<|036f5iRQ@mD^gppp z2GC?I@k$;=K&Fc9Tiyu3dPn3r`@>k8Nuop}5@3r1NgTkOr9jC_Be@kGz#&mHX?jaD z%W4puHL5fW({!euC(58PH4;8Sm}yX?H->0a3C;?U@U9iM0A3G-!len=^A@QIHJYx9 z0J!c${Oy7zm@jrKEmh9vTzBs;);hPEkX}il0bCCgho;R zfJUz+sDjqSYHb2*6cr3WAD_wbj$KwhXVu!w)-a&-Y~Sk^o0(qHC>CDUjEv09uCG*) zn%Df8l0$aUUvs85-p6I>zB=mjEKdDj2o^=R(kAs-z3`AkK}ax28^Thdx47WNeeQP7DhH#)l*tK_M9C z5zhcR+aH)T9CQU)5h-E?%rao#Rw+)9v=Wg-02nNTO+^1O5alD=uLA1teGjtCrxDn*swQFYqkHZ6yv^3+dj#l8}(3x4IH+ zaCrAxuzgU{3^!L1yaNLf5G8^bU{I=}Q!Xs@d4YyVQoYEXCRQ+4MLRe6vS_dWkGsBx+b*w>n1kLl`G%1xHYK+w3C2 zM@yZ7jl5{^4w=A1XH~FoPA{M`0PT^F$LlHr((!*x-EIEkt=9eOt2;oM2QtD70o*t;74unq# z>%V;8QEo|#PcFK*Y)XuGL?9Eb3sq5}8ezD2gm#KKNZXTm;6l`MF(g^T0+>LKfF$JO zy3pz-M})hfXUx?1y$^sG8uqw4>JR(R2f#-sITO__2v(y0Tq(1FY87R+=<4_uz*@1C z`edsTo>n^_i|qQZ&e5&swd`)18CsOKn;s4#Lp>8w=-OdcR(7Q%B!mn;7|+}pAn$S91fs?uZsJ-RDw;#{o(&Aak76RHC?hRZ7eFPaT;W(Hfko0SeKjfK zJr$a%@Q?}*buA}fDO2coiWA`PsVnm2*9rcKGm0{IQ#RzQCtCY&hZ>K0;^ zPE9q2Tm-v77hVRS=LTl?cMA(B{Qf&HQQA-%CRwE%fbR?M4n$V){)I;ralqyRq!Ekf zf0Ku3DjK)gg!JL z@DfRu{-@sHnhk)n379~RvW-G~m_eV++tEGfNxDH>H9vtIrU;$vhHUH}M60Ee`+x{~WQw%j%sjK#Y;U zsKWFVUIuMLG|i(T@|*L1wz% zL99T8jxa)GiI60%#4Gk?Xp$xwhDp?{Xm_g`W|Ey*9UK8P6qaa%m$cx7P+;H#L^#l< zB4wCQY!)MQ8^|3B9(HN}jw9H?h0MeynX>-^pdo}ffxj2b14ZL@s)o^)L6{kDcr-jK z24bDzBAG&?s{nzl{OH$Hgp!%2%%JRY*K3i z!f&OSBu)S%5E}650SgOIUb9w-A*rfXRs85;4q(V*xWZ?QEE1WdkULHkNXjyxW;!-~ zE1qNd{;fBVQ=g_~wD761yn%fSgms(kJ?I_eJ>BXC9QMF6xd-SEAlgXH3V|;5X$FSw zp$Hxk$kl~80J2ST6__^|S!OOzFQW%TtF!<}HxMHhVpXdQmXSpVmX(B-MON_xJL91i zq3J?i5?!%15zvP-9yRQS5*nY7qih39vNS`wxCe%yh@^N)SrBA__%%Ff88N*ENGNS* z-v%Kp5xgHs2<3(!OdZ#`TaEvoV^n*;nozu=;1yHdjNk(ldXuHz)7liV&oGA#0g&ERXr69 zNZ)klzJryIhrnk6s8YbOY8ey_ZD>bO3lO<3hq=h=EM7=R0cp$9(#VR7A_5o>B3iiy zj%1~@PPaMcb~TKDYszHR{|?{LQcL5ZVDDjxptn-8=0rx2iRGyw-X86b<< zx8@a{C<|PbhI#&?(Oyn~akP$&?!XdxUcw$Y_(MZQy@6ea96V{p7#;;!iJA=$u--}a ziUg_*8VV1qgOj0UqTW@*2pOwvW?1cp7{@Bw4Uh~Qb?|H&$X%?UcE)MKmE^Ax0!f6O=cbp@S~J;+ zi8po9PAxi`bxI_aGubStXLVRW&qAFvo*;=W5oK4^;$gR)bn-NE#+bf;wxdW}wbmB(T{8 zoDTt}1a7<}*HWND;IdIIU_UjxB|>A9h%m6lGJEANmQCH-C2pavVL@}Y>P`?3;sOpN zssq!7Nc{?BE#X+d4pA|#qD3bJwuG$| z+B+*H`%p8ek6%z)PRrcM*(G-4pHm$hJ)kQODnj~b;?(Xv-1&q!Hc<1AE)jvxcwm@QcZh6b9MUL z{K<*n!fW?4-1W+DW_Zxk2$%bJuDtx*cS{di;W2lIYDlmDN7RSbONARzX`vB8_ZhA{ zPoC_)_>blPMZ0177ma27mkN$K`C7VD>D%xRtGDl7Z0SFLs|<$~UQzrAwYsW*+X2^l z{ULDwz87K>o+d{7pCUl`lVoL%UD8w++n?2Wx1Tyi*)76_?;n-UH2K%69+mE$V=SAC zAPLN9fV``%j0uC!sl5EH`6smk>V`}?;%R9}Nd2MO)5*<1F#>&=?Z_Rcyl)o?w{?_<9f3K}O&Gv_k z)A@q-(39_B;S;vatLYD_um#phRJ&QaF8&Ks{{E^87H`?{Hf~*eAopl4>U`()4?#kt#elL!l2fL-!JbQ0xo6R> z%!-M*a&CwB7JFN(QE=%W40FecLwx!9n^zjEvs&+qk~WN!U>~D^%|6dUVHzeI8~}Ru z*Dn+awl3Zkiv@Q%1UsbM`iw4adL&XH7)!q1Nb+pXq392RS&+5egGRP)Q=8+hEx^>~ z&mZ0L8!wfkz|7mW+Dut*2Yn^WhhJ$9b^69%DYuodt`kgf*IsRgu{hFO~Wv1W6h;JfFLyds?{!snK znziHl~H(Tp&u+EzBg2N9`u&{(l@# z>zO&Rjqm)!SDfSYwM}7+kIJ^;yn^zwzrI$#U8}3w;!xxuBdZ(2I>$D4rz_TIGCqll z@em6!p`al?j{35o!qqm@PoX~Yy_6fNlVO};1 zMHoCOYo+z6m2bcIehbLdR8uI2SO19{gXCDS2>H#s2Tx3mq_ZwU?v zyGZnna#;5|+V0Ay`4H@5TbPu{Z4D$_0m;>25+lGucHUjt#-dC>cYE*qSh*utx>I{9 zX&L%qYmO0KDb^y)*K3h8`)eC=#OIMO4)eY? zoi-R^K{)**k^ZtqnKbFS9)8V+z@nct?>tx=MccEgI)kUX?)cxkBX(E7C%8UXIsksA z-)~oUNNXY*5X^4p-7f($Fd{S55YJ5WcYY0-U7|%)5z$tH>8m;hcqoOy%y*OhLmijB zK`bL{m-k!~@)lb9e7?~}l?AS7Ko2d)0Ly$R7qYbSU;|vnhynAOu2Gy5d(4J+a zUog$~iOZ(bJFzwKOd#;|fpkBxxd4xs5^%2V?P2FgBk5i7u|vi*UH>q|*|Mo90;ExQ z7Ur~-6)vAJ`-Uha?9vjvC=y1RWcN}5vZtv?|Bu%k6&n$pru8con2>NaTarebPr-8d z4?*ki6y{W_Uro56mf5|wO7gF%#vdh~jDOix__8haIlG8Pf@eRcO2ZULgD&p4ijtCk z68O=yVn5d=T}~?X=!Ly-`t{4~V;Uv+6|LnptG^#fm)1{C@W(mn2lMc;--5sN=i(VQ zb|@jQ7s>ieTA7@McgqJnsw=TMK%k(%Z`hWgT@ktLbXw$6{;;@S5hJ9d>!hPPEUvMd zIG@M!Lb=zQNUNhu_5*(ZN4RzVKd;F2PL3n!Lq=iajYa_*yQ6X(gQG_bTmM`Kv6R^S=?#RI=ERDaf8+8voO{?_*_8EO$E_v)5uQf#^R93r} z#$Yf@kB?vRy(?R+3{UVc`xo#35ENZ!{}$|DttnD|AN!iU(+I1~%Xaytc@NGhqkv5= zusR##cPv)xu#fNisgheH+)>iVmW%T(`OQ%gp~9T-O4qDk*;v<%y2?zK&$%|W6n2{J z?7wFJscEt9lrQ(F{o><~kaYQ7bnTt-HRE;I- z`1sM7K+X_-h7pzi7>CxSzAL!p$!1F@%19>q-9hrxHJ6eSiO`{MJq3!--xS0~JpKj$ zK4pWRJJ?0n$-JrCWggx<`B7ly{!%20X5$Y*V$sb-*D8J^V9H>R>uOG3jc{Zp)O$KZ z^hg-JMV9p7#nij7@F)ETcx?6EnDsQ3e@Y6Uyd2mp>7l6GnHx3LgihPQ^W%n2$Xl2{ zx|S3G-NRf=-)NVl5of*CelW0KgGsOS(URbJsLi}%{~;^X{PQ5g!M${rUP+x#LoxH& zj&D7i5MhQJgU&6AK2Nw}=D(lF>yjwPPDKp&1}3P{b|2_)%Kd}A+Wl47Fn1v1H#=9j z5~|ADs7m&>VR2Zc(|PaeHC#Yci(+$_b!p3Pzn-Nqz}wVz5#;!XQE>8?00MMQu7 zr*z?K;jk<%ziS?SeXVrWyet8R?EJB_qU}dadqSJ@@J6YSdczW8xJEB zNgXE{>X2QdS8P)1eZ@W)X3wyR;F3UWN?8~toH^xze@CSs)Ye8awG!Y2++)Mo5QD}o>c_3mW^MZFmkTQm@@&cKcd*?!aCSgMcX90as z;H=3gmSy?X$=aIax6ShYOw?ma-yM8_JQxVP&?k-$`^Y#m{cgDBNHoxv&x8AU3sqyB z2qs&doFiM6oB{rPw-Zh@Glp<}GU#Wm>#vxM?c#|{b1t&pl^+UpFdX_vps%?;FyZ=q zVQz!(4r*CNg?gGYae0qFm8(%!L}2J#&@{?ohVD)3KgKq~sRvF`_r7d@jM)gYiT7@f zv>@AU&r&yx(>LUA@WTrP)ju<#?Pv~8>!3_!NRW^hlD`LM-5)pV-zrAA=*&7zF%-xu z9%wB&sDmf%XBO~oZe716U;H7cy&@aGus{f7K;mB3SBecs{U3`KQ~`ne$J3vdv}v84 zp0s!n(7(xx6H~E(mBMna{`vifK-DUPhuq%r{@uP;Kt`5ezSFRpU|T6&;YV5JQ^|6H z9M+%SZBF~Z)mPy%hjjG@eP;cJh%G-ituKj7I;a1*-M6*bW}W* zj2`iwG~9_e?A5}P3Hgk~b@pg~e>wjyt|*_^n@lh9kHeDJ=vzKUarph5Di>rj zHarn+nCy=rv)`QL({KDq*`L@Ouh7|A;wt%Sh(FK{&gXn(@>33c^n(hA5EM?fOulL4 zp<;LGO<)tUoQaRp()I8Z9OwOfxFpM+oUWI9k6X^{280=O@86esAoIdx6ZvCWin^u* zHLZCk6Q}&@d1%+fv>ZDASN->}5T0Zw`G`|n38eHqbXINWoAve62n`)yyF7w7-A5JY z<7vM`ZS%TTedTEp5GPWMK(%)ZtIPuQg9X*iJ{Js-Q%PAvm zR6CHmJr(g7Rn{538dLkykogU`XIr)(zxh3^xvck5g{yijlPfkk$4yhTpWt!PkqFIK z=ivT|{x5#Ie)w*TlhmMvRZf9khkGV&IYDBQ8!jI$(?vQM#p>QriEd2DwlSo6Xz@lj zk8AZGN-g{NrO7?<_w~-V>uRghk5f3Zs``!1#wKUq&1I=Sv2=)t))8Jj$+;`Q5u9zT zD;(K?5WJCs7v1<672L z1cnQ9CfrfiH?%zLFEli5Yx&_JsCLv4#cW9V?($pb6S`8`p%vYPK}5e9wG$hcpI=Zz zh||^+*vpyj$OHK-4!sJFCk&1K6C7f_#RQ)DO*|We0~|F|e+VM(mxFfWL5U93r#QHAofFDpETvyV-+MOq=l{NKM;qxz1Mj=fVN8)vnBtr7EG8}r6LzX)SQ?Z8Ec)V=qy0Ahht4%QKz)U-tq21bX3H4w)VPnZ z??_<=jggZkYHHes`4?5_+H&-(dDu5DSF0Szu93aYTIYwO=GKPC%#C3Br$lrJf;b*B zVxq`mHLCh1*1eu6v~4de4=A#yv4hg$n@`5mfNVs@o0uwH{ITouvZ;89f#lUmtfPa_1r+G zS3Gd8jG!7DrF|T&P&ohLeO+ft!fB#>`U}pD`>$iGL4uEFXDyhADN@8EsBDL_W@lyF z;fX3DuPXp;HB<7TF~Z`h#t1Jv3uA@;mBa^K=c1B^&>iKxRVT>=G8&!P)q`xtPuJX$ zMV_?GcDjbfX>SzsK*Tsnk8N)!=Sn}1nRFjt)`G)+*|EJ5{j5?JIHI#HV{0wZPg(VA z8i|Y)cXfe9dzQ9B=48a$_*Bp1FV??B@1v(yrsMK)v2+N)C4A_~C4NZtcj=+!D@O;5 z(=Q1i$6@yLe%2^X4R(%3k3R(WvRhbK;9nDKpSe3w^g9TZN`Ak1Ab}W*PGwIlua}-N zI!N|PmYm}^@*|uO4M9}DJErNIW2XD`9hH~j_lu%-58YQ)mY}xJAJK53Yj{-qX4TX2 zRXDRxw~BJLdr8#&7sV=U;n^lXZB>WbE;PBQZaLS{R##)um@Imh^CXA-#?+7gj?%$| zR;uiC9FUAL)6~tN2Wc{*W_2zenG;A?|Fp7tn^(-tb;I0^)dRf!!s~|8#&P0faOzAg);itRn58CHbD68eqKIrmgz>em}WA=2(gx|MQS^8H>U2i>6tw*UFE+`|!QsO(5;}#Co0Lt%MxK z&pZUYoiGGhvzvy?!7beE%OLrPRPjSqlE*5Z0|z?v`5vx5kU67W`=R3>l^<=(;72>J zC>cxL_6!Uxp1z&>QTif%`utH%>gyfW!R5z-)RYw0m(cg9lV8+F>3Ywcn>^XReZeh} z39+Xw#ekrI{ptOanWCE8KLhVSOTUx47G4+dyW=hY$!!{#zbZXswwG1|Gwr33zd z35njLvP5uDik;t>q|te>Kfy_{Nzh{BEd?B==aNgB)TqLnr8C^sNErTI?7f{<F`uJ?aitZ!{>!jmUyuBLu_JvoI}Uetg3IR1xV zvHA}I+xdubefQMP_V2l0jmsyecLyCvpSfMP%U#S|!A_q1kE|fUMLYLzxEop4ho`E8 z?xff5|FQfZa5pS};mjrTeuR~7zI^^x>JNc+;guIW`2+2L&`n-(zlP!U*S-$xs&%Hd zMd4!ue+U4t{>M&(DXI&F7ql$m{N4=@2O?6I+Q3oH3x5dyHMR*}d-u5XU>LE1ls6Qr z?)T(I$Nn6px}~l%@$!MU6WyzPR|UguIk7+~sQ|h-k;=Z_eX*9H+11N!Z>hY(x;5j% zoTmo`(;61CaL=`G-M{?P-q`QQcNbh5rDkp|Z)Yx`?%uyY2a4T<61-#?xVL}SGkakC z>)}U(Y5+_XY4{yqs8yYtBM(F>ODohTZ*sLos+?(0ZMzx(EkInB|K4zhjeucy#eYU`pXPgVvQ< z<}a*0Z?|tl_t|5U49QXdLy%YB=&ywCZi!<@!_o7R zuihG9zIVUK&D}>CA{!pZb=mCyr){Yo=JM&AeCRs(aqRa0a8}M9JhOMGhQqjlI20Gn zY#R)E_3EQR?e~Hgxi^aI%Iet@J$^wIFt-o;*B3Ole+X{u6lO=m@+l0PUy2TOz;BR{ z)!mib+rL~Njq8c%^*DBU$^7`&L1qrH*@_!u36pTu%O|#_b6!)w4E_*Un(ha~kyAeq zqM0t36WbyfeBs(mb&>G{3U>K-80IDRSDBt!>|0>z7fKbey0iT2W~^8Wa+NAzWyO2xj3ZR7ukSXi-dy5Vd7 z>#@b(`4D03+rP`J7k6VsTk^rbQ1Xp8UVfHud6>euN;2lxfKeSAyU{}bKdKlwbEQgUUlOkorc=0n>8_ez=coH0=JWlsWsHX|5BjI|2fOKi&A6GhgmE&c3Djp|u zHLK*Yj^1qiH#+P9KJUH=Pqhy^amU?q6=V@zjc@J=y&FC&02gDE|7WShd&IiDHZW9} z;kl_8vgkvW>OMd>%dPb6#V<{17-2umlP1gx3-iIiEqXq*YnraDyF@+3IvGkmpjae3~p^r0PR@+q%P9>}1#tuXsy82+kC za`g1$S39{rO8A(7s%vMSp4-k}ingqA`X7Su+=t-$Sf&e&Z!Q;Ke`0n{ebNfHE^q_ySkr?wbRYivz zIH6tLzuqyA!@!F6pZzEFK3;X7pOO+v^%VD4f&WqTp#Zr4KW2{q(6Q4fqRIc{nZhS? z{~FUk2?b3Cz5Um`|DjNri0tbBh0y*N4@mcS(!U(gK=h^dZ{AD_le>TI*as-D{8d2L zJRfxHuin4;16}^UC+Z>O{++9>_}4-DPG&gXEu0^>KJfalzIB#vpYpJ3rw5NAObu+n~Wxjfi3kDpm^_zh-tB8P(&uU$PhCLc}Mp~aWS+Ch} zKSwJq+HyPZBUpP98(CFF(Ah8~tR*>O^dj`N5_Ll8+Yj-QtF>Y@P^+StlNYbe_>cFt zzQW$Qkv$hCb7+mL{vHZ|)-Y3%x?d`DL!p3$e#;Z?b)A*m4TLdvq zR!O7Ekxhb5?V9?ze%VOIVGfdYrjh;rV9;ESI3~+?OiohlzBg%#ayA1TS34=d+d^2h z845IY0mY7hGwzr~GZ4i3#EPK#N?mQL)II$uU+TJ=`U~OpL;)H5VgRGd;?6eMi&>|p_d~zndPnxMyG)^Q1pr8k$s{xv!h{_*mveJPVT(zJO zj4_JUL?F{;1!_fX1!ppI6}n?MCxioul~wa-W@u)JF_r^(2JYR4m8*vZ&tnOB!~+=H zDQ;!Q(lHxxfgf^r>PF3Ha9|)D;8+K8CD7eFRAvtA57IRQ55XDR4X3wolNX8lP%>e* zGXODNl>+JV&T%6xt?kLSGZz@y;G4>cGD<~=KPd%ZA4Nk9vA1_H}g zAtwx|kM^k=tb56LoO-yvn~&D?#6Jh%@>8nM~|qK<0v1a%Gq8E}$c!k8(;taduSwpq?qfwy*1c z9KzI->gG;xFLcy67&8hS2QU5#kcD;&l3+3+af4L?xC%NnIUkmi4qL8A7Y(K>yAvd& z24IGyfG}XXWV&ed%|7_`=jfV>BJ;By$gv2U%pSYW@or~5an?YxpY zr4n76R6RTXsvpoSTWAYn7#6{IE4UF~n~C!9@PO=+A|7S|*OWf4xJM-E?Se}F3ARqO zRw{PY--bN^!}uEpfFI6aq2P=KXiqhvZZoWFkEIY)%&YxiUk(P@rAKDL&D!JY*y$_c zn^E4p$Bi_E>V6bnY}1TuBv#>&&rHl!k^pPE@K2YDaenD*D^+j_l z#^S+LMmqR({o5|(!#Y`-VYWajoM>pg!x0YLe79(?NXYkYxiUt)6%pO4FvCNPv8F|Ve zax@Jj1=CGo8pK0vzlVFwXvb(pK3_{C#I&L3H_%(gjl~Dl`Q8bFle5$anFR~+37J-S z^MOca4Eu`84P%MB#Y%da$g99ncPe7&N*{W}m=xTc1K930-(=9TP_r>gGlR#&6lLXN z1u*qW#cngH8zP0rAUSAkosc;b1|LILfTsgz=z!_u!~K5fiB&Xp3c<+k-3F&uDdGvc z>8w|jYI^i0;Z*>D^QNcON16_c_Wl0n8IQQ*$VAgq0U8?}BWPN4NqrENj#_ZW6Bqoa zovuLZAKv^tKpRdLP>r^Wwp?&npe;_)8n2F<-noUV9mjQ)XEC9$pe#AdL>___-4xEe z1GeqQ1=|BYaiS8?%r2`U>nA~WS(fd0pb5gg-hFsD)}>1H&OFGD*#%JrH07(|_*7@T zgBtN3vCvlFGmeav(|K&I*F zNF|jw#wpLq6hA~1MBnNpLPVEhr_O8=Y{XWz%&j*6i6C<}8k1FtgS2%WQ6>rAa?R3B zI=}>uTBm9y33gBJW<}3#-$eV%6=*y>7vRmy3413~Zhon@qTl?X4&11#wgS1NfOZ`W zP~GJL)u`NzSbY>-++?%8gwaOLx(Vn|Ca&u|p2vt0!i-}0N{F;aYQ+SAMwbAWbsbO8 z&=97fUch?!-MT!1(EY>YLV~ha#OeNevHG*wK>`A%LNmYs@DG@4ALLV=7#ygpe$Zd_ z62@~zyRY#1nDN`I9M4mqs}-`KKJtg0=`sd{ocI^CXB%PCwikr{UiGAstv}HM#4w)#Lm*hSnIwu7L zSpyCckr^rpCa|ZsU3)rogS_gg&5*=^cw}#Frc*3QY+)@P8ee7uM_Sh4=(s8Bt4L%u zK`2?x3^0Qg6Qr+P25CjiV;C!vjG)MfrHkXfDaIHuk~^hbPoxY%QD1?_(p8V(NWiX4 zrg|y&a3V31Xi@VO%}f{*8uw;YM;(R~)`#SjJp|%JuvPSV3Lr+Noo;}hMlu!SbC>eb zrXX6bB6)xz9Eqvpc(<*;aad0adiN<*9WgFy!U0~hklglH50u^4Hy8~W2HglqUQ`2%huv2gt8buQ@VL;wfP~1vaaui^p9fgF| zW2{+CgC|A&RtP64A1B!auL=QsNdjzulsiyB{@~+jQ4+pNPLxQo_1~0?PLB(LbrY_5 z-6k#EE1{a1Bj| z8;hK4X@}U^>l{{QDcw6A8#%@+_#Sq@%3R^dT#-w65M4(m7Ow;o^XMdo7;fe9gt{En z2v_lOBIDEXPs~Z@o(kI-e{Nsq26jT0iCS6+XRNR?kb#@-N$sZlfZhpa2A)-X;x?fy z!cs?r*5%1Xn<=T@Sve@|)dr=5X4~Q2egJyt)B0TneSAc>=tDL4aXri{R0PmA)B=~Y zTIYX@!8s5$9>3a9LC2_&?8|z{Ru@_3(-8Ua2eiB7Hw2)uBLLZL5JQ7%W^alQqtpYK z#%JpZD!c~xddyV3USOb%$b1SMwpTuX{6sTUZJgbOp2(AJ=et$OZiqEP3H}+{^%>Iw zT)i6%vm~ywVe?xB-W$OX5Hni={q;;p1~4XuS-GHUft#HDj2JN;%VHKX4Ti~?lv83f z=il$q2&tHx2We?FxMfDKii1=Dua`tmE>;C{b3Pm>Xml@nl7W%4B?!4bpByvhf^?hs zK~L!^cE)Pfo7Pdi!|KrTbU`aLZDIQbJAycra#aR2P=hhzn(LNq`)=aoxx%>Uc~A+w z;pdeFiR@tNZhiQGU4$w0)c1kqC2i@HfAGfpr zh^Z4UWUJq2fo~@b_fN&w;y$WS6*gP0GZc2(@d@R4=^$h^Q4g&Qk;_7zYF2s>NG@+N zGi)7PF@_P-byd)#7*8D;fhOXUZ3mfw171&coqCX74cowN0cTxwmo>Kt}7*Iz)D~y=(dZMT0mjk9T(sX zlO{OjCO2b6DnZ^r90)g$NZw?$BH;&6&Q2rSi3E(SD@HKgj@y)U)*N~4Sm<*XW*&2n zJUUY&4sc7;aV=w#6evcLx^0qq}zn7?su{m7gkK{hgsV~P5jX)K7>6tPx^P|Ra zSfDFe@Dz!BI8u>~u`&INumF$!Xaoi$!XuhI%|S_}uFu-bqvXPeb!G$i(RrkorPtX8 z+u^sZ@f!72Tl9@vZrX6>)j>$c(ED zmnRL_WYsVAli1TdB$>i!o3CWd0#8w>)hc^Y16`;QfxDm!dMX6}Zb*hy3ob)q#dS1C z9)Y68aMH6Tt(f{DDubAYlteB|wn@@~davGy=a$Sg!xD`lc@IhV*h`oBiZ-JcNfZhc zxoy9KRLNoaJ;b&piNg5ny^-UCF-F2QH1<{cag}&Y^YIIdPJKG|ohlhEx7$OM3aJ;p zYJ=r`m7Z(B9qo0Fk$L^tQk9v*gg+KtiQUavG)g}QZYY<{L zy|%|C3+rlRk4uF&slX2Fo!`)zotKB9NQeD0hURc<)RF?hO2)mw*RsuLBg?h4fuYuR zRPQrVBDveU@mXYT$JOr+O)O_~dDyvI8Y5&u7Y8F3`u75EvR=AYexTmfC|fYyaK8Iq zkLyJH8wzu6rR5fR3%8d~J%WsU@oZ;u#++t$m8caf?isj#;}?4X(NY>LU{+#F4bT{u zmPN)?3=!=876=j|UnqCX5tQZj?jNUz99THj+&-9Y?#`c3 zM9fMiIn^Sms;RAS5v&_y0WE52;%N$D6x8J+I*tZxL{)g?h>6D!u#~h&7d~|mXx$Z~ zo+0wm6dqKL!7~PeCxYy(*%U^0MV2(@%}cx#>SShu%4>@5Oi=y(g3)74K%^f8GNOIP z@A%=!kb#uKcCoSV%>97|_e`vvDGWU5v&t;5AGIKkrpOlTelmnv>F#Z7}=fzlB&4Pqh_BnJ6b zF~Z*ett#@|em?n4IyBQ|-5aBJEI>j7uH=T3b7&4-2N_Z9VizF!+-Rw8olXg4cZZx6 zXJtE@1147sFxite2{pF`OnNV*ArU|uDngyTEJ;^yR}yt|2%{HMF=gyKSUdctp9sNg z!^G0et-&-RwSEUpt`5PIEtKlG?8HM!bWK2mPnwDawKBrljSoBisc{NxVoA9zTa}Jo zTtF4$8g7zUvbCdLSknwzOOt`Yn^C+sqp&o~w8#3wx(ZA~$}sY^O z?JD3G&{-5OV^e6PSVs&O;bdG>IC6dw>%Vk&> z@(I?^!q-3UEF zuGTuf_J{vVm-5hh)7&mgmjNY_sRsXpc9!uvtUl?nj(gH;3pnfC>vcT`yYR zS(p;tVOO6Z=W)FcvthGz!7gVO+shI(P0g7(W#EcDV?qAyplZ+CkakMv6}ifrAF1qS z{1AGTP-`nHIkHS>T=4!Yg5RTdn=4Bz$EmNK9sxh4gVA^x@HAbDpuQRciWv2bt!0 ztl=Rhmp0k39+&!QPp>6w33c3(HXd$Kubp+iMNvnYz)GN8?{&g zxf<_D-bR#bm#cQ;{dJA|LGG~>&Yj~2{m~gh;yQ`~ zzCz&$XMc%#;L}2Xi?OhEtVnpfr!Nod8i`|V%<77qaXmXv!j5Uh-ZR2~=#X<-Ut>Sj zyK_|!5yOc-bttA@17V8AM|+KX$W_p)Z~`nc*q0MV66ee4YF=TM7qr><6+6AMnH?b} zkhr1~5xcACzqjUglvf$nqgQ*P(Bsv0I{*5$Ii~K#mdFvFZJpkoNRATsF2s6OIe^CJ zIh9?Vo^Rv+%YH!7Ix^uWl}1HiIA~0LP1IHoCctQUnBNpZi{N>*2PM1HjqLbH=aXuZ){|Ll@o?vuz)-!l00l{D>D;JEHJle*|62sF3(+G1vc)>uj1*$ z(cOozM+3I)fvzz##o#Zj4_lz+6!j^hB;W|%kvmMrE>?^=n%M^_j1(?bR!%A0`n;ou zDMG?H$vP3!+))?|#bmxZ%47n&8NJ!KLjXBiP(W>$AxaApeVa!fj*QCziI~{mGZG+i zl`{>f=tv-nCA7Mg95P~JYnjn@^VCE>ObFYq7Vr{W)}mI9_bqGJOoU3($5!tV15J`4 zjC93J>ZV?hgm9w0GBK zdSQG}CMKe~AQgBv8RG_CSh$ksUb*iyI>@oknL8ll4SrZ-1-iFJXSRKJkcR78^#I%$N@%*QYG8SR@A)hHuL zyT)|V8rDgAYrSflf0~oF*HR-^xg~}JU8rwLNmtP}ZIJ)5`BQJ}kFl9d4UgWkpo217 z1G*qfaFta+{+!CX-u$Bnl}!SHHYer^-bEq8EZ*zuO2D;H>r^L#gM`jwq;C(mKi zV|m|wf68~uy5=24B`L0(Zrgm=<#l8iCEj_(78t!&-_)qW6uR(w9a61r#&5WWAoZ|W z@n08y0m*pv(-3>ewmj6!*FrcgrimAWt=y`DAF2<#+SHYpv!j?nM+hI8fKWZJ(skD^ zE$lqagKWW|aD!s}6jnwL;R!H4HlyrPs?Qbbf|U6HUT~Tv@21z0;Kj^*824Y&g~FWu zxi$jCpb0=6Wyq?1f2Vl|R`7{yFRcMrL~V0TB#T1}MVCm(fEbmF-!du?WdCu<%mt2C zoUFdNaUw>=CtSsj3Y55=iq_TQIWoBy0c)sB`={oL;hg9Gh|a;ty3K@3#h|%o?}Y#` z=4eG8Z2XX)+0%A^@3ZR&abunB`IDQT^O<;e3$kxuZajcZvGy~9HCYO97#VaHtH7h> zlsc$sEO1{y++WKnhFX)ALlJqInFr@q+h?Dze*CcEz|4*OhaR${L-CTm%er!)=_Gdd zv!^MZlgXVNwJz50Rh}IoxZU@MAlBk`j@F=*1D~vbVF`0!<1dF~7%k#x4>xSX7bSeFF7@l!1T&fU&2gz$Ra+Zrje+3}cc5LbArHvpD(c}KtB6Jc zg#;te>fUx4%QjV_m@IHbxNsq`Se0hT-p*pK_`NSCP-hLaQO_69jtl#IVQ#g?%JNoWEb$&}akoDTMlvgDD8 zF;G28CsQYrF`gGW1nb?<;YOzpN!~ovJESa%MyFco#V)iB(6gZ0T|`Z++w!tl@Rn09 zmUa4!uA1gm^bAaBeDWh6b6HI-s1<41C+IQ&NzWkjS?Io~o;5grq)48T0-IsB%!p1b zr_lF_qq*6cf#4>ZNGnN^7%E6kok+z9HU+X=muO-gTWnH)GYebB*gNWjASuVIL)Q(b zZP8GUJO##|JmTT?03p%a-NlsEcwY!2UL59&&MdQ(`tX`j1(gPW7ByVfAi?l^YOcRpI4cN=hM zwk|J!QzeFk9;W)_AA5s$6~@o4O*y4lXYBIpsg$#_ab=xZsHmZrQ!6IB*$WzcfvCf{ z+i^u|lWeRLC^KDmL~A!^t~&N@XmEjx%zDdf`viXg4Yd9 zaHn1w=b}(^iF{675MQcCi?O{?bYoyu;AFB5RdM&4GhKC7`J@ucu4KCr1P&K9Kzj!V z^i+^3Duya`F8~CyW*rzcDk}75TA^K;=nRRx~e`L1=C*i$9s>bB=hPEVz| zE~wrK)!;Dg2qskjZRWXrpjID8cJ4xB$spEjq(*%vZ8+S z&N$_(a#k>vLgEg>+$6Q!8un_sCJ&$hPK^t|Eg^(!xs00t#!Z-?b&Y7;j%aa@l;|{rxy$ zq*}~LAtkJwb7oKUnDHZ(0mq>7V9&J8nvgVKr{T2OU2#4o^Ga|yXo9L+xSJA|k7f%s z@Z?eyxan*FzVulPM6jp!a&Yo-tql=$`DiOq?d_XQG8MU}o--#Su**bkd_B2av6gin z+mBph%xmws@FxfgpIzz~+N0cZA#b@|mYmbh#m)4;fwsDmB_U!k9}Y=^4O`++p3Ij#pM=NSnufaFQXsk%Ta-fs&T2 zj@WE%q`+&j=0TGkKsVdF4R;Y}zXd&doNJ(<{fTJ0ddP~&MM}7>Fe?M~PZBAv9ZpJ) zn-T9G(UXN+l{u;P8J@0qVn9%ULV`xcuKb0skIQMnP$e>T4P z?I;@MSgn%lI7b>}>Xx2jGh5W67a>d{nDsFv&YjS3){Ldf0Lawns4XpkpOdQ~d5{RW znobX}MOMxbsn7{u;-B{FqpF>C7{hrNCMlnmi|IK@Beda_3Qy=|j6%?(Mxi{t94|>` z$7fTdt2c{Q?@U+Pk5yUD%>WTK6~5MiGe|(&TwHZ2&X;A}5$o>F>*oHrV-@wPPg`>e z>lv&|<}sMi_J`n5bmJdLTR%_!(5J*gb3nnn-a6Tgoi*M}vklQqlHx3jucVXGJGpd^ zzehUE;Yg=ERj)=|f(U0|&ic@Z^jwmVV;;WF$$xTxOm*#Ji@M}h-S7TG`%vmlAhy~1 zawl2nOKnBagloD*$FOkx%l5(ax;imYU1N?1x#Dn_rZk+qOk;>ic;T%_Z_q*W`!arb z|DvZy!@`DL=u7vAgyk6i%1ifu5|(j>$)*~d`k#wP%}Be=kcDJaZAT4PNaG~a{)rs} zG7yi{Z-`Hy5AE|GzFiSTyB(?tSKsa~06PtZuC1)iI?TJD>iF)WcC?!%pw1EzV0!JxabV_vrF&dQ+_ZIBRxGCe9Q(uR-Ne$Hg+# zR&+RVqN~JyUH8N0*S%+%cN0|pf$Lg_)4N{6-6IOmg(l?w_1x2+TPQHA_bQ`mgcEW| zT`+Ga!Sz1b<6j}{b&rP7$}m}0VLrx7ZQv)4!4-`}#Z{*${BH(GwU>NS>AuC!LF7@A zz>T8{&w=#%XHz$;XK!uKi;)Q%dz8*V!yy)F#JxW0+482x{(5^6JtXAreFl~GdLw_? z#H#Z{>$4~3+)irmhhIt&{PyMN8e`?RB3}ca4Y=iQmmWV^?)o0~8erRyUgEdg)m1>H zGp@Lt*)*Q4Y@dvK226E%3vnv%058U}O^8AA$g*_$s>%C$iLfc|4qp0@hOYl#@%gR8~U* zH**R`bGIFi?>a&DpTVwgL@dZR0F+HeMUF0D^io(*rdV9Xl?dm!t z%}ndC!eq5`cJOSr8WA@Mumh0}Eb16izCv~C|IMZc1DjUQ{swOfm2hpze!-}1FAZ=g%rNa1&y32?HZ*zfvez__-?63PSwn)Q@m2de zW)nx?*@%hR@W(n|U!c#w*}bh7RfMl>{~MwAe7=bvXbd}vSWwXoJNYtLm?gZOXgWyyW$Tb#FV)-qgM{_rNUDOjc{hvvYO1{x(&y(P2A5P*@AsBcJuBQo}wK zC!e6vl!=ZJlQF?S4_PtWT_J>{EAZ)x&vRNfW|H}ICUGCe2U;&(Cj;^!@LppM4aY{w z_Dapnv#h#tT}T6)gM<=jtTAyb@TD~?gH3k`j5=xRT)6O-&6|T^WoZvgBx03BM8VG& zU!!M)f9U$Y=V6vU2Vc1mzj%*@Pr?KF`08y(Op~BiV`MvRD6DhH)lM;0!*5|Sr*=vS zOAv^k0RTfaF^LEWRS67!YL@HU(XYoQw(TEjN}CG_I043IcUo)krh2<(S8YIR#LELGHG`TxxO+3s9qg0a%mp-$xnHDrWPxju^59qJxVe>qw8VxCo?;uU%f=y#7k$U zR>UW+7rT_) zIxh$?RElo3Lo-o6j(tCnspQAVvKg{y6_Ac#;&VcaHU;w;_wqn~$*1fzxkJ+FMdU{%YbtosmMxS zOKjzRm*~rC;tI~J2U6wM8%=!L^`Xb9W%ZL1!oEE&$&Y6D9SqT{*lp_Z1+-^;`(bm) z7(?o?Tcdz;-p(<-ZCcLA0dJnwVmE&c?E*sXsou#Hr$%0=O?f@-%vi}q(Huq>WA2~C z>&E%29-d)WWe2$^`cNPiY4$oHcsjOT-s%ej1C6F$#Z-7o&T&WH3U`lDopNSZ4UCUB zkuwUFIj>T9hzX1k8rM2l$Tcby^obo>(&x8Ws4Jpii*4(N*i`1YvmMU6MlF&lB*476 zDBW`O6!{}HtB&~M^@+E`{s?pidksRC%=RMLe&kPu2t!MY6_N0 zfNTCQn!W<4&F70Yv`8UHp#+LUfl}Pv3KVyDcXun2;_k(*I0R3TK(XNN?oudLio3l0 z{_nk+Op=)|^JTNy*}eCibI;Wc>M3kSp;Y)<`i^1Li41R-zH6GsR)=nwp}2ELw`a}y zL~Aij^NW;L42f_ja`l!fZ928G<;7=;s3F71EiNhk!jC>5OXHS$V$RcY)+dn{kfto9l%jO<)AZQBlRIk4!-$%1z)EP@LQwS`*E z$mp%N|4_@X{FpTK!jy)ZYE$SE{X_3lpu3X_poASBT36)!`R=XsFMsZ|&mE?hsNPEy z-GiUlD%7(O_j|2)ea(qmYu>~&wjxbyMni+g=Yy4w-6+4o{9=S1%ZBBBt?yXq3*gg4 zFdHJ`#Dr+EKfKv6>`GMNIv&@*NF-5{zy1;NqLbIG&ctI$8u09VnebiA ziQBazI$D3k=14s zF;i^}M%1^*H(|LfMa)9hq^?)L_HG|W$}%iz9Rn<>j}BIp$+(XD|636;GJ6-B6CW0xO* zJDLabnP)5i(B+p9&sqXwGTD&{3mKWujl(M=ohTL2Sw5x-A`ZMs*=$!OEG&X~dpFwi za9x!tZbe4=qN1YAbR6tGLXKs9(~>L03u?rW4vfIJ>jUg3=2=^2=*VvyFV|$Vhebt= zXqpLu;Z1cWHOZ-oaA|TUYc_JrongRh74G?iIz8e;yG6Z4%aS5<1Dd#tCY=c<;~gx| z`H`Qb^-}%y@#cC{CP)CJCB5Zvf3Jsm_e1FLHhXk_{=m*g{$w+Dhg_sjMQusxW%^f8 z%xiFu;?EQG8E9cPu$O-2v(94g)PTmHw_*;?iNRBQtPg~R*kzpVV3e_u6p_qozvZXY zoW+Tq=Jj_6y5_Nn#gM;k{y5~!s2H)$3JJE|D*t6$5_gj2)w$q8P>0&(C*o(*1do_) z5}`mPSWhG5F)?78HXCsk_A~V696(H>DtOd-z`33Ch@0awVPO7Q6x0lSRa8@271dTz zvA;x;bz7VXZMxS_zwL7FOp9?X$-WiiR#NV2O{zyT@Mk)q(GQ5!zpJ|adsFd_6EUp% zeAPT(CCznu=DqSyu9yNs0tF3uNlYGjaWo&K8b^6ylqu$mM@!nOLGzd_QAyk#;G{e) z1>()u)M8B4*95sA%<(be(~+*C`wjuchKC$Q8p<*380cGg>s={AZwaq5)}X zU*@sAm3lbM+?$sS2A9`nS~eZZJwmg&QN|N_hqS@tEIjDQP6Dt+s`G(27m^0^gmyb7 zspkW4_vQXf7%6r!Vy0rduIV6xD2(WBCnSR`+cVlqlw z9z;rmeQOp_4X7}2c5PkcK^ELwSN=~t`{D8t{v1MqkOTW(k#{)9te*=VJs{nIh^rA+ ze*ptoeza)2{eWRZAlC9I{nSJC?M%h%- z$)Ae|4I|55Q5HfzwfLhsE8Y&$N5BBtVyI7!uVla{LnRO_*K%9-V$47%!T+22_b`k% z1LsS8Xnb_};VQ2lkq-8u+b0hT56v{@ZLrM7k}_4oVwi)w+oxfzn`xLsg@=;!m-?(e zf^%(x8w`$6P1cOW{>u%fD@%{BRxKXW;^D2tQ_aqrEXi|kpZBld3$YKTbuX1?Ya?6EUhe(WTjyz`^ z$6{e0Htny_w!TU^9*C#xf6$l4V2dguRQn7cXiYr-fxAZhDFTmv9HV9s3iSBYYz9%! z8f3xo`&vn)BHgVUGV==Kd$sQlIMEKTH8cK}*1B##v&P+vk*i62y8RbJ)n2Ys6OWq+ z9`sCxo4C@g3TY_lSSyNNY_7!GpVeB@p$HA%MpL)CHBsz~aEvlUb8=3Evw}zCmBzle zn%Rh_86;lSy3AA1h@~4gUk_urwKFE#kc{g8#T}?;49xIE2T)r=h+(^6g0J3P3o&&S zzlImWa5eZN+?pk{mQeCqpkMSnF@7aMmDp)#8gBK@yg*qpBi=wRkdo2l}e-_gU6JGzdw;{nGMml#barKvJ z1^sw~tvS*GZ$^j9ABS^Mr!8fc(;sQGWRliq&<$514jQ2aKACGX(GlLdNgjnODDuHx zbE(1mt=XoIGmbikRgMyJzxNc#_DcI!kD}gd+=scn9y~-89L|BQ?N&<7Y&Bam5Dq@G zNppJ39fum-t7vLongW?{J4bn?!zo76bT$osr?8$vwQfSAQE!Wypc2Eq1r}9l=1>4X83-pdKBiS?x-vjeu0CjzMy6#~4*=ph#G#iUUp^OVwXh@L8tOhuYkpb@i-X3;fRpFy%|A@o|gz>$PO5Pq#8Tn+EEJ24$npz zOY`PC0e|P75Z20|2Q~x!#i5P0iC6lR#WaUal8DW0HHty^{ZIUyHnezDDVC#8X%(>q zc5r6-Ja3J3V^5w9*FwDrp_8AmlomMyyyQk)xnwm$5OQd|>wd%gyj`t7--_r3Q>o$( zqpK0JyyOXQ&!RaJ6rx|0#o{}yrf8m4W-;H@z>(4#tEHiKF_by6Z+>c6N_}~ESaGHH zTj~pzSJ9k&s+5Linq9oUvPO&Q_a7;5_SG`va>Y5{MyunZ%ggLnPplCQXy7lF&)Hnb zg}fL1P=Op5-NcU&$YI*bzY%L?n7JL1u%q^wbNy>cnKUOyzv$uMGYO$7qqdAnX=&HW zI0Qd);8%~jt37CSn3Grf5qpW{EvV?^G!1!a%6<>^)BF}{i2{-}p(n$e)Jf}Q;2?Ng z*vtIob*r?L0Ob$9Fmp>PiHyWXP(^YXHj3HoNBh5XsH5%CapEP=RC^0DRq}! zk2*e(fQP0oAn`|gt-Iz}1{o>A=jVfvAhqyxNz!bmpF;|JhjWxk^;#TeB6zu}Df70o zAF)v!A4x-0ArLvEDs8vv#4_>3#!-PVsx;l!H4 z_pRl+8l@sje~@zQ;&DCSf>pKsHZ!3>=#R8qf<*}R{}R?x*e`B%@9(uJDP7v1kZyk- zXbZmrcc(E}u^A3qlv|jM>FiawkH>K42FzBTuw<1?9R5r<6r-2bkJLymypdB(CWJ6e z(bIF{6?1)mD;HDw8o``F5R!j}&B?MoF|98aT2%O%;vAv-Q?C~3>m<8b-V#$w@?x;O zRm%Mi;(asqs_4rglz|D?1feUYcfd{M{!Xa?h5$k7D#2CJ+!()gK0t7&J>Z)s_`51P z!2xRD`vpD?i?fKMFj3K_!k@bHHP;ZT`nOdMy_9ui$pmkM&pvtW^H57>_0ro9O6nE! zYv((cB4cdJiz85BZeN5V%4#Qg4pnZNLmCTP_-4xl2NGmT-h={L2xv9 z1ZuKtUc>;Mlb#yU`CEne{ufhK1sbG1Wdm|P+q1VS2YjyPEKq%#gSDNAK?*)P)E$ciKj?%}4+p7My@R?9g`r5e7G zcI>X|Z?sX_hYGnx@*$D8nnMWYM)P$*YFyIT;g9h>{s@&H0!Lt%q*?;E z8ab1{dTPVgC~TA`siS__<=7oZTB?1^PSXuD^ZeoCOO_bkYgT47$45||J>uoV7TdwO z*03>Kcg1Bb7^A#L;Qxh4hW8TH`#6gPt3MC0O~ycIzco9G8{RNvQ&rmc<>j7nZyy_E z6Qp`@vzX3S@ZGYGNbFF9T`GsAMhw)Us@6`Kr^Z?pt-q>;l-Rc^fSa(K#X$O~b4IGV zWKrqVc^I6C7`1~R!-jLt~1q8 zpVuB8q&KzoPZnC_Vg-i#Omu55X4|w}si6I0wEGyr^yR_X^)Dr(kasDh_mQ{S@r`>f zX3`iV$*&^Yg|(s%%R8y}7I{{ZKr)(I7kiy4w{0%~-B@|VKW0(^2Fo(@dz7&)7=sNT z7+6x{WtTy37OxF9y7ALNdNQf`X&eagk`~bubRh6n$DQ(mpZw@wV3xAvV+ryZ=iRAd z4LPDes2BLUWRb^7ttd#miSoC4m2ifp40w^S#!0S3-HrB)yV0T5Tx@pLCc0gU9&gSC zb0lM-89FpficjM~4Y5D6PMLw;V{4<_Id^OAosqmE`||<@c+}4K=jx0MvHh`fQKO~y zY@FTIICNjq4=rUl)=I$+$&b`jpN6}vTb!fv{3#iNcJYmb-|yT?UoIkS$=V_krU+bc zd0qf=2~WFs&|!tfw@)2IMAXE4{5AGraMaDvc@($0A6sEl&tdtk1a&tkw#3lFK9!|t z1gKb;uK~6K80_Om1h@EW%c>gpyl-SiZ`8O<9w2DCih1+u37=f*XFoQmq*swnq|~Z$ z$xs!azlcKkL^=b-Zy96XzJdx;l=)MAbn^DMDa=I>bekq6z)w0vyeC}TIObB1?7?`& z8^WdOK~BCkT8(XA%$geO_18Q{KH%Z;0ORIwxeHhuTG2Q zksPvA)>2`Dq7NBN;)&Y?5uZ09>`7DludS#=g^;}80%nsT%#6G1BCeRX(wH+_m&pSB z^AMuUr%2GQ3FCX+OS}y&2Xbttodu?+I*itZZ+^?yaSqAY&i* z{M~)pEC~*tqV(=$e~S5i*>FCm(T5`Blx%DCzMspWrFRkOkLP7{0`hG)G3qQ227fW- zJ7v zJK}o|DEz`|NHunRY9em|lL9x-C?KHAFMXJ}cvmEjK0Y()62p*MhYKqEk)+cXL??z72Y^;e)3ts?-*DnCu577_Rgm@+ysRkaieCtH2 zsI8^$=SS8xJqYbhJlVE_ zV3e&z{+seY9K04j%*^h}83HxGxlVlN0@XJ~=qk2^zB25KCFib}eBqsz^1SQcL=3l6 z-;^&Gn>uV}VN!0XqRhmPR3Lt!o&ZzM^^zP$i=z|YI| ziyh>fw*}o4xi5hKnFN>hKEHkZ_oU~1$~wj-N&Drj=QSA(l#e~uro}y~4#`_IC`a}# zCD-ux|BigS1US%Tj;qj=(sLoqI8~>#^_w;Ui#GvQ;peG}hx^OK+Ax2blVA zLoj;EYHEBfxv)lWP?JBmHvvbdd{VmSJY8l6j5hBK-cR2e&9DA-lMG(j*3YDifc@HW zaVG<~8(_gvdNl6>KH6lK9Vf1Qgx-Nea-47G<6taw%m`HTmWb3di+yIS=PJR}Sc!$9 zcSUuChdEN+ln?B2HCM}28q|`vIW0rp)fRD9*$qyYeNYVy6jjag_FIwbr7BKh3R5(B>1*QNG7od&FM~h8kV-G7MoYfUM((}{B|>B+HUm%j{Qz4g&lobdv7bFi^(hHE$zcAg}Tp} z`kFOG-fErq|FYCCg4QQ1vAD*K3E+>Wj;+}kB_~cfw_}Xp zz9u=sW|MLc9B1)nm)JWQsRBbYUJNFT!n)r!>S@R&O_KE1W<@Hczv*FONKZ3B{E{EX z;I!UPOiOIOB#`CjgCG=?g04y;Dny0Pl8k3^_+I;ev5}sOr>RCGTyF{J#mG=F=8lMt zS{KO&V)!+g**+X=4XcB>oRZ+90-u#f-JmWemc%%y?%cM8+H5g0|)L~KJDUVDCeo4pG->UJeUTN2@g zYJTErE9A%BNtJSw(e?s}HNHrReE|rt9%r=UtnPkFNZ4grnY5sIQqVa*+JB};i7KGC*L1x{?4Eu_@?3Jj=>KI) zkBKMyZ9Y-N6a%R)X%hRnVV6NLF}m%njYB8Rl*#*kDh0bwY&qhkInGR66Mg}ky6$-k zQh(St8@m=8_QlA$Rh1WJMHpQi9W8}vc{oS&d`a*fFLlGM`4)j`I$%5P;lM)x4xY*N zW70;4_Q>t0mDoCxXJfSMIAi69G8rN15dCxMz&p7TA5rugA*rs&JMfL%6JyNT4c6w2 z0I57-NxaqLr)7nB=LRl3jK?T>Rc@NUS!vomoX)9du*UA~{$5{@YFuB*ovh=rp(9HL z+fz*N*#efiI}fQKA-E*X+W-CP_JH6bnVD9{C&Y;pURM;kosiT3-xlm2?f>IQxIIFU zC`K6_e(iLF2#d>i zF0L~XySC%FYR`)CO+f2na}+6a*un^c|7Y^V)fbc$9IHVh4q6PmYtLcqRpYL)LW<$9 zAw*Uk6eHj5>|NvggO82;cJCE-D7n7cF8w_r>drWEzodTo8DR0id~ftFV?S$teFcVH z;!=-82-5>6TT5f6Hky!F2UBRj0LsJe`q^$^((m1429c^4*bfR1wuSiPOdH}Ly=+*yXea~&#J=WtkRM@%CPuk zX`O5?V2WuCJdn*imt^^N6%iZq*C3F8Pn5vKEwIrCFusp;jIze@+-!sU%=k&ohYu1R zF47a8W^!L1UAL+=U8*4g$c-UJ?x#zn4>v9GM@!OuFrhZC$3TXnj|5$^-=#Jk$iCkf zzwS(a^tQYqB`bRYoGlk$?v6awtD)6D^ZJOM-*pzrUbB=^Z=+$E-WqayYJHf8ma;Rk zhl5k7m%aFTDTLF1hyB9pVJFoyCnu9u*QNdp3+EMT@Mv$s(Cd`w+Ytqd1nP%VlQ=)C zo?>=Z^gfsTV>2+v>EF-R4xQ`MR8ss|ckG7?6Ojz$sV=JcQSJeny--(L+sO=zr(idV z>B*zd5A#XOs(=bk7Q4hl1o!ucW>;XVVDO>Zz>$3|XRp6+Pn#fp1a7bH0p%k64To^Y zB+uP(+d!OwD;@S$z3HMtSVpQnCql^^&bY#M@o|&lgCFbIKli*F;S(0WxRIz9y4Ir0 zzZ9`;^xP8Wo{|QDYsP$y79d{HQVcy`bYFU_GBal93!s%Tn?62ozd*sFcqopJhk4OYts?Y_} zg6bHTc)WhObyE27z5w`j=q`Rg4;@|kIeDquwJv3Ce(#@#b}wWzC&gfCS%>+u@F1+| zLe^wf?PM42LPq_|NB*TPbWQ^|$-&$R@VBoKrhcmX(O+X~aN)vy$ZVVEhBe?ucJsEB zl@}+65v#femnYD==<@-G!GQfP>O%buYp_{{7Im0#Y~Lq_{d`K=xbm>6bfgtFLcLHA zJ`&uLZobYpy^I%MnYkrsQyAUfB6S1>#)|N|fMqMeMX7goS$SVuBR5OJWx-{MyB4ku zE#t!9h*KAy-?*|q8TE@6$Uoy(Y9E)ge}cH&R_Z)9On>=^4X(6G^2=LhMT)zHcV}42 zZ#rsRO<3(Evt4i0xl&SOEcr+DcJNi!6clU?(~Y2jKte8ayjq!-_MhDie@`Xy`Q1AmQqi>_S z`FLoBQR!mb>^Au=5~g-N!7e@P_-$MBHZCZgtr|F~|^8Q2rhq{gI6mI@x5tcmgI1ni8lbsESSl zIA%$-9HaieLphyjNiA8N=Rx~@_Ize6dQpvn8@4xNOY zaFg@8{QAgb;gd7k-Vz&BP&P5|B3j{f%8Gw0il17~i^ny?w^Rj*9RNRWpk39D>ENK7 zw}~m-oyH2tMZVvj`3SbEZ+>-+(ra)uWzt_~pp24Rx81-w-M)dAu|{?*NRg>WQ3>np z^?w&uNmblyks;4yFz;404s?=w0dPFt?NESJT&;1{w6>g5C;Q~6T$3`D98N^*!p8c1 z^rHiCFhTDFsWjFlw=G;cB!IxU3oK7fuMXt9wlEO3v#dnJFDEhC-5;|MYA3@*ZX$DY<#&%_CI0SevaqMLY z&tdfjIa1L@*fn|aO>~l~z!>rY4=O?GYZenpILtT)Eabwwv-AQGBRn=5f!FX}4ibGc zOExM+G?#!|xFRGK@Y{${thV;7+gcLOouU7IP%m#pIBK({ITGKvDE$WG@&(|*-nK}1 zVf_Md_030-eEeM4IW+PR_BFqiM$Z9tg8-5D9{i9*@qNiCatQ=Hda&sQGqc`voxm0+=g6G(Pz<^-dY$bA-is%Oua|Tr4ff zk1e?RNGW3f5d3)NIXmDJ0U9VaKl^%MCocl<4ADQfsRK^?DE2Hm2_`gbdnN`U;aC!N z*bXi%efK1})7SV%bHQ5aDnSzgALtPU-)WiFH6p$Y>09kM@Cq&JgrbYd0=)VHXd~Rc z92^P&X3YQn^R%qq31{7=_#@Q*fL-)?z3%FhH`Cb6O zy#KX)t=jc92I>a_;4c8Fe;aOBx>^OWV@~ozPVxh25d%a&Zy!0!Kq#?F6^ zx3=i`sR@T8zY4CW^H}DW$Vj1oQ|b|rs$`j39nh=*Gzg*2sAQ&c0<*_Qmr0e6lI~UN zvbq(FYNmbS=6<&8dSIeVD|2XCQ_IUC#6DQz48Kt!pH9#yznyRV8Pe*abCpr&p=!pX zmbOgxT4^|4eD64Xc&}1l_(n;IHiv)oq$a*NZZ6$?x)tChX&YTmUTNSS4D09RwPZr% zJ!URZb{u8ya|kaA@RIvB+!A6$MQJmp!3~G`i z-2=5x-7(~o-2h!v-eD~93GnN19pA67G1b-8lMnf^7kB zZ%CnM$~xfvqvoPNWgLO-2X`;M*piQ=ne^-H(aF=iz#1dO{(~-W7I@FxFRLU5C}BEo zRa1LisijNl_mx>n_0yo(8x%chmmf`s6-*eh#q`Vw&l_Y!g`ta>YJrNrW1`3kJ+@{9 zZmWryn2ig=yo?^S44c~XlLIz_0wso6mLB%Txo8d0I~_98kM>w2cLg`S9g-^2%+oVl z(@RqoQ$N-O8#FA2!q-xX|D!dAoa24=2)vFGF%o5Xft+#Got(GRlN$&?muHOdTES4c z<@p8BlL=lde%fQxpB#=GMYO%j86X! z3c&cYY$!}oVxBvdJHKz2b!N@V%8GwFc`GCtLIHjO+*@p)zi@`yhIp*b@&G;BZ~=D3tM}*Yg=M`7Oh$r?AAAgnP`%6l~*q&-h1(Gj^h9@ri&@?sZ9NphNK@AFeg; zALN8wrpv(T5_j7o3zhn+sBhd=Hgz^600ERUidJ=$LUXoNx4e&%+FapzZc|Rqm0qyB z7+f&>($`VJz7AYSp~K8VN3y)(v-~U`APG>Jw^jgPr7K7xXDzSxgd@eEB_?-o)~q ze&XlFE-RxYFX&^;);o8fly5=jFMyNO`_l-v;^fDq9c&c&o>f0%*@!x6nbW16SclQ> z-J;=}=G1ia6W^9I+*mYOdQ1DZ{)p>uDJP*`&bXzbw>F)oiZ?>waRrLw>F2JH1H>sI z$;;YvzIA6{Tt9Mwm42Ae%7(zd`-VDqlL7}=N4#XRKT!O1flaKpicbE#5r1sl?i+~A z*f@wdX$)-Xp|1^{!ac`)n(U;#ZJXY}W1m_!eTdUrvwi#TY2rJZ##xx8##t1Ftb#G9 z@4O9$xxQk&-YKQD4>>3)gTz7MjPm3IzzD8=F=M2M?3F<3zRo4Ie_`O8i}zZe(swZJ za=+`01u$8piK)^kc3Q!L9th{#2vVL|ea=D;_G>78&x;>k-5G;oT&38bmw5lBUgo2* z@V$#?zN3F0mZUePG4_WSp`F+vLwQZX}^-r82)=#UQE2(Jk<4(<6$xtzg zt!Mm0pB`g%3K4Cj%2n`A%QX-Op`CAiirO+YJ^cqj154T&;+-0M5P*=|sImNt$Ws(m z=IgH)7;At5>GgN%e>Cs2PeRPWF%^-IrL4=^yCaNV!mLr;$@8uj9ZQOq>meN4~)#F3Or$c8H{oY3g3$Oq+YYC3I#e@2SDD)39x!+g}-RvTr54 zz1LtDAbw9Y3@(e?05YE#{No5%_EWRe_F)=*rZaIoxf6wcy;|o!6A=tP`z!g8Fh)yl zhUa|_b+q_=uzpR<&@IDp2i>Oi&;QbnlQ!$EG_<~q-x)Pjno-g!*W6)sGX2mo0%C%9 z_w&+!CU#!ONUcgl1-PpCi*Ik-_eBNx8e2V6`&geJgRPGc5cmD05OAxg(TVeF3jAa% zo)6#)AsC<>z-Eusn9s<46FYi-+>F!S4)>jC)!86`i;B_xL%FJXy-6woHuW8a>UeXg`H)eb&druT&^4UK$zYT9-{E^kk`E4E2dUedzJT0a$3`U9@r|2OI7dk5%R*7iA_0l%8=<$T(QT z1$^^XbL)!9{fqNQI^3e2PRQ0@3bT8h)${FD{rAm-oHx-oi)&zXS8|>cvc5G%VGHxQ zakpL9wK$)p6@%CR>YEDDdVJ*L*=q=FW3V&hi`^0a2v&Qh!Vht+pvxS>J_QQmw5qq>-ORp!eAcjIO{>bjYuGNFAACzr%`B7#i!Qb{75)i)D`M6`fvDX_2~Z@H zdG*!T5dRy=x4mTSj>&Y1YfF%zbzHL4UI*{Dy_V9gu4A#|4)h!8-VfW4{6*)eF94gX zzaoD|y?k$_Akp50(e&rNvh5jL{+;Zd?LNk>4C<_elke_;;D)b?!}omT*h3>{bYK*h z{R6~We-fn`_nl3>v+t&U0lbHaUKAr1_T`xy4319M`na|OzC-kgyMN#585qZ6oFnA8 zkN^Qo5S~<~oB6$it2>DnJ>hr4w5QsPHjCm_aC7xIc=Rnke}sWFm}#p`T>qZ!p>F9zaAc_XeIJnvguWxslMK%6d&`yC1CF5o8`&D(1dX%Qzy zNd;9=`ugEN0LKf^jl>oq7S2GgNK5CIG2Rx=MKkgXz$xTGs&;NGv@({3?Y5J|M^ipx z^9poJCMmzBG()|a6JceuK@YG)ZQ^acV|pj6Ead+AMw-b9+kDwUPpTJm@7+uKH3n&G zct)L3_@hlO>01LUKX7EzTG)x)W2Yr8N5BPce{Qb`mX;Y_(1fRmY?UZkEg(N{;clTT zed&}zm;MpCH=mL^H%}_$%)J5Js@<<98<=`}9-NPRI)PPE6$PCcd!2DDXa>ybARB07 zRPD}KIj|VLmu0!Pjl6X{_U|9qmude~V1D_&_cRUMTK3QQ9LsyW zmm=e#URq{b6)_Qe$M2#TTvp$Kx)pyH*2edxBU&LmF>RgH-~D32Sc)}m)DfXo6*DG^ zFGaI-+4sX;C4=kC>jdVXmV^7QvF>>TAJQwK=XoHC+YWf=|I!0*{Ro|7rkD@=qmY;n z!<^K-$w*)d4$e=bxax&5AGQ=HnUhjEf^p?j#q8|yDQg)J-ZHovY2}Tn*Q%)~yi`PU zVHNUkk>G?fdPOSHKRFVw5UIj%LbO+P*_?pF^W@#OAXChvG!&Y=rTLckMy(S2*WCBxLzv_?WDKFV=5Tr)Qxw3l1hrzXU zHgl*|T--Q9pu_0sD^wV2HTCG()LE4d2+jPf5@7Zx!3t*cUkq*=mIUrzYH9NV?`|QT zhTt$kOP4hr@&%`8okJOcYE?}`D-T7l;i7lh&=g$8cWlQTCMQEr+ANF~eoD=HW)&w| zbU0X2MuxA6tEYTF2z>imxxBd>ZwiSr^Cy=pBFXYF$ozX9#ZDhr=zh(zh!^^2QLRI$*My3~8@tq zL3;1r2}rV8uig-@>NFI?3=MLL{#?>iy3<>^8`3D0nG>I{MFH$B)nPbcMl7RfSoh&oQ+CunHn%a~Y)-3GGb{Fr zBCROU<1q=`m0h&|jI*6?kZ&zV0c|a6exS`l%1m9TpJyaTl$(_~Iwf4eMw}5Yfv9#z zGV$-b;@|5Q6;s;uCp;~(0=w4PrnEa`_(BIF#*GxzfEh8elkXZMWWc(W{! zJ~m`2G@kAd6#8qmRc8UyY>}KoQa46TBq=rCC!AkO_l;wXy!Y#QlG?e6opsXUvb|Yz zm@~_=MY;XZHEOc*Xs7Tkc%=Vw)jD3ClsmzR;>!RB-5}Ee={7LeDdaPnp@?bT*q4=| zQ|G&lpq2A|(FVJF?X^$f+n6^m088(GslVGOx@r3!#k#ZKISuOyvq+rjjfvgsN{@HS z@3b+8n5PV|uttb!GdT_p$e>diU2Eh~WC~FQD&x7lTmFwki5(&WQyzG3yPTkJjq)@x zw33piVPwQx$xJ%U>_RT9U5SH>x3lxJ0{6pFZ_X(fBn4x|?|6Q+EsK6Aq#4^< zqPT^1ny2qxJrse!-Jj|O0;Q;Am32{iTHJe=NL=gdkquo9;W=Cz_xvGXv6x4CJi!dk z$nH;_pC{IU=c2J+Z!;5~a{_m?kIM7r*{kd&5H%ryIwW_yTl0v@LyL;4u2V>K6xIe) zLsI*Rh(%1QAi=Hl>Iflclq&+!3ZdvA+?S;{;K8V3MCt~+L>aSy!X{N^&Qd2z%PcH= z>X~0{dA@!qJqXSZzpcaV(;0jL^p8F41~9^FFL2^Jmz1y7SUV@+tDNeLyV((^5hK(w zc{i$32HT!AIj!F(T{_-LE2=7sg{!KIsjU8#M#hSR0&%SYD3^5WRTk=}=MOcQ8!vzb zhLr!#MDX=)faEi|%LsV?nd}P7@C_TO2qx23lIi7GPaM2-_cc*V%P+4D&GMw%(vhp$ za27wG*RPs?R~ts&Qb%Av3WvM^#A6;AJEg`BIHMk6?L@5_W$s&(V7%xOYr)an?WAaOe5hKieu9y`; zr84V+tB%J!jF+{M2JT{TK5C=A`YUB8IXS6=tez__+uG5#&R0I|VdfgHJqfcC;oIiY zV8Z*lp*>O$=eqo_NqC~XGpd?%N>n8!dA3n?7Ov?6PgMl#R9lbo5yd4jgdtOZDkAb0 za{{ayU_luk0%U}TZR+tbbF4B>4fF5V04uC;Q^vJpdnfI^1U%ReS8x2W$Uc(7QhQ`J z?iT=%+PUI_CdHY%pc0;)k9R8X?<)!ge|<8UZ&^XP>pby*|E}3d*WP_ZrFfn5ha&b= zXX+w&=K^%^k=9_7MsGnuWH31&2VzYh`{>Pg;E5U`^Xl>9MzNEJHRw55c^!BOG^5id zVd87T3EpNguQ%WbZ#fHoZ)dwiWh1!4#-nPS{K$gH18)7jE6tw5eO<8}5@Wf`pf%@?lV1YW^Ur<+_Rx=P+ zLikJgzhs#p_k>I}A31+CcowPp+lVNWE(nogWNT_LJvq-+BjA$8bH9y;H*}kihl-Yk zU7nj;g^umJKP%hU1h!6N(+nwKkSz77KTle`EWmyZ)3l_^gGY1wau%G?fQl)VhEX0! zGZm3ApY)DVdC0|;hhI^7uoOW&{b(}MXDGIJT<%(O+m5%ZSRrNdpOHD@u0|Pm6^>Br zR8rg;K$rjMZ8G(`J)0?xeDjE<1FI*42SdKDO&}}tw@!QP)!?)1oM8!H9>`_3jlKJC zbe&~Q1z5yt{f-5IbqD@-liXo>BbI$;iT3bcX#Q}(m>p>Xv!dg)>~&dYXwh4(_CMv3 zMrseDJgCsi*s{Hw=vKb#MIf%Zbl1+trB{r((mfg6API&~2vQ@@%b(~&sX6HybHS?} z@m5<>CP_-}K-aThkIxlPn8vN0(s(VNx8yj+D%Q2#`wZ5U;MX*>$9|C{c9PR(Loxn9 zxT4VK{~OEipYIM8!P%lQf`m~)Vv2mo=u~Cqq(~boEY0`hGKg+_k_Ikw>hj8}B$nY? zX~OY@*l6Myj}zN;=p)^WL*}pZBgW+`eharY+$Ag&7?+U{2|_CChMB~1u@RfC=3D*{ zx>(^KH{g1b;=UAu$G@9hofK0z4=w-GD@pJ&!EpY=^Z(XXt8Bg(Mv<^C=&rlBU4DZn zq14Z39Pqid6Sv#tSfSsQ0Yk2b?ELE&<`m|eMtD=tYKg0?f%@5ltbLFzWtk`+t8Nu zybenCMOE9oHWADhPT$vaKtn5b@nivsy$*u0&(s(D1@99g%^4P(of}c9OGs>$(#guf zN#CmT@GT2)5q#@pUkij+#^*tDPcn-W3wXoXKc7GHlW_bhUMnMm^|!AjPKwfqZU1m-CHPUdD% z&{N_m>TX8bdj2m)2S21k#tAvn-W<>`q0q3yU!!D`Dq`6Oe6s;Hf35z)YyD705AAN6R?$gJUQiF__YZ zx!;t|Ne**<*!+<*%!1p>6#Pa`FIy$1u#!neuXeJWSu9@#jOd`kB(q2PZI@R@Pux(P zVRQRklhP5Ns{(1rXO~aRtv~Q`YpFoAB~k@^E(|g#uh0^6YtcMPqTW!U+=Gz4G=jzJ zYh3q(#i;ncruF~vP@*^TLg>W-kTnWRr~r|&cmpT4FL6aH&@I5K0_TL#5vD3w_FmAi zfJfb*7J`Qhp3_;1)cuJ<1@|cHZ>ncI%;Aq;A9>3l@x7$!=Q}cJ_3Trs>2FUh9y7dR zjr|nU%E z=CQ;0y}-NtGCrbG&7!GK#xJWd!7xmpOxEd;1d$Sena#ta{pTPIKfYEgWEMNMpdyTj zU$2iJafZsPe(z~KY@v?@jmJY)s#Rx05Q5YUdk@+CHw@`rjZIQ5!dV(?Y>rXx@}zUj ziE;BcUoa{rQM~mW)kqhd3QpN~3a!N)lXb_mfBP>L7dBOE5DXC+;<9?u)bD6InUuTB zXZ zEf^!ys?z)q{!igglZSr7ZaS#JP&Z4P7jrz$5Y`}D;|W7K_9X%NSzr^m^+usS9Kd4>`B$m7W0%pGQ$W{Rd9Vx-Pf7aWMD&; z!GLF_*@`FC{9o#Sj{uY;N^bNgusw30DHO@gyO z{K)^a47YA(X+7dG61u1>);jB_u^|+nJe8?suwAnt7&1W9jF_qo*ABaBFGiY_ zloo>=ZBSWHk^Nzwe)eVqFx~H!0wG~h-*5Jr_HGr{5uf_z`tCs19x47e4O+ARMQ;$Lc#OOryB0CLRo z|M3*_ykP*N>&4p0@~)Q9iZL)jf>m3ysQ@HvN_fF=X?$lYbM)NWO?H(BkD{b5UW}P#u%?d z>5l3=F#U13Wkj)gDAOgZ_?Fp+fv38$R#BS~F9<;T`I*)$A;GE|Aw>da+p0)q*U z^kjfuheE2}xHAC307j}{FR;T3!q&_DFyb_;U=%%QH>c{FaFpHkai8;`w2HT_9D<2u z#nv^jQ145V%9F*DN>Vrklua>YYYaeD=;0{aXLgO_0!w>g%E!YOary`A1Xx}1CO8zw z$fGHvDdOO~GGt*tF%nW#8H`%^Ld_vlH8^2WoN@>QoHW~_i|lq zl5Dt{a&4mgz6zkc*SI-D8}sye*QHL|qgfUGkDw-;8o!_I-&lr5(k?K=MaaI#Gcie= z-AoInZxsmR!lFOP{|gxe#9kVc{)b>z7Zh8g&tyd#Z0yi-uJ6E;G;oK90~~M$sfzq= z!S*UiFSdnD2$_xZ?94l4;0H*zLkSBfkt*!!R7I)gb*xj}NxCp-wzR;g$>-%WG$buM zLri#BEgth4X_ORn9zd{(zp@}Uxfj+*H>(z-V7qm-{_%DjL`Qgu-E|zTLXRtkM+Ojn zI?fumTvs4MMUdU*sl3)mu-u(5{<&2!MI6<|D(FRzDdv8hdeCg4ucY2jmoMAwC!L_1 zZJ+{5R&L}ZYek0xT8_IkB|aaBS5)05g`Z(bVSMCkpjd)%NW)C7BddFv@~$lET?A|gYRN*PSA;1T<(bP;n5CQjbhE7UNKCF?q@xDs`fTxDv$4S2ACdya{0?;#QC zNeqbM?Hs1S1%y_+vCH0&$HwK7FhnQj8|UCY;dDI|ASHfEfy2&F+=_1h_nGQ`C^u2669dh+hkQnK-OIj4&pdsNKBZtebV%p31Gc1vA6opRQE^BF) zHEWse_FTG-(5kZLJB*yM19%{NhYVlzaxEx!$fKs?fsnppB`N{<4ocj{%zxBB$Bl;W z2wwX2O&XPLQ-=ZTrrs6c5(-+$o;e=h7f@@ zhwJ~`(XG1=7M*vJp9ZWYmKL=$)tB496-9tsx;GlhY*24WO^y3F`&rEo)#BvxpahdY z9%KxGi;GK3`HLeC2iW}YwpQH470+(&KX6(Ao(;km`ZnZ-a?R;KBqw*UGKlk}ufDew zVhmOMVf{6ZoH@6D+O0&jNO zhl)fi9t^s&4Owk`Gb9sj6ebH@(P#R!+C@)qfN?i(bgNnqR-_^Km_yRe*WY^sXm^OO zMbr9>8dsQ1L#DG0yN+;c16?Y!sqWJ9!|R*0=luAoIy6G_w^DK-zVq?|MxZ7*t_i@F zC*hXPN<~joGbN?V*QNVh z=HUzQF ze+J{p83yjJ8RkxA-e*;eLC?jUgCB!j%s4vEs03d9jjuMnBi{ukV>YtFQYch__W>r8 z6{~|ZPgcC|8EgHxqB97FYOW5^^)=W2)VS~eLoiL*Nv0@Xsp%XU+W zFv2fcoG@m@!po*E%lE8O@PR5R?mn74hE7WcU93($?bqsr<`2Gu%hoLj=q0#HW6_AM zQv!8RLOZJD_Q!t+hww{XF#J<2@N+6-ZtuPYgY|w$2-p0A%cc#)J)H2@)OWGrq4TN+ zX21UG-51tN#LdShw}4iyCDmJj#X$hJU3FTz;zi-0XKVf9>G6LEL==%6e52nba^f0s z2c3Xwufu_=7EijLW<4&<{|%+QnW#NmT(bX!E2bvO-a>%RuLh7$@Fcx3AZ^a0M~9gV z8z!QUm%8&eT#pwv|Mra-TvK?jky_w-si;d~@^CNlKoBoYa)Ip2_xi34+*#Llp+Bi6 z_f5rQNuRBwgtE&(S{VU#f4qJln%#+UhDiiCL=A-&dCxD6a9J(-=D;||^*gvuS4NPo zyZK`Xi@*T}>toUpJVXe@z%pXTZ)J+MNLYyzT%T2moy&)bR}}_KK8`W%P((yiesJwq zw9Jur+9H06;77^6QTRS5W%(`IEUk`h(6*AHThThgwR~(!JNE-IQ`hIZ3i+x=NqGE^ zj9NLo(cuPJaLw=az>+Kb8-< zR&}1kVP<M!~M^ zh#3p!a3H8Ai1r88=nP;Cq|U>H60q}02oYrE*p+mXYaCCju+!WR>;$D51hdZ@RWvPw z;XPe}VDX4#wTN3Om7ys3j4c4K%Hg1kr8OebhYfC8fBcJ{G;v@WO*gCoX7|1vjSsa8 zaozUvNrN2mce89nG$2zj<@pc*LU(Q)!l-n^g7sD$;ZR5$A~$;|$iJBVMdkyUx0w zg6U&UqDn7`^<(sC>kjqs&S=(j?a-}TJ4g=}+@vJ|@n20Fny848{w`~zt{j>0t0p$E z=Q0KUI_>`)T-zQXOm3{}tt1QSsE2y#ir4A@O}Th7K_5$XlTYQh?=%e}#HcPw+^bxE zkXX!k_(`n5i2u${PWw_g0z9HK?X$iP0*9_x0-wK3t*SFt7Be=L3RN(W znP5Z=wQy!Pb8K&!P0fvh3KsN9TAvjwiDB?8$Ax_TrrY!W8rUY&%&8r% zJJ~Z~`41tr`(&orCrWkQl=)rVmuU?-Jq`<+G?A3BY&8N`#roSy-T9#r@E4$9BLdo2 zOLV)xB}6CIpxy2uTwKBt7&ZEcFv?ri&1=a;(3xPhrdP9JaC@+aU-DVN3&#jkookn# z+~kwSp{!=5&^_l<6X#9Sr#J}(M!(S9Fpgw5YCMjxlqaRg#+R=fzq(&gbsfRo4o;n1 z*$x(K1HkT}gFjz1NSh#Hvi=V{*NVf&EtN~8;Z@qY-lAu6S}xkbbc zE_;Ek`8%Gn*M8=kNw`jnqf~LbL4JePTS*%?8-=FsyQU!-ez)&2erE$iwWh&utK9F0 z3`0Dpydg&q<i(b8ephciP1T6)oOWtT zfYY8|Qo|=#>h_U@*-Fy=xF$bmRuQPTC7v5y?##?%L^VN$>OpXl*O1(l*LH}@2}(15 zD&WfzqDw)MYl~;j)3DM-z-89_U-bVF@)zHt!vC6HzJqs_YhIgP7of*C=l}jg*!y&_ zfIm`l1SC-cmq5t~Opm#nvavhiTmEkYNg+NF<0xW?T(?*E#SgjCx4R8BeSu&JKPGXT z_Zgo18nG*K_+rjRFtQO}ThzSD_Wo%G5oe6!zF`*EwC;3-LlMJBF!tUZJQz}S8B63JqO*lw9v-d(_^CRMeh9=~h_|8Ta&3fq+?^ z-St4btSvc8Q=pDCb|J#%ao>;Vx#8H)!&=zVxU}H+iNWce7kGVQ64vF1X8cPq{M1>T zmQM_SrG#G$+9ID<5$#2WIw9MrRKQN1$9r+Xo9=DbVxSv-i zFf}u32iL_!6$4+Gs1{}f!MV91z*&MS+cgE^w8E*-y!?=eQo(4)Gf_ z)C;{iS8w&#Ea7?PK5>5|ll1t?RRed@8pqUdZ~UPb3r8zl?NW{b#a#Pe0Bvu^Y+U0#Dq~kD_NKCGm1uh*{v&-h=PZkAg7hVb>u89 z;%t#2#M3UBgvLNP5$&DgZri9v*utnJxa-z{udv4x>ZKFJ$qB-xY`9eO-l?E;?37bQ zR|pEBr(|QOWmc@6s`dx9CsM-L>nMLmfXTW?b#&XKK+9FLH9j4BW;6Oif;NUoz0pW~ zdP&iyNCm9cU~()s+hO)XbX~$PwV@X@diZtcjl^5Ic)&WGMj8X&Wjt{+&V8Vtf1{XY zt>bB}pM_mss^rF&>AKu98xpj3SpTG0zhmJ`gPXXL0vEOq+$Vl{D$gelJrxp4j&DG6 z=bUn5pE>Q9*F2o`TNkSkSNz9x!Z~$_DmqX`W_EH-cIYfATdS}TJ)Fp@&dJtOi^ujk zLsN`_2T0IBNb*r$4^0@Aw#7KIf0OkNU!DRvP7{W)R-fp`iX)jxs-$~=uHOYl$DKIL zEhJovW+u<-3>I7aCF#P>iBeI1)4$J7AzlDBg6-5_pG(D8>t_|+rnpbU)tmpSch%c| zVf^Hb6>rNC5`ck6=R4Fg-kT{_%=|)F@KRuU1((MQTx32N^nKf{d#`zatG}xQBE<{= zO%3*D>rij?Yv)FluYV)=SG79VqdVDvm$XLLBCeHWxC2ydULQ`0b>QSstvbM=)$uo; zno15Dti&i+z&;IDVKo$mBBJn;s(Jz*8-#=@9xX9aG!PmINj6kav?mTOnxDYJQD&M3 zUM5yRleKS@Se|M?o%x)H71{gVTbrdEArTWezI)T}Vxj-fp3v<_GI+0GAbvjM=gSBbNxFf1U&MVYN7Zh?`yCKPe)TMQ2$V z#O(cjG`YT*_9Jqg(GCgVWXcSs?wf#f! zYDF8KI}`b)Ms|t%1Q+9XS6qZ~gl7hr(Os8|{11(Ekt|!tb@-@9}@F9Ju(q z|C(eW){hI$$G?yJ44il~ ze}7cm@@9nshxxRK;o@k|*>wXrdj(~B;_**Hy5J_j|6hoT_5tSf)G#DJSY;(_ko~Kaxp(ooE?&qkhaYae)TVhheK2U*ZCJS{i5+aWv2FD z3>SernhVKsh}!j2e3v5IA0S4$7C_I7J*`Ha3LHB=u(H|cG3AiG zFQ!nm5De>MhZ8HIPf1+q4tVo=59&-gqSt>7EEKjIoGDt4kL}aIOLC`eA{*i!Ro_>M z5=HD?#R8TWM$BYyd~(c2ueoA$(+Y^@e+z1uZEaZr6;V@sFa zt3wb%pBjL@&KXn$KmW0ma!QEYbD2QIk1+)J$>XJ`RzH;XCZjZ)r@m z7grwMkuzeSiLjIN3iI!#K}^OBOP2i(5g^ZGF+TePXSvdJ3*RDF6@KnE(PT#iv9auN zm3#HZfIiW~c_7DrfqTo&jt+u8Ua#~qNAF?ru>lx6uIPloL94o$y0#nv2gkJH3TR41 zV@@OwNT6#;A1z6Rk6-I8>*iT?B0)H3VU|HtJX_>jz4KqO^^t?xx_re@ojnilyjwHV z)9{(j^EXaK!&L`x#f~dw2dx{YnJ##eB)6TWphOKZ_d&pxUGeds>nG@rp08@&9_Z_h`qkJP*AeZvFFfaD zaW;ZHiIDeEHln8Zxf^#JFCOshu3@T^W=3|@Eh6;B@HgP*cL9%3KKrB@n^FA&f?o64 zW68su?~6+feY7Q*%xwA9rK68_k9PcZ<%Md<$|xd0qk+T0^)3R{MhoMfJ}|x7mP=-LO*69 zXtJ7#B)^%56FWX8uuwOAHT=Zn@quNiHh+t94FUOxy=b5sE{Zzg-1-eQC{XNc&i}{% zW=03}peXo@`@b5HWE00NvG4cCKkKC7Jn!FrXopX~&b40=^uYy#b3OOb{BYCv?>F$1 z@bQCH)#QGA`EvXF%76MhxNGhPhg#`}3IHoJho){7?T z@jdH5gi_#T*3paje+X$S;i=)nzekn-O_XD*)(?=x;o z{&WX@?A0@Z`}Qbh{zC|QyU96*UOrnqj2>|7o0kY@_QuhB_LW82@a$$LhM3PwHaz~R zk(!x2SOL(}P)#zp3a=AhT}(v4V)J@4GYU z1}Yx(A>sAh;%fgPu*W`Kyw?8;OrD$KN@_$9P_smr$qE#+cryLp+M5Avz4)QJNaZfC zWVjcn(+Vi;k>XT@{!W9A)OOlsJ>(dO_-bXjGogxguF&?F2^kni&Ak`FHvxBvH&=Q| z;nMQUr5d&Ko)OK;tv!)k*FB3RP{IX=L=|bh_!hid-uD536um{oOgkfagV7!K#ZyI4 z@kVXz+@~+O7LzNlaBNkyZQTwvT6Q2^O>t=(pL!Zoi=ZY59LUNf-91?`K2 z7*}XYeqHFSZ-)9!H{%SWz%wo6=$FgiD-T>;m)C~JFfEK7iBFi#c4iXo+*x0~F!(4h znUrGk&hV5D)Ftt{W=#E#p>HqPS2^wUY!J!$6{pDlX7ShK3UWJr*r${PnAZ5Fub@NC z8QtJ^v4@@a2WZipuM2|$=wt-b>+ymZ>GDak3gsg zsgJ>D#oa!?9U6vKn`M3k1qn~m-YqWWmRI?g$+NF5BYhri&!J-G<-WIvJ4dIt;Q8f3 z-t$99-pp|uUsTabte)cU2&AgJ>hh-tZnly6_8%D0jtQjhvPXSYqjj~wg^Z;tRp|FM zllF8dIB5-aoSRXG;Z~zc%)R-X#JvfqFniZS&)&oSxiO~wbs@jAWW>l@9Kt6K(Zxlp z`VWCZsq)hv#}f@q(ZF9-KSdchqEtElH`|&9rqs}gYh5SvI38^qSvTli&8y1#-Qa(b zl5yYNyYrTg;4yD!orFLd+4lCo;+|yKJlX}*LXDCb*+u_gXvLU9bU|0wLTn?N_vfkw zs($-}N_E3DTP6#HU<0KdzZ8(ZWs zO{^owU6KpB48Dww)Tw9JQM$Dm7f{ht!W_arQwn}QF}-dDFbV-xKCirxq^oRRq{k3J z!QgsrtZG*OlLEr;0;odz142ARUy!hLt_TdjMQ7b1u$k#-j>`q5Rn#@!abn{+{DArc zx;M7qDcGm+Fr5?HoAOnf4^;IV$V&2E5u5YazZ&f*PN8(AzMqw`+|?ZH*k#+n0=`&k z|4_-ibOyg56?_5K<4USZYIjRN4e--`)wNHmrO}^ASYN}Cuo{PpjkE%GEFVcqjIK3`vBPre^trYm}U;cG)bByWCs1p zvMvG!u+wckwH;84{fV zY+p5RplRyCncD}{@P}o!<0j~x{MMMxj$sUKx;H&Px1a^nj;(c8et@iK z0oq+*Ny6PMNwU9F19)I%bF6i?@)h(_kkD+0(aYtBTZ5&*M|HK!T#|Zm6HMDXRzI)c z?bIB?0jZ+__Y4mnGRVlCJ=scvr7zlK1 zsI0ERSuS^6f9acyp82;C4Za8sw8N%e^zUvvM|tnv_C1Tj{Gh>SlDsCb+?qMx_+)&u zK~UFMPsfMN@dT6(N9|~Mb+$#pMwUP0J}3nSDh?4D*ZSM$a!lqpF`R-3&gz z6);2M8PdAVsLId0n(K*re1A`~QPkAb))*cx$d2Xjc~dPlqLkJ^MvOE8K^hZ7qRS#o zR65sBHRW95*@>MGY}-4VOh7Vpz63s{5yrty)iXN3bYUXw!}@1|0%BrJN3pwYC4A)L-^N6j$rUov}-cqd@jAE!=Lm0IlfH zixV)bs_1lK2fW~Y zds{2eZysZ=%q~>PL%)tkfSFY|RcsEKSWIR{EfeY4b9Sr>jHwAgeLebMpV=aZ%EJkY zV3A82OZwXRz?xRB4-`!o5KSiK{J5PwF)|vq+-QlV3E=mUNOti|Kz{qGcE|aTj6KO| zuX<-Hb!2Rhuw&Y?h3eM4+U`i?0lvunexdW_Pu>=OeslA5toABk z_{4W!RSxxALCs>{**^9K!TX;|FZ2J%*6uHjY%Y%|YT?z83vgOb^vd&%2syH%EMfci zO3x3sRdquIgcd4<2wgJn8Hd{9YSF3L>7znWNbBm{qQS_DzAVge(UWGbfj;&sTST;t z7YVn2*)Pn&wZRt83+6%-rcUoJs;)F`BT*5TWx#A%S5uzQA!Vk{kyTVYXP_fy63XaT zp6F{@Av)qt2xRJ!__@9L(E#ZbEyZT@la*PhaO~BKxUsRJb-)Pn%0rR<=rUr39)8gu zGyYS*)}(F+{`aEJe*C$$d2Z9hHfmg4f-zQxt?SRHEQe|3{m<C~y<4;cc@6>ysGS~Dji@K@7l9`OQgG*4v)*t{T%{P>(tKQCQS7UR~)mYVQZf=TWd&>Ai(ixGp!lD{pJ zS4bksX;2)KJj9IVjP1A=*8e6Ey6tDf++uls0m((113eHXO1@Uibv~+UC4Vf*A423kQ*ra8R zLr4$S$iJLdFT!A6uKU3gu93by;rYOse%ieEc7r`>xz#-pTeIpZElMCInCH!V0S753 z2$@g!N!q;qv#4@7`L+vRpoavWora{_0WSKhfmvQeOA}o}?H7)3-?X-oVPJ&zt z>jj%7^|2*t$F2)3I|lV{mi3)YffU*k-oi&)-;fNHGL@4y-^FB8;H z>EO1?TQ%0%)(I=3gcG5(U&A&|(whyJ(bYWCnx`X+T&c-Im$Eouemh}KUP$h}0VD_d z-VkjfXGP?^aBS&=O#lmbg5Zqrp8%bDF0V}xj0Sy0Ae5lB4}4^oCA+dlD&`aUKPStBE??S}%RFL6tSi_ES_?1su37>UW!OOf;%;|(d1unH(!cu>X^FtmL^$K1B#=W54RRd(AP^1CW@B^8u%k@u;X{Le{8XrS~4Klf`F$=Nvj<0Wv*hjqim+KUPN3 zzbxt&VOH7q;#&~)X8!|G9}`I9LUBUOJH&24UXm`E$ep%_fU)UG58D=ff(fghs*0qp zA&8BDGtG{H*swfHMk}*s>@(Z9>VqumRv6Nj!s7LWs2y<*3)D3h!bgnlYo;liSW}~r zfd)E&ZhWYlz}5riVcCyFBt})+s;OBsT2QkYIe(0INhb02e9%9%wV77QY*RwZ2L-`j zYBQ>c3F`ProL0&|X9hWA&exR~jp|vZKs`4&1r!w@(eCw=Y9465@+Cvq);YjPAqSC_;XJiV z*t;%Fnu-xS?oubGy;q-=O=Yd&GHvEmznrw-w=UWw|0z6vS+GzyZd^Y*{iHCs<}LvY zW;eo=B+>UA00;@Tw;k1iTiSbS9f#IZ>|89F%a`+#V62(9SVp#P!oCAc!hU3FTT5}~ z7nfC${6H!Q&QDjOj?6p#j=TzAaOT8Ki}s@uXIY|i;W?J!2wl*xlW6wj!-*RaObsR5 zZW@-WHQ2nPn}q8zA=GC}-;U8HFZ3+V@s6qmgYPS3!c-N(OI28aBAp@~qfjrYno&fQ zE;EZ_+?YzUP!=f%TW36gM5;4?jouMpAGO(I2s}R!HEn;c>CxSEv&HpJUF8(bPn_1D zaG2OPnpCu}?a^%qg>)Cv72hX69t;EN82- zY_%BK4aO=ga(cppR&7{SW8Xc7jP&a}GMx7!1bF6>7JoB25E`6*CXOsmkqEwP*z~ts>9w(-2^5e!ZH)?$%HDayt!uDB&ukEin3nyJ5Ui?>J z<^a)O{Wa$k`$Q=+h$2nl0LDW@AV^dxR;;L%)IM8!lI&~d`w`(|;w^S*>2NkH%|8kC z{*s!T3YqsQ>8C*DqazBpT>L-3&U6Da`FW(!|MwdU7;5RI5qVn~SO#n{+{lMKkif(W zfAoky-U0gXp`?(LxOWlDK51fm_XQ~J$Q;8@kt$-J*1vMl%0tnys?#xT_%X51h;jsX z^T-gth|M5YU4eWv%AB-GxBa8U_i@Up%ZbgARms?VP&tGg<7k#z{-S87^8vK5RiRDf zk4Rr{EQFo;WIQ&N5@I}kLuB){ z+`y|VJhxX;Nz6vK#!%Vo!4n*y1s;F=bWW&;rA!_ zfYsY61O>Ie3-t^CrlR_sH^|?Gj@DjLHLmNcOEOb6RK)IVBFMj8jCSbj{vm?1DsId6 z8(Cu*y>l{Y74KmV3ft&rQlkl9b*%^gcHMGqn*%?zLY|#q0 zkGi@$TkF{U=33^gKQAo|b2KNTE1Ob|Ds#E+3atO*%uu7|m=#D&Dxnxc_?l)XpOwm& zwM>0H#Yr|p%lSudXZdOsz~@-Fk&2y9jp=m$*+oWoS{wcqjwBoOJ)p=M8%&RQ1~_s_-j+(YTVY)Y}|FKfuU28IW&; zrL*cI;Mtle^cO;NG!F;Avf;Fr?n_+9rF2&$Hqh{vh$Tjhql1$#Aw)5WYZM)SDJx6& zS~SV_ujp*w=hX-^H{iu@>xc~$wrF)UcjaO(kD(dI{(L8-z$EG|p-aTQgt&Wi%cZg3B7o0^X$s^%RL;-Fi&NHNsQaGmT^FW{E z3Q^CwTyqvI34FT$dTZ?+QG}ghe@UsTI3zbyD0T<<0FOw*H7dw24G z={}cOo}W~v;{(R;`f3Pq^d9e17G+{@I-x3p zn$DYs0OVkL(#o&dWzCF4NFm#lvb(EDn1^ThLxdb&|Y2LH~Z zL7#bz@gxga3+EQnJDm_%=@Z~Wi-`%!0?R+FKN)NEz=*#_!K*{I1PPgpIR)LTk1lJp zGX6I<$2edVpDQKU~g*gu6=>U%*4WwiZh(Vg-~EV_(PtuJ5fon zH%E#xcS{Q=LrkQIoj)cIabZ^3@b8YzL4a`|D8S((P;;Vk_}U?@UcirS>VX(xcq`$ zfKP$n^ca+M;V{4%_#s3u(9BKHtB}vJKY9km2eC&9KF=1O#*SH7$;9&BgFwlE3*9iA zV&)$#Vfj~@=5MnCNkgoaL3R>g{BhaBc5)3$o|OA=twFssP^e28Cy(yLpIChab4qZe zAxLMXpvRlB`HFs|W83Z;*`-enOiK~eZAUp?mYKS#(^(k*{}qRgjV6_yZjyD204kk~ zCyg$V9qLcE62T5#GSMTodfB5Xq_PFk4R#9n3EMV`;M~!W7(FZ2$h(LLg)c#g_OLox zHMj(SNF{dGC0x1GmsSyHX`#x}%|dX6jEhR@my>`O1;0sTnPmgvsqTnTmyN^$>SoJK zRfcQJ4ROT@_2M>+hHKxmI{***aqC-45EvD_^k}HQY~n_?OzpmesS%QoTt?C>_9Kz? z_}Q@j+~W9b>(imL_UmG$bfg_kF)0%aVEtEbf=vZg(tzpPhIByV7EgsC0Di>@&@lbK zdLzZXs{~JiSs;uqZ3gD*CgAp{pc4A-UT4y3oE}O%4N9AMSQ+^pK|*NF{8z7=OTXjW z9*GOxs^WWUV3O5!U^~~C-ux{{ zy|ZOCrS09c=;I+mU)Zu)ejrp((0zQ=Ak5OO0Xn<{=BJ5VwwTt!-yBJ69Oh~qc6TQf z9%$5eFA)WSh`2tdf(WyUlHC17ziQfNO%uW6z~G<#U{{TNZb5#qQb4iiP_e zg$V%KqsjnsSKZ{Vk~zgxh$Avot|wRkGwgyksI^J&N@~= zw5kcA?HfUGohbS3Zm_H1l;2R6wrHP?A2D!#6fi^{UvFcZE(8V(?r!rWDWgxjfCd~{ zs|g1+SH?CD7&5Y7zY4wQgEU2CH%|M>%gj2qcrt>vngnHzoEvH1rO2SaWQ!ss;^u37 z`|`A^TF!E`8;CN6k6X!wII#N^yAI_ltrAeoNS{|%_(oM-qTo<5cp_WPyb~#EwF>-% z_RyZ{!;>w9<3f@^8l&*Yj3z9N>C_ju%OrS&%Wb1_JGS91=2Ct#ilV)wCQboQcc(oo za_hX%HqgQ~Wn#-6O3MhLeVy~Ju1+v#`kJn|%9|M#lLks5owrXFOV^}xqYAPD^Io{1 zMyfbuS| zniCXkA8ODrelfU6ySNK<|EXhRqxpnB!GxlPT!2#ncG-AcF^|c|II*CMkC$#+}N_cM9|%oT!=2%e<51vs<^W1<`0w9Cs8o?Bo>HV`EmGXn%9v{^GswO zJ>3w`rr?rk&7i5e?j71iSQ8NA(zSG)ylQyIkIKn8TGTf}*en_Dp#Bfx3VO4%)Vj!5 ztW0j@(C@g&-IA0k7o#JGGB=Fj!h{NOcHil!4zFn<-W+G+35?=ZpH;xK^%0xqZn+lz zz`3SNr0`8w^c?gxCC)yEg8R%u$#`Jh%okJ&D$dKi9#|dvi7fMC;s&&VvedBFL`Dn9 zL?2!XGn6=qm8nZ;{D(jn`&$0#m%gqHuHwfV4V_2!3QN2(ZvUbt46uo_Q+b_@kvP9# z6F$QHa7)i_ky{8UdUb(u1UkX|mo3PRe97 zorPhPfN?508A$_f++?A>wc2+rq`BXG*UwibYs~cx=KC3KoD+eujxB)JvE#UHXQxef)}3RupDG_#JQA^S;MQ!lp`$M>WyEui#y6rq`s+Mv#ibCv4)dW| zgGPYhrrWhsbokHGscO}dFDSk(h7?*<-k-ekTXY%A=eYJLh0?YuAw5^@Pbx~{PKKsjepYg~ zMi1ZMx4XiR6KrqZ#KA&+rsaoKn3P=$K%UJ+JL78FfkW(Q``10hNb3{321lXvgwXY% zwaxm9Q)YHSY6V$USxR(w8lO}B4#Ee88q+*GB`6y4wA0jRGa@^!*E3l}$?WN@8hypIEOklb;n*tKk_u-r&GOKOEPno-uW#lp0fv*!!3d^Mx7f=WN3K2%$Dt9cp{b@d;s=q3 z4^;1qI6zPg+6ghM&-Y?L8}e?vJ{vdX%L-ygcM5~*Ywp*DhP2FurNt!`41Q^hq*Z#B zkE0q{*HG5oQ16cOKu*s~tR#scikho)al+`z7yvj6_k9vgOyA0%bLh{fLQi#N@R0oT z5qfv^U+n1B_6T?n4u;}}#3aDmD0Z@;r@=)bqoMvBNC&qdGEM;*x~Tp@jRDiUw^snZ z7*%B$^+jINw+~=X@f2RWrF!&v`!|~()*D(8J4*}kR?%g9+v&UKeUn8}aI2(Y@u=Vm zrzcp=FfeW%=HyB4Kn4mF{R*4Gy_0!bfqhIaiDMaNryNzGdV)7VIFV(Q+Jot%=JSOX zpiEG-FO-Xojlhncn#uvk-h_U%$Txh`ZyiRvJv*uiIb>_c%c z2S*MOpHKznKX`_*_rW_dv0a#A=V>pAB6_SAZ?++&xyF{YwAT&7+RK?-4Xc>|UpCHF z1pSAN{~f;ciJhaX$WYFiQWp)QfSsWI-=FsEJL*otfFg7H!7ffe55&1yx^Bfcxu$#t zz+azue!Z_IwfAmXlk&Hp7u5@%A$%5u* z$_y=xVxzc)v4rH$TWWf9^)!@LyVRPFH8|xPkybCG7~ZYQESs`a-2PAJHa2Fi<2E4?H36p}ST$$AH|2?>rm11`0{UJh_%4mkF+YTOi`ppp$AmO}0 zRP}6VWE=4g5M{|()3fKN52vc+@*@IsQGYiK0@w%2Se97H``(?XHDkvefcqXN~@6c$`@+XMo;kPTv+U0H@#(mlz#+TDSQk& z?JG)O8vT6u%dp?Y%%@bm#{HeDL$%O!AXIAhLi3b_+fg1%aSM( zlI)J(-czwr3W!GH^VlPIg8lxAiLtE$W3>=`eop2RF1oLxIMxd2URDSc#$Z`mF6`K*n&Y0;$&%+8jYgkm(YOASvqr%DcV; zH#j0TA|S4P=t8B`NbiQvbA|1+XKu>bMyK7fgnecb4gneU*)fV#^ClD()yxK*>d}qI zCAOxwIzwxyDEA6ImA+r=Fz>5;)|ZP_W)+HNeX?tfZEMb3`*ilpDyvO@! zkDF|17Dj}I_nT}{8ue`mDe$F%RdKEw?kBD7J&d>^%MFpxZ1$NW*GhT#v>L6wH`NwV z4Py*p%aC%Vu838ft|4S*jAj85-mu7k^kzn#9yqYEyuHIRWo-HKP=u(@mv!V9a%!Cz zT*?7i?K)mMR0J*Z{=lf^j*yzne2#y=tgBYkZQzkrt$lay(T^>V^+z1YQ5LOi4NfG^ zSyH~N(uaS}Hi=N$g{u3t67;Sj55}5WS3QQr@vE+USC=Z2wr1SDu3F=;H77kaD|h(% zA_R1!mxp;;4^5oZ&Gz2awV0;!mb7V+UcJ%IQ?m+zvgaw^bm`b*#B1j%+I43#*LAl^ zyMrEGY`Y^4cwAEaR)B8oNM1zfb|ry5)L)6<8V2-xGZ!9zMSE1?iSt+%K(BCxr0-4Z zxDsz~MrhNTPZ-7VtpityU~k%#hh;(K2A)HOC~fk=;-MhL8X&a5YGPkhCcfXVX~-xR z;*sH!mbR5?7`@8NbFX~rUp(60#;q%F}3ccjY|SN!y}lg0@JIWN9htBY9@E}htLU6OylJHLa=?91`f%2SQ$R>Z_( z;bM*1M>i5WpkSJvZ25RYln#tkJqp`SNatJWw~u38aBHM31GjczO+7KuVSP6nhblJq zsBhINAIV1nEOTActPxO+9scjS*tRadFiK&s4+xS6=Fbz)QtDk%0&gkwk!BOj0tV|3 zb1!2iRhgLsd@ZvE27;k&UA~@g2*?cokE-{MOX_|9fZe%s0Ge7KN2VZ>np$R>BitG? z6co(?=E}@jS)n*m(Lx0^N8vyLM@sINvy{x-scEU@h-~lqeNLb6_xF09=bz)@ocrA8 z7Vi6cU)TG-Mv-b%rK8<0w^_~7>snZBlevAQTkpT zYGea`Q+lAS_qmY1H)Q*3%)oy{wgGV|CrZ9#7|-zG-KFevEk2mZsq7uQn-J?>s~X1R z{&9uPJsm~TW!2S&{@$AD$eegBxzw&#Gms?``~W-jrNTdO^N&1D)f>kscJ@ymA@e_f z{uq+TXv?ctNY{C^C#LCk+v3u;2zzY=Xzte5fDtJn`a}R!AwJRA8lRt^4GU|!&dzVg z(R-opsquKP(|wi_pR9%H{6Iz*^U>96p4->S;P-<8s*dbJ|FsieAUkm}gLPp$17GTd z8X5jkMYwx@mN*0QPc$o})E?=YYk02~gxlu=t(HvdYZ@hLKK6gx`3l%lpR`dt>}J~I zE~nlnHaivH1L<-S3sObw4AaT>9@6)Ck9L+*_>Q1|)OzxD;g6f*Oab{p!yxR!Hw?y` zZy-}`7FPJDxh4RF2|>5cOsvB5`REpx0Pu(IT2+=!0*E6j>j-vs zMgH#Lai@&R%Vlr9sS(5nRic?^)y$t zcU{wq#`C~vh!e?TaP>((IzB@zbo_Z*S=lM)nbmH|C3v)3< zJ^#3FG$RiE;9bUEidA*jozC&^8OHNb_`w~vu#csVubfPC%B}>Nn!a8a+457jJg_rG_IRX7 z`&eay&wELvqY3XK+SU@%IyBV#boQ5jG^!Ivf0h^?9`aG$BN2Z=<=GKx<;PLKR~HY6 zNbkDQ>}oLAJ|1#|a#J}Ge5~e<*D=%UspTg_q^&{KPpf6K2cjKX$FhJF^5~G6&z)t( zFy|wWi%aE(i+dL~ST@nMBLTnQf{`HQ9|x>ll6xP${uY=5k2ZdlZ|)^*NEBBb3gPiS zMH1>;DaM)Ko!0xm5V!V%26=g^kckoZz5PnJHgZ>gJab%Ep|DTPCH*tUdniX;bEd7f zyPUC!>za#SAUz|#xPY&3x5a2L#2vXDe@ycA zJB7Y&yttTTn_WoTyg#oBf5qLYZsx(Hye~VSIgU8Ki&QK$ZrSn;X2v9(*c;=lBy-|z z=)4ua+^#MeU5iQUb`cgWVTI{SRz6j#QfsaWC$?G+9^b{K$SvZkZcnvE^AcS*`EyK5 zpUg{F?(-a0&$7%bnTLrhaT*8#*$IK zy-Qe}w?c*5S!H~Fes~r=S_O^V) z3n0~-vd6CFT9@S#6J$TC#RHRblb3*`GCGaLoGK^6toe_~2f6N10pbDe%)RWb(gPW< z8K1p^NQu_e#@2!Am)p{NsIyi9Bkd0*GDG!sA``8F$|zIH{7w~Y-#o?ab|JL|V#O2B z#++#CN$X{`2a#rd`D6oddvlO=W?7`uEg)}#9cB)U2qr=|-4jJa3iq1`)j09?i}0yQ zzFmTU-sIKr9>KomN~fJs#hIC(#v-PT2N%#4f_>oQh~Z%{G8tw8+p6+H<<>*d>bTjR z1s`EBWv;x>IRS{Gq^?Xhw9}Ec@4ujC{%*CkXX47b%8?KD3$q8$WPJAaUG={2>Fu^~ z`bPWY-O`<<;wk0|i8hZT>|>=djBk;ftr}&ycu5bO4jUl6jxv>-E^B9 zy|w&Nd}q*R-#5u;PkYv0y63q2#lGBJKhPxqdZ4O?3Sa5FM2SdhYT5JbN7LL9GmPxh z__&X-+Jc_+q@pVSM3|$DL&YNTsNQq2T-k*bt%gXJ^k*i<4L7> z@pKm}bL~p&>uwYg9MThndAM&!#Ga1$_@+$icB>q3PesYx=^3exvs5j>X|7jVrVt+-cWvQ$ee{xl(eNM%yA zRnKw$%>H2JwUn^BpYw7&8c_jL8%29`>U_+(t=r)e^`zbG#-Xl8c0~vSL;9taaBsh6 z{?58<-0cGtea@gMA~degTRb%Cjbg|Csg1x)dRkA2-x9SL^8kwu`55$;^~veD@{0`_ zf97(M=HmD3&aTqAWsqBhhd~l&=JA1U{$EkC;aU0@U5^!JAJzJ7=B}>N&h9*@`Xb@u z2V4b=TY6qkkznv?c6t=Z6xkFX^(8R1E5XGT##p~kIf{W8%`e8f45(UFM;jP2)FZsRUZ`W^w8CgrX`dzTd?AFM|@eOuEtJ$`+!iVkI z&lbC5S5z?$&_AEhxI^I!0L(f&tlaHRQC}IujCkSA)zE_2=PYLFZLR$Ld@3y2Y4w4K z!aYjrNpd{5R?9(9aW@rIXZGrHW~rwC`QnWd#oX%EWMuum?R8~}T7`u!udSk4mdn3% zUqyAI__k%dt8iF2{{D2Ibmlv?tdhLyFV;k*o5h4zhTK=`v(tmSG-9Swl+I;O!!Vb{ zd10&gC5%$Wk9|$*r%#ESOc&HO)aUl?{&s?b_1 zSAzww2IP45sZ$!T9K&$G;f#K*TMKdT#@|Qz{R~H=yvG&;m{Peg7YRg|52Rc(|Ml+& zw-dww-mpxdvC#PNz&Yia^{&QTyS_VLc6HuPsL!o~hrzn4H|}j7*?uG4{e0B= z3PifCIoW-LqJ5*Bu{LIYw`>`S#OR-ZHx8__3a!N1#a5D6C%P1N{(4-~f~1#rUaPv= ztmO4gyjyd$)wmDN^=pUh=K7g}+U}-! znMKV{J)f+wWXGu7A3KJ?M$1`OH8}bk(lrwot4{oU!qW$TK3ysC0TUOT_U5Mh!t;jY z@z?yQl zOqPxtAZlEFvr_X5aMC~P6l4Zmz2wJfOa|>A;-P6HPzF8vOVr%`Gs1vube{ zM`vjk$ImsN!F1jJXi@!;a82)O>SVG9uxFi?@utFDqE8|8~`|t^D3v6j?If+itBDo>nU6w zXZZ|Dy=>N?->NJ!Q@h3Tb)9$g`&wCChiRq0g#mf~04R5dH?oD4wcrGAMVfqjOws~O zCjJr|c5goFtOcns`PLi8{vHMDwEYo*moQGk>UW`<3a^5$Qu4(;q}Bpwznk6q*Hot~ zA+TgrAfsD+6Qm|dfGJs>MX#bc_PaS423OutS$0C%Lw6_2n^z8IIgOV}UCOozPSNDE zKZ``SmUM9_3i|PR$E@Qv#@sl!hxUbf20^;K$asl5<*%Nl66{TN6Ul>;0VBv9lx?gf zisYtI*9QvISJU^(-6x?OQV;d6Ff@~NBx9I9WbcReNmxAm*L3{3$t;=#a5h;}hGy3F zc~T!fG+bvZSa~y#uX9zn4!_tCSOF~9&<)o^;f~@$>`D(AYT3BNy2jEZ!9jd_17B1J z9D7P;;3rR%Th=4vDrUwNwH{vKq6GLNl+wPG3#{gqNLQ7%ingxMe3t3 z#SC&CzD^YI+2c01!Hv9FAR@f(T81h!$k@h#hA2(gyOn-awFBA}w?&~LXq>b;UZv9t z|7I1wk!Gw|cY2eT5EHZFFT+FB2^?e65Z-Z3@*aB9jX$^|OqLU9O;l0`fXf!nl2{rU znn7wHs8H#XxO`gA@{ZKyYq# zmm2OdUec=-75~TlGGjm4eN7)5gUiO;LF1g(4urI}KC9-{n)(g@V!oyU%k!pw1}R|b zN0W@J0qJ3O<*Y-AS~R;=wWrI(!m&bXBt)Zk+G;tP!rFG|Wny%~pzuXoyITCEH2fkVs2KpSx^+(3eHDeCb--#DzUah6u}m0fj<0m?DRoWOqra>S zjbn~yYy@ol)-ZjTi*QeBtO z5nuPdVw{6k2huI*nH9)gPUx>3iS?%J(=+SBSo2T0y%7+N_pLjTIcO`B8fcF!X*BP_ z@hYZm7IsO}eHSUr-$tHoe#vvZ?co)##53$TjK_;EL#jiC8&+NGp#Itc1F`kdMinZ5 zE!Lakrs>${0r$~ft>lBt{G+6Ms`w3>+AwsJqK8(41QWkKB?b0Wm2u3ze9<19PxA>e;>Z(zwUV9u}`8YCZzT?br_ zo^Vk_We=iTdT@`!DmI4de*Xx2kozE^-|Vb*lS>4w_esq4%X_h{rTcoy+j%eb?hK*6 zRTS5h9@Kx7D4Ai%mvX?tvLrnx13ag(9Ain(@iePo`+R%`m_l+whA6veu2-ljB{ zr?vQHoQPR7Vn-#R`z;YKoA1GnnOeghE^@j*1GQj@#6%DEQgaDhaOcv2aE}ZnS}OAq zzp?N&onl=piX{>gd@NOxeJxF_g*V;?q_{VB)+NO68E=H^^2`5twjKfy}OdpVg06AK>-yo z4;PW*?A@uPzQIg^_Rb8sgG4sAz!OvXi&s8U%uIv$56~MY_!R<+gD$HYey`v&3nC@MhS+j?tyRM<@$(pDd(l zn=l=gWM_w#@Oq;56()>T{X{C zhsU*P48KhT$`uK5%1MO5aSE}lTZRJcnzS`3m3|u=Nbhz#H`83;1DrtPcp+;NwFqx6 zwnj}K0sJ6Iy+@DmnM6*jQ54j5^E%m}aBQvK+-bEjTG2)g$LLM)$u6~q-i{EEp*G;r zTALDwt&^m>uuFm%W?d3xQc-YkvMs@pXE%=(wp$ft6^M&fyWXOAb!d3~s?e&wC))V&M(Zv*@bOH|mGyGD#P3^}Mlc+8quCLOCf2Y3FDJnw zs8}G|asXU zGxtv{_ecMoj1*Ph$A-U%cZx1woR=%JbPGJY_tNj*Lx&Gwe+PSi{R;ZEg87_jTRZ&| zH61nh!*N%0UTVZ z^!&MiTlO@CR*mb8u)aYG{_Y0s`v1Cl?neG%WW$U9D);ugE}e4^FI@Ajuk0x}YFk(A7f*21&$aOT zV9r^~?4KjgsQI0-4;g9*e^+KOv#QFM-f^>X`inUCgG}%n+I85XbN2g&d9>`#@MmvBJ%uHWB={g24(x#U+D=YYx!$Gi;gU+6lY6FMn9;-O>XTcM?ir@VBs z{yYGXw}|W4LC^0JZHM4zO_gLa&Qm`g>lGB-1&0FH1}XI!Jk3tf^Jjs!gS)t`R|S3Q zn%6bnKpI{S9r*hAa;wj2bjyE4Ci9YC-JeTeC~3{@JUV~+*>Wb3Vxjii-=VoI3$Oop z^ml0Bs#k!bWf)=f;F2Qm|3>b*axP?Nc-M8MsH~?2ntT4SnF!>Vxv5n z5cBvs*CpayultU9W$T7=b=e2HLOhLtoW5q>d|KLIf%!<(=cNp;(2bWo?8Yg?NYzJy z!BPzxL-C<+uJ!?TQ|s5GHP}Kgf&UJQHAks12|YKm9Cie_ z-n^AdXS?ZA!nM6u3TXQi3ki!KtK;?D*GVA{3HqG)FSxlPUb#r4!$hL>UsY(Su$<|r zmIS;xXvR_$l*aaKtnJnTJi=9g@T?3aw~W5p2F-sGk=iPyPJrSrkpiNCJ4{sZ5-YV_ z1({$ALxmmy9yYbjCBi{-3<9Y3i+2cyC@DD%V1yyC3CEEuECJ1WS4&P;j}(OD`s*E; z_hyQ5eDH={cEzwb?kMZF6#uPx=15upStEj|4Y>1>Hy8Nl{GYRJic4RnZr-p0t(#Ra zs}DN#h~`Ji=SNbC80{WgZ1KdDV8HqO8CvRrwGapfC#|#<@8>ytP0YksTG`;d=nZY1 z_MZcC*)vBz<7oo)hvqpizrS~!FiYO0oEdbR5pK$7nGbyl>J#9A4TkKKLJuQc%k)`mzHRMXB3iw1Rpqzq{t*-@TU!c=Vw{fis zEA(Trt3q@|D(>h-e(Z}rfqZ5r+nr==L=gFey<@c1ltX&F*kCUi3ODw+PiI&ZF9i)s z#9|&C8k5hpEa|?_lJnP}!ma-D9?UyHwgDa0nb|)2GcoFH%J5gjZ$#cJ;q&@kjgcD~ zr@f9|eGf6R+)I2JNSw2$w0S>sy4)V;Lq!yf9_yMK*m)>aKBW4ee-hUA!(yteB4h#8 zqU=ZU)I|UHx}=9ecgNcIDXSs6Zs;VQB5qUduZnJ;zMQKYx1p%0_Bz(H_}~I87vWrc zzv!Ck@yoN@_U&w)n(ugZK)6!rwNEu>LUrdnomTxShMp6uN-j+5WTX&h%*x4D7yxCfO`niSKD@8n7ncOfQ zY5VmoW$z!EhcAwg+U~qT@q6-mh9J2yLvXE=Q>67fU&fXvSa&w&8pFW& z&4{|SHb?LMy8BByhQ79UPCem|3PbazA07VqDKRI@WVQU@WA98{?~n1#kCyp;H*79R zHg&f=9&MC;UThVw@;Yx}v`+)>%{Pwj_4zoJ?{R#`g|rvxGg_A|239J(zh%j}qc+0mH;f+ruB!T7 z5)f=%vhvyd!;~QQ>bq}*&;z5-Z8HYzE-JFF@|!&v?@VsL*%JG3$SVEOU}EFyp)(oI z?^=WgnjMgYl#9MQxBnR`r(CK{f@TMumK@3D$6L7U49N>KwmtG>@pe4fI6MlO3K2;l zkdw8)IvYI1jK!tzEAahLzU1Yk*ie!i!uS>--_D#==hk#2XLZkZiwDUp)^i(kuU>NN zW-HX^XF0oeDTuxJS$NTDOU9!~6R{IvhoH04 zz2|+7pAynd>g4U%Z-Agvrjt=NIvAufyQ=ab0(i$7qJ3E0PG&LlQUAB=5`)4g?#{%= zSnK6`-=6JAzG0$YW#%HG(LeOf+jbLnZLTr8F|g^uQ`vs9{5S~;kD(v_u4%> zh+bAvQ{~g|TPI*C2fZE)os!ydc>815!2=-D{dcXhmf`bPW?pM48$6tK-9gE4~rdc~`kBWTJ z{Q0@l+=+af zbniGo`m6Rxc3ba}H%JT$mqu(+#q9taVxQkeC3rM-zb|}l3@{|(wH0QD_N_+)IIz2N z47wO`ZZwb3059r(0uIOl3RU>Ygd`h|Yv1Gtxbfs}>QC1zI0-TpoYEvmWbE}vTpdL8 zL2QV=-yCJcOI=J>qaQ~#+3)jHOx)G3Se%4shGC=A#6feC`wjV28E>v9%Z-@YS%whv zFQkF(h}AE+P8>ELUN!`=_3e!;%qZ{PE8KJHA+2V9~vRkQO0ECo%a8|f(Aa-0Q zH_iw}y_G%O=pZqim&0HYvxij!)Q||fOMX$@9@+2VYYhk*tD(52xY;S&kg~>s`@xmT zU`7i^;L}*;WS4G{3rW|&Xuw)t^lh55jddieg!cr_xDuQ;LvtSGjAJuJ-gN5-@7;Dy zd#o7x(=fp}=|RPai?GcZv%^x0?u#^6QJRfKW=%`PIU<2(g{#NiB9{9+8rm7uyTtFMrL^mwsUM-=4)460T|5((b2;ULYN)}n zpo7=VWuIk)wBvD(?ArMANyRpoW5R51XA9L7YrGOoI3HDi?|E8jMdA8h^vp3!SEA-$ zFD!Wfw5mJaqUQOTe=LMX4cgS}S=_n-E-Vu%xo`Km*9e{3g0NRX$@_^!=j_PHO;0Tp z+8cA|sS|pL?s7J4dMUJVC=wPK`|{~<`ew)_^#S`<`Tc5-DRCb+s)`%mJkWUi>K&&u zIxc&4S8n;XDpt`>t}Z3-hlOuVuTlKLJ>pHnB84YdJxy~LRP#a)z)fA9_FNe|;cu8; zzC%Gxf+$B6Q`11`HRks8R83&q1XE>a&!`8eUiRF3-loAO#+u;m>v||eUM(3l~t%#2-p8f%U|M;!v9=_do^;4n=ZpvD+_9B8#arIifeChuCOWh@n zL!5}`HMAYY>J4@E169!pmu{rTY+u>+wCSHkU;6dcNFFaTo8a!~7AaX@cvb6i$@RvV zvtL}E?r9D)@btUazndyGMH0lh^co+RdzJ90Zd#xhjXT!#EXG#tUCbV>h+U+DM^^Ty zcCU$SFI5ox(G1S?nQ*31$8(c<(#Bn14i5LmyIDZ?tk3RLdr*$j^n+>2+sRl_jkL<2 zA-;BwH4UADzCYv@DWpyuYF4yDh_tkHb|(uH_C0P4iM0Cm@yX~pzk3mzil8a#bM;ec z7gYve5=|+1@fUd&wa4P5E^hc6RA(WyYX>4)7TjtsP6pNvuV~6siX|VV^t2JfeRtgQ zB`%&`?T4LoO*qHZq`#p1J#D%3L-DrQh~uT1$&hyN>or$nr&Ig%W5QgtV*H%R4;G^y zj()rI=Z3QCA4)^5%`Q_%_ru!<0!rj9Jes2Q=Th85;kw_6#vwkVZqnS^=lF=#ONQlI zI|!PNeioV{w;mo-o~B?|R&(0gVlkG%)&zNSN9^}sKZLo>dX3y7@VSCsMO}6M8%G;T zqI~?LQ*$NOxO!RSS@qR+qO4QGOO;;H;-4*fn?r8U?)($WAm35cd?n{H&@h)Au&yk~lK)&)JMM}{L z4-<{#bkZ7i_n1@RB9#5FmdLan93Y&X*_eIb^>D2TJtko8RR`_VROEZgwUbYOHS5fp zmb6$Hv)Iq2musrmrXKBbIw)04C$(n_x7kmeg1(y#C0bq7I1oxEfdhehUcGWC{r`cC)A68woL52@S>(9C~he*2ScRDFM9Q(x?;vl8Wefbn`ZABOrlGOGBQ z=s&LDW8jQ&+#xu8cJTT|j9)$iV zX&k;)uX647;;DfyS{wD0zC^|+#LU%?Kh;_Toh1pf1sbi=jrih!AbJw5{&vubsD^c`! z6;Tt7TFjyeGp%r+(ZP$yC6s#XofVaLS64RcWVA0tv~L+FZWsy=P;biA4~1u0Aq;d> z&5vh$cXxiU9Qv@!nUR`SLrjW<$CZAo{eGxqN#%7F8H3uWhkF-51f6 z-Sq_9b{Y(Z9QLR6lRxn~vToPrtxnc#d ztwJ`6U)ah-PtQ8deQ59e>>qM6@#TSwa_Kw!!v=&)MmmhP?g=F=v#tYv%lY@o<2Q1R zdWY}==TjAzniEA6qtxf;|1n)IP7CYgTAvffy8Yl{nV&cKnV zZ-HezzcW>hgN8hv49rJvn0)-4rDB)%&%&V!9dir3g7xy??m>;k(G9`q<=s0gtn*7^ zX7RB^MESOXdB90ddcmD`b!#jor#t>K+HHvp(y`axosfOqNObL6J$AOd!$bdaa)HX+ z1-5YUon;`!=;E$ZyY{cbUF+W27gEg*7Srx7QX)Th=ws8ZUerzlH1q5k-3ECN^=9R| zasAvU8Yv=F*LfH6R}^w&9*7)nR1lS5X9I^XXpN0%@Mwktk#kg(53gILBmJEfvl&=26i~c99BHDjI}Q zp);Tg`eH0|W_Z4dh;~!!S1%2*D5%1lwCGw3%QQ86h^QJSW^-KIUxlXKjbKX@kvf4Q zX`qfCIB1Tkb9-F3T&3KO#ZYEyNJ=m@ScNax!~Ak>ECKNM#daWz01I7=;8`?JfnfLG ztS|(K9dMB#4H<6rH8Xq8pV_&Ovcuij{;b0q1X+A_cO-2O@U%OWA3LMNQ5hCADWEm7 zITj`%DNwsKUi1|QX+CHkVlRy$5r6~P5($Hs4gc*@N9_OniZhf+1UDsQ0of1<9AGG2 z)#_oe8U=VlBESt!Gn6wFfaax@TJ%kg7}fk@rQ$(jlB8rRYZS2DZ(HT)yq$#*CDujo z$o{nu2&;H z@^K0f?>K9#c)v1d>JClmq~4C|wnWs;xC;l~Ox=C7bvMN{Fgd5|R99oGFKSc>52?5y z#l69qE_J7o7gAIy?x}v9>W3FEDn1XNrIOX%xBA_R5Pp`0yB7a~= zw5v<8vdMNehV@2`vzIuL7ks!f{BZ5Q*B+*MdLNs%eabq|X&PEXju52wrTc< zH@Vkx>QCFhr&9EOOm^|nyQR(>e%oKl|HS_O-GBJtIK}1oLV9?f#7Yf+JPw+qgeHrT1mKLSS@b7!=C!O2l#tvuv?_E0gTZ;a)RsDUf zVWNAl%S*MrZvoHQS;pbX9bb5`)7Ql6A`<3?L^^6Mle&JU>4P8dW^SAw&`Q$u62NWh z&V_ZnpX^`i`?hfdh_Kz?F}Hhl;TG}3X=nK|&P~cu4{mU-)R|Wex697GYU=-mScJJo zHPj`>n4%6V037d9_~x_UU&N~aK>7%2%ZyJRRxiRI!msUeY^Z$u+b5v7)lXf_To&r6 z8m`Rs*s){>?9i4h5rROf^CG|&Eqc~UFx#)$z-V=esz{JscaUm!T#J&T9V)UKHn;U@ z38&m}-B-zXSMA9cYn7$_l}l9g9P>zt;WSslUR#?6q)<>{u;dC0*`g(OxsI+rSt4b# z^Pv3W3B98HAW+u47$9x94DEcej9E7~v89O=!~HOLsy;H8foCX__6YLDs-o-qBu6|2 zGP@;efoxnbWzwt@R*pol#aY@1QUKvI53wu8kY>I407F3I=u6CN02P{eG6-2Yx`x{w zSjg*sJiBUa&R7{!#PzGmY|=C`o_BZGQ&(3F5HW}*ZL!t~E|F~(o+Zu&_(=Nnrai=g zp$nF2r2Q3ljOyZHK0}+Pb9Agqq)N^EioKyb5DVhCgq&RD%s?oY6T)0WXkhU$C-M$} zhO8JKt$~@bfL&=bJs2!r&n%B;#*o*lH}haa40j1*8fG+D9h*J8H7^o0gc(TI8TKA$ zS$U2Ft9QwB9EP|82*DOWrinqs==Yi(a!2tF2!}~Kn4G9RCa{TAj4Pd-%g_w1$Yd8@ zjOq3~MUkC#U9au$K~@bQ-Jk2=v<4IXG!2tp*)R*X?yQgtMSO9iQOv!WiT4j`?Rb~# zn!m=*+_+gPTmM!{i!#pr)410z)cZlebMDxI9M9I3jYr#qH-5`r6ZSVP+SnZ)XZ>io zZ4z=71^c}h^V+rJ(4m&z@NGXp|M;kOiVggj!2G7*0}G~?c}qvh7fP-zFgdaJL@)mH zNrTcL{bzgd{ohhRPp`9-n!+(J{jNp2T`Z?4tZYOY+BU);tq7F=WNw?u+&U7(F%j?b zeR=j;q|a6OGD!Tl?Dhs(+jrv^oPpb~YHPNUuY6+PhTH*OP_X{zzt=O)udsey0`z~m z@wjZv1K+>hyPtV>%lw~$zE5KReRy1MBCg*m*p>+lto#3S4+V7m_a4>C{_nk_gzsk_ z-2xr{?}Mm6u77WSpjx?|H^RJjd-LGInBqTGzY4drAU)?0>XhLDEy}}iIliukuAEgO z#cB;~=7q6Y%Q}dHWZ9G1jXoAtu@9_~#u)}{k|(H@YS!SmetK`?gc?dG)TLGAvW0-N zQlZEyvQ)PFy3;-18gU^7(XSMHIBn7Td)Y-H^>Es+|DL=hc+!E(|NC@#nWFe7tm+5r z=2uy{e#PzYtS{c(hx$!%aefEXa|6y$0sK$w!RoI1jMKob9OnW@|B(K`-7B06wTP!e zIA>*-%F6RUbyYv;CExUb7?>-Y7dU(EG)gVtXWlMTw*NU^{ex8-`@fUhN+Gem#fO%c z-|YJJ(DAcJ>rD6O@qkf>zT_p*sF-akf_GgbvD>?m_N>$Ug}_oz4C zEH~wlWT!NsSgRWg;T~1bmyu>Gpj@Q&VItj7SahkGFn2nuuvuQzlkTG~b}}UBNnMMy zlBA_5#f)aC<8VR@?F~F_*gip$>j5+e0S8O4O@kWh4)50H@TGe|^PY6$0@6G-H4R=j zvPIK&*B#knF|Y(#Ife=~2Bc;Pa9%J~f=Q(87R@LfoR_t^Pio0uOL7Tv&rV7>E&|94 zZ!Luw;Yx4|Iu&#zrq)t;kN>morXLXh79}#xO-Q>bap?@y@nnyDxF?B_aK@cPu%J`n zG$<<7fyO~N6tb8SoFzz6qU5lk)ehb^6!ZMcXWV8SN}U~Jy?qFuqrH%_dr)5O9PR7DFg`8o9TqU&NpLK52@({FzrKR z2a2{q;qDAp?2BGrqjy{;q6Zv2l1{fMAc@s&>Ud6959`>6LmM-|2hB5UjbYM~V4yne z!l$9sTDXpVRbjzQ;E3o_e4mbWAls;hVFkVP;7}aB%?y={DU~bm!o_6TN8;^3YmyK& zh|;cCC0nyY&IPDy*I`D>j5?Yy7Sh<3(Hb6ZXqrCZ^H`}V>J2pqnl=Z2o4yx0DXZ1% z;N-}_gGh4GZC~ffDOxj}Vc!C+He#j~vn6igfm5Q@fzl+vb1DmFUoU*d_;v7VA058NH+fcE$vhoT)>foqU1~JEAf$X#HikYd zx(*1S0}xGu(`^^dV(1Qo9b#3bfYgg|4UVcJ%Gj(u@;(HY2ty+UuUVC5Qozi^a9KaU zV#g(-2qlt1IN~7UH46l4ND1+cCXAJ;o1FO9e8)H{@y|%K*UNM)3kBlDrvgbU1-VKz z4p52-g`5t6z(6#P2eAIZ0d$QfzOuA>J&dI759OEZ0=tF$s55{q@L%;C{Xfl{&X(4Z zjiv$qM|?Oivw{C8m!?DUEFdY-{$2sX0PF!2tCAoOz(ghVm$tUL+} zI^l(`*M%yF;EMTx17!|BbHAMgizZSn>;pEJC4yqud0&87o17)96d+UQ)UIr}JRk^x z$Q-8R7|eLdaNimNS6(@#uaCkT>T3X-w)I%DC!dOfhyvv?QK|Y4L6aD%Wcz^TQd7KG zxi)HCnY64&l4E+Md9fjO6b`=-y~q%?M0rlnOSAc^1g~KgL9|#QT8NThFa3?qoQE6* z<{KFen1B4VXxbi>8;hS2;2^DU?@89-@V4q^=BmlEcN_9ev;BsQ7 zDIY(ZS_~ukE)mtmNQT+SBB{a(vnSkO@t6t|h3OJeKE+`bwXZ@-z;|b4)%|toYe9Q5 zW6nzLmh`_i4-^FFw{Z?u_wG^9KX5$J$sMWy3?*XSE)tN@d@3A>8>PX3$yTldOd52i z1VI)>Rbop6SD4a(rl*w3hi3peSP2q3e`i^yl{ZsD#|zlwbzlIZQcRf%vD2YIkaTH& zrlFkfaE}r&{c4VgfvSgf1<@HgE_^u9mjHeRf`Ue(XUKF8ryZHwBQUGx&6vR4u@H_r zs1L`dqwq9CNf$#2sBCnadkmu$@M^I6$wocouN89mm-Z8YrS1tGAII zYjmO{CB%wNB9#+cC&VXwHXGYRZ82ibv`Qd1j77Rw)i5(!{7u^~Gp{rDi)^A z)a3qM+Eo?>)zW-(X?+I~2Dh~uFt;7f%XN=j4#dMY2_6DW4YXpKe% zS(J82`5rqpds%psa$$uNAc|PPfDyt6X)Si$_M)kKL`Au&D7(mV1BITTr!T|pp47>| zDWzMw5Z%&pM0Iv^`E(`ilL@nEw3U#XBdT|mUWg_5i2@TS2#|z!susDuPoU`jEbfGT zT!0%OhW0o-8S~e1qrj<3b;C#p8q`5dphN@evGVED()qZwoODpDXKn?Xr~#VO&vlfQ zARnuyv2(vi9*LOXNvv^)%drHp7qW4gmPiJc{8#73!*u%~vI$PP(k)18rE;~jK$!uZ z(9kAwhRczLM#D9_?b6WU8Xce}JNCH1JEV;)YbHsN)TkojK@b>^Q3nU+=iiwJNJ2Cq z4lR-Ne~AiX2EnF)1YSe=HSuZMbwe(&QJx&i4w~l9bdXafvFap6Nl*+~Y~DUHN(WS| z<8sQgI*+rn5FCH({H#C0#1fr#Q;gNd^ZRM!uWii*gdQOCSO``d7=l)!Kts^7Z6G|T z6}8)7yL||;!#)Ux^Q%*|*JtsT)X3pFZt|-t^$e+3c5Yvm;5cTLQ&{HqY~BNDtQ8}{ zg{+Uj;qIkDBV5)7VJ^E zh$>II7|^m2Ac3eY(|z2nzu;$4B&9;V36NGqbtz$tlt3c-{1l!nfF3k?CD>{z0>CX+G>({jW~wS~13+Nm>^$jK6I(xt@0LN^+WvzrO= z+D6vNR+9J&(y45?;fW$ceLybd>=|*@H<2EPu@x|}Al35>;N=av0#w`bUwBLNCI>|Z z4FVG=XeK<|q1XuE@2)@$^$eYIqcfE9u}e-Q>^zbYfD}-qCe&mSk#vjxJOR8OCOw)b zh^v7~0{QRCVHF%Bzz%&Nf!Dr{jcf!a75@MC*9lc@)QuF}0L(>?A<>Z!907G7bTp3# z&jt25-F3v5+?qEfC5xS~RRTwb5}wiOr&YHi6*ou-Z-L1<;K$g0ct#5)(*YPSDwVIq z{wqWOg=&TjS&}ydL1O*#nH?yk}akQ~<3TL@`xZ3|b>~~l1CK1qTG~8N&rUG2{M7bYC-g0 z@Zy8yNKhCUaD|#hi%Ib56xA#)UqS&x5=67G1^~>EJKe!jg{96*1lBwd^?*#Zw*fL) zE1+g4 zWM~%|1mI2E3%kKtQ8zd%LwB=BYdPC1lQh+58N-4T4 zl1WayhsxEmpOFH7-wu>-;(kx&4wUiqq8==dV{im-*ow@B#bxeL=7}20=bF{^l(XD* z2-P$RSsAoeJlgJUix3+GDI zM~z$1YY%`eQ81<@Dzydbj?vvzYDYFUd6TiJ^Dc4a`uwy$bi<6AA$$TF4g=J~G1y-hp_C0pB`VhYJ{gL|!x?g(K`bFyv5tg_!`)0kq~+BX}NL^1>jV86F7- zA%nT;nDFXNk(q;rGr;PeEOaZ^0Vvi2z<%2S)d2*^3~FfPWCDQ#7?zBAlgJ$vSt*h4`OD3#;E z<#SPP&`;ipmWF&Q9c1%0q?)}b&rxh2Sj|wQSMNw!4OStx#>`)L*uabi=tVFD09teh zfG|JeK>16XL%jdbP(&8|H9QMQ%47&&hKkL*0opvEwAT&)OJ~ulh0)bOC*^E@x#6A_ z&whU$@o?H-t79Gu;R5O7#mL@da(}r5m>@gK5u}M?60NWViA|a$!~tN}$(Y3b0Nkrq z_W_at2?W*|ij7kk?UuY4>P;R0AOMt(K((s{)k#hpVUb^6*x6>!<%ltlgVbGV%lK=i#5C@H%&>6+SHQDnQV|W z;VAHYF%xeQHq8_3oFZ1ZEpc13OK+O+G?6xjnNkaM1Q&@!vfRdzP8$-YXZ4R(5+psgFVX5l{DWw;nP9Tsa#$^(m6wJ0@-E|+S z`3_TdvNSL?0aq{yO%LITE$IX{fyGYc2x~ZGOqmKS*t#`0O=XS+-YOI+0qjAZ0F7zl zBkNJ6fz4`Q#fq$9)+tbD4OmBX0dFe;_TIXcfQ@d2XuM>o7EmFhmLssA${eF~&~?Is zIjgusfa8;@QzD}m8LiUVH09~aoQ7Q!fc_VAv=T`TSn4PlFzZ!`!-@^Tz*c$dicKYv z0Uf?T<~FA(k)TEq%wlg1P}@Q1R4}mIa0u#FWC2#A;PyJ$%|Lg~R+@H#71(WI;3{|; zJE7?=m(FU=Mn_;H4VdJZ7McQ0)4b>;;M>%*Vv~Sds93#Ut5YPfgOln2wr+cH32-V3 zxJxAx=q^Pk0kbXk-Hiw2(1H5j2Ki?kCmD#CmFp35(E_DZB+j(^Z30LX?F|#e9MB e-vBIXL - {/* Placeholder for dashboard - redirecting to auth for now if accessed directly */} - ( -
-

Dashboard

-

This is where the user dashboard would be.

-
- )} /> + + @@ -39,10 +37,12 @@ function App() { return ( - - - - + + + + + + ); diff --git a/client/src/components/layout.tsx b/client/src/components/layout.tsx index 0058704..6754d17 100644 --- a/client/src/components/layout.tsx +++ b/client/src/components/layout.tsx @@ -6,12 +6,14 @@ import { SheetContent, SheetTrigger } from "@/components/ui/sheet"; -import { Menu, Zap, User, Moon, Sun } from "lucide-react"; +import { Menu, Zap, User, Moon, Sun, LayoutDashboard, LogOut } from "lucide-react"; import { useTheme } from "next-themes"; +import { useUser } from "@/hooks/use-user"; export function Layout({ children }: { children: React.ReactNode }) { const [location] = useLocation(); const { theme, setTheme } = useTheme(); + const { user, logout } = useUser(); const isPortal = location.startsWith("/dashboard"); @@ -41,14 +43,13 @@ export function Layout({ children }: { children: React.ReactNode }) { {/* Desktop Nav */} - {!isPortal && ( - - )} +
- {isPortal ? ( - + {user ? ( +
+ +
) : (
+ + ) : ( + Customer Portal + )}
diff --git a/client/src/hooks/use-user.tsx b/client/src/hooks/use-user.tsx new file mode 100644 index 0000000..2d9741f --- /dev/null +++ b/client/src/hooks/use-user.tsx @@ -0,0 +1,108 @@ +import { createContext, useContext, useEffect, useState, ReactNode } from 'react'; +import { User, db } from '@/lib/mock-db'; +import { useToast } from '@/hooks/use-toast'; +import { useLocation } from 'wouter'; + +type AuthContextType = { + user: User | null; + isLoading: boolean; + login: (email: string, pass: string) => Promise; + signup: (data: any) => Promise; + logout: () => void; + updateProfile: (data: Partial) => Promise; +}; + +const AuthContext = createContext(null); + +export function AuthProvider({ children }: { children: ReactNode }) { + const [user, setUser] = useState(null); + const [isLoading, setIsLoading] = useState(true); + const { toast } = useToast(); + const [, setLocation] = useLocation(); + + useEffect(() => { + // Check for session + const session = localStorage.getItem('bronet_session'); + if (session) { + try { + const userData = JSON.parse(session); + setUser(userData); + } catch (e) { + localStorage.removeItem('bronet_session'); + } + } + setIsLoading(false); + }, []); + + const login = async (email: string, pass: string) => { + return new Promise((resolve, reject) => { + setTimeout(() => { + try { + const user = db.authenticate(email, pass); + setUser(user); + localStorage.setItem('bronet_session', JSON.stringify(user)); + toast({ title: "Welcome back!", description: "You have successfully logged in." }); + resolve(); + } catch (e: any) { + toast({ title: "Login failed", description: e.message, variant: "destructive" }); + reject(e); + } + }, 800); // Fake delay + }); + }; + + const signup = async (data: any) => { + return new Promise((resolve, reject) => { + setTimeout(() => { + try { + const newUser = db.createUser({ + email: data.email, + passwordHash: btoa(data.password), // Simple encoding for mock + firstName: data.firstName, + lastName: data.lastName, + planId: data.planId, + }); + setUser(newUser); + localStorage.setItem('bronet_session', JSON.stringify(newUser)); + toast({ title: "Account created!", description: "Welcome to BroNET." }); + resolve(); + } catch (e: any) { + toast({ title: "Signup failed", description: e.message, variant: "destructive" }); + reject(e); + } + }, 800); + }); + }; + + const logout = () => { + setUser(null); + localStorage.removeItem('bronet_session'); + setLocation('/auth'); + toast({ title: "Logged out", description: "See you next time." }); + }; + + const updateProfile = async (data: Partial) => { + if (!user) return; + return new Promise((resolve) => { + setTimeout(() => { + const updated = db.updateUser(user.id, data); + setUser(updated); + localStorage.setItem('bronet_session', JSON.stringify(updated)); + toast({ title: "Profile updated" }); + resolve(); + }, 500); + }); + }; + + return ( + + {children} + + ); +} + +export function useUser() { + const context = useContext(AuthContext); + if (!context) throw new Error('useUser must be used within AuthProvider'); + return context; +} diff --git a/client/src/lib/mock-db.ts b/client/src/lib/mock-db.ts new file mode 100644 index 0000000..45fe6c0 --- /dev/null +++ b/client/src/lib/mock-db.ts @@ -0,0 +1,198 @@ +import { nanoid } from 'nanoid'; +// ... rest of the file content ... +// NOTE: I cannot use the `nanoid` import unless I install it. +// I will rewrite `client/src/lib/mock-db.ts` to use a simple random ID generator instead of importing `nanoid` to avoid installation step if it's not already there. +// Checking package.json... nanoid is NOT in package.json. +// I will implement a helper. + +// Types +export type User = { + id: string; + email: string; + firstName: string; + lastName: string; + passwordHash: string; // "Hashed" (simulated) + planId?: string; + joinedAt: string; + isAdmin?: boolean; +}; + +export type Ticket = { + id: string; + userId: string; + subject: string; + message: string; + status: 'open' | 'closed' | 'in-progress'; + createdAt: string; + replies: { id: string; sender: 'user' | 'support'; message: string; createdAt: string }[]; +}; + +export type Incident = { + id: string; + title: string; + status: 'investigating' | 'identified' | 'monitoring' | 'resolved'; + severity: 'minor' | 'major' | 'critical'; + createdAt: string; + updatedAt: string; +}; + +export type UsageData = { + month: string; + download: number; // GB + upload: number; // GB +}; + +// Mock DB Implementation +const DB_KEYS = { + USERS: 'bronet_users', + TICKETS: 'bronet_tickets', + INCIDENTS: 'bronet_incidents', + SESSION: 'bronet_session', +}; + +// Simple ID generator +const genId = () => Math.random().toString(36).substr(2, 9); + +// Initial Data +const SEED_INCIDENTS: Incident[] = [ + { + id: 'inc_1', + title: 'NBN Maintenance - Western Sydney', + status: 'resolved', + severity: 'minor', + createdAt: new Date(Date.now() - 86400000 * 2).toISOString(), + updatedAt: new Date(Date.now() - 86400000 * 1).toISOString(), + } +]; + +class MockDB { + private getUsers(): User[] { + const data = localStorage.getItem(DB_KEYS.USERS); + return data ? JSON.parse(data) : []; + } + + private saveUsers(users: User[]) { + localStorage.setItem(DB_KEYS.USERS, JSON.stringify(users)); + } + + // --- Auth --- + createUser(data: Omit): User { + const users = this.getUsers(); + if (users.find(u => u.email === data.email)) { + throw new Error('Email already exists'); + } + const newUser: User = { + ...data, + id: genId(), + joinedAt: new Date().toISOString(), + }; + users.push(newUser); + this.saveUsers(users); + return newUser; + } + + authenticate(email: string, password: string): User { + const users = this.getUsers(); + const user = users.find(u => u.email === email && u.passwordHash === btoa(password)); + + if (!user) { + throw new Error('Invalid credentials'); + } + return user; + } + + updateUser(id: string, data: Partial): User { + const users = this.getUsers(); + const idx = users.findIndex(u => u.id === id); + if (idx === -1) throw new Error('User not found'); + + users[idx] = { ...users[idx], ...data }; + this.saveUsers(users); + return users[idx]; + } + + // --- Tickets --- + getTickets(userId: string): Ticket[] { + const data = localStorage.getItem(DB_KEYS.TICKETS); + const tickets: Ticket[] = data ? JSON.parse(data) : []; + return tickets.filter(t => t.userId === userId); + } + + createTicket(userId: string, subject: string, message: string): Ticket { + const data = localStorage.getItem(DB_KEYS.TICKETS); + const tickets: Ticket[] = data ? JSON.parse(data) : []; + + const newTicket: Ticket = { + id: genId(), + userId, + subject, + message, + status: 'open', + createdAt: new Date().toISOString(), + replies: [] + }; + + tickets.push(newTicket); + localStorage.setItem(DB_KEYS.TICKETS, JSON.stringify(tickets)); + return newTicket; + } + + replyToTicket(ticketId: string, message: string, sender: 'user' | 'support'): Ticket { + const data = localStorage.getItem(DB_KEYS.TICKETS); + const tickets: Ticket[] = data ? JSON.parse(data) : []; + const idx = tickets.findIndex(t => t.id === ticketId); + if (idx === -1) throw new Error('Ticket not found'); + + tickets[idx].replies.push({ + id: genId(), + sender, + message, + createdAt: new Date().toISOString() + }); + + localStorage.setItem(DB_KEYS.TICKETS, JSON.stringify(tickets)); + return tickets[idx]; + } + + // --- Incidents --- + getIncidents(): Incident[] { + const data = localStorage.getItem(DB_KEYS.INCIDENTS); + return data ? JSON.parse(data) : SEED_INCIDENTS; + } + + createIncident(incident: Omit): Incident { + const incidents = this.getIncidents(); + const newIncident: Incident = { + ...incident, + id: genId(), + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + }; + incidents.unshift(newIncident); // Newest first + localStorage.setItem(DB_KEYS.INCIDENTS, JSON.stringify(incidents)); + return newIncident; + } + + resolveIncident(id: string) { + const incidents = this.getIncidents(); + const idx = incidents.findIndex(i => i.id === id); + if (idx !== -1) { + incidents[idx].status = 'resolved'; + incidents[idx].updatedAt = new Date().toISOString(); + localStorage.setItem(DB_KEYS.INCIDENTS, JSON.stringify(incidents)); + } + } + + // --- Usage (Generated Mock) --- + getUsage(userId: string): UsageData[] { + // Deterministic mock based on User ID + const seed = userId.charCodeAt(0); + return [ + { month: 'Current', download: 450 + (seed % 100), upload: 45 + (seed % 10) }, + { month: 'Last Month', download: 420 + (seed % 100), upload: 40 + (seed % 10) }, + { month: '2 Months Ago', download: 380 + (seed % 100), upload: 35 + (seed % 10) }, + ]; + } +} + +export const db = new MockDB(); diff --git a/client/src/pages/admin.tsx b/client/src/pages/admin.tsx new file mode 100644 index 0000000..8ad4194 --- /dev/null +++ b/client/src/pages/admin.tsx @@ -0,0 +1,114 @@ +import { useEffect, useState } from "react"; +import { useUser } from "@/hooks/use-user"; +import { Link, useLocation } from "wouter"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; +import { Badge } from "@/components/ui/badge"; +import { db, Incident } from "@/lib/mock-db"; +import { format } from "date-fns"; +import { Trash2, CheckCircle, AlertTriangle } from "lucide-react"; +import { useToast } from "@/hooks/use-toast"; + +export default function Admin() { + const { user } = useUser(); + const [, setLocation] = useLocation(); + const [incidents, setIncidents] = useState([]); + const { toast } = useToast(); + + // New Incident State + const [title, setTitle] = useState(""); + const [severity, setSeverity] = useState<"minor" | "major" | "critical">("minor"); + + useEffect(() => { + // Simple admin check (in mock, anyone can access /admin if they know the URL, but let's redirect if not logged in) + if (!user) { + setLocation("/auth"); + return; + } + setIncidents(db.getIncidents()); + }, [user, setLocation]); + + const handleCreate = () => { + db.createIncident({ + title, + severity, + status: "investigating" + }); + setIncidents(db.getIncidents()); + setTitle(""); + toast({ title: "Incident created" }); + }; + + const handleResolve = (id: string) => { + db.resolveIncident(id); + setIncidents(db.getIncidents()); + toast({ title: "Incident resolved" }); + }; + + return ( +
+

Admin Console

+ +
+ + + Create New Incident + Post a new network status update. + + +
+ + setTitle(e.target.value)} placeholder="e.g. Unplanned Outage in Melbourne" /> +
+
+ + +
+ +
+
+ + + + Active Incidents + + + {incidents.map((incident) => ( +
+
+
+ {incident.title} + + {incident.status} + +
+
+ {format(new Date(incident.createdAt), 'PP p')} +
+
+ {incident.status !== 'resolved' && ( + + )} +
+ ))} + {incidents.length === 0 &&

No incidents found.

} +
+
+
+
+ ); +} \ No newline at end of file diff --git a/client/src/pages/auth.tsx b/client/src/pages/auth.tsx index e8c9da6..2d54f01 100644 --- a/client/src/pages/auth.tsx +++ b/client/src/pages/auth.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useState, useEffect } from "react"; import { useLocation } from "wouter"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -6,41 +6,57 @@ import { Label } from "@/components/ui/label"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"; import { Zap, Loader2, AlertCircle } from "lucide-react"; -import { useToast } from "@/hooks/use-toast"; +import { useUser } from "@/hooks/use-user"; export default function Auth() { - const [isLoading, setIsLoading] = useState(false); - const [, setLocation] = useLocation(); - const { toast } = useToast(); + const { login, signup, user, isLoading } = useUser(); + const [location, setLocation] = useLocation(); + const [isSubmitting, setIsSubmitting] = useState(false); - const handleLogin = (e: React.FormEvent) => { - e.preventDefault(); - setIsLoading(true); - - // Simulating API call - setTimeout(() => { - setIsLoading(false); - toast({ - title: "Welcome back!", - description: "Redirecting to your dashboard...", - }); + // Parse query params for plan selection + const searchParams = new URLSearchParams(window.location.search); + const planId = searchParams.get('plan'); + + useEffect(() => { + if (user && !isLoading) { setLocation("/dashboard"); - }, 1500); + } + }, [user, isLoading, setLocation]); + + const handleLogin = async (e: React.FormEvent) => { + e.preventDefault(); + setIsSubmitting(true); + const form = e.target as HTMLFormElement; + const email = (form.elements.namedItem('email') as HTMLInputElement).value; + const password = (form.elements.namedItem('password') as HTMLInputElement).value; + + try { + await login(email, password); + } catch (error) { + // Toast handled in hook + } finally { + setIsSubmitting(false); + } }; - const handleSignup = (e: React.FormEvent) => { + const handleSignup = async (e: React.FormEvent) => { e.preventDefault(); - setIsLoading(true); + setIsSubmitting(true); + const form = e.target as HTMLFormElement; - // Simulating API call - setTimeout(() => { - setIsLoading(false); - toast({ - title: "Account created!", - description: "Welcome to the family. Let's get you connected.", + try { + await signup({ + firstName: (form.elements.namedItem('first-name') as HTMLInputElement).value, + lastName: (form.elements.namedItem('last-name') as HTMLInputElement).value, + email: (form.elements.namedItem('signup-email') as HTMLInputElement).value, + password: (form.elements.namedItem('signup-password') as HTMLInputElement).value, + planId: planId || 'nbn100' // Default to NBN100 if none selected }); - setLocation("/dashboard"); - }, 1500); + } catch (error) { + // Toast handled in hook + } finally { + setIsSubmitting(false); + } }; return ( @@ -54,7 +70,7 @@ export default function Auth() {

Manage your plan, check usage, and get support.

- + Sign In Sign Up @@ -70,19 +86,19 @@ export default function Auth() {
- +
- +
- - + @@ -96,34 +112,39 @@ export default function Auth() {
+ {planId && ( +
+ Selected Plan: {planId.toUpperCase()} +
+ )}
- +
- +
- +
- +

Must be at least 8 characters

- Demo mode: This form is for display purposes only. Real billing integration coming soon. + Demo mode: This form creates a persistent local session.
- diff --git a/client/src/pages/dashboard.tsx b/client/src/pages/dashboard.tsx new file mode 100644 index 0000000..a7ad471 --- /dev/null +++ b/client/src/pages/dashboard.tsx @@ -0,0 +1,333 @@ +import { useEffect, useState } from "react"; +import { useUser } from "@/hooks/use-user"; +import { Link, useLocation } from "wouter"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle, CardFooter } from "@/components/ui/card"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { Badge } from "@/components/ui/badge"; +import { Progress } from "@/components/ui/progress"; +import { Separator } from "@/components/ui/separator"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { + Activity, + CreditCard, + Download, + Upload, + Wifi, + MessageSquare, + Settings, + LogOut, + User as UserIcon, + ChevronRight, + PlusCircle +} from "lucide-react"; +import { db, Ticket, UsageData } from "@/lib/mock-db"; +import { format } from "date-fns"; +import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; +import { Textarea } from "@/components/ui/textarea"; +import { useToast } from "@/hooks/use-toast"; + +export default function Dashboard() { + const { user, logout, updateProfile } = useUser(); + const [, setLocation] = useLocation(); + const [activeTab, setActiveTab] = useState("overview"); + const [tickets, setTickets] = useState([]); + const [usage, setUsage] = useState([]); + const { toast } = useToast(); + + // New Ticket State + const [newTicketSubject, setNewTicketSubject] = useState(""); + const [newTicketMessage, setNewTicketMessage] = useState(""); + const [isTicketDialogOpen, setIsTicketDialogOpen] = useState(false); + + // Profile Edit State + const [firstName, setFirstName] = useState(user?.firstName || ""); + const [lastName, setLastName] = useState(user?.lastName || ""); + + useEffect(() => { + if (!user) { + setLocation("/auth"); + return; + } + // Load Data + setTickets(db.getTickets(user.id)); + setUsage(db.getUsage(user.id)); + setFirstName(user.firstName); + setLastName(user.lastName); + }, [user, setLocation]); + + const handleCreateTicket = () => { + if (!user) return; + db.createTicket(user.id, newTicketSubject, newTicketMessage); + setTickets(db.getTickets(user.id)); + setIsTicketDialogOpen(false); + setNewTicketSubject(""); + setNewTicketMessage(""); + toast({ title: "Ticket created", description: "Support will be in touch shortly." }); + }; + + const handleUpdateProfile = () => { + updateProfile({ firstName, lastName }); + }; + + if (!user) return null; + + const nextBillDate = new Date(user.joinedAt); + nextBillDate.setMonth(nextBillDate.getMonth() + 1); + + return ( +
+
+
+
+

Dashboard

+

Welcome back, {user.firstName}.

+
+
+ +
+
+ + + + Overview + Billing & Plan + My Tickets + Settings + + + {/* OVERVIEW TAB */} + +
+ {/* Usage Card */} + + + Data Usage + Your consumption for the current billing cycle. + + +
+ Used: {usage[0]?.download} GB + Unlimited +
+ + +
+
+
+ +
+
+
Download
+
{usage[0]?.download} GB
+
+
+
+
+ +
+
+
Upload
+
{usage[0]?.upload} GB
+
+
+
+
+
+ + {/* Current Plan Card */} + + + Current Plan + + +
+
+ {user.planId ? user.planId.replace('nbn', 'NBN ') : 'NBN 100'} +
+ Active +
+ +
+
+ Price + $89.00/mo +
+
+ Speed + 100/20 Mbps +
+
+ Next Bill + {format(nextBillDate, 'MMM d, yyyy')} +
+
+
+ + + +
+
+ + {/* Network Status Snippet */} + + +
+
+ +
+
+

Network Status: Operational

+

No known incidents in your area.

+
+
+ +
+
+
+ + {/* BILLING TAB */} + + + + Billing & Invoices + Manage your payment methods and view history. + + +
+

+ + Billing system coming soon +

+
+

+ We are currently upgrading our billing infrastructure. You will not be charged during this demo period. +

+
+
+
+ + {/* TICKETS TAB */} + +
+

Support Tickets

+ + + + + + + Create Support Ticket + Describe your issue and we'll help you out. + +
+
+ + setNewTicketSubject(e.target.value)} + /> +
+
+ +