pax_global_header00006660000000000000000000000064136035407430014517gustar00rootroot0000000000000052 comment=11a6ee751a6abd840dd858d3ce569bdddb7d8ba2 uilive-0.0.4/000077500000000000000000000000001360354074300130155ustar00rootroot00000000000000uilive-0.0.4/.travis.yml000066400000000000000000000011451360354074300151270ustar00rootroot00000000000000language: go sudo: false matrix: include: - go: 1.11.x os: linux - go: 1.12.x os: linux - go: 1.11.x os: linux env: CROSS_COMPILE=true - go: 1.12.x os: linux env: CROSS_COMPILE=true - go: 1.11.x os: osx - go: 1.12.x os: osx install: - if [ "$TRAVIS_OS_NAME" = "linux" -a "$CROSS_COMPILE" = "true" ]; then go get github.com/mattn/go-isatty ; fi - go get -t -v ./... script: - go build - go test - if [ "$TRAVIS_OS_NAME" = "linux" -a "$CROSS_COMPILE" = "true" ]; then env GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -v; fi uilive-0.0.4/LICENSE000066400000000000000000000020701360354074300140210ustar00rootroot00000000000000MIT License =========== Copyright (c) 2015, Greg Osuri Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. uilive-0.0.4/Makefile000066400000000000000000000001231360354074300144510ustar00rootroot00000000000000test: @go test -race . examples: @go run -race ./example .PHONY: test examples uilive-0.0.4/README.md000066400000000000000000000021571360354074300143010ustar00rootroot00000000000000# uilive [![GoDoc](https://godoc.org/github.com/gosuri/uilive?status.svg)](https://godoc.org/github.com/gosuri/uilive) [![Build Status](https://travis-ci.org/gosuri/uilive.svg?branch=master)](https://travis-ci.org/gosuri/uilive) uilive is a go library for updating terminal output in realtime. It provides a buffered [io.Writer](https://golang.org/pkg/io/#Writer) that is flushed at a timed interval. uilive powers [uiprogress](https://github.com/gosuri/uiprogress). ## Usage Example Calling `uilive.New()` will create a new writer. To start rendering, simply call `writer.Start()` and update the ui by writing to the `writer`. Full source for the below example is in [example/main.go](example/main.go). ```go writer := uilive.New() // start listening for updates and render writer.Start() for i := 0; i <= 100; i++ { fmt.Fprintf(writer, "Downloading.. (%d/%d) GB\n", i, 100) time.Sleep(time.Millisecond * 5) } fmt.Fprintln(writer, "Finished: Downloaded 100GB") writer.Stop() // flush and stop rendering ``` The above will render ![example](doc/example.gif) ## Installation ```sh $ go get -v github.com/gosuri/uilive ``` uilive-0.0.4/doc.go000066400000000000000000000002311360354074300141050ustar00rootroot00000000000000// Package uilive provides a writer that live updates the terminal. It provides a buffered io.Writer that is flushed at a timed interval. package uilive uilive-0.0.4/doc/000077500000000000000000000000001360354074300135625ustar00rootroot00000000000000uilive-0.0.4/doc/example.gif000066400000000000000000004674031360354074300157220ustar00rootroot00000000000000GIF87abDDaEKbE:\FJ]F;]FE^F3JGYLGKNGWWGJbG3^H/[IKaI3LJj[JD\J4\J;cJeRBgR=jRD;S^=SUCSl5T\TU[_UZUYXVYcZYZJ\ix\ZJ]uU]}j]LT^h^Zt^r_NZaghaVbtYbcbeTcSd||dRZe|yfcNg{zgZhYZjXkgkjkjiowo^ob[ttbfv{wi{xudytyzt}|}|jx}}juusu|vy}{|~º­Ŵ̶ʹɬ³ͽǾ»ֱڶƺӳɹ˴͹ռҽ! NETSCAPE2.0! , H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵk`ÊٳhӪ]˶۷pʝKݻ ߿ LÈ+^ 5 0(iJ"!I*и?Oh3午%kHԊehXf喫 dU6Lr)АG(@ tix֐UAdZ 3ψÐ82G0C~Cͥ=jͦ*d6EA>B&CJ><@ 3 d*BpJFbѡ.QF+ʤ`N3",:Q4Y58p`!GDX%M1g C 8} 0@Q P +:H?V .LMA@c5"eX g kфsAͨ@X0 D` A`dBD/ 5ߜ3X< ALJbUF3s'CD!nHYPGk..ˤ&78#*;O=Cz3"E?b8@`J@JЂ6x pw@!}K%IZ# B8PB(C p$=!  !$j ˆځ`?q\adXht.М@!Pwm8Р0E|Cj-fCHU*SD98 hq}$?GZ5a[1/z!(dH<⁢aD%vӟu (E?QlۀU AKA*P^@ $u-0L ?d3UGt)!#`)Hha؆l4h@LHY`E;X|U9p0~-hN&C`2ݾ,p@3 _PvXAt !ٕo~_L%~w Ƌ8hN51dNC:HS/]~$hAU f Z"ϓs\7e@^C @݃ c ၈#RԈ' gX4'\r$R}ю o,k. 82])J?k'ZFkQaS+iJҙn5g>oY猩kNK~K]c%xbۂzb!b^l u/|?p72pȣI[c& AsEXB ] Q P&de e c?AnSV4Ad /k `ESP~LGӥMO! ZnD-G^26?*勋M7;!B505PDyk,}?;Fv}'$;(qr}o ߜF\ (=d1S "x`_h:M"7VwwA &+;ӎ ʇ%7;-d ܷ fy%zGzp x ؀g #0Ss~3=07r5`&3HLTBeS" o ( C0A;85e"(s7uMn` Π ٥m'}^$x}ڇG6?=Aho=@^fvѧv'R"_JȄN QwOS{'4U_8x hK 64 ؈8N4K0c{pl EZ`qvxw*h<3S1Hr}x`n ~P'SG ^~ >^~ ">$^&~(*,.02>4^6~8:<>@B>D^F~HJLNPR>T^V~XZ\^`b>d^f~hjlnpr>t^v~xz|~>^~X芾>^~阞难>^~ꨞꪾ>^~븞뺾n! ,$ H*\ȰÇ#JHŋ3jǏ ?ܷɓ(S\˗0 1͛8srO4gѣ0´˓bH5BEɨ rׯ__ @ Q3҄Su5?'rݫS>s: )(YRQ̹I~+apJg:z[ sU#k"{.Xٲ ?ͻwD0h:9΃|]sC t[83~3jl3{]l9 Qi&".Z 2HNO=C9h-y"v aD@}8P{DbfGw i bSdv(!l{`k0 @BXwnG>q 郔qt>Q|$+@o0d)x#2ð d(טqe%bCꐇ>dM*Q|ߜĆo3@ڡ$PZ 5#FXD,'OTJDwL A MuerșG T!,P[0 dN*Bx ׂ6x1r`=tёi ?&ꀊ^rШ.)tzЙ)L+0SР <O?i}1YB@FJ'ANs\=?el8Ey 8FZ*ʏd`y;ё$"$@Yot0(B;T s~#KF0'(4äwOt+m;P/H -*ޣAX`!(^p@jt Up {JU = PS eDUB;Z.tю~E쑜13p#kHdi ca۩;U@a৐h!^+]|= I@ƐP%p,*vdYAM"0Gȹpz`l| 1uק)NJI`BHAN&2S:6qd8g ]{+#1)la C0|j~5P>/W6K;R1E܃ 'ė-D1 tC1ו=0 ӈCCUroNBd|\ju5Uk:G6PVc`؋J4}l߂4bш~Vl>8icvA-˓+ L~ dN ,Yb@W!퐄0!%B zu 3!7؂p&J'8@=Ps4[TC%_9Pn2,|5ywDsW= o+(Bs!P ^MߎZPmiA ]E{qH;D>$CC``X,ʏa 9Ѕ3etp;i[~`W)lS活Y_Ok; &3|ax^'NSϠ% wy72b0<<bdr$s|t]~ArQataq<8e|u˦| 1 rW`A[VyqVH7TG16NA YpUk%F?4& xGgS1kU"l>}`6`   3#dVRkiR=! ;`jQ 1tczޖu?|B2Xi<>}A ouW;`넅\[؅sv YT P&cC 9 d 7W$:yEFo SF` `C A^( q( 9nTƐh.)]uQɀJ 0=ѡSvgZ>;q&'X((!נc&`QP^BYKݰ0ir BnJ>Y|h, Yj;q+pz~R9.aH5 0Ћjdpv P3tgթ['4 ;`Qf¥J6?|b~zQ mC]a:Pg1CvEN  YegRq0 @ 9q€ Ԑ {5=8 ꚮ U k&; !R :R,1!³,!hUox%aA{G2W':@[HD 7dy 9cDT[۵^ (VX; P5| i0l]N불kh+oYව+kaW( 0Wx[ ; A7[aaWa QPrp[ ! T0ǰ˻ 5iP~{Q4r}i>j۳_JFI=>c"_h_~(f۾ "O?R'>O:Jxo ۣ+bC  VKO6Y_9+Jjx. W;:M9!O3 l&|PB6찕]$V'6{{U۸u[&eZl5 iHOhH0⫊M>x v L.H V % cSna8Ab@L@s""X$P\068\\Źz v$ďD@;s} %p iYXE4}P\ wrQЉYYCAdd_Ri#sWU) s}P)D(ȢIV,x%`Մic-{@VA?`Vi9 $hv! vp%4%3VzOs nX5 g,]" ()$bjNX‚DR3ϯV (,DA1\)iF5r@ fhwV;_U+ZE.bJ+>q`pD BkFV?rէ!3.n>*Z@](c"@d#051P'Ț 첏>Wp朖۞`Έv<3ُcM\`0PֺO>\m<0gpY$">3:>@ Fs$.PjؘKe \W EH P4hzF@5 Gh{;Kė7ViA>bي!ҎKDFO0 c l >q `sA?0qTUX\!zyxvaG]tH`8=I?(k.@P:'j`R"D8EHzTUHɈ\>r >3"r% NWVS`($a 1\ kflUjCD௫lAqFrtx!R9$M?)ЁB $H?D! QVSX-tZZ0R|~@]c|SU`P pN$Z'g(aOjO^Fa>`A{*4b TtEz)ުV%I%EYEJx+ tW$N)T;-U)TȭZ@ qSW N\4#ځ[IUs'Z! aCu;3Abɦn3 Mq)0PHb~=eOrw]&JArӍR+׽ B8&W&Dt[K,[]?*UO0_D"j(‡vpx?Ђ?8HQ,ȏaȅi[_5?_=ȏAiLX}0p@KV?C(ִT1s'j{82vqҠ|eT'U>\[frF9oA*dd/74ɷVxS=aQwh`.Z3Bvh0i*UysV!A,3Œ HЇ"(:^9*FITc`ճS& `fu`pR -DaYŽCpOƔu\Suˌ` h;ޭ Cfl#b>@Ja' Trx` 8aTOZ_O2`}ohܳ}4G?x3U.%3(" !cF' iH;#ceD uqn0HN/:DOJ=05:(~ъ.@8Pkʅr.pТѐ<G 4[֠Jo||>sa~jV#;"~ ]0BdDq%rRNu\  >pu\ bݦht~W&PG|inq/5TFl; B mC^P@~uWW'8gJ( PQI>p+.pHoGSxR>bhzVb:$pݰ+:UP Jp crom  l\Ez( B9 1F5 :"0jQ=EaW 0VH< zWtgqf匦Ҹ8Ts;p@0(C_tĊ'% UA|"y2 7y€ 0e NT+  ) " "@װ 4`(ꐔI)$!! ,)n( H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ0JёB*]&]vyR@RHgWV |@d 5JJMxv`>(ϤjcWC_VG,~L4G0h8΃L8j33jm3{[䀘ry{ 0u@sPyg@-5V+#lM&_GDX? K19nPK±[B!dm`Y|P# 'F ؇>A} =jR!3OCH#8w b֨a`>#P`04 aK gXC H@xjx(+bQ C,"q$V`G<3 ) MB!e(`\ \f`C ;T@d"fUG*A Xc)DHt!zr/#c2Y`d+"!U0Dxma{b,=@h&Țfn9zshІ} ߕ;9Mye,1Zr 2e:r3MjCc,-(*D|I4X4(2? 2 w@q !FӇ9N P`c6N"P#  Ow`^Z[p|P)G;T{f46C8mQ(x`Wpq׼~`!# "f1\\#4@@!T~C@tl۪??Yu` ؘ]!?+C\L",! p Y uhBȲ&v+>֪` !}![U$KC@ /X4dlձ gL\0x/6t[],4" UJrZ@ [H=pnB+U7X]yW^#^ w1B"L#Y\Q1Q*^a6 4M_f :(RZ$ŋ >=X 3IqLYad'RHXp\.zAZ,Bj1)$/xŻ[6IvAmi7 0G8Mcq- gh"E TA4 M `iW1[zx)f{>7x=c ~l0 Xk EDn#.Bc%-)d}YuC!!!9&Ԡ@bR~ C0{nAkގA vGGH:L0N8pTg q%:c2]0ɱD2$6{,A1 ,zyK[qtIH96pF޲C"Ϸ fX0yAt-k[N<4(gs_8S1L? s<SAz@'x d0P005US90Qw'O{81`ZY}` (#P_XtvpVUSe~^6W]PAs@d!9 ##c0@ 5c 4~(  slq0]88E #QL$#4 E 3Q"n`{RT G0$vhnX ei@Use(7x:VfcQwEg(iцoB?  c2&Ra - g qyQ9P&/ u@(!1 PpOP60P T  &Tb(h$  LpcA s  _M` - T$p-vc'.6X +Nx# NmFXHȎ #)`fHKdFdE Ic!W]vJ~@ff1~q:zF}r8$ 4d^pMД`fPfIs ;j1`IKp `blfk'4PB?B6/I4`KE{}QVp BiJ ;THh1 1A 'oSu)z-o 2!z4PmY 9`h:\ o0`  LcU zf *tg8%V)v)1bK;M>ݰdayYl(%f7A詞bC z ^N( q @ sa PQ[1 op/ Jsp ڨʪn *%Fu vhNT'1PJŪ*oZ1m:͚I!i&R:L! ܧFʭĆ|% _` : ' 5PQy0ź ;i[Ω 9%*;Q m Wk@Sp ,ѱ%4';+;-@[)F{QH۴NPR;T[V! ,* 88"WA#JLH5u3F̡ƏQH Im#/f aŇE>{Q4r}i>j۳_JFI=>c"_h_~(f۾ "O?R'>O:Jxo ۣ+bC  VKO?Y_9+Jjx. W;:M9!O3 l&|PB6찕]$V'6{{U۸u[&eZl5 iHOhH0⫊M>x v L.H V % cSna8Ab@L@s""X$P\068\\Źz v$ďD@;s} %p iYXE4}P\ wrQЉYYCAdd_RisWU) s}P)D(ȢIV,x%`Մic-{@VA?`Vi9 $hv! vp%4%3VzOs nX5 g9`Hhz" BrJ+Z4`'a eU }P $+Dfn0DЂڝs ~@.b +>q`pD BkFV?rէ!3.n>*Z@](c"@d051P'Ț 첏>WpvO$Zz3h{?9#j,f?nX5q}>@C!9*sQpV ܑ:9@-31<yz_.9W@ģ0-C3BevD3P;jX)?@@ $ڈUFjxP?K+DUpvk)Nu gL~Ѡ^a "bLY`@+w ?́ @jAvwJҠA8Ze6sBU( <0ys e{ΒA !0UZpFh"BW} b@?S !<ۃslЏ &DF4>ay"t*9Wȇp,ޣAx&up!rEO ʚ+ED$k fpq)V"#U@Z2"4@G1O{\n0@C7miGCӕU{($ EXB hp)-Є > ~]e ;U(@E8 DT-Iπ@( VQH)paPŁT&&*|` M[?3B6? hYM#n Ytd z tB6m^*#8U=vI j uHd2l`@Gp3 }fSonޚ$8HA`LC޺ @:IlNX{_(#`A,;!x]Ȋ*dȐ;G*koۿi`7}:n j HC#x)~ Ă@מY#=r8(}ik_0#uza :0ku7 XP](p6Fٔ \0V7!x PPpc &|Cp0vpnfu`R~ ]0Dq%rSNa|%ek0@[*suT\ B`Vh0cdQm2u~U94/UTFl B VA& QT( XlwW1WQ@r "aZ4w6W]/;@ #i.CG{3ခ_Up B[pnaV-7& Vg0 Boi`<ń S> Ab(|0"HCJh~x/jFPʀ746o?>аsB .U(`Z<`C۹`]U'|P0AaVО`PP2A Ԡm7?\Ag F4IjmwW?,xH$EM`^-{UA\dT`V4$|H]0`Ww(W6iNn4 T,5]"9()$eNDE‚EDR3pEV (,1_i4hA.zh,S#`cI5r˪Z:A駀rL`1G  ɧFAA?tC}B3܋K9?cCvc̛HudE⏮B$#ˁ>CO\=D?Mz?59#W+#?"jD5$}>@C!o:?s %rjTWA+rQ2oN@ 8;(TӴgQO@9DW`C0BCp1"lF@CQЕ-dd#IUcpFH?TTpX-!P=)U4P*DC1la D|b;`T9C/?h ml;5ݣKA=U9,8P|}eFIpQ|㫀t@6,%& (u; g4p V9{%Ca@C\nvĀui%1D1M80@٠È8 jD>w`^Y[p|=y%MCeWʀ  3E0~5"PLB$b7BH0ɕܷ%*_ UGYnˡ!pͩ =HLȄ",! Xl,H n}C2le-KeqC2D5wL< 4f2 f~0 <9˹Iul"0Fh:` F09s%w ZT[.u)ˋ*襛洂NN0 ]1Q\=`hd1MAoII /6el;3$?AP3}bXh"GAR bHdFZ\J)m9<>gUЛff8D.IAZ# P/i3 M(0PHBvHUt-iEZ e=8? S b;ږDq[!ٗgpXJ̨TލH6fXފR0EA" `ZjR1Qn{{89 jq3X(H&&[ZWSG8  9޽)oF" 8ɐj`{8(L> s#`Ay -?),'&U>RAS^rb-v)\#Xt7ͭ|ҥ7WW=Q5Sg%Ԉ.εvȴ p,@C %@@PGP~|?W_ k>&7gN. (fL@>zHVqjsk/c{Ӈ!'0Ԧ'e*BR &StUEQhCl1[B!ܮk*<07p  &yP -N @,mQ#o!oANܖzLE p1SJ4,)W!A^P:zhHN̈E"p'4hl~.@p hE ` P9;Y` BQFC@Xeր.GuXIPqTU7l "]Z`K!Br'/Ϭ]ʡ udX hRD&e`M$q?qfDP+KPFi @B fj0 ^@<}/{BgK=5AǓ X MIp:p *h9PPa!fF5@m '0jN]0} XPrzStgn+kʼn剠PFS;`0v*z 6|t5 >(o;0=ai͜]Kra .kBO2Yʀm7T@s:Hp $g(!?$mv. (:*BB,,f?qU $=h]%(Y?,PѤK"V1 7:L}}QXlDv-PׄЀL>][g}2EuQ (Kq H>ЃIWL=?<)t\? !#,XsI34"$}?s AqH)U#@} faUp \vup6c}bW#cb( O<] S]Bc51 Sp4&?O`92 d IU98TƍT;ݣ I=s1' z*(S\CZ:FE)@)t$Rl dD#ထřsP ;80CM4@)zxѡ-\OnAQ/8sBx첪'pPgHHQ wEK;4$RP@HA )lu[$e-}t0$BmU44 tԃumUB41y[ IAvf+.ѐKQMk+7饟NCE (t8ʫ6AVRPn9@KF$IV 1A5d:2@s-`34A۝,ww*ǔvo?@W?\=HݦK ]@Ù>;QF}5(X<O` |17Ei?q`$Xk >l#âV0@lIavAڌLf*̢U94Cqzg"P6 "F9GBf, waW p#D\M)$d6aIQ5*77 (>fLЇ"N"IpCM zE :*ևS0_ izHgB,3I*@ܑp)zL , 5Ѕ:s q`8#R 3$Sx 8.Bl(I"vo^ ` ?Pδ eQ.LCBсCH2`R0q5U[ڑÖ42HR j9DKJ* A ~X!xeꁆqaRT @Vt@@ 1Sݴ+ \0$!x xZ, k!s]#P uY~]U (_Ģ @eU8D{YLJ V9agv3{Q4r}i>j۳epp0ڗJٶ$D}ӏԉ '"H%(JVGFth&f#WΊ6.c3N/s:̄jA 6T8;let0Ľ'M}JN͔ f`b„)x k(| N0"J@JhGx/5T1MmC % n.<"= v$ďD@;s} %pfY0E4 Bw}[ vSpQ YAYCa<?Ȕ ȂVRUMֲa@NW n`r@]]{(a,51P'| 첏>3WHF]3b !#^,Xs34gyxO>稀V.D11rDp hv 0CSe IB4”$9'TϽ Q"T!B *kHfe@rl`92fʱYQci m(;xݣ S=G>=Y9,8`s9D\ZW@Nq &C@%#1LP>{{ t N '!@\rXa:t҇9N P`J6"P#`JZع ؂+WWv4~ \q@ $Riyţ=XP:6wl+:\n4bDg<"q0{@$ FH(b@ԀG ч:4!XMB/` Y!#k= =4nDI`#-$/p0n< <?'z׽4^d9Tc6&Ԕ;MrFcIRmFsd4<ܱ L!{Eg E@oY0`!Z{Ʋ 7g\0xDf./zaWD8lY֣p/(Y f9v0I`aFi;=ܩorpDe4Y. jwXy<˹C r pxN #g ʏnihp3|uP]&ad bO9 fHd_(Ɓ \>s{xF1wb=Ora? _YG+ 0Z'}WCx`a`e ! ,g  HA1wC)Am{P@j F|>0h8E=`BAn<~A{ÀOX~ca*ݧM@ȯ%5P ZB. W+&^ LKqՄ6F>lPavؒ*ӬM}kƇ&И<^0" q4Fn(jCm8.T񁱋G}D@`4E fA^< `J@.\LH\B OQJvH 5XgyL#qb%4%U W dRp (JD,cC,\]" 4Õ.  HUA;_0U,Xa 9U V}p YȔ &,6->q5k&ЃV⏗Ā'\HW>ЃSWuO$y3x?\9#\Ï8C`ȐEn>֜6 c )SnO>pU\zk!ƔJjU$>r8 '&T!c=B [YX@B;#YPPj Sp@?P B>PApu.LAF,Yk@s qSL$c-~@ p?pyU?TeDsPP L8 Q'*̰CbQZHYN@%K/08OH?# 7W;X|rφ{2g @":$X"zM^A eS[_`hV$lB2dky裓$0(`B5λP@\+hE49 o1utMe41đB;#xǃTcρq͏+7 8c%xBy"U@! !5j LBJ+[0S=V0be}APyWH;$A7!w:D( NNQXJELC<48hHF &u0R&8 d}^;=6cJ&/x"]1:s-o>1 )0JN K,Qwk|d()9|;ůTQKAp11DǚCvd\ U}k*Œ HЇ"9`YaF |@ z.Cq>9UzNh| 6MwCF!$Nͭ"ql=R +bXTx 0.Bl(Y)1pE P ŕvP*,%)XSyq`JU49OR#A)~Qws%@”&`F, <(@@`tKְ`oīE+Pl? ƫ@Z0ŢK*ꕯW]Qڱh$gp&س2jޔ/kٷ/o"+#'W#ͽ n4: Rvc3{ ]u8ozX\=qK`#Xiy,brv7$0{Q4r}i>j۳epp0ڗJٶ$D}ӏԉ '"H%(JVGFthӏ&f#WΊ6.c3N/s:̄jA 6T8;let0Ľ'M}JN͔p1apID 'WuG `J 4#LCxE2A U 0@Sz i t7?@ F@\jB .Y(`j<`L@nV'D0qAV@aFPp2E32Uk,x`%^Ia-{VAt?`i}#$$_0(DX6ye_] (JD,,x]"ो()$fU \J@?ZE*p4o~B(S.HJ`*Q#`t]EZ5|,O*M)P>#n  E8бW2{\m?RxҨI.=a~pdD703b #^,Xs34'yvO>稀V"D1qDp `t!BԘ-d;0eĈoIUSBH?1Ud|ʚ1!D4**DC1la r0E;`T9C/h m ;xݣ S=бF>=Y9,8Pyq9D\W@ q&C$#1LPz{ t>x'!@\rap:s҇9N P@J6"P#`X:ع ؂+WGv[ `8=88<*-h*02&߭p Ǿрg= hcr}!K3R)DЄ > a5e 5[(@g$e$BaF4x# 'QH)ܾp%#9~1#LBE ܂A#@8-]usbGΈ0p"ӈAwG&ML!h}IO)#I,3F4i M`fHIWa@WDXrzCg ȌH; f`i0/ϠJ;$qaCGA:m2A@v3 MoL>d*(Rp:'Ʉl$HAjҹ=(KOCt26\@Ac)ԛ&?E8ACLDU8`hC (,0вA~洜<9uB/?׹  L2qjJ j{80 ۾J|h[V`5#I> )A##K԰=$0 l;J9UO4ɨvYVu4{#C4~4ڮJNL6dԥؖ[m%Ӧ{a$PLC9#Lg2$$bŶ>a쀗NJH=ޘ?އa2!O`G&F m6V!q^>WHP͍˲>c!|{Guqd#t8#(0' vP-U%);r⡊,[(;`KH7fPDƓ))~m@H.Y;o`7(t,d>daPP _0#u@za :q,ku7(WP](n6>6x-CB9L8ShhH# )tRoM3pHlDl MЩ)uځzUK"G#\یk3wl"G2SH^QdǙ(voĒSsJ8FxG221 xs@VIVpEe=qwBŠMiG;$H00k#K087"v98 "25%Gc; HWA`T̡;RAx"qCސQ8KHtйiCv /.C`/1C/2\i/˞ 9g4rz! ,* ] H*\ȰÇ#JH(*ܷ/΃4I@m̞c(.%& RcFMIq^G-'zTS0|L>.p ZH;QHji3?:KTeҁѲ|a 88X# %lGQ9+2#um H/Ri?=Q?mข]}YQR@e,uqپziey 0gM8`c4Æ `|:`-"Z|Bw~Q9s6K7P=6UF3 t'CDnpdhFi"]xŗ_t6@<.L0"P V HE+Q2 tO0"`gLPC @;68\c vďD@;s} %poY}@4%B}^ gy QZ YCkз;` \zUN# d. (JD0,S,]"A ()$rm5ŨDR3$zV (,1C 5r@ fpDX;_q`p kuD6lF;#^-as?B7.>-DNkpO9(#@bFGNk#351P':H 첏>WvO$s?.|?9#q-?_5}>@C!?s A\:kN@(7O` ;s0@ kP@}.t+]CHA-o{03@ڡ@PZ W5b.F@ET+%$@ i. B&> md "b\MY`K|+NU9pPq_-hCsd"E7`(&oq%30n 1ؙB;s 8HyvO M88{(}=z$~`WP N!Oz~$( " iRs[̦;y" G;tUx hBpFأ1UHt!k.{=xI`hU%pRsAuhB貅a+$G)}Hg+yܪ7d5+Z!H($U_ Kؕcxw>+-Zد~ LQT0Ndl*s \ Ѓ&m(ՌkB)\t@[{.14b`쵷hAYZPλ|\(WVsQ/ [pvMh7X/])ʜ--,^6D,fr\w(-t[T6K}1p[o}UHKwc{gk拑wH5 )Oy5e!̥l f8C(`@Z` 塏A pe*[9ˮz CЊƒ=8gv̎ Z $!gƁıouXLprBcĝ '}!gUEb2]CsCB"j8C A'łc95M#|?:b sɄռDc` :?m񒑝Cy2^ߖ SQT)&ƌ3VqY@Xו jk<;ɚX_҆|ba]f3Hs۽5b`ц@ Dxst2EC g蚟s \^.M]B𢋜pp>"nIV |#$MPչx30R.w_{8-iB1 TPDJL02+_7|=(̄a}H) bx$!`4-CsUp?`YJ(1G0Ѓw]3Pi@GvKt7׎&d6 `lƨ w!8' Lg7հYb6!3E6pGApEtP(n55fPh@Auq SY7@ yԀ!lFUb 8S~Rg[&F{~~ ~䇂kc+Ra % P_ Gp4DkQ9(ux"ka)n PpO6 3`P NT @L4xmRAr 00S A tY|pCa{f A #CeU# eAg|s0aLPWDž`(dh^tqP^1;}HWRd3 -c_eV'*0$@w2^D։HUIK WI Cpܘ1N5Y%-YBQqHN-P`!;Ɛ(+8+\P J31]A) ]Dvgo j]rh 0 }jWh0 sA'ݠ%iA0y7KIa_e<P|0AGrcTQ0*PqY[ٕ_cY: \ |ȇMa  戞 q€ 0# Χ- ٝ9 πQt ;iE СJ> )A` A^d/N:0j2c7c4*9Pxaw"5jQ,jѣ! ,[  H5u*\g58q5(j\A ,(g(3F' n-1L@:ćm HRR=q~3'caC BvYӏ&fWΊ-cgǖN/s~̄jA 6T;lQtQܦ߾} #VqG J 4DLCk#MQev P envHo?@V(,(PXP̃G@ʹ}Y xRhQ)XwYCYʸwTQ_. $ǭbf%4%UZcW (JDp,r,k]"ͬ()$RfG }@+E0Cs‚Y?|BC傑H* 5r@ f?|aT `E8SN!ʸx@pPr.>` IM Tɞa1?qrISZΈ!k#>"&5D}>@C!.Jp9*ƞ}>(B뮽,Cp 8O'mA<%qG"׋!^}@\au' p :*DC1la eX;`T9C/=d mZAu.G@6\l sQSx-\OT4h"".@&ɢHH2څ-{؞ v0%xzy\(!h^X/Gq{+UY4b(R_21NxQ(/P!ha_CҀ G:|m@ @?H;0^Bx-)F! CB! ]AU\`3aD0PEL-k4:} =XX1i0fDDa" R;Dq>L0 cE$])IP0rYB@>=/%b +3?L!  8O X|bJCW8*pdZjb@ lyvAJe-dA)dž\ii\%r"O'a=N#̘* }("@ꛛ:haܟ5!0 tpv}hI)2St&ހő6'm*v-%ADKUH8 `iU )@} .}*B,4F鐠MGPjDTl-BQK<Si)w52;9r`3(0/Ӗ(J!̈E"p'Xhl~@dhE u(X`B 9FC@XH݅FazQ@{*W7Ɲ|C#.z%a0]8x[eBؑ뵌Pdl( _T aj pT?$QGi2\z@QW@^-fAZsw5@;Va>bܡ 0Y6sa(TԹ+̄@u1X貪ra]Uӊ\u&#M1eܸ(*֩ 9(w}o"NtL~+A2HgPz\rU#k@Ҵ`t-&ɛ6f1tԘQQ3QNmz60=S/p7G3 BڐFށsMW݂5O4Y48p`!mEJ%Mhs2)'\RDB=D%C1蠒#X#lpYBB;ЄIO9V(Q*QY*p2DMx1ь w}P m@6LT A ZBD$JPhk&Jr҉ҝa2J Q$$FEjȡX5 L0H % ECgDPJ4"%0@#&X U 0@JHEpA | t7?|@F@\B .f(`<`(@@VP'wA0%㫐58̤uz,0(B;R OJй鮋RRk|@J0.J%4K ȂJRV ֲG@ 8y?\j0Kg([6:dn4K,,]"A_ ()$wΈ uJ̀2 (,81m #-[|Qo `qDBO; ~;L`1G@ Qr>6Mn$C#dq7@qX  ?R ~A3!B\|sL@t!V!!I[;8 P 5b x"s aĵ@}x{DcǯVw b@hD(!4`k0 @BtnG>q\ +'TYt>חQw(48+G#>C JdRx ! Qb2+|%. m3@ڡb* @ 2F߲*ے…Bd3!H"K2,Ghp<3;@?T `` AOD%.Y.s/ZІ".P҃ Dz~oAqzM F/ZmF?@1a*9JIjZ&794Wqd@a;"$@^ud@pNNj߀$#4T{pa` P#;Ԉ'PERX\! USю KSJ 8;GbiOuZ'3Cn75RiiI蕯k`+}Ca*Y?7~;rFKF&Rbvt€I7 PJC] ˄c($& EXB ZDЄ > d qw}4>l!R vz3)H`($ti_i[bc#^ҵșQBľ?Kҩi[j~ fH B"q|`r9K@0q.;]K.A,oH 2j)sN$ɠNvFmyM SbOر32K-gZ@ f.s/z^wK,p}\L~y&8p;C< ]CNA0 ̛CV-4.J` f0pW&U:=R8ywMo{[K{zN$+Ŵ|@ O8=+6p Pkt֤9D]+oj@ %G\if8(ƥs i(P‡Zp?SES1tv w8C8"Q)Jy+v=X@I&%ܱSG8"Ƽ6=*o.x]z6{t4}q>Ato^qGF;G}!=$k|F*?!ptU)A]Bxw}HB-foT8_}2>(4 T\zAt-(պG`XOf{%_ {R{^ic@UUb`M @`.{Q'zu=RUnyp$[   aPU(!g.}|=! ;gQ 2a{uvvr x>V"gՓzE ou@!Ri8Mx{퀁0 ;$%c`B 7 d 4 ( 6 $u &7V0@XE- NB[t@275 @E}.WTpG0Gfjǁ $$ ȋe)s(qh:(pFNc'Ra p/ pi `q| 9(I uP+8AQ4  uQh0 `a uЂ߰O5 ]P~n)pd]Ar ] A r)`Nab Xb ]0&q1rPa eEP*o 3I/I ɐ >A)Z&ptgWlWO&3y!4 ̓i*a/4$5)^OcŘ`3,aT y `bINp b8d,ͳY[M*{9}+moPuǛN& {A( rVp BkJ=Wjv0 $@F`Jz{PQ9$@QG5 r0jbLr mУ(A!B7/tgjU)L3<p;OZRP4&5%`'O uk!B ʠ*+1" :zW3P 0 @ 01q€ ` x8H  *uװ A vR` hE*t0$QM -WZ#]e! HNˑE1Pa+ K{(hAP5| ipi]J  , $k(]utPȲ10!B4(a@ki &] %+ T00F˲iCQ@#jjNʶr;<t|;z۷N {{[! ,* b8"WA#JLH5u3F̡ƏQH Im#/f aŇE>{Q4r}i>j۳_JFI=>HG"k,]? } [Ͷ}S;gEƟ~N| 8t0 @*G1V::W;F6 dbwl41C!rV@%t a]A?wtxCf& p-X"MBma+Hr>ѝmۇ[7oLu k-xӐ(]MVYZ`u5VYgEvbaqaL1.HV (2?\DP@X4"%PB#,5T1]mC # `GBAD#P0h+P  (X<@W4@#Ў.\ΕIt7Q758LMNd )#y`ԩ&Wl \rvU$N# A OЎ=E23avjU "P],x%bd-{dVA?`@\k9 $~8.-s%4%IV|OD\RZ0~0bH|" BrJ+([4֨`1)a {3U }P H-Drn`DЂ|\< 0uajBP&W lW T,W(<"Kq@?++,O*`/r 4ܸY#N E8X2 ca6nh?%Sx®I.=__QupzbΈAxr34c^`0PO>^ml)馣$R>7:>/ T{s/O< 5SCȶrms )(ɍn\ ?#hNL !PCT#b-=+Z@8PB'GRl+)]kB$ 2&h ;( `` Afp+wq*6YZ-.҃ d}ži,J2@!Ke ]tX͈ Q4hC 3!\kH9 6D4T8&$#G OB- U28cp =I"9z-4H;.Q>Ȍ(=8d0 0 bBQjD\Qɸ6w`^8[p|h=(ry6m̡@ŗWKl= 5  "$D$Lh:kTF!h-?0,~Rq!Ktxj|#uv iՈ S4?oqerONQ0 H.8^V+5\ԡ |@!|z~A'`! B.i+B֌gU$JC@ /,aJձ FH3[)^XCH?Ӧ mݺ#\G ܢ2N$@n+BWu-$x%xuSxCWiC\kR,߅vV;^Ey dvlg3 Mv +ISKlMX J;GsX,d:!"7 8p`p4-8U%&JE*"Dghl#Űv4` 4TVH̤t՚㱭O!a$PLCp2x$ 1@ )%H}I) BxZkfv?@y^H 1G0Ѓg=[wP4i@$OvqG^i& 6}āҚ1q0 YCOʷlA/ `D \C%S Crtv0Etp'tn%5pFUh@{u q SY( H@GW(XU(F5X2"~k](l~!~~! ~=+pbRa $ _ C7Eq 9(uxwq(v PpO6P2֐P JT L7HfR{Ar  S Ah $P+XW2C|a7V$Q ]0+2lUq'rVuEsQe ]aH~df 0n+&A\QPj{; wj'M~6y wk _bR%)$ w@!^DJW(Kc+~j2WIBp0a8NY" aBaq݈| icry UO(AI-% {6\%Up B0aP]' ]>qp `F9'G5 P0 }jW hVh^ \aMr ziA8yK``䁙;Ld sv?L|0)PϹa!dfj!Cp+`AY$# h#r€ 0 7",- ɞ * D0R  :Т-j$ dE FbL&:JS@Q2F:EI1XcEZHpyZtI + 1p'qnpj,qVzSzZ$ e*i=?ڦ[!5PQp{s tzb: ڨ:\nZQdN꟢@Sp  ʫQo(;zؚfʭ:]ʥ: ZڮZ:Z0گ! ,)_E1`C_ ~(f۾3jt:D6~A{ÀXƟ1ڰd!jd*KX }˜43a`ph‡ *$ݨ̀Dѽ@ۦ߾}c˞-[JYM> Boi D!h_ pQfAfHb„)qI D `WmG H! 4?LC5#MQevS DMu7 `FADP0h+P ` (X<@@A4@z.gy _~58L~e E)d`aA!:?Ts`N# A Oz|mpgr)'y9/Ě ȂDRT͉ղQ@E]::*eAn< 8$.]%4%Ug]DU0'R%DCHJ"|V?D4%,X I+E0Ê\:eBQ>}%F[ޥOЂ]&JK:krL`1GXѥ diO9Au:tgA(<"˞xq@?+@AA?P\Sv>'b&eP `KM T 1?L|TD7)_=v8CDm>֐6 c 8nO>PRfFu]Fp ϺQޞ Ck 3?MsM0CaCĴPKMtA'\P\gă ^3 P;jo;*B&N6R :}(%.D1O jd tS+d -GC:RE@$CD! NBԟSD-3UgFj:ЂL([VXQ,=hT8#n=(P&ZBmWܣ.A8o0M42 6+Dj2bKBIU,EhIKfDUEhr5^}Lk_kE gMJqw9_8 ^ ^u(p*r b).HZ4P0! B H@ f-je f04wU` ji$  D*/[)t5)|0Kb߇I.(j`vW5({^l.P- aعUk29HQ,e,(u,pE*c%QesI ]8rċC-*s}hW$qm)#@:QbgGbhVsz٬x"At{P >"mL Õv N|"VA\>%WS9h[| [YH#W_+oV%LSMN(Ȼdz iDvv BڂrFQ Z 1b.Gf3 猔K@1 gqgpZ O0c&Tq S 7[{ ؁d؇4B#I/ ӥS2 mO쎈 sdz3b`8?j u(; z1kNO@Q2X`GЧCxxo1a8Ч\Y5q@f5GR &{ Xy6HP\->:|LI;PcTPA N?( Zv-W X&aw{WDⅿ ]0ahq"r@R y@{BBva+p9 H$"H́z(*Ȃ 2X=c4XX Bc6X5{cS{E{ [ceG$$P$`s&^@" ZOX `SIP>p pT%Z8-;!#6 PaC'h"W!S6^Pp BP]XEU D5Y{0pRR]o E50n4Pe :,`U:\bH o[Ј `Yt2ݠRtgwsεՖo _9VsC;0@Q0BF `0$%L+yX. 29VC`-QЕ؅H 81 @ 0 @ p- yYN5 `Qiqp )(נ0(PPJd!pWFMY5G * $q8x@a{ǩ:Y*& '9*$z8_ $2>:. 1:1j,5PQD\ʥ<ڥ+ dSZWReTvd:tIcZ\$4 rJ U ] _ڨ) T0@y:::@A:Zz%j*%Щz*$z`zȚ! ,* 88"WA#JLH5u3F̡ƏQH Im#/f aŇE>{Q4r}i>j۳_JFI=>c"_h_~(f۾ "O?R'>O:Jxo ۣ+bC  VKO?Y_9+Jjx. W;:M9!O3 l&|PB6찕]$V'6{{U۸u[&eZl5 iHOhH0⫊M>x v L.H V % cSna8Ab@L@s""X$P\068\\Źz v$ďD@;s} %p iYXE4}P\ wrQЉYYCAdd_RisWU) s}P)D(ȢIV,x%`Մic-{@VA?`Vi9 $hv! vp%4%3VzOs nX5 g9`Hhz" BrJ+Z4`'a eU }P $+Dfn0DЂڝs ~@.b +>q`pD BkFV?rէ!3.n>*Z@](c"@d051P'Ț 첏>WpvO$Zz3h{?9#j,f?nX5q}>@C!9*sQpV ܑ:9@-31<yz_.9W@ģ0-C3BevD3P;jX)?@@ $ڈUFjxP?K+DUpvk)Nu gL~Ѡ^a "bLY`@+w ?́ @jAvwJҠA8Ze6sBU( <0ys e{ΒA !0UZpFh"BW} b@?S !<ۃslЏ &DF4>ay"t*9Wȇp,ޣAx&up!rEO ʚ+ED$k fpq)V"#U@Z2"4@G1O{\n0@C7miGCӕU{($ EXB hp)-Є > ~]e ;U(@E8 DT-Iπ@( VQH)paPŁT&&*|` M[?3B6? hYM#n Ytd z tB6m^*#8U=vI j uHd2l`@Gp3 }fSonޚ$8HA`LC޺ @:IlNX{_(#`A,;!x]Ȋ*dȐ;G*koۿi`7}:n j HC#x)~ Ă@מY#=r8(}ik_0#uza :0ku7 XP](p6Fٔ \0V7!x PPpc &|Cp0vpnfu`R~ ]0Dq%rSNa|%ek0@[*suT\ B`Vh0cdQm2u~U94/UTFl B VA& QT( XlwW1WQ@r "aZ4w6W]/;@ #i.CG{3ခ_Up B[pnaV-7& Vg0U_ @ Qg2҄Suo] '+ 9rw}lԦ*QRQ%x ri.*Ǒ5[gܹ~l-I0h:΃= Vܢ6f1zԘQQ3QZ)d6A=B@'C ><@ 3 d BGFyވ"\3L MMǍX?|q\ nlYX!rer@@D/3 @T[=Ê9ҏE0en|Cf9?XD Tgs;t4~G3&A)i0byPԖ;AwmB*פʅz\k43= űO\Ad\jZc?9d͒1"sX>S?C>͵ M.8W % ESiDPq4"%0@#W U 0\HEpx Z t7?@F@\AB ."h(`A<`r@~wɨЙz58Lx$+d )#>rmJ h#)H^rIJM\re1EDxqC.3E< qUɵ^!-C`@n =b ) .4*2"(K@F @PO!v}tH$XN.8C 1>>|F,a)}hP6 G>Ρ˴ZA<%BYAԑ2 RRXd%1@)@ CgBv<\H)Vq7X^ Pe *^@ \0 j [#bEu@DJH@ K!ępǫ>@=Һ+M(-CృKO @l?́ KA @GԽc7Ѕ\zp4dڲuq%B6oy[ZAM"\J }s 2}V*[ˊIBHU/s:6q|[n0mppLr:"c?$GIJq_50Ʌ5PE:צ?H;!ES#ȶ}V8yPA1@Q{a.b24bНmN(1D4pU~KԲ(i@ѣ@]y[ KKAӜiGlG0la<6 [Œ`@Ba!L8~TskܡlV'W7$qGNIAu:ddϤl f8C%! T9 Oԩ.u׭Eh8sR v 9A6Mo? P^:\ȹb[P`w !#n:j= 0 w2tۊaӦvB.|H}t35(pXøw÷# Կp>?`,%S)#WV{hwamJsy-s{j{ U)gPw!wdϗj^0)耉PD[Ѐǀ5a S|0Ճ;r']r iG~gomx'-`P$t\K:rG.bU0 E8T WB[q 0| P1%wg6- iևq![`DUY&)C0|0|@+X<7j8!Z,0P4bv[BX9 ŦaȄ`Vw}`-Q\[ӷpiU`P,fp(v]]P%EixPc2h2GpE\h'c`E :4d NT@&|ڶO9&ޑ|Cq0=E 'QQY4 EVg,$gmЁ"@aq Sh^E)9$ -i2ɰU:y?Bd9=y]搑i H$rOI!#Dm A 4d0b5`yAfiP/! p\c Ҡy Q/ߐYh#dFE5  PpO60P6 1U )Gg$  LprA  eS` 5%(p2vNnw26_ `A-@d)I#Y Z%xF0pqI3" PИ risaDuQms_&(8TBkRj*"ٖ1 naj_V`8s^SП䕌nzESj b:gAyhszUH3)(~e:h<|ǡ;G>A*` PQ?QPs2[ !E+ZlD CL* D!s T9GDAH5 z0 jfx0j :XaMznztPgP W6zIݺ3' A]rw[JS p{pЪ6uXJP`HyC 0 @ *q€ Ԑ 5 @1 O πp SN;H )5:6 7.ǁmF5$jQ.;Q+w[X*Fݶv3Ҹ* mKaC%eZ;2+P5|@k0빃 kƁʫn{mHa(Yon R] %K! T0;iK{l"N\|Zq"r1(2a.)4\ !Öf:@s!F|A'L,JMD}Qx'yiz$ ?LW ȂIRT ֲT@r EC.1Ol@ HVBXbahǜF+(A|LztI 6()$BjHq‚EDR3 OqV (,P1c2aѮ-YJ|aS k@t )[@S!XLtN+;zJ$ 2aJiE<@C3BA?dԩ@}>S#L3 E8W2"lP`P?Rxbr.=~pWDң7tW) nu68C#m>6 c Ԛ9*F*an8T-:9@-񛣐n:kn9O}N|.PI*ɏd 1 ҂XjU+(2! ;xP U~c*F0'(`%5Ah| [b,T f PFhGG8%:4 t :63N/FkJhU90E$ AVH(b(G`Lч:4!ĭ[]Av~݇$fn$#:ֲ*i%@" ` [dxVD]{J-sZZPحdnOPjT 5J sjxXihAHPEUhe\ѡNZ[IP2U\+0@z ul2BL#1jS t 5+ӰJzSсeG³lg;sf&Ti-+R0Uya+U%Ms ]5G0Z p]viT3:\X:[B0jTRBaU{! CB!`7\ `"A3 M<|,0PHBSG~9Ƅ] ,f2MH@0YUٔBgAt3<&*W[Ԡ3/W?O|HHhwE hZhIv5 40D zg1)U7=6Hl f̩fSnGm{sqsax9̘* }(Gcjs랿~T_0@v]ᔥۂ;i-f-lx)S9@?}"]Pz 4zGz?z0i) ' R) SF?T _q-6Wy P*4c OSx{?,XDrmGm,W*BI0 10^/E TACt@$rp2\gPiP TPVG0Sq> BEOTWVXU\P(d/e;Gh7sp%('=a9O^r0BBs OfUOL#fi! pb vN]?ߐXWt~ċ+Q% PpO6/րP 4T PPKwgER5Ar `N Af RHAg6a^tW 6! pUq="f UqUv0 bȊX 0 !AOU^Ou*;z='B%8hLÐ/SFwk@8\?% ~B(4 pȅc^tC`5  yud^u/;!RD<ǒT|ƙa}U ':֐ uuS {PᰑuI BaB)e+p|P 0(Hzo OT Iu4P$ {e.`Y:\r s@  @A z^ tИg~ğS;`C @D{HJk1KPR;T[V{XZ\۵^`b;d[f{hjl'ڶpr:v{x{P]з]Q7U1?Z]$uR g UhOṿN XP J &? =kR^ K:qX'sѸH0 Y 6  ao`C@q+ / [ %N=[Pob*)!0`p_ (0|MZ(eNwnY{r_ahn4#Vyz$5[`q @ÒFȤ60C/< CfSA}K5( *;5R h݊cIY9pkX+a- =%ya$뮐)Li _D L4| |&`l~ 1Ȑ9K+5 e*'!4 #+ !iv\ p6nBP`gqB?A qOybYD\jqp Ȝ̆ a :)&CS6 tL1H9q:) < ;g\t1gԠ{C ?I 9w">`V.gƔLnU_?), .}1=ӨJ ۗ9E1'+`86 i5lmP{Z`DƑr*aJPJ  2PANoŁ.ɂLipnQ3A` |!Q@D 2_3"c pđEZUlB̫\%y2@4P 0 |A"#ڤm@'#ДT1 ;lYK `-q5 `v 'A\0 7  `&"'?P1{Cs;0ר0d 5@L / ۶q #b}F&%0 NI5{=ݙ A LL!]Uvs'@P '`<.o 6!2%&4CfhR 3{PA1D4ӈ@ h}8&2*sZZo2C"P,pP  (@hUE+aUEaZZpFG^hg^;\Fc@eT`ntqp &5 Pio O SYo  "3=>.@D5@Q=,_>{^ Pq7! ۈ>U[L xp60JZ9ZANBS1P:$`w.OP'pb46vSn֝Qicgm T_@ُVM0d+M)r ; < /)p^hrFcM* :Av R祆B*EoCd8kd} P֔T NWw e OEJ0]2ُ ]`l7F " J"PplN#xن =H7jԘEtjY$xd,PA`Hɷ#AJBo>w@ O߹h"x++x|SQ?[A pR fFVY$arX|)WX?5 !3AF.Sͻ\o֏,Icτ7u1Ct,N(>,fA..0Rv`ȭC0vjoťSݩXs|ذRw,LJ˦bӧ*{ <"0k)§ԡFd4=񧞁2$΃'l.j0ӡp^C .GsbP2 Da;d L$<.T){+~-aarG@. 4~>Yy;!ۮ;11}a {П")2h#_nA|q21'U{*܀ÏN WG vSshPNC3ѱ@0k0lҖy*'2 J{ R}"FyZM=KRv G: ئ Kl#(MVX [a&NIԈ$h _aA†)go:اjC1=ʢ Fp̡-G7f[A݆[nhk6, Gdac:`(Nth o8Z blY<ޠE֢o#p!;禀:i$cX^QKҭoȸꦁ1#cL@ix09#.  | s+vlA$r Uhԑ1%p(~$!XIH*"Z w`1wMɂvrØckJ!JҐ{\Z҅PԣjOSt!@W}%2&$(o4G:L`@5 9*}`aekj X_ ߘn8)FزrCRj(1Ox|rѠLeYʧ"8 !NlCkHyd Fя{A( <}*0 wҎh\VD)GQEa^R"Vc X(vdt!шW2q2_Z "48C8@JSPǬسo`V u>h<#q\x?H)L 9~̱vb-@p2P#C9/9@B%F,Ws Tyס+`8J i Y$H*@&L .5Bllg)0[`=`>5x5d: AM܁Un:")2 鶻.c+a"3 '|a %PĶ8q.taxWLiQ,b6D'SE0D s!3=iv G#eq,H+-/8#K'YFSN@0@YPz8*SJ wa)hA_;#Ԏ AxaNp )ӏ8;1ы䟣"Gc? 1՚ӨH-Cag1@q8Bz \:,]8D1#B , fW@^\G![A)eF|GHH#Ylz` q,$IHQHPf@HV3IIH~`-k>4J7#Ȉ:ˊɈI ];pJʨ;SJK,K<˫h(!.H~xHKKKKKK LL,LWf„6l@X6#JHQ6fU(#3CH5u#SFJ󨵤R6'EFƘϞf\)T-U )jJ>n1eǖ]F%w#CeAp 88X@ %lۇw9+2#um H/Ri0X8_c)\AȮ>hbuD~( 28l_42':Bq)V &= ŃOE_^`0#m);)8?㏂^1AS(mUB (Ҙ>h#p D4= !E2A U 0_kpB5# ~c4!?jDX .)e X  ;_%x^QD &!YCB6Уls|q)}PN%bik6ȗ<$ Y$^K@](CU\B451P'Ĉ 첏>гWޤcɧ(3b4 #5,XS34BpnO>Pe4Y"Agd"H@kE无o|Ρ O ~7(-"ݺL񎗼5/%B72 G@HArrG(-C  H`a4A zc0BzHQ=  ;;.q)Lf'+JsQQм?aG#q>zT9.z'9C Y SЁQ>cUp Nc ׾W 3"n?@G1 wX@qX&B0IOӇ9N P`U69WRjD&5 Jw`^H[pu@yG;p+z&T$$0@uWĬMs /d 5\ "΄&E$Ј]P9OmZ>AU2aU30.ӮTfR" B Q` ^MqWL",! .DH *5}C2Ɨ-^533CZ3D^ڣR=mj֒ 0S qVul"]Vu"jrA baXk`" B jê9~_w!ZQ[A~7Y߅7R0$5\=Pd10Bxګ}%)45"uԥi< vGG؀7&yd!2 {{w-J`M@mj]e46ϤaW,.V$lV. *4Ϝ;$ aA0Ppr2B `3 nb5Ir{+CdaԠbG~ 222,lb[QbJ$7r"$5)#'M^6s펦qN oE(K2: MhXJP+M$4%qb}YUU|!ق\::q JU9b Ǧe(c_SF=a&.Ip` WD' m {/wHfh58:cW:'#P E PNP@.H8-NI{ yܣ-g!   B[ %Iڔ[`m_=M# ;0bXFQ  Zr^mI6l{t!{6ȧ|R]Pqp~V~GG&p9\$J&c@:"89`bDohq.q02D 0QMSF4 DKR'^zLp\LT`'0޵l74p DµUgXR ݱVc'{l6(Jth(jȆw9 PvHb)d0bP*`߸b@Ra & d !7oex! 9 uPׇ'j*  PpO64ЈP T @f\le$  LpA + Z0` &ijppvb4IuUprr+, $-wY" ]z0fю 10 H$ $F"b|AT/;0G-[ɸ|7Zɀ4C6XF |o`% r( Y{65A5e @4#rGHR]5Hy'Ewneq2R` PQ4QPqP):+ 6g# BpfK   bF_"prfo  y4P(PK U3`0^:\0w o@d 6:ݠ5iAy.N> fA*fCZQ>: sġȶPJH e٦{pZ5p#b0niB!j }xq€ 0 G-ɇ :ꨯ簓 πt ۉHZ[׬:)v z)w1fI4ŸڪM#:!Q㪮VwF=xa*1*hާ! ŧ@ڭ;ڡK :۱ ۰0 x/!5PQ&d]8i*: /3{5{}j2[A;T@[8+NyfQbp`QpjR`l@Sp Um+0iPiu;K1Rگ۸;+[{۹;[{ۺ&[ XLO` @ MCU t [@ (ʪ +U K@`j B,? k PPk,Ҿb1:H%9Ԡjr {fĂ-6 1 HJpcIl .1,^P˜ *@е`WD s| =;@ K@w~%栆 M@,: &PT 2d< ˆE={0t `D c+).|B-"<1"  :l[L09t+/BAF; 1` 4^7O0'@/;xW70Rcm _@J ,p e W 0 Ĺ'- C [K3%4$ȡGd4'+ *;1>"GFwtJGRD=`ko7ZoUy%o0 [T!hş9B[$Nx/؇FQq/ oB `…L<̅=D6"D`_<@/0rawӉ'a~thaZ,D` v' j0'I.&c8gj-4A"&0I0#(Ʒ(:4 qJ}Z"?>6Ȥ%!nj8MDiS 8ڡ@  Q?;ڴo# 2)l_`BK1sGF&p6h!x@@ +grF sh! nGib`DaɾFOJjJ,L ^qjL15Tx{a9sG  ='8(<e=9*ӛBBz OɍtVSy'2@T1{m\}#b.<'t NvRP+ :(Z"JxpZ;6"ePWVpfI푤 _b[.TF hGL9⧜^^x9GY}nDY=rGlY6e"xa{q Co"\A͡ov׈=m0*yfi=>&hAj:`ș((opB o8@XYL-rݦU?N4@?A|? @'J,#erӜ#Etzv |AuD 1Ԏ D:»C "A!X@CpFj>tp3` 1tDN"&hM ~$/O e"Z w`Ƕ=h|#(1 yHd Fя{ vGtA: {6QfQHpT tP"p 4POl+c`?H{1 |7(ÞL*Yum;Z ^>uC7t=ih%rrD@,qE<)18g4jX|aLa<>) h~ihb\ @EѴ@ٖzBXA%rm@t0FL3|P!6,}D-$#F+L)T!CF Ojq'("X7.V5L$cTS@.z' `$ y?Px^"}71E&i@E;qxýo}dD_D@COAi L6LE΅ #@ 0\ 0%ԣVO(1bXl(~T4\]":t]tMkPڰ?4[d JPB!ԁ#38`P)@$$582A /ȧ#|1YtvA#3 '|a %P϶3.taX+G$~ PG>$M$@ Pp _j@: c=Fʒݣ* /p o T @MUIo)9 (p=M QR Ĥ܌B-so2F$CPrx/* 扄^ rG5Xl>=r+tZ @Blc* _'`@Q U/Д!hxpx@xMX;J+jT[;w!:`k)x}X Y: 3`{9 r ͳ<ӇnEȕ(A8u)B+&wR@#0M(ܠ 3$@ șg(R45jDKp zSkUSv i?c9?+ڊXfdHg`!}j$z跉H0,ehSD}H)\d\@_~CZ@ ukQ$RzFЅjs&љ$p6yVyapFv`!$ fq.} X_bRFmX* H2[\%Q*ԡ8Z,m,h@|`huIH{P @9G`0O=u<ɟJJ&~;g V0!w0˳ UEhla1aKK˟F`&LH 0#-\h:82ʹ\Ѕ8 LLK{h3Â,M0vJ DŽz2 ۷k 5`@..d.X8k̹' x0B%&H"F.#Qjy?,ho ?yT\ %=2؆3P (KEAT6s{Fs: F+(AUttp 43.  u@;_T,Xta }#_kU }PLW`m8_@5r@ fP];_U+%D.*ؐ.X)r_CS!XLi$ݗ~8Ϗ)\A5A(<"KuTAv? 3W$ R<ugueLzԞȔ⏎'qI 첏>s N$rynLΈ3~|c a0PHzO> #ʫ:9@-Jjh+nC>KYL[LC0fBfF*V@+B*hC+!?h0FAs-dZ#tUsFH oSTHꅐ²fA!O94bCJGC1`la E6cBX&(9CRB^LBPd/͂fSko%GMq7>x@Ck޵rOc3`<3>-4F $C"o A-TOxJE=?.Y5!tC\YLQFܝL9'`A?qPԈ', CXſ\!.z@5#`v4>_KIGyH:J'Z'gP# 6";mDSߥ>FD}gң^KQ+o@=(C` HXÊ($ EXB 0W|FrЄ >*|` ֺ@4;đ 1B(mY)HB*$*! ` CJI}҈$- -814Rꑎw0e?@{2!:jG"nM`dLC;y H{i.Ao(H%j5$ 5b9IkQy4BB9N΅( JPT#:(:h]ְЂ2$b2Т=ؼ9pC5':h4ύT!HRNogd ^p`: Ai|Iq)~@!4s r )(X|Z jot  fĢR4 6@G?td {Fj_ u_< \0!x (d,r *G}f8}E*8!/bх $5K"BBggft_ 9~xGpp 0 3T DNf !Q1i\~QpgO@#eIFPg!D\C A&( aI(e ŷuD%u P=6. QIp4p!@n?8WKu4>U?#69߁k26s(hU;8A&+{Tp B`SǠ=t E3A X{7z6890@>d4P !`pQ:\| oQ   5(ݠO8tgPmC/uXhI;p60nFUF&&RC{ hȈ4' X5u7az '`2 @  @ 9 n!D5  qͷ )6אl! -$NH ;), Q`O<+b:rm.ge픖܁Erɖz:t`aؐ% 8{٘UeL I) Y/Q5| iP]w)Y ɚ4ly1(R#[`QV0@ٝީ@Sp ٜ ։Qx9}Yٟ| 9Zz ڠ:Zzڡ ":$ZL*Opɘ@ M#U y;Q mԀ p>ْ@ Ф XPq 5 @Vp = SvX=Z0Q@6 a/A} 1C 8v? V# 1Xx瘝0|/7vGH^rExh4^acYPPEYݔ)E@3GA$#-#`{#e0oꦫ:! 9pkЦR- w 04@~Ɛ|,jIjX| |`qK 2sPS Pب `ݩ~fbEEy1oK-m'eDy@ U@! 6P.x%` QqXkxP.әƠ"N  aē?WԠ&K u u`o@?! :!F EROX ЮN#?"њH@ k`lyTC \ pVR 5P nQ NQ"n _,A C` *,0@ScǚePGMQS0 pD\]P;AHpP PO\pb{0=sxHH=xPVTN"I@qprkRO` F 6B:R '{A%0!( GD` 1V AbB&fr<תn"  wbgx$vkw[p!KW 8 a`LO9L[p9H-0SMXOBV?+0 PQ{0 @3 #B@P0QP1 1Ŭ AB+ 2BYLGS p$8 {/0TSS֠-0O '@pFT40*XgEz4 ҽ. P=w# pN@:b| FI q0G  {=nt: {}hS<#4ua+ΑVERj;'p類#mljꞼe RY`,+~"9 c; .a*Oϵ  eaWt@>pž`2HybWQZ 0xuРc,V /X'=ЮAqSX,x Ȇep^Fc F:¸yab?G((j" |ԝEsC8/E Pօ~I y"3 '|a %P`kH #pr6mWMiq Ⱊcə],XMcxEfS*G9`֠@Y0 ^`/ms^e6ܑ,;fǒv" | Bd]x*h&ɸqI"/ P`bY Dıù5XDD4x@ Ƒ\c`e?"? @%d@ l|G;RaX11t0hChFm2cYX4$*LVԇvpɎDa]\5kdxU\ƒyPCseuP8B'4!F,~ j,jhU]:Yb1Fոk֚Vw,6"9n[ 1x-zSDP5,ҋ:P}{`'X4Ae|*wJ H(pfY1p* ! , = ԧτV͟#JHŋ3jȱǏ #@#WȊyɗ0cԨ̄6l@XBÓژ=QPfDg>ƌ:!9Tj3Yuj1S)V}̢%1mq ZHWLJvҨaaZޓ$ Y@ lN'DzA7 Jo(JfGNc3v!>d*X }˜43aaϚpMt;b;4sV9OJBgtYk4@|2D(>FJ Gq !weiƙg6ZiĈbN NO=3"G<f;p#"b P V}a8A@L@"Y$P$ $[O.j@}*0 Ж@N# A Ov'!5dBQNY啣meHO4 m4S!XLB2"l2ͯ L##05 mD ?P[3˂@non '?QxrF .=~pv?M|9#y).?h>`c0 <,9T6|m@HB>o'뛈:rpn[F1( swG$;Q Nƹ~C'F% '(,#SO d}DeҰP/( -CޣAhV@/6Hn^C_yŒ͡'jԧXDMHQHGӋ4?1ѠB?P'GHZÐMlyF>CHNĢbc0bAc-+r`-$a 1\y&BjCDl KҸRwk! FR@mq[E@·$?D! 3MUP.fr-5kD]v;3kXpְiɩxXiBHPEatzc’G b큂)ZhI6ϖ"B\ස=ސHd1 BY*׵oJu]VuT;"I;CGeoucM(K9!ى`J b$61UTlƺdԠ@bqH~ #6@E7 micW^6ZRKp9E`, $c猁)#4{TPejmoA gZ c`̂mrN`*Y;H%ZV\3U P|\bB>VvcW-@k?$ $;2wv}c:{!o&)](n ~f~z:y-Q>GwQ%q E lSI7 rmQt7fylW} %X   R\J]q&|mG`=! ;0c@}@  -QQ0f偫SUN0ha9=}ӗrA ouOiGFY@4`$ ' ) :aLE; ء36~ C9:qcE{8ark[>q0 3D dsQpG4 D8LZ7]z]MT0fq$ H"ɀK8lh]U(8}e~xv`1EWWpy(}yA *d0b+`Hb삇`@( e h} 9(0uxr6+  PpO6@֐P T  uv]w$  LpA } [` @( xp v0[<9|v,4 @&5a" ~aD{0gq(Yq i%QtT*=Q` ڲ`a'=\ [3ee,`-a' ( auE,uLPdxYP \I0Gp|4q=8)^E6[ڱFKvymWGb1ՙAa PQ5QPAQ;+6b$ Bg^w%@  ̠j(#z-xJ9a:G5 0j]IY|T `AR zi0Ay9NIgLZ_N ?E s9רU(fVu{ *&@XR:z >Z e q€ 0/ Tw zZ*0 t iI@:~G~0q!ꁩ* v~d$AGj\3:ZmOjUxa1:q{7# ޺Aʰ{qj ;; : {#'P5|aR$۳> ?K 4k8{:˳Ja/aBE{XD;f [`^ ] 7Up! T0p]+hjpQඏ[{HJ1++;۹;[{ۺ;[{ۻEO{@ M#U ykE"h(ӫJ 1Upi1p! ?z k2# 2.- ۳p E-6 k CPSp W\l` C3 $t)) 0Evbz s|@ 6`p]y-(Kni`H0-n\ Kr 9ƨ6!EH4P 6ƶ]-5@( z ;QX>İG k&0 6" A_,a<n c%~zf`-ݹX!spg P[u1\C$ H }^ܳaVJJ6x4BPlƵ_DϲW?X'3]=r X2a :P/GZgTx cRa@zmaǦ1|v A1 y* p7*po_ K!A1e-`<ŔZmtQ J:-0ڡJ@J  2P/WMg2n #i0"` Q<'"S"C 20\-4c p8"3K߼C&`r@b  T 0r0M= Md(@J *`|}%V0%. d;@'w$.'a%.2*l,ߞPl91h7;PvBPB ;p#0M0q’Y(˰,xPC@Рsp[JNI=:>͒ߡF+6@P  (D-=`Pp r9M(n^lpr^V< 'D9D` 9jA8sXRO 91(`.0>'j0:ujByX!:-QH"K[x-UЦ0dY)dH$ޒ?j>Z@!lmb[Cm; 8 L |Cٓ( =: U# L=QE`?"@d+:C>Tqo$"ރ$p(` L$;C=ʽ!,qBzD&p2` N:x4 'W]ߝܾ4;<0u0HޖGR@<+RrA `B 5iJb> f^̱rt- `; 36M.|THD!}-6R?i-L@EzfR=\T!&N=ڿrjH0P@Y|_0 q@L 1>gF #irOM">?_u>fzdW%7jԘEtj%Rd<2F {iGsiB;AF/cc]I~T8?&H#{.WyFl$S"D8y* P #o6>>|Ksh \ܙppvs\y뱟ө10S A o(͟( 4B 3\%1aȥa %0`Ix/S060.:ܑĨ?:Jt#`. Gll[0}Ⱥ'mG79ik]j(`\8Ge`@7k lE.h`6-Qn3wC7E^Y (x(^1 AR-(D,`d2pGC Jz5+PBgIjdF9XTq%AX Xb_<`` 4ዂD1!d "ȇ<ԂQ #căf>(>Ƒ m8B؄LQ>6 MR9bb.? c( &1! A`W(8dpc T 1p R2w,2_ADhФN)Ø^eLAmH;@'R ^2".TUChТÌ/L X&j@y A<`w^+>0<;'$:9> u>kU)HAp%j>>5băXslᔯ(YrJ3IƁm'Θ !P|!->nl @ X?M!JRUH@+ I.iF Q&|P.?m 8$cfuNvL3G-.4 8K1ŠjrR(Z:# ^mM;L 'q@f&P h +>b (A P`_"h4 V6 J@ox P"pqc 9EsepH@>Ǣ : zV .pQ W P,X\K2asQD.iAt+OF ,A ~q"y% KD! 6p+6 F^#pq Q*vtͭ H]G1Yn4 _XB =| d"x ]xN#,trՓёj#$ xΦSQ堖T #Wem+hy]u?td.0J5P>#F. nnxCS,m4x`ězN~Y3(Zuϡ J(̆U9gFw|(W#@$=! -D}$Ђ?D#t(q:Dt*^'J8PQxy7EHÓj8DHD!1]d_хEb_jH\w SrCAԋ: ËA$jĮ qiǡE0@5v|FFmYȃXDx,s $\F|t10^6m$~HHH~; V'ໍw2ɓVEHV؝ΚIIɌF&LH 7:Im 0Tʺх8ӡJJJ{hsF1,K<˙ ! ,*]4ixG;s?>H.؇Zo nMȱ`EzX&sP?ȥ2؊Iv! ~pƠ Z)i1&Lx!( TA.+(;5$4'3ڵmSntOCQZ/eŒTWJy1_϶U!:=S@ RX>8Ōhk]+.l=$?z$;T%n nIxAw~2dH݇[F[[̘9Ӥ;k^ÁٓWt(DH@x!C=a~dI |[e~%VftY'H5Qm3݉ l36cGǹx("#tRL#C|Xkpp-5 A,cR4 \~բ#oEC"A|A$ŹeRICoO\5EqaƵ%Y'\AYjH؛ih} Jˤ I4=jMq)tS'PA͒tfw%Q_X|z$`Z"{Y + iK.lΤU!SC媴I}2[hjY: d+Vj; m ( 5zpOr4̫kK+w=B/223AC4@CtvNٗf=S0HׇptUOXpb]#C=Xq069i"K@pTcg[5#; 9P.{EA,KU4dS gGU>9C otL1[` m-2_Gև `IΗ>mcw(%pL ":N"r;` HF(;x L N<HZz,#A0c[cHkP 3bQ\ 챆9Ƣ (CZ`#kr$$8EO=yV`' / ?P;$(AA6+(<vc3Y4vN=LoC,xjTZիnDCLlqx2X6z ra<ֻ_z)GqHu]N\/1]d;(};a7S5rDqo@0`UB汒gl @"AH!L.{yQ ЗբH6cN8!)CȲSDHcЏ#πs]*ЈH<"Q;y}nނ--ј{-ktU,-vMj[ζn{MrNvMz{E肾 )OH^gBPUu, _7j,CZl0|_qz#$G8 ,TAk93 m \\f/!H$&'8|GO;PVAPC1 aWC:1!<U6>N6}"`{PܮaL^ȱ/nѫ˝@>1+nn$)dTt=P`h2B7r2_>(=%EtR%UUfl yA<ˏ%ǃ)C hw wE/-I!4!Z`Z*S"ۂ)L#z0P7ʇ_0R_~Pńds eY{]f f|do0S&`yu<Q^ 9LqRUP;_@y@ G)9(e] )>X.5^RVƠ(Naoq%$! YpuԠ|  ol0:`yS a*U }H)|zHwEp-q m:E#46`@wVR 5P =- .܀f i`tprpBa x C qQ0ne =:NHDc prgV  0'w +Q̳@~$1' @찆F ):3pE\v X3 Q7 `=C=&AAx( 3W%P.  `.p  sLIb2S0' PUB39@M; `l"uU G82߰;1z z5%0 } 0( PTps Xsia* W!ptRM hQc"6W +")A P%D` L# upX01G?,+%YW+.0BQN2[ ̔lp`1RaiyI-"z [@KIy [0AuOT)+ pA 6+c졚\HI{ ` R* @0QЀNI?v>'G$ "T@F(p AAVL PyF`.3b}0 9,q2+Q%SXS@Jj '?QP8e¡ 3yrU0c0 yo4yA@,lJ I5EM0GO01P a!YBA# j0e7"@Y7.A"ı%  +qDQ)NN0a  j8 gD O]J:f CBT&,19m@ Ѡ(WP 9@dN @yrz*Tz'm +V"0JPeqp0Հ5 G ٲ!#t{hiKʖsRY Pf),1'8hsb"1 zLp0z-uDz @a(p+a+ip $-s̤AzH`trB!Fz 3 s K[Q #7 eq0L  1,[+Q1"6A,ֲ<( 끭JZh[K AJ`e s;WvKW8ZXQ껷;PkqDg+y I,AR0>@ah>BpT aٱ*1JI N/ #*lzB*p~TIU% Z#hR 5!;5! @LZp= z@ K[װ3|,nK6`Pk' 6}X@B}u k+Q`ǣ!"@PF BA -,8q *͡cdL,/ h SI0_ )Y!j/ YHZOAGL5 0$ Ml[M- ,@54o/ \%k0v.U1*ɔBI0&q y&`យ TI1W"JA+ 1Ϝ q@p-h 9 LsPr$DlQ-t<5(7mQ7` a 15 1h ՗M7$}V7<9fW!=-<0ה\9,Qa$<B# 1TvRȽ iW gJf62P T0  8=YɇRa7l޷XC-N| P.NH P8?p 6`At$@Jz0-]_e@rtntƹ {.Wƌ1tlOpA*^V9i @)B,^M0o`$"QȳvA Ë (oL@掀 Ή@Ff캒3@ pP%!0C1}-tqW+D,LYE9;vrܹ7P S@S> 3' W0 VU[/pO_pKP cW)Kc?5PEQt:qVvL$YP \{Y7/v!{:jd@MIJ7yP%@& Pr C0LQ =J=`5Q>lD\>Tϡzu`r)1?~l0^=~!8P6  G?:y$Z;] 4$Z ED!߾ܩ0aB`sDFd0VѫHwHXՇUCpC2o*b}{H:էε[ Y*dXW_ݽۓ8\|q':jMwn5'?,z#A̘QP=) z [ Yv뉟k`cIފ- dq$CJ)X~|tϴdnT7U!(M6>.NHWT͝FD|Q=,2Y#2}vQJ*:T(*'QC1EL.42N<Y&XviROb=BETV YG!V&h4/SPC-F< >0IC >袟JEmϝhÖX5dT8Wb56N{ @XhvZ! , h Wf„6l@X6#JHQ6fU(#3CH5u#SFJ󨵤R6'EFƘϞf\)T-U )jJ>n1eǖYŪ KSF8Q7mkE˂ppȁ1ڗJٶ/sVdGۀI^ =ҁQ1Rx]}YQRUOe, vqپziey0aM8`ctpCCaKH?Fҝm'um]n$Xk4C@|2D>~k}^|W`Idb1ᆌ>D>S? z M .W %cl# D4= !E2A U 0@_lpB5# ~4!?jD\ .)e \  <$_%x^QD &!YCB6Уps}q)}PN%bi&l7׎=$Eyb^,b 2S<0uD 0-Vˮ>"/⻭W<@CyBB?ծ@}B3|˦`&@lO9(CU\B451P'Ĉ 첏>гWvO$zύ'B@Έ~3|ce`0PBO>8 .9J!BG=-${QG@Ztm_#(G?O3_>wU}G<3 Aaofw-y)<:tAXljd?x'&M+ v!;T@d"X@}UA <XBH!~ӭ`|ѹוi4@G(-C C L`s/हZ.҃D$A p@i_8$Eq La6k(?YQ`r0 *? /,b=+DEm_HF#d?B]>&?A.zO@H BɌH̑` (v\b!׬ ?#Ls{pa`X 1I$Ԉ'=LjB@ 0xvVL$d9H`8 =BF 3Q0Y3'`jt%EMH"ŗE1ґ̳4H?ڑd V@?0PsBQ@DSF.fڥJ,~t+ jFl" eC AG` ^MWL",! NDH *5}C2֗-^84SCZ3D`y[r}mlڒ0T tsVul"]u"jtQվdaxXiBHPE49~@`w!Z[Š=FBCV_a vbL#Aq'{\{7 5i45.uewXxGؠ69}B@_&4Bb8X?[Ʈ .FP $薷ugPvУNgeY.W$oV> 2tФJ;$aC«a=sA2_,_`3nn5I+‘_3ǻf!!xZxg1>|C.͆~TMdA+9C!4|$6`{wɯvjU'NV>d oBs cD sdP)*`+dwJSbУ})J q€ 0' Q-Ї jwqA :H0` j^1~Ժ-36I xGycT#M#jNjDo}*OS  jā 4 | d[kNv{ : +@{/!5PQd] :' Z<[w 1;5{7<;~b9v)8V{|s+X`$qF] ] ,5n;@Sp ˵o-`i l{w;['#[۸ +[{۹;[{ۺ;[{A HPr`* FЬM<EO˼ [J @0C VaX" ,Z*%,`[KE+G p? ]ke :  iJ@'l*\,p҉s)aI,Q-\%}1`vyC#-ε!,f@ rĴbPR &&20| tĉhD`\*!zT/胦Yۓ\PޖqU3@7p{7"8]]7wPR z-@s9M  7` :1ב fc gYi"@P /"<`@m@,r}O8 !#$m (0!d2-c @?@D rV`&o PޟG"J -}ǖJ:@8pUMc%#2,EdTv0TRR\ 41+t?.P@ 6@,ЫB~_b?A@ yQ< "Л4i( *T;RPO޾4$P{ !pB^ P0 ?~p2 < (FC g]pM0d%@,`K2OpO%Sʞu9w4 `.409H`>T <`XghD?s8>|1ȂG$xo?w}Fq0?cЃ>Jz!;Y?~T飾u*"8vه ;}e 0RJ\y f&{T8_X4*uǨ*v.АXkc(M%~f[y0#6aZV 5 vZ Bׯ(f6rn7<jC/b!K'o+l%˧o\b$gyQPöv9L*RRnH&'.w6!% UrD l+lg"{Ȇ1g onhwF8P8 ěRl5~s 6ْ(P,2i~bYTIݑK`z[7|iw] 1xXJ(@T[ vĝ .WYs.;pgw-\c,N{'~jQH 5$o of[AFH!oDF<@nJ6=-pVp%u'%7-(C@+ /3_z1)}T (.آ|zP7\}D)Հ{BI&T`$~d"e oxC}M ]hv{P:PMP()5WH;+p!A0 34{H"|\qBIDG E #7FO 8h!0p@q]0p:u`4NVhj`(M -,h(u)иFqmiwЃH6Ђ<!P- en+CGDt}dC)!7ͼD0@%@!*JdXO| 8 ZaH XBlpRekf{HobHSUTo`plpdkU!SMtv>a⨲Y <7@t/ {29tP1N3TH3jRԡZ5z~.Np#jgfE@ A*);E, ^J ݙz|ZГ}H ?t\&5\?Ҋû{91Q TK|ct-> rX7FGKRCІGdww c]s|K#zf栀zP'-3  cV1. b ֢15}(o^bbǑ?6A`Kh>@((*;|pP*]p FNQ@8j`TqQFx8*-PGL#@/,4$M;7r>7G;Cx0@ hJ+t!_:\ e6G45J]1E|   .McHau}G,&^7qaC&G> t ҃aN6}J,” 78&=@<\)S8M]h'U @Rg>#vOoAAz4J2*f(WP!G}_w̙N g3ň +J>F? $ < v lT49OFNÄ:҈r_<,FB9(bc@Sb8``~=c8h( @@dh>xxh:,\2ûDQ  Ђ.X `b cx0SP KghWXA  E3h` X$ 8_.Ƞp'@\H ڼ|H-t|@xxC9,:t=oJ$h( [Ss\8=/z p_88D PKP x>ȉ#/.7s4>$) B?% J2l1x%:Gbd'#H/wlб/( xmAM 9s9h2' 5o w`qwqbk/>ʩ# XD XHsDǒ YGrfGA j`A 1 |Iݨ 5qP )' $98 "P% L[@wG\ c(GAykܐ.8bx( %@[1AaH .tTȽbPK HD۔$RGELX > N)K=˒ʴĽảw  X g( (oP+ },̄OE`ȧ< ī;A8sPIQ_h_=+ u \X_Mчqde1ؓ c7._h7c][c>u@56:cB=.dEA^dGFF~dIHdKJdMLdOdP؀! , ^+3a‡6Pa#JH6fU(#3CH5u#SFJ󨵤R6'EFƘϞf\)T-U'Ē )jJ>n1eǖYn%w#Ce9xp 88X< %lۇW9+2#umAH/Ri0X8_c%\AȮ>hbuD~( 2Xӌ?wtx`f& ,5X"vEv.͇ta~A>'m)VsAt'CDnGiWka~&D)sH[N NO=WLfq|Q#`F~e5D32-<ăL`1G+ 4pˮK^4q;,6)? _BԇA 49.U)kvN~GP l9 BP#M>CO\=H?5|9#2\w~ >Ra5}>@C!?s iҚV% ϋb# - kFPVo|9pȹ4' rr#nG29-vW1DQNC:0gm#~e`^!#~~%bCQ_:8ˬV:U4lEJ"ß⻚($V EXB ݯyJ"P&d`e 5$VmD [֨z%lPZ*%t! ` >o -5dMZ~{bؼy,e5HB(*%@c98f:`jhb׆ E\ =Pd1a\7 3%0FOgߘ9;:fB>e"zV h;W%d+_ kÓ0u`@Bmogjxl[K-6ZHbdwM?vHB! Uz5febl f8Cۼ*MMb ;](Cו15_V:^z0_y׾6B7YF1 PG24 mif[#XB<19A _Ik}W`EH-x"iK?xCj?S,ȏaX&.oqpds~@:9yM [I~`ι'/wǙ[5C"zۉ ىgLL.T_Dvc [ y$Ӏv;ſDeU'LV>ed to@s`眸;+H5 iQc[H;S0y+mb V{6bmtFXo#7}+pO \6v404nSͽ|w8S 5$0P )PM9gOzs'g=L# ;@bCFQ .[ur_fdWf"U{b!49=@| `|bG]PH ~SD~e~~m~~j ' ) KbqD Q26G/Ɛ9acqDlhqwb/k(E054EfpJ A`Tt.b7esPrFT`'0J@/ ɐJX7QW0i(WoׇAqDLWpim0Bs f@!L )fiP-ha & ) ȷEx! 9 u %j*  PpO64֠P }T 0d$  LpA p Z ` XҐ'gppvc, 60'$ 06-@`" ]a7IWk+@EwshX% @N"@M$a.CEiϱ fP8oWtw[`LJ/p4[`{s `% r(} QȥVuPcHb 0@3DžUcy4;`Q~gwdD+6/6i֐ uHup: {P# BJu b‡" Bz0,I90F`y4P(PI BS``^:\l sp  PAa>zPc:tPgBuŖ;+JX;GQ?j$̦Pj@+]T*@Q9) )aHᐊJh4 @ * @ X EŇ jGq ϰt IHZH੠2)1jm& ahqǬm$c !4/R::ʨjMѓ|xaЧV:#: 3/qA# j@::[j  5ʯ */!5PQ )] *V ݊, !;%k'z}b2V8F{+HKSV @MKh ] (5^/! T00L VX[pQr;t[v;0rz۷~"[{۸;[{۹;[{U g{C kJgK@ MS{]P]kˮ/A * 8``!@ ,Bf@2u]Ҿ z;Zo$ ]0V@+APM0  giJԀ ڠ Ar !Ť|1 _(&洔۪PB%0| U,=Ĥų^dQ}(w KUcX YkcyGH87G;q tlPM|gPZ“. `9@e@&۵PO+^|a^YS $ `X0|ʸ5 PGh|Pɯ%B ; ˄ %=: "z ȯͺeBPlltq"QP @ά$RƠb\Q\0[A1-"k'ax&x s- mk#-@91&٬Q(`](-Pʲ4`&\ ARD"   ~= *j.fP䛹C,  xPɤJ4+[>/VY؃E: ,{ssLp5,_7҆?M7va. J.#((֠+ 0H6 pLvĭoV@P p/"p< `@` ,r|O7 !ml (/s!P/*2 0N Jf}X`u$D` p jRܚF"J -vו`$ .^0#ǒXa>' , @BB8ˬ`A*p&ָ@@gw}uC   +VQ QBǜY3rp4$ { !:.   Ԟ.~`2 : p&!FC+^YZPbԓPm2p}W%S.u ow4 ~O.40 G z/gePjNΌGpB98-qbN5 /Pǰd "|`?e ე %N^0%NHR}@ 4WW_1&@H.> >P>0vآȯ =2ITav>ExoՊݻÎc4B:PÓxw-\ WqŋkLĆ-("<^Tysϡir!SW[ `RRv)IpgMO6xr.kƊ4/_K怀Ki+"M#Z?BV`("~qlP* hZ0}-~@' pX t!"xĘџxoхO:۴&̡),@#`5!j T50>@-#I'bwLp'Np S@tS_L۲HrGD7 Ob:}_n{j`L Or0ib &^X:8ci$x@h|_B'2g<`@uAVx" &z bqu&6}Є  B^ !F. YT#%y%{ B M8VǼu[qG2RlFY>p#Q?d`db$Tu6"Dځ \a:498 1C!>0I.$<X /bH3ɀn"H&@ qz{B~=;u0L'QCg7H *Ҥ  T6 rF,Ҡ  m *d+J}q8 X=+  @ F!I 8 ZaH FԒf(bmN+ P .z(lD;̍Li(>fm" &V{$46ׂB|K*d}}sF<t!b.xf`!Q1wDt1l&ryjʪ^g 8xp(B1upU;Qzml TM[* r:L ~8+G<&(Rp:8 F H%)Yj =r5nɀ!M)I 3}@sA;Zh|x+drkB(?đ mp!ub9iy4*֛([栀zls He,0"5+RyD PH"x]) $͝S @G;&;pP)Ogˢ ֨qlQY76@j`Sɟx8%-PD#@/a!ƈK|`c>=,hx&A*F3 L8y'dZ}b8DnOLeLyc@X81}Xjh>rYd)O ;p>Q` #|x{? :c+#9xy'$ bI^Q%0k"R80ݫobd?&)#`nAzX?č*flUA\lkmsq@&Z<Ya|R9F?x 8$  v  DuRa:ir8&ԡ@Y;H<Aǒ0,4 cRE7폧D@ |V!x<  E(:E:!i +b$AL PNH@>qְ  [ [BX TzE&`#A N \twwy$qԂlixhG=JtH$aȔrHFS ^0Hy2paـ2ȱ_܀K HE`MҀl+؇ژ 3æ̉__Qٚ(Ju \X_HDчqd!,\61L8fda-n4LڠΊ8NdHm}\f# \M_*sMbڬLMM`O+IDy_M|0IqḃNت[^O D LPO!0 P '<"P7eNو\Nߴ>ǀP䰱XщNt Pهyz0Q0 S1S2-S3=S4MS5]S6mS7}S8S9S:S;SS?S@ TATB-TC=TDMTE]TFmTG}THTITJTKTLTsDN MTP U8NUS=UTSRTmUW}6YUGUZUW-U]OU` V< //5_Ta]Vfuӑ(0JVhVkV3p#&jl WqNqPDP7EHoWw}6 <=.rhWxW~2 C8}WWSxm͇iWքXle HV}dXeV}mu!u=YU}mXؘZe]nmYEUw`Si٢ZSuzBT8|ZZM}xLHhEڄZm[LV$x6ku[T~HXwp rY[ÍԑHIS=\ETupu D@}{c\\]-TJ(!91ph|}]8M7N3LM:ukH:z:腗ܒU^SP\E^uӀ! , N+l85dŋ1GQq5H~vŐ2hٳ c͍Q{4ܞ,bBm(;rT z(Մ,~--ˇƀEAѾPͶ}c;gEƟ~N|q tu0 @*Mܣ+s[ W뭻O6l_9+Jj%4&^h8 gKՄ6F>lPœvغ.賣[tGz~>Ǔ&e{no 4$'neafS\jAqfoO~S1sL.H[ (>#0 D4lg= !oE2A U 0ZgphQ#}c4q?jD %) p $ WA \vQ} %YCAhʠjy֜ esh}P"$$F"$gr h&U*&ș9,x%[DZ!CJ#T$c0ҕ(@Y6DY. (JDp,,o]"ͼ()$@;r J?ZE*`v&tC-^|AX p|,rALO;[S!XL.+/_l,2,NWªD g?ֲፋ<Gٚ@](396@@h251P'~Ĉ 첏>ГWݝ\X3b 3簀#˵,X#342nnO>0X.ìcBН:뮇Bp OШO5'|;? !:G<3 Ak!a:Ѝt[o ?Gm*/ dv,;T@d :tlUl$Gg)k7!XCר#+ #beY`L=Xq 9aPgjA4Gw8Kcf{) -iUL;.A)cod+GР lL?ҍ <h$.AL»/,U#dH~DNSU @ kW*cĜ Wd ! !! ҎKhF1Ӈ9N PQ6GjP#8KΘ5 …ق+dю `W^B 89}Xb$%/P' 3yOő d(" lj7<1K]h/?`293j4@ Ae\q0Ge>]UH4}HMC ;Y2{ \!K+&RNDЄ 2lbh)@u2v!FtP[:WE@$?D! 0B$JT\-T`Z0Y~MTKEUDVz(©* d2{c808`_Yf N3e %ړs,?~x H&!ӈAf[UĮ umz%bFH EJ;#vFEpk, n[ڙ"\- \iK0uѻ]C*Q_mBnI*z֚׫,` f0hH)UXp_ i3i!?ЃZ |N0;/0[usA6 Ϥy׺Ӌ,aubd:94Rf:.@ڵ2i0ರ QucD.#tˬr>?xCܬ?8R,ȏa f.^hȖq^$vL?ϒY#w~`ܼf#=YZT\N/ -ЂZu@i[ O\WY/ @TIDw6I ӏ|`Z1sYg ph x6;!j,^z)g96ʄ4mfɷ~&Vw+*U e *Űv4h~4rKNβJH疫Gqg@3& `B U@;𺝾@*/λ;)EBJ"k6a @j_*!zuxC # P| o\>>|-?$Y*  a06|qB6` tyy 8l[5F H- C0o132E8 AQt,o5dgPi@vq SZ}qP!@ z aU^0(4Sʡ[_g}Vp !(zWf_Lp'fiP"!PpRb }uT0ߐ1*PwsXteDB PpO@62֠P OT LZ{TSAr pS At z֐P`,^CawV%  #J\w"t RtIam0bX2h"Ȉ舐7ܳC,^hP-(v; yЅy~T~^(q'm *s%Cl% T`+s^DEb VR+*4 LIv섃e_H2;v*'gHۂ{Uu9"d>i*9:đݰ+W]P hAJp -Y,}{ Ue5 Wz*F9C t4Pp%s O``:\ UЎ y7ݠi0I_yW*ʩXZE<ƹQ~0srieԤR)6QsYpiKEjaءJ0 @ J @ , ~QS2 `qjq Rt j05:PU7(Aze'A0_t48:j/C8jenqsQe!w*& M#>JZz/} tꨏ J5PQ}𧭺5ګZ0_~Y[׬ZS!:* ӺaPQ0f Oڮ@Sp JPipCQx;[;y$A ۰ʰ[{۱ ";$[&{(*,۲.02;4[6{8۪U ;۳? ;kN?@ M3{]0]G˫K۴ON*D *2 ,̰ 12pBr xuJJ A ~]V)gLjgADd @^G[@ Я-Y0[[3A.e@ A_AMJ$w!0|QZkaj`QG;Ga27[K$k9pk! {|sFƻcJM. 2e$ժګs2ZhF&aX@m tf!|$Ws+ e`C,\+,*ZAkMjJM:gC;2 пo:L$1BPg ooL+Po a :p;@P-q@ ^Pa 1"ag|D,p8\tȂ|EvvY@ p WɝG&gq@ȐT`"CQh8$aJPr85P sQ a׬Q n 'D[@ QUoPX% p81` ;zR[a!:YՠJЇdS C]kΊVb!~L|fFZccdޫE`]!ů~d0-g`T41hv3jg l)iakrbqF$؋`ܑ6{֋)rͶX: xA poEq-Y h  y(@g`gZg9ZAO?ww&44ؠIقBXQD>%m;w{g:A#PAҲi%P17NpVؠ4F<`P".+"@<́H5(?1 #{R0H 0@J &鼩كFZP FD/iH >H7⡺#!aWh`]H[ ǀEXH0"ShF2ԡGl:?DH>0:h#iAgt[Z*Z\Z ~8=G<&(Rp:8{i sq3U% 8e0!=ܚC3% GјX r1B?G&цt7ū`CفeA ' %^:~@zPx TlnՉKVZ\SqG4|H,6TsG# @G;  ;@pP@*77S} g^yr6PCrRV,j2"r`2<Ћ|lMqWֱ |6aJ[~& vz\g%T~c] iAS*JOPNIi@1Bi,B5NА^CJG> `b81N_P|!qxʓgk2UX Q=O$$ߠ #xu# p1bAX @E >. rTȤ>!;CcruX&Q fTV*x>bؐcܦ@Cp.c "˸(P u d84rPD~* 2@q*$ ,I*`pP_ |@ O$.pQ YbQ:Z ,p1Bp*S*4gx45l?f5 h(A"pqh05("0u jp _ :uiؗ썻Ҧr c@e9' D wA  %Lh C0@^PqS8@!N3 q, l54+Ïr J9Fu ٍj8 RbRd9I 8BaBݬH-@P(c<S0GAQ O'w`?tBWPJ ƍߒ`Kq{`D@0 LH%qTxP>!bP (pa!†xX&$\->T@D@B%dl:)6iz"у^Hx2h؀2^܀EɊGtBhE`c"uPy:kF__H8zh}u \X_l Їqd(3{43fd'd.hbqԈDTG aahxHqqܯN#GbzG}GjI$C˘j}4ǥj }HX!XyH`čڪJasaDŽh"?3҈8˩ 3ᎬȇJl  ԪˀJ*#QK$dK?هy04XDz˼LL MM,MtNNO3LO\ό8OcOOtѓOOOOOOІ PM4PP}PlPœvغ.賣[tGz~.lM=}7%Deg5ZluP\T<\;0SV O9DžHE+Q2 tO0"`[LPC ;™68\aԹH~ vďD@;s}B .`JgbE4UP'餝E0wD9EP2Fp%}pgA\P)Z~A4aD9dG&Y!4bhpb"hN." sIV5} e-{VAL?`gm<$>5t%4%OVͅ$ { n5 k4;[Hpj3o" BbJ+A\‚EDR3ϺV (,1] l5r@ fW;_V+E.\.00>q`p B;W2{l6lQkmSBY?lA}Dnwh&pjᤷb!ʈ{> LM T 1#? ug7dh)|9,rm>6 c ˫9* F/tgz:9@-> ﵦ,p-L1!aŋQlu@61wH'& pB$iĩ1! T ;H}C;aWJ~$+qs*4$\qIPb~(.8,H;.R^ 1L80@G٠_EG;)]V{ 0q6aAEW\ȑ? g=?qF&L$MlĈ-qI LDlf-.aeGsTlU!4 \gJTLp",! PT'M<ώ%#ܼ?Q?u6!"~%sE)#yErre+k5uZ?^wW) o0XΦTAq94%o2reg`?54z3왯.' V>e`9js ;[z+P3@ɨVy=qhLӲb| _;8vܸ#OyO(@&?`JR Th3,,6W͓{8ý-E1 TP*M/2%ͭt?=˄a`zGvRx>4H=zMi{x;ד@:F9rc)5Ѕ:H5H ?BWo WYB 7 0-c076rg,ɦy^_0-B0o!32E6`GAPt,o5`gPi@avq S`ZFx! ɀG+0x`2XU祂,9e 2p%c"xmwwo'(Fq7`uvb$"Ra % ' YjMrQ9@ uPz G I(  uQh0 `.c $upD5 ]PѱI35$  LpgA 9  W` U%7p@v_}P%r ]01Tq`'r W [!YQf+`>qy}x~=9B U\ rbg\V?5X2`tqH )sCh)gAK% 2(M X#`8X_gHP_8m.22XI Cp C v$U_?2;p1u%*VHlF:)v2yCj@{`P hAJ2yL( o^Rrpwybo joQ=>G5 90~j0-F@ yt7ݠiIVyG*ÉXƹZȩꡛ5<O~0sQr9e4P)Q {0iڕ٘) ] b7 ɡ$q€ 0 3. #3jp Pt b2:Q 7(>JeE JzIڗ^zSTf5:ei:.*m*ct!qʧP4#dJ5 G Wqp⡨کP5| i']yz4ZVs J _fSJ֬ zaQfOޚ@Sp jʡi0CQp89* 銰Q ;[{۱ ";$[&{(*,۲.02;4{U J7;k7kJ?@ M{P]]C{GKQJۯ*A d*/ &̀1oJA2 vF ?ĵ ]VgL*g$ Мz^GԠ~[ -X3@_5?XR^C:Ԭ%s s|Vkyp U_yxU.3|DvQǮ9pk! xK^k^*M. 2e$yRL9d >`FX|g’5 P4ЩX,ŖAKMe*M:gC9̩/3 <!{ZBPPg0+^ o ­a :pϛP-19V l r?\W! p A U`c+g.qQ? T%2!3:TP"C sUtYQU 8P2EPBu*m9tcy_UB sa Ak9lyZEuQ-P Jt{AJ0 2_9n su  p-Ф (?: gl҄PuNU e-2 k.v T1" i LXE'-Pb$hAJWAY P٠(r==}ׇ&|}`b=V ו  wxPG)=/pU׭BE5V w`/p*V53<, Jf!+M 06` :P/Ñ oq@ @Lmحф@P @/":`@at*r^O6!X#h  s(C!@- 4 YN JbX`A~cn w>$y2[q-=$0V\^*B )QE<Lc% zA޸sS@bp}u A Ա +. Q@2LdUy!r2$@{ p*n9}~`0  ×@ +.0VPbpƷ_#=2FGp]-BS@M4``&Mi<RLMaHSĻ)=!@UfY5p R$p`32:Ypm Ȓ6!`k 5L`'%`W[ [,c#HLۃt=pf=C֫l%q0;p 0 D@5Ejo/y>SXkT!޶#A8`/dP X0RtG_Io8K`53 @ x[/%ZUD#/ ,HU6X` w1 16`HY8fԨEat%$)xb>̂ǁUwkx0!%WĘ?LgG䁤Kv8*M;04g_ c΄|%m(H+RPG)zGQlcܰP?wD|@E@c$% 4*w(y (#|6u@jw H`v' h0h(:##7PJs4A=K胍$!ڐ />1"axG TL-2>! <+5L-aNb8*e L#Ϻ{ZM&벛4VrJPlCK%m;ws[f: h b}-{,iq-(p4;p߃ՐtUe] 6\C?A|=al)]{쀺<A]ER= 6EM64ՂBl/be>h7⑺ QJ3]H[ =hXH( bRF3G,:@$H>( :h?"iC0hlۿZ*YYyZ Y~8=G<&(Rp:8{f '3PY!)A- 5<G+7|rA-Üx,TS>rr ɓCj(ALhx82&ģP&7/RBM$-b x6dG(qq1z&A,H^b t3KPZTgSqG4|H,6ДTsG# @G;` A=)p;OiT*]LRC9:{_d!TniT" W%)]`|w)<@jaM; G=|@32zPh7le6}Dהb0hJ%&*(0X(@ijM2 %`BBc  !q  H)~ P`0A? IK=J4\h"' \yuԡ΁n$!ЅX 1cT(%i0[ hWk`GT,"P`E`@kPD`6A/E !6.Ґ/4wmmlC@ˀs=.D! AJ8`b0)Y!pxhf@XB ija2(ОK$ *, "%&0U`TIYޒ<#ԹA[i L'lCH&r(P>!7SM J, wǍ#%/8VkWۻ``H_y'At Oϻv  ŏj`%t c Ѐ|P2\!qP\n#K8` G؝{@\ؘj<(h } ۡz`ȉJ`6s %L[`wpL\:p0*ca<.8bP}x((= %@$+@> KHqThbP (`!ÄxXȄ(<\-@4B4`B'B L:+ܝ4iz ҃3^0x2H؀2`܀)IB JE` uPyBn,G_H_G(zp"~u \X_o Їqd#(3~#3fd'c.p(HJqƍDTG aahx0 qtNH"Gb}GGȈI_Hvd*  HqxMqb_|@k Jqt.lU!y,'4 ˊ0  J!ч"F٪H$oԪ¤ɸJԪ!KJG!44L@هy\'G,M\O,O 4O\O JOOxOOOOP-PP4P]PDЄ`PtP P ̖ Pe ᒌ P=QcEQ=QQ ! , ON+l85dŋ1GQq5H~vŐ2hٳ c͍Q{4ܞ,bBm(;r&Ic"h_~(f>"O?R'>\O::xo Q=ц z+eݧMH6ȯ%5P\ƂkN/s\̄jA 6TYa;l]tW-M}jmcw&Zmf 4$'n'\$O|S1jL.HZ (2?[DPZ4R% A#5T1_mC .  `AADSP0h+ & (X<@W4@SЋW2x]%xNYD XAZd )]x`\W`^s_B{}P!b3xc$ ȂZRU rYU9M:*@Wn<OI@(f \ MbI`C` (JD,,f]"͘()$r@;iY J?ZZE*s&$W.Xp Q#`xo^5ܛ.[.nFk>q`pD) B+-BW?|jA} lGrgԪҭ&@iဗa!{A> ,LM Tɴ1!? cว X3b @#,X34O>^m( U{ $>S:J曗y78? 7x  n-7@N3iP;jx*?@@ PֈWF8խ{P?VD GR+)PmB$1 UE`>@ l2h{+vq*r8 \(!mzY /qy]B" " W`BqLZ cXmaz? J^*p;^q`#d0[ p2WZG[p  BpGۃsl$$ԠF4D.t*yWߣ{#5'ؑp% sM +*k| fpRF1&Dll )IS*D5# Aa%Uԡ `_¼VhMz<|>$1Cd|;1&NINԢFI`̂BH))VN15:6aR$[pg0jN6ez("*(bic| UW@  zZekh(Оkc_ 'QX (s7|%1 F d{ԩ.cT#,`ݴ7"B$.=64,BtQ(p5MmI1j^ fU(bjK()׷U(Tzt j"t*f@! !uj?ҬCJVS^قp&XXV8@H @bAA!A/})s~LaI) /!dHqeP3!P"sԝ+Ws1DkPQd,`"%27h czqen /xrs:gWHeLЭO'pe ?/"Uczc%u@L*Ӟ @ˈZtEGLSrcMC#Wpɧ!%@4&Z`>\Xv`V$9W\ВS0lmb AN[)J(l4X}I$S>0L%+cFpW(IC9(Fl yfL@>Ar\+'6c _T& `~`vR3H=4,V;G?tuX0vP(ZY0шX>YZpDfW ,Y'.qER ,hV!fh ҁUOKo13M1"*<0{'P)R(ZVE9D sxuHXA a[krfQwk0 @ P}C @ 4 N2 8q SYApX" WSxr"%>i}i 0H 9\ ^9xpa|2P2C ə] ySpQ95PQj9)UmỶXb_1לY@ĹֹaЛQ^PJy@Sp ̩9YYxٟ:Zz ڠ:ZzڡU I!:%j!jq)@ Ms{P]]-ʜ1:57@4 ~Zz )&Z")NQ/08d@ ] VP^Hֹ^zkĦ]: C0 0pN`3)"SX@@y! s|%-PB#_A8"RQ PrѫΫ[u^l{\+*qxG32T3ϲrv7+34Cy z_v +M )3` :- fu^A ͗<`ӦO @P /"7`@J&D)r:O3!gW#a C(!0+02 PD uw`&J^ qRL w# 3=c=Ä 66@)5!@=#UvT9A@ E^QF Q + +OT0.Q =ePjF\,K`0${P !@5p| Pn ~|~0. 89 hM`\%@)ܬ7㌽,g [B%j]UyXM  P< 0$}a;Db=P_aP?vq ;p d  P@7iAfilq< (P?#xz 0r Hp+*p6^J)Ef^QbikFo{Q>"Kiyq(͝  / -@ ]g[+.pi_Eov "|U"q*Q|!b^@ݓ>x0+OP^ "׎QnoBQ[OU zt

vN`jؐ" K?@ 2`6Rtǩ( d脛;[d'4n` @ ,f]^WLwCO,0G Iʴn.Cn')) /?r@  - @ p(RI+g.PZ( QSh ZodF)f 'p`F jo;u`,pkQ#f) g6*}/BP{gW1pi=W^찅߽`>簠 $9]Iz!d(qJ?,AJE}S#ʝYdaϟu"Ö~0El zH&ZHq#;rG'DO_4Z,Ƈ w-l oÚo߽K6K+^0 ˧=>qZS܄=މ{޶hnB r:xbNRi!B~VРLE#o3d*BH& @aJϝH4~C0pSСz)džZzA`9T$ŸxY!FemJ'=%rgړ>&BJ"|;$S4D 2DŽ#CiDz}zMr!N + *8+U3" IcL'$ :<@ "-(Ja}r J $xX`;Q TNBL," xFe%H\ʠuHutS+, b .(bFǘB(S~e b@q&h 񡞏b* < G Q &iFj8\kZ4Ʒ;w裓^52tKlR $ޡ): n xqN"U @"#NHXTDd 􁉅 #,e4tp_%dk>zr#OF8M&,9 N1}C0 OpBh s#?, %,^pwġ} V#q_ 0b^A! PCG7?"t8@ 8bahU0 ͂aJl48bp@iJL` .$RQʨaU!HE ( iD Y @hB%*3Q;RAH~  FaW"f)GcA&Ɓ d{q[F_)6(eF,g\UHJӭIjSTt+?~> a4Sā i:$E9\J_tF)Nu4ԫH:a"kSjDVI!H=Tv~qA(۔UPY}2 cYP]+WOF)Hg_+T|"ifWW%nq{\&Wens\FWӥnu{]fWnw]W%oy{^Weo{^Wo}}ok&|'X= `p- s3XDF|bgHq9\V3pȘ;VqXe!'پ! ,* q48"WA#JLH5u3F̡ƏQH Im#/f aŇE>{Q4r}i>j۳_JFI=>HGaN-ˇƀEѾPͶ}[;gEƟ~N| 8t0 @*G1V::7;F6 dbw~41C!rV@%t kKi;:Ḿ!O3Z l&|P6찕]_9?6{W&zmً4$'nCl82ɕ!ZbeZj["kL.H[ (># D4P= !E2A U 0XHpAf|5#}4ؑ?jD %)  dfWA @wtQ}`$YCfʄ7^ՙs`͉|}P)d#:c<^6(W." kIX5}pd-{dVA6?`_k9 $x3.6r%4%DVM|O n|5Ki:bHi3" BbJ+dAN%DR3϶V (,h1]Kk붻5r@ fW;_U&~@.G,./Š>q`pD m B߆;n\"j+`*>W?dXʁ@ٸY#b pE8X2ba1n@h?SxBI.=X_Q=?{?9#2.} >bZ5z}>@C!j9*FQr_a9y:9@-.3ܞ;.ꬋ.P<7LP0д|-O) Ц6m/oGܚCIi+~ChA&,ӈJ[A=P !4 A P|[92F DA1,P[0 2cN] p0*,m@ܰޱ{+=\Ӱ=|R D|/n^ `œߕ0Pp!ⱛ<0!. f`h@BH28L+-h屒E(TX ! ҎKhfO02c'm>q `A?PWQ  W:*b ]uP)k~KS ? j;-=B̐ o0{Z!{jK+ജP+([ BW\]Br I s|~h Uk y;]hvFOؕF1FEUy;8FG$G.ڷI]) g1e#ŧqq0`1N ` jX|_y5 PȲ7 [*}+QTR }XGzt1{i}Oq0BPpe` /ض c 0?@ D  6]`&_ ަ@ ؑ7&+\T-$i2[e$,]ՔM*sA `GsdB#@@au0@ ͱ +zi Q?;ܤ'%sr1${p !07m |a ѝӭ~`/  :&9: _\iMRΏQ%)F5KRQg.y5u0"#Ss 4 n`.40 C[r ]<0LQ74R !)=!pŀA5`,Pp= q &}&rM BpT y ]T ] `= 1+r}MO}C!b=d, Jk$Suwq ;p   B0y(DsY.VZT!P׶#|A8`H?T@W0pB?4 @ pgKDT$0PKocDd F@I^"sp-` z@ ^_)Oy`$0w1 W<D`(bQ eiwM6s}ͮVBQE Z[tITtwi1 d t@'E{QD $1ha^۰P?wD|@E.@?J40;J>*i9q\ΤYsJ)NS9eB~~ ..0p B.Z-t>|`E]0\sG6}yiBPDrޓO}DQ*+^xQL)$Jk C pb!I#MZ\ÖMmw`B{e &AD ZU5/! $Uc.JB?pMa ,`.C@[ɬv"@L@-T3"\c瓭*^>:}b˥(0%ib Z!l1i$x@!T,,tD4PSm"^ !y|@̟opڔq4x"Ɩ&n&Cj(aGƪaRKj{ǝXg6> 3CM-QCDz% 6hgLZ[Ԫ(#[MO' `YF0a_y t'Ơ( }{i oN8Z P۩vE5vm] 7mj(`\mz-`?b11V43nh4l-˄Ɲ>{1 =mǥaƚI H"15j1Q%MSܤ|fR뒬5Zma$~D&ďdP3 ?#@@)x 2HoP؆&cRr~\#WC({\l9.T$a:@`|&>YV?OQ4p:y452A6G(.R?ZX:nJo<@4 )W&(BIh_#`;=1p;e$I]JGyC q{I[|^<6_#hrhIbځ #8N H `G4^c;3<) PR\|7a?&0L0:eB+ 4=@{ "b'"đ'PI/䢏 JC\Y ܩ:i{Q4r}i>j۳_JFI=>HGaN-ˇƀEѾPͶ}[;gEƟ~N| 8t0 @*G1V::7;F6 dbw~41C!rV@%t kKi;:M5O3Z l&|P6찕]_9?6{ L  iHO܈qdUPWkEYhV[o 3<.L0"/Spa8Ak@L@u"X$P8 dWs.<27?|@ F@\yP .Қ(`y<`_@8iav t7M758LH*95hLx_i@pN00 V(;5q`pĨ 䚋n\&k`*P'?R.[_?b}(mlhmR&i'b!\{͸> LM TI&1"?p}EiDҦ7@),9,xjm>6 c \;9*F#Qr_uy蚍:9@-3S;/뱋7.P<7LP@|A.9HHmnЍvkNn5@ !PL#b+mY@7PB$R`+)h]kBfo ,&F`Ȳ@ l2Ȍ~8{+wq*r8 qzb/rDN 1J2!Ke T\Xs Q4h AY@Zx~>nbdpC~a0 P&DݦȒY"\HPz2  mȀ܁i%4ɧ1ٶL80@B٠TLGAh+",T f =>:a;U*Q y ܣ1Ⱥt Ґ sy\A,'HDrD1Ye23чPeꏡʴGmj\xKۘIr0?tE\^ۃJTYTUlk=LY&~ee("ӈ@Ժbܬxe-6U]ЂU$;|wf9+|ьH+Y*[-EⰛս9-mo)SDu ,b.T5#ځu[#QÝS! ̀ CB!Ԁ2A2Zn3 MlTp|q*;Vb~ +Ƕ{B'[ -^1UR --s 1BJ^8AFksYŵqgp^\=4譇=BU4UIsD |j8`9[A"^҉0kfkacmH;pk_Ʉjs G7?p􏐔l)-H׺ƕRGRqJhR\  wVDUULI۞@IQ|B_X5ᒦ0r˭W2hx)p8t0jq+10{+'&69 tm-P 1ޠa[f2Q|`^Gr瞐U>d]oZgw+G,CA,&k!2E*~ AOt ,Dnx4F}EhPTI0GqpO! n &{U0\ ȀRP@j{a7_q{7+'~g!~~WL&fi!! pHb s@uZ'ߐ͑)PwqZw  ugQh0 `"c uw D5 ]PʱD7I"$  Lp_A ( Vpm` T⇀H%+pvZt~6T 6$ "9[m"a Nq%ET4R00avN[!'Hf(7ix+]`O-;@}'KA<$WBw'4 rEBK$v*k^ DhU|HE  WI`Bp0!C']1;pUl Ǎ;ǐ2,7G)tя)ݰ+X\P `J2YK'' !q:fU ao _Q2"G5 ˸0|j,Eh0k P_A6ݠi`I6y)yW_IAu;D|݀F GzfQ՗E)6GZkacYgX )LFEy+ Hq€ 0 "e- 칞  ZDIğ € :갢+ʟ$jI0$*ۅEK9j"?ZA fDI:GxaEzBjzĒ5B9* !@S==Xj)R{ɦС aEpZ`*cZc5PQs@vڨڨnsuM:?0zjJHewZiZi pQdNJ@Sp ʦ0iPCQjX:ʦcIYںڭq:Zz蚮꺮ڮ:Zzگ;[{A HPr@F0P@ Ms{]]k{R} p`5  H8 e%+]`:Ȳ ]@VK_$ʵM̐ orA 'Wlm+0( PbZ]u@C Q s| EUk{Sxawj0PF1FM%2Z>ti_QG\hV˹WU. 6"S?XG ]&N "`jX|_l5 P(0 (˟{$5Q兟 }@Y^:2P꼙  #u ^v/0+lP ‹  a : V1 nL!1e̎ p -DCjm4eY P* <ѳhܻϫ P{q!Z`)p/~T!C+hi7zd 8P@EPQQD Z?ٲ rUB -ka h[bT>ՠJ`8dS |RV n f pt l˛ ߷?9_1JYQuPsCW`T!0ٶ #|a8jT0W0,%xy?4 @ pg4LEV%PmcD.@ l,p2XNp-` {@ _)8fKS`$0w1 WF3 Op&0dM nɠͭH`sS} _;B\|_ҀA0.~L88,/&`o_ʔp|Qȣ]n)z ܰP?wD|@E@?J4q%wN;q\YХ)k[簅7wX@p揔 vKvFi,rKV\w aldޓDТMg9*`իY@cVcYE\l0tXa ACNe LAD&h2h)xXJ(@Q&Z%)<@vj' +鬴c 찫 q\"h2"̰\&c*Ɍ^G)L6L&wtav$[d& l N@P˝Fb7 9ۮ*0BAh(F &SƝ/VЀx" +zaՊ+hjĦZ 'J0m̢CAYh29)F3FFITg!a{H) u $ 4P.Oc6b:|/`7l!g4{$i1Qwz`BheAjdJKL'&ztpoq-Y h@ØNy(UΛuZeDp\ґjbIC Zhᙔ(זdV(e^YOi\:`rI#(\ˆg82ÛNhņnj3-C#4q)\˽ ga6d[j8搭)ip yh q {hc37ʛxDn*a})p ' `C]|I82̠HAᏺ.%`:zC ,): (];0 QW5_Jጦ$BH8#XaDE%, "Jz*}3?tAK[#N?f'&0F) 𧎌Ci(ALCM1B?zG&!F48Z1=0#1ԽA+)%#x8b,B0&b;A a\bbW)D @`;LR]j~c< @K&FJz> EqS!1`bp}Z +Xq 9y , dJCL%;C ̣LxE<`aLtʄŵ$$VPeJ0}B!i,BڇlqFA.r䡖&PH3RGeG3iI,yb>1"CGRd$ P0 7G6Ѡ5Ї$$p՗"*.x-# 0˓A6^ pD _[Уp p=Wѯ,Ҍ {B>jqz⮍`GQV#`>NGc\APC`G;LX5*[@+aX(N0ؠ4[&t dࡏ|" Ap2P.z:t) \ ! HEbiX hNk`MG.O`&Ulѐ<(G4Po @ˉ58/pх6hsԱ|4X1]ϸ_1p2h)LQB|a{ ! _/DVQL C<ˆ̀%@&;3 ! E@pD7fI r0KAA[7 8'bA0 #GO@V"`?8EuD JrVݺA`cn ,H$ߊxG =r"<Œ+,]ހ|Vo}`Ïq+!,p H*\ȰÇ#JHŋ3jȱǏ CIa(S\ɲ˗$OœIS9/uhS&]vyR'FRHgԥq?4J~*/ CiB).j- 9Yw}LԦ*QRQSL2F~+A/Hgz\RT#k[ިZ+Fz #8Z{6lZmژ=Ptf=RcFmlFqϰkG-d{G^L>ݼp A<@!wixE7]uŧ.du;#84Dd6Id2)'UD5;D% C1#X#U'?4aFSJԀ@_alLbфpA͘ D`k4A YBD[. ɵbu9|Ul&r= ūOZANB)VTZT)1ΨEd>︕?O1@hZqSjUB (B># D4u0"`iePhT (@|4A?jD¦(`<`4@#PY.\\s%x¨nD Lڜ YCrl;`|rV%UsW2A4VV5<1+AoVL%smmV߆a;O:^dέ." IAZ5)\U76Ė l?tp0Kaɕ(\66wV. (JD,d,]"X͐! BbJ+$~?A`'0a 6cNǴΚ{r#-S|qp ͫ1}L< r8 D!0 TkDG:0"7=p[\$҈Р p[FRP +? N = a .1*29"F @PO!Pv}tH<N,8C x 1.2)y0܇5z #4(#P_F a ͈* M<⁘a40#-v qa gXì9f"XE 8 f #;T@dkȊ2U )!K#Y)JǕc{4@I3Y`( E=X!99pМw-hR"+=@yɉ>: gQBCR)5LAH]0$`ZMhV qkNwS4xl8Ey`7*: p<1Xؓ+^uW?π!>ҎK,0cpș> P`h6GHjP#pf? UaNxZpe&NG;v D։@mOEM;~\ꀸ3n+( [j01t_+XM,^5ȁ;TXwմt {Ҁ?)b$P@*[bdtL& AcEXB ,5DЄ ly_hjZ`J} 8u ]0 dLcH(8&t! GJro &Frr>-64aZ05aTXB0ǥxXi B(Cj$BH ܂"b4@q7f"  k@0" i$ aApˇPwi2*ά`3:e1+}v?1.jK9Q9g򘿼A\ӬsR@s[K169bL,p)TvF;#w!4wݩ:+Zغ7x](ur*s?H;>$dgԠ@b',/7ۜn'OOx:gAxH>>1MV/vzrp>1;>Ԓ8/o|߿0ȿbg(Nl`B}Y~y,^ S|9Y1&Nt E{GIv'-PNt9wIBSVO uwa;Uw,րUGa~ apBt&+ uwy>&zwrpXϵ0Pp "jχn {ޡ`@{czu@9x$:pBDgE o{5Ci^8`NE4` Q ' ) QTMʑ d;6 8d /bfyM$рMg&o8501>cEwha5 t3l4GtYTX0hvh- 8ei$F* ^eH*ǀYM̷Ѝ!0hkA 3d0b$Afi-! p?c &zt`ߐ́hY~:"BS  uQh0 `a up` .X{5 @r B  e0?YOlc4ч\5hO#]{*$֗;0oQՕ_!8Pgkٖ oSdEIDw0iZ\&kƘqPE6)}X6 C6>"O4 Hif( i( 'f5fGv%EE P ueZ&a&`:uEay>hj%֐ uu%3D{မ, Zq0J=aOr0 ̠k$W,6Zo *ˁq)T4PcKjP/ ^`d:\0EP :V2Di'A;zhNJmz4 /U& hR*'f3 {lrJYaxfB : jP1Y*  @ pQ Wk1 0 A*p װ= A0P 9 ~qU-R(b#aFAe8L2DCU!"A$ JrA؂%es2p䠳mof xmP5|i|{twG봇ฐ+AT0ڶ湰שź { /] e[@SkxQ@ny؛kҵ,'ѵ2蛾껾۾;[{ۿ<\ HPyP UdF`$@ Mp߻E Ca!kv N3lpp 5`05.E<+/'W]0WQ\AF`^,P-< 6`! Xdls0s`q0i[]80:v[$ bڦ/40|j,!ɔlqX'+8bp SOc/PxWd̯`ǜGlPɓb*. =1CQ+QFx4D*YPf5 ,es/Y P4pr1QΕLq`FYg$u3! }`@u@ iЉ!G-|Q,YѮ-;Ơwcq+ Baax9 bAAw A lSy M`1ڰ 1 AVq5Vq;K&p@]E؆T!CЖBa9 ԡ%+8 `+EV K*+e i `@t QmTXR5B #Za WlZPC2TJfL7R 5`+=[:nx*'yd<Pp%-bNh2`௏0 Cᰡ, P,v #%`&`-R6 `ZWZtz-O  1NP7Q13S48t.r  @xP˰2-)F[iI@-z@ Ld } @P5/ {Aۡ"`@ x+5٣p0@&By? 㼂YkGXY@P p0(! # A"P@X]c]ft E%< 1D f`& ;z-DPDNbNb97y`w1?>``g,J,C>  ՍKtÄE@ 6^.}c A@ H` p0` QKeQ-r=${p ; N$z 0L]^ĴcfF{|NDw;HD@0l+Pob}hi$@dLbSS0yO Ue4JuJIcV_Vt~>|A&`8oB&?%=᝿Ar&"Q:jsÊ ^a!. ذA ȋIlьL4*wFBN|pŵQ!}CPЃ}aVR}bjQQ#U+VlhV_,he̙5o'ॹ:PĦ3BpT0ps8'7AF"7o:.?s9gOA`ˈw!uI(DH@HE6`@?Ӏ" <0V !㿋a%FA !~q+gb onhwF8P@~()?( Q0 Clkhb zKi&On{jD'1'd,pm!!REss7x8~Hn41Ab' ~16r6LeXb}/0pDz1R@!J ^9AZ0+ e E hH4ܡӋgL/"}SZ,Q$@]IxHh8!wnc3/Gfw R4A'+5{w$5`JHʝw?wzc}jhp :Sκ\&5wԜ,V뮒2JN*[Ivً}Zi7VHrJ@P.bZG]vi:@(`B};쥣rg uXx_@adśsti h a an(C1id u#@,@; $w0~GNMHY2C:d K?d`  1V%;؜* !aA0 F2:4{H( >DV$X0,n]hȁp x8AA*7 `B.soo a =y*^02haBp!>T;AX'3hlHF`"‡ed?0#)gtKnɘ(7pI6h4@Y6⏳$lBСY$L$jPE(, p] g.R@3Y љ,@cTzd`4'[pE)9(."@.J1 $X&#lL CrN8\0Q\5 fshc%*9'1|x\c>!4a-;pЁG:KEC1Cx4(4k7߸CE1A{ |JB(>Ƒ ml>Pɜbq W ߠzqո|F,baJ HX0`(Eׂ7b[ HibPhd D,!>p;,V\E*8+CHwԏh&]apH;t0i4E0 YE>} *z"hfΣL(JA<a> h3| cWm3x"!s3CK+Pv;>bo|Pza{e;h^6QCXfbxE I&@%(€V (U"HI9 pHAl[ ! L LANeA?D.r\֠*DCpr$.pQ į?; )8U7M) ЅX 1 d t(%h ( sԯ(@}>HE#$\X/`Z?@8_.A VÅ4ˇhk>'{==~69$7( 0~b͠GC`/ r_88 !Z"Є_%k"36A 0@mf{rX8#pT,HXaP +IFi:,Xc xm;() [s4;Az'DBh2OZՠB2C܀]DgX#(D:@aT$Nl; ~P74^k7,^|ȹwdFZ~AoR wnw r!]Jsڇ{|(kY؀2>˺ 0`gsЃ4wm:#1cȂ{:C(}z}x(0#x@42.YŅlEHh wH( W w!Xjf@pUxnGEX֠ILP-\x=0d̘ɚɝ>/EEq<qg(2r܀4"Pv~$-P;gR 8xsa_q!!}8bbj|\X_s2 |ehdHgppzxȇwx䬏yxDcч8a_x}mcsNO4|BOh`@aбԋZ X _eyD AQh!Qgѱ\5:@ 5  :Qҥp&݈шP=1~RlO ]R eج<5QlS{|-2}ئ/ET,mTG}THTITJTKTLTMTNTOTP UQUR-US=UTMUU]UVmUW}UXUYUZU[U\U]U^U_U` VaVb-Vc=^Fe]dmVg}VR]eVjVkTiUkVniVqWr WtMj5WPWw}U /0 veVxW} ի(`0ׁW-Lpz =}XuTmPD@8HHw XXX>R TXmY(Ya oXY SxUi@ٛWMZe HuA9ZvUZ5؍@R{٬ [xmlU؅UY[EW/pZsm[%Ww0Y68[VH~cE=\ɥV(GLPPȝ\ЅVZ8 S]gt%w kE\a@[IsIl]Uu]3][@wP8V [26H٤]_We\_MvT((ڋM`TE \LU` Vճ5ी` 6 v```&-NaPU^VaUaNaVaVRi!b$Nb%Հ;uilive-0.0.4/example/000077500000000000000000000000001360354074300144505ustar00rootroot00000000000000uilive-0.0.4/example/main.go000066400000000000000000000013151360354074300157230ustar00rootroot00000000000000package main import ( "fmt" "time" "github.com/gosuri/uilive" ) func main() { writer := uilive.New() // start listening for updates and render writer.Start() for _, f := range [][]string{{"Foo.zip", "Bar.iso"}, {"Baz.tar.gz", "Qux.img"}} { for i := 0; i <= 50; i++ { _, _ = fmt.Fprintf(writer, "Downloading %s.. (%d/%d) GB\n", f[0], i, 50) _, _ = fmt.Fprintf(writer.Newline(), "Downloading %s.. (%d/%d) GB\n", f[1], i, 50) time.Sleep(time.Millisecond * 25) } _, _ = fmt.Fprintf(writer.Bypass(), "Downloaded %s\n", f[0]) _, _ = fmt.Fprintf(writer.Bypass(), "Downloaded %s\n", f[1]) } _, _ = fmt.Fprintln(writer, "Finished: Downloaded 150GB") writer.Stop() // flush and stop rendering } uilive-0.0.4/example_test.go000066400000000000000000000006231360354074300160370ustar00rootroot00000000000000package uilive_test import ( "fmt" "time" "github.com/gosuri/uilive" ) func Example() { writer := uilive.New() // start listening to updates and render writer.Start() for i := 0; i <= 100; i++ { fmt.Fprintf(writer, "Downloading.. (%d/%d) GB\n", i, 100) time.Sleep(time.Millisecond * 5) } fmt.Fprintln(writer, "Finished: Downloaded 100GB") writer.Stop() // flush and stop rendering } uilive-0.0.4/go.mod000066400000000000000000000000511360354074300141170ustar00rootroot00000000000000module github.com/gosuri/uilive go 1.10 uilive-0.0.4/terminal_size.go000066400000000000000000000011361360354074300162120ustar00rootroot00000000000000// +build !windows package uilive import ( "os" "runtime" "syscall" "unsafe" ) type windowSize struct { rows uint16 cols uint16 } var out *os.File var err error var sz windowSize func getTermSize() (int, int) { if runtime.GOOS == "openbsd" { out, err = os.OpenFile("/dev/tty", os.O_RDWR, 0) if err != nil { return 0, 0 } } else { out, err = os.OpenFile("/dev/tty", os.O_WRONLY, 0) if err != nil { return 0, 0 } } _, _, _ = syscall.Syscall(syscall.SYS_IOCTL, out.Fd(), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&sz))) return int(sz.cols), int(sz.rows) } uilive-0.0.4/terminal_size_windows.go000066400000000000000000000006731360354074300177710ustar00rootroot00000000000000// +build windows package uilive import ( "os" "unsafe" ) func getTermSize() (int, int) { out, err := os.Open("CONOUT$") if err != nil { return 0, 0 } defer out.Close() var csbi consoleScreenBufferInfo ret, _, _ := procGetConsoleScreenBufferInfo.Call(out.Fd(), uintptr(unsafe.Pointer(&csbi))) if ret == 0 { return 0, 0 } return int(csbi.window.right - csbi.window.left + 1), int(csbi.window.bottom - csbi.window.top + 1) } uilive-0.0.4/writer.go000066400000000000000000000074551360354074300146730ustar00rootroot00000000000000package uilive import ( "bytes" "errors" "io" "os" "sync" "time" ) // ESC is the ASCII code for escape character const ESC = 27 // RefreshInterval is the default refresh interval to update the ui var RefreshInterval = time.Millisecond var overFlowHandled bool var termWidth int // Out is the default output writer for the Writer var Out = io.Writer(os.Stdout) // ErrClosedPipe is the error returned when trying to writer is not listening var ErrClosedPipe = errors.New("uilive: read/write on closed pipe") // FdWriter is a writer with a file descriptor. type FdWriter interface { io.Writer Fd() uintptr } // Writer is a buffered the writer that updates the terminal. The contents of writer will be flushed on a timed interval or when Flush is called. type Writer struct { // Out is the writer to write to Out io.Writer // RefreshInterval is the time the UI sould refresh RefreshInterval time.Duration ticker *time.Ticker tdone chan bool buf bytes.Buffer mtx *sync.Mutex lineCount int } type bypass struct { writer *Writer } type newline struct { writer *Writer } // New returns a new Writer with defaults func New() *Writer { termWidth, _ = getTermSize() if termWidth != 0 { overFlowHandled = true } return &Writer{ Out: Out, RefreshInterval: RefreshInterval, mtx: &sync.Mutex{}, } } // Flush writes to the out and resets the buffer. It should be called after the last call to Write to ensure that any data buffered in the Writer is written to output. // Any incomplete escape sequence at the end is considered complete for formatting purposes. // An error is returned if the contents of the buffer cannot be written to the underlying output stream func (w *Writer) Flush() error { w.mtx.Lock() defer w.mtx.Unlock() // do nothing if buffer is empty if len(w.buf.Bytes()) == 0 { return nil } w.clearLines() lines := 0 var currentLine bytes.Buffer for _, b := range w.buf.Bytes() { if b == '\n' { lines++ currentLine.Reset() } else { currentLine.Write([]byte{b}) if overFlowHandled && currentLine.Len() > termWidth { lines++ currentLine.Reset() } } } w.lineCount = lines _, err := w.Out.Write(w.buf.Bytes()) w.buf.Reset() return err } // Start starts the listener in a non-blocking manner func (w *Writer) Start() { if w.ticker == nil { w.ticker = time.NewTicker(w.RefreshInterval) w.tdone = make(chan bool) } go w.Listen() } // Stop stops the listener that updates the terminal func (w *Writer) Stop() { w.Flush() w.tdone <- true <-w.tdone } // Listen listens for updates to the writer's buffer and flushes to the out provided. It blocks the runtime. func (w *Writer) Listen() { for { select { case <-w.ticker.C: if w.ticker != nil { _ = w.Flush() } case <-w.tdone: w.mtx.Lock() w.ticker.Stop() w.ticker = nil w.mtx.Unlock() close(w.tdone) return } } } // Write save the contents of buf to the writer b. The only errors returned are ones encountered while writing to the underlying buffer. func (w *Writer) Write(buf []byte) (n int, err error) { w.mtx.Lock() defer w.mtx.Unlock() return w.buf.Write(buf) } // Bypass creates an io.Writer which allows non-buffered output to be written to the underlying output func (w *Writer) Bypass() io.Writer { return &bypass{writer: w} } func (b *bypass) Write(p []byte) (int, error) { b.writer.mtx.Lock() defer b.writer.mtx.Unlock() b.writer.clearLines() b.writer.lineCount = 0 return b.writer.Out.Write(p) } // Newline creates an io.Writer which allows buffered output to be written to the underlying output. This enable writing // to multiple lines at once. func (w *Writer) Newline() io.Writer { return &newline{writer: w} } func (n *newline) Write(p []byte) (int, error) { n.writer.mtx.Lock() defer n.writer.mtx.Unlock() return n.writer.buf.Write(p) }uilive-0.0.4/writer_posix.go000066400000000000000000000004001360354074300160740ustar00rootroot00000000000000// +build !windows package uilive import ( "fmt" "strings" ) // clear the line and move the cursor up var clear = fmt.Sprintf("%c[%dA%c[2K", ESC, 1, ESC) func (w *Writer) clearLines() { _, _ = fmt.Fprint(w.Out, strings.Repeat(clear, w.lineCount)) } uilive-0.0.4/writer_test.go000066400000000000000000000007441360354074300157240ustar00rootroot00000000000000package uilive import ( "bytes" "fmt" "testing" ) func TestWriter(t *testing.T) { w := New() b := &bytes.Buffer{} w.Out = b w.Start() for i := 0; i < 2; i++ { _, _ = fmt.Fprintln(w, "foo") } w.Stop() _, _ = fmt.Fprintln(b, "bar") want := "foo\nfoo\nbar\n" if b.String() != want { t.Fatalf("want %q, got %q", want, b.String()) } } func TestStartCalledTwice(t *testing.T) { w := New() b := &bytes.Buffer{} w.Out = b w.Start() w.Stop() w.Start() w.Stop() } uilive-0.0.4/writer_windows.go000066400000000000000000000032471360354074300164400ustar00rootroot00000000000000// +build windows package uilive import ( "fmt" "strings" "syscall" "unsafe" "github.com/mattn/go-isatty" ) var kernel32 = syscall.NewLazyDLL("kernel32.dll") var ( procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition") procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW") ) // clear the line and move the cursor up var clear = fmt.Sprintf("%c[%dA%c[2K\r", ESC, 0, ESC) type short int16 type dword uint32 type word uint16 type coord struct { x short y short } type smallRect struct { left short top short right short bottom short } type consoleScreenBufferInfo struct { size coord cursorPosition coord attributes word window smallRect maximumWindowSize coord } func (w *Writer) clearLines() { f, ok := w.Out.(FdWriter) if ok && !isatty.IsTerminal(f.Fd()) { ok = false } if !ok { _, _ = fmt.Fprint(w.Out, strings.Repeat(clear, w.lineCount)) return } fd := f.Fd() var csbi consoleScreenBufferInfo _, _, _ = procGetConsoleScreenBufferInfo.Call(fd, uintptr(unsafe.Pointer(&csbi))) for i := 0; i < w.lineCount; i++ { // move the cursor up csbi.cursorPosition.y-- _, _, _ = procSetConsoleCursorPosition.Call(fd, uintptr(*(*int32)(unsafe.Pointer(&csbi.cursorPosition)))) // clear the line cursor := coord{ x: csbi.window.left, y: csbi.window.top + csbi.cursorPosition.y, } var count, w dword count = dword(csbi.size.x) _, _, _ = procFillConsoleOutputCharacter.Call(fd, uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&w))) } }