+
+
+
+
+### Features
+
+- ESP32-C3 Super Mini based implementation
+- Modbus RTU communication over RS485
+- Compatible with the Chint DDSU666 and other Modbus RTU power meters
+- Local real-time display on a 128 × 32 OLED
+- Integrated Wi-Fi Access Point
+- Web interface for monitoring live measurements
+- Historical data visualization
+- CSV export functionality
+- Compact DIN rail enclosure (1TE)
+
+
+### Power Meter
+
+Developed and tested with:
+
+- Chint DDSU666 Single-Phase Power Meter
+
+The software should also operate with other Modbus RTU compatible power meters after adjusting the communication parameters and register definitions if necessary.
+
+#### Modbus RTU Configuration
+
+The following communication parameters must be configured on the power meter:
+
+| Parameter | Value |
+| -------------- | -------------------------- |
+| Baud Rate | 9600 (DDSU666: **BAUD-3**) |
+| Data Format | 8N1 |
+| Device Address | 008 |
+
+These settings can also be modified in the source code if different communication parameters are required.
+
+### User Interface
+
+#### OLED Display
+
+The OLED display continuously shows the measured electrical values and is sized to fit within the 1TE enclosure.
+
+
+
+
+#### Web Interface
+
+The ESP32 operates as a Wi-Fi Access Point with the following default configuration:
+
+- **SSID:** `PWR_METER`
+- **Password:** None (open network)
+- **Web Interface:** `http://192.168.4.1`
+
+The web interface provides:
+
+- Real-time measurements
+- Historical graphical visualization
+- CSV export of measurement data
+
+
+
+
+## Hardware
+
+### Schematic
+
+The complete wiring schematic is shown below.
+
+
+
+### Enclosure
+
+The original enclosure design is based on the following Thingiverse project:
+
+**D1 Mini DIN Rail Case 1TE, RS485** by Hoich - https://www.thingiverse.com/thing:3337686
+The original design is licensed under: **Creative Commons Attribution – NonCommercial – ShareAlike**
+
+The enclosure has been modified to accommodate the OLED display. Additionally, a second flat enclosure variant has been created for applications where the OLED display is not required.
+
+The modified enclosure is licensed under **CC BY-NC-SA 4.0**, while the original enclosure design remains subject to its original Creative Commons license.
+
+
+
+
+
+### Assembly
+
+The design does not require a dedicated printed circuit board (PCB).
+
+All components are interconnected using point-to-point wiring inside the 3D-printed enclosure according to the schematic shown above.
+
+
+
+
+
+
+## Software
+
+### Software Architecture
+
+The software consists of two independent parts:
+
+1. **Firmware**
+
+ - Executes on the ESP32
+ - Reads Modbus RTU measurements
+ - Updates the OLED display
+ - Hosts the web server
+
+2. **Web Resources**
+
+ - HTML
+ - CSS
+ - JavaScript
+ - -> These files are stored in the ESP32 LittleFS filesystem and served by the embedded web server.
+
+The external libraries used by the project are referenced directly in the source code.
+
+### Programming the ESP32
+
+Both the firmware and the web resources must be uploaded.
+
+1. **Step 1 – Upload the LittleFS Filesystem**
+
+ Install the LittleFS extension for Arduino IDE.
+
+ - Download the `.vsix` extension from: https://github.com/earlephilhower/arduino-littlefs-upload/releases/
+ - Copy the downloaded file into:
+ ```
+ C:\Users\v_+&p0cj|@$yXwb}2IkqM;o>Q*$lMkl?3CcV5HpIPpUsnCMK{xt z3W-mK*=QQEv!V=H3qyEp5}+^24;zu;A-L-&i#;DpOG!O+0jdKK%O;SViYv7XQiX`i zN?>C`pJ;GYT(ZIa@*QVj&n|eTBX%564ENeQfGhR1^DuvgLsz|N8$2lRc)+O%8S<3u z5K#t&G!}n*p*xSxrqm_`$oB>=8h5O%!0nc2T$ oAXJUlgPn_ zQ(v0!^`Et8N8w73J90mXD7SrQiR7Am0( oXWMtRR=wi=Ydq)_{vGFgiUmGoT5(w zD9II>#EW(ei^v_RIIS9nvT0%Qcx)__;mAM_ICDDr>e6(;+MY`&C&mK5oK!DK^%SC+ zwoZaAEp(JbI@-aX=>>EgVfLmY``FS(G^ b(aqKwY>G9s`CO{F-yOu z9-JhhSWcTC
&iD#u1)K757iB(yQqI>yTMfdQrcC{KrEPs ziU?y}`zoS-_N H+b*lc23O6txI!fxi$(W}HbaNO?F+wp~SEtOo6 z87RJJPamAA#%fTjq4LSVJb}XnY6rdozQHo4ET!_*c*|6fP0%**ic7~N k9N`=fTl~_}m)y{fkKU}Ukh^tYBO!QvDKoy9AiQg-;K}iPS$|gsS;15(e zBymNmZ^0|w&`mE4Di*6ei}F$azW1) (E@-(GM9r0 z+W<_}cJpWYiR1`fhk?N4;n{;qHi1J5=qNTx!i2?6ivVpiCE|4CCljN9_MfV8+VOPI zLTpeda|vyy^slxdgXNpjD)v9sV8_q96)mR#P--@X-mrYxd#amSwDbsd#a@`Kv*n+m z)DO(sQLsfoOiJ29q~FU?C!{|02PC`(6{!LWk
dD z@RKl@EkUpp`%okVVpH1Fiw011S^tz8Wdb$~N;6=JTA-qYU !;%Hc=rNtz%r z0=*6cw*M6eV~~igK+^%MraTm^3KkBunF`W>_YOW87{@Re*$1ZJ3QI*KP?m(gm1Bv~ z@ybD>RdFtu6*vu{Zc3MdK#~wEqEt+udzR{pEGD?CJc=9Ug4#BEGa{mpPe*|WLXr>7 zMRLjkxB{$qMHRRRMhBjglua5D1!8y^oqyOe*Ds4)je_??dm9FLY 3&|UUapMh-dnwB#wp7k~&n^s@M z470h-b#z5~MG-*{!0hM$K>dLOa@~B*9CseF`WgVq3SGZsMHD3TuSVuBLYhzXS2p6o zLl1VW#MJ1uT|dwnT*YxBk?F4|A#Z2Akzlp!-ww9r)+2_KAg`x`KO L1BP$oM7A`j -2mP#U!&rpF-A+@)m<8X+H#pVJ>s+ zFe2QsF8Xf1p)8S01Me&dS1Gdr>_)hghqkh6yR#MAkJ4&E=L#*rjI nf3C*9D^ z*U#j&Zs(xEX8m^ >UqJIdG}t zC<{pohliwm9Z8rVYYPb5${XJUbAJGqkc(IHyijYFh*;kAF#cI(2}23f3#vj7y&-^h z_zdGT70Pz=HP1vu_2SBo+yn{P-%I{Zqs7dA$Y`LlrW(X31685kdafB+WMuK;16o;_ zcC$mZ(ahnBG<{!WP1B#Z3~7tx4>|A?D>44V_LRLmsUa9{DVtm?f>)y++h}$wq=`f$ z{rKOvd0@(xY$~(SMe8zTd-=01Ly33!=(bXuQgW0(h>H%Z8!#Kd6-YWZ^j 40#6Sfb<_Vnr(e z=Tq!Yy#->NpN`y=hA6T9&v^o63B7=iNO*DJKmBY%`d3l8BK=B2t&vX<8YPnhj-y%JJj|b}*An#Zs`GrWH<~G#vfyj7KlH1ge3!^sxt+U*&l!Caq;tIB=pTi{KfOk9 zsR&O@OsE~u0d#q$ M#!3SK%j7KA(jcq)i&XQ}B~ z5$X8ucoDVr9AIPsh$({UU=Y?uuW)!u!5R?6)QS-AA+7|ONE(lDvLVw*R~;r4tItkC zJ_H@09>L4qS_Y5PT*_A;?*5Z+$9P{|bnDN@Da)AmYH4%Men<{3D_(mrVfC?iGac-f z+n$Y{gA?;wf4Op`Y-`@0thevEtv>hvK76(4wRY)?o9|1zXl3&YggJ+bQ}#tbJOQ?j z3K5e?@;{#7lK~#^NO`J &VziW! z#(H#j&_jW0+nrk=ArG~%@&GjD8wm0N${c6b!Ll2^FN7SdkLl^9B3h82C9Vi7)t%1Y zsZ$OzqD5r^6lQk}%>MOYpRP*)K@zak?gVKxxR$lUEGiIa7Bz?~_=%|M33{y;9wdYJ z%pD|jf^U7*%Q9pceTVg7811VzuSO_3*F6|nHk)?|kqbmYdw7AlsZDgW;ggV@L`-KI z`e?x!NJm@gpruS(D{5$Gf}vmo%|6VhXQ*=3*2dFO)Y7pXkU{l(1+LDfOo3iTPBVDz zD#-ANISbodRn{K$Y^Z!zE&V;)lF{@U@|ONdG9<_sEh~B;^hM^ P>1wk(M}Pih4Ay(Bm;3N5Ekq*02=z`Z2$`W z!M;2z(-Bch!Lee2S&eEmmx1R3Cc|ZF)-nb>C=J6Uv-6Zj0K!!rEq}vCTm=!58e9`2 zG7&)-M%aj!NjC{m)R)p`vexdnF$g2L * BUv{XEJS-OLw)zrOH=Dqk iZnuK9G-ab=KB675Hwb11d zOBDVLmV=cB z3Q;5zWCn|di1vRv*!m37I=Hi#Z>YCFe`xj)?c9xWHbwAVuPFA{16f>}VcyBw&b)(% zgFQ~p#Bwh%@0|P?;=ASP-euQBpH&dkFQWbV>KD7tpS)onZn)zIO2c9U=DDseeDT_T zP12qnEXutYW7F3j8+KF>1rbpC0JMQn(*Z*Hsq!$0{Fn@FanW&-qLUbHc$hLZH6}Q8 zRPwmSU>L=gfTmzwdpc!GmiFV*RvW&oYzawUtuyOjz@@{lm2(#G&!^ti=@zQ@ps3)n zGha4e5G&2`&P{WeT>gH3-X9gLZ(g~dH);2Al@C_a_tG&!xPp?;BDo&GdI)Opsk!9H zOaSzvY_OfL$pXl#D41e2$E8`xL+PWn*9QG6<<|X~_Cf2Mk9hoZPUvwVkdihm+R;_^u{2b*0kPpH`u`rnBZNke9(sSC6L~VEQ8t>`Jmb|K<=-t za_qx7B*(%dvqnYo=>@WSj?N56$gX5fpCzJ(PWalN5XtF{bRMloa)E#<`9-y5fO{aQ z`ywJ&M1cDGKD5+9LNfI70qA6FwT1pj`C+#N;Gm~akUui$0U)nUDQMsVU7t`zM2@~& zYTU-xFMQJ)3qJP?53CXCI5O3Ga7F(JKR{Mf-^Z7ZjgaZ+O6{0*eFlIG6VG?kUi &Xz9z8>afU-a%hFnp7x1 zL*nZN6=ZVlw*df~vQ$LYf5$?h>nq*@0!B~yDh=n)C^KTA(i{(P_%0Nd=NCe V zOq|4#wh$SVzsVd%lf(BvwebyoUo?{RxL2z72m64?deS2iU6IP@$65SfPz5YhQUP8M z#*%XRb>- p>(!Isc7lfhXA>jlfX%GA)HLY#8XJwN?xGZ2;cHQO{rNA5F5ZHQ#hm| z;cgM3`2SSwlshMZ@Bze4 Y@avQKJ%Yn>oO8wUcDxGKZC(`Q_#QBI9~-g zpp?`=oZJYi32~-u35#HX4v6-@aD*6KPD1B{G1 VPb1l1jMO^k)L4c~Ogm;Hkcyhu8-Hf5z$_|Ru<;uVG2j!j#ugT$BrZ2rf6 z_o313Vb%xq&ThpQk2ABa+WD5FxtCkdhTJnsFZ`uX9*Uo++{SHO Iwq_Lx+r!4#ao=KJorvw1{=Ch&71^H9 zy4BQe&0i)%&(n85x@TIgm+Ns(MO(Bko$? x^Trrt{9ac=Bt%Ky5S?k5!6RG_zBUTfTV_eTB_4ihGw2iU-xSt#NUv<9ZKhb z(?~}jWX~n!eXRUfMQ;I_YJ%k#%R(B> {~GuSm*+r3m-S$S^y{LA%U=ay{w%&S*xq2YMa3SX1$Qr^L?8|jFHw;f zQh?P*<#I4uFq?r$1q}7P&O%!jrt@o66s|t7m ia;wnau %KJGp8 a?FnmsI|R}58i1-Shh-qgro=p zt1UDB2+&*^)JA}p4`C}L_quBA@>EDiKZ4&K^+iOLjzaWK8v+ tv z50^q@6UJBcLiW%<;njmKBJg&|_JHyOwBl#31~e$4wFrc^dn#lGO$U122b3QHIto4z zu (#g&5)#uBH%jm&sRnh8MpL4d}pzYHr?LP~;rp9h`8RT}O1Gt*;8GY1J32C+S) zUV ~fK>&Hh8SwULTX#JZ4qp>fiCeAlq>{L&Vy>Z@NqnTxLVDZdoZe @7MHpchoWZ=5 z0Z{gDUJI}Zpa|f4z+~w45I8|Z1&JYf4y+PyoJ!>X>}v?St*Hk=K}4_|ApzU6MlzwX z1yjMrQ9VE%aL`Gh{6G+(20>9zWd}rT&;$vc(3oCMh;>R(Vze8YrsBIHCnkk9&@DBq zoP!$m>j{uzPg$dprZ70vv es?=}{(G><|luZM0Xizr)Yx1pT9Foc*Fo^=(9gnO&gv zy+C*{Aa6*B{Yz2aRG>uu_7GMGR4^F 7ow7zC>re}Bd-;P{}W(fNX4;5@LWJ{W8M6d{Z z73jzi0;@s5TEGDc21u+e$4ZFmRF-H4QZr~7fq2Bqe?BGKc~mK1(!O&?r!?y#6SFap zEkriTY=(M$Z?Y~#TjhN9)b?x%a)Sj;nbi`3>(d-LEsh-Y-ojU}J0%Tl*8tuNK&x#r zU#+U-Obwc~*2<5LnoH zT~ZYnmJPet-~?p74OVv{YF zl53m`1*rXZ9>ST49PCO$D`d_)kGJ!6E}fZf3Pnv{DheR>xS3eR+w=_(*{`j&MAgAK za~q9?3N{G?Vab9R6)hn_7VQOIC=`4px!LsN8YA@2_UR}~7~8?Yu8sv=Oh@N3nf^7F z3f_{>;ApZ+-+=M4BvMCu5{oj3N6i45@?xk*>h~s$h)_!UvO0Q$%Sf|57~$4$LFb_2 z0a8xFod9(FTt)g2Wc+<&to5?;@TiFTeom%r9CZ1vt1+zW5BQo~{VE< %~-DdAf;&f) S%Kn& zXRSB-a&D1Fbx?8L BELhS$@T_6qwrBG?i!Kn?-@5Kh{ hKo0A}6i8)s@t!eS|ALypMbI(~I n&;VuPczmZ`U)YoK%-)jG*Yst`>V{uyS zq~B 7q&Xf8NJL*lI^N)&2A8vD>a$mCEB4 bT89Q z?_J}w)rVdm@^te_E+YtAm$Uj)Tu?yvChl!}MHu<-hG#je{a@F+>YWjIj=`C4onc3+ zAHH70J{_ARfFTZ~UA$OyEBJ6hJkdeOyW7uJufN$2DXu>^eJ;t_XJ_$cXbo+AHt)~p z-!?gQ!ib+NmOS=0Ox^loyQjhPfIGJeODW!4@YVjiEmJ}d9jJc!)iq{WeC8Ax7kk<-W$hVp*z}JBL57J!(CV(6yklmu z7ET3lqWzbiFOPq5Fsw3=ZMXQ6WBdL$ABX9cUAB|Uw_CzQxnXcbYMmNm6vs~5o9SjC zHMJH$4!kCR-6-7k-v-;}S31dGCm)zGG&O5%cP0D=HCyt(mSkPMe%zUuS>1|{gB?_M zX5 IVLp!ANa~f-LIB@AqN$eaX>u6X0e$;)@c+eY?v0Wh<^2D)q%a z+nE-*XOVh5t+jW>KeP2ZxBDyIn(u0K%UC`6_T|5TwU;dkb0l5sk3X5C9G;uXT<&g~ z<<(2uJ!1YPdGN&Kbcc*25L4EJ%Pz0#eRi}*O+E$!i;NA$2by!%XnYK>ns_wcXhz7= zj#jqA^v31WHY Y|a&KTzV&$=bLz zi`MsISIy66ww = L6?1+KH*Hvcd)|}Qtt~Gu9Q_zXjMMGvv!dmFz02gTw;&Jy zuOPPL^iRJ&IF@AB?)?MpD*6b0En;?_n(2MIC_H!a8*95ow<|BF>rboick=yffv`o! zRa&;cA32aE3AopEe{XEnu6%y?jPc61>+bJA7Z?vkoh?gBj-)*_U^W@=T_z8Ql6%?n zFTHScUg{0U_jy70Y(N!6y3bcSkyo)NcQSsl*18?;SzfstiiVmiFDMl|L |=-ai7O@=G|^RD~22b1(`VO z?$qhWRmPc5L{#P7@^_50xsx(%(f#n58=alk_p`fRmXQp) p}?IR1@Vk6IAhw~kdBA&K&25v zAvyLe3hdHz!oEKo@YZSf9O>lKzQ16qKqfhn=^>Kq<3N7dG=f1O`+-pY^oa mj2!( MG6^065JOGvUo*6nw{;papBfQr8yz_nxv zf#IjJ+o2e6A;S@(APz||DOUCYR0Vcn{7xjODC10sr~o*?ZbKDBCb+4r7=S>>Byd(r zY=)qt^?=QWC~o0kIK34L)UieYu=IyZo2tol=}t&UGms-!iEY$VV**(8(?$rr`)nZ` zM;TBi1;q`Dc0%0Tk Hhq@UbGDp~@%X&odvFcqvE_T%WNJd|WeF*^3<{9~$67I~X6^12r6Pz2=Cu0G zO7}Ibv7kd_C$SkWCG$H48zxy2UESdMT63c_1(&V1-%GSPo$hfn{5+GK$$WSHP>gZG zpYq3F&VN?uYOB8JaEKZ0v=zR4oz?v{UmKdpWk#^YG$e57 3zml}@h#5miho(KJ zvvfA!7~?mDll4#fu;o_U04fD{TjKk_bVI?Q`+0c#Wm>67{@(K1X0+_#UTqTyu6{9Y z@=Mk|M#r@79fhE7t)(ytl9bm*Oej!A{izx1H?z1S-KDcra*o*a2Zr%yw@0;=HHhTD z6vR|9p!m8CdbOe%Tu<}NijZ>^kEz`&Ym)Mfd-Q2<10zN9XQQ5d1`;%~BbG6A4AiQL zdYgk>hk~RPCiZN(xWy(6l7nt;ByvwBIyW{NlkuTkJHfxIY8!*Jz+hVhaI(=qL{{6$ zpM8Vi &@IuP0d30h36bFm7$b9U|LE0SQXWXZC{uwNm^mXP|Bf@i?i+l z6B|}KJu>S6sTeN(w)_g`zt3s>qRSN@t1e1rFD&_9@|l<(tCOGpey{8q9 >@i z;gWE{jQNRwzMPCRef#T0*hRU_cgX{nqZeI%Bfj|l5xIO_WLJ~)bl8#IZ~e~&k9@aF zTCp`!OX-MHV}$eD7tZr8T|7v6>i>R8(a?vYBO%WQTz9{(_%hS~+o=D&(~-q@% %k5#-4Ud@4T7Vp}lexRc(#{crD z)>;}Ho*c%#KGb*p2)FZ~(UnC%(AnWzKakm9-xOsqPIk1_oUh3~;HGRGPum>XebA^o ze16 hC+*dpec4^dNdtL*H65xoLcJ$unZ4V@_(Vhjtu`FF8W9vW _iG@4H^! zP%pY-WZ2WYCMB4-oZ&>xn&eH^Jbm9uT<>g2X`SRf-gI&5%j$-gFLFmtzuc%-x$FIF z|CHY^ 0yD|_$+JZq1KVp-?!H5?RPA(A-_77HCQzC^>Nbjv4?k3 z+pStw-`Huit?A>LrR|B)?z7c6Ep|?7SKqJx4Bq;0C6TZrdDeHg_@?n$qt^$Li*DA> z ~nwp1GSxTgOy_Ti^0RfEghQmdZ=l9V!m_ 7%*;(BLp$y3pnQ=gkYPJFd_az7CY zWcnXh{h{;V(O8$zQK%NtGJmUD#Qf2cri+U<%kD) 3&-& !g>f!yYa_x13bg zx^TJ8P*6zI#bxtNPDLEQ!}RrBwi8el07wA VwKUQx5bm1<*Xo?KMtwj9O}3k65``yx8d0GGtL0SD}H+TXkgUy)gh+ z$}Uzk(u>nt)9oRz!is(l$ToN~U}3Qw&sOkpY#vy8`63 DQlEo8y{ltW4glBJk@8FmnckV5M3-M%Q9Tof+S4BCQSi1*)OfH7 zVYs9a(&{_AkLqoQ;&tz@Y?4~YkQYy4ahq$EE~ibeGkn9Qq;nirWH+e_+C!a=J?>*F z?_6tz_j-`G*0WOEQ}&_GZ0f>78PXi|hQtes5rLE7YRZE>1s>7QYLLAt9d`EJEr;r& zB-pe_VFCXBDHGD}P4(tHM5A9#Y2m@PKoRV?apWdiNukQR3o;aGCPlC{X68kr(sX@| z4ZM+#<0@pws^~^!1gMuH6N#U YYfK<>F)6;v#s=L~$kS4x;tG;4EGg9b&8RW8)nk+SbV!%QQmmm= z3aRdet)KRvN`7u>5%1FxkzrA z3z*V*B`A|6( zxQT_LJfhN3kZ&`22Kj6w>_9*%OCiZaK>etUjzm#ziLj&OjtF%_-gP~cPUsSdA5pIl z$n@{Q%Q#qKmDN`X;Fv(Y;Su7&IaU%06u@8oCb-efBuzb{@L~(Noip95A)7=2j}n!f zVWHPo^bEMP9$c5_V&%0RbrwrkDxK1L_B^3&_^IHb#Kh9$YH0Z72jM zzA;=jT^zFC?{%-h4OR$`0M@h%EV*VVP%F#1=a9d#* z1W9Nt 88K9ua0b^rHZbo5i@uEs{>{Z-}^HkOW#%|5XRVBu*pr-&Y% zZoWxn#$SbEY@tiH`FdP4X|bBH?u|sQzR!Gd^kX_^-NpWP5b9{Ui-%^k@lD1f3@sBm zq(45fVH-U1{VFqY9T6$iR_;k{ zh0q>`nd^QvmId#%&~#7sJjae<%&6J@icBJR#9)wza_gtA)IfJ%*>YE9tFO0<6yhr{ zCBV=cTY2cu;un1!(%KP&uBqW5`80eVRzR*v$@8ciB87Pio8i2{Jd2(-{v4gkQN6Bu z 5!t72`CtdTwXZ;(k?ci>4E1rh_|s9}mNBRV^?f~aJy5yZM3m0lIAW(kEt@nchCnB) zEqA+w)R~bHBO=rD4ZT8{^bO(JRK^`pu~5t&j4Y-O=^%Hg`hv_m{hAEr83_6i2Xc;E z+GCJ)q%$4ePngp0?GXLEC_auWKWlcDlaMW#uM*hgC9QWv)JW|LNbRm86@nXEGYd3u zT6`~*SzB#|Uc%cGkyWG<-}qUtzli#(6EOb+X^v^=x2Si__x5bs;?sQZaj1hG>rP6t zUw%I4W&}FmYY%u$NXJNvRWU`gE$g=Ek-RIj-($V+Ld5zm?W&pDRu3r+BAo@baj>}w zwyHp>MAC9aRA?a1i79Qkj@i pTQJe9WUt>NKu4#z z(Sng KE-WU10PU3-DN3b(3 zM12ZXhm{AI56li)jZr6G1u7yyn9HO+bQEda>-Js|ep+ZxCe&X>c{U=mZCon|ClA{N zZs>ye`vceZ4VWAV=Ure+L)P!NkA3}wE7c|^441yZwYDX4o61&^x!WM87vP=A&^~Ve zFp~#Aw~!7sQkqdBiRIGr2`1|DP&>`#*RsUun6JI#A!NmMtZI;uNe07{yciL6pwXWA ziKjBie2D-dU4t0I1HQetAwGxNEVH=MCfG(14 bhi`|=&z(P zP^7k(Sq|33Pn-(H5IyvL`j?6F9WpCl2SRDKQ3;KO@+%@CE6sxhe^8_8MaZ!|PDeJ~ zu(xtHU(sHQ`Jz}6IYtigV6PN_AuW1r%crcD@LLnC=R@$r6Q9b-P(sovly3ry +;5P#tnQ4{UpJmOrK8k3$jaJ*BXzK&_N*er# zlO9{{dbQhz8=xP;i>(yVQRg(gRS^{kt9umDh0A}zuetCSZkY~0qSKbAb%_*lrjVhr z*=Tt2Z!L6eld+@guS0unSlEUlmleA{@FbLiPi=p}Z=>)Rl2=>>m8iAP1wNlhD2Jm~ z?E3T=ZoJgBLYcU}rMv1_7EdnZ#n(rc+d->7ji}s2t4FI}tWasHN5L<8S5O+{^dywx zC!NK@-nq-4q @p{Kqi$_`VYy$KPIxH% `V#@di6_ nv>%B@U*qD(!Yn?8Fk0z`kkLuRrj}qeJJbaAV&a6$;|8 zOvg263e#-pef4`)viV{U%Lv3&A9tSAI>K(JUG5+&MvZVatP>8ceef)gu=E*1ZeXZe zhAb?Gj<0rTddv|GJ%Wt%u)=B5gW{|s__j-Ne-ygz8>3&f e}+N#QlZbF$GTY^qV(}7MHka!>}hlk&>IVXDz&W zauo=4*IciD3HH@50M6j$J-y9?3S$vdMilo%=!t{AwAv!e9jO;aZ8-6uoFLd_E%gy% zy{8A`H8U3>oVqAdxs|ZVlWI9%k1AclepPofy3+-uA`7DzfyGP}h|QiUqfAUw!P5C| zdSkwUp?LC{xhtV|jH%0f!fF>S?#}g)&!;afYrWv1& NiZ5x%x*U`*$0uE#4{AY2gt zo3Gx=a_QFHac&oiA4Bm_6yavk&jf}5T%M5Uq6Ac6W@SH4A}C)q#KgQSL0i-kW^!N~ zodWKZZtAY`T;&7%d@2i7YUJv_Ez*})!y{unv8-yOwEvJ$7Nc823UJ}mU5rB7E%@2D zm{I;qbSpdGBnuezB9Q8>#BKE`Grr?}EaY{rg>>czKt_NG18a#Y<1?lKNO1OVhN{u5 zc}aRRcThcn?gx1-V&cPSX$TkYEzvEjvlF_D6@=CabpIhPw!Z4A#z!A1H2vKCH-F8{ z{9WUS^qv#$Y*0qXPyx5C^Ku1pb-j7d0{ca#UWj`Gm9h0`(~Tg<^zrd;3@T)aZsFTS z$1^=8E)*+6tg1G|lg$oT)`RX(Mb;CNc^L}Z1O}$^v)gzg>hO5D+5aD8Mb>03{?Aq1 z*=M1DX9~As(z1gw @2-f^}aBr z*%D_+Axl!0M_p171L77$2 $;>CrqKec*P0HS-hSy=i(rFGXB zoj1g^-PeET#ng=}MkE|&fBo-t;oD;MXBz|tBbEP 02M}vox^=-NU!N^Ujf;)&f-ofQLzK6vjFVaU{SMDw?e%6uv#pwT@*^^A5Dsb=9^F z_CdXwt;})Qc^(pv<=}C-6*SalCc+W=*9Dke>Z66v*ZsR-^znIo*HSxG_+T5R;jWXZ za|s)xJKgBoA@%RFiJz`_a;y^=u9Y+CwaMr)GQ!47l%%(xdW33_n?Zy?OJn@ikKJ zOm1y^=cAj~2n=RQyX XRDE8QTf0nXmyvnVs4&qQXD+{AGY#?9i;* zh1F`#SEWw?C(5AXoYibT;jovti93G{<>@X}w=-iKhhAj-z#cb8U;B&`DtO~r;*CAQ zUcix22_+=`ABoN*3sS=w0f*|AMo3k^oNp4p$Jeri6)pzfQ!oqt!6KnkapL*{Lt9)bv&;AuFi>T+_#H;*$I YvAxnMeL0sf! zzEnJxo+7;xzyK|jIl{K!HV-uW4S&;5%Z7>b 7(w!_3Q=K&0FVatqzK zE`{9j8Qf_YXDj5NTvipS?$Sfd77ZZqzhzG&tCFzN! z87LA|AW##WaGVT+PzpimJ^-#odZ1h!7PXaK53!xWNdgV+9T q#dPP=M4 z8F-h& )$^>g~d?fG!(xbanbzX~!(U z@NWJk1oodD`a4&`0U$&BiXSy6C> ?)5j6=PaT+wcml8o>I F`o5_Zh0t{qG`gH5p#$>ECSAJf XuE)W*c66gxl2dz7S_vRcbm7YnAL5q{ZiEBOkNw>?^|Axo zvY66g+L5N9W?2)P=Ub{uU! 1l*{sd+{o-Mu%= h(Ws_gonkg|4evKQ2pEaMhWeQwEyMCws z-idu*lYNR^Hi7Z)Vul~egGO ?cpleM^Gt@aL%daE6QQVw!Kh z^4opMQVTB`4^G+2@l)m!uB~$S5PeiO9r(>Q+%*XFLj+5OX67#jTh(2b#QLinD4}%4 z`O`9PlRzdQ=?9iHp1eM%iAe6G5rRa9OTU3BIB`UBCEYF99B9EfMw-csm0S?xcVQg6 zB?bJMvuDA>%J{{Ym7lkpw}CN%tDy#x!&9^d%~kuFluQXz{u? $;$?%%|Zc zEx}Nlb23*u@X9Y`Pi)f^w@k#f#K&$3?E|Jj+URC5t>58&uDDA|ZGar*@n-%U>c{7V zQChvtC)LW6X!7`Q%=t@;a3-4oIFy%Mkhxg3&5XFCBlAJSdELlRL=Fbym%wNhT0ar` zp%Q~Q&L(F086Z4j+&`jDG7K<-R$QC;mCoFcR7Bz=TqU-I2ih1UDteMD--`n-9EHM6 z0%0k=6UXs@iRO3K3{5dPr_Kum#{ @n;VycDY0 z>a#>as9Mew5@=9UKZ9e)W>m-$2htnGa }5ytHHUI (IjH2{zX;k)D*(V}9HV+7EjKZi~ zkeH;lDI(nzH(rLd IlanLyzbf%5!#0b$6fg$adr;9g%5fMyR=>f8+=$5*$KR zJA=z#g$tv; iiKbCHt@%&MP5e>+;v)-9tBda}p!3RylU%i>l3+eZq zfb3Ry{e|DyW`0!$qFuk=Mn<1sfyRL%ZpC1Vn~52j7SFy>#S wrY zE~>9C@&{@9SSv1KId@x$v#*5qseRZK2=toIp{DpXE2gf02F!sD;WgublRqUDMF$yB zNXw6H$`#q{z_2QQ<|-p~R Fq+Q4QumW_ K-SG&BioFk-BYPBmL%KTbnyHgv~ jqWDe!BWq+AwZqp2|R{hB6aRpH>cY`Kv`6xL%vgt&-;p-)2r40_0OlWe!>02rx# z3V1{Sw>3m|ssjF|E(laEOlDy^49Jy71&5~Uv(bg7^t9Q}`v#ppdTn(W>xKvR4NBY; zuMtyprv}8}XN|>(4pz!EmlAe+BQxtCuB|{74geJRqdG<4^d^fbFP&V`t8>}GZ9tjQ zmg!o~2} Os(Wv(2~dGz^|Olo0m%n8>pZ}X#m*)lu%p|)PTfgpr8 }5tCcALk7`ly2gFe#Xc1Z1T59k8F2O&@`ECdE_F636H=736}_CIOq4 znbQX}W*yw1VamsD6V3&>LItl561JYeGo{XHlw{WwAy7t|bRfd~YUK}boWg7qI10si zEuDXkILL*EgB@3fd1fAaq|HM(!FLJE?9MT*(&M3Kc8-#JzNHKEwWq$IgoWKK#VNx} zv7qEwKyHTMGn7ayU`F%oPLCM{K2`x<=vfoT9y@`tAU7GPoye!##Hbe`dY7YfGeMw5 z^{AS-3xrco{SGp+6+jp923^d^gi(=v1mZVI2Crg(06S>_+N{xtJCOQaxK5q~e%4Ym z210o h zn}CPN)0qH=<* JgyNGa4ULPb`|RE5@WwM3jQ9Xm1^x7&LmS!qg4 zE?K(rdffg(kU>bdK(oLDDbuECH0!vzb%Uf@#c6!M*E?*>zFWevM2w(8)ReoD#m$?M z#l55=Da^GI c5@=$X_+v7N+rm?F!W395?rP$GJ0qkf^)8pPu;P>V26wxuYQ-3( zOzs%1pdgLDrqH1=LsY+ibRH5A0bG`ud*}S^gz1h=$>(U!G~ElsS|tFN*VBaUh)+C^ z%_X{H)3swnhBnGpnt9F7U#4-3^~B)b!v|73Jszd 6GuCL@wiEx5b9Lo7Ofo0 zqCti3_IM7Kb8u D&Y?xZ_b!dpnGHU9;P&Vhx`Mo60Y0c3Z#reJO**_{RmMl$at`4X4Wt3!>>;QPnC{ z`v$BUZC^ix?u$OHtvvX>&%k C=KB^rOA5+(iLk_% z+adAhjCt-MPfUC`3u~K{ECc$k|I*2vQ?w2d@R=x!&Ofpk|A)M+=ggvY?NCpUIxTF5 zzZbgOZ~ZN^DI^Du*rDQCFPkLm@;)Wv-?EZ`4yXT+Tjz(>6Uj@(-`MtF|CYHJ)Ao!o z?Ua7a#5!ase~3JtrZcBe*tK-GnTmXb-ZAA>>yY82v(X{{j`8uRwUD{~?`-n2Z&RQK zyb*G9vLJplE15=2wlc2&En`XTXmfwGBWK~DcpkCP`!&5YPaz=)%e(rO(B9_O7XF{F|=j$2TkGt2by%Gn(1qw0RQkVE`?u?!Vj99+vQ3`7uqL)sJB+ zruUy=zqy^OKO!0r`p={Z&uFyW{;gefoy+7sQ9Tt7V({snrO;M+R-pqofxPL+h_>73 zgZ}v5-yP(oqvP8w4}5i*u%QhGTdr{)to~Z62+A=;gY3Iz-j J9OWrg`nsJF# z-S=X_FfxR@d IP*3k;<@ zv?aY#B@;txY!|Mm1+OyODjLRkrL2ib42_qtx%sn18H_Hx*Q?5$5D(ubhDG}2^4X1j z>{G5`K=eEm(V1r!z+K2_uiPsiRTsExOx0iZCTWf}R?7hU AwQ<>KDqBy-PD`e=OD{<8syl%6u1+>R%vA00?L~T;2tz0 zKm&DE7 I_K~G*x(A3O*3Mpg+nj+r Xs-4z}ssv`ix4$2zKpT&zqO~xOcKf4Yw8>@n< zx4FL^^m|b2T``x3tPJ(KH%zdTIoRc^{bk$ah;2!zv_QEUnl-S}^b=`j5^>#oy3IBj zwU8JJSyJ)sa9*ByM&AvcJB)uo6Ns(&URmt`*!kWi1y#||JAwc9b#K*Np1aQqN+b9B z?~+@=bVL7-!lhYqXt=+gR&n0n@ZZ#;xj&?PSkKah!4x#2s18|DEa3P9U~O=Tlsge0 zLpKji=Ym7Cs; u7D=6Gf(G2AwCOI74}4)1AGX>C1olN4aE`z}KM zRGAdohzPCa%()!#4jW(wjDRGqp$wR0vlM`rAHDG_(k?P>gWd_UwBXw?rp{Ez7E Jlp1yo%QVO5TU{;G~(3=D%2xL=URz_3%Dfz&4%db>z& z6cOzzvw{TyTQXFSfj|=mLjRLsia7gI8wC1NE7}mXKJ>iU3ZB`}%`5 -`hmO(%GA8`=A)qEBFoE9~3@SP@Vu=j)Ad@$!!8QJmQ3p7~ zGZ4dx2&01jahdcWXy$~A4%iZKgG*t* ayCxB4W242Kw>G?N&Q5&HN|#AIaWG z)D;~`xA8lww=X^Xo~7ZodRzLvnM4P{i!9kR_$#TEUO_Ik)b1lkJ9YlLS-aTlXb{Uf zbiV!`c{|Avk %0p?^L7AMYT^YJhXl>pUD+N zDsy(~62iQqJKmbFUR7Alqw40~_7=mK-H>;!$gynKb4l-)pH{}V9In^Ac!|#~-wyg? z{hE7OVlR(9EB(&iY!MgjnNE5uAF@05fsX&up3U{1nC^bdmB4@N4!m03l8yiHzYV`7 zMO*O{-GJe9@#mJl1JX;P!tQbF(5lQ|;!#FRy8j_H_ztr!8;KKIPy1&0i$$|Riu 9{zBcDvx?vn_Iq@viVQHHtf4`u_vxAjlU^ut= zY;T{1UBkR)!@2sJmt`ddjV~*0B-l>`532=l1xbq*uXyVHx{(zizujRjAq7XQE8EKV zPMu;eaAaH39DH`oE&U*n{WXZqu0+C;vadX!U*BQA0*5iYD{gRUO!xyuh${F#AdLP5 zN s%CpX>3^+V6{x|hd2_JV;pf|_GQwx1AQ z{PT1nrFBPv%`AnMI@b03qmColAuN{f`flZ_UDg$qnrpn9*)E}P^=8bnxuoOt@GEnA zuevp t=wHA!M4y*JyiM^1D@6Qj)37yeN2!cJlj1F>pHS%tx8Kb>Go>g3F zDO?Tw%MK_DCGpQQ;h;s7nBctV^*D{lqz4cE+Zzf6F~rMa(~i!jQeB*Y=BZBcEo}AW zc&hL;YeEm-yD?J5ROU+NL;*VydP-AkBC|2D(nJhsJ74QQoT z>~q8LZtLzPmC8!u@IzdBpg5}%FBpRd;iG|<&mBK@s*m1+^X##6h}C|>(!R4T6r Phn5Y#|3rvnf6 -%S{YMr>GjrvH_j1IPoC+a*RZ}Qqm1PH-hXup~J`VPMxMcPc6X7=4Ck+nx1LVZ7t zCd~fy8<)qZ!o?yT3_eq++wBkep4B`G*U3WmqMZ82+n+waeN-^H4DrL;p?7InwBDN? zjzNhb@8JUA(}yj8d}a=!zVXargLy~O+i36V_h=ifE>c-=TXxWp;<@Rqe*3v %cGR|~O~S#w|Df$ZL~6Lcq8_2`d|U2Vb8Icobsnm2 z-mJ?LN6PMh&{;AW&1rwAJUfHz_f=b8x *khSDixpats6Z*H}f?AZ;3R8mr;dtP}14aDvcG3U%5sq3?_xQZQny8)42Sx;`4dX zdz&UzkGpZ*^1IeqMsImE?31%lA8l~k^)AY*y=M1bg|Zh*N*e}Rs4B5oU3IZaa40_} z6*u-$;NkRf<0~zfr@ah4fTQ|d()BrC0n1@`8o_ii!MXl-(F;z0r)tl7&RZ6Fyf#&S zY0sghPOH<}Y)fMERHD7*IDr!~!wQjb+)5;RNKV(%8oHoDP*CYG>EQkMI;T}!9KzAB z1ERVJLSyhb{L}!$qc C1p0}9fMY1Vn-y6s3JoN9z@9gRFU{_Tge`5o6~?k4|IApE__?|51$ z5Q}~u8Vb5d0vQnb0Pq{^a2y^zvNYfrv@nSPH3IN&gaIY(@CFF~WGFNrB&Uo~{Sezk zZy-+Oh5t)PLCpmM?!JFXD5(geX^7kY$3d;0iHEWQB(l6A7X_5Q1fYHb2^SB+lOgB_ zU=~cSXVuDa#+1FpMZHv4`VV(@duZHVpd* m$oj&CGSW3nEB% zZvZpBOiU3vwgHn+=XZC}pk)P1YXGn{VCW$fF9#|p=t=D44hvYagAwJe17-n$_XtDf zirguxwF?d3MIn9+x`*K*x9MTeNG(r<9N+$YIg-~O57|?-zG^^{3Nk1|)q)Hz8guO< z%XL#B@T=ypk)S3s61DZHPLc6|sdK;}6Aj9*f*PUnYBmDEeR;4jV0y=JT+n9+m;O14 zN$?exl3Sz*+H9Nxp6TfoeJ9`Xmf47lb)NcKr|aq)S-A|1S)xuY>T5u+7--)`=FBsb zuPQKt;6D8^{p*dT2HML1*dss&GSMLitOQsN$WK}&u$Tg278roQCH_Y=hLD(K2KS%Y z)Mo~u_GIAGKZYKiCM9E^F)wTb77TWv*4O>p3DEUuAmoKXnZKNini zU+k}zA0%`go|-py+@RSRxL|0V%IA}L`~icDla2>kQey>g&BV*n%##XOW{@cNkONT~ zLCSog8l_{ISetlu9`EUK?{&XMr4??g$v9FDLt>Lu2aDs2GbKm%8`kHI@4q^v*hR|8 z7|}hq({3Jld{O_DcO! CRo^8DzDvEvQd$-f!4k`O}!g>4nD#{{Wp{FCUN1PH``aPF# z32*W}3%zYR>+Vm@z4>I@`%3K(yX@6Yk#*XpkEKR^fK1UVD0?MqA>$Z_KkI3wdqQ(M zA+lFix%slE050wB@EGpH$zR$QvId(iI<%$Ilhu%1{%{7@uAntJl+WNJqVTkO!5eIU zAJ}z8c*Q&dS{g5veZy 1kVfX`58UsLNi~f#)m*@r z#$+o$uFkCYQ@hFLV4GUC`;FtTlLs!_ja3EBmRX-~N3dPtb?7gd>T^!oulF2|(B$a8 zAQVJw9>}pQ`}St3=RPqDDVA>FU(|8Rd6(uMe`MzYHc)zkP|>&YGqPoXM@~8z+BDx7 z^qJ9&lZbn+(LEbx^^$!o%WFqw+&MH<-v+;BbNR|0bMG3ZP^<2Rp@#y$k|^#?q=n{Z zc%s6*Rzehbs>5Pc4V+qo?qSkycCE*?*5%ptff{his}edzvZ#s)kBmC2xpWbktz_kv zi%8t|&dpWxRz(4KcPy)5tS(MHZu^PUtZrD5#(h6#EPYz@QGOXSlEKLJbk39X_Sp!_ ze@M(r9y920C9O;MEB1uylewF+`xC*ggXy+-ap_LyspDbzLi_mqgaaQd1}d}A>eXc> zOK%EoX`aq!sNkOh8t)YoaZ6)miIQHn=}oD)n&Zm99qZ>wuOIVAHLPaVS&K @$eW>-0c&{+a^*BMho(`$_R5cnjb^5(c|6xTGnyH zsJB^>5wGdvsD^BzsGj&@RBKYqd&MHhMLzBW26aQCDAS|4!}FJ0^jzpTUL4)v#_q`} zkf&Djnx`WsjcHmF_i6jZoHsq!npa>%*E;_%2E?V6I9vtaS(ahhOH8@rnx5U|n?EB@ ze-!&;VI&*!0eeiPvm>>1eJ-I#lyY0$2JuM5?U<_UE-`}~bZ17G?s;Q?v PVY6&EPuOEmqOR#h;w^f(XB_&IhZ>W7?ioXOw(E>Nr7HAZNY zcFnc?HZvQlmGWnKC%d |o2wWp2M w` zp793l`d!|xA05W)ol4zkoCSE5tefmz*s{;@Ot2)+azE@wzZisZp7keB%J5ut+F)}? zf0@dRDrhZ3K6Ft9`zFq$DbCO9FvtytJPlE5U%y;RU^qLveWMFj>y31dK>E-U%j!yB z*P)jcd$6P8-jAFc0ol=iKm{pxYX98Zi}6_YT9+pwM+#E`GgewKU=kAeR+k{|S}_GZ zZJmOItE_rhe@8c!>0)ffUAfL3?__`5={h3r3hB#p%Cb(u@UdHntM+%BGG!Bw(p+C* zC>MWACTH+7eW{>4?7Ut$F7*Rbd;-Hrs9o>cEI^`RJbLY*hiARBtW##}*`sH(ru^AA z&EZHNeTABj78y4)+loJHHVxUCsnDj3kT{|FV@V|By}D?&aFsP{NV&T*HRZg;;qA 9fW?A`jaw|PnMS#)FAJrDKh*G_N<^xEX!COU{%RrvJN zfJex52GOO;`uMZz=KXS^MdO)gkK%$kc1j<7(>TmvAcctv4HBW8;UhMATPDlN`|RZp zSxxZ^=TW6?Qb%Uo-rD7MeeP$!O!5}oq ~xD;U-(5KzhvU)_319L-(o%d z2`!Q)*$`19b^+aYe=^6V*l9F6Fo=6uTHj7`OZIJh9cY~0ik)V>C-wV`eiOO(Ek72I zw#sJeceJ-1wDuXDOWBJcY2RMZP~lF%bSK2KIsbIc@wnssIhvT--2YzLTBAW;`LXQ7 z9DzH`5pRbDJP*a4E1(zVL`47g1)RH- Wl8~My!YHWY>P`>9=)O?tEt5)L&&;HEN z0~70Vx8$6o0=|p-xS8x5b1}?=HTm>!tFr;v$cv5zHIN4lGpc(AGD_SNILIi*b8jG3 zYUK{l+aV*1)0Y`1wcx7Gj;M2*0@@wAzX8_+UfV+vh@>Z&=7mA@$Jv9Wm0659#9fYX zm-7@!9!E#gB20RR2 t= 2b4Igs;TQjiHd&Ye&L5DuOkV8@ZeO;~9I!cg)*3LLrBjnQZD<{pCxvz(R+4Jk0d zK9EVjk;anHbO8clKtH+xtU?A$eHIGQXLm3NEj6NgsDlr>xd&3V5XUj$ZrH#;v)dim zp1@O$N4-SoOTw66lVTr7m@H5ulxiua VyUdZXz `r$@Hf} ztDHkKY1-GZ^o=5m;4%VQhkhXGFI+8hPkYWlXv|&);WGs_^jnIBkg^vLnCg%)L}hV8 zzm%S_P{#UYk!(nxhW#;SkYr_sc6KOo>hNkG@)_+4P#QA44l7dU4K^wM2#yQ_Z7-w9 z+D0zgVD`LW4bK@#$zrwDoN69fpzh@vONoTg0-O}! zot$JmO*e&|2~_zN2 mAIi(<1{bfu^K2h?Aw-sp7a;ah1hahN8SP-W)P=*y1$Xi{E zTf#nURGtP4TT+%-T4pLvO6yYpGX$FTPz&>eFPPI?H&*+q3td{=&*Q+bYw_|>%=w)e znsZ?^wD?I%nUYJiq^5v#s0~|u%db5zgfcIXaV=HNWC *{@cBl1OX{*E?eemqmHCy&im5dQomEBEW zoLx-}TO=&rx96&lDl|#^;nOZhEA~0;BYBRjq6_|)iyjJ&4#rG0>qU$|1tyHak6$!4 zE?OKhNn3gPRo;NL-OLm9TxUlr@_tYCc_= fnCtJ*SMw zZ}vUI&x7r>-D{)NMkfdTC`*bZKgYITQ;v^TBwl+g_O~}8Q}-iD%R9_iB+pLhnAD2N z6p!t vzHMTL5}s&|W5^gl3?NF#2D^;Lu!Y_iuC9@hUqegsH9ZQ>#zY_;_ec#i!WhH60R zfy-5S&y3=WbDS=hsl8Jq{fXhQZG2{>%eMqQ9aC-o3Tyg#pK9bCm9tRTCh=C!^Aj9> z#QPLXTw+%IBJ5A(Yk5+YMglxog@|=U^iS!%^naDI>}VNIMr3%N8ch^nFHb&`(Rwcw?~3RPh%vtbt%5wP7tVXVQZOqTmJoiKDHAz-hV9gqtk8i zW)7?Pc@r7>JxfbWHRlMoh%^7~L;97se((~Dm|Ci`dt3%8Rm|*E#iYNk`f?`>cIBLU zK}u$u#3M=ekD4a|PrcTSYUE^W!ZE#wd;_fqSMdsfPT2A8#W=+xjhxUUu95n24#Me7 zBDd$BDRklIIrMi~S;^h=d*&nfe2 zr~t~ouBEX>u#*~lSxP{!UWD%QlO! f_(15Jy zu>RdcM*m=enq!4@V(}z7h*uQpQdt&SdY6rU^L#P+HN`nsV8r5DK3o{oyBiY4-Ko(T zIqx<+?{BbwX4h=Xi_yn!%%{lz_hv_3)8|jWJPl0kx1LP8R|(-4Ue(LA1l(;3YJF{< ztk%P6vf1Igc9(ISvsv7E!GKJ>%!*Nv?T?|j!ZYzCq%MlP<8g)d>E Ypv{zQJ(==Cihu4?e2|$fsO*ghCLe$)ZtR2RZ_e~)afcBK7a+kFD744eENA}a zr1^Ub7=j*lWZ0&;$HN$#jl&1rnui#+GD@p>gau5<9|vq{7x`cN9om>CLDN_C@AMer z7OxEbVLW2E_h_H`-zSIT7Q|| XjD>S0b(n4i zdatEnLF($T0K3Z8rz>BiY6)vQJcc5B818Rrg7OZhIM&`=Hek|Kq;tzoe}5?J`{N4d z=a0Nea&ImxaYZ_K4-(D5D4>dGt#FQu9baeLy;S@zE>Gt6p1_5`M>8>wK<#Py;w>k2 z+`cB5L69W;J@f4)nhdczpaGMQp!M$M?d>yDckHqU$~9>(JL xbJ*H|7o`9M99 zyMv~}Ibuf!u#qSBUw?n8jU!t9>P`Dq)yUmJH&oX2f-b!7$h(_Ej1jT>^Hc(R!V@u0 zkC&{cj?V2S;EvuJ=h@PI<9uRW`|#S*M9ZvT^o6r7T|Cbk-e+e&3T;xo#Ior5y+dw> zN@N4<2=||;X2 H z0#ek_eL1}D#zuSA2NrYP<2;*79E=Z-cc=lAYFz#2wFRyzqxOLe #EE2`B`UH)`o$m8|jpT$FCF*zLiqu+}trB?_}~Zjt@9p zVIc4xuxF9<_!5)DNwjUB=KFJxE^=pTJ^I1>#%RVuL)}?Qelk-_28zxP8CyA+WM ^Y Bm31q#JL}H~M a&&%f= z*V=G2imLO^+Z=-$v6ImMfM3A-;s+W5r{vQChw588#Q!)6&^uQk_G9nM|3i42(9rE} z>`-Nll!qi1GB)j6Wk*}qc!fM$DaywOt8JH?i_Xw^GntfKeC5>k^GUsI8AgOpAsEGJ z`j+ea?0~V`i_)Wa+JTV$!0n*ISM8->m-zdV9qacdj>=^(U%1kzf7<)YsKwy=aqDGC zx}4 >7 o+s)={s;p*R=V=9;U!x%fh%1(XPS9E+~0+ws6-G zO3&;O@Jaf!yFg P{Z`$Ie^K-;IQWEmGEPVmI(kGND7 zUW_-nlljx$bpI&)KUuQi4vV yQ*uVNn%Hg$z@?iZ5}^rOGORf8cj6yTl3ZL&SABaLw+z39S8; z4%MI4!Af_`F>oSl4pxijOU9E|T6Rr9*09VZ7nHYt2QN<=% 3`J=JyqS#lXcgi{K;OyhQa$7nn(&e7y#k}tW%(ZXXfssKRglZTm;c8 z&b9{{mq6M=m8d|_!2hd@u+4<^LxV+-Rg>GNkuw%!55AB?CUPlD3U7nJSlB}t;g2u` z8JbkO8zOQU^ytSxr-RqCJ3|4TP7}IO5EYTbATp1IoWp=xOLTbxN+n376rX)jqM@z# z*MuuyB2LJO!R3jwM((h18Pzez>mS1gxv6Eel4{z-BenkEctQ&dzsP#)UAloyniIKW zb}JIvSu~C`=`|ka5X4WSD|Ke=&2(py9=~R?sm&|Db?!YsT7jQ4CNTV$jc#Pcjbr)O z*JklAZd{0akTSj+VKCxXnlY<2iF~{0l2rW5(;5@S_uXD&MJGT(_VnAvc+U;YS3}N- z7ns}FyA)ZKsxsDP7hJy>F%Py*j>Ud`dd?@CDr;Ux1UC*agM4~FKwy!JXVTCei}iQz z6l8g3haP~Inr$=d%sh-Eg7OtNpeK$CAXuQS7~ol VT7@y?Vf;yKQPim&biF0lW^>YE&?;SlYd2cFsN6rr7oMTO$GLD z3i!XXtJ)?ovRW?Gc{UmqTrNB2iSN|u7oT}mV|`D1blXepL{zWHY>ZynmgPpH!DFwS z%W_^k;}|P{O~b_7w{F~l$xE7se{bqyo~9pISI!y%Fj z{iCfu7{7-3`--((TS*E(SNoIeKP1;(7($Uu#g*yHOFu_K=x6}|?h=WLu^GO@RHD!j zY+gg2*BiJEGQp1xzw=s}myX5_m3KZBK2QrHL$Z6=Qg34CdS_9@sq0He)4RV-X4{6` z!&IO2&U|$Bp!I#1$)6rF@7Zm8%b=@(91Ld0xPAEh(sxiKD=vo2f&LFElL*}-9AL;q zYJH2W+|mCKAD*U{VvIf(%{A5sUGL}1+3y!B_FT%bftiEx{kiGuoe|%h_taK+7XD3- ziq`iohg55eF*;gqzUKM9eI*{_RqD-GTNzloMVA3+`hTna6%8pJiP>@1Ygde;Vaxy2 z>>0DE6>X{Jc;1ZTV%jQR(aM{TJ!!}`q)UdptMmH{*WQkVbn%mCG)*}Gd-&FkybeDp zeaZk_OheI@oGmw08YDTJ8h&TCE5^3@zxWRsg&T7oY;X@iw4i}!l+ht47ESt0f%`|N zV*tXt4#bE>KszOnM5#COTO^iS^Wu5gQz~Ys_%b5jKaRNN9Dy~=ebgkS 5uBvg)h-d!yyQz|ANy*Tc zqcJ8&UJ%ErJ0Ag(Snm{L1897`h<%g=5Fy k-QXh`f;1g)6{j`oa6ZQ*?h3Vc(erf>h=^l7e>vzpx1-a10 zEy)TFQA`08R)o`xF7CEkZPCRDiYY7AR-mJ@k_oT|<M^Fj0bBu6he0d=Cw0me+g(Dm# r)#KS3Z{(S$!xp zt9~|E7`2U_d)E|qjt47aq8}TU5cieGBm%2@x-2u}*s;U3!ME%)1`oFgq%}ohOYEvC z-E1QnadM&}&yg@S`% a3q*kUY2W zFzMCFE*j=AQw`>%ucL9p$_4MK#hw>>|G@lWJ$)oPgfvVSX}79x-eMOgH7SJ0>WcH* zue|p&BPAaT_caoq{p2Nr!yJ`ERokmFy0YERuUp&Y#09b=-k0mA(|^R)l#b!+bS|EG z|3(F8=yG!UK}UdVtzLYKSI(o4A@Xk&vZ?gX=o3Wjv)(Whquu2W;rP?EAmGvpZ`Be1 zGMmTq*Ucrun$wBOR!*0aIsCkepIsQ6{k@3$t1a=x4wU{p!V`E3-#rRm`r``A(ylgR z9(1B#43%!r#8&Y6mk#;m8Y&?6&n@DA?R}n&iz}x$mg*U~9Ds6+5nz1f6{2L%-+Jei zW^2pIx{VA14|BJm_hHDQ>YwN57d$k{YoCg<%6n+|tNW+UxPwYB|CuVBVm%c6EMK4# zFn;ZWi=i>3tYd9?D@Ovk6AD?GWZ7>oqEY<(wbKUFp)H-RgA!s&(utR^UUW3wA%#<^ z8zwU&ku4e&!(Y{A!u?~XhcSn2--@7ly`)+uVx*n`cqSRhd_9Mb5*R{9z;IJ=?91L> zk0Y!2@Tl^e7Y-byi=h^Y7ZqrSFApd{y g4Mv zX&7)8cJX_(8&wD-EeoRoF0f;E ;KX8EznH=|Nrl8Z0?j1a=(sB z#*|B# X > z3g}oeuVDY=U~b()V3bSMt+mR2_PGDJ`d0_BsLn0n59JL`tL5+N-{F`VT;zA;Ei?De z?skh1dSTnq?E#U^`!2T{UsIh+%HX-2o|`fHeoO||SUV+-|Ifppg_En?!Kw5XcD4$E zX37l24+arJ8IVW{u@~SZfXZQPdg*^GBBl(qMxZgD`!_>6@{e!i-o|05xIhDA$}$D0 zRgL5oVQDZW0?_5uD*=KSj5!(|90iaVGWjgPxTwM@6^D_AG{~R`B95TMcIqY?{->k) z$72Fz1WXoeKrs6V;(P`Y;(+qv#BjiMafk?}KJX#pDLU}FR#VV^oZx!+k^iP%JSE?~ zwQ %{mot9g;IaOhNoMG0#KMb1MP>k~*4SUE!hOr4ZAXdi0U#VPF zchNF^=DF_w5Vx_7Lhs7Mf3#`bC%WNEEB5FF6-VesJf(=)cOzfbRYR2T*(r2w$<;{R zcH`Gj%8N(6o;l5OxF2J>xA!x8vegc^TzQmN8D^f-D`|&sQ%!O=n}4W&K2hL)(!Tis zy)MO~TX#+#AQA Q2i2f?I2?7pOxS()V5T{C0I@{fkvREZPj49#b zJMhWw@yv-JGfa8|CZ{JRCpTcffA+~&PPN0ji56AfD090@LG7&EjK!7+JohV+?ayq^ zVwhArrdv5N&fy_j?3T`nhK&MznHyR(+UgZ8c&41?Klv09J-sf*d ZB(*S=2jy2>lZ}_CfBT1r)}?k zF+V?Xc-iiuNq=%@O*pJ^+DWM=0Z2Xb=;t?2@oZafeK`Hat?Do+Yqjl@kLN8NjH%eS zO`Jd5 m1fef?v1UK;@x+>+1325CP&XBlPZ zSDD1k(ixDoVevWZc#gV|m$G1$-J!q~k p zUSfOx rnaZ}lA|VIWv$QGx`ETFm*?6l+6rXk+j@x*S)HwZ?iNq)wjOjx%#@~KF z2eWtxkj0_1Cji6k3Z3ADy2{yVL)hmx6P+pY#xtdioNyLzfE;P1TRY%FYfKPXG*tKS zYo!W4q$)KRt5J1ht%@wJUp{ekR-VPL>pVjgx_@_)ES`)hEl>C%V)Ax7Jeb#?DBb)a zXke81KLm|O#TqZ=hVh&J581BHDg7ZI?s~dK>suxbG6^AWt0Z-LzmIE`njG~|%vX$a zAbXpO+x$Dm+AZypo>KJO(WTq 43ukUS6Mon}Ro zNu{^RU$=4{*4(_dTjet*?i6lmbDsRCN9W3`k?WMi;!zO=i>y86wcg`MiB zMz&+V5+r*}Zt@e-j7s#lgtp|I7PBAQxZ?+iV`MCsb5a!qv4KI4&q&^Jd_wMGJX+%^ zFqPSQW}{ZSWzP8GCwI-W +EL5p1&J0dv8Rl&YC%akxdhBz|GQG3Z=Essoji}M9Z!t$O0!O>Qd7 z&XTFPQJQNmTD&` 2|A3XNb@#R;np6xefRgieLoW~gUUg43PWLDuO z!^q6>6B(ZQC$8zsqyD%Hgqe43B(h6cLT#t+FoMC5NnG(tSaFwJt62ZwjCr8lw)KYJ zWAg4F0z8P+SZqzhUN}a)+x-65<-xh|)K>)QbGmF9$7mf4S>~*BS(x>mL<{To^Rc_$ zN{2ZtGgCTSzU_^WJF)X(+%8tzx@*f-XPI|&Z^O;Swfla(FzKL$kLfSnG5PBnJJ>Zq zGZ 1S2{-&>+7jAtDE1q3@@W)*-%*1bXDsEuy-mzKc z`2Ua^i*vqeU#XaioiF}Q&fT&7W)m9+Z{>kQbHAq346e&*NNM6cb$QN %?MEytYuOAPh?#0#lC0_pixs#AATVJf$Hotn$^iSE74ZSo} z UyD{GoJI|ud@9i@F1s&O74nPsdM-jiiG;ErLx`gWNw@5! ziDi_2)3F0B5NRTT 0BBeG8yE6*Er6E7?@V?Yrj zDIYSBkru_EAe%Y1Ly4v~(z#s}#Dn=82S94#q7xP6;t~h^4_R-@#vawi;_JG(xZE )DwGr-0- z_ Wu1Z~v4x9Q8~FKus7dOn_cKjfVdV-x3d@ z_GMI#5(;(~K7$1^C)vLS;fm_vsHa5!lh!yv?tGCVXPXe{A@g>Cq9zJNQD5L)m*ff* z^0x!|lMUh-1e0`I3Khsm4g`gQYY>2A7aY1|N|F7N?tFm;i^WXD^B34834l@^INky> z0vE$6FJdk?bTr|^NF0d|UP#B%I1A!EYBa6B!mmY%1rH+_CFkfi|3O; `m%rzme-|%c1r|<5)SH-0mx+45xEmJZk}|*eS)m%0}#x-bB4Q---#$ zJY(#wn4>Sr&l4@te?770YG_kVpSgnR^gxY;H{H~h*X7evaizlb%HsJhCHbG`?#|77 z-PLt$t$8OQbkuEvv*mApz&Kx`SDs&2T6ISE_AFQWiLc~xHzD!q)K>z2x2&o=@At&- zvGho4N*Iudxa~o*$gyNNAJO;hMYrb~sf%Z|nMgqfZea_&Nxj}25gn-KCMzW*r^%?r z!bTV)gVN|6DGMHh4jniklP(W?2=~tov4k1{X*fuJU4{ApqYz6_&(;0<_Z{p8wf`QB z;gN=w-v5+%7!q=Z1)u0O`U=*JE#5SZgBsQL5}!8g4XS D>$Oh*H$04)}OinMHl|Gm^)>K^8DM<0{^ku65eJV6eS zP)6TQ@K>|#C$>K=F6H;?->W!QiB`pT5dkk>hir;x!z^Cm8l5OeC7F5*D=+RGz8kEx zax-+lpPV|XAiE)*0cgzFscAq*JjgGq@JL-@>k_1>aB2{^8yA66lfXmilX$xEBJwPO z0MUw59Gx8o=GmOteKWiw)M+c>04PQ10vQ&hf_Pt71l68X1dHe0Ig*?Q($;SvH*Hb4 zJ7LIQV0>vq&hoT%X=`DQR3??Ng>ianZ_s)BE#fEWEtwCtp2UJ_gd-7YUg>p0@0qr` zNtKKe>OYWsO+b(*vU%IHfb)q|A#I*!V Y$}IV=4`f4jM#5}PF^N_UGX``v`jw+}0Qk0DfE z0`v+z>XuNs_IWS#Hqaf(JbJg{P*aetYTsWs#wm=4`8`KOmm!Wo$S)3mY%q@VieR7v zp2e}X9|PfDT(KWb+Nuz2ADaGP1F2L&WWKVv8aaZ-#u5rbG)L5%j5sA^(*KUHqcl{W z4Y!tRavv!*O#02sY^jIDY~1kkr0O-p{I=$>#);HOZwA9Vx1qvWfosFxb-yA!O6r3} z$JN)opF-T6{q@374na-$1oz{vX0(pCRb@8ZXO(^&E<((du}=K$!A6MK_9!p%HpsD! z?Y&Lm!uD@?$uQB#!=ny=kA&R4*_GIf`&fL%Y?Jw6(?#g=8X$<#kJ)p@vR{v6{SV=* zC+}kodgT3y%86}!w(^F>jnNTGx-kCHGj` |Z zZ11No$$j>C#}bJBZSlQpwfg#k+~)%lEP>PT@Y!VHGw9;*ct|8m%Kg0hK6GUJ (B5h7y$ zhs>4_jMW!o9afc?u?7D_MqDfB$I@a^WJ!~sNmK8>fcB-a;sF1*SPk;g*ylziLRIO% znSFX)QOGM}xjvK0>)(#savy_y0iE>?Yuin}J)0ZzSa*r|>M#b+@Xp|r$(!WAUk7Th ziL49vcVjJ=#j}Wi@2*A+RMEGtH9;1x<+5yc@{-y5itgPn&B=AusMNJf#j#yrKzMrf z1ee1PP2&ty3dwHgdIaZry4npClb_Rw30I2K*Nb9j3l1E(yvyqx9z`b|)Z1a)m6xwu zQ}_3ri$JTCYF6x*v~|Cl`4}oj>944r+ -p!?}*iKL*J(kN?gleZ(vu*O)?*Rc^UOG?^lN*GV=YP;AO>O z%v1s#M*E&*J#KkM1A35m@u0Xq_IJVVsLFjCEEzo4=UF_yJ)w5l^ZADZ-)M2 vR%q?>IT6lh zM@_;>J7XOm_L0h@D?YIF#*`#0es>)npb?&4D`XoFT--61qZ;ecEt}meU!S_;M)9Al zgf}uVy9e6FB=9f2){+K9A4zQBSrqdQ`OEI|>_b}_|4@Gjf)fgN(UDs2kli^L2(H7~ zsM9_(7)*N|D}K?e=XWL5iZw(Rf+4Fx$c>_3Ou-cT%5zJwJ;*NM9q6r3QrE6M+`tgw zb~)J))VxJ#)ajEeq6x(dW{eGVE>B0y9`c}temR%Gyd97f7Z_nO{;CLqPYJm2`s4oV z-z&R(ENZy?snQ#*^%PT-&e!*P?3XDx%9X3*UU J*H5B{InO4jUpSw|n>3Mn17v+I{?M|X(??^WHj$PjprMif zD`6WQaVoOh<>H`V^cAIi+HALi4|#)@?ymMS#!|CYkIL;|j>$tdUxg_p=#qQUfh?=Q z5Xu_go->YCF4n5Sk*asTIf#;<9>CB=u|A7MdaBjR{^L%$)ja+z5MLDoBN#uB0g^hv zG#PvdMQ8ZBaRzcJ-gFmmd~txzS_l$DfRDxo098hHLyjD*>^4BPfmM*e2?!C8mV(8d zBU*-$@e@b^2Eq~gF8;q_J&tz~aDi`cD#ViwXMirVI45!!AC?4yE};MZso+!q8&Nn6 zA5t*KX^KF51DOZS;hI1z&ips*1x61%b2Apu*$K!1QX>d3|I}lJkg@8~%Mgf6Fidvl zsOYe~V9(2d$Y7BqZFMUa*Ypy=LirLu(9k^rX}*613Go3zzYSnWdJqVuL8k{wd4mwx zU-W_h1XJZ2@R2}oGW-B)jsky?!HMH^lH$~nyWjP&zeIYu-^`Bj=GOjxf00hoq@VOg zKD5D`lTs6h9~eFQarSKEF;@8=oikP;%JNl`%Kt+Q;;q~d?0ex;rdp=Bf7@zAS5)TI zUIlDzycQEspnZndXsvBi{`nMFo>V&$MLU#4Zq!ru1tNGzYg3bwn7{8vi(L Q&Cu*y=>4+`lT~|fd T2&gE7EOF4pC36w?4zTPL7!~Dg3_}4Y*McBjJpwM9vEF#lT?!F^Ui4QyPeoOl zK`+3QcZ0#Jy^K5iB7Srx#Y?bLWGczIkQKePJ7^6AN;(jeR;JJN9Rs9r?W9>W!G# z=Bf&X$XToW%XirwE3Owj$Xl%y^cIM}T`#*cz13=y&YoA1ySD$Kj7F+J6_-11-DCR~ z_sWETR3)d)$$!4q Ic7r~FvZV3 zW2@XjtBIm)V+UTEtGHpwV)4Zt!~H0kbbAPY#BHvTp~Ib(C#8ePVkR+b&8y#rd!T%A zA8%|Oaj8O2HiLHe@9UVR-%?f86zfFVk_W3A8G3w$Awi@H0o(5RSa<}}0NssFWF?&(KUoGjL`dqUwl zrmG1Zm>nim7SEqCbRo1zCIxjf(`Bns*wNSv{Y8-wfa&ITHt@om1ZfIZ<{Oba*=TzA zye=_4i7L~nM!9IVLr D^%7dbn0vE75EwS#-Mha!kN}^RM$b533cII0L%t6rF4+9b%7}htt%D z)Mi9x!MX-=P@}?GqVZtKxLd25V<1aFUGyJfB7QwnE6#r)Demi3Gv#7IGDsE*?t!^k zEdU8qI|Z } 5#ywEKO1RsFZ z7{_KP>S@+exiq^}+!*|V;rcRrGxOYz97Yb`K|@1{@X<$~Lad(Lq wW zL+3cY1(LE@zMRGM17LC^c#(x*0D|zal}sQ^koT|+?=r+K`rt8au;|oEd|+ qq}$ 6D$q``kNHinC%(qD= zs&BllrVd(*EI=Hw>(Pk##xqfwHAdsks%=(!BxK@u_Gw1tjo1;_+-HJ6{=Ux31`v!q zJg24_QDyS$jk}4UCb9YXU$|8USiA>DkNbS7GP&tHeGXgSTm9!W*Vk#0t?vC!7~56* z>+5GNC;x}My<=v5PwHA%h7eAMfb+RyB3d%zTlY&>IacrtVOy}f(F1rYsDAk{dUE*O z0p(TeirAl(O6=7b*^EoU%vGCyo^8wf8f7Q$?Xt^%7$23{a+s*%8PAXvM56L8hPBmH zoQW)OY2-Tj>vq>Ax?87%UE-SmJ9k6W;;pzub7XrIK?J5x4Bx1p5fW^DDM?g}#@JeD z-mKG5@<`iKF{bj5W3z}{29${)NA2Em$?8m5U-xZn!6{QP=9pocEdAiUI@QdbgkT~Q zalcyd_eJGKtJz Q!<09CtL0B(2pO}aZg|vO3zPgJr~M$T(2<-Ma0Eh2xz*I5IKap;*}Sa4J8>1- zWUG>NIt1*Yq#3c-D^4f#*s1EXP?5TdK(fdO`u~NfUlE&qW27nLpT>(>-P6>Y$?b;j zrbYYTb$BTszqp_69YlHWFZnj*{`>8%mSsy7Qm?X7y@l(-@`*a4Tuzhol{``*HvPz; zAfke$iNXMq40UGEZWaJYWF_9F1JHz^T5i@Y2vW#Eo-P7Z;lK$MNlwio{0?yY_zNOf zNJY!|+>EGf!$`r#hx33tG>#wQyQAUQnc7+ijcd3{xr-PSbY`LS0HsuW( Y);}vR0N1k zkoNTjWEM>^OdA9%e3tJJcnj?l09F852DURG$f_|(=0I9?0~KWtb!J@+ zaPC*v)`4Y P3G2ur1!Y4;X24Ry2TyURKN#Y}iL !&{X&|FHqoiNKWalHzFOcGGxh1P5GVEr=GZ_>ZD!_t@Cj{s2Xe@ z+MGo?_NzpzsbUY