package mouse; # $Id$ use diagnostics; use strict; #-###################################################################################### #- misc imports #-###################################################################################### use common qw(:common :system :functional :file); use modules; use detect_devices; use run_program; use devices; use commands; use modules; use log; my @mouses_fields = qw(nbuttons MOUSETYPE XMOUSETYPE name); my %mice = arch() =~ /^sparc/ ? ( 'sunmouse' => [ [ 'sunmouse' ], [ [ 3, 'sun', 'sun', __("Sun - Mouse") ] ]] ) : ( 'PS/2' => [ [ 'psaux' ], [ [ 2, 'ps/2', 'PS/2', __("Standard") ], [ 5, 'ps/2', 'MouseManPlusPS/2', __("Logitech MouseMan+") ], [ 5, 'imps2', 'IMPS/2', __("Generic PS2 Wheel Mouse") ], [ 5, 'ps/2', 'GlidePointPS/2', __("GlidePoint") ], '', [ 5, 'ps/2', 'ThinkingMousePS/2', __("Kensington Thinking Mouse") ], [ 5, 'netmouse', 'NetMousePS/2', __("Genius NetMouse") ], [ 5, 'netmouse', 'NetScrollPS/2', __("Genius NetScroll") ], ]], 'USB' => [ [ 'usbmouse' ], [ [ 2, 'ps/2', 'PS/2', __("Generic") ], [ 5, 'ps/2', 'IMPS/2', __("Wheel") ], ]], __("serial") => [ [ map { "ttyS$_" } 0..3 ], [ [ 2, 'Microsoft', 'Microsoft', __("Generic 2 Button Mouse") ], [ 3, 'Microsoft', 'Microsoft', __("Generic 3 Button Mouse") ], [ 5, 'ms3', 'IntelliMouse', __("Microsoft IntelliMouse") ], [ 3, 'MouseMan', 'MouseMan', __("Logitech MouseMan") ], [ 2, 'MouseSystems', 'MouseSystems', __("Mouse Systems") ], '', [ 3, 'logim', 'MouseMan', __("Logitech CC Series") ], [ 5, 'pnp', 'IntelliMouse', __("Logitech MouseMan+/FirstMouse+") ], [ 5, 'ms3', 'IntelliMouse', __("Genius NetMouse") ], [ 2, 'MMSeries', 'MMSeries', __("MM Series") ], [ 2, 'MMHitTab', 'MMHittab', __("MM HitTablet") ], [ 3, 'Logitech', 'Logitech', __("Logitech Mouse (serial, old C7 type)") ], [ 3, 'Microsoft', 'ThinkingMouse', __("Kensington Thinking Mouse") ], ]], __("busmouse") => [ [ arch() eq 'ppc' ? 'adbmouse' : ('atibm', 'inportbm', 'logibm') ], [ [ 2, 'Busmouse', 'BusMouse', __("2 buttons") ], [ 3, 'Busmouse', 'BusMouse', __("3 buttons") ], ]], __("none") => [ [ 'none' ], [ [ 0, 'none', 'Microsoft', __("No mouse") ], ]], ); sub xmouse2xId { #- xmousetypes must be sorted as found in /usr/include/X11/extensions/xf86misc.h #- so that first mean "0", etc my @xmousetypes = ( "Microsoft", "MouseSystems", "MMSeries", "Logitech", "BusMouse", #MouseMan, "Logitech", "PS/2", "MMHittab", "GlidePoint", "IntelliMouse", "ThinkingMouse", "IMPS/2", "ThinkingMousePS/2", "MouseManPlusPS/2", "GlidePointPS/2", "NetMousePS/2", "NetScrollPS/2", "SysMouse", "Auto", "AceCad", "WSMouse", "USB", ); my ($id) = @_; $id = 'BusMouse' if $id eq 'MouseMan'; my $i; map_index { $_ eq $id and $i = $::i } @xmousetypes; $i; } sub raw2mouse { my ($type, $raw) = @_; $raw or return; my %l; @l{@mouses_fields} = @$raw; +{ %l, type => $type }; } sub fullnames { map_each { my $type = $::a; grep {$_} map { if ($_) { my $l = raw2mouse($type, $_); "$type|$l->{name}"; } else { $type .= "|[" . _("Other") . "]"; ''; } } @{$::b->[1]} } %mice; } sub fullname2mouse { my ($fname, %opts) = @_; my ($type, @l) = split '\|', $fname; my ($name) = pop @l; $opts{device} ||= $mice{$type}[0][0]; foreach (@{$mice{$type}[1]}) { my $l = raw2mouse($type, $_); $name eq $l->{name} and return { %$l, %opts }; } die "$fname not found ($type, $name)"; } sub serial_ports() { map { "ttyS$_" } 0..7 } sub serial_port2text { $_[0] =~ /ttyS (\d+)/x; "$_[0] / COM" . ($1 + 1); } sub read { my ($prefix) = @_; my %mouse = getVarsFromSh "$prefix/etc/sysconfig/mouse"; eval { add2hash_(\%mouse, fullname2mouse($mouse{FULLNAME})) }; $mouse{device} = readlink "$prefix/dev/mouse" or log::l("reading $prefix/dev/mouse symlink failed"); $mouse{nbuttons} = $mouse{XEMU3} eq "yes" ? 2 : $mouse{WHEEL} eq "yes" ? 5 : 3; \%mouse; } sub write { my ($prefix, $mouse) = @_; local $mouse->{FULLNAME} = qq("$mouse->{type}|$mouse->{name}"); local $mouse->{XEMU3} = bool2yesno($mouse->{nbuttons} < 3); local $mouse->{WHEEL} = bool2yesno($mouse->{nbuttons} > 3); setVarsInSh("$prefix/etc/sysconfig/mouse", $mouse, qw(MOUSETYPE XMOUSETYPE FULLNAME XEMU3 WHEEL device)); symlinkf $mouse->{device}, "$prefix/dev/mouse" or log::l("creating $prefix/dev/mouse symlink failed"); } sub mouseconfig { my ($t, $mouse, $wacom); #- Whouah! probing all devices from ttyS0 to ttyS3 once a time! detect_devices::probeSerialDevices(); #- check new probing methods keep everything used here intact! foreach (0..3) { $t = detect_devices::probeSerial("/dev/ttyS$_"); if ($t->{CLASS} eq 'MOUSE') { $t->{MFG} ||= $t->{MANUFACTURER}; $mouse = fullname2mouse("serial|Microsoft IntelliMouse") if $t->{MFG} eq 'MSH' && $t->{MODEL} eq '0001'; $mouse = fullname2mouse("serial|Logitech MouseMan") if $t->{MFG} eq 'LGI' && $t->{MODEL} =~ /^80/; $mouse = fullname2mouse("serial|Genius NetMouse") if $t->{MFG} eq 'KYE' && $t->{MODEL} eq '0003'; $mouse ||= fullname2mouse("serial|Generic 2 Button Mouse"); #- generic by default. $mouse->{device} = "ttyS$_"; last; } elsif ($t->{CLASS} eq "PEN" || $t->{MANUFACTURER} eq "WAC") { $wacom = "ttyS$_"; } } $mouse, $wacom; } sub detect() { if (arch() =~ /^sparc/) { return fullname2mouse("sunmouse|Sun - Mouse"); } if (arch() eq "ppc") { return fullname2mouse(detect_devices::hasMousePS2("usbmouse") ? "USB|Generic" : # No need to search for an ADB mouse. If I did, the PPC kernel would # find one whether or not I had one installed! So.. default to it. "busmouse|2 buttons"); } if ($::isStandalone) { detect_devices::hasMousePS2("psaux") and return fullname2mouse("PS/2|Standard", unsafe => 1); } #- probe serial device to make sure a wacom has been detected. eval { commands::modprobe("serial") }; my ($r, $wacom) = mouseconfig(); return ($r, $wacom) if $r; if (!$::isStandalone) { detect_devices::hasMousePS2("psaux") and return fullname2mouse("PS/2|Standard", unsafe => 1), $wacom; } if (modules::get_alias("usb-interface") && detect_devices::hasUsbMouse()) { eval { modules::load("usbmouse"); modules::load("mousedev"); }; !$@ && detect_devices::tryOpen("usbmouse") and return fullname2mouse("USB|Generic"), $wacom; eval { modules::unload("mousedev"); modules::unload("usbmouse"); } } #- in case only a wacom has been found, assume an inexistant mouse (necessary). $wacom and return { CLASS => 'MOUSE', nbuttons => 2, device => "nothing", MOUSETYPE => "Microsoft", XMOUSETYPE => "Microsoft"}, $wacom; #- defaults to generic serial mouse on ttyS0. #- Oops? using return let return a hash ref, if not using it, it return a list directly :-) return fullname2mouse("serial|Generic 2 Button Mouse", unsafe => 1); } #- write_conf : write the mouse infos into the Xconfig files. #- input : #- $mouse : the hashtable containing the informations #- $mouse input #- $mouse->{nbuttons} : number of buttons : integer #- $mouse->{device} : device of the mouse : string : ex 'psaux' #- $mouse->{XMOUSETYPE} : type of the mouse for gpm : string : ex 'PS/2' #- $mouse->{type} : type (generic ?) of the mouse : string : ex 'PS/2' #- $mouse->{name} : name of the mouse : string : ex 'Standard' #- $mouse->{MOUSETYPE} : type of the mouse : string : ex "ps/2" #- $mouse->{XEMU3} : emulate 3rd button : string : 'yes' or 'no' sub write_conf { my ($mouse) = @_; mouse::write('', $mouse); modules::write_conf('') if $mouse->{device} eq "usbmouse" && !$::testing; my $f = "/etc/X11/XF86Config"; my $g = "/etc/X11/XF86Config-4"; my @zaxis = ( $mouse->{nbuttons} > 3 ? [ "ZAxisMapping", "4 5" ] : (), $mouse->{nbuttons} > 5 ? [ "ZAxisMapping", "6 7" ] : (), $mouse->{nbuttons} < 3 ? ([ "Emulate3Buttons" ], [ "Emulate3Timeout", "50" ]) : () ); my $zaxis = join('', map { qq(\n $_->[0]) . ($_->[1] && qq( $_->[1])) } @zaxis); substInFile { if (/^Section\s+"Pointer"/ .. /^EndSection/) { $_ = '' if /(ZAxisMapping|Emulate3)/; #- remove existing line s|^(\s*Protocol\s+).*|$1"$mouse->{XMOUSETYPE}"|; s|^(\s*Device\s+).*|$1"/dev/mouse"$zaxis|; } } $f if -e $f && !$::testing; $zaxis = join('', map { qq(\n Option "$_->[0]") . ($_->[1] && qq( "$_->[1]")) } @zaxis); substInFile { if (/Identifier\s+"Mouse1"/ .. /^EndSection/) { $_ = '' if /(ZAxisMapping|Emulate3)/; #- remove existing line s|^(\s*Option\s+"Protocol"\s+).*|$1"$mouse->{XMOUSETYPE}"|; s|^(\s*Option\s+"Device"\s+).*|$1"/dev/mouse"$zaxis|; } } $g if -e $g && !$::testing; } f [C ܍RȄދ"U|Eo9E@70ꘄzCjh6&?h(TG4lvJ?uL/ =Z Tr@S>Qc/J<= %"1 `]}8 r[[ʚ(*' [T8GDd9INɁ('&3>M~cn3dafbGĶ*AYAq'~9P۪*mmzCp ԄOjZQ ^\\޴Pcs '<7>39SN>~~MNh{! *C!;I hHÕ0[4psx"yTDgQR`s[B [⟍>_D\d1!{snhNur7k_3XKCO?&z^q?ɱTLT1e9#╸|PMEoqΓdhiSf^feEC g | 1aᇑag嬉\G 4Ƒ0k=֩% 3V)xs+)#(%G⊕pt5zweTcy`LZ.CqTX9i-=^rE2Q΁ Rw-/M)k [ٙl:ܖk:R8aFM%IR )12oZx[=u~P2?p*4]OO5!YoH~/[7˞1ckL؅򝘫+ie65u@wuk6m/͇GTQFiLUZiAoD9uDC]X>pNxԠD4ĭaڔs~y~7ΑC{-NªJ,/iSL $\j< X,KurXKAMP~#מMwDxcK1ڔF"r{OR^<6s oZ۞0&-@Ҹ1WFȣ@3f<9payr5_7Kٺ^]Lopࣂ}8R߆զ$4Akx3=b1-~ܲ'GX=s.f%NsH.ч')QXTPbQe[o/+ϠϿߣ1ZKb~p4s*ɸ))r*ՠ|r./9.G;YYv@4=*뉙<= >ÇF$]8]ǗSWDdϘzo x.i`eZ`ד0ix|$G{3IGb$ێo^K=¦+ق<׍8M#rHn q# V #B܂$!g2=WnK rOn51zmϕ {@͗Xf1_?CnDs}'^2(@vB?[:-[Ѕ~;Q{:ʩ.@TP%\AZ|Ԩ.W J4sN֘ï.פ:SP5"Y? ߤNsg)gq5}wI L j@#ʢTݭoZ8LLо~wn#+f ٷF HЏQRKaxg$~c}) QQg06K:[VC|4Py9(3Slu:X@`$L*e(`QL+2<1]u9!Ua&^R J cuTF̌!L{*LkwֈJ4ѝ'b}J쳚'-dYC0P^,Գ4 y7 xcb\DfV^LI&ɉwGxrR.*T1 "Hz(5uUQ?99NX4ж4R^,>@p'Lapp.hCAf&Qkx\s}~"/mu%oP# ~̂e+4jhPEB $HѨ۸\ǕluR{[ven: w3`(g`he*pL~Ӫ}8~&@^M:j7c\Ggk`u lj,m{Z;vd?c^V;1`16 uo!qfn_#<@vkЪٶUrD8n8Mja'S]^uv΁s|_ET uK_M`@˯/ϱIGqU',9i\Bٹn/W*T~˰uIڙg)Ccɠ$NV*8^njy8:N[+ P*+աfGU¤NX0'KAZcČ'e2)(k!k,uڕw5j;QA= FtӱA 6Z>Xl2]uPS[BmE߉j2x֠'5cheܤѡx"F+7_{%91πBm?21 fSfwȉQ5oj JdvhʲQRFJ,WU!Gs f+ݹX|q+r`0n6X0#8=}e] 3Yj ѕ/uEtʇ&B]ξ,:m.GU-QӞ al~[U'/V, _W  f}l3\,|:iUwX[P LekWj$Ji(g|^C^XtyWw#" HRq_-LOu}W4'MVPvY(X4;~0}x$W|8}էnnx%)CqayC%A.cQC-IV 7s}ZE"пh@Y744%قט89w|M(:*LDRELr^*GP='}*lB?,|OVgR]+moK."7PoBee{t5%7 ['ܮ'~lX{4 x3'.#[5Y`E.HYl= =Ua!3:ӆ&y,MQz-k';]P712.4-^غ峺$WoȬcejl)yÿ}@_[`Ԭ㑦Kn ׊@ҨBY=4}kq;E$K*F+ߌ*=/3XȆ 90J %{82ho`]AYmfofm7i洤8F?1rw`u `oXKqvdY'VK ogst8MDam(ܪ} ?_ESlag5|kp`Ru -6>11FB " aۥV:{$8J-(J1}9ҹ~XRi.+1&E$vkI)SV:b]zuh)2ĜON3 YGf`[*-|Z`Ήhۇ8k9\edC;r҂rl P˚e<%rK.&"eVRTȳ4bЉ B뵨QAfQNq0o]׆#-XYĔ(qi#@l"=4n;F {3tZ MK>R=h,v$xsQW?2z&Ol;c03S<ۥGsa WU'v涜c@Cf,TLK"/7Zi ,]b⍍zoޤg }ɡ܏[ob)7~I=,n#hm. *&Erխ2C+W"c4Opsb);_a{J>".''!dOrCvJe(flGrNF0T A4Ͻ*x@7ׇ}J4YXV{a=`@t]Q,t[4Dc<>x)}r|GWUȤwz߁+U1"aЪ =PGWѩa}{*{^bڷդک I-:9M}s[.Xwޭ:mY|򃥠[}YOf$7ϭp܂9H 2y/sBc[K?%hKfOںxZ =Q++?Lϒ;>k'S+@by4 rй;1L^qMl[F.ƙ!rZ=\š=g?wIE]AE% N:/r`b .ɃayjtУ(@]kDsAuqgkI+ZgjKPSݸϪ#|S%mP+EnQݔ)GO/`&ʧ} V'n ?>.r*)#. vYI-@q2"O 2b~ͦ&[5Ǯ#C06A=_ ϥ< U C (;'yS`~78${c(ppр?ԎDvFT !3Lmm0znFGHԑd<:b9OwA<4` G}bŵMqOg2 ~Ŵ\UÕX-H#k:t(q)ӌ-&jWzݗ֝i a qhH[VēsXpDϼ7_!kuN8kZѣ/젧僠.uVBY|ȶ(:P9̉mfȪ& [@1>;..OMh4sF)=Q~5mtC4>MFНj`r TR3f~ÄQ;D$7fO,Ia\hm+ió)W+ZB$soYM.rb0 HF"@b ,캀0_$ępSa}L- +q 3c4ecRX K67O07)ی!G;(WmdcɮRn7Y+Sொ޶nGUbY}%t/@G%֖e'dWtLH#7hy^6Xs|sÖz_I݊qHB[ ׂɲ LwrlU, (d3#rH,J1˜J"Y%$v܌{A P6'\>0< JL^[Gꖶ{RFa9:DU yh ;`= F[|Y/Xr*[:R4+Cs7~F(zaMtG1n }pۇf88n -C(V$ ^Pl$i5;LJ' ٺaV3GWs͇Wю2km*ISK+so{/dsd*Dyr˓+9Brw 6˺q# ~^pS1q'ܐ.>:0Jy06 aK&c}wc6S|/|[N$/K$NDB cy;{_P"Q# ҦFoA{OGju\8?JE)FTjOq"Y*(OkDkM0Wa0\v;PE=/> hI"m"]v1gu YC."@bz~5ZRXQIo]24΁.PJV1nƳ~0=Ta$* [fU%}z>02!’BR]f(QJ;\|vRcX#sA(K d8B${D1e+*JX3{-_Aݦ&ZNGգ>0=δzXԆY4cGPʮFW3L7sBu}!)6p0skfwSO;3^,OV8nœB^ƻ(S7)7d"le"ym{a 2N$gRApJNq]0ա4.IQ{o5eZ1|Ǝy+ahED)pΒ;#kb3$~(&T kԘ ax9"⧁xăGCsoũaeƯ9- _$T!?؆[ā%W~rȍƠ"0;Oj'fFr*i(.x̏%3NJLo:^KlhgtagWl쵇҇Pg_XR ח@{b`)ǼVEA+-/`zۈL`xh|K] lp"}!0šJ=l%? Yx=% bڬ ,d!foCiIvD߄h!El,RXkjN^[1I8 3a1Tw 7S9&ovܘL^k{3Am 3R:u88vTT Bu *KD5B!WNf6^i ?peʄAﲴ֑t☪Voy۫ԭ~jq\F1gc6!DЇ,+e)pܲY ]WeFcW-X\؄`x)kXCq~7.㷲Bf0 CW|~]ƧH[b^{Hqk݊/"9\yk?NID>"vnXs7ijNHs^N6 ;D0tu0޻t x =m&YTqG4*+ZSwGǯw w ^KWnwlMʍO@m޼8ŧnC0kAVx9`$t'A^l~Xt%uաOD:N|>ry/C"p(+}bn!#.m%yyDؒ8XEQ2K]<[й% *( YRh'7s;Kl'ǁ-jz`0F 'R@-V *gx5إٿ"faz^ /UG {|CG}~!Ax߫G}_~m8xnLR,Tc2P9:|{\Wy$hF"Gwk>^aYȼ >G6(yG6)Fs~Bs o(]7B8!.Sbx* ʣ2{TOWï([ @fw!loNʿ̭iZivq7|dz]^XaozcLSNTߵ= fޙ)WpNPKтscXRJ<{q-[}H:5/!ֈT#wƟnzP[ߧk埒X@rtiB&AZq,VfȚ,{/r71J0} J5āiƠy'WQ 6`d-"$KA6>yRk?Ɣ 1ZR_LCns]aвH_M%'h0'}Qۿ+"kDj!#(@D^nUABqrF VCiA),T?eE|5ceTd#A{ĩ3LPl4zP2jm'Ea:s6UٚVa 3oH4E,)>hW*^G$g'zCAb'$?k֝By0W& ysZ΢ 0b $D[X 2/ C6l^9#X e;N U0#;횀}i{4%́}u6Eu߈d[B-ȫOb?/N=5:VwB+AXy_쩶׫"M|Kje75HWJIxKo͍QmwlnF!Q9bl7v7ya&bV&z#|dteg<Ԁ"‹|25?tRSF-Aqhoχt]SoIloXOpN>uAo_zZnCkTfcrϙ~4k(Z7=caqD%7",g8 P|U-ľ8̵ˈs Hu1&Y&]E+#z-q>99@5&TŠnXN}c#_nWZjzV$OZgGv( _d8׼p'@s)b,N{TtD{ tM͹zWA#|zo *4jVW(r<5lK(T|ī}څŒtSYAx'n`k=_XH\Jc8N@qp wg+쁠,PqT6,2rN7j'쑭ԗ'>-T]GbA-YR:aOrjCھ  H\ /85J<`H UϨp{ܗd-G2f~p;>L ew-7ύ֮9l VKG};jtkLGН }xp7BcF(KgOQƕf0ͩ_ܴ ,Q\ LvdпŰT(폴k@`c*jXݐ>u42A1$cvc}xr4a'/+;e5>8>|'ʑ-RiY'QOs"Q:f})5OēdA e?@!_JzjKA(ҐW-#h7s3,y2;K/G|͵+a岹h}S bH +H @)7?Cǫ(c?\hj(#D|%0qFpJS5+q+B㭛rñtY[1ym_2)RkI>jZ@|PD2 < ӵBâ&0\A&G~OeUMIp6^2X$}> փGѬ׹N7 @DP*;3ܐhkK@ZȐnTam4) _6ݣ {H@'V]xd/] I9fX*ˢZ'5Suc,;Enޙ:/3\ n8~Mҥ>.ˍ  ,СUZk˴0(=n`\ (<% @pꎘzy~}Lw9?[r1 .OlX߇ ڍtlTmJJk03%|+"29B FȍO=7Ռ߿-K4m/>f^__r܋?1=h:N˜jԖm}yoˆE&V;莨 To{?$JDc 'Z4)÷g4'Zǘfxa0Ik]~&Wz 6# oJքFʓB+l*=zw8Ă%oiL |gC^ɒU;*5'zٞ;!.KSd smM `SM;}uKCL )/QXumaDTpx7#!KO#1B U_LOo K2F&m̸O?9HtWLF # 4춾|d$x(u?NP5/EIK/}*9ӲDr`@`e|C3 onupF^[S$ Mmmq:EةiI 2}.>*ȸF~+im N%uŎ;=!F $)7)ϩgcx,v:bp4";9&أ8 N:̯W|Hm`iaQz5"<# }y A!X 6LAt/⭇ii@Bi_גW|]Owן Q4ͯ!A v-FDnsVvLԆJlRx%|tҵ$RU f\tJIP25,D f L/Ѥ*Hsf{G9G2=}N}Y:Gh_tY+K4퇭I%m@7pDfʞRn)Z7j'B+, ;'IY!_q?<AXoZϾO $ PNO85?cO{}n:>$M9Hٖ09JUVHB.73ןF A8woh9ί}(Dh>M xA'w,̯@g=ŜNW٦{uh  C Jx۲ "r~( ;zie4ׇ҆^ QrPG{k.d3}mPJ^ 6(|P0<_6!'nDq:17qͳ?ލV+]J Oy6͂E%u:)+bӚC*H>vB7|JƟ~P-7~{_}0fѢ2AU<޿DR3`IЩuQ 4Xcl2BD$`oYcu g;D|.(mg>^Ho2ނp֗q_U" $ M3zms0] a@J.f&"^ vجsi(:tЭ3%z[Ѣj3MUe+1m#d8:pk&/riSEh&y"X(yrV~Q_@ف74 Ȱ$ZҠ]x};m5я~B/@Cm.L,R2L/ cLm_GW-Kݗ_ JhŔѝ[ܹ@q &dpdo97.:N&-n=|]P59P$ӎ(^k,#)";K/diEĐőU!?vE"VE-{Zd%6ŸL/7@R$QML&O-(;r;0 y,%2$ x>E+H0WLtгxex^uRϽw5T;q^#>anv)سWfU"~cmȢ'6b5#%[@V,C8ZKϊl 6=-Kb[X:I/s/{ژfL`oQ vn.OBF~gېڟkB&ᴏW\ZK6IHĆ' Ղ*(h~ ;'nW3,]Y6OxƩ疵Ṽ~Q݁'2 ;AlhFu'ip)'A/vŴ9ߩR׏w%%L=}IԜD3W [KeW4rs$~ ^Xsn .΂uUg ]jRr;fG[˭^>ejWsgU2ƽ PP{xmO9bBv*hCkYUjRd? ؔ"_łp ey) _5Ƀؐ: ?סkvM ӴwqO ߶EL*j&85K|#*2:E%EeR!Bmy&&S;'*A|b-uy´e{.`5Mcʼnc u v+pnֽ8xs,o!鉫·jl#̸ 2Khğk${#Dy:8">{? 1!߮JLۏ#/j0I<=Ve@vG.xUօJT!1B;鴐JRSRQcAD>w)\V,d~q= &ʻ6;E94O6={Xx=O0Sߟ~%͞`UbBg׻8?9q.kKMU{xtFO1`&`@:T![^"BȜhmO\y- u݄E:uu1)5%oE' C0T@Pe(OgP*̦ ]Dighׇf#]:HH)nH 5zz'޽[C1:mB>J$6 eyhTzUHˋn$0LRj᥃Ě{N$I> !P3}B!8=$YVm<>AӚV5[F!븄l-96 LX3 7n-o-b RBk_/}*_~ Iq?R$:}䉸__#*C:}lX%]@B.jqTHzTE(Rj5W\z蛨D'>i@$ iT+mX&}url"‚4/(_a etC]#u@`8WQJXox_kZǮt~7*gf`pYfTdpjLmAf: bj/bZ*ՑF[ְQ1XsX$EsR}KONJYpw8?b`GW/s`9 aTE"#Up|եs:q;4PH ];RG@IӁ_/f`ICZ }~T ]ℭדVr4%ϲ>Rn0ҪHBM9zR:}OK i2ځOPy,)#JSvI FGWQ5g}bJEx f3.H,8"O7vIz+wavDa݇3s%BRv]p˶%3o"OߩB=3xiO!nPdDC/(F@) eLWl>o_nTD/`gW&.2sq;?x_2Ǻ>ߟYf(JO bR~V#AqҤ#;8R)W!s6ུӢfEɲ ˇ"N#Z2f\;O&$kxU*>{&U#6_<tࢹ_7`k$Xky]-d eRn)[8t30\d[;HZ#j$PWsSl%};Ǎc{-{D*6 K4Kw>umUQA)lbzsOj cxhjg$aF Y?+$/ajΥ;ݾ!*1& U\ǎp KF˨y_"Iz~P찀΁ya9s%܇_>Kw9ҡa!׃&P]%4+RKn>E F|8~ސ7VdP{$)fLA΋I瀐 Cbl(V/@'! x2I0 4JƻL/.EՁ%##,)f9e@cYwut%[ړp+D;%%f].V\L BpZqYX#f+}Fe=J #Q2g=s\ZVZ Rgtz2E)ffUm,qb$Rykw7Oԯƚ;L_2q|9\oyG =O<~rjK#u=y0=3k#NJNDF]}#l{8Q&Q4"%͸Iz_+KYwl)fyɲ# gAgY섨,XTWЖto,T@X=A]OK Gh$aZqf%/Ii ̤\F>$MFvd ֍\O vxD߹aA[`I^J7rgd1^x؊\(Wz9&0M/}jK_k7;`IᓵU1 d" e>Q~Z0˷bc1׫eҺaX> WY/4@V٬(ba1-(\ZзAE*?^1x>N}Cov++΢604a>FE ES@A>GOXǚ'˷ <7+j[;֩XnjEn:{A÷I0YLDq+Hwy{:[8J B(撁 Upkqˎ47&̨@T+*J &֞z꿳[N:wͩ9 =2"\%*#`q!kOmJ0=8`Mٻ4x-D6tHK R漶 pR>Q7-8\n102")|nk0a*_p=?K<ZEHu[KGYJtR& &b\1d/EblktB{iuGBv筤̑M"-|kRX#eWk?EG[JHuLݠJYb|͏#;H[EOLJEam5G01X0L_1 M Qʏ΃oB4hvuG=Mf;bI>,U\( -c|Ƚ橕4pNБiƷ=Rn0 3!K{f\/V;N=2-ܹ/F{M ai -{HmgP,jQ}tl(~[!0|bttZ[-cVTZ&K5MW`C>A`$ 1Ko~(e1vt0Zkkvo bm$1}9^_!-u$8D?U8'L-'^-)B'^i?s|d!X˜z6 5 ;]v|$J*3`<'۰HV&տM/U\U\!;l[Vl`jYcT!Oo Oҩgo J#@tIDa._mhStospMn4W2*00vRvml5Y!XKElAǪNmcFDso6icLT+w.4A֓bIjt8k3UVJ/75E,3{3@/x,LVybުfvO_B1{2c~g|֨X+M C :α99Z"h6tÅ*#v[(!V㪓_u^>{]86ikK= (eI=5nGioYGSďG"?0s5Z?㎟"lI)%A57|Rj"UYq->ԯ`W r_J":fQ6+~+1:S~;ޮs%R0-AfIF=`P2G3~y+t#4qG`9CNCIG7)ǯ96Z4]#,|F=+rsL:eHlH' #Tjbi2P'j_Y`8fyL/>ΞwfO5΢r ^:8GS"F$a䑻S xS& 9NJ*|rGy% noPȔN|oG*v`0iġĠL;X(1F^%wBp(Fo7BASGI5^2|떽8-zȢH'h~"ZoLX$2b^O)\01k_Q[oΤVYQ8d=yٶE~TXMͷ:ϰ#o0Noz>^t|2~'h@KU# P1,N&['׻<)׷ep1kPI1ٷ6 i*!x Iɑlkv(2<_rz U<*`5oXiyJF6X"m-j M=VPHy*9Npr{-kȏтo&soܮ~,C'4b²2Yy6#͘ҲLGǕ a´g<"pò[sd/OR]r ׹2 ܲ?)JQJCøypR'p E<@(IbH?ϢN鹠KHg2n[GO I=(DŽ$1#gyʾ`kBDc!O-8jtJ}͢zPFwSP>}ujp ᱸ(shBcړ)-H~{}%: ~wn"gDy-/I3(=тk՘?غ٠*V՘\/}Xy£g HF{@4wCH?Sfl'`au^W=fZYeЏ6iW`E`0.v.1G?w"#+g^ZIv"w(7*pLޗ̉"n,KQK{ota`>1oĦOa# )ˊi@h`dzD7rH.n8{]nr&!n8A:2dn uŷȢg%) G7@ƱPe%3}P eELYeU}SŠ8]Pwܞo_ug٤`^6J Nɖ)1rtMju#ϴr4\IY<S;ay>ưJչ'Eq)_'[S~(YBa>.EQL_*')136]`5ݤпN;]ل>XA;kЯ ^MRg' q B‹/fr zr66#Wܩ9 +MSYrEv8o_SnhQ[h}5 oBhvH7̋n['ZMuܯ>_ܼ|<[e\Xx퓲Xeꁒ$wѵ DE$F/V.F~q{@ugjT8j@++O.#h:tYX{OaDAوl:bʁf'K 3MIzݼv>oיmâP 7-SkCDǟzN6Lf] oJv],']#cq{XU4ܰZa@BOf+\C@cDC[pa&l).3~;%wlܽ<sw.mQZ7޴Kb7^ f(+Gtщ_o>.#7h~Qkz Mx3Dtv1|ف~Oy1C>?dӅκ{XSlED5w?áeH0L71?9EUlWP y,ApkG3vkΩt_ ݦj졘Nl VoY >|pbf$N}HE,xϖOYQz?NljXkJH.KIb"0/gk@fZ;qj,">R[BaNm nGro~?7} 4D*Sn?/&6R50X*04Õ>oҶ\aG֩׿ @S!"1M-]󸭩 m1]+$]}5e>ȗ\jtg.S<ˏtJ,j[cT넲WÜ*<+y(%qۻ9V ӎϻ?Nx.Jlj`m/x:_'.J+^pm9)*p0612䱰QZj{yB9|SF#dakuTȍ\$i `xH/2\_$BuA6Eڞ]7/<.un/Hw~60 k-&Hp^Ƞ.^v&GO^-\ ?اqpN[ͣ!g?–*1 7B `lk}[VmEΥC2[z.yߗU`g뛓MB*OWR.Tntu IVQR=gz?7R| ~O .9paÄ`UE87Er7RZ40 ŐDe[%K9P{}E;yBVvܞ2<1}~BxlMG lTraqp0]^0{o L':^ƗcMHʁNm<[/^؟mL`:n#b7YC)ZV=Z}C7`WR8^~G{/9TKP ɉ](@s=p[ܳ&o)#w%UQ6F^NU8Sh.y|oD|a&ls!ˆ|G>iz &OXQEd&Ӻ~ؾV2מ b1-I CrFd+ } ,n sHPywGʋd^GSi 4 ͱ 61T;g/20i`_ȧaVzPH+c(|%NGⴳ1pLVOΌd7K1ǼSw RkS2U+ ƍ{9~.@Owchbn #=~Ȼ*-·q?[*J S2>iTf|_H5+9wMPm"\͌k(mY6c~4жC؇e-oNEKƍxI=$:m?k՚5JB s?088cLIkXҺ<ՅON[YxEZRԵF9?ZT]㛴L.\nb4RJ#_{GxWZmEQwBlL-X/~.,|(Ox Sb4٪JS 1f%rNj֋ D"jP6*a(L{C`4S#D˭[eb?Jp~\S8 x:EO޳֬$7ZἝV9o<{+ W؟LY%G݄ਮ{S_M]!? P҆}9ozOV6Π1Z`7AI}PY+^=cFzYsٰD<#i}]t`:7F+Bf&XE;_`I⡄ɄA:卹B9jȅObeX5 ZS?yDs0={]DfԴ=ODFD bPZGT \c((J~Zr{ɹ u)$&#^֥#BQa2zPq aN8,r[coY"@~4b"~8&mIʗ:%@G.1E'9K ;WP\~LX#\l6u^/|N&QCvF] 6(=$cjJA@u+C y#'>Ѹtd>wH?׫KQњL)@SQiC&fjKgN{w] jތ*"eT( t׊eq1讨ma*,R$  Hv\!UOۮ{8ޯXhUo8t4'\! V1d=iກQ=yNQzr## w8ٕYsz 3!J RI8f5O%rd|kA _O]yUpBaYY9*jfdXv8k~PWLŤ)Il^vНFæ_fUl"Cr+pYWpź._|Is"70_~Ui&pH?rsy#5*zWRzd1TͼDIR&&yQQi!HF,)&;ldkB̀sy$DFGA2ͿAT)0p,HN4YJdR΃jsL;I %J|$Uh(˜/dWz72ԝBұ$W1kb0MbjJ7p+I}d:Jl!Q^Ygu͗PJejy/ZJ;87/=F>pi =V2G'(ʪ70|ݼB1U/#@($>b\7B¡i,1Q-Xة0 K_mi\ߩX>X'()< )HI,&w KrpHt8-f,cPt+ _mHyqAAZY2L5/ _=0bSzdoZx$%<S˕أ1Jԫ{*, j-pA:1oNlx^Y$޷*_ǯ4aۄnd*j*K"bJcp8鉵ocܱKӤK7]@}  23_/s Dk3ϋaEުA@@*IЦP g ( ;-Oh +@0 I z'DEBg6<-M.Ic03SslfTŇ Q/URU[gFE8u'5]}Zm5|MEhִμQIO\-P~0#AqZp_Ka/X j.0Xjlѭ UYwRbPMFB&?=8O뜗[yka>R+3[U'OvtEK-la\.r zs[`BbϪؐFngteN:PVkp73JVmÀC|z'8^+OlM"u_Rso䵌s^u澈Z ~|4T~1( VͬN CʣVMIyipRHy^RQahs٧3κA =JM_ix*ZKu7pe\& Y;Ib(17K8mqI1Tb+-F:,d$֜ɉPCI 9dWX'| E}U5(*䬠ծ >P3A>uݤR[FdC1 5dF*D5myTYYD>EOlrW[YjiYľ:rzvCHMBCP |{\ȡf6jz6X)Y7vHQL;Cחm@ICFr9j!d#!pÞ Y*A\}o8V1`#Z>4*-{83~= fzG/nC5z@F~\~b?}( C/@ |pkSsqW3,\ պPbۢnxYݜae۸fܘ9F)U~ BꫫPTc|s~#%!qqY5w/܁w&h㻗5X* #wߐ'r'%ufL*_`+¸&@K̞՘< (@5_ =ncjR1Q,II>JΘc,;S,{~,mv!Id(fΐhzea!h[aEw^A2݀'1*,hJ&  ާSLtB`se?[ m*n"/ٲ8*{lVwT;zvɖen -)?/UZX,Tr-mKz1Dd2 Yзhq!8h)٪8n֓Y&{/ ,ʗH}lYu/h ILOhd rֱHϵ5C&Y:SG#:ѰdfDM'IcQ۵8Y ģE^Ųs3Q"q&t‰{9)iDߟ-ރW*Gg%|x>Gk }>rmPQ ƏZyׂB$ԑd, |$ b58U:|"#4ֈQ~A>8> W~=WlhgyB٧9˚z- ]Ha>./aw^3^Œ\~%҂dc.ڻT.=ZȎx7yD | * 6  -xVzOM$&@k|w=Dbq'>f8_,٭Tv*Bˀ`jᲔ)31"]Bh$Jj>eu!N?‰sH^z:NIaBȜ,y2}I-qb4I{V>l|\eVITj8i;#1ISez!cωL0*f6~YT܈x2yڣ9_OA?{.悁wwB(E$?dJDNVא\ .0i+zm}P8%:eʆʂC3X^ZE {GKI}-1>wTXfWP-HE~jaycTz\;2ʨ+WG-z!i`imOjfZ U8-;#rGܟƓb̢'SI9<@VrnF-0'q4 ?6uR9/'Gh?jzFX1ҿ dIzOz}¦cR-z.E7r S2ڰ|\ X<.p@,YȻJa2;QvǢ*J{:-2ED&{$NMcxbm ,c|n9xFyRmv|@!+@ a*Bg,"(r:0h(XrƬwx*cQK(W#7:kC%Ӄ]=A?ޠTk/%丱Q8`{7 f8]Uoe٬HG@p=o~~P ;\D >^] OEsqk04R*J]{K!\ϝG/),!@u%*VwF([oFJA~(r8gwWB3)zDMR}wϗ|}7]]o;uW^Ba9&Q~pm4K塌wjyO{l+J`_CCR RPiA%&gRV9|*ݯ~@d]87;ތ?ӦP2U|V×p0}y_Lb:&=z:!rK\99- GVVֲlkuZw!Ķ'R iTK ;"~'Et51-CR3m m*>KaT@<ίf9st/VĨyp پ8eMUnӫ\Vنfr_VB^3kV퐞z.3ߗQI^u׽f1]$iOms%F.g2cs7[ o,]y8 :{B=hHǡ4A%=Қ| c⸧*k 0k\vǻW0Ix&iDδ;R7'.PFD>]Pplӿh"X w]YZPo<Sc$nCrp4Pn%q O0'RDnLJss>^#P.vsSG-,^LO8mpp}e ޻mǯ~VW#wLޒGj#h"D8_MX[ 圛>í;%!]j=PUHi}QErUMΌQ-7_\DiYBKӴ~Vt;Mn%\9c|;VٌQq\#}=[ ǫ$a-[<@]EyYvs_BIQK7jbܫ]Ah)`F.-~H|o7a09 {ȫpY;4⸝%kžD6Oe 匄0tlk6'~٧nnP; % cX ;A!AHi/W].!0 jVL|k[d ʜuM[ cSQw@} Đێ4YGUmx’d!R۽F"IUHNDkbR|儃y>gz@r9=vl{5RDL_(UrhNd`qT킖1qp% OǞ[r[&&eA7ѽc4;߉rP$T=yC -JvYpMmaG" {WֈtOIW.T`뒅(Fy#v#8 =2D=iaWl`T=(e(r(8}O6_1|Խuf[zG+EՓmi'Q$῵(fړGL)%bE[U1:I+>v0p!'7Dסք(TQwf]1Ҧ&DU4i]CAdOe5 \g? -9R0'lVVJtl zL;'T@}0 OP?Dj͇j@ҹ!cW恟ұD3!%4$o|Cˌ 2 -XS_q]Jw|cƈ[jFY&^K Sls~c Tr Wkj֭n+(e(;"3xpB3h{e).W5<~OEv >g҉So{^_g#"[#5Zc#Wʠ]Y(ex!fj\QsJ4s;%}4ʾL#[xzz 9^, E{Pl 告&telP2Is3?},|SbBc˴*Aժ$Ɲڤzu/K|0C QCL6(Elg\k'50!vlՄ{RO7{lz74kq]i >>[%HZ~J֚Nq/-+=1m5l-AW@1\I{N(V(nA>z/E%Q=x >YxF=ueFt޾($IA;uFy gp8ދ6^EI~xWkTvYܭTS MgCb6kQ0hR6>~ 73Uot6-c/o~ 48[N ҕeOm{6\JtoQ:O/>ӐnqXu%QL8 af𨇎[#z+Κ3JvT9'0dܢtc_D?+zQ^mXV"_~:dV~+Li OvΉE%5$Uٴ_oDT'zekP2u91w2'ς37t}lg3|S݊_wOST_R ]mɡ-H*<'K;ϬgEL/Io8HKQ^<`Z-;[S.Y&ۉ*( ءhIn|^R\%kAn]GVP-_̃ȵdPɐ*:?Vo-@{&g.(0QO.`HQКx xDqFRWO6m)//`w K4O|~I[w9?DoJC54tfH@BJH^iBs*y8Pd~I$QZln-^{ܘ?cpz;ӁO9[b͏ >/a_X lņf{:ԙ{2Bl!{c(TCuuFȁj :GX+9zǭJ*l Wbָ5/- :$ `L 6ͩ `fޤ!B$'g |T,ȣ,є%ĦcLE*4"VQY;H?fEb(9e7ǯV7eŒpiX$I 4}udF6 r-n`ftW;OD`hpB9, )>B#YhULj+:}k?q++H Oxuo>GL b25dF&?8+fՄw@(nn<_<̛r#2nΰHPHA[U=@-׼'7<8j ]XLzoz̟oŽ,)(hgw؉ 6^/28oق^1Qbw,B.fV *o``gb/eq ,amumG "-v0xJ;{b "NaRz)GH5՛h&qtjc\l7|T< ?'IWaj5SDL.*œ ghXYׅ%hVu@Kl\@וeRNN@Lܷϴ x3s""P70@-Ux`o 8b9oBȼ%x9+76ҊJiuAW%{wkVace!^}* % o7"!ҝ$sN )dD oTAsБ*Z+%z٠C wwCڅ$fs.ѓs6O,Nxk7kw8|~࿳c۷,S1xV~erj;.EE^"Z\2ISx/ c]T yBF, bO>41]=GjY '3q:99MxM@D۬$0>N⊠ "_۬bJFwl1}x'p-pgT9'׺]GyVDA~"˱pkFjπ._ cc~&+PeR; sgkvdm&k o#2b!B0 guG(LZdá|OP0dWT!e2 1:ڏj/k~4Zno?=>1,ٟU#TР.5ӵp]ir1 ݝժ^E2 ϿU bnc]K"(q#e_;o'~sO#Ag9I] &OcH؈(< =$F^M1` p@f+ؔgɨҚn7!cM%@6rbeNGTЗ a + "rcsC eoI;{/L y *6dvh}Hw,]RDQJv(A? oJ"_7T*:eP?r BAmg=. [vA9ȓhD唼#z82Y; kQM6 *bB#,{ZF I&d6YC4D4)OXv2b%#nW{ nƳQ9)`Zr 9% OwCM!)ڙ!g.Luꊮ@ P.קv1GHȦ)"C#p'%DODfAKBٽaA_K8,X#=NzzXՄ7U$n&the[8 q?'sR}~Ekfexh>+?7]sQPt&LƕT nCkSM(.Cݶ;Io/~u>LD!WNn:`pق?- M#q%y/j;4r5,>+gP3`~!yAYCk۰H5tϘ בvx;]/jW Q1߷.bwgiEJ -G̸WA k!f3\/1:~ Ceo6|oDD5ێQeP1zeبJ o%ƭ_sdrl7 0>ݟtūW|GHuAvyƺ+.`_rQamcQb;(S6r9Ӝ:O7%$+m]q!u, U/r?,wH{nVfoy,Fk9ؕ au4eq3R!/BiPTc4GIwե$Ѓ+S$O63|iYj5Sl {Ґ/!߶!rԟ&1PgVLmuN G^\}]?jT` /(զgd%ok-(§M}7y)gl7)pWIMfɷIJe>^IIj%AbUC҆4$ݙ2  <*bh $) gt"5&? jGk'uG':;gt{DO2(TXʸbZ'pwX)ϟ1yŚM0oL22O{ b'YWӮvxfHܫARLCcWc͉ NV/-)xTLmJO\.YpB:lCJZ{ g>H`ۼBE*ӭC}N`F,n `nؕif'̭I06S$=wb@n"T%h1" &LNo(x_7]K `؉W؅Pde-=BNQj%2Lo{,ftw X|6yZusW;fؼZ°l>/0`; 6;aJC$֛ ʈk|Z@uq+xASkjLGŦP˜t!4 <疦4E{${$@Gj#OA8X7!N` R_Úl_>hPM|1{Z>M4oәz%&e>r+ 0նNH~JYBiʮI;IQ7T[p g^Qu+$ӿ5OڏtFG+ uB9HNj l}SŒݦQY8&J0%=֯dT^S\bxE\\;_`#p ‘-3)q6 FHeHO89lw'xrng=-i>0Ҽi#&\ W3ܪEKӤ&>jCF(☕"Dj?e%d 4{2:+bz)Q^^gPVq:bKmϖQEY]~$+̲_6M˻+`q2ࢵLG~q"gR+s7uWKƵh#$hgğj`Bxq1b eɈ`ʣ~(eM}Ϸ}b" TҺA[!bMBa9&S{Ɲ(X'R9{Oq? y|q|b#?+iRyZCel; Glx 7щCmՉY^E\xD^Co.w7mpᛂp;{daF K@B:Xuh@eHÔ #R藌Pӡ.髈1m=c 'DmWev\mf瞚L, Zp!گRooP^i:ԎoloWO=v1FξnMI6.&RtEQs/pPt"(.ܹ zk&37\){t IGm|q9Pgg7SԱ݌>6%L#qyDl \F|y$5@h>͂a Ƣg@4}q|FB.%eJC: 2pW̿cr BzO% y~A+>SmK+4>ݍ5{|TYrTIT6uT X(S+LGJh%~ؕ涊G:yu堘8 QQa$aرg{#lYEpv9uGFꃅ=n^ţY b^la*QꋊQC5ʂux7/9E|K-ڵĵR(B^r7LrEy9-O"%Q8fX` j8#r) + >-0Y-iVbYYPr[7n/ ixb!nz*ZgnC1wģ'z(؛)SjqDMܝulr`bYfy\wN`0L:uDCob5&?|-E hB@v>bqT2[02o->X #z*&K\ tg[3oVыHKmK hѦiEǨ9*C۾sLXJlBLHk-Dr4`녖ⶢ? z>ju7偪?^-`ddߪ9`m\O qe4_NX]PL Y{Ͱy;o3itHg;T0$zG@TF|*q)IC\Ny= !fseEr+ʧneb,%`ȪdKy4wyRQSMfiX~IY{ʧHQ->s-$fL3tWd l)&"_)oMwYїg߶Z.J4}_`k[Z|fn2|P ӺmzS e^j!]c*߱̀'Gq=g SŰIb[pAuT·z~";bzt6QTWZ$ R09Jɭn3@+ դ#$)K9L9"6 ef `2oJ;7#PPTl].O"<&/ ]odlX7>ⓕ9T'#,4Pߔ߮v ǖva73E*Dfn!L;MU:eb FmU]tDINy2mEVyQL-sJ_qJfnudHgpfzE,p|#$CVմ-L[0U[\~T7ň 'vSz^ByͽVQ7zlTZcsLXcvDN4:!j?z?`LU _p1dZX\AqYEGɌ{@Ef>gKuBzaT̚Iꉊykj0tE!, .Q]\ oċ8;5UG"`Kw?'m1K-'E>#[ rRCm^9?dsɲ>bc}!{ l!.6]ڻ$dG2(t"IM[Ї/N>nsvm=icཫx@g#·2} >W,rC-qx83 dop !-FK yB(3J*G*a$ 'g"G:@F\xawk.<$Y3T[O!yϯS*bb8I?!p YZ^aai+Fz1t,nW0z5ih&f[0-2a.zyɋ^˲]5z^]M_ł,E`=1 5ЮF\SIi1n (C5e_㆐YXM9k~tQ"nuxR3q[ O.v HfF[y1tܫWiN4:S8Ȑ#O",)eL-.w 8В^Oe؍ml$]`9G7Q[]4ܤ uܨxS@ ֏YX)"\ S<(iD ~;cYq3o}l 8h.tKK?|g9ߵI8mwAlj'^FߑQd*/N3H\qR8a򙻃*6l\'Y9Ԅhbr}u:JUs ʭaKYFg9{e8qwH*.eviS3Wwt(K>Œ6uTDL77FoYXK7Ly97(#aWX @ TB?!wx8Y۰Ҽt"Wn|?\#Y;C ( \ҳ]GXVM?/'c*f#:;)H90|밁ԃ祄[F%WCK?8)isn*LL&X"G2#ډ9eF j Sϧp CtCs ٭++kI]8dBqRDm# $]~:慁Ϲ@nSF08׿tL  `S'IQ9M0Ϧ~ДW8ErB?)4hrPWL-wu@z+OU~)Bx!iiKT^%/KkǛR)v:앥YsX_q~? x|a+T|obAf$8d;"IXc^ll ́F7,}`97U6]USv,wT-viPfr庼TYo`IXIŘ9J-΀S3e9fFZ(}*WF4KXO-W^!_H!'ytgV'o0D:M2Ӣlyb\a\uw@S _ձ" W%Q)^#pԌop"ypΔpϺc;[xr B6pJ eI0WK;w^(ם)USaVn!56¾6% W? z9jCѲt_zQDcR1ʪtEv75e'k7l)=N 2uqٱSc zEi_ D<`k9_(K}s+ÓA= c]]qk%/oc5x)Zgz ps+BC1I!>ߡҺnTlwKP*- r;\&Z0^Sr>G}ġ@x 6pv,mID[ 0/ +|(Mӎ*(>`1҂YD7p>~W*Dт@GC N#Nslo̺l֎e*݈P 4h\{rUhb`z/=KML[lk^{7\ YU99ã֝:F +u%Ȯb6`+8,rAAgԭH>K_gI v|A0tZ dvC\ZX,K5/l}iӂPk&TFl7`6u\+4#$ᯮ-x993U! )EMmB$,e^h1x U!8Zn#{ U"?ѹvՊL.<ßT5IZeաۍAf{<@?p+6nޫi;rclQ 'Fz8}2Dn{jwt:aQz0VM$1  2H#~8|w8rX- 6S'Wջ a@_֮Y7xf.(Gv2-̱W\ƞ1C9FLiLsLICg8^܆Y\x7޲L#7%\>A5}1Au曗\P=Uoݤw_Fs tpŬ>7=첂߾a}/i`?Kk!k0 sYNjtwGjpdo{alL<$;KGcv_U$ôr@*{^ll&vVvTLrnz+v˔;G cgH"׃ZO8h_:*B Ǔ`،SXjsSoVĢ!ZH3Myo"mv>sHw\HYΔdOWCJ@_e_6J~"ī8|FR$&Ns+p1(,PO19cg۸%O$I5V/k5@W]̍FYF`!;īp̼a.v0#鑈>/m'\F3e5禿 aqmlj:p39|gio#0oL7vL3T0 h8kv\eb!z%TgNPDǗ/ D%^!UhBgq0?zD u=/SK@J칞 [d&|,! lM7cY:nLjPٸMe ˆ#Z,OZ8tbm6Q%]UZ>'yb B8 @9jHeeTWgǠV%<#Lm.,w9C+hSҗzDv`L YsD m*PI)e LX(snTzwB\6yc3jIV4&!OR1 :HOF棋 S?6}Ȍ|< mZ~'j zmk5dpxȹ/h d]CM>2|G0/,%ez @zTv@bgiA%(JM>6}+r~,jM![5w4]WIkoj/xs=}*+Q(L)btZwiiKũ[ l3b} 0Sp)C&slptfOY)a (b s(Éaϯ@Wn{iS|8`_;}P#ɠe2f^$Ȕ}<%Ube?!?@Cp-#c ";̌5y{HЪhlQ꺶ˁoOPLubv};,:QgEE#hj0~[ ~+`Ì+2m>L7;|b̵$ *mrn!5w2?:Jy•"!'ڦm"=nҴQa˫Br?/+hUN'*`%47ygK<j٩Dbg~ e,=Pp>׾GSqTEح(5$xʨ2-Gi~cP%Y Ԡ^d͚rGgTN riKLПFK ^2n`1Dڒ0rOڧ|-=<=&`\A@j]kU+addhVsFYr!IlRۛ)bqj-(b{9nuHKr+ ,*! Ja(8z`J5g_E*}?. QE;f^J l_))_ & 6116U였`ڴ„hvkQnbtt捞5Ty ;/6dGlT.9Hc$ꄯ'ݍVG!\ \b>;q͸ug?%3|=*V/+. TPžǬ&=\H+8m$νɐmSī'?RSSՀr 1"V%Bŵ;lPPm 4T"K.Ku/MTt'R+GAs6X!I#ZbC.zvcAJճe}q$̲g@""f/ /Q-CDBPuŮNXvt pG9I0WRw+[=21K  k9+җ194ET/2'ʜ~m7Y"!~8|Ng˪;Ƒ⏊DHkEkPQ:vlrgqa"eV[~Z]qN?l&bjb<Ʈf8s Pa`2+m3ڛzo9~Hi\-xզѼyI/T@"S|SVI."N'KQ? hciG% dAƛ'$4qvQ'd>ezKSHJg~#F9(`iPnX̾ J<:DЀ6Dnq/)EsVݭZ0 A3pxm p TnxQŶSϥA&yr.xE=ʼ f@UGVuDaOO_U69nYSG;.V!p c4$=|$p<%g')"c!xOɈ^4 ޓSs!wi Qh>/zb2I4T`a(p&K?BOku^|xLˁC\5kiI[_a*jr[mxg JMWdu<}oNSB^ҽ8$/&?tgA^ـpZQzT3LbYE~EWh&XA (/Dт' /.YflC5fLfPlE8Nύt>@4Kk5=_EU}$Uu.5$m-?a@r~R VY\^hnY &)l94YW0v8-*4_n0kߑ*f^[502-#No^LbiKbd0v_2igF;iST֥ *P 9递 ?e`X ?G4нUe_ ! JyTGƿሕn]Qsi ca {l_]?|/?gGrM~%B;yѭ%>ܵb߃u1ԂAWUc; ,ӟV̴C{?Y ڝ cm.jB94]:@Ņ9&jղ=&Cg?8[qðaP={YRҼZ7!Z|a^ %JEyd%saE"$E4(ΝwxVS~[~zO,ab=g!P0OV!XX/&&%|3[L㍶il^ˉA/i1mNXln׺ܬ!!'ٺ6آDP~ ?'eLQ{b9&6rM(RHn2=bnK;Q F цhrJE .˂<cJu 'F`MmD,?}}.9<e>N@M6 j("q>1(J}ӰfHzL݇x]Mz:F9C_S?M&괊hz")~ߞjP(LP7]GQ$pY:wQxS!Ӝg@sm3؉>jbIӱV FQ)}n4Xp䐅w%H&7O0Dِ'c<%2?ic FҨp]5Q BwG DPȀ-1]]Tj`U!UHG:'|3+uTGxH6Q%*R&C .jٌ-W>[ ^C ﰼ;VJsuzߩ˰#W8Fp'fU}rgv3Re١1z'3v`RJRB [.!u^a^ˢ ߇%Vs>c1!dmux)XumNJh5rǟ#rBώlW΃>²ވg i L,ZȏAF|~Y3_V< I|՚FOPFBލ`fddGK)It Ϯ|ҰK=),?=FqsLkwܟ޷ʣ}%ݞqyJ]81"hE㖽2 F|^DmYC_I1c2B,;úJ1MP#{PZ$9UPrxs0y*+Xم-D<' ms t|UۧnwX>nĸ YLH~PiM$zܸSiFP--,=8x<r5*0~ !58ƴ Z8hdV˷f]}zn=~}n6@"dDƝ3]ߦӃbH 9K"9E{;Rgj2h?|]6VSEDУ [#k~DEtћkI^ԥaR];l+JZX9v XE8*DGmp {cږ]zE*[}oSnc0*T*ҠQ-Q{`*V0ǧp0͚ ]Ę:L^X[gj w2=:9373 uTQl4d.?א^* 2\I(xr9~}98 JIYnK l"2|>ظ4Nu:a;aFu/ R2֟>t+KiY )ٷ%2ucK(6>lc?ԂUy kB&gH GZ?(Y Kݠ#˚C" v7;]cc ?_nGA,Ѡھ":J۰BWfv&$m+|J,->~:yb7";pAAH$-sO[jS_aIe=>r'؅ݍ'd|vA?Ӌc2Rx, ]3'Y.(&Dϛ"m>OB2MqإQV P࿭ |y 3Ol~pEŒEˇٽQ*1WT7$ hǯ[_tvAꌶ4ESW0wsF`d4#mҏ@Dç8.w7~phPrP Kf4zry|E6NTϒ-pb-8?5{hJHKSl6Dl%@4/Ejf(X &fք2ldZ4}rVWdAnO@5UnDe)LGunLjz.cm'*jn"1$W\/K#/d` ghD '0ީPC);].>X Yrq|Jِ2|*a4$g+U BHH?dm׋s Sc\lEUJKﹹ$D[|on{gd?rH[AԠ>\o#Y?484Dg}> f3|[ޖY"o!vyh'քBuݷB~Li4+/q} 5ad-Yi"^ZWͨQS-31Taxǽ(;Cr+|߅1Ž, B#|Cg%OH2(+('Ք`!`O5?ڂިTl |\rp&`ڥ~%,qɹ{`wӛT7Q|E)_ +OG44ϊbFH+ܐϸ!n+9l4A&c_ xFGP髹I JaՁvЋcI UBeZ ޜ!),EŏT,="OxY|@GwBK ($DV@h9oIsm?]EѶm֔E[:O[%ݝ@bH; 7E6*5ՕI9m#n-ZW_}15P#U-#$TDž %E>bV$A:rNIx va'hUlʔ[ԡ[Zه?Ȫy)[AmIDOcmfTut*['0v=m[`b={ɑ~ ,D )R쒱>a;{FR/cWq)3igO8}C˶,`k#sBU}q: V}bZbL'~%eT phE.%1ʧsQS*d83,"J\`mOyXDruVPJxuj!~zηՇ8;m=oNCWN 63Sl࢙>X8Ͱr*U֔ޒBGJuն8.Nه\}XV$ }ݦHqflZWCdf)y py}t[Nǹ5i5,diX`1-:Cުf[>O ^ѧ0R = ԋv~\g%_+)7嗤DzniUn^#inֱr 19`cY2.\tIrnYAq9 H(d6y;p2M΋\xZk=pM5CPe1$vj{atũ9Z|*ҊesoGAC3yWżQ_?KLs =jYقWCX}kXUE%aqpF6J#vs*Ca܀j֪U*AY^|hK'f<}o1s}ՅhJYϥ$([! ~ۘ(Am Kd]PO{`]Pqks^ѲwS~uźI7vb29oqw|dW2GD6XteT@D.~n9#p[5'*Ybt_ܱ}B DдpO@2#"g0Z fS@qbn'k3Uk;SeӨzVKD+Sq0qaZYH8gg%lvw"i]SAMe69_tO)N9i^N>SJ 'o/=e:Өzq.y9Ti F>k78RܑgS>yXOmOJCŢ,Gla&GDFׇMW dRLçaS+nh4ѭTq>:3ÿG:]c׼ULODI΄BY(FJ2#SELsx08V6鑆ԚײW՟|91+M5TCI[_P$8 "Iw7y_0_SHL:żu*Jh'gKЉoV&kbEȦsoMZl-/ߤ%蜒*X*O dZ%dvTA5z0ޔz60Ϡ0sMyԛ3h ooe3綤0]\l7GA5:;F.iLC:m rp2Qkb.FEh7DJ yWHe]@Jr#a0=h#EHL1 2^V}Pq=ڡ@ڍN-4}`qȟĚ=yv<~H_;?82&šܷtr8W,XXz]*n.XШ/;OS@g:Jrcn] l' ׯy.LaňހB}sX;L\EbpoOXݺĽ/(n\̸8VBS-3йՅ/*k% AFe»7 JPyd7W@meWf%F vkz&KxE?N&-Rb:_z ؤ;U)ה"*~H/10 F4no٤E%()Q ة?1jF9]wfGzw+5yi/PȮ]@ o;;''ecU=k#i/9 ^( <ܤTzv>RC\и=g+ w|ܳ҈ NGaStyC9qbTy_*(I-Ф-c񴀂1і xCZevbl0H"ݥ 06&[}#ϕ^!N-v{4@RW9>d&/{zdm3@v19oVUjArgiddnk)q\'@9E]ہklR.=ӯef9CJ W$ Fjw `"]\a6{k&_9ywa4t _"~VEv;\lsa>S&d|\k-?T鰧6è9nNŜ%TP2KX6#] eaV^%cbFwrh6*q1NKÑWlU"Y[tkNN坱{yĹcԙA79wWbq&W wJդv[b~yk.*WaSj_YعՊG/,ά@׏U|܎kb`qU_ddhm;|v? =VKbAqy,_q (iZxC`1p`{w7hF DӸ'ݭNDc͵S9b"klk.ex-'ޤ2-Mu=^3ns-m\D(.% r)N"  u51n^.HYiuC@y#SW\+-R6-r3;f^o(A#</Ԯ$WXd'(sEo0J97S=S-ȶy?B{5T : (Δ_}`&IVuϺ2m\+ I?<ՌvG^M> s)CNMmHqG%Ysh;|]oT‡J^lf7R>dca[snd~b"@ I9#!|l^3>F1?s~TϗJr]%Emo{dر-JTN̮[fɻ85{P23*QG-8^}L 2ǣQ]dEP^&/0x}A6FcϚPEOb]7?ύƆ@:iiwHI?n||}$Хc{)I02$I6MJp9\sJHw󚸫ӏǴ@լ xj6x>p)JW%~E*s'ja^:2U˾] ~S5u +6΋>=QVȘhֈbчW`iP (L28炈0f:H?@ZFΔ֒)waG8| pW̔rNVg \S~Er5)l BpBzAJO7fX’; <@!fHy4T\Ef{Qwx J?p?@wU9TxmuǞ<=5Xf>n.1//RnMo#dET¬ҷzõi-d!j ;=% {MwgHp6KIq չ'|{fʷiV2Ʒ'")FD07 ! !PһV@[7:/=Ca2wj <ِ__a#Ǘ{=/&xZ@GNQ9N($)A9hz5Kd4nT>Y"K;R..@40,jI(WͯsM{D饿hEg #Sc! d0dpa(vjDN038aъXh|n-SHYXN>!$s֨0־ kTFJ~w~Y_rZDR, [ ͚)F-=e4IJh>^%DH1jEAv6RmȬ\,IɧWҨI)YWw&FZSXXjTUB{ERt_"-zި%Xࠋ\OF]ll]4$f%pSmR -0ReߠgA$a.@Fowm~"Y`>Q1}üU_>O t؎dvmǍe!yI)gkX^b.V*/ByռN&W5Hƾ{d)3,0&SyM<~Jx=?W'(hSğ^ԪmH)qdx<ʥ,~|AP3- L-/N.>CI}MbJ:~= ~ΏVZmZl> P,mg ~u‘<"LY~[/dؙFogt ɯ\+*A"ޣͣ@dĸ> R7NSʮz}rGp5!"R!+ŽPȕ*K"[KPh̔zmfw:|P9rg(lc+ 2S|  笎5#Bcv|* ,g6H~t㥆}  bSZkiYGu[D٧xwv0'$mgxt(]H|]컊@4,1M^ϪK@c2:n*/Jw2qSjڔ]` wޣGx/^5՛‹fj@ށPwIyN4>qz;1޻3:; ! S׬ &C(*~(JNx3ƘX!U\xtq*?׹- B+_DHT58x[KgzXj(UeLa㲠yqDq݅{y 1 WA9BmHpUH2d'烀gW<8絙Ы?-wr yy4dO;c #֟Ղ A+%@6/*Ǭ=SFؽP 1[NpKڃ=rhsH$/KtTo0wJ6`R(G k 6qiߕNT iPM NIBrH9SP( àE]!?wv#S}'sa|8!Pdw&RkBksj*zv#Ns'تD8}ڃV >98=t1v9'y[Z-]c Jz_46kTtam'`.Jdl!\#]8JY>+վ}W{k@;v3_%nwST"v3܊4](FLkX 13OXה(q]-y7.%=(>g2՟# ٦F tW_s(L IBkoeN!x yG$u|8|D}HCK\W(E$]LX0v_Ћlm|?)+I 76 sX"НYkNOLIK>ZZMM輩31'#U2ѳ&6L)􇤉!CA )UaF1\7*7;\(:[j20HJ