Command/CreateFullTextIndexesCommand.php
author ymh <ymh.work@gmail.com>
Fri, 18 Nov 2011 17:42:18 +0100
changeset 38 e48c2e503945
parent 23 b435f8055cb4
permissions -rw-r--r--
add commands to purge taf=gs and query wikipedia
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/*
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * This file is part of the WikiTagBundle package.
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * (c) IRI <http://www.iri.centrepompidou.fr/>
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * For the full copyright and license information, please view the LICENSE
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * file that was distributed with this source code.
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
namespace IRI\Bundle\WikiTagBundle\Command;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
use Symfony\Component\Console\Input\InputArgument;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
use Symfony\Component\Console\Input\InputInterface;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
use Symfony\Component\Console\Input\InputOption;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
use Symfony\Component\Console\Output\OutputInterface;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
use Mandango\Mondator\Definition\Definition;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
use Mandango\Mondator\Definition\Property;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
use Mandango\Mondator\Definition\Method;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
use Mandango\Mondator\Dumper;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
class CreateFullTextIndexesCommand extends ContainerAwareCommand
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
{
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    protected function configure()
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        parent::configure();
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        $this
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            ->setName('wikitag:create-fulltext-indexes')
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            ->setDescription('Generate the full text indexes for the document table')
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
            ->addArgument('path', InputArgument::OPTIONAL, 'The generation path')
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            ->addOption("simulate","S",InputOption::VALUE_NONE, "Simulate generation");
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    protected function execute(InputInterface $input, OutputInterface $output)
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        $file = $input->getArgument('path');
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        $simulate = $input->getOption('simulate');
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        if(is_null($file) || strlen($file) == 0)
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            $simulate = true;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        
23
b435f8055cb4 improve dynamic docs. create and lad class dynamically
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    46
b435f8055cb4 improve dynamic docs. create and lad class dynamically
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    47
        $schema_utils = $this->getContainer()->get("wikitag.shema_utils");
19
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        
23
b435f8055cb4 improve dynamic docs. create and lad class dynamically
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    49
        $sql_code = implode(";".PHP_EOL, $schema_utils->createFullTextIndexes());
19
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        if($simulate)
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            $output->writeln($sql_code);
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        else
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
            $output->writeln("Creating Indexes in $file");
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            if(!file_exists(dirname($file)) && !mkdir(dirname($file),0777,true))
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
                $output->writeln("Impossible to create folder exitiing.");
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
                die;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            file_put_contents($file, $sql_code);
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
}
Rw"2԰ ^Ftm$q˟]Q@@>I38P(2I.-8Af,(/b-DTFM&/8̀ v`.yk Ycf\yn2ȳ-3Rh7dYOhfj7M"Liڙҳ Ӻ'3z ^_}#'kaHsiӵkJ<:E($/;Q2=?ˊrU)ˬ0&JNTBr@ž9as^$sߙ>~&3nn5;X|OC֘HU/*,p{?I$tl!Ӫn|v4jtJL:L h oxBd aNu5 h%ՠnJW74; gWy̐HNara^OX$)]^^ncN#д/|\:Wwo}hj^Z2Fρ|osR3CjʒU5;p:xGyf4/Pey|ŅXyzzCH#a=s]l$<_6*Jt< lVLUcEKl(eіu lO?4/O:uB|zWIʻWkF9Zy+5XC<N2I{QM=ghN!1|n '!Re1"4Qgք AAAAA@oI `01D$"<=p*0 $*qXyPa*Ĥ@R*DE H B\*HQ)UI$ **%ȕ 2 9Bऔ!W8ļ7Lh $Ib\`3 I(h A(c R+dI@ Tf\d*d\Ļ **T@@bQZ4 3M!FIG=+! b#˖`Hb"h%{AHlTkbP@qYQ؈'dx*RC$9"8ّ4j$fDLʒE5&ċ$&iCP!$R )e$RzJ4D@i!5M&&I"O`27k0PqMʆ龎8 R<#g{rDT{UHp qn*Ts! !58 RI&/invs/^ͭߓ(ٜ7B&b<=RJD*kMiaʍas@>@vN 9{!h" ؼ uv}M@7-Sx )|qcB|GQ+52;`fKvjP ^h@@".XFAnve6LnabS , D aAA3ZM9@( h)D{gz Ua[Pk4Q!h& )R*,U &+P47ƹL`@yCFwmhBlLtoX9 \ rLDPLMК.L\2,HT@Z`$s$5*"q"k:}r4KxՂI$?HqPo#w5P%溼(jՒ.$9`yT.TI7* NIdsHДH鄧UzHsr&ӺAA$qMRTMg3XvHc!0&$ 5[8 #%rs#~M4sd"$B*c˚}ÿTkP||^gX @=FSһi;?%"Aġ r@)1}7ux$$cƉvjļ̯$WgLyV֡tj.-sHʘD G}[3>:l!#'p)&ro$@+o}c"ʫ ) =p{~ays}G椀kwӵM ^o7du)e^Oڂ]]7I0uxsO(@k]$,^;1%Q%P(XoI$Urp@ez^t'\iuޣA!R:)"(CH̒R͖7..Zŷ&Uץ+nTo U91 g]fE٨!uo} $Aea '`n_&p)'D/;pU*:G8砎gAOi=̶G9mlb<ƤٳSKH?+pDE7"n_È;QRQ'mbJdCOܠW|n3ٻgGmx@kFV{:sDd($({ 0")*2iBO% dTDBà)ꄒC@ ;R^ uۂ'V'7/V\FW6  Qb?y_w13 k^7 jc/0D $E$-ƒt8`)u* t^t?$ށ=KNIP l{C]ˠMlc@- mII8L'Vcw-Q(gUDkT o=[p ;#~Prﳀդ#9b|rIewP 'e^⯿M\knBm:}?xFssEFr;t<5$DXĄАTCP{pa̳у!p(&DA+h&}VoSHj򸵌$؀ҧ@2exTmx4p{6;-gQFιy,.sw}QVbX0ǵ$hb\lysq9سGlIu.t P@-{%'H8K/p~`ʧ/gmqڷ#b"^,wGb G!SS_uaPTF/tYi _1pgirפPAA}8('uMF[E+==I)oqXeGO~v5 ԬļHI)   3Twb0'S|S-AgA!fVd_ܗ'>EhC6]Nk{29X| !IGi04t*R14l! CI @3a | `dȂD\C? #APΣ挀K_/ZN =9{ ])~- ctL?gF{_ͽH:$OM lK!BI,KH2@`1 NBIIFbI O4&HhݮXE= =ޱWwLk:sPt0$置!XB_gb*T*ePkII)P "$ yU, FZQkBW~Gaf:Iȡ@jHSQ3@0v'eָ #d*TfJ1Z@ⲦQSCϼCh3N..8Tv%tLu`sjxhE(L>0[֞+!*p4onW#k9Nտ&a#8LӰ45Uo :m1SݞZ`G[zh h"u, pdZL"ērBI2Ts]9n2s<0ɇa2/5>.sġװ0'9l{mp=MD!U 5~FXtXv V3655wЯzJ G'4dA9DsFjdr!Fm`P0`3xB9$"n M"e GbpD$'eDh4 )),f|S,CT|:.cQsH^(uJ莨B04P*UHS ?w!UH #@R1-!Y%ֽ0;KcĂ??r^ .t3! 1ki4 iHTi蓠 DRi}v짊0q5%Ԁ2!R1*EP!Z"T6zQ 4o Ɂ"Xi72#߱>gwvM;L׀v)<shic0xl  ߕ@Ӑ$_Bӄx BlP @,TI$() %HjJ RDF1+DHŲiQ'݉\c8zE[CBBC$LB9=D9dEw"XH)q(*sG  e&bWm 7EY));Ck3k8s:NY8I$0 ,ϧ֣|TIj JXhYR!@cIP  @HITKj-4Be ReHT HH9 .Cfޖ.hDSt9b& E#*9R)Pi",r$q8H#(( mTFڠ@g+i/%njCA!; Qp. gfGLJm| 1҉ ݃/̎9l;,.\e" QrEF5u)^:z.4,CHI; n{(2H-Zdf0*UKR>Y%TJQP*B;J%J%JJd-h\TKR)1+ fLU p3U=Ch (0"LSqy]`gQ7 HyU6i0HDQ! (U*->8dնI;Ó&;ܯm)(j=70lrj?/qakzV%."O-n;۩ΏMC Y>Mt1OzLޔ>CގP.:T|! cP9I! WMar!K{OQɴSo-C4@6~.GTۅunI&@̮,&pk x\\~`yNR@] SH3gf4Ƙu„u mKAʪjUU42E3ʝGˍ8$v%*t:Zqȇ$&$Qqg[ d[u$lRAbrMyϘp:`p* 0, z"D>]' +s)=R:hI$:եDNӫsiP=^7-RT_A Ԉ.Q47vTR8 `1c `U7 (!Q5IPI*@8ؒI*'r"qGF3$4<Ԧf$T [Ė04\*?_U>j oΛ^#9BPN$=$Dӈ!A4 ]r{EWI(N{|!H{[/S44p'fB SP/~|oNitO4I'I i/u:7>=*#((ǂ-rbMJt>ڽ 1/?Nb2`Ws?4LIKIGy4EczmD@z#nL?1PKz?H|i}߭|2RVJ!bI>D S;*j*]hEvuQ| `a ( "B*\B=r7HPĀ=U2TvPE\dp\ KZI8H3#Betڞw^ްA*H9:IĄ޷{+PQ,[YPEJ[YCy*Bo2P^ݛ_W@Difn58*ᥣQfLCEB}qWϔ?p'lis+zǃ"=eSE JFNKG`A`T*hF%rxI"룪[`"MqR5Q otޠoP\({7>_܊܊e 4KI2HbY&"GF&^HhJE%*U"ȤB@@2!ZEbr4(2 $Fp*\@\@yq;-\ BڂHBS'ʾa]m7 6*Lg(DZnBy]5 Ķ6@%KR4?=$Dc *@Z 8]0g 9Rl~h{x…(JECyr(]"`1RQ;D"($*I $(&bA`(i$*7 g=C@jcz9uJ(7𽪪k6R2kl·:2'x}oQXtX[>Y/x#rc΄+mU@B:ʘ8`@bE #rGM`pDe\MD^r*q?߳牌a@#à&*'%T *I) %ȍEJRTT%0dIJH@dktɪ9jHA f":hQk1a'U ^[SEg]RrCt )a QT dHv @u)$'L9A.!RA~`bA0MpJH(&FHd&XdS( [zxR ܩI$fPP7>%̄V f1+{nדd(Dr_[$ lo#HDN$k#6Fq$ OS: po@}A4DD@„*NB S'^FHNhؤao% "lZ@g1@^Pebo/@=iV*<  BTpV#XbHD&fk4ZIQ# |ԗ$AT$T37„RJ. %@ZJ%(KEIKIL R E!)l93%D&@ vH78%*їR%7$"^9՘Ú)CNti~ ΁oT!%X#xQ2jvas띉'" mcQFt@#*p"/H5D9"X1RڡM7aR7Lb *r bQ++s[fPY{mrE5H!A߹ml3ZtQ9'A¶K~gqH.iy#u:r96ֈ$UυgdXD}R3 4_]w*ͩ2U~}3mZU/U 9>PaI7~w}>bAȞ$$E ^V9T R-P;Sy;BYku z?=`_(ch HC:VTf[R@/l=HD]Ąjۇ1 lT<@/CKcӉ}ic4vPNVAIԽ#V.% =@]0T#׬D,A@p 4*~8'Hj͎T3I :Esd#SWzq%gbiհ쏽|u!S{kEo(!| ߽t9U o47,~@k?QrfBX'_Md/0,Ayw1qL)xY yxy|*bIH0T$TjlDro 13P.=R DWdr.C2>MM$Ag1oEZ #R"}c |$}\\ψ9Lq^pMw]yn=.^@ `?xP&&ˏgg3j#Ǯ_ k-$PRgha_ʨ\^|dl}!Վ&mަw<q`)#,QV_5CZ3 W[v(xo-yqJOˎ9fOy̘b6jvy D*TVsjy7]=s5Yvv'><,%5!D!|oslT)هNeںTQ5~hIAU=!|Es> US @6:[ " 0>U3 0 ;6 tnYW9;0޹v,D1 O T@}aqfcrD21ԗʽJ3ScRGlή*L|!H O0^ }?oѼ:B99O5ϒl0I=@a d"> ͇EX͓'b  l0 d`~ p `j$i(E0([5(ɐхyVS ( 62CEL08ƌ eD%DO$2bmqY72d%CcP:1`ep09y<@beAS kvgm HH\#Ji8Co+\2 xE6~Ot=/ޑ}Dn V*&B>XY_^_K}M P7}۳[] z^;\XhK| %tzPfxiImS>*;1y([ȃbmc2360&_>=ʰ p012{{4NV+URX"~MVK!{*7E4Uе=+'$TY乱oaa=6/NzyZߒB.m3[^t9FiSYaU)zjWmOEA>U3c_i^UFBR6ݡz--2Y6yU r*.\x˵V*ͥ+)g?(Np*Su3gxI ;I"3trHO"t8FVC)9t< w@n,͠?l/JQjzcSږz:nzڍivA`âͭ}"n!aնRm\YWm2O{˜ i e1'3Å{wy=cuNF>LN;uZX).3D^FQ,=jR[ d"oV ȸPD,3h.iR %ı%@T,,/Z2j _Zf*+>Km8a5((@D*x(YbRseF䣞1,QIe(5QEY,BܽjL ,m.K(pdYIeQf(Ff!EI2*F 0bF½=J2(g<dEQR$Y%BQ(Z"溌ypF`pX*nDڷ^U^Tͯgx` s{q~g~w0!LBQ)g(JVi(`Ee,5*dQ7=ae35- dAA )(490 ɪʢQEU*5H=6%CB@⋶ ~<_d:_v,QYBrG?j-ʽ,]MN2`Fuj-_KXV_2/N_$3= RI%G1s?q69c7U`X32लCGUn̶ٗph|Yms j[d0hd!zfaMJc0zP+WCP}5\/~p00’ wy\4`~F{;ö@Fw;W7' LAI4{BH}{"6%ɘhRs=57 **}LH, i˵璴%<也Ӈq8VHlcB0 z2o09Ra w4Oj> "~(Z1Uy ni5us LmdxʳGS GԺpZ+HuW,mkUٺҲzUƩ={y;Nv ͂Xs)P>ФylLjsDekkd!%BuW}[ɛy?G9 a>eX(mO`1Fp1u˄(Y*3FlyQ3C2{f#7:e$I9zul%G_#kr@R?@yIf|ۿv}-Yx~#ky{GsQt3(ɭagwLGvlK [Zdv{Y.qi]7/4yD^7oVz}F:Yܥ]r)qyaժȋ lJOcTm噤1 0nݭ]17*vu Bwk#TC^ 2l.`NN5kZǘ;3 h%3=UN^bh4YH}- nb&%jo@*+lft&rB=k{Ek2}ybq]X{/g[x 4Sf:hM U&;o˃D!Rā%J f`|>y#GԳNkxO8v'+)} l[J=Zjh<WVTgtTuEgh0a`_`& ܂͜嗬Ja3C7z^/T<&5iURkzo8JS< }s dS |Lw3{xNPܕ0M"JLՃm@$tah)5PA*h2vFw6|[{zQJ*l,zU4=lv-tm^;m[-,q}UxA GCH=Bw*Z=JuTO)$u^MV ߁#Ӫn&>+0  ! YD 2:S ^܌IU>m5ŠGi_ҹ6i+ NM^ :@";wi.mݩ6ρTy?ojɮ !&!)@: =IW4z_1ϝ~9+|~_8Ym= |.p|&ЌW7>yL#&q!f79<6Mla8Cnx= :GӸѬN@kWgӏKoFVH]sM~yu2HH8 *lmGwg~:UDwwϖD mOw:2{< +BAה*3x21p.%Hf|`0@z &z~Hϴ?~ џ@M.&yI J.鲹yfXعʚ Yp͏NT.06  A"p(zrW@Ep!8%03|`Y~L{AY52BDك}>¶@ }\6 3!S\Lff4~=kR~F4 2gmfd,ʧyLJ=KPш jd2֏&ÆP4UFBnCIq.y 8Y0 `r&+FLh͆ &#2NQOO,LC HI Qp04y?{|I9 Ɵv( "^`ຈ"8`9J-!E$=q]FiP{6TF3P'=͎aJ Y{{@6~ZU9* SIC-A2]PpO8'c7%N6s}>r1Uk 4r_A(4!h<<;2kmBfٹAFJX5 2 2@ f{@ϑxyߠ@*,-o+oʭWӴlݼeX^^Y%ݷ۸m9\p沿ʼ `hDFΌ~o}{H?r0 m?!@A#5Ƭw44dd>%χNF~#4[,}ke?\S5y_A}?4w9 dR2Jcw<şm?u]P~@!㫣I+^<^Z'iSV0s3 5>']Ϯ5DR~?9Qz;] Cߩs.Ca&)dܢu(N?|e]qMۂ'dwnXcn֡I9hz]f̦%lc;ͶĴvD4߬<zQFoiFs */a^?<~A^_w8fZ@?Jlr S*?GrEI_rYx[[Tg[ȥ5uj;{ٝh ^\L z|=!5;0_M\t_-QЃLa.qk}׭1n> 繹yi^&dZ /9];/I~=}4G}WVyVj%WNyR4n $!_kF=&U>=r< l68p@$Up@\Q %J,Flhfj29.Y/YsEs26327[]͑J(dfl>~c"ڌ̛ L2(ڢaդئ̣JVgsYgF`}lزx| 3ytVC&`/cH6'x'}뇦p2~=  oB2}ޝz:^x?Gc#%9 " ~GIJ?O{, ,QE`~XP..QrPY֩.QeR (v]_4\^ˮ̭iEFK)5TMj:*%xr]4wyY[ .qeƺ@}X=֡7aHOfwԏ^{i>}mv}YwN.n~o"V]KP@iW= wo5}zp=F;}_o#}:#o.ővϊHbkŽm$kqA%@'U\_kI犧VjzM@r%y_,xm`\W1vM3ůc'rXZ fXv,k#\nӽȼR8-?LN B+UFP@kC@G⋭HNjIp7A j VgeUBx!t .]u`AZRҽl0_?|o`g_j4ZJ =؜DR*K^gTP{7'ep׭5c<6kGchw)c-}W|qϳʘٿtrgYMU'W -כ7gw:Q} ZՏ'vr ezk\wBʗv qoPXT86: (="9vlĨx$ f3ZI:B-O#enkRA%t Wa(1.6݉xQƺ9=O+J%^_ }ߥv'm(w/rXm3 GnNNw;DmF_Kojk*,;6d (<@ oTz@ܣ;4HcBZ91Z!~OnL޴ڀ;VCc{v?m(<dݘrOb@Q eF1c5~L aL!k߾MscX`o/Qc @˾@.dxϓP `J PdY-nw naꌡܴw>0l=NOY}{=QByIrCG/eD%r ;7:-oSy~ n^w1Y f͚aܲd4hl`wxX7_mM`Rk)l AӈT{gb3nB2Dٰ&lٌ2ah4a 3d 2VAPoІ9F{(vB}hÅQ%>6!Gݷ~P`7r !hU@P0:QvOy󰧒S>mзlӰSVʬdhŝu)_HbB{3A0  Ps^Y†B#^EJ.Me^U+C~FC|s16yɾdh0Q7Š(*J1,0K71?5tOȽ)3ʙ~e7O,՗U~7>T0)HXO|Hzs9xsѩLȹYe*K,=FefT .T%.`z ˒*Y2`0Qw?ͩ(Tj71&KJ333>Gry  zyEٯl@KqWc=/Ku]n^?:)U,1ݘm+g!}|Vk-]$_;CI5س>"f aő`U}"G;@J-3;M՝TS3z+nYiDa ,;Z#Hr_As~vnkZ:ݭqyHFL:7a(dA,?e?}XC/?}t~1+WSou)HXl+K|m a(]U Fd-! %w[F0yB?wUx*;=+EkVtƾ5yG#>K"es d!)(n<4*tK6vڰXX O}7ZMd ٳf0aXa Z01 [(=!a2dVfM! Xh^5|=YF9M`l859m3Mh3ozVl!¤Umuad߄s 3 k&jsٸY55!c =4jaakkwv mNс}&1`0&^i_y?^?[0o5oy6SWlWɇ!H\J%F%Wiz<8%I-FI-MG/hK-)Hr?L֠Bx߼mhh__7DDCGᜤ򌐇([1Z<٫B'#aΩvH~8Rk>wأNlhw=qF|NI=γ/)Z?:HGؔxn}4a`0K0cf͸sruvC]xWalJT7S170LҋP9t ,^E޴]~/ͯNc"kD0/B̚[޼u_@ɱ}ߌIdn'xU+E*%Srܕ4Oֳ=MG9ꒋW]\2<;_=8[V+g}-gqpUPyl;Yt4g?E]iX5r5i ,S|AGϳEP.[kr >L;X bѹ\?э1NX2b ( ł/lAu`(C> am&/G\3:N$/\S0(r5V~jG.2mǥd WunAW iS[~(dv <2ߧ7N՛B^a~a:۫S|]4[b<-05ݘ›AnwPHKuo,VBUC xmW>7 oFy8qdpf@w==KK XCW$鬐a#I25l$/4qppy A҃_&AO?*vI4k)"E$ A@2 ~JiEWU]tW[Z/-؁m7f >24[C @$nGuI.f˟'%s$I9TADG?~{[vHI^7Rl{Yc8"#ڕ!? pA\Qf\Ls~16aط;]քO' BF>7k*8^y/ܻhdo1 7n1{?m[SS0V_k`uaM~Qqv..˖`fߺS_x;e@| 6jf tu?VXv:Aʩ5 ՛h+F 23=NzZ[ 4\Whu*|GƎ٘$YqM~m3y/bԺii@@1Oڵ}igMnk/k16A FgF)" t CPKZp:nbE<y%޿䩄#V=aPڊa48ɩM j.zgAD -/+1=tOjBE7qPTnAWƬAf]j#򙺠 2 p]U `?辯}}-uܰ>@3a+<%{l~7noA!ܳ~(hmf5>OGj?MOe@ytݟy͗ UQH* p4 !O*0tMA;FB\5$w\6l#gáΝsy{{F#_ߧv* N{j(n/4xנ7jGUk`$X@̚0# O6 0<~w ]2㱥JC PH)(>K #׿P;d|xaj s)ET!Q"EH_w( u_Oͻ(?ȒdJȒ@X Hٿ'c]p4Uk'9fWur-" ,;9In7|&7K{X{c<+Щl}{QU G2ۿW;{aOhq0"{}~珗nutӺ9vd˴uѦ=4*{h6sC3Дmz0֞Mv.k_;! %,]aSC|ta1 o(гa*OY+Vvřa"ces[߉gu/Vt9Nv_]oy 0qQQIyu|>k$kTn+Ou io)jdg{Di8ׅBWvTEǤ ʂ(`*XWz\,ġBtL1YR+Pݠ_*&鰳lpʾm\-~ɞQ>P \YFzO&;+&gz0?q9P0Ú͚DFC\}'4J{(h?쇰{мss$Sx+>ٳj|o;^'[ɕ֏^{ij[xe8+f p1w|پRw_,1S 4 ZZ xU<*+%w0fFOpz٥U,_sj*7R']S_q}c~wA-\`zk\1>zêMM+ buvٗԷ0j`P?9$$(> Lӷd!Ұز!`cR8?#z̯r rBsZBr{ cG%v9.4_ĸǶg)rE~jsK<[8-֥2s#$ A!P@`װ<^iؔ=)j+Nܰ^z (e0\KhTb lBs3#$TwmdY[G};^2m27B/hn B'?BsµD(FOoh>.Jn:ibz6+x7:]&δ3 ?y8ӚJo&E~?[Ȣ5׈m:=YaFBӆV#M<>,[+3Ae3Xbz`dzRTf6{oy-PvtcPSӸxHo8(A>#a0G0 2 k=޿[،l?r>ɝO}{?'ew^x䌡ű᠌ HAV(JE)PЋ0J%[#VQc?yQCAZ&ߐR'?DBmf>C~WQD!U9Tm#Q.8MbC4Բ79nX8׿Ѧ;Ѯ/$h{9cN[mg񜏕uU`-)v6 x RDM= [ZqpavlX.pO^;yƂ#> 7AW$JgRd殺uJ 3C_g]Qz K;1\U$x;"mCu?=*=;I?.yOޮg;OkqM\o;HECyY~SrHõNw dZ=`;0! ܼ@[9C->D5b86={ )/7[ _We?:҆n0鬠}>2,"?g5rЩgV,!g|jw1뎉o9Hf!xLQ@Eϕw%> xEa(vjq hӵZJBW_ւcUoL"~܀<1o^Oh9^b[W>Ve"EI{=}d G}犩.;jեMNRFM~Yu/HD^VlD?j/bHuI ֗Gq^ 2[Nٌ p|%W!a3f3XgPʿ_ZaI' oxz|PLߙª[K}2Nv].9tl[j~oL۲hj4JYR]0뒖ECԶmmeyq';E7ꪬ%{|k+IJ C>1dtqfL ( b9Mt&\M _zcb1te̊y+gaU5yMKݹCkZ]bS Fw\JϖUId,y 븅~t17p-ڵ~ԳwVt-q#rtDO TPzWJ8.+K {ȀPB uK*UV m%`ET]VPAHor!d-B@3ֳs %"TرՅ>j,TY(]C ԗU"d;Am# XhqyCc!T$fu%30Vx X>a=ê c9ge|SW1FN&x[?^_p@lpk`6}b L\N=Q\0^ۛpL+&^ڥ'4 RAd, nUi"56zDfddjA|"22<#RVTB*B O>b=0G'z=Yq\#wp4}syf6mr>;`xvCio7޹Wp'3~CWDMb?ڬ!?a14|0?V6!x MHz(A~/^e6 8dsϲ EgtK]NtnġgkЍ(/QZ6bԓ@**x,>oJ"3batkJ iwu ?ʶod8S\XM p/d,yo9H$0 UY 2`aa Ł~25a MVc <ǓF hzߢ. G -tB*UBa>烶UlfQs@`&ax Tv-10\#m( ;646f!َ4ډᱧ ]gm9>&=5i) Ye>5I=C멲c xM YEqt7HJ[Us/ GΎNhGb= 0|ܟJ4ӧzC'z[lۺ<[DžpՕ=r\S/b};\A dr6_ x|SA1^rwMS>ɿ'anrQH̨]`?CT$^VgiۖBrཅbSzO:P,S2.P@(jeoÒEDyDqku݋O|gqsL4ƅDRpxXT}^5,.cJd;UtKJamwU%ÜS(͓ ao`'5jwZ >s@M|YyNɁ !& 0Ra͓ C`^bUTm^&.͹r/5^Lܹv9dȏVѺ@15ݓu5kJɫ D3K6ay?\q р 4$3JU*AA L7vYQ$ ,>8h~@4Y cF!?>}O( [kTݰ#`vQ %9 O[kP{ VЇ̦o*'~,z+WfBXYXo**Ws;vƂB(BmTujV ,N4eXnL!Жu!I$ȐC?X*8V Vb˷U%c?=`z٬ MQȪfo0520ֺflɈ5Cajɽ3+6^F6| 7.z`־=݇wΈ}miJho@hD:Ӂ7t a<}gY5dxB]WTX|-OLQJҾ;?E@$ }4d=J|xz!8(uւ;nv7xm ^rcXn /mԋ%[5e^wJKG,RWS$KqT"N*5t~\25'v7;'5NW6oRa\0^- }݋tЊϲYn+B7)by{yܗB ހbwP|!Ƿ-eK9.p/\>k^*NPC d<v!ݚMyVsXwD)=}jezŽjqU{xz۸Bn~ H 43TF)_v-vW1vaG1cB^GeK :z Q#wM.?ԓPhgpiwܻמe)(. v^ A}>tOR<Η% d&=XzL3fv~`Sݵ *V=*f j0F^M[fNy@9Y0hf]A(|'ݡzH]GfcF`f;cEV0g )A.a߆@̼ \zl8C}9Q2~=47KpMҜ'zxg;L %I:# (/fpҽ.eJ5E\ SI'UFC'4 q!抟J;bzk8紮G bxrވGQ資6ONm9Z5~.f.a p',<@tⅿuV2PčJ,7:y,߲BbҾp?}cwOu|Q %avtA~$S,9l0-l4=YE|(#2,?&Mp1~_̖EрP ǬS J Az''oHӗ`zj 9~z'[\Z?oj-p;Kxry>v7g-5- JA '?ugy=/ٲPh$.mtTzl&*ȲICQPB(srR ag`6O/Xt:“p@WEq贊 Ϥ7ory<7ŽЯPQ{7 GB9Zsu} #,{H(6L !ƊiX˕FoBw1̜ a p hhI48WJ\EyV0DRw5RvbHi@\7$@X[GBD `{FM{b+`xnn[u4oL⡀Ic`.;:TLgЙ\ʙlTZ*w,ݏό%:`T*J ,n%+| (M}~3뿅ήy>־^)ɮ|PHXgBrxL0662 k\rװ"ct8KggE95iPQ0\* ,ZeF3JRٔgEfT*-bjf$̹gET#^EJYF |ϥttIxoVRQk1eQeTQSbejLCjK2kۍC#(E0ȲmBF~sQIKdi.E Oo aF/׋;] ) EBbnw:< ˫ k4c؀+*ZU# ?"!# R lҁ1X>c~cRB.: X2)J%CNQF2O_'vQwaU$fhP$,*M$%XʥkbWØqTRt+c*R%&G~f`M$nXTR_CW7ct;s|wk'0="zٗ! ((Q@Y&W_HTu2*BՅ/2ۖgѴ9Kl5#A4]wIN?*Σ9+r#!M,ƶ KYE*dYjxmui ^;>/3 hJ4![  1t'3O+a=:>Q=5Շ|ml)bg𭃢; GQc,e"ά+^qBqBx/$wB<|uMTA4CM $?[FYH:@;m-Cvf󕾫`Ms^%C2dVhr&%IbGAEᨭ 1ߛN ?^k? Qaml^ϛ/㌔ϧ-~ wT[|kp/-*aKI~K?qeh7ތҳ2<_aI#{=2D  6ޕo|z74P8.Kt@ #j4lx}O/C \#E%-9xPq_bu<݋TNreY$fCc` w=a/;P7{(Ll Q^! Zj}n.8 ZNXz /ų]aljS[A?[\6ɓd8?\j4d !C&Oh4|&ͭL0 2dX3`d2!}st60߸?!L2aáq 5?Uh: 8FCZºGA5nuP+mjm`a1'7`n`j$9[o5$5N[! wl_ٿwtxFk(~/$lJ8-385(S ޻9:( 텏PPP w(4.J&>}Nޒmm26bmyc%v/IXkSyʡ?K\?9(n^g@s@q #'4:m@+d -H`a[0ѭ JB(́ ycXnLvi>a\sJHuWQA&2Ȋu£*{J&l8Sq8U!~;6LC7tCtD2t:{B% W;p?ajP7D$2Ht`?fM)ݏ`tg2mBA@@!tS]Uڂ6V \Pp c*6Εn~է͸6bjӂuG$ѵ_LЉwf%YG=vҀ2]\XB)ax uJ Lms~ˡl2>=)z՚lгqT%j ,\0[/ѨMʟ|O;Հx:= 9N'ǘLC~P_["ސ:(M3@D'1Qj8`{l860L~ʓқ J0p A­ld{w047 9uᑼxj -V嬈ykI> _KT~kQ͝R+B܊xu?ʵn gdk4vޡGZBzԀPTvJ ѝMZb*J Q|G7O8G|y'7(H@n 10o/CP~\{eC{X BA <}, rI/ma30@Idۡϕh|fҮ/9?jUEasp#rfuГ h:?gx2ȸ+r) xF`t @T(CAr~d$p7m8cZX`b_w=h C{= _ ]ZgҪu)wpCכ'_bb͏I# }T=D{ݖ:E&_ Ui7yB( Od|)сث` L4qGnu $9<ױ{@5iy7Cw"7Yf@2C$29UW% &% p/$`y~9<3@Geu`oB2(IAOXʶd3URm6 Oz{OF"6LB^T )ty(~m;<U{WFh'jkx RP!J s{ޜ #v@1m}|w3p[rsⷝ>@zڋ*_y85AA@q=3Bx J44id y$=( (1&x#{O&]FkqL٤;qA]Tpo6Ȯ|*h>%D-[ tnDP&HH4\9j0ji@sZwE]X6IiĬqQm.>0N5T\C8;8ڇ{lJZ#gf.m EKsG.<.8x9q#2!HQ#?bonTfzfHё,n1CۺfoZrpf:XQi@孢T@7ʤHz;"Cnl&iAg.:OFoWZP?E!95F- W<խiCM?6z`hRr[fp5iEɝ@o*hเ .JIްLC?왦08P~㌴z#{:&pi8J)1yPAy`,8<*참cO쀗MC#JpV!1y%oG$u1 \ȗ28InwVk'uu+‡16qoV@`v41avfAvܶ]3Q F7ˌ _M:‡v[ܦd CśG ?aL۶W =^'9 )AH$a=N(l`?UBp^Hƨf"zf ܤk3g DID |bO⽛<G.m’qg*pU؆U}3k>7 ?F4CM$0BL<900 o=uj0Γ`2O-Cw绿OOK9p|%2 Aa`3gl%Ib(,LTREs$)IDf C֙&T1#DL$ {Ox})Nm{=5=3xߔ :+<}OTGUioaInAS,p?49Fî Oŀ]PL@0? Lg? ږAaA7+TܶS"ȢuJ-y_J)(yCϰMe*FEQJ{:y%RbJ( EEQ5.W2!E"䤤BiEYB;:NLsQd+an-"8e؛0T#Cd6~nq|Ѣ_#3@<qyq1@Oc><3=gIf "s1gb˓3;9M4.Ƣ̊Μ JF1IߧyN\SY3ޓ6(%ĬgW#qt(ZJ3#%5 1&? T0,\͕AhTME+vp;ll~k[7f8Oh ѐ5 gp !iO, ?8WPZUozV%d^_ \n1 kb<؆\kX,# (B4/G2,;" A{xoi߻i(ۙEw1#WP]ñ K:,0%TR,z3Ğf“|Zh6{}2%QQ832)8JIUL7DTwVF3h~ oê郁S7!}Su<ϵ+8MnٵhV`fko(I 4DÁZg*/͙9mMńBTAm[YU2 6Ica}f`= srD|fװч.4L~aIh?+g ߈C5utД֞ј.VK&;^CV)Eɉ;lǟXx$|_5 Œl0Y0*P-yPn4mmuKaV) Aj`- *LXIAbj(!rW1. 0xW$:v18} yw kצC2.k'#`L0;1c^$lkN Hu. pb<>)M:l)Ґc_ 9S2c!?0FH'dAEآ0D&2ZtÐXmchuVGfo15fQ_>m?s-~5,Fy.gT|/鼣$r ;G|>l4aG@a0[̰Z0c y_clo5Mckx7m4m /j?as th{[ ՚Anqn57 L6o0(6f=C_~&9ȅĜ#7^.2 /qx/ oxo4h8v7 9]smloYD@w?[oc?;N!mf 7N{&wU?&B$T,b2fo~|C'ֽ@pȪ1n@Ӎ0ڎE1Y˖3x]w?Ti w6@ O&gAw^ 4~{|e䇙hC:njb;@z9Yo@Å4r"C5trƈIh4x{cF G:cc}H :HP\w'88j9aձr["=4saCj:#z9h9}Cs*.9p@kHmO5 kc 5j60` l6ƶ![[6MmÅ~kQFLwV74aky^G.(XR@ek6Bһ RܸZc,7zmvSͱ.9Z[TqAr5mFi59 F+mk4U|С}[;0Gyڎؘsq5m\9CKGdɐtsuF+`;6l\ew-`;r2  .Œ k>/$ݾC_;w1k7s60ؽ<[faAzA΋ML"S5;Pb0iEP"?fH/Ii&yrxm@d4f` !FHIRM2.L.ZK5ImS\&J% m}P~wضp^vo@ѩ)es5ÔCQt4H= Ke\YP; K 4MP\nTϚ3r2QȥVo &dfOuk3 S?_|9Gu~0-W  Add Eh.$d"`J(ļ5S%aemia0%`vQw.+3<2; Ⲻ2ʰiI@V+Ez5I-lٵKd2vMy 'ⵕ7~Ǜnsn&fرȭ6a&D9cFe CPaքݸ+79&jI(ЂOn7b(`oc+JfCXw2 ܫ}fAYFS2`l`*r槅lo3Kq7Ck:9( '5ƓQ'/lB[a0͂PfljtK~CP°ka'[;s{ZhFe{kyM|@`^ 5[5\>NeDFrK M679M4D>#[67>[Ys^٫ Yk}ۖNjj9z+ &egKPG% O?!_ Ӱ>ka$<<,#gP۝@޺o25 Z1043axdVmmf~6 jߞ-C zݣe/'`[5KfBMeD.s8PfQEeH#Io_1V&aBC&%˖f%ʕ*T)LrQ|UUA uҡ5=Z3e:;=/F}_~ 28 Oes):Aݝk pCxygOHD8>&mnL2d>ymeWy[+v00kie_@.-õs}əE r55Z>`=|E]ljs 2dfH6njkka<̭kasS7^j28[S(2ټҎGPa'nn )7F>qѵjr@rN[kcsx\NdAX帟oQB"A`+% krsS o0\qYN&!)SMl2Z^,o%dA9ޢu2h!A& f543(H}qQNL&kY~Ϟ/nHWpx4]#N̰4~%n{>ѓ[v<,V8݃d8G6TZsyxofTa˚9x}ܛ.ռnh]&A 0߁9jP#@r6 ( oF3KZ6mˏ{}_.0<@i?- y`;UMFOly3ˌnUufKf)sl6ѡb\na"2H+\m!/߿K;c0~Óx|`܄'=yǃx01򻂏7|ld= o`?qѣ0jd,Ѹٽ3c|g?e4zkd廦yXZjlj:E\ Nē 7;#B[rC9o7!>̛qkɗyv#4:!7r3GI4"Cs(``+~gNQ=3!3ʲs&%(I-Vj)$6-f\&ZT?h[pkPI(m2ljKF+"EÐ ggc˓@M'F[)@@@`ΔvF=ku5Ε 9!  0eo<դe60Ã^ɱv4L 8L}.UUQUUIr#2bc4Le*d+ܩ9aB NCkNg V-xMFl`⦶9MK+9t"]4-=IQF]\%0gfz `BC!y1Dʀk@D_fFt, rc.v{%QV4S @ƧmNW.4ڜ9|=v.f;ף[8'η-B1qWν1`,%@UmylYs) Ѻ BئF^gm"2ݙ3x5^P3Xnq'I kF^9VӸ)uy=ʏgY1 E 2 '.Y/׵{M ˶F4]5^NdpvDM9MBCSSv6]{dKMٷyEՍ5[ y=W TCɘ:Lh,eC Sm6itFk)QbFYd[)x8̌ZP-rOI)fklpM 0u_IcJ=R'Ā+Rվml0L&0͚ՂaU#?SdxG 93GPmnw"`Y9 K aJ 5()c_׵8]~U^HxVOVfn[䙘XnS'(ssajQzxp6Wop慕q0aֺ-,wfyXd<9E8]GD/_z2xg0Ll`#0wEP23J 썜Hhu,L7LTT5#*(TCɌRJc`Ne1ÛY. 1;~O7(EǩHBd( Dr{.\G촩<+9]?kr XL̠f4`hوT5+0HXxoo=~޾ixdDDAFYFӖREJ (WvXXHCiW);*KE%RNh3,DwڨN^FS"{X BڊEQBQC:isMy=E˽_-OPMxS~) Pd'r@2TP6Ň 8tm`h}sdj\04}aË(%] 8eЙdd\:M&bg/)y=,47(M96,37,f.^SOꆕH,iQ LXfCTڤ19L (0c8Qʩ0jP&#ϜWKvUyog}U蹄sʵWetPѣXߺ޹i< <2bb:``6XiAw[rt7m>;'g LO'Ɵ|q" ٱ6lݛ f0mCS! MM?mlٳd7ll`hɵL>f ML̀=h|?MnGÐp A."tKG y8lC61!tX sG4nL 2js-$ !( (B0dWnRBř`vGhnrdwi!g{zY-fȧ s)<{k]NY.At6v毌e:/h=,ndfv60 ͣkc&߆`nq6`&!7sjqfh_1uc!s2e=ɨ%kӥcxTa4-+au ʦ}lֲ}! n@xDIu kG^巂֧Ǔ~Sk1_o7y Ncn"8p!ڴ kaMTf!0aIH`0s:T͠<V5+}^} E71bIB2@ >J27ːLN ȡd(Cq9F XjjJ%$hQ2(g"z8RubYE$tIXѧRZg z d J6#Z}Y2%07~EkƛݱJl}mM\h$#u{i3@&7Qu/kWsM5zڙpNˏIߛFȩt]& bp3;L~ikFC, am*LE^RY ,hdKe{?b7M'eR^r!d1hV(D*I:3 3euj={$l[]8 /2`_ <,R.K'BD >АJhc_Bx_"}|Y!l9_=Rߟc6_/.o;~VGP >p@DA¶C#_%zjz!T&H `XWpHŁy XW¡SuPE`~|+.8Z u8gq?*-fO!:`pW.vɿaxm]S]s-d8YnFԦ=^q;xV6 *a֞&6=<\ncvKV(\Gtod݉punumC"Z}[k6ml`3[gw A]v#Nc\).*~n+ MӟQv%53AKdYݖ QydKDl&x3,?Ù5aC[_pm:~ :BȍjϤ{_hc VCA}-ܤ鬟_RVJ$ F~U jSX(:먍 MӶV٪|~RJ(*+P\[m} UgO0qlgS?rpm$lc6"(0P N4bi,%Z7,jQ$0 TM xZR+"֮Dcq©>UE)%P2+fR \|Bnyqf`*]{3y|fu8T&PAަbD.yp luLI /lý2{Wص|=ߊ0U#9'ύ;xޱ41ŚhÖO^P1 o=1u v>{Gl]yxX_QhŬF\bA#7W*s]7>=}N(*a4 įȉ$((2u\ŔCҐUhf<t<0 o5KD.'O^^~7" —SIS6UGFE H]T+JpQ ! ~/,r2chmcPDS;Z7Ez# ތ74Dmv'*oA}/#mkm6Zxm2gn3( K)l(|$%P%IV4y9|2ZTc4pjhGbzL0'@X֎TfDw2HNS)N*β ư=ͺ\oJiCf Є _{P& Ld5 tmBmC8ڮ;ŖT/ vT<% v ߑ5n`xwu84kdN͐mu]W ~@lY!|ܦMϢ{v:؜Nbfv-V8- *0m2n[߸򦑖TY\6rp*( mv2Ba8k^ thAu~5C8ddϿ@FX: rͣB❮ ^+kv[wl!9 ٸ @r#hWaּ#u]*㓲Ü0;cx[ a`۞-b91ЛFSq^-W0ȏn75Ӱ~[qN| lfГB+%E4O;MG*8Fym.X{Y'||~Ɠ23qb17FRF3(BdY"f_5P훍&l7ja2lS6l򬐣p4d 9!RaF,0 65 c1h03`q7>*I񫩫4N&zJ;HUUcɴlmzKJD('U-]'E= <پdUa֋45Y2Q@Tg&m Pʥꂊ(AH4v]ڇxYhCY50ٶ"'Da#zmQ2I! aPQ/F;֟wT}ϣoܚ3r, g gUVuo",-!HOԺ ~Jd@ |bF7IRF*T,,@ ˈkhAyU*a!r$QK劘ZjжPd' ,"X|d8sˌ0Bxa::Mzf8b"2z^X`VTw ^ z|wYn+WdS~ x*1 pN""4-\$>;Ҽ'do<696BCɴaFC"̇>;}ѳHzz&ORe ê-L[!&l^jd8! !P40ɛaaSd! cbXDI(ɂe*j@d$0+3%dIȽ A Ds@d͘3C#S=ްf9CROa}~q]g >n 0 GA*:(1yKL\/ZJx_,^|0&tˁ@Th;#6 ı{@ߖeTbKu㣃T($Up)ky#Ml|jF<Ѡ!C| HB+! ٻ0[߸l^&\M;!=@1:Kjض6f_tq +'Jۢ<^¥$!D'3p7I4 *wP钲5ƜW:nwn(l ESXb:6[q~X(qPO0>A֊cgqq<E 6yoe8CeA gz5clԉn.]%;d#_^Złm裏ml31p4MɭT ]hFpo 87vok7rRՄ jҒmyK8#;1s}/VpG:Q)sT ?FK?)vO(Ӏ?=)Wl=f2fQ:9P!şHB&Y⟟S%OH߲ghKQW~}/~oXgEugx>{y<>< @gyW^<}g#QHy ;xD`-{4=NqOWJiJHoCwJ17:3A'}WtuF37m+x{}Ɩsk 8f_[Pg IY(T0g+>- .,k])X|ɨ2L_Esza U 7do2o.NU<8^%ζ6iGȥ=wr_x+gˤw4N5c݆teD,Ϟ  @B\MRL\(zd.>ZyR5l8/MM3+lt ;wd bLKd䱹qGjMdvWa8&@A(!ܻfzPw o#^oV_9?45F^̷=y2dFL ^ϰz;F x?zKڽ2p\p  ^Twh.luҥ*J%= 7k9^ e[^,Soˬ]QWʚK+d8J3&*dgU=fdMchWSv,=(cd<00'd*!zF6 B!k :Ⓛ~ND>\·&N։">_ xMO?ԟc}߻}fE(7MFCchuLߒjø# j~zPy~WCJ(Q!؆jpg<AC%{ʲ 4H%W2s@ B@Iz>W,R~ʧHJ8Vʪ>0mMpBozwEH-U >8C3Oň}wDB\$RQR)JyR: ̙?O?!?̅0=#F7N}$  odtnmB=N$3*!R۝\C8xb0)bW=~ztkĿuy8"2˨-Oav-fVs[*TB [~lΘ\ߌc FBN)h\*8* lIk.izy AZ#CQ$̙dLJa&hYLP"+l__=z {rЮ~ҬQY8ZΡs4P#'lxD^Βqhe+?A0h/Q> =C22<)2epiW,`+3`\?l6r\ h&RI[xR!ӯ+lG8s`Fl3nao99 NGVѬu!fnG6ns+]g:Y}帇7:޳Q(."ەka08̖#r1pɚQU9@lf9%x 0.I0Ow%H^{g]9#g4a!枼a J\^@r?T{`!o|0(!%>u]YOYWjݛTͽT "Y$|?ܿ?AT#JIb>ƐBo(,=EҖdzb>@(R~4=QV*? =hBb2Cb2xaOU-Cƅ NH)3ҍw ՏއZhְ^|c̨?Q+@`BaJɇ"^N6L IRJ))"jTPL2Af?T%)Z>Oe&y1$<_=4G?g?2`~?nGxٲ4B+%`qM\$G):G0G5b?̐@}\ 5$'>]4bK/NO3UT5(CJ? Jez3.#s.BS:OE gF$4ʏ%$kW f$gC.HxPR3T9s-L<999mQ"!@nfɡbTOT&# z3ƈO$\Y.0bE&,HZI8^֗ Y7 13_I–vA.B,Q,PN6T{GS eyjcTh06]`LQ2)^qf(A`$ `.nO-s(Fk栐+Q],bVZ;Mq@G0N6Сպ~K7WNJv̘brhڜo +ǀ\D\)DfɱdͷXni&rn~L+{A1d;ose0Pk:l.8Xc7-5 љ=94"#011dɐɐ8^yA l0Zo:T,ၜi;{KM1@W(` 8`06ozMCf4P=:39$JGK_p05}x@^飭qłG>eC?C>ĨsrU鉻\;9cgoԅ!sbӲ*4=h֝}yGv!>zWYNV59Q:O_'tRdw1a^ HRU3u w2Au#/bݠ!PHmz݀ !W}? z[Sވ摊>1 } oc pqZ~v/ɒrϘLtVyb M4v-Ⱦu0FQR~H7ņ7q/8舥 =%Cs(((/`#\^D8J  VP;3u4s@J -DXv]ЎT[uyz) _E,vsgF,;2n!|RU@2*J:6q+׹_$2 ZqB0`3$^!rp͊ D9f8 R҄>6eApbLTK *,IXJd6 CTZkCJ1c93< NsW#:]sl *J]YZ3t+o-0j} _ktv("~RCHh0 @V7/^pG![bU[Z>9hP>ݣ- @##݃P?%Y ^G/m$VFan(؅Zg;S._6mf@Ő C0 0 0!~0g_Q*ae>6Ą RGRu4PTIDDTC{=خô^ T|IhSdO Q mJ_}?^JQ멠za$8>%Տۿ>"YsN\N L5غ&md.u p]Fi9] !p#;Vϕ7L;f|72H *;<EvOBDL֦˧RLdlQF*Xr[qy'VcZ`y`y=~ zE6+xqfJ ODmAKB]y,rʁ)Q|^W#Q>'|?$?;Ԉ}q glUQPvh4p#:D:+}yZ6˪. 6py<|?b?H8*"wo?4~UUPPUPPUʿc.v|s*.ЪD IP" XŚ*Y~"; @U_rDq~; ~"H@D{)Kƥ`xHVa l(ь~Æ< fȖE'`@msDaKp8V_k:0_ 3|]) $9_%Hg x=n faalK+ 2NOG" &@7j^jT~Py$ ҂(8!A |ǟDMo zWQG@BIghǚ(`w@I5^=$aEE aZb`IqN ޴zP>dHW~{?"lQ_Fh?I Px>-;}٫z֤( m:riF._('h{q 6G hR\?r(mz2# ;;sλ;uOEoYdy{UI -|Uxd(1#) vCYR;B/]#j]A!"B3% ʄ,#*4hц &L2`aF!@ BĊKʙLT 0+FH "73:CP1Cn̈8US Ņ(\K2\دX e ֩f`n@6ݾx\_$* UӜ&g*|(tPu- I,y`T6PǷ;:α,/8Ir, 'r5"RGdN L:s:g:74(R|0]AlF8HD(DZ(HPdrQxi vʁ-t\Oo_im:(t'z ?6#^<*".;O\}'DA@B @d* :\㣣X;R|-hedZ* }ґK_.STx(rSphR{.`㯶n1 ;49^џ|Ec~g_sh;?KsanTeU;rgS}JYh1>ofpx;Iտ1^4ϲxgaT}?OU:FzmR7\!qhL ycӧ[Z1ubP~Kau=>se!ciҧ:٦'|@uWZx3%b҄ B84G<ɍ֐k x~(d!at2++1&-oƁ6kVc\M7f+ %}wAQ~ bC>[wfmk+{n&YUnnL__;.L0O໿փvQaUF E("1W]WG t q+==۱o+&oaK4lGm-J<bEv$bVj!B 9DV&ʄ <՞vYOh/|As][Fih_yr`LM*H.T 2ɑ GID$c%d}Q4uDTBFBRPQ?.`!DrʇE ˛{  `&m  ԾqwbLʅ`AF 8H 0B(||z=uޜNِyV c (9aRW:%{m6M} ,v8,i Hυ1$n&=_$o@-Ĝ,ќ(0WѠ Gb J !VUU6ҽ@ '23F%oB 8ݥ vx<]c7B,`3(`P@iO{([sfnfZ< ~0NemoH9Cps}Ɓ , 0teխ2[b'3Q>_{?֢ :s`: D>&QZƨMo*ϐAP<"OG(+$k"ڙ`JrAbyТ=Sٽ}<[m>w{]cuw5tےN;ӡ×{ M1454Ob1FL= C A4d4e6 fb6 Ma=LQLil=& Ѡ0#@bb4e6i14iQGOzfM=GxzMM=C@4 1 2 FI4ij zOMMFz=OjyOSOIl=G h4hѦ "ЧO4=%=6T~(i=z7L~&'<$Qz#j@ #bF C 0&h &ڍJi A44i=&T?TO2MI~T=z1MQO$4?DPOS=C 6Ѡ-wC;hz}ؔ3$&L ce> ct፼z nԘwcmh2 VKfxI6Qه>%f9; 2[UK il'JA /(ۦᔡ\J;V+'SK;tN$bV*b! 0[8L!HX*6\1M!XDO+ZAͱB (${˺NhX!{nּR @.b72(jPYL(W}/|,E( s 4ƛ>m?a}K%#,621(1%8hc$Z +Ȇ1r֭8-=d{p8=^08{#FvЯffFoLbӂL;+9 "cw)[Z. Ǜ cgRƣn b Mk[hك+L3BB}RSZ3QD Z0 (}T@ou#dq( 2p@e\EZ%6@@~zxY3=C!R8` 5&]Q{i]95(bj5B'Xr8Z|WZI5ȀKkލ>6$Ðj0Cfdr - 2*^$!$ YxG8&oNܜHY#gێ݅f.\x#'DlӃUUJU:WƂe0#{ԧr(qYp@-RHR @:y~tց O&Q]^Kbms*{&nXV jO<"rnbsT{hd2cP@11Fo|Dx-<#x3D /24<-4f"ndlD CUu0j-3Px˒8z6Gn,qXV(Ҥk8nsT2` XRUDaJɷIMSJ5uc՚`AjxX*WuAƚOuS%Cn4\'g d!5!S1x{bb8МUG[G7tCʊhM;qCcڥ!"DPN*W\:pISkTY!Qb8"A8ش]o;Fn8fVǷS;e>K 1 sDKB$l,KP*9ocX!$1}z"^P ٥(h pJmL;j:]:c'i B2TBn,72Q fQhAjkjWi0j/2bbj_%NDC$D<jf‹B$# d{N3Ƶ]'Qpϴ2uz|gCM!Cvʣ߹Re\Qk0نc75>if2I;0;~fB>RxvP5YyUgѧ5 ^M~yC_ãv։ &2 FD&YZ֙'AĐUDι| +~}⃯rb q'& sr3h3p-{Ło˰¡"&ȧ^W}5f50並E2{1Qie͟rg:Rp]s+7slFFV+2']X0c ,Yv }')r2d,FQh`gAq!JX :fo:kNu8.rl9&4ebg,f4FTCSó'5ϤGrJ" 蝳Yx> D1@?vM\1u}u|:=f{)X ߃Z7/8NX5|ce6i||Okfi.-_ch-m ȅZS ;Re:lN x aIt@O8yD@= A dX )Rww9*{~44- ^z.Pri,8N7h#&qzzͽmuíNl&6@Bg{hmBk _ίni+k1HaIT4@K򝜢f8l}A4q4}mekiӜclChCm0(fCdBǵ|]ʜ;$ 㪍e[X̷1>Vv%/Xt|T9_a1:>dMcv_Λp` ?2ԡ1N+~)Q3d]ʶ`h2P`VLiT-v =,:u$`Y*#JaB ?g9}'~g < kD@3EPm6\}FrF/d6&΂đC͙u๶IlF!9tciy-^G]XK3߶ߝ!<S*sw&R4Z5⼌VUm=A8(Zo0Pf;x4>n͓c~5[UQeg6lf/Ug7:kmٜ) ` Au4^L u)Ձ?4G@E`30~[!(ZHɤH7BЬ!ykkҟl}Pȱ`Ĉ]SDb{}MnGy:#0g⤏8\m:RQlih%ObF zۉCAVgruE=;n8|yMr9W 8gf; Cbߗ F~amd9?#ˊ%٤qR>oeYi=J̝[h Fm3;c}dc7cy]f%kwܩCKtK&U.y.?Pk xA2 mLl$E"wxo@RW 3 3<7ok{VZ4#M~t(cmSX%|h.)^e3̋prbkbfEP3wzbJ65o[)xdz0>:,j q|!-_=n\a'y.nn~|VYaM'5(~%tBkh+3 )s'G'/_pp#ܹZիwhn,/۫47J;2ȍە"ܼ>UZHD ;q#lg#H$l73 *I djx9 ,VU!eU+G{!9Õ=_! κzez0hq8:x(qVIڪt&]9I|Qz4:@UF*$T(!R|ȝ7:0F _DzV\^Ԛ_N7?_+j2߃4d^/.-ЈG 1n ܾ#^5ɭP&R՟sX3q˾0șw&4< d`r +(b}NKF?u?GcEoDr@$\9Ĕ@ZdXQIYE7dsYt7\U \t:!>~zܗkk*4|[U֠m̦@D@H8: qлr?_&LGk&|t1_8-CwwLo'"~TޒILldGSy+Ϙsr@j\Ep,21P\bs>pBz?FÞ6kHW *@tTAdbx0zYoEQ</ ѻߍÚ96)L]9qYfסʰ9~/6Ζ xp`BMm(L4RTrjL.Om^ڽܔ7Ԯ!o(R]jk($()jۯ` ʝ_>%&L1~P4ƣ5Yh7ifN]e[W*~n].~iH1j] [>s| ^BtL}ߠ{`z/OzԤo"c7s_Ns]["-"]B0)_&1LcA+*ŊyKcwf3C+h?o7Ljo\ .ƽ`~/c`.fHi~^y94lh{fN}svuvK|/Mj8X͜nEFnb=fVˢhz@޺Σk 2m;0YԠr67BIEF$7A2 ~ȳզ8:;4}UM\SZESb)HYzw\KCnG??dF#ҫũNQͭYON`~E/Mu"Od Qmo262ͮ鑙`i9f6sR5N T-חGۜ^c }}i]QgkTfUk,Qtj) rh/2&nԀ~:;g>M(IeND 3Ha{ *0S|S^^pؗpᡴIm4m#?Qҿb< *Rwyg3IJ D oPO׎sǁB6wr7mK";g0/ F$)@=JEaU˶i=7HI2SוL[ 63MG|DZj짼'W\,SV0ƈβNqlr2mfHx˜{x{,dHF-K7_|{vfsrw,; TYԙ& dь ^7pɱ!""IY0V6%aJBwB\HԻ^\8>2Xm}fi{y]هpxa3bvj(mc'+jCas,1}Z`ߖ}ޅȍn6Iق G_i(;,1?8Z'YX 4gi !r<-ĎKm]#քsTiIe7|Ss`asQ`1ތC54Y4t:4vږ.V}5uzݙ,frޛM -?QEO\iߺ@e6/R4#-BG^E& mbht2"!؍6S|H6R`kQf<\Ӳ\k)k+}XQVh7t*lU~#3" O? Ke[zno}䙡/C bLfuMQnJ3G[֎K44pP޻\Cӑ7 $/rJ>6D7tJ3^ eH M^1adWQJX1DN6*d J5x)Mч͑oGVsNזUB(bW2@Xt - aøWs/2 es [^zy]XXy HT@0pAC3u1lK%l)t8URhʬB^AeˉAVq34&S-i 0j,*o8nRƴepFwW>.C;]GEF$UMNlzbC[Ȇ9tU@׋tj8 'M[:NcêG&\0u\hf=auYC b#:x[O~j꽧*Zc[huϽG;|^AATHUz[ȷ5)H&hhv)s2uVvhi]_ m_E~&1ْۓr1a}*e xlTu:*BCF   LFI]n06P l$B _Sv܈s"Uz |m ~{ 0<|?$Q{uYLyfbdf'âfj4< {*:Hk63`Bܫѱw$S ̆d0