web/lib/Zend/Application/Module/Bootstrap.php
author Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
Mon, 25 Nov 2013 18:38:05 +0100
changeset 990 cb6e1e314abd
parent 807 877f952ae2bd
child 1230 68c69c656a2c
permissions -rw-r--r--
Added tag V02.47 for changeset a41cb4702e30

<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Application
 * @subpackage Module
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 * @version    $Id: Bootstrap.php 25024 2012-07-30 15:08:15Z rob $
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */

/**
 * @see Zend_Application_Bootstrap_Bootstrap
 */
require_once 'Zend/Application/Bootstrap/Bootstrap.php';

/**
 * Base bootstrap class for modules
 *
 * @uses       Zend_Loader_Autoloader_Resource
 * @uses       Zend_Application_Bootstrap_Bootstrap
 * @category   Zend
 * @package    Zend_Application
 * @subpackage Module
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
abstract class Zend_Application_Module_Bootstrap
    extends Zend_Application_Bootstrap_Bootstrap
{
    /**
     * Set this explicitly to reduce impact of determining module name
     * @var string
     */
    protected $_moduleName;

    /**
     * Constructor
     *
     * @param  Zend_Application|Zend_Application_Bootstrap_Bootstrapper $application
     * @return void
     */
    public function __construct($application)
    {
        $this->setApplication($application);

        // Use same plugin loader as parent bootstrap
        if ($application instanceof Zend_Application_Bootstrap_ResourceBootstrapper) {
            $this->setPluginLoader($application->getPluginLoader());
        }

        $key = strtolower($this->getModuleName());
        if ($application->hasOption($key)) {
            // Don't run via setOptions() to prevent duplicate initialization
            $this->setOptions($application->getOption($key));
        }

        if ($application->hasOption('resourceloader')) {
            $this->setOptions(array(
                'resourceloader' => $application->getOption('resourceloader')
            ));
        }
        $this->initResourceLoader();

        // ZF-6545: ensure front controller resource is loaded
        if (!$this->hasPluginResource('FrontController')) {
            $this->registerPluginResource('FrontController');
        }

        // ZF-6545: prevent recursive registration of modules
        if ($this->hasPluginResource('modules')) {
            $this->unregisterPluginResource('modules');
        }
    }

    /**
     * Ensure resource loader is loaded
     *
     * @return void
     */
    public function initResourceLoader()
    {
        $this->getResourceLoader();
    }

    /**
     * Get default application namespace
     *
     * Proxies to {@link getModuleName()}, and returns the current module
     * name
     *
     * @return string
     */
    public function getAppNamespace()
    {
        return $this->getModuleName();
    }

    /**
     * Retrieve module name
     *
     * @return string
     */
    public function getModuleName()
    {
        if (empty($this->_moduleName)) {
            $class = get_class($this);
            if (preg_match('/^([a-z][a-z0-9]*)_/i', $class, $matches)) {
                $prefix = $matches[1];
            } else {
                $prefix = $class;
            }
            $this->_moduleName = $prefix;
        }
        return $this->_moduleName;
    }
}
\OqSdڣjk|yj[6:Ndjs.];mNN4mY6ʮc˯q\^?k:|z^C⏋IXG{m]nuTJk ~$dcϿ>!?9~prVoɲ*f ߤ֟RX TR_;=Z{\|]¢ZvVfI󳫋Tm2rYێtﮤt,`dblp8`8]ȮYwN]Cd~xT|䇨ބ{|G _WO[KhbѬt[O>,O (|ZB|}[3qơXÈчF渎F7+*Qs=GP>qѥ;>qGvyG^v?4?flMJԛh5&ahKUIKLk% (^z[x U|W" sHѳEmې#zCF|Nj/&0~qr||>γ_sQ l f؟'Ni٪_,Nm[m`l \\#%;9&I;UA>>dt|?2dRD'+J|G-}OR{WszR0o[0w|C.%skXcad{h:&GJþ?c8|1YF 9)cǰчtʼ2MXPR 4c reJ΃GG?F= K SF?@_K A_R޶O\Wk8@ _O9mg뽷Σ :GCjS[b-K[knTʶi6F FKFٚM5d-ahɓFnWѣE94cr!Cb: < } BVCFG>Qu<#=r1lFFUb5& g$t8JJT89zʼL'Z:4hѣF4hѣF4hѣF4hѣFS־kmZq~|G* k  ?5kK-QQ#\4fs'ɫ#/H#r9wr?muc̦'/5/֍[dm+jL1Q!0 4X2t5 4?OzǶC^I zwrqw㾾Z3ݝhAzBC!=,JR͈HA.eȱ6 _z"& r >H,6n bl]񪻉ڤ=#hC=c-AH6h%O<2>G{{ǼxxǬzgzA؅3,YB 8ٳf)q|'4Gv|#;G#GԻ<^^ЍF "K,64*Xm)hj#F4h#=D4hѩhgRƪG/w~v_:M ̇dMg ; /!} y}iӶVgk@^n4> w]@w}+@wnzTZ0wއzJV3w1ڏ}AFGmVhN HPK w42=uC A{g]N0C룡κi@ݽGYT! }}ahx+=g=@[3,H<]݇A'h%T>>>ȧs> b[}T}@C >}/L`=F1XSY`zz'H Pl0_vޞ}mc{֝h}/o]t'u,j" M@ )O52bF&j4h4ڏDڏ(@d Gxx4izDDM'ldImFGdhM=M@@ IIHd4cP= MJH z&~ 46SChhh JH@@@@4$4GO?jR|p9$~?y2Q I~B;HhcFYHCBBS10Z:TȵHDjBq3l*A4m*JfZՔj͢ 0Fr\!ʵMזDضi(mLiLuuhƌE8~q)ɨ>te{[ՔѢd R%FKE)QSM)֌l٤XYkFU6TLZYIʐ`RJ#Y$TjBVbdmVcMUeO5vTBц$ ٲbb[[*&ě]#e-V12dɥȪ4+m6FŬ0 *;wSPB.ߖB+ZN?ѽCiZmT -Yɇ㝟MfִP-mEjحl}Nek~NU HjCь_;'dLʽS!ЭHwJ\O GAbŘQ';3)]ӃƟ+YijO%V]]c{$qUCRYGnEL5-M%_y]X'ISնům&'K V|D8"_*P!T=L)/>~ /Y96d)\^{3khڮʴ_0i 6*Mj6[0ح-'%!ʲmoou#7rlV̫Lʖf,+] ZFsj J-F3%"@k'!q)d~He2,4;>۩u;%% 2 gdQ3PåSf=t?Q/>{ڝjOnr^ %+b-݉'M+1*&-2Q'iuj:.9Q t4yw7R5{&zc{M I ʋdu>V1l`yf! 3._ZFH07z3_'cǾKD}t ݙЏJsX `t-irg9mY҄srНvpu~,CHd{wR)%Ϊ%V^^Yy,"4X_ oKVe҄IL>_qb߫L̆I!_Rc \M744nsC#[ wD4K3FOrkڒ3]Fuf޸Hc83W#XhWl܏Oy+l񟡔{w4ɓr/@xoO輏y}zpd`T,g͒w}>1?J Н\'jCk܂R+IIWO+JJО$B819""(+#s?)C UOK0x>|_~zzcm㉥87b祪Z*3#c{4Mȵ"e a>&8f8^_BfrG9j/P]娣C$X@Z0^kK\4acN]ޙ'|~shE|AVkvM۽ݬ)~~B*!)جsWzLH̖dW}*5sŜ3Wmˋ9I'*a_ IIj4U: :k98<6'&k7L)"F9=k;r/m8//mpwm `YG3TƢ,{fͼɛ[,x02FaD=rߔ܏i}D1cѯw@Qn>bW 3]fe+o{OI| ?ҷ("0 T@ >Xx:ʩp]=_O>)ZX| ^}z,1QeQ6QdFy[r+ 'W՚&ɰ4O{S7ߵ#d$I1J!_|}}>ΞN!ĒI-QmGlOH5Ilm}0u ~ +7)!Aɼ̕/=7 D,, is0kܳ^Y񞠬veWi";\GP7V=jN ʑ}c)|] -}NhʗN(JlDodl2=يkrf׭(nZlM)O%!1% {*6c@Cbn iJXW1 *JN}DŸzG톷zq&62ˮPC&=uU{<c=7a ׾ĕkF DOq$qtףٴQ#IÝVGxĜ_5m ի6KnѻvЉ Jx-FRn;zū/!kX#k!!\0_;g+x}StV՗T6ĶHyۖ]VZ|#bӗ6~ ^:7kX䪺JY}2iF:qWcU X 2!!줮sC.n2546ztPiR~A>qł1N&J9;L;3}[4/و}X);sZ,2f52Лͨof+ا|d%.NB6iHn9O6e|,ommxkϪ}'p}봙+*wl͔ft\9nYQrq6[*[3i:xtKMR5ުح4hOsE:OJy[JZ#(ՙmI/+Ez ZuuS ոН)ҫc?-fs RB?xt[]+D I*QLz42\^MJ[ еamn{Ffq4Cnt3n.SA`0 mȇ_:}E#] N,\Y>Hq$ T3"A#{$_b7Jeu:.|][Vi[W)yٶG9tƦ)mbUjjm> wxFZo!~4wd@kn.Ң}=;@gƹX/?@H6%]ǵN'4jõ'hļ{=k|U7N. g>DZ9ӞgO.9zh3nuzWhMuĺ]euUUrb3M)L^4F&šml#aL4;8'0U2S|"\bkU.P,a4<Nɕ.'wFMdXNd=QR'NO=[?W=z=I$.1!1.բ0&XUJ}>_21ZjZ@LHXURʵK"X"Ј[9'AǧZũJ)k7+Sv}N;e[8n l'XNswīiaioN/]9,Գ.OJ;ȼ> c&YG>Ng۱WfTär8'zut'9\ɾ9~7ru҇IhJ|cdpLi6Lj "5!A@@$ rխz[Uվ" hhj"c@[WmkWbw^Uj_]pru,uI@lZxL0Z{~v+ y~@lyݚmng>w㤊`O~]'`n|b\-#5X^8<{m޷I K-P)15R Hٟ3FWaeM x^&}Cm¹4RTa|3upn͘|0[t Bmz鬜+#+#^H O:T:[oq6 \AiG:??Saz}fFwzWӾkX?\㶅WxҾ.//|<U oΛX)S[:2C6ms~cuVՐq&p7ֈpz]k_=K&N؟g ӺvO'>)ܞIe^2|S;';'dNz'IO Oy't➜4&'p'pܝܘLNQSLI2w'DLOa= O*Cb{rЮq2dɉܫN&Lx'<Ӣq1;(z&LN&Ld?8N'&NOZd''rv'It'IOw'y=I'<!OBb|I'yM.'u^DNtNܝ N yv&' ®ϡJI':'rxOzLUUU~wN>;'d읓yL>':Od2dӺtz{:&'d>)q:'dɓ̝2eY2yN&N&OBz]N2zZZ-fѥG\dɄ' }|>):L8't<O &Od2} Oy9CWeG;vНOtOrtN;&N&N'1<؜'w2dʻ6R-YoL۹*;XΦ6!˝ni@_|׬BE 'I'It&bv)v'DNOIqN*dɓ&LLvSrbY< 'bpLEؙO"U]&'b;ȟy<)ܫ8SН KИv' }e8Lb~ǎ,E Vυe a|eM4"aLd,=SINN쫢a1882'82wL2{'q<&N~8螉??;'$jxODZtN;'d y'|<'wN*|N' tiL>dO ;&O '>:O$xO;O dO$DO>$'2~Nr|<'I8NNy:O:&Liq>枉Oܟ<')Oڟ$Z};?4DO>8i2}S'O4LLp/"w,_./O8USSA.,\/iy^.ȸ.E.رtXbz x^/S'|'ILTO4Oq:Ot;'W;''d2ɉ=SWd&O 2q1<&'yɉLt;t|<*<<'d읓N<ӄO$N'p8LjpLvLɓ4{d잩O$LI2yq?4OD]Eb8>9yxKY> 'O>}iOJvOН:N.8IwLO$OTOT'dS>OtNOv'O2|' ꞉wO<'N2bv'rwNӄO~)Oy'>8DNɓ'2vO>8'>;&Nɓ'pӉ:Odrq>)z'I'z&EޜN'|ӲDO z'{ ;'p$ODSrF8l".#"9F n3f&v͐cfDmS$٘C1ʌwPF7rMۖ̓Z LXlrd,mKhjI*@% |>^,ϟu4[&@G~(#U' `$~i|$*<-i B0)V(zޜqRBtP#ɲm-h d6J8O?yR'L]@#BDFt(ЯR))z4rId2d_b㒂xEE`O#'8*~~v@ث⒰ W {N(}*=;'i%>i:- >̛o &'pE7v:0E??'cpK!Qk;`}=Y;fͷdqbU5|>]b1?"c5>d[;̳l-,L`A "F\ewzz/1=8bv Ntm pfR333Wj|<պu#; iM7>ps9qatjT9z_\v4ef^"Gϼ#]^ۘAO" BQҦwNޠG$!";~ˈ_ x~_W]&+W4#=r8w۾mrH@Mn#&vknϷm8&(rv3U6MvMU#mƎϞ;?!Pe[} I-G?Lcd]밉ZDQѢDnSk#Gm"+kOv~6fcuЉgvoۍ-IZtJ,ݺﳪ9y/oݜ׭懕qzu+Z:R+[Il뜈kZde3|6:nVg3Ѝ~ibdi}SwN䟚xO;'O$dwODNO}>I2dO= ?;I' N䟚}S=OxN';8<ӹ5-.\./]'I}~ &-EYU./qv/e/"..-]bbxjx8iN'|S蝓䝓L4N'؝ӤdODIt=S?12d;&N'vN'q>2ɉʻODN*='d<&Odz'I:OОIq;p'I~ )Y<'I=<¯4jt$N>xOtNvOtOvU&Od'|O4'8IO|tI8zq2xN 2{*ܝ'dN&NDOO}Sȟ4LN'Dq>N}:LN8I> q8Oq=S'vOdOtOe^N2z8=:OD'b{'= 2#Eh}SkD9ui\)vK;3NSei4 F4 raG?NG2?CՔf`j9 M )b]k/QtW͝>Ԭ;g<17{k/׀ wOfϪ6gC|UVizu fv!49;VѴ`aD&(N ({#:kN4myƬ,K &0XMC\ˆyRkH 7l$)0eJ$*ShvuuG54~S5gtɦSjD΍"3GCߋi$R#8DOd~_A> ~ޗ?W~2]s.UM1龳ۻÙtítizmR׮cLRWLbN1F1tdNdJ!,S g]rw 䞸6͖lZY=+s,x^r]6ŲI'IN&L2dɓ'N&N&S ~[GeH(N%5N꘦)SxL2dɓ&L2id88L2dɓ>i<'?;'|;<)ۺzdO N<;wODNOdLM؞B} =>JwIq9Nɓȝ'DO4O btS&L:&o>82dL2dɓ'N&L2xSɓ&OB~)q8'dOvO'I:I:Om;'bdq2dɓ&LSN58N'Iߝݟ`;Ӻj?'dڻ'2~/;L xNl>גu/dvL2dɓ&O] IܻtZ_DbvN&L2dɓ&L2dɓN'&L2dɓ&L2dɓ&L2dɓ&L2dɓ&ORq8Sώ?ќ#)/Ǜ7s&zSÞv읓&L2dɓ&L8<~~;8t~??wIBN'\N' iwӯ[JD)"%ǧE#qN v f )$X*}H_N+4ȐEcTçCv +e`KG֥2@r ,"PIo6MsʝSҝ'I:>dәɿbjcO;>O= O$8:'"#_G?XLEW0J g ԥ Uؚq=S?j}dɪv'd2}Iwdq>BgLDdؙ;&;zONz'O--/ei>5-9K.(L:&Lj˝&L;NR;N>dq2~~knz}|'?kOOv)ʧD]?"q?SxExKKKKKKI'IJO1>_q>קs>*~hWUz>p U; БXF4IT|6(6| 'USt ?:O$';L<'wO ɓ&L2dɓ&L2dɓ|N&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2zuNOxN&}k7 j;&Lpbq=Sq?}?h0}Ge o$c6nɓ&L2d?}?:~iwO$N KI'L?Wi2&BhKSKE,X}{u ON|SMMObŋ,Xbŋ,^J}2R]GII?4'It=;pON'ydz;}^SwztT8;d^<%]˨,^en;:ON'dw;S;Ngߋq2dɩؙ2yWd.OvNSjuN;tŋ,Xbŋ,Xbŋ/^RΙG:LTKGN C5L1LR#{@w'')&L2d8Nj|驩;N'N'|S꧄ӺwN*>%=T=؜N&L2dɓ&L2dɓ&Lo'~#*b4"?ķrV!_@DW;r2dO9vNɓ'@HI y?]f0/\ =/}rH_&;yI.nǓ,d̳&c31c7Nq3}|nMblOC!hjZ\?  _"u=cijdɬXS?nM۵:?VJyy1?fSs-Wܢ[uH`ܒ0L8O2dIyҚ&` uR;qO9?O'Ϧ聹fjrR)*HIch/,wL;8L8ٺꝓ&OI%L2dbx>/'䟰o 񏷷ef6PNd;ûilOɺ}3 sOLzo.s]*ULbi9Oz韆v.-FH1mCl4cĠ4Ҷ\12'3yUmVb1yv[ddL2i<ɓ'2q2p'ܟTɓ&L2dɓ&L2dz],@I,#Tnܷܙ%ˡFiœDhҙ4LZ^]徧ګ]-F#mmp~i2dɓ&L9q8ٳY*]OTɓ&L2dɓ&L2dɓ=SLI/۾C{yLSQ?~L2dɓ&L2dPpO}H\D)&M#Yb_a;ɓ&'3TenW"eOQ?g?'HL2d 'ڙ2dN'&Nq1Jq2tߟ§v>:i6+2m;MRۻpÚVo7ڟ2s_zd[$֖-KXIg~$eMQɲ5 i%ywk h%b `:Or}Oޣ> '^{=2} ?V?G>d982dɓ'b{v!v.bv'tM~ &eS@I(w'{L2dN&O_zIɲgyL2qRkcelG'uPxg<;ϸfg4"=!%$ݏ2TZclbLj%6u9.:&L2d8gb&a>9o:ۮO5:z'tu&s/Vׄ; 4ihZ Dq8Stϥ"BF^Ci|DSPz$RKmU+߯ߟbN& 2d''rLY2/E_|D{WX#+ڙ2sIYL&N&LLL-L-7H}>^/a<x'ho^}rn|^K5w<;wτު-9a=U$dKg2" ڑdQ'.<#M8seC f*Eڔ 0nNL S *c+VYAhjY[Fv4v˘vǖFHJ 4Elݿ~"͛ڕ 6(%@iG 9BIj@XTHh$y r2:㫕d'd'd<'dt"K"P;y&'ɓ\};drdɓ&L2dɓ&L2dɓ&L2dɓ&L2q88L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ?Owfkq<&L2dɓ&L2dɓ&L2dq7l&_rOWWwhJR" b!lx眑mjjR䘙9[\0r768`8Ze f>@\QTH1-!'pjOuچftz|Լr'oNd2bL&U*' 11; uGşHʐy!Zr5IZA11C]L9@F%h_]fЂƺizK爨A=Uڶev]fweC#]mF,oyթP9-ۉoY>o(y˿=l${3,ERBJ)hK&fBzҏ0FZH4h7T!jd )eٳO iEm!MHEo7ZӣbXhZk3KF"!ٵFmqgc2;8tXzkVtxr>5JK5,lhڏW6.hfRMa gh6yhъƍRV+uB6yQRPb n) S7I 84wI0URÓTצ3OCMF5Ȥ1 mev#a*X1WB~dJE#);&Oz' ?bs==O!<'byv';<'d8:TOJq2dNyNNzuNdʾ8=<;;'tIdȾ)vN''>I]'IN'|S®蘟byjqN|OuO4:DN^ܞ;*dq=8N&'INId<*ti;L1su۶kvy:1]T݋a#! jțL65ܚ;ZE9 NDëޜ> ;ew1/ߺdIN;NN'ڞ;&OtN}S̝'vN'|_O4tOv'I<8O2y':NSv84/xb t]Nɓyz'vOvN'枩{'t'e_ʻI|SL|ӄt'잉O2tLO4> OtIiNODd='x't&LN'dOdIdN8D:OdL;'I杄PQ & kϓry/w4ۧyǼ ֢ٶ6 4 `uѴ榁KiEC{z[zxok㣕oWW7O8;~}ֹ%OIbp%ԻQM2Aʹ(;'E1<)П|>ɓȜ>Ԙ츙2d8Nuɓq2q7^x':S5=xNN'ɓПrzOcԞ|SHq8:Uw= ;NLn^IWښpϊy&UɓcJy$}-v;DL2d_u!IS&MLNS&N |Jd )f#X*P*BܪhDQn秌@'^^i4`@䵄)^%ۘM~E31i)IWnrvҔG5κU2h5wsfj/ U'=1Y'tf^;7ѣ0}.88}7F״L0^ͧ6SK^ۺ|j|Yn>+ЫuBnr.>i'ItN':NGbx]GO12dɓKbq}uɂd6m>%GtE^KU&IpG _"?I~?2~~Ɇқ*ya?Fyx ryl)oddkN9xc;W}NdKX_6$4|Ds "T @Iu,4?v&@Cg D鷩^4IC;^H2"4cPފc$`@vaҍF2Bcnmm^ԻWfL%.$& E`LDQ3ZcWZm_fHvwbwT۵'0uǮ aVg[ME:p5,V3Mm&d_SNj)Sb׳] 5}91~שs]954d@ybxF boWX:­dZ_.S 1v9Pos;oNsa5LLLO#8kVҴ#XЏ$iN'tO:uOU;';tܝɓL};{q=> ||xO9Oe:N'wO4=;I'Od'd|f3צfS7c ,ȋ# pN)olǏ^~ʊNxaHUu"HKաDzͳΑm^WJEu=gLT2`"4KO`']goUy }O]X'gʿX~#xmӂkVK;qּb΅Fc)Kiѽc|wbHc10|z<0b !b ("a"bqӝ 0.#Q#&$zI;JdJbeQ2hv2IN <^I[?]?!ڝQ% E*tU:5 s4Ed0AN'*Rz ?ow%bVh^7梍]sꆾ-;۬?\dɓ"yVL:N'.cɓ:qNi+&QbcE>:&%fު=*m>5bt]w]S {b*Ը<)N{DS(z"5XV7H;`VKjCX*"CS<ߡV&\&Ob{'?l^MtձOॉ^W 'D}q'k_~^t7'tx875|O.tr̔kEwvLڻ+;.sbQ]c,78yz?U^a%Fױ?:V#t%#=zo5%k?,~ɓ&MOonԑjz~#GA#4.G@hj 1+6U=y:'M}u'a?m\hW?yM,_¯[qۯ'cj{&N0ڶقqsZ~.4< _Ut.O^pd𝓉 'duR'ӂpã.qC9;i>{p"tt8uTkBiKpN.v'bK=OQ>ŋ(z}|aqڣ~ѹ˻pܱsYҙ"\xat,[tur+Kik߳'$ɉqVN{5,*(`.kkwL&'I[lÚ)>NO;/q&L9Obdɋ֏L+RdҖMNQN'r,Uxgq362L<'jleeMƌDm eL%2ZIZSm66C3%m2S٪KEQERd4Y5mF6 m3 -t"'؟4Oq_c3l7WȲjd}O?oԪgf5gFywWǗqGi:FJHo{&L2}y&/5'NѶmf3Um[a0b'z&L2dɓ'>E?*{Wޟ|KԋWQ|r_"w)U{\RԾYjGː l*''w;)W߶/O݉beYVL*bdʗ~ zWSɋ7bvjl ƎtR;#Ho.xtu)mq8WBt.ʞ76bxyr'y`Rҟ52xJ˨>}ӏºB>sf=Ɍ2pNv$2dɊ&NUy'&Lϲ)GFޝQA|yFl=䦔+{3|w"5¥4$RA"Db(F4NN'MъG7> ɠ}Ͽk_~˿o>)E'cݎjl9^~UwI;L2dɓ&LImR{`ESmd,؇OӜtQ)}}fk|{Oy|'F4w*o X-:ͥ>򖖄:2yσ6;ez՟}9o4)S~źXM_ T~rW{bTWJVfi)g9G}7ư!-/=\0JgOЯ^Dɉ ȞUOeP$qWdJ#]'$vO2~Ide^txDza֜KFBTd擔dlU۳8;vKzʻ WOI?N|2m'6IbDL7e$Iu1æ/U$IQHtBLҊ8e\Ȟ'D蛾m4ȜN'I;'u\Jjq8I88=O110盿OT:N'ti1;:SSO 䝓&N'GaIl`5h@lxvL)k'rwNM.8HpRzUڗxs^Q}/|yQܩؘ/ZU0By~m7=1:9)*S*˙#ݦrS7dyR}\N&&LLS&&Fb@$1mv9ctuHY$NC* ,h-ƈdÛltfa$h绶!ڮ;;'2v e_NNa=Ŷ -f0G@#80N&'*Nɓ̝'dy_&M&LXۮ8}σit2rot4S2K KRm*ф2!ZdzaoMʞVLpL&'~si}-D!^xVOjS5 LNq8&2&;Nc}?t%טBƘ0o檔UQCRP!n`t\; Hi,M7fUnvvZpp髾ay"O&yT >B6 (" ^pN~RKOtO>>k Izx[{')ehs;md[D\Eڧv=X J Sv+3i`^rOA 3K9q=&DDrԂVEÛn0n{[pDOڜ&J' VbLN;q1:LӵNvN=ӷ,;&U읓,h*Ӳ>~<ɓkǑWs,_Ɏ;ΏTNH'kf0NrmL&1;=v6u$ I[SYl^Xmmlo|OXq̻D)Zm+5Uk-J ""m#]b;W/Eׅi]qGP14'G{/UWޙ=&OSb;&LQ^v?qrn125_ϛd`DU;_Яw5ثIKigd m1vuIӳ;'Z|8"` F%9`%L,^r' ;:O=}}|?O4/x|Q|a.k忝??M?_66cļ6\:~bja8J(T"&ʗdɄڛ&']N;adLNXَ#DS&)M,+9q5WY ^ 04UӍ&LM*pMKXɤɡ4GY|sTsR}i4p63Xy_Oº4(l_v bq'}N ddɓ☞ɧۺa2vMN&N&;3Mǟ sL>))A**U f=`Q xT;i_j}?GSzmOdɩ&MKW=beX10 o&Ք&^~/'ӺdP{)$>Q&a?Bsq?'wv:R<)5T=!FE/ة;TbN{~k9g\M$JNϋQb.NLU lGto[>5hulDc "D,l^&LY*Vɤòw'N&LN2ܹu'{Bz_q;ߛy8g'd\E~+ί'CkS*j2d*ʱ10LN'U^l|&Pɓ&L&*}tɓ&_'hD<ꯒjxmGyY8Uվ YLNBbx?ϳj~-cCl~_sV^Gh;^~iLLU?'>4NqG/Ce閖w'/8^yW6j^q}zk@<0v[l`C} ]O=Ր(Z=dRI:@OrvkN1:LL:N;'duN8'I-ُ򻧚ybdtN;'I杓tu6{T,"m)xS2b}>?kdztU~eQx;K~:]/[9P׍|۵}_O`ֵe &J11VΰLKFlfW* e{"f}smi>Ǔ_+G;4~̄ue_Bv+}}FyReI&L2x$ᕦgg l_N ɓ&O?dL: \LN'&N>/+oO-+VOO%2d8Ʊ9N_{@i4A4h4Psrrj!*"*MOUB; 2eW6ީW.Vۼ  Z<[; >!\J_sӑQ;lVladMqƵfj᳹Q-jDdE[ FI$}[x?/'\>o=S&L2dɓ>'Iyw'(ϣwpM/urLQgӬucd,`l+nB3h͕ˮm0 H S"îvjdX!"KZߤ|œނplw8kOdɓ&L2Oouoc:SN!Mb;<(&OJ?LHyIF1Y_yb-Y˧/}B%^fK콭>n㑄 5ɓ&L88.xw&|_}Cd[6KZJw<~ tEI ۰aO;m;lpIJOK);IyIyʓV ˥]HbdI;LO>U$=y&L?3ПLLLO4a1j}~F4ㄆ/6>SGl#`B)aZL+Io:O+ N_i612e2j SזT&&L&&JdɄaWL')r;0ɕdLL' e\U`Ndf®Du2p .O%<a׎mQr0`OaoyCz|[@ 0~1 mS-kZ 76ӣ0mwgUއ7¯+z(z 1sZì,tf&2;,Q Μ7wE;;HuQkzTȿG`b=j!c{: UފDtE{eֳUb DpfeM?z]hs"=4y/miYe`Ɔ:09̾pm;XQ'TAJ3.XUE =s[ITNC.r{1vd"f֬йthDzD֌TX_כmx72<5fƊТs!aL)|A.ִ?3#t>2̟{''r{Bt>G>)ƂEݠ" li4ͫ^-KUBA b9C聆ٝq$f2pJ("S:N] \&'eLOu18ܜ*I:<NvL'd1 F.aI[^x(ΨQR܎1:oG\^]>NVL't铲e]:L9iGTi>.O ГwT5FD5HFK*d(JXPLNˤ*dXe]Pt.ݹHWGNٮg'r>\C`P4'vUOte]:L9iGT<ӤNtz&N $1=S FG ]p fGX{@=#CA-S$BU (!Ğ_DN"| ^DO',;<?]Ͻ-KKFr➉O;'d읓|D"h_ JdHU=&L2dɓ&#!HH%k5cURzC7oZ`H"MME(q9NIdħeYE q92,C9%&LɄpGw۲?> f*-wΛ߫n6~>IO|Ӵ Db!{ upzL2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L;jOuR/&^ثwOKԽZm/}-_TN03K%VO"0"px eQV"GR IQ#t yr*"H4Udɓ&L6InN|k__p}2dLOu$O~llͶmo )>?b| 2q8;y^:'=?`^TN'q8"."Hu6699\q[\R6:]w: "`'%<^tht9\ 5t Ƶ@F6c1Kt' ;v~ЃdʻN&'q83TɄ2bddq6)ŸoЁwM 1Ѭ(#}>IeXHHs:9"> !$s$A$+ᗰL<޴g}<S%, Ԏ#ȍDR(;)dL }xG2vN/ϘZl5|7Л=&GH--H7gB7jb,,UiS_iz/9kߓ=Gm76|Z#jlLijuD-X$:J&F>(,A vZ-&@!8J G+IV%jB ktGqm) Whv;]0; ZX'hX=B_C$:(Efɞ<hj1fALs~@bEjS| jeѽU] 5Pc vQk. SU/Mj M]fgb .Ak8%ɤN؟twbnz;d P$DZa+2Qu$# 1#VJTi?N~mb!=&O2w*NtN:'XN ʪ2q2d*` \>^~plQ }٧}@T%ӚS)Wbd)v˳2|:'dO dɉy);ӰE/yxK2dLOT'=&N8<ӉӲtRؒxx[ߨ=ep 3pt잙ՇUOd蝉O$Nidɉyi2y/58OJh=v4-{Sbx)ʟ'swu;v*N93KJnɴH%=;ti&8O$ɓ'vNd옜L2t'd;&NP 'O6kMc6&LX$-7@*jԬl>~txBa_Bx| Rm[+XQNXrgml,v*^'<:͆f3iɗKGIIq8 ' a8LN ˛R'I2e9Nt'(jvNdr'I҇d9)q\' 9,N vdvIޕdSq;x}v J4 qSrs0ۖY8L- +X1`i`NYcEȹUy2dt !}_gŤ_| 4ZƢQdIrwD 'q<ͩce[K[=<_{{%'*{u^d'8OdN;y4*0)/Ws@{?َd٘Y.o\&Юt[(z؎$O1,L lw/b&Ү[oBP+ % ANT?u/ZwL}~>kLN'Kxз拋Ud^ܘ" "}ԧJ1%BČi &p2@,P JX\)dQQma39 ahY,Km p9KC%륌ms8ӡ<~Zi k:rR)mmJ& &ҺwO'=9DB{GN*-1-\1lփ*|{Tbe)Cɂ씐}hPbb`L:Mbq2q2pXi;;pQb.1+ *Z#lҌ)&&M-_XIbd0wď>=G#eЭ(Mhr%6h /:O;'wM$Eι'xN'dٳOuwϡ=>*dT^;** L1b-5rx|:K9ʳSh8c&'`|$^>M}'n$BIPk, ./Kz}Y_+L/}X~ӲrCKt1mg= ,[TQ04 | L}4|I|"z|NRRȤW#DddN&N&MX9^&B4i:GMlɭRh+ ɤ֦ɉ4(Uidņh84jdɩcy'zz;^odEU&LOt' eY:N'F8i1[75VbdLMgJ$0>;_]_[ߧwulz}6E5>2dɓ&L2dɓ&L2dɓ&L2dɓ&L2d[wzwԿկɪ3_TO"cO6pGHÿ(auQ1x !58N\ bmޟ0 #jlEsi#wݓ:'Άq3YNύNIf&Q~1jLBJw٨Uɉ I`xiHw~˕Wkp}c4ÿvb'PfYč]/W@m-+.bA鶛ҁ#)WL"=p:3`UE`ZWFOIEgA &$\CkmR}`8#xN;42vO4No/7z'=֞q;tN;N`FiQ `W/"stORy'gBv'GdG mcI)KD 0?U#acTS[iFɱmF`ʞ&L2vpOO$ɓ&LVLC{!X>U,؏SWRC/))9w,*(׀jC&@44*z@@4 JfMM4j2d=C`I/VIX,5j $:(xY7@mպ&@5